在 pdf 生成中使用 CIDFont

Using CIDFont on pdf generation

全部

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

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

我查了一些这方面的资料,发现最好的办法是把字体嵌入到pdf文档中,包括标准的14种字体。

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

我使用的语言已经包装 JUCE 因为它是内核,我可以用它来操纵字体。所以我想我可以正常获取字体的字形。

但作为cross平台(桌面os和移动os),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

谢谢。

你无疑需要自己解析字体,或者找一个模块来做。在节点中执行此操作的模块示例包括 fontkit, ttfjs, and opentype。细节太多,无法在这里给出完整的答案,但您应该能够从这些模块中得出答案。