OTS解析错误:CFF2:表未对齐

时间:2019-01-16 14:37:40

标签: debugging fonts binary byte opentype

我刚刚解决了获取another error(我认为/希望)的问题,但是现在我遇到了这个错误:

OTS parsing error: CFF2: misaligned table

我正在阅读docs,但是我的问题是此错误是由于CFF2表格式错误,还是因为其前面的某些内容格式错误导致其实际上定位在错误的偏移量上。我不能仅从此错误消息中分辨出来。

我看了一下,看来CFF2表出现在156字节标记处,156 % 4 == 0,因此它与第4个字节标记对齐,这是Microsoft文档建议的(也许是必需的)。因此,如果说的是“表格未对齐”,但它的开头似乎是正确的,那么我开始假设它意味着其他含义,例如表格要么格式错误(导致其中的某些部分以某种方式未对齐,但是不确定如何工作) ),或者此错误是错误的错误消息或其他内容。

如果我删除CFF2表,它将为我提供:

OTS parsing error: cmap: misaligned table

但是两个表都不太可能格式错误,所以我认为还有其他事情发生。

1 个答案:

答案 0 :(得分:1)

此错误源自the ots tool。它告诉您表的offset(存储在tableDirectory中)不是4的倍数。也就是说:问题出在 tableDirectory 中,不一定是CFF2表数据(甚至还没有达到尝试解析CFF2表的地步……这也可能是错误的)。

与您最近在此处发布的其他问题一样:似乎任何例程正在编写字体的tableDirectory都是错误的,为偏移量或长度或类似问题添加了额外的字节或不正确的值。如果您希望其他工具正确解析字体,则确实需要首先解决该问题。