无需上传, 100% 本地处理, 无需账户

文章

浏览器里的 PDF 工具箱:清理、排版与构建结构

大多数 PDF 处理工作都能归入三类:让文档变得可读、把页面在版面上重新排布,以及编辑附着在文档上的数据。本站提供约十一款覆盖这三类需求的小工具,它们全都在你浏览器标签页内对文件进行处理。PDF 的打开、修改和保存都不离开你的设备,所以同一款工具既适合处理工资单,也同样适合处理机密合同。

清理并修正扫描件

刚从扫描仪或手机相机得到的页面,往往要先做几处修正才值得保留。旋转工具能把横放或倒置的页面以 90 度为步长转正,它取代了旧的扫描版 PDF 旋转指南。纠偏工具能把略微倾斜的文字摆正,当你打算之后做文字识别时这一步尤为重要。灰度工具会去掉色彩通道,从而缩小文件,并消除平板扫描仪给白纸添上的淡淡偏色。修复工具对自身的局限很坦诚:它只能重建 pdf-lib 能够解析并重新保存的那部分损坏 PDF,因此能救回许多其他阅读器拒绝打开的文件,但它无法重建从未写入文件中的内容。请把它当作打不开文档时的第一次尝试,而不是一种保证。

一张倾斜且模糊的扫描页面,与经过倾斜校正和灰度清理后同一页面的对比,处理后的页面端正且清晰易读。

排布页面

文档变得可读之后,你可能需要改变页面在纸张上的摆放方式。裁剪工具能修掉页边距,或把页面裁到你真正关心的区域。调整尺寸工具能更改页面尺寸,比如从美式 Letter 改为 A4,让文档在另一个国家也能正确打印。多页合一工具把若干页并排放到一张纸上,对制作讲义或节省纸张很方便。交替混合工具会把两个文件逐页交错排列,最常见的用途是用单面扫描仪做的双面扫描:你先把正面扫进一个文件,翻过整叠纸再把背面扫进第二个文件,然后把它们混合,让页面回到原本的顺序。这些工具都不会把你的文字光栅化,所以原生数字版 PDF 在版式调整后仍保留可选中的文字。

元数据与结构

最后一类是包裹在页面之外的数据。元数据工具能读取并改写标题、作者、主题和关键词字段,并让你在分享文档前把它们清空,这是一个虽小却实在的隐私举措。书签工具能构建 PDF 阅读器在侧栏中显示的可点击大纲,让一份长篇报告变得便于导航。HTML 转 PDF 工具方向相反,把粘贴的标记转成 PDF,但有一点要说清楚:它会把结果渲染成页面的图像,所以输出的并不是可选中的文字。当你确实需要把文字从 PDF 中取出来时,有两条不同的路径。如果文件是数字方式生成的,PDF 转文本工具会直接而准确地读取其内嵌文字。如果文件是扫描件,里面没有文字可读,你就需要光学字符识别,它从图像中猜测字母,可能出错。弄清自己面对的是哪种情况能省去很多困惑。

PDF 内部结构与 XREF 表

PDF 文件不是线性文档,而是由离散对象(字典、数组、流和数值)组成的数据库,通过文件末尾的交叉引用(XREF)表相互连接。XREF 表将每个对象 ID 映射到其精确的字节偏移量。一些桌面编辑器以增量更新的方式保存修改:在文件末尾追加一个新的 XREF 部分,仅覆盖修改过的对象,原始字节则保留在下方不变。基于 pdf-lib 构建的浏览器工具的工作方式不同:它们把整个文档解析为内存中的对象图,应用所请求的修改(例如把页面的 Rotate 条目从 0 改写为 90),然后从零开始把整个文件重新序列化为一份全新的 PDF。这种完全重写意味着工具运行期间整份文档都必须放入内存,这也是每个工具都设有输入文件大小上限的原因;它从不会把其中任何部分上传到服务器。

PDF 文件的结构:文件头、对象、按字节偏移量为每个对象建立索引的 xref 表,以及 trailer。

流压缩与 PDF 修复原理

PDF 中的页面内容(文本绘制命令、矢量路径、光栅图像)存储在流对象中,这些对象几乎总是使用 FlateDecode(zlib)压缩。当 PDF 损坏时,损坏通常发生在格式错误的 XREF 表或截断的压缩流中。修复工具会完全绕过损坏的 XREF 表,对原始字节流进行线性扫描,搜索界定单个对象的 obj 和 endobj 标记。它提取这些对象,尝试解压其关联的流,并从头构建一个新的、格式正确的 XREF 表。如果损坏发生在 Flate 压缩流内部,该特定对象中的数据将无法恢复;文档结构可以还原,但受影响的页面可能显示为空白或缺少图像。

本文涉及的工具

常见问题

这些 PDF 工具会把我的文件上传到服务器吗?

不会。这些工具都用 JavaScript 和 WebAssembly 在你的浏览器标签页内打开、编辑并保存 PDF。文件从你的磁盘读入页面,结果直接写回为一个下载文件,因此没有任何内容经过网络传输。你可以在使用工具时打开浏览器的网络面板来核实,或者在页面加载完成后断开网络,看着工具依然能正常工作。

修复工具能修好任何损坏的 PDF 吗?

并非任何文件都行。修复工具会重新解析文档并写出一份全新、格式规范的副本,从而修好损坏的交叉引用表以及许多让 PDF 打不开的结构性故障。它无法凭空造出真正缺失的数据,也无法解除强加密。请把它当作一次快速的初步尝试:如果它救回了你的文件,那就大功告成;如果没有,你也没有任何损失,可以再去找原始文件。