修复外部参照损坏的 pdf table

Repairing pdfs with damaged xref table

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

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

**** 错误:读取外部参照 table 时出错。 **** 文件已损坏。这可能是由于 **** 转换或传输文件时出现问题。

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

有没有什么方法可以修复 pdf 而无需手动打开和导出它们?

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

Preview(和 Acrobat 一样)几乎肯定会在后台默默地修复问题。 Ghostscript 会做同样的事情,但与其他应用程序不同,我们认为您需要知道该文件有问题。首先,您知道它已损坏,其次,如果文件在 Ghostscript(或其他应用程序)中呈现不正确,您就会知道原因。

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

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