案例

打不开的 PDF

阅读器说已损坏的 PDF,往往仍保留大部分页面。通常丢失的是文件末尾那张记录页面位置的表。

一叠打印纸,下面几页散落在木桌上
生成的插图

出问题的那一刻

合同、发票或课本的下载中断了,阅读器现在提示 PDF 已损坏或无法打开。有时打开后是一片空白。已经下载的页面往往还在文件里。

为什么阅读器打不开

PDF 由一组编号的对象组成:页面、字体和图像。文件末尾附近有一张交叉引用表,记录每个对象从哪里开始,还有一个指向文档目录的尾部。下载中断时最先丢失的就是这个末尾,所以即使大部分页面都在,阅读器也找不到它们。如果开头丢失,表明文件是 PDF 的文件头也会一起丢失。

文件会经历什么

工具会在文件中直接查找各个对象,根据它们的实际位置重建交叉引用表;如果目录和页面树丢失,也会重新写出。对象完整到达的页面保持原样;缺少部分内容的页面会被舍弃,而不是以损坏的状态保留。

您最终得到什么

得到一个能打开、包含已到达页面的 PDF。如果下载停在 60 页中的第 40 页,大致可以得到前 40 页,再减去图像或字体尚未到达的页面。文字、图像和字体不会被重绘或重新编码。

根据我们的测试,哪些情况有效

被截断的 PDF 和开头丢失的 PDF,在我们测试的所有案例中都能重建。中间区域损坏、数据错位和零散错误时,文件通常保持原样:这种情况下,唯一的办法是从源头重新获取一份。完整表格见文件类型指南。

开始之前

请保留原文件。如果 PDF 的链接仍然有效,重新下载更快,而且能拿到全部页面。设有密码的 PDF,之后阅读时仍然需要这个密码。

检查新的 PDF

一直翻到最后,把页数和预期对比一下。先看最需要的页面:合同的签字页、发票的合计。

常见问题

整个 PDF 都能恢复吗?

只有已经到达的页面。从未写入文件的页面无法重建。

文字或版式会改变吗?

不会。保留的页面原样复制,只重写把它们连接起来的表。

PDF 会被上传到任何地方吗?

不会。PDF 在您设备上的浏览器中读取,绝不会离开您的设备。

来源

本指南参考的文档。

  1. PDF Association:ISO 32000-2(PDF 2.0)
  2. Adobe:PDF 1.7 参考(ISO 32000-1)