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
|
<?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 */
$fontfile = null; if (isset($_GET["fontfile"])) { $fontfile = basename($_GET["fontfile"]); $fontfile = "../fonts/$fontfile"; }
if (!file_exists($fontfile)) { return; }
$name = isset($_GET["name"]) ? $_GET["name"] : null;
if (isset($_POST["subset"])) { $subset = $_POST["subset"]; ob_start(); require_once "../classes/Font.php"; $font = Font::load($fontfile); $font->parse(); $font->setSubset($subset); $font->reduce();
$new_filename = basename($fontfile); $new_filename = substr($new_filename, 0, -4)."-subset.".substr($new_filename, -3); header("Content-Type: font/truetype"); header("Content-Disposition: attachment; filename=\"$new_filename\""); $tmp = tempnam(sys_get_temp_dir(), "fnt"); $font->open($tmp, Font_Binary_Stream::modeWrite); $font->encode(array("OS/2")); $font->close(); ob_end_clean(); readfile($tmp); unlink($tmp); return; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Subset maker</title> <link rel="stylesheet" href="css/style.css" /> </head> <body> <h1><?php echo $name; ?></h1> <form name="make-subset" method="post" action="?fontfile=<?php echo $fontfile; ?>"> <label> Insert the text from which you want the glyphs in the subsetted font: <br /> <textarea name="subset" cols="50" rows="20"></textarea> </label> <br /> <button type="submit">Make subset!</button> </form> </body> </html>
|