PageRenderTime 47ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/phenx/php-font-lib/www/font_info.php

https://gitlab.com/techniconline/kmc
PHP | 158 lines | 127 code | 24 blank | 7 comment | 22 complexity | 0705cbcd1a32da21225152beef9fcede MD5 | raw file
  1. <?php
  2. /**
  3. * @package php-font-lib
  4. * @link https://github.com/PhenX/php-font-lib
  5. * @author Fabien Ménager <fabien.menager@gmail.com>
  6. * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  7. */
  8. ?><!DOCTYPE html>
  9. <html>
  10. <head>
  11. <meta charset="utf-8"/>
  12. <title>Font information</title>
  13. <link rel="stylesheet" href="css/style.css"/>
  14. <link rel="stylesheet" href="css/blitzer/jquery-ui-1.8.14.custom.css"/>
  15. <script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
  16. <script type="text/javascript" src="js/jquery-ui-1.8.14.custom.min.js"></script>
  17. <script type="text/javascript" src="js/glyph.js?v=5"></script>
  18. <script type="text/javascript">
  19. $(function () {
  20. $("#tabs").tabs({
  21. select: function (event, ui) {
  22. if (ui.panel.id == "tabs-unicode-map") {
  23. $(ui.panel).load("<?php echo $_SERVER['REQUEST_URI']; ?>&unicodemap=1");
  24. }
  25. }
  26. });
  27. });
  28. </script>
  29. </head>
  30. <body>
  31. <?php
  32. require_once "../classes/Font.php";
  33. $fontfile = null;
  34. if (isset($_GET["fontfile"])) {
  35. $fontfile = basename($_GET["fontfile"]);
  36. $fontfile = "../fonts/$fontfile";
  37. }
  38. $unicodemap = @$_GET["unicodemap"];
  39. $t = microtime(true);
  40. $font = Font::load($fontfile);
  41. if ($font instanceof Font_TrueType_Collection) {
  42. $font = $font->getFont(0);
  43. }
  44. if ($unicodemap) {
  45. ?>
  46. <style type="text/css">
  47. @font-face {
  48. font-family: unicode-map;
  49. font-weight: normal;
  50. font-style: normal;
  51. font-variant: normal;
  52. src: url('<?php echo $fontfile; ?>');
  53. }
  54. </style>
  55. <div class="unicode-map">
  56. <?php
  57. $subtable = null;
  58. foreach ($font->getData("cmap", "subtables") as $_subtable) {
  59. if ($_subtable["platformID"] == 3 && $_subtable["platformSpecificID"] == 1) {
  60. $subtable = $_subtable;
  61. break;
  62. }
  63. }
  64. $empty = 0;
  65. $names = $font->getData("post", "names");
  66. for ($c = 0; $c <= 0xFFFF; $c++) {
  67. if (($c % 256 == 0 || $c == 0xFFFF) && $empty > 0) {
  68. echo "<b style=\"width:" . ($empty * 3) . "px\"></b>";
  69. $empty = 0;
  70. }
  71. if (isset($subtable["glyphIndexArray"][$c])) {
  72. $g = $subtable["glyphIndexArray"][$c];
  73. if ($empty > 0) {
  74. echo "<b style=\"width:" . ($empty * 3) . "px\"></b>";
  75. $empty = 0;
  76. }
  77. echo "<i><s>&#$c;<br /><div class=\"info\">$c<br />" . (isset($names[$g]) ? $names[$g] : sprintf("uni%04x", $c)) . "</div></s></i>";
  78. } else {
  79. $empty++;
  80. }
  81. } ?>
  82. </div>
  83. <?php
  84. } else {
  85. $font->parse();
  86. //$font->saveAdobeFontMetrics("$fontfile.ufm");
  87. ?>
  88. <span style="float: right;">
  89. File size: <?php echo round(filesize($fontfile) / 1024, 3); ?>KB &mdash;
  90. Memory: <?php echo(memory_get_peak_usage(true) / 1024); ?>KB &mdash;
  91. Time: <?php echo round(microtime(true) - $t, 4); ?>s
  92. <br/>
  93. <a href="make_subset.php?fontfile=<?php echo $fontfile; ?>&amp;name=<?php echo urlencode($font->getFontSubfamilyID()); ?>">Make
  94. a subset of this font</a>
  95. </span>
  96. <h1><?php echo $font->getFontFullName(); ?></h1>
  97. <h3><?php echo $font->getFontVersion(); ?></h3>
  98. <hr/>
  99. <div id="tabs">
  100. <ul>
  101. <li><a href="#tabs-header">Header</a></li>
  102. <?php foreach ($font->getTable() as $entry) {
  103. $tag = $entry->tag;
  104. $data = $font->getData($tag);
  105. ?>
  106. <li>
  107. <a <?php if (!$data) { ?> style="color: #ccc;" <?php } ?>
  108. href="#tabs-<?php echo preg_replace("/[^a-z0-9]/i", "_", $tag); ?>"><?php echo $tag; ?></a>
  109. </li>
  110. <?php } ?>
  111. <li><a href="#tabs-unicode-map">Unicode map</a></li>
  112. </ul>
  113. <div id="tabs-header">
  114. <pre><?php echo var_export($font->header->data, true); ?></pre>
  115. </div>
  116. <?php foreach ($font->getTable() as $table) {
  117. $tag = $table->tag;
  118. $data = $font->getData($tag);
  119. ?>
  120. <div id="tabs-<?php echo preg_replace("/[^a-z0-9]/i", "_", $tag); ?>">
  121. <?php
  122. if ($data) {
  123. echo $font->getTableObject($tag)->toHTML();
  124. } else {
  125. echo "Not yet implemented";
  126. }
  127. ?>
  128. </div>
  129. <div id="tabs-unicode-map"></div>
  130. <?php } ?>
  131. </div>
  132. <?php } ?>
  133. </body>
  134. </html>