使用损坏的外部参照表修复pdf

时间:2017-03-31 20:42:53

标签: python pdf ghostscript

是否有任何可以使用损坏的外部参照表修复pdf的解决方案(最好是在Python中)?

我有一个pdf,我试图在Ghostscript中转换为png并收到以下错误:

****错误:读取XREF表时发生错误。    ****文件已损坏。这可能是由此造成的    转换或转移文件时出现问题****。

但是,我可以在Mac上预览中打开pdf,当我使用预览导出pdf时,我可以转换导出的pdf。

有没有办法修复pdf而不必手动打开它们并导出它们?

1 个答案:

答案 0 :(得分:0)

如果文件在Ghostscript中按预期呈现,则可以通过GS将其运行到pdfwrite设备并创建一个不会被损坏的新PDF文件。

预览(就像Acrobat一样)几乎肯定会默默地在后台修复问题。 Ghostscript也会这样做,但与其他应用程序不同,我们觉得你需要知道文件有问题。首先让你知道它的损坏,其次,如果文件在Ghostscript(或者其他应用程序)中呈现错误,你知道原因。

请注意,外部参照损坏主要有两个原因;首先,应用程序的开发人员没有仔细阅读规范并且外部参照中的文件偏移是正确的,但格式不正确(这种情况并不罕见,GS的修复将是无害的),其次是真正的文件在运输过程中或通过编辑它已被损坏。

在后一种情况下,可能还有其他问题,Ghostscript也会尝试警告你。如果您没有收到任何其他警告或错误,那么它可能只是一个格式错误的外部参照表。