aspose.info
ZH

CFF2 - 紧凑字体文件格式版本 2

更新于

什么是一 .cff2 文件?

CFF2 文件格式是 CFF 文件格式的 2.0 版,允许有效存储字形轮廓和类似于 CFF 文件格式的元数据。 CFF2 与 CFF 的不同之处在于它旨在作为带有标签 CFF2 的“sfnt"表在 OpenType 字体的上下文中使用。它不能作为独立程序使用,它依赖于其他 OpenType 表中的数据。

CFF2 文件格式

CFF2 文件格式规范 包含有关文件格式的内部数据布局、数据类型、表格和其他内部信息的详细信息。可供开发者参考。关于这些的一些细节如下。

数据布局

CFF2 文件格式的二进制数据在逻辑上被组织为多个独立的数据结构。二进制数据内的布局如下表所示。

进入评论
标题固定位置
顶级DICT固定位置
全球子指数固定位置
变化商店
FDSelect仅当字体 DICT INDEX 中有多个字体 DICT 时才显示。
字体字典索引
字体 DICT 数组包含在字体 DICT INDEX 中。
私人DICT每个字体 DICT 一个。

只有前三个结构是基于固定位置的。剩余部分通过偏移量到达,并且可以更改它们的顺序。

数据类型

CFF2 文件格式使用以下数据类型。

名称范围描述
uint80 到 2558 位无符号数
uint160 到 6553516位无符号数
uint320 到 429496729532位无符号数
偏移量变化1、2、3 或 4 字节偏移(由索引表中的 OffSize 字段指定)
OffSize1 到 41 字节无符号数指定一个或多个偏移字段的大小

它以大端字节顺序存储所有多字节数值数据和偏移量字段。 CFF2 格式没有填充字节,因为它不遵守任何对齐限制。

DICT 数据

CFF2 文件包含字体字典数据,作为紧凑标记化格式的键值对。字典键被编码为 1 或 2 字节运算符,字典值被编码为可变大小的数字操作数。使用 DICT 数据格式的结构共有三种:“Top DICT"、“Font DICT"和“Private DICT"。定义了许多不同大小的整数操作数类型,并按下表所示进行编码(操作数的第一个字节是 b0,第二个字节是 b1,依此类推)。

大小b0 范围取值范围取值计算
132 到 246-107 到 +107b0 - 139
2247 到 250+108 到 +1131(b0 - 247) * 256 + b1 + 108
2251 到 254-1131 至 -108-(b0 - 251) * 256 - b1 - 108
328-32768 至 +32767b1 « 8
529-(2^31) 到 +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

标题

二进制数据以具有下表所示格式的标头开始。

类型名称描述
uint8主要版本格式化主要版本。设置为 2。
uint8次要版本格式化次要版本。设置为零。
uint8标头尺寸标头大小(字节)。
uint16顶部字典长度顶部 DICT 结构的长度(以字节为单位)。

参考

另请参阅