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
9 namespace FontLib\Table\Type
;
10 use FontLib\Table\Table
;
15 * @package php-font-lib
17 class hmtx
extends Table
{
18 protected function _parse() {
19 $font = $this->getFont();
20 $offset = $font->pos();
22 $numOfLongHorMetrics = $font->getData("hhea", "numOfLongHorMetrics");
23 $numGlyphs = $font->getData("maxp", "numGlyphs");
28 $metrics = $font->readUInt16Many($numOfLongHorMetrics * 2);
29 for ($gid = 0, $mid = 0; $gid < $numOfLongHorMetrics; $gid++
) {
30 $advanceWidth = isset($metrics[$mid]) ?
$metrics[$mid] : 0;
32 $leftSideBearing = isset($metrics[$mid]) ?
$metrics[$mid] : 0;
34 $data[$gid] = array($advanceWidth, $leftSideBearing);
37 if ($numOfLongHorMetrics < $numGlyphs) {
38 $lastWidth = end($data);
39 $data = array_pad($data, $numGlyphs, $lastWidth);
45 protected function _encode() {
46 $font = $this->getFont();
47 $subset = $font->getSubset();
52 foreach ($subset as $gid) {
53 $length +
= $font->writeUInt16($data[$gid][0]);
54 $length +
= $font->writeUInt16($data[$gid][1]);