损坏的TrueType字体检测

dir*_*tly 6 fonts truetype

我目前正在处理一个腐败的TrueType字体.我可以使用的程序告诉我表中存在问题maxp- 该maxContours成员的值太大.有没有一种可靠的方法来检测某个maxContours值是太高还是太低(是的,这也可能是一个问题)?(字体是程序,因此检测字体文件的一种方法是执行它们,但这对我来说不是一个可接受的解决方案.)

我不需要字体库,因为我无法添加字体库.我已经推出了自己的TrueType字体解析器.剩下的就是检查上面提到的表的给定值是否不正确.然后我会将解析器和支票添加到我的产品中.

我没有重建字体的选项.我是一个消费者 - 我需要检测传入的字体是否已损坏,以及是否尽可能少地完成工作.

万一它有帮助 - 我在Windows XP/Vista 32和64位及其服务器版本!

bob*_*nce 0

您使用什么平台?我已经能够使用Python 的FontTools库非常愉快地破解 TrueType 文件:

\n\n
font= fontTools.ttLib.TTFont("suspect.ttf")\nfont[\'maxp\'].maxContours\n
Run Code Online (Sandbox Code Playgroud)\n\n

ETA re q 编辑:那么问题只是 \xe2\x80\x9c maxContours 的值太低/太高\xe2\x80\x9d 吗?据我所知,没有记录的限制,但我知道在 \xe2\x80\x98 上添加一些 \xe2\x80\x99 到 maxContours 是相当常见的,以防字形包含比它更多的轮廓状态。

\n\n

(麻烦的字体中的 maxContours 是什么,它与字形中实际使用的轮廓数有何关系?)

\n