Blame view

sources/3rdparty/dompdf/lib/php-font-lib/classes/font.cls.php 1.68 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  <?php
  /**
   * @package php-font-lib
   * @link    http://php-font-lib.googlecode.com/
   * @author  Fabien Ménager <fabien.menager@gmail.com>
   * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
   * @version $Id: font.cls.php 41 2012-02-04 18:01:38Z fabien.menager $
   */
  
  /**
   * Generic font file.
   * 
   * @package php-font-lib
   */
  class Font {
    static $debug = false;
    
    /**
     * @param string $file The font file
     * @return Font_TrueType $file
     */
    public static function load($file) {
      $header = file_get_contents($file, false, null, null, 4);
      $class = null;
      
      switch($header) {
        case "\x00\x01\x00\x00": 
        case "true": 
        case "typ1": 
          $class = "Font_TrueType"; break;
        
        case "OTTO":
          $class = "Font_OpenType"; break;
        
        case "wOFF":
          $class = "Font_WOFF"; break;
          
        case "ttcf":
          $class = "Font_TrueType_Collection"; break;
          
        // Unknown type or EOT
        default: 
          $magicNumber = file_get_contents($file, false, null, 34, 2);
          
          if ($magicNumber === "LP") {
            $class = "Font_EOT";
          }
      }
      
      if ($class) {
        require_once dirname(__FILE__)."/".strtolower($class).".cls.php";
        
        $obj = new $class;
        $obj->load($file);
        
        return $obj;
      }
    }
    
    static function d($str) {
      if (!self::$debug) return;
      echo "$str
  ";
    }
    
    static function UTF16ToUTF8($str) {
      return mb_convert_encoding($str, "utf-8", "utf-16");
    }
    
    static function UTF8ToUTF16($str) {
      return mb_convert_encoding($str, "utf-16", "utf-8");
    }
  }