免费在线 PDF 合并

将多个 PDF 文件合并为一个。可以重新排序页面、删除文件,瞬间完成合并。文件始终留在您的设备上。

文件始终留在您的设备上
将 PDF 文件拖到这里 或点击选择文件

支持 PDF · 单个文件最大 50 MB

使用方法

  1. 上传 PDF: 拖放或选择多个要合并的 PDF 文件。
  2. 调整顺序: 使用上下按钮重新排序页面,删除不需要的文件。
  3. 合并: 点击"合并 PDF"将所有文件合并为一个。处理在浏览器中瞬间完成。

为什么要合并 PDF?

合并 PDF 对于整理文档、汇总多份资料生成报告、准备提交材料或减少文件杂乱来说都非常实用。无需发送多个附件或创建复杂的文件夹结构,只需将所有内容合并到一个易于分享的 PDF 中即可。非常适合合同、演示文稿、发票和各类文档。

功能特点

常见问题

上传后还能调整文件顺序吗?

可以。每个文件都有上下按钮用于调整顺序。文件会按列表中显示的顺序合并。

文件大小有限制吗?

每个 PDF 最大 50 MB。合并后的总大小取决于浏览器可用内存,通常可以合并总计数百 MB 的文件。

我的 PDF 会被上传到服务器吗?

不会。所有合并都使用 pdf-lib 在您的浏览器本地完成。PDF 始终不会离开您的设备,完全保障隐私与安全。

可以在手机上合并 PDF 吗?

可以。本工具支持桌面、平板和手机浏览器。只需点击选择文件即可合并。

如果 PDF 文件损坏怎么办?

对于损坏的文件,工具会显示错误提示。您可以尝试从原始来源重新导出 PDF,或先使用在线 PDF 修复工具修复。

PDF 与合并操作的简史

Adobe 于 1993 年发布便携式文档格式(PDF),将其定位为纸张的数字延伸:让一台电脑可以把已排版的页面发送给另一台电脑,而接收方无需安装同样的字体、同样的操作系统或同样制作该页的应用程序。第一版于 6 月 15 日随 Acrobat 1.0 一起发布,阅读器售价 695 美元,蒸馏器(Distiller)售价 2,500 美元。在 Adobe 于 1994 年把阅读器改为免费、美国国税局(IRS)在 1990 年代末把 PDF 标准化为可填写税表之前,采用速度一直很缓慢。这两件事把 PDF 拉进了全球的政府办公流程。

到 2008 年,规范已经稳定到 Adobe 可以把它交给国际标准化组织(ISO),ISO 在当年 7 月把它公布为 ISO 32000-1。今天的最新版本是 ISO 32000-2:2020,任何认真做 PDF 工具的人都隐含地以它为准。在这一整段历史里,合并操作一直是 PDF 使用最多的转换之一,按总用户数算只排在「查看」和「打印」之后。AIIM 2021 年的行业调查估计,发达经济体的普通知识工作者平均每周合并 2 到 5 个 PDF,中位数操作合并 3 到 7 个源文件。

合并比 PDF 本身还要古老。早在 1989 年,PostScript 文件就已经在用 shell 管道连接,有时候真的就是把一个文件追加到另一个文件后面,然后手工重编页标记。PDF 让这件事既变得更容易(因为文件格式通过交叉引用表实现随机访问),也变得更难(因为页面内容并不存在于一条线性的流里)。现代的每一个 PDF 合并器,从桌面 Acrobat 到这个浏览器工具,解决的都是同一个底层问题:取若干棵页面树,产生一棵合并后的页面树,让它指向原始的内容对象,且不破坏把页面连到其字体、图像和资源的任何间接引用。

「合并」在文件内部究竟做了什么

PDF 不是一份单一的文档,它是一棵树。根是目录(catalog),指向一棵页面树(pages tree),其叶子是单个的页面对象。每个页面对象持有的是引用,而不是资源本身:该页面用到的字体作为单独的间接对象生活在文件主体中,图像、表单 XObject、图形状态字典和图样也一样。页面的资源字典把短名称(/F1、/Im2、/GS0)映射到这些间接对象的编号。正是这种间接性,使得在不修改原始页面内容的情况下合并成为可能:你可以构造一个新的根页面对象,让它指向来自多个源文档的叶子。

正确的合并不是二进制追加。库会读取每个源文件的交叉引用表,把每一个间接对象解析进内存,然后对每一个被请求的页面遍历资源图,把所有被传递引用到的对象复制到输出中。复制过来的对象在目标的编号空间里获得新的对象号,它们内部的每一个引用都被重写以保持一致。最后构造一棵新的页面树,它的孩子按你要求的顺序指向被复制的页面叶子,并写出一张新的交叉引用表。源内容没有任何一处被解压、重新编码或栅格化。源页面的文本、图像和矢量图形原封不动地写入输出,这就是合并是无损的原因,也是合并后文件大小基本等于各输入之和的原因。

