「把这几份材料合成一个 PDF」听起来是一步操作,实际做下来常常发现顺序错了、多了空白页、或者签字页在中间。原因是大多数人只用「合并」,而真正需要的是合并 + 页面重排两步。
先把三个操作的边界划清楚。
一、三个操作各解决什么问题
合并:多个 PDF 文件 → 一个文件。文件之间的顺序由你排列的顺序决定,每个文件内部的页序不变。
拆分:一个 PDF → 多个文件。常见两种模式:按页数均分(每 10 页一个),或按指定范围切(1-5 页一份、6-20 页一份)。
页面整理:在一个文件内部调整页面——删除、旋转、移动位置、插入空白页。这是最容易被忽略但用得最多的一个。
一个典型的报销材料场景:发票 PDF + 审批单 PDF + 银行流水 PDF。你需要的是先合并成一份,然后用页面整理把手机扫的那几页转正、删掉误扫的空白页。只做合并,交上去就是一堆歪的。
二、合并时最容易踩的三个坑
顺序按文件名排,不按你选择的顺序。 很多工具默认按文件名字典序排列,于是 1.pdf, 2.pdf, 10.pdf 会变成 1, 10, 2。批量上传时把文件名补齐位数(01、02、10)能从根上避免这个问题。
书签和目录通常会丢。 合并本质上是把页面对象搬到一个新文档里,原文件的书签树、内部跳转链接大多不会保留。如果书签重要,合并后需要重新加,或者干脆不合并。
表单字段可能冲突。 两份 PDF 里如果有同名的表单字段,合并后可能互相串值。含可填写表单的文件,建议先「打平」(扁平化)成静态内容再合并。
三、拆分:按页数还是按范围
判断依据是结果文件之间是否等长。
- 「200 页扫描件,每 20 页发给一个人核对」→ 按页数均分
- 「一份合同,前 8 页是正文、9-12 页是附件」→ 按范围切
按范围切时注意页码是从 1 开始且含两端的。1-5 是五页,不是四页。这个差一错误在拼接材料时特别常见。
如果只是想要其中某几页,不必先拆再删——直接指定范围导出一份就行。
四、页面整理:旋转的方向别搞错
手机拍或扫描仪进纸方向不对时,页面会横过来。旋转时要留意:
- 旋转是无损的。PDF 里记录的是一个旋转角度属性,不重新渲染内容,所以转来转去不掉画质。
- 顺时针 90° 和逆时针 90° 不是同一个结果,差 180°。批量旋转前先看一页预览确认方向,比转完再挨个改快得多。
- 删除页面不可撤销(对已导出的文件而言)。删之前留一份原文件。
五、加页码要放在最后一步
这是顺序问题:页码是按当前页序渲染上去的静态内容。如果你先加页码再合并或重排,页码就和实际位置对不上了,而且加上去的页码无法自动更新。
正确顺序:合并 → 整理页序 → 最后加页码。
六、关于文件不上传
这四个操作在本站都是在浏览器里完成的——用 pdf-lib 读写 PDF 结构,pdf.js 负责预览渲染,文件不会上传到服务器。合同、发票、身份证明这类材料用在线工具处理时,这一点值得留意。
代价是超大文件(几百 MB 的高清扫描件)会吃内存,页数极多时建议分批。
常见问题
合并后体积比几个原文件加起来还大? 可能是每个源文件都嵌入了各自的字体子集,合并后字体没有被合并去重。可以之后再走一次 PDF 瘦身。
加密的 PDF 能合并吗? 带打开密码的文件需要先解密。仅带权限限制(禁止编辑/打印)的文件行为不一定,取决于限制方式。
能把 PDF 页面重新排成「双面打印」的顺序吗? 可以用页面整理手动移动,但页数多的时候更省事的做法是在打印机驱动里选双面/小册子模式。
合并后想再改顺序怎么办? 直接对合并后的文件用页面整理,不需要拆开重来。