70 lines
1.6 KiB
PHP
70 lines
1.6 KiB
PHP
<?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>
|