跳到主要内容
编码转换2026-10-14Begin3 分钟阅读

PDF 怎么合并?三种方法对比与本地合并的完整步骤

把多份 PDF 拼成一个文件是高频需求:合同正本 + 附件一起发、多张扫描件归档、报告的分章合并。本文对比三条路径,并给出「验证工具没有偷传文件」的方法。

为什么合并场景值得挑剔工具

合并的输入往往是合同、证件扫描、财务凭证——恰恰是最不该交给陌生服务器的文件。判断一个在线合并工具是否真的本地运行,方法依然是那一条:打开 DevTools 的 Network 面板,拖入文件后看有没有新请求发出。真正的纯前端工具一条请求都不会有。

三种路径对比

路径适合谁门槛
浏览器本地合并(如 ToolVault PDF 合并)偶发合并、不想装软件最低
命令行 qpdf / pdftk脚本化、批量、CI需要命令行环境
桌面软件(Acrobat 等)重度办公、含编辑需求安装与付费
  • qpdf 是命令行合并的事实标准:qpdf --empty --pages a.pdf b.pdf -- out.pdf 一条命令完成,速度快且可脚本化。缺点是 Windows 用户需要先装环境。
  • 桌面软件功能最全(页级编辑、书签合并),但为偶发需求装一个重型软件不划算,且很多「免费版」会在合并结果上加页脚水印。
  • 浏览器本地合并(ToolVault PDF 合并)在加载完页面后断网也能用——文件字节在 pdf-lib 的内存对象里完成拷贝,输出直接从浏览器下载。

合并的三个实操细节

顺序就是列表顺序

多数工具按加入顺序拼接。ToolVault 的合并页支持上下箭头调整顺序,并在列表里显示每个文件的页数——合并前核对总页数(文件1页数 + 文件2页数 + …)能避免「少拼了一个文件」这类静默错误。

加密文件会静默失败

带密码(加密字典)的 PDF 无法被直接解析,好的工具会明确报错而不是输出一个损坏文件。遇到报错时先用 owner password 解密(qpdf --decrypt in.pdf out.pdf)再合并。

页面尺寸不统一是正常的

A4 混 Letter、横向混纵向在合并结果里完全合法——PDF 的每页有独立尺寸。如果需要统一,那是「页面缩放」功能,不是合并的职责,别指望合并工具顺手做。

常见问题

合并后文件更大了? 直接拼接不做重编码,体积 ≈ 各文件之和。要变小走压缩(PDF 压缩),两步分开做结果更可控。

能只合并每个文件的一部分吗? 那是拆分 + 合并的组合:先用 PDF 拆分 按区间提取,再合并提取结果。

手机上能合并吗? 可以,现代手机浏览器的内存足以处理几 MB 到几十 MB 的常规文档;上百 MB 的扫描合集建议换桌面。

实现注记

做合并工具时踩过的坑:pdf-lib 的 copyPages 对含交叉引用流的 PDF(多数扫描仪输出)兼容良好,但对损坏的 xref 表会抛错而非跳过——所以工具必须在合并前逐个 load 预检并报出具体是哪个文件坏了,否则用户面对「合并失败」四个字无从排查。另外 iOS Safari 对 Blob.arrayBuffer 的旧版本缺失需要 FileReader 回退,这是移动端文件类工具的通用坑。

结论

偶发合并用浏览器本地工具最省事(ToolVault PDF 合并,文件不上传);脚本化场景 qpdf 无可替代;重度编辑再考虑桌面软件。选哪条路径前,先用 Network 面板验证一下工具的行为——包括我们的。