文章
浏览器里的 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 修复原理
PDF 中的页面内容(文本绘制命令、矢量路径、光栅图像)存储在流对象中,这些对象几乎总是使用 FlateDecode(zlib)压缩。当 PDF 损坏时,损坏通常发生在格式错误的 XREF 表或截断的压缩流中。修复工具会完全绕过损坏的 XREF 表,对原始字节流进行线性扫描,搜索界定单个对象的 obj 和 endobj 标记。它提取这些对象,尝试解压其关联的流,并从头构建一个新的、格式正确的 XREF 表。如果损坏发生在 Flate 压缩流内部,该特定对象中的数据将无法恢复;文档结构可以还原,但受影响的页面可能显示为空白或缺少图像。
本文涉及的工具
- 校正扫描页面倾斜完全在浏览器中校正倾斜的扫描 PDF 或图片, 无上传。
- PDF 转灰度完全在浏览器中将彩色 PDF 转为灰度, 无上传。
- 修复 PDF将损坏或臃肿的 PDF 重建为干净、格式良好的副本, 完全在浏览器中完成,无上传。
- 旋转 PDF 页面无需上传即可旋转 PDF 的选定页面(90、180 或 270°)。
- 裁剪 PDF 页面可视化裁剪任意 PDF 页面, 选择一个区域并应用到所有页面或仅单页,无需上传。
- 调整 PDF 页面尺寸将每一页缩放到 A4、Letter、Legal、A3 或 A5, 或按百分比缩放, 无需上传。
- PDF N-up(每页多页)在每张纸上放置 2、4、6、8、9 或 16 个 PDF 页面以节省纸张。100% 在浏览器中,无需上传。
- 交替合并两个 PDF交错合并两个 PDF 的页面(A1、B1、A2、B2…),用于双面扫描。无上传。
- PDF 元数据清除器 / 编辑器在浏览器中移除或编辑 PDF 的隐藏元数据(作者、标题、软件…)。无需上传。
- 添加 PDF 书签为任意 PDF 添加可点击的书签大纲(目录), 定义标题、页码和嵌套层级。100% 在浏览器中完成,无上传。
- HTML 转 PDF在浏览器中将粘贴的 HTML 转为 PDF(尽力而为,光栅化)。无需上传。
常见问题
这些 PDF 工具会把我的文件上传到服务器吗?
不会。这些工具都用 JavaScript 和 WebAssembly 在你的浏览器标签页内打开、编辑并保存 PDF。文件从你的磁盘读入页面,结果直接写回为一个下载文件,因此没有任何内容经过网络传输。你可以在使用工具时打开浏览器的网络面板来核实,或者在页面加载完成后断开网络,看着工具依然能正常工作。
修复工具能修好任何损坏的 PDF 吗?
并非任何文件都行。修复工具会重新解析文档并写出一份全新、格式规范的副本,从而修好损坏的交叉引用表以及许多让 PDF 打不开的结构性故障。它无法凭空造出真正缺失的数据,也无法解除强加密。请把它当作一次快速的初步尝试:如果它救回了你的文件,那就大功告成;如果没有,你也没有任何损失,可以再去找原始文件。