是否有用于对OpenType PS(CFF)字体进行子集化的C / C ++库(最好是开源)? FontForge 可以参考,但我发现very negative comments关于它的稳定性。
答案 0 :(得分:1)
Windows API包含一个Font Embedding Services Library我相信它会在准备嵌入文档的字体时执行子集化。特别参见CreateFontPackage
function。 Windows API可以从C / C ++中调用。当然,它的实现不是开源的。
Adobe Font Development Kit for Opentype (AFDKO)拥有可让您执行各种操作的库。也许它可以做你想要的那种子集化。它的库最常用Python语言调用,但是可以为Python库构建C / C ++绑定,反之亦然。 AFDKO有一个最终用户许可协议,据我所知是专有但不繁琐的。你应该自己判断。
我没有使用这些API中的任何一个用于子集化字体,我只是通过声誉来了解它们。
答案 1 :(得分:-1)
不幸的是,我认为你找不到一个。
我试图在互联网上找到你想要的lib,但是失败了。似乎没有开源库可以做到这一点,虽然有十几个lib可以枚举TrueType字体......
最后,我自己做了。因为代码归我所工作的公司所有,所以我无法给你代码。
如果你想实现它,我认为阅读"紧凑字体格式规范"(" Adobe技术说明#5176")和" Type 2 Charstring Format"(" Adobe Technical Note#5177")。 MicroSoft的页面https://www.microsoft.com/typography/otspec/otff.htm也很有帮助。要做的主要事情是从OpenType文件的CFF读取数据,并将要保留的数据重写到新文件中。
祝你好运!