Я анализирую данные CFF. Я дошел до точки "Top DICT INDEX". Я успешно проанализировал данные версии и «Name INDEX», однако мне сложно разобрать следующую запись «Top DICT INDEX».
В соответствии с технической запиской Adobe № 5176, раздел 8:
Содержит DICT верхнего уровня всех шрифтов в наборе шрифтов, хранящихся в структуре INDEX.
Так что я подумал, что было бы логично проанализировать этот индекс dicts так же, как Name INDEX, за исключением того, что элементы массива рассматривались как массивы символов, которые я бы анализировал как типы данных DICT. Вот где у меня проблема. Тип данных INDEX объявляет двухбайтовый (Card16) счетчик массива в формате с прямым порядком байтов. Согласно метаданным ИНДЕКСА у меня 257 записей (два байта с 1 в нем (data[offset] << 8) + data[++offset]
). Но спецификация гласит:
Объекты, содержащиеся в этом ИНДЕКСЕ, соответствуют объектам в ИНДЕКСЕ имени как в порядке, так и в номере.
Мое имя INDEX содержало 1 запись (название фактического шрифта). Поэтому я немного запутался в том, есть ли у меня проблема смещения по одному при разборе данных или неверный шрифт?