修复 PDF
打不开的 PDF 往往只是结构受损:交叉引用表(xref)损坏、尾部(trailer)不匹配或残留,或者一次糟糕的保存后对象偏移不再对齐。本工具用一个宽容的解析器打开文件,保留它能读到的每一页,并从零写出一个全新的 PDF,从而干净地重新生成交叉引用表和尾部。它无法凭空造出真正丢失的数据,但能修复数量惊人的一类 PDF:页面本身完好,唯一的问题就是结构损坏。全部在你的浏览器中运行,因此文件绝不会离开你的设备。
修复的原理
-
1
上传 PDF
把打不开的文件拖放进来。它留在你的设备上;不会有任何内容发送到服务器。
-
2
工具重新读取它
一个宽容的 PDF 引擎打开文件,忽略损坏的结构,读取它能恢复的每一页。
-
3
重建出干净的文件
页面被复制到一份全新文档中,因此交叉引用表和尾部都从零写出,天生就是有效的。
-
4
下载结果
你会得到一个能干净打开的全新 PDF。在你的阅读器中打开它,确认所有页面都在。
这项修复能修什么、不能修什么
本工具的做法是重新读取 PDF 并写出一个完全崭新的文件。这会重新生成你页面周围的结构,从而修复结构性缺陷,但无法找回真正缺失的数据。
| 问题 | 能修复? | 原因 |
|---|---|---|
| 交叉引用表损坏或不匹配 | 能 | 新文件会用一张全新、正确的 xref 写出 |
| 糟糕保存后残留或过时的尾部 | 能 | 会为重建的文件生成一个干净的尾部 |
| 反复增量保存留下的杂物 | 能 | 只保留当前页面;旧的修订版本被丢弃 |
| 阅读器拒绝、但解析器仍能读到的对象 | 常常能 | 在干净文件中重新写出它们,通常能满足严格的阅读器 |
| 文件被截断以致解析器根本打不开 | 不能 | 若引擎无法解析文件,就没有可重建的东西 |
| 对象数据真正缺失或不可读 | 不能 | 工具只保留它能读到的部分;其余无法凭空造出 |
| 用未知口令加密 | 不能 | 没有口令,内容就一直锁着 |
PDF 结构为何会损坏
- 下载或上传不完整。 传输途中丢失最后几个字节的文件,会丢掉位于尾部的交叉引用表。
- 写入中断。 保存时崩溃的程序,可能从未刷写出一个有效的尾部。
- 糟糕的二进制传输。 以会改写换行符的文本模式搬运 PDF,会破坏压缩流内部的字节。
- 杂乱的增量编辑。 一次次覆盖保存,可能留下一种结构:即便页面完好,某些阅读器仍会拒绝它。
它不做的事
- 它无法恢复解析器根本打不开的 PDF;严重截断的文件可能超出本工具的能力。
- 它不修复存放在 PDF 内部的受损图片或字体;一张损坏的 JPEG,即便装进干净的容器也仍是损坏的。
- 它不移除口令,也不解密受保护的内容。
对于这些情况,在本地运行的桌面工具(如 Ghostscript 或 qpdf)有时能走得更远。
如何避免损坏的 PDF
用代码生成 PDF 时,请正确关闭文件,以便写出尾部。通过 HTTP 提供它们时,请发送正确的 Content-Length,好让客户端知道文件何时接收完整。编辑前保留一份原始副本,这样糟糕的保存永远不会成为你唯一的版本。
常见问题
它会保留解析器能读到的每一页,对结构受损的文件而言,这通常就是全部。若某些页面真的丢失了(其数据已不在文件中),工具无法把它们找回来;它只会围绕剩下的内容干净地重建。
只要它们结构完好就能:会原样复制到新文件中。若某个字体或图片流本身已损坏,那个特定的字形或图片可能仍显示为空白,但页面其余部分不受影响。
只有当内容并非真正被锁定时才行。工具会尝试越过基本加密去读取,但它没有口令输入框,也无法破解真正的保护。用你没有的口令锁定的文件是无法恢复的。
不会。文件完全在你的浏览器中,由页面内运行的 PDF 引擎读取并重建。没有任何内容被发送到任何地方,因此你可以安全地修复机密文档。
毫发无损。工具绝不改动你的源文件;它只写出一份单独的、修复后的副本。下载新文件,确认它能打开,在你确定之前请保留原件。
相关工具
从 PDF 中提取图像
从PDF文件中提取所有嵌入的图像,并可单独下载或合并为一个ZIP文件,同时保留原始分辨率。
PDF比较
逐页比较两个PDF中可提取的文本,无需上传文件,即可在浏览器内高亮变更内容。
PDF 表单填写工具
在浏览器中填写现有 AcroForm 字段,保留预填内容,并下载可继续编辑或主动扁平化的 PDF 副本。
将文档图片扫描为 PDF
在浏览器中将 JPEG、PNG 或 WebP 文档图片制成一个 PDF。选择纵向 A4 或 US Letter,无需上传图片即可下载。
PDF 转 EPUB 转换器
在浏览器中把文本型 PDF 提取为可重排的 EPUB 3。检查文本,设置语言和阅读方向,然后在本地下载。
可搜索 PDF 制作工具
通过添加不可见的 OCR 文本层,把扫描版 PDF 变成可搜索、可选中的文档。全程在浏览器中完成;支持 7 种拉丁字母语言。
此工具还提供其他语言版本
- Reparar PDF [ES]
- PDF を修復 [JA]
- PDF reparieren [DE]
- Reparera PDF [SV]
- Réparer un PDF [FR]
- PDF 복구 [KO]
- Reparar PDF [PT]
- إصلاح PDF [AR]
- PDF repareren [NL]
- Sửa PDF [VI]
- Perbaiki PDF [ID]
- Napraw PDF [PL]
- ซ่อม PDF [TH]
- Riparare PDF [IT]
- Восстановить PDF [RU]
- PDF Onar [TR]
- Repair PDF [EN]