我正在解析 CFF 数据。我已经到了“Top DICT INDEX”条目的地步。我已经成功解析了版本数据和“Name INDEX”,但是我正在努力解析下一个条目“Top DICT INDEX”。
根据 Adobe 技术说明 #5176 第 8 节:
这包含存储在 INDEX 结构中的 FontSet 中所有字体的顶级 DICT。
所以我认为将这个字典索引解析为 Name INDEX 是合乎逻辑的,除了将数组条目视为 char 数组之外,我会将它们解析为 DICT 数据类型。这就是我遇到问题的地方。INDEX 数据类型以大端格式声明两字节 (Card16) 数组计数。根据 INDEX 的元数据,我有 257 个条目(两个字节,其中 1 (data[offset] << 8) + data[++offset]
)。但规范指出:
此 INDEX 中包含的对象在顺序和编号上都与 Name INDEX 中的对象相对应。
My Name INDEX 包含 1 个条目(实际字体的名称)。所以我有点困惑我是否在数据解析的某个地方有偏移问题,或者实际的字体是无效的?