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
74
75
76
77
78
79
80
81
82
83
|
<?php /** * @package php-font-lib * @link https://github.com/PhenX/php-font-lib * @author Fabien Ménager <fabien.menager@gmail.com> * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License */
namespace FontLib;
/** * Generic font file. * * @package php-font-lib */ class Font { static $debug = false;
/** * @param string $file The font file * * @return TrueType\File|null $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 = "TrueType\\File"; break;
case "OTTO": $class = "OpenType\\File"; break;
case "wOFF": $class = "WOFF\\File"; break;
case "ttcf": $class = "TrueType\\Collection"; break;
// Unknown type or EOT default: $magicNumber = file_get_contents($file, false, null, 34, 2);
if ($magicNumber === "LP") { $class = "EOT\\File"; } }
if ($class) { $class = "FontLib\\$class";
/** @var TrueType\File $obj */ $obj = new $class; $obj->load($file);
return $obj; }
return null; }
static function d($str) { if (!self::$debug) { return; } echo "$str\n"; }
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"); } }
|