CFFデータを解析しています。「TopDICTINDEX」エントリーのポイントに到達しました。バージョンデータと「NameINDEX」の解析に成功しましたが、次のエントリ「TopDICTINDEX」の解析に苦労しています。
Adobeテクニカルノート#5176セクション8によると:
これには、INDEX構造に格納されているFontSet内のすべてのフォントのトップレベルのDICTが含まれています。
したがって、配列エントリをchar配列として扱うことを除いて、このdictのインデックスをName INDEXと同じように解析するのが論理的だと思いました。ただし、DICTデータ型として解析します。ここで問題が発生しました。INDEXデータ型は、ビッグエンディアン形式で2バイト(Card16)の配列カウントを宣言します。INDEXのメタデータによると、257個のエントリがあります(2バイトに1が含まれています(data[offset] << 8) + data[++offset]
)。しかし、仕様には次のように記載されています。
このINDEXに含まれるオブジェクトは、名前INDEXのオブジェクトに順序と番号の両方で対応します。
My Name INDEXには、1つのエントリ(実際のフォントの名前)が含まれていました。それで、データ解析のどこかに1つずつオフセットの問題があるのか、実際のフォントが無効なのか、少し混乱していますか?