驱动合并的真实工作流

常见陷阱及绕过办法

浏览器合并与云端合并的对比

本工具和那些在 Google 搜索结果里占据榜首的云端 PDF 合并器之间,功能上最大的差别在于解析发生在哪里。Smallpdf、ILovePDF、PDF24 的网页版、Sejda 的免费档以及 Adobe 的在线工具,都会把源文件上传到它们的服务器,在那里执行合并,再把合并好的文件回传给你下载。它们的隐私政策声明上传的文件会在几小时内删除。但这些文件仍然要穿过运营者的网络,在其磁盘上驻留处理时间,并经过运营者为防滥用而保留的日志。

这个工具不是这样的。你的 PDF 文件通过标准的 File API 读入浏览器标签页,在同一个标签页里由 pdf-lib 库解析,再通过标准的下载 API 写回你的硬盘。合并过程中唯一的网络流量,是页面初次打开时一次性从 CDN 加载 pdf-lib 本身。你可以验证:打开浏览器开发者工具的「网络」面板,执行一次合并,观察是否有任何携带文件内容的请求发出。任何涉及保密的内容(HIPAA、GDPR、律师-当事人保密、保密协议项下的资料),最好在浏览器里合并。任何超过几百兆字节的、需要后续 OCR 的、或需要基于角色访问控制的,最好交给你显式选择的服务端工具。

关于无障碍的一点说明

PDF 无障碍由 ISO 14289(PDF/UA-1)和 W3C 的「WCAG 2.0 之 PDF 技术」规范。一份打过标记的 PDF 会包含一棵结构树,标出逻辑阅读顺序、标题、列表、表格单元格和图片替代文本。JAWS、NVDA、VoiceOver 等屏幕阅读器会用这棵树以合理顺序呈现文档,而不是按视觉顺序(视觉顺序常常是分栏的,或带侧栏)。结构树是文档级对象,所以在本工具里合并两份打过标记的 PDF,得到的是一份没有标记的输出。如果是私人归档或报销资料,这没问题。但对于面向视障读者公开发布的文档,你会需要用 Adobe Acrobat 的「使易于访问」动作向导去补救合并输出,或者干脆从已经没有可保留无障碍元数据的扁平扫描 PDF 开始。

更多常见问题

一次能合并超过 50 MB 的 PDF 吗?

每个文件最大 50 MB,合并后总大小的实际上限在桌面浏览器上大致是 300 MB,移动端上大致是 100 MB。这两个数都是浏览器内存的后果,而不是 PDF 格式本身的限制。ISO 32000-2 允许文件大到 2^64 字节,所以 PDF 不是瓶颈。瓶颈是 JavaScript 堆,多数浏览器把它限制在每个标签 2 到 4 GB。如果你的合并输入接近或超过这个数,桌面工具(例如 Adobe Acrobat 或苹果的「预览」)处理起来会更可靠。

为什么合并后的文件比输入文件之和稍大?

大多数情况下,合并文件就是几乎等于求和,误差只有几个百分点。这点开销来自:重复的字体子集(同一款字体被两份源文档分别嵌入,在输出里就出现两次)、合并器无法识别为等价的重复图像资源,以及覆盖合并后对象总数的新交叉引用表。把合并输出再用一次 PDF Compress,通常能把这些开销大部分收回。

可以合并不同页面尺寸的 PDF 吗?

可以。PDF 的每一页都自带一个 media box,即定义其可见区域的矩形。一份合并 PDF 里可以同时混有任意尺寸(A4、US Letter、A3、自定义尺寸),大多数阅读器会按每页自身的尺寸显示。合并后的文件本身并不选一个「胜出」尺寸。如果你需要输出里每一页大小都一样,那是另一项操作(调整尺寸),本合并工具不负责。

合并会丢掉我的元数据吗?

文档信息字典(标题、作者、主题、关键字、生产程序)取自第一个源文档。后续源文件中的元数据被丢弃。XMP 元数据流(现代 PDF 存放更丰富的结构化元数据块的位置)由 pdf-lib 重新从零构建。如果跨合并保留特定元数据很重要,就在第一个源文档里有意识地把它写好,或者合并完之后再用桌面编辑器补上。

我拖文件进来的顺序重要吗?

重要。文件按列表里出现的顺序合并。在点「合并 PDF」之前,可以用每行的上下箭头调整顺序。第一个文件成为输出的前几页,第二个文件接着,依此类推。元数据也取自第一个文件,所以把你想保留其标题和作者的那份放在最前面。

相关工具