有没有人有任何修复损坏 PDF 的建议或程序?当我打开文件时,我收到“打开此文档时出错。文件已损坏,无法修复。”似乎有很多工具,但没有一个是我可以称之为信誉良好的。是否有任何基于开源 Linux 的解决方案可以解决此问题?
答案1
Ghostscript 会自动修复损坏的 PDF...前提是它可以打开它(也就是说,如果它没有损坏到无法修复)。但之后您仍然需要仔细检查结果...
在 Linux 上,尝试以下命令:
gs \
-o repaired.pdf \
-sDEVICE=pdfwrite \
-dPDFSETTINGS=/prepress \
corrupted.pdf
在 Windows 上,尝试这个:
gswin32c.exe ^
-o repaired.pdf ^
-sDEVICE=pdfwrite ^
-dPDFSETTINGS=/prepress ^
corrupted.pdf
答案2
我有一个损坏的 PDF 文件print.pdf
,Ghostscript 无法打开它,但常用的图形 Linux PDF 查看器(Okular、Evince)可以正常打开。(在我的情况下,当在十六进制编辑器中打开时,文件开头有乱码,而不是 PDF 标头。)
这些 PDF 查看器使用 Poppler 作为后端 PDF 渲染器。因此,您可以使用 Poppler 的命令行工具修复 PDF。在 Ubuntu 中,这些都在软件包中poppler-utils
。我使用了:
pdftocairo -pdf print.pdf print_repaired.pdf
它生成了一个带有正确标题的 PDF 文件,现在可以接受 Ghostscript 等工具了。
答案3
mutool
(项目页面,手册页)将修复损坏的 PDF无需打印。
- 例如在 Ubuntu 上安装:
sudo apt-get install mupdf-tools
- 像这样运行:
mutool clean input.pdf output.pdf
mutool clean [options] input.pdf [output.pdf] [pages] The clean command pretty prints and rewrites the syntax of a PDF file. It can be used to repair broken files, expand compressed streams, filter out a range of pages, etc. If no output file is specified, it will write the cleaned PDF to "out.pdf" in the current directory.
另外,有一些工具和框架可以将 PDF 分解/反编译为其组件而无需渲染它们。这些工具和框架对于提取文本、脚本和图像很有用。请参阅此答案以获取此类工具的列表:https://reverseengineering.stackexchange.com/q/1526/8210例如,你可以尝试当前的最佳答案折纸,它有一个基于 GTK 的查看器。
答案4
由于 Chrome、Chromium 和 Firefox 可以打开 PDF 并打印为 PDF,因此如果它们能够正确呈现,那么这可能会起作用。这也可以用于修改格式、页数等。
LibreOffice 还可以读写 PDF
GIMP 也可以读取和写入 PDF,尽管在处理多页文档时它并不是最实用的应用程序
一般来说,如果您安装的任何应用程序可以打开损坏的 PDF 文件,并且您安装了“打印为 PDF”打印机,那么您就可以开始了