我试图使用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的SourceCode ......但我不知道我需要改变什么..
请给我一些意见。
答案 0 :(得分:3)
我确信问题不是由CIDFonts引起的,“问题”是由PDF文件无效引起的。交叉引用表具有不符合规范的条目。这就是Ghostscript告诉你的。
然而,我非常非常怀疑这是处理时间过长的原因。时间和警告消息的组合使我怀疑该文件在某些其他方面是无效的(可能是通过电子邮件或其他一些改变CR / LF字符的过程)。
如果确定文件在某些方面无效(例如,交叉引用表指出对象位于文件中的特定偏移量但该位置没有对象),则Ghostscript将尝试修复文件。它通过重新扫描整个文件来查找每个对象定义并重建交叉引用表来完成此操作。这可能是一个漫长的过程,如果文件包含大量二进制数据(例如图像),则可能需要很长时间。
所以,即使你告诉Ghostscript忽略了它不会解决问题的文本,inptu PDF文件仍然会被损坏,这意味着需要重建交叉引用表,所以仍然需要同样多的时间。
PDF文件损坏后,没有简单的方法可以修复它。如果您看到许多这样的文件,那么您应该检查文件的来源。请注意,完整的成绩单(您未提供)应包括有关生成PDF文件的应用程序的信息。
回答这个问题;最新版本的Ghostscript(你没有提到你正在使用的版本,也没有提到在哪个操作系统上)包含一组3个命令行选项来忽略各种类型的输入。如果设置-dFILTERTEXT,则将删除文本。当然你可以修改Ghostscritpt源代码。然而,PDF解释器主要是用PostScript编写的,除非你是一位非常有经验的PostScript程序员,否则你会发现它很难修改。
即使您确实修改了源代码,或使用-dFILTERTEXT,我怀疑您是否能够避免重建PDF文件。如果没有看到一个例子,就不可能肯定地说,但听起来像PDF文件只是损坏了,需要修复。