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 = $metrics[$mid++];
31 $leftSideBearing = $metrics[$mid++];
32 $data[$gid] = array($advanceWidth, $leftSideBearing);
35 if ($numOfLongHorMetrics < $numGlyphs) {
36 $lastWidth = end($data);
37 $data = array_pad($data, $numGlyphs, $lastWidth);
43 protected function _encode() {
44 $font = $this->getFont();
45 $subset = $font->getSubset();
50 foreach ($subset as $gid) {
51 $length += $font->writeUInt16($data[$gid][0]);
52 $length += $font->writeUInt16($data[$gid][1]);