进行了一些搜索,遇到this来识别未嵌入但在PDF中引用的字体。 我需要重新创建嵌入它们的PDF。
我已经看过使用Py2PDF2或pdfrw重新创建PDF,但他们都没有选择嵌入字体。
有人知道解决方案吗?我不需要纯Python。 或者,我可以开始尝试阅读PDF格式并尝试自己创建一个字体嵌入器,但这对我目前的Python /编程技能来说似乎令人生畏/太大。
答案 0 :(得分:1)
如果您有可用的字体,则可以使用Ghostscript创建新的PDF文件。您需要使字体可用于Ghostscript,这意味着创建适当的字体记录。 Ghostscript有关于如何执行此操作的文档,但它确实需要一些努力和可能的一些实验才能得到正确的结果。
您还没有提供示例PDF文件,所以我不具体,但PDF文件可以包含字体和CIDFonts。 CIDFonts应该始终被嵌入但不幸的是一些创建者忽略了它。 TrueType字体,特别是带有TrueType轮廓的CIDFonts,比常规字体更难创建替代记录,但是可以取得合理的成功,特别是拉丁语言。请注意,如果字体不可用,并且您告诉pdfwrite设备嵌入所有字体,那么它可能会嵌入一个非常不正确的字体,例如Helvetica,同时通过丢失字体的名称调用它。
PDF格式相当复杂,字体格式也相当复杂,除非您已经熟悉这两种技术,否则编写嵌入字体的工具将会是一项重要工作(实际上它即使是很重要的工作也是如此)你很熟悉他们。)
很大程度上取决于PDF文件的创建方式和使用的字体。