是否有任何用于子集 OpenType PS (CFF) 字体的 C/C++ 库(最好是开源)? 可以参考FontForge ,但我发现对其稳定性的评价非常负面。
2 回答
Windows API 包括一个字体嵌入服务库,我相信它执行子集化作为准备嵌入文档的字体的一部分。具体见CreateFontPackage
函数。Windows API 可从 C/C++ 调用。当然,它的实现不是开源的。
Adobe Font Development Kit for Opentype (AFDKO)具有可让您执行各种操作的库。也许它可以做你所追求的那种子集。它的库最常从 Python 语言调用,但可以为 Python 库构建 C/C++ 绑定,反之亦然。AFDKO 有一个最终用户许可协议,我理解它是专有的,但并不繁琐。你应该自己判断。
我没有将这些 API 中的任何一个用于子集字体的目的,我只是通过声誉来了解它们。
不幸的是,我想你找不到一个。
我试图在 Internet 上找到您想要的库,但失败了。似乎没有开源库可以做到这一点,尽管有十几个库可以子集 TrueType 字体......
最后,我自己做出来了。因为代码归我工作的公司所有,所以我不能给你代码。
如果你想实现它,我认为阅读“The Compact Font Format Specification”(“Adobe Technical Note #5176”)和“The Type 2 Charstring Format”(“Adobe Technical Note #5177”)会很有帮助。微软的页面https://www.microsoft.com/typography/otspec/otff.htm也很有帮助。要做的主要事情是从 OpenType 文件的 CFF 中读取数据,并将要保留的数据重写到新文件中。
祝你好运!