怎么合并
- 把 PDF 文件拖到上面的框里,或者点选择文件。每个文件会显示成一张卡片,上面有首页缩略图、文件大小和页数。
- 把文件排成你要的顺序:直接拖动卡片,或者用 ↑ 和 ↓ 按钮,键盘也能操作。
- 如果只要某个文件的一部分,就在它的页码框里填写:
1-3, 5表示第 1、2、3、5 页;4-表示从第 4 页到最后;3-1表示按 3、2、1 的顺序取这三页。留空就是全部页。中文逗号和顿号也能识别。 - 点合并 PDF。合并后的文件会以 merged.pdf 的名字下载,页面上同时显示总页数和文件大小。
如果某个文件用不了,比如加了密、已经损坏,或者其实不是 PDF,它的卡片会变红并写明原因。在移除它之前,合并按钮会一直保持不可用。
你的文件经历了什么
PDF 文件由一组带编号的对象组成:页面、字体、图片、批注等,再加上一张交叉引用表,记录每个对象从文件的哪个位置开始。每一页都是一个对象,指向它的内容流、用到的资源和页面尺寸。合并时不需要重新绘制任何东西:只要把选中的页面对象,连同它依赖的字体和图片一起复制进一个新文档,再写一张新的交叉引用表即可。
本页用开源 PDF 库 pdf-lib 完成这件事,它运行在浏览器的后台线程里。因为页面是被复制而不是被重新渲染的,所以:
- 文字仍然可以选中和搜索,矢量图形放大多少倍都清晰;
- 图片不会被重新压缩,没有画质损失;
- 每一页保留自己的尺寸和方向,A4 竖版可以和 Letter 或横版页面合在一起,各自保持原样;
- 原本就通过 PDF 的 /Rotate 设置旋转过的页面,旋转会被保留。
缩略图和页数由 Firefox 内置的 PDF 渲染器 pdf.js 生成。两个库都从本站加载,文件内容自始至终只存在于页面的内存里。合并时打开浏览器开发者工具的「网络」面板,就能验证这一点。
不会被带过去的内容
有些功能属于整个文档,而不属于某一页,按页合并时不会保留:书签(目录大纲)、跨页的表单字段定义、嵌入的附件、文档级脚本,以及数字签名。一份签过名的合同被合并进另一个文件之后,就不再处于已签名状态,这是正确的行为。
示例
| 输入 | 页码设置 | 结果 |
|---|---|---|
| 3 页竖版报告 + 2 页横版表格 | 都留空 | 共 5 页,第 4、5 页仍是横版 |
| 一个 3 页的文件 | 3, 1 | 2 页:先第 3 页,再第 1 页 |
| 一个 10 页的文件 | 1-3, 5 | 第 1、2、3、5 页 |
| 一个 6 页的文件 | 4- | 第 4、5、6 页 |
| 一个 3 页的文件 | 3-1 | 第 3、2、1 页,顺序反过来 |
| 一个 10 页的文件 | 11 | 拒绝:这个文件只有 10 页 |
最常见的用法是准备申请材料:一封用 Word 写的申请信、一份签好字的扫描表格、两张证书,按顺序合成一个文件,满足报名系统「只能上传一个 PDF」的要求。另一个常见用法是去掉双面扫描产生的空白背面:只填奇数页,比如 1, 3, 5, 7。
局限
- 设了密码的文件不能合并。 有打开密码的 PDF 是加密的,不先解密就复制它的页面,得到的只会是无法阅读的内容。请用你信任的阅读器输入密码打开,再另存或「打印」成新的 PDF,然后添加这份副本。只限制编辑、不限制打开的文件同样是加密的,也会因为同样的原因被拒绝。
- 文件大小受设备内存限制。 在电脑上合并几百 MB 没有问题;在手机上处理很大的扫描件,可能会内存不足。
- 不会额外压缩。 合并后的文件大小,基本等于所选页面原来的大小之和。合并不会让扫描件变小。
- 书签、签名和附件不会保留,原因见上文。
- 损坏的文件。 有些轻微损坏的 PDF 在阅读器里能打开,但无法被可靠地解析。用阅读器重新保存一次,通常就能解决。
常见问题
我的 PDF 会被上传到服务器吗?
不会。文件在你的浏览器里读取和合并,合并后的文件也是在你的设备上生成的,不经过网络传输。你可以在浏览器开发者工具里确认这一点。
文件数量或页数有限制吗?
没有固定限制,也没有每日次数限制。实际上限取决于设备内存:在普通笔记本电脑上,几十个文件、几千页都没有问题。
合并后的 PDF 会带水印吗?
不会。页面按原样复制,不会添加任何内容。
能只合并某个文件的其中几页吗?
可以。在该文件卡片的「页码」框里填写,比如 1-3, 5 或 4-。留空则包含全部页面。
文件不用密码就能打开,为什么还提示有密码保护?
它很可能设置了权限密码,用来限制编辑或打印。这类文件仍然是加密的,不解密就无法复制页面。把它另存或打印成新的 PDF,再合并这份副本即可。