| 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"); ?>
 |