-1

全部

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

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

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

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

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

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

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

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

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

代码位于:a pdf library for 8th

谢谢。

4

1 回答 1

0

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

于 2017-04-23T04:45:16.320 回答