出于 PDF 字体嵌入的目的,我的任务是从 CFF OpenType 文件中删除未使用字形的字形轮廓数据以减小其大小。
问题在于,与 TTF 不同,CFF 将其字形轮廓数据“压缩”到子例程中,并在字形之间创建依赖关系,我不能只从 cmap 和轮廓数据中删除字形及其匹配的字符。
由于有几个像 otfcc 这样的开源 CFF 库可以子程序化 CFF 文件,我想知道是否有库可以做相反的事情并撤消子程序化。
更新:我使用的库是 otfcc 和 sfntly。Sfntly 没有 CFF 解析器,所以我正在扩展一个,otfcc 确实有一个,但似乎没有子集选项,但源看起来更有希望。我还查看了 freetype,虽然它确实有 CFF 加载器,但似乎没有子集。
我目前已将 pdfbox 的 fontbox 从 Apache 移植到 sfntly 完成了一半。解析器工作,但子集仍然不完整。