コード例 #1
0
 private function readString($name)
 {
     $font = $this->font;
     $size = $font->readUInt16();
     $this->data["{$name}Size"] = $size;
     $this->data[$name] = Font::UTF16ToUTF8($font->read($size));
 }
コード例 #2
0
    protected function _parse()
    {
        $font = $this->getFont();
        $data = array();

        $tableOffset = $font->pos();

        $data = $font->unpack(self::$header_format);

        $records = array();
        for ($i = 0; $i < $data["count"]; $i++) {
            $record = new Font_Table_name_Record();
            $record_data = $font->unpack(Font_Table_name_Record::$format);
            $record->map($record_data);

            $records[] = $record;
        }

        $names = array();
        foreach ($records as $record) {
            $font->seek($tableOffset + $data["stringOffset"] + $record->offset);
            $s = $font->read($record->length);
            $record->string = Font::UTF16ToUTF8($s);
            $names[$record->nameID] = $record;
        }

        $data["records"] = $names;

        $this->data = $data;
    }