CFF字体头部的offSize字段适用于哪些偏移量?
CFF头部
offSize字段的实际适用范围 CFF头部定义的offSize字段的作用范围非常有限,仅适用于紧随CFF头部之后的Font Index(字体索引表) 中的偏移字段,其余所有场景的偏移都不会使用这个全局定义的offSize值。
具体适用场景和排除场景如下:
- 唯一适用场景:Font Index的偏移数组
Font Index是CFF头之后的第一个数据块,它的偏移数组中每个元素的字节长度,完全由头部offSize指定,取值范围为1~4字节,对应偏移量的实际字节数。 - 不适用的场景:
- 后续所有其他索引表(包括Name INDEX、String INDEX、Charset INDEX、CharStrings INDEX等)都自带独立的
offSize字段,各表的偏移长度由自身的offSize决定,和全局offSize无关 - 各类字典中的偏移操作数(比如Top DICT中的
charset、Encoding、CharStrings等字段的取值)均遵循字典操作数的编码规则解析,和全局offSize没有关联
- 后续所有其他索引表(包括Name INDEX、String INDEX、Charset INDEX、CharStrings INDEX等)都自带独立的
原规范的描述容易让人误解为该
offSize是全局生效的字段,实际是文档表述不够严谨,实际实现中所有解析器都仅将其作用于Font Index。
内容的提问来源于stack exchange,提问作者jochen
相关产品推荐
相关产品推荐

