合并 PDF 而不丢书签、链接和页尺寸
合并复制的是页面,不是页面外面的那份文档。哪些东西能活过页复制、哪些会无声消失,以及怎么在一分钟内验收成品。
合并是最常用的 PDF 操作,也是大家最信任的一个。加进十一张发票、按下合并、拿到一份 11 页的文件。结果不会告诉你的是:这十一份文档的书签、内部链接和表单字段已经没了——被复制的是页面,装页面的那个容器没有。这篇讲清楚页复制到底保留了什么、丢掉了什么,以及怎么在你刚生成的文件里当场确认。
为什么「只是合并」会丢掉别的东西
PDF 不是一张扁平的页面清单。它是「页面树 + 文档目录」两层结构,而这两层装的东西不一样。每个页面对象自带内容流、自带资源(字体、图片、色彩空间)、自带注释;文档目录装的则是描述整份文档的东西:那个变成书签面板的大纲树、命名目标、让表单字段可以填写的 AcroForm 定义、页码标签、文档语言标记、附件,以及 XMP 元数据块。
合并的实现是页复制:工具读入每个源文件,把页面对象复制进一份新建的文档,然后保存。这份新文档的目录在构造时就是空的,这不是 Bug——它只是精确地执行了被要求的那件事——但源文件里有书签的人,会把结果体验成「丢了东西」。
- 书签面板变空;如果工具连整棵大纲树一起搬,那就只剩第一份文档的大纲。
- 跳到某一页或某个标题的内部链接现在无处可跳,因为它们指向的是旧文件里的页面对象。
- 表单字段可能还画得出来,但让它们能填写的 AcroForm 定义没有进新目录,所以「可填写」的表单到手时是一张表单的图片。
- 源文件上的任何数字签名,在字节被重写的那一刻就失效了——包括一次看上去什么都没改的合并。
- 合并产物是一份新文档,元数据也是新的:原始的创建时间、生成器字符串和 XMP 历史属于源文件,就留在源文件里。

怎么合并才可控
01先定顺序,再加文件
合并按文件列表里的顺序,不按文件名、也不按日期。如果文件名本来就有编号,先把文件夹排好;剩下那一两个永远站错位置的文件,再用拖拽手柄调。靠改名来强行排序是最慢的办法。
02一次合完,不要分五次
先合 A+B、再拿结果去合 C,等于把前面所有页面又复制了一遍。每多一个来回,就多一次丢资源的机会,也多一份嵌入字体。把所有源文件放进一个列表里合一次,页数和体积都更接近各输入之和。
03先对页数,再下载
把各源文件的页数加起来,跟结果报出的页数对一下。对不上说明有文件没读进来——通常是加密或损坏的 PDF——而合并在你没注意的时候少用了几页。
如果你真正要保住的正是书签,那就别合并:让文档保持分开并互相引用,或者在能写大纲的工具里手工重建一份目录。没有「保留书签」这个勾选项——保留书签不是一个复制开关,而是重建整棵大纲,并且得决定每条书签在新页码里指向哪里。
页复制到底保留了什么
| 源文件里有什么 | 合并产物里 |
|---|---|
| 页面、页尺寸与旋转 | 保留。每页带着自己的 MediaBox 和 /Rotate。 |
| 文字层、字体、图片 | 保留,而且重复。三份源文件都用到的字体,会被嵌入三次。 |
| 书签(/Outlines 大纲树) | 丢弃。新目录从没有大纲开始。 |
| 内部链接与命名目标 | 丢弃,或者留着指向已经不存在的页码。 |
| 表单字段(AcroForm) | 字段外观可能还画得出来,但让它能填写的那份定义没有被复制。 |
| 数字签名 | 失效。被签过的那串字节已经不存在,所有签名都会报「无效」。 |
| 元数据与 XMP 历史 | 新文档、新元数据;源文件的生成器字符串留在原处。 |
A4 与 Letter 混在一起:只在打印时暴露的问题
合并不会替你选一个页尺寸。每一页保留自己的框,这是正确行为,也正是混合文件打印难看的原因。A4 是 210 × 297 毫米(595 × 842 pt),美式 Letter 是 215.9 × 279.4 毫米(612 × 792 pt):Letter 宽 5.9 毫米、矮 17.6 毫米。把这样一份文件交给「适应页面」的打印驱动,每页都会按不同比例缩放——Letter 页是 595 ÷ 612 ≈ 0.97——于是同一份文件里有一半的字小了约 3%,页边距也不再对齐。改成 100% 打印,297 毫米的那些页又比纸张高 17.6 毫米。
- 如果这些页面要进打印机,请在合并之前、而不是之后,把不合适的纸张尺寸转掉:一份 A4 文档打印行为可预测,一份混合文档不行。
- 如果合并结果只会在屏幕上读,混合尺寸无害——大多数阅读器只是把两种形状都显示出来。
- 实在不能转换时,用「适应可打印区域」打印,并接受两半的缩放略有差异。不要用「实际大小」,它会把高的那些页裁掉。
一分钟验收
- 对页数:合并产物的页数应该等于各源文件之和。少了,就是有文件被跳过。
- 打开书签面板。如果你本来期待书签而面板是空的,那是页复制的必然结果,不是你文件的 Bug——重建大纲,或换一种合并方式。
- 搜索一句你确定在第二份源文件里的话。搜得到,说明文字层是作为文字过来的,页面没有被转成图片。
- 逐份查看各源文件首页的文档属性:纸张尺寸一致,打印设置才会一致。
- 源文件有内部链接的话,点一个试试。链接失效,就说明命名目标确实没跟着页面走。
什么时候不该用合并
- 你只要 200 页合同里的三页:用提取。结果是一份新的 3 页文档,不用背着另外 197 页。
- 你要的是把章节分成独立文件、而不是一本书:用拆分,每章保留自己的名字和体积。
- 你要在一份文档里调整顺序或删页:那是页面手术,不是合并;用「合并三份提取结果」来做这件事,页面对了,嵌入字体却多了三倍。
当目的地确实是一份文件——报销材料、尽调包、护照扫描件加盖章页——合并就是对工具。其余情况下,更小的那个操作通常更好,而且它保住了合并会悄悄丢掉的那些东西。