123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- <?php
- include "head.inc";
- require_once "../dompdf_config.inc.php";
- function to_bytes($string) {
- $string = strtolower(trim($string));
-
- if (!preg_match("/(.*)([kmgt])/", $string, $matches)) {
- return intval($string);
- }
-
- list($string, $value, $suffix) = $matches;
- switch($suffix) {
- case 't': $value *= 1024;
- case 'g': $value *= 1024;
- case 'm': $value *= 1024;
- case 'k': $value *= 1024;
- }
-
- return intval($value);
- }
- ?>
- <a name="setup"> </a>
- <h2>Font manager</h2>
- <ul>
- <li style="list-style-image: url('images/star_02.gif');"><a href="#installed-fonts">Installed fonts</a></li>
- <li style="list-style-image: url('images/star_02.gif');"><a href="#install-fonts">Install new fonts</a></li>
- </ul>
- <h3 id="installed-fonts">Installed fonts</h3>
- <?php
- Font_Metrics::init();
- $fonts = Font_Metrics::get_font_families();
- $extensions = array("ttf", "afm", "afm.php", "ufm", "ufm.php");
- ?>
- <button onclick="$('#clear-font-cache-message').load('controller.php?cmd=clear-font-cache', function(){ location.reload(); })">Clear font cache</button>
- <span id="clear-font-cache-message"></span>
- <table class="setup">
- <tr>
- <th rowspan="2">Font family</th>
- <th rowspan="2">Variants</th>
- <th colspan="6">File versions</th>
- </tr>
- <tr>
- <th>TTF</th>
- <th>AFM</th>
- <th>AFM cache</th>
- <th>UFM</th>
- <th>UFM cache</th>
- </tr>
- <?php foreach($fonts as $family => $variants) { ?>
- <tr>
- <td class="title" rowspan="<?php echo count($variants); ?>">
- <?php
- echo $family;
- if ($family == DOMPDF_DEFAULT_FONT) echo ' <strong>(default)</strong>';
- ?>
- </td>
- <?php
- $i = 0;
- foreach($variants as $name => $path) {
- if ($i > 0) {
- echo "<tr>";
- }
-
- echo "
- <td>
- <strong style='width: 10em;'>$name</strong> : $path<br />
- </td>";
-
- foreach ($extensions as $ext) {
- $v = "";
- $class = "";
-
- if (is_readable("$path.$ext")) {
- // if not cache file
- if (strpos($ext, ".php") === false) {
- $class = "ok";
- $v = $ext;
- }
-
- // cache file
- else {
- // check if old cache format
- $content = file_get_contents("$path.$ext", null, null, null, 50);
- if (strpos($content, '$this->')) {
- $v = "DEPREC.";
- }
- else {
- ob_start();
- $d = include("$path.$ext");
- ob_end_clean();
-
- if ($d == 1)
- $v = "DEPREC.";
- else {
- $class = "ok";
- $v = $d["_version_"];
- }
- }
- }
- }
-
- echo "<td style='width: 2em; text-align: center;' class='$class'>$v</td>";
- }
-
- echo "</tr>";
- $i++;
- }
- ?>
- <?php } ?>
- </table>
- <h3 id="install-fonts">Install new fonts</h3>
- <script type="text/javascript">
- function checkFileName(form) {
- var fields = {normal: "Normal", bold: "Bold", bold_italic: "Bold italic", italic: "Italic"};
- var pattern = /\.[ot]tf$/i;
- var ok = true;
- if (!form.elements.family.value) {
- alert("The font name is required");
- form.elements.family.focus();
- return false;
- }
-
- $.each(fields, function(key, name){
- var value = form.elements["file["+key+"]"].value;
- if (!value) return;
-
- if (!value.match(pattern)) {
- alert("The font name specified for "+name+" is not a TrueType font");
- ok = false;
- return false;
- }
- });
-
- return ok;
- }
- </script>
- <?php
- if (auth_ok()) {
- $max_size = min(to_bytes(ini_get('post_max_size')), to_bytes(ini_get('upload_max_filesize')));
- ?>
- <form name="upload-font" method="post" action="controller.php?cmd=install-font" target="upload-font" enctype="multipart/form-data" onsubmit="return checkFileName(this)">
- <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_size; ?>" />
-
- <table class="setup">
- <tr>
- <td class="title">Name</td>
- <td><input type="text" name="family" /></td>
- <td rowspan="6"><iframe name="upload-font" id="upload-font" style="border: 0; width: 500px;"></iframe></td>
- </tr>
- <tr>
- <td class="title">Normal</td>
- <td><input type="file" name="file[normal]" /></td>
- </tr>
- <tr>
- <td class="title">Bold</td>
- <td><input type="file" name="file[bold]" /></td>
- </tr>
- <tr>
- <td class="title">Bold italic</td>
- <td><input type="file" name="file[bold_italic]" /></td>
- </tr>
- <tr>
- <td class="title">Italic</td>
- <td><input type="file" name="file[italic]" /></td>
- </tr>
- <tr>
- <td></td>
- <td><button>Install !!</button></td>
- </tr>
- </table>
- </form>
- <?php }
- else {
- echo auth_get_link();
- } ?>
- <?php include("foot.inc"); ?>
|