首页 > 解决方案 > OTS 解析错误:CFF2:未对齐的表

问题描述

我刚刚解决了出现另一个错误的问题(我认为/希望),但现在我收到了这个错误:

OTS parsing error: CFF2: misaligned table

我正在阅读文档,但我的问题是这个错误是因为CFF2表格格式错误,还是因为它前面的某些内容格式错误导致它基本上定位在错误的偏移量处。我不能从这个错误信息中分辨出来。

我看了看,似乎CFF2表格出现在 156 字节标记处156 % 4 == 0,因此它与第 4 个字节标记对齐,这是 Microsoft 文档推荐的(可能是必需的)。因此,如果它说“未对齐的表格”,但它的开头似乎是正确的,我开始假设它意味着其他东西,比如表格要么格式错误(导致其中的某些部分以某种方式未对齐,但不确定它是如何工作的),或者这个错误是错误的错误信息或什么的。

如果我删除CFF2表格,它会给我这个:

OTS parsing error: cmap: misaligned table

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

标签: debuggingfontsbinarybyteopentype

解决方案


ots错误源于工具。它告诉您该表的offset(存储在 tableDirectory 中)不是 4 的倍数。也就是说:问题出在tableDirectory中,不一定是 CFF2 表数据(它甚至没有到达试图解析 CFF2 表的点......它也可能是错误的)。

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


推荐阅读