GhostScript **** 警告:由于 CID 字体,将“0000000000 XXXXX n”视为免费条目错误

GhostScript **** Warning: considering '0000000000 XXXXX n' as a free entry Error because of CID Font

我正在尝试使用 GhostScript9.19 将 PDF 转换为图像。 但有时我可以看到下面的警告日志。 (这个日志重复了很多次) **** 警告:将“0000000000 XXXXX n”视为免费条目

幸运的是,图像已创建。 但是,显示错误日志时需要很长时间才能获取图像。 在正常情况下,转换大约需要 200~400ms。 但是在这种情况下(警告条件),它需要超过 15 秒。

我找到了解决这个问题的线索。 Handling (remapping) missing/problematic (CID/CJK) fonts in PDF with ghostscript?

此问题由中文、日文和韩文的 CID 字体引起。

特别是,我不需要转换 PDF 文件中的文本。 (或者我可以更改任何字体而不是 CID 字体。) 我需要转换PDF文件中的图片。

那么,如何在使用GhostScript将PDF转图片时跳过pdf中的文字呢?有选择吗? 或者我可以编辑 GhostScript 的源代码...但我不知道我需要更改什么..

请多多指教

我确定问题不是CIDFonts引起的,'problem'是PDF文件无效引起的。交叉引用 table 包含不符合规范的条目。这就是 Ghostscript 告诉你的。

但是,我非常非常怀疑这就是处理时间这么长的原因。所用时间和警告消息的组合使我怀疑该文件以其他方式无效(可能是通过电子邮件或其他更改 CR/LF 个字符的过程)。

如果文件在某些​​方面被确定为无效(例如,交叉引用 table 声明对象位于文件中的特定偏移处,但该位置没有对象)然后 Ghostscript 将尝试修复该文件。它通过重新扫描整个文件以查找每个对象定义并重建交叉引用来实现这一点 table。这可能是一个漫长的过程,如果文件包含大量二进制数据(例如图像),则可能会花费大量时间。

因此,即使您告诉 Ghostscript 忽略文本也无法解决您的问题,inptu PDF 文件仍会以某种方式损坏,这意味着需要重建交叉引用 table , 所以仍然需要同样多的时间。

PDF 文件一旦损坏,就没有简单的方法可以修复它。如果您看到许多这样的文件,那么您应该检查文件的来源。请注意,完整的成绩单(您未提供)应包含有关生成 PDF 文件的应用程序的信息。

回答问题; Ghostscript 的最新版本(你没有提到你使用的是什么版本,也没有提到在哪个操作系统上)包括一组 3 个命令行选项来忽略各种类型的输入。如果你设置 -dFILTERTEXT 那么文本将被删除。当然你可以修改 Ghostscritpt 源代码。然而,PDF 解释器主要是用 PostScript 编写的,除非您是一位非常有经验的 PostScript 程序员,否则您会发现修改它具有挑战性。

即使您确实修改了源代码或使用 -dFILTERTEXT,我怀疑您是否能够避免重建 PDF 文件。没有看到示例就无法肯定地说,但在我看来 PDF 文件只是损坏了,需要修复。