重建 PDF 的结构
文件能打开但不听话:阅读器翻到某页会出错、脚本处理到一半崩掉、签名验不过。 重建会先解析一遍,再干净地写出来,新的交叉引用表、孤儿对象清掉、流重新压缩, 写完再按检查原件时同样的方式检查一遍。
拖入要重建的 PDF
或者 选择文件
qpdf 引擎(约 430 KB)只在按下按钮时才加载,全程在这个标签页里运行。
—
—🧰
重建到底做了什么。 qpdf 会把文件从头解析一遍再重新写出:交叉引用表重建、没人引用的对象丢掉、流重新压缩。页面上的内容一个字节都不重新解释,所以文字还是文字。实际用下来,重建后的文件往往更小,我们有一个 20 页的文件从 17.5 KB 变成 12.8 KB。那些阅读器能容忍、严格解析器却要报错的细微不一致,会在写出的过程中被规整掉。
⚠️
它做不到什么。 它没法把文件从死人手里拉回来。我们拿四种损坏对这个构建实测过:文件被截断、
startxref 指向错误的偏移、对象字节损坏、流的 /Length 写错。四种 qpdf 全部拒绝,报一个错,什么都不产出。文件如果是这种状态,这个工具会明说,而不是塞给你一个坏产物。请回到产生它的源头重新导出一次。