核心要点
- 多数“已损坏”是结构索引坏了,页面数据仍在文件里。
- 修复前先核对文件大小,过小说明根本没下载完整。
- 工具按“直接重写 → 重建索引 → 重建页面树 → 图像重建”逐级尝试。
- 被截掉的那部分数据找不回,修复只能保住剩下的内容。
- 图像重建会让文字无法选中,只作为最后手段。
PDF 为什么会提示文件已损坏
PDF 文件末尾有一张交叉引用表,记录每个对象在文件里的位置;这张表或文件尾一旦缺失、写错,阅读器就找不到页面,于是直接报“已损坏”。
可以把 PDF 想成一本没有装订的活页书:正文是一页页散放的纸,交叉引用表是最后那页目录。目录丢了,书页其实还在盒子里,只是阅读器不愿意一张张去翻。修复工具做的,就是把盒子倒出来重新清点,再写一份新目录。
| 常见症状 | 多半的原因 | 修复前景 |
|---|---|---|
| 打开就报“已损坏”,但文件大小正常 | 交叉引用表或数据长度写错 | 通常能完整恢复 |
| 浏览器下载到一半断网后打不开 | 文件末尾被截断 | 前面的页面多半能找回 |
| 能打开,但后几页空白或报错 | 部分页面的数据流已损坏 | 结构能整理,坏掉的页需图像重建或重新索要 |
| 编辑保存时软件崩溃 | 增量更新只写了一半 | 常能回到上一次完整保存的状态 |
| 文件只有几 KB,或显示 0 字节 | 根本没拿到完整文件 | 无法修复,需要重新获取 |
修复前先做哪三步检查
花一分钟排除“文件没下完”和“阅读器有问题”这两种情况,能少走不少弯路。
- 核对大小:对比对方说的大小或网盘里显示的大小,差得多就重新下载,修复补不回没下到的部分。
- 换个阅读器:用 Chrome、Edge 等浏览器直接打开试试;浏览器能打开,说明文件大体完好,只是原阅读器更挑剔。
- 看文件结尾:进阶检查——用记事本或任何文本编辑器打开 PDF 拉到末尾,完整文件一般以
%%EOF结束;末尾是一串乱码且没有这个标记,基本可以判断是被截断了。
小鹿PDF 是怎么逐级修复的
工具从改动最小的方法开始尝试,前一级成功就停止,尽量保留原有的文字、书签和链接。
- 第 1 级:直接重写用 qpdf 读取并规范化重写;索引只有小问题的文件在这一步就能修好。
- 第 2 级:扫描重建索引从头到尾扫描所有残存对象,重新生成交叉引用表和文件尾,同时校正写错的数据长度、丢弃被截断的半个对象。
- 第 3 级:重建页面树页面目录本身也坏了时,用扫描找到的页面重新组织顺序,避免“少页”。
- 第 4 级:按页面图像重建结构实在无法恢复时,在你确认后把能显示的页面渲染成图片再组装成 PDF。
直接重写 → 扫描重建交叉引用表 → 重建页面树 → (确认后)按页面图像重建
每一级完成后,工具都会再做一次完整校验,逐个解码数据流。所以结果不是简单的“成功 / 失败”,而是分成三种:完整修复;结构已整理但仍有内容损坏,并标出受影响的页码;无法修复。
怎么在线修复损坏的 PDF
选择文件后一键修复,工具会自动逐级尝试,并用中文列出发现和处理的问题。
- 打开PDF 修复,选择打不开或报错的 PDF;处理只在当前浏览器进行。
- 点击「修复 PDF」,等待扫描完成,查看问题报告和修复前后的文件大小。
- 在预览里翻一遍页面,重点检查报告里提到“仍有损坏”的页码。
- 下载
原文件名-repaired.pdf,用平时的阅读器再打开一次确认。 - 如果提示无法修复或部分页面仍损坏,再决定是否使用「按页面图像重建」。
项目开发时用 5 份样本、各做 5 种人为损坏做过模糊测试:25 份坏文件里 21 份修复成功,输出再经桌面版 qpdf、pdfinfo 等工具校验通过;没修好的 4 份,页面对象本身已经不在文件里。这个数字说明结构类损坏大多有救,也说明数据真正丢失时谁都补不回来。
哪些损坏能修好,哪些修不好
判断标准只有一条:页面数据还在不在文件里。还在就有机会,已经被截掉或覆盖就只能重新获取。
大概率能修好
- 交叉引用表错位、缺失
- startxref 指向错误位置
- 数据流长度写错
- 保存崩溃留下的半截增量更新
只能找回一部分
- 下载中断,末尾若干页丢失
- 个别页面的图片或字体数据损坏
- 页面目录损坏,部分页面对象缺失
暂时处理不了
- 需要打开密码且无法解密的文件
- 只有几 KB 的残缺下载
- 其实是 Word、图片改了扩展名
按页面图像重建值不值得用
能保住页面的样子,但会丢掉文字层和交互功能;适合“先把内容看到、存下来”,不适合继续编辑。
| 对比项 | 结构修复 | 按页面图像重建 |
|---|---|---|
| 文字能否选中、搜索 | 能(原本有文字层的话) | 不能,每页都是图片 |
| 书签、链接、表单 | 尽量保留 | 不保留 |
| 页面外观 | 与原文件一致 | 接近原样,细小文字可能略软 |
| 适用情况 | 优先使用 | 结构修不好、但页面还能显示时 |
图像重建之后,如果还需要文字,可以拿重建结果去做 OCR;如果只是存档或打印,图片版已经够用。重建出来的文件偏大时,可再用压缩 PDF按需降低体积。
文件大小正常却打不开?交给工具逐级修复,看看报告里写了什么。
去修复 PDF