在pdf生成中使用CIDFont

时间:2017-04-22 14:04:55

标签: pdf fonts juce

所有

我正在为不太受欢迎的新语言编写pdf生成库。我已经完成了一些功能,包括文本输出和图像嵌入,但它只支持标准的14种字体。

我现在正在添加大字符集支持,这意味着我必须使用除标准14字体之外的其他字体。在我看来,utf-8编码的字符可以被pdf正确识别,通过CIDFont CMap,它可以找到角色的字形并绘制它。

我查了一些关于此的文档,发现最好的方法是将字体嵌入到pdf文档中,包括标准的14种字体。

因为大字符集是一个非常大的集合所以我认为我可以使用CharSet和CIDSet来解析它的一个子集。

我使用的语言包含JUCE作为内核,我可以用它来操作字体。所以我想我可以正常得到字体的字形。

但作为一个跨平台(桌面操作系统和移动操作系统),JUCE不支持更多的字体信息,例如leading,stemV,ItalicAngle,cap height等。即使我不知道的类型字体(Type1,TrueType,OpenType或其他)。所以我不知道它是否可以用于pdf生成?

如果不能,那么我必须手动解析外部type1(ccf?)或ttf(ttc)字体文件?然后我将大员工(约2MB)嵌入pdf中?

如果可以,那该怎么办?如何使用字符字形生成嵌入字体流?并使用自定义CMap来查找它们?

另一个问题是我应该使用什么编码?我使用utf-8作为字符串编码,我不知道它是否可以用于CIDFont。

代码位于:a pdf library for 8th

感谢。

1 个答案:

答案 0 :(得分:0)

您无疑需要自己解析字体,或者找一个模块来完成它。在节点中执行此操作的模块示例包括fontkitttfjsopentype。这里有太多的细节无法提供完整的答案,但您应该能够从这些模块中得到答案。