如何使用 IronPDF 在 Python 中合并多个 PDF 文件

使用 Python 将 PDF 文件合并为单一 PDF 文件

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for Python提供了一个直接的解决方案,使用PdfDocument.Merge()方法将多个PDF文档合并为一个文件,支持两文件合并和批处理操作,以有效地组合大量PDF。

PDF(便携文件格式)是必须跨平台和应用程序呈现相同外观的文档共享标准。 无论您是在整合报告、合并扫描的文件,还是汇集多部分表单,从各种来源合并PDF内容是商业和数据处理工作流程中的经常性要求。

IronPDF在Python中仅需一个方法调用即可处理此操作。 本指南涵盖安装、基本的两个文件合并和一次合并多个文档的批处理操作。

快速入门:使用 Python 合并 PDF 文件

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-merge-pdf-1.py
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/quickstart.py
from ironpdf import *

renderer = ChromePdfRenderer()
pdf_a = renderer.RenderHtmlAsPdf("<p>Document A</p>")
pdf_b = renderer.RenderHtmlAsPdf("<p>Document B</p>")

merged = PdfDocument.Merge([pdf_a, pdf_b])
merged.SaveAs("merged.pdf")
PYTHON

如何安装IronPDF for Python?

IronPDF作为Python包通过pip提供。它需要Python 3.x,并且在Windows和Linux上工作,标准合并操作无需任何额外的系统依赖。 该软件包附带一个基于Chrome的渲染引擎,内部处理HTML到PDF的转换。

使用pip安装IronPdf库,使用下列命令:

 pip install ironpdf

有关详细的安装说明和常见问题(如"模块未定义"错误权限问题)的帮助,请参阅官方文档。

需要哪些导入语句?

在您的Python脚本中,包含以下导入语句以访问IronPDF的PDF生成和合并功能:

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-merge-pdf-3.py
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/imports.py
from ironpdf import *

# Set your license key for production use
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
PYTHON

对于生产应用程序,配置您的许可证密钥以解锁完整的IronPDF功能集。 可以试用 - 开始您的免费试用,无需购买即可开始。

如何用 Python 合并两个 PDF 文件?

在Python中合并PDF文件分为两个步骤:创建源PDF文档,然后用PdfDocument.Merge()将它们组合在一起。 该方法接受PdfDocument对象列表,并按照列表中项目的顺序生成一个新的组合文档。

下面是一个完整的工作示例:

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-merge-pdf-4.py
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-two-pdfs.py
from ironpdf import *

# HTML content for the first PDF
html_a = """<p> [PDF_A] </p>
            <p> [PDF_A] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_A] 2nd Page</p>"""

# HTML content for the second PDF
html_b = """<p> [PDF_B] </p>
            <p> [PDF_B] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_B] 2nd Page</p>"""

# Initialize renderer
renderer = ChromePdfRenderer()

# Convert each HTML string to a PDF document
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)

# Merge the two documents into one
merged = PdfDocument.Merge([pdfdoc_a, pdfdoc_b])

# Save the merged result to disk
merged.SaveAs("Merged.pdf")
PYTHON

为什么使用 RenderHtmlAsPdf 生成 PDF?

上面的示例使用两个HTML字符串,每一个代表一个两页的文档。 PdfDocument对象,从HTML、CSS和JavaScript内容中产生准确的结果。 这种方法非常适合从Web模板生成报告或数据驱动的文档。 有关更复杂的渲染场景,请参阅HTML到PDF教程

提示您也可以使用Merge方法。 当组合预先存在的报告或外部生成的文档时,这很有用。

合并方法如何工作?

PdfDocument.Merge接收一个Python PdfDocument对象列表作为其唯一参数。 它按列表顺序合并文档,将第一个文档的所有页面放在第二个文档的所有页面之前,依此类推。 结果是一个新的PdfDocument,可以进一步修改或保存。 来自每个源文档的页数、书签和嵌入内容都保存在输出中。

该方法接受在同一个列表中任意混合渲染的和从文件加载的文档。这意味着您可以在一个调用中将新生成的HTML输出与磁盘上的现有PDF合并,这在报告的一部分是动态生成而另一部分是静态模板时很有用。

如何保存合并的PDF?

将所需的输出路径传递给SaveAs以将合并后的文档写入磁盘:

#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/save-merged.py
# Save the merged document
merged.SaveAs("Merged.pdf")

# Optionally compress images before saving to reduce file size
merged.CompressImages(90)
merged.SaveAs("Merged_Compressed.pdf")
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/save-merged.py
# Save the merged document
merged.SaveAs("Merged.pdf")

# Optionally compress images before saving to reduce file size
merged.CompressImages(90)
merged.SaveAs("Merged_Compressed.pdf")
PYTHON

保存后,您可以应用额外的后处理操作,例如PDF压缩以减少大型合并文档的文件大小。

IronPDF 输出,显示带缩略图面板的 4 页合并 PDF,确认两个文档成功合并

合并的PDF输出显示来自两个源文档的页面

Icon Quote related to 如何保存合并的PDF?

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to 如何保存合并的PDF?

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 如何保存合并的PDF?

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to 如何保存合并的PDF?

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 如何保存合并的PDF?

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to 如何保存合并的PDF?

David Jones

首席软件工程师,Agorus Build

查看案例研究

如何在Python中合并两个以上的PDF文件?

在IronPDF中,批量合并与合并两个文档的模式相同。 唯一的区别是,在调用PdfDocument对象。 该方法可以扩展以处理一次性处理数十个或数百个文档。

无论您是合并2个还是200个文档,API始终相同。 对于高负载场景,如夜间报告聚合或文档组装管道,IronPDF还支持并行PDF生成,以加速合并前的渲染阶段。

该过程包括两个步骤:

  • 创建一个包含PdfDocument对象的Python列表进行合并
  • 将列表作为参数传递给PdfDocument.Merge

如何使用列表合并多个PDF?

以下代码通过一次调用合并四个HTML渲染文档:

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-merge-pdf-6.py
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-multiple-pdfs.py
from ironpdf import *

# HTML content for each document
html_a = """<p> [PDF_A] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_A] 2nd Page</p>"""

html_b = """<p> [PDF_B] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_B] 2nd Page</p>"""

html_c = """<p> [PDF_C] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_C] 2nd Page</p>"""

html_d = """<p> [PDF_D] Content Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_D] Summary Page</p>"""

renderer = ChromePdfRenderer()

# Render all four documents
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
pdfdoc_c = renderer.RenderHtmlAsPdf(html_c)
pdfdoc_d = renderer.RenderHtmlAsPdf(html_d)

# Collect into a list and merge
pdfs = [pdfdoc_a, pdfdoc_b, pdfdoc_c, pdfdoc_d]
pdf = PdfDocument.Merge(pdfs)

# Save the combined document
pdf.SaveAs("merged_multiple.pdf")
PYTHON

传递给Merge的列表决定了最终文档中的页面顺序。 重新排列列表中的元素无需额外代码即可更改输出顺序。 如果您需要在合并之前对文档进行排序 - 例如,按日期或报告编号 - 请先对Python列表进行排序,然后将其传递给Merge

如何从磁盘合并现有的PDF文件?

当合并预先存在的PDF文件而不是新生成的文件时,在合并之前用PdfDocument.FromFile加载每个文件。 这是处理其他系统生成文件的典型模式 - 扫描的文档、第三方报告导出或由不同工具生成的PDF。 IronPDF将文件读入内存中的一个PdfDocument对象,然后可以在最后保存之前进行合并、修改或检查。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-merge-pdf-7.py
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-existing-pdfs.py
from ironpdf import *

# Load existing PDF files from disk
existing_pdf1 = PdfDocument.FromFile("report1.pdf")
existing_pdf2 = PdfDocument.FromFile("report2.pdf")
existing_pdf3 = PdfDocument.FromFile("report3.pdf")

# Merge all loaded documents
merged_existing = PdfDocument.Merge([existing_pdf1, existing_pdf2, existing_pdf3])

# Save the combined result
merged_existing.SaveAs("merged_reports.pdf")
PYTHON

请注意IronPDF在合并过程中保留源文件中的字体、图像、注释和页面布局。 包含嵌入式表单字段或数字签名的文档也可以合并,不过输出中的交互式表单字段可能需要根据您的使用情况重新平面化。)]}

IronPDF 输出,显示带缩略图导航面板的多页合并 PDF,展示来自四个源文档的页面

多文档合并结果显示来自所有四个源PDF的页面

在Python中合并PDF的下一步是什么?

本指南介绍了使用IronPDF的两种主要PDF合并模式:将HTML内容渲染为PDF文档并使用PdfDocument.Merge将其合并,以及从磁盘加载现有文件以进行批量组合。 这两种方法共享相同的API,并可从简单的两个文件合并扩展到大型文档批处理。

IronPDF支持额外的合并后操作,如添加页眉和页脚应用水印以进行品牌化、从合并文档中提取文本以及编程填写PDF表单

该库支持运行在Windows和Linux上的Python 3.x。 如需更多Python PDF操作,请探索拆分PDF将PDF转换为图像打印PDF。 欲了解完整的Python代码示例列表,请访问IronPDF for Python示例页面

开始您的免费试用以测试在您的环境中合并PDF,或查看许可选项以用于生产部署。

准备好看看您还能做些什么吗? 查看IronPDF Python教程页面:IronPDF for Python教程

下载软件产品。

常见问题解答

如何使用 Python 将多个 PDF 文件合并成一个?

使用pip install ironpdf安装IronPDF,然后用Python列表中的PdfDocument对象调用PdfDocument.Merge()。该方法返回一个新的合并文档,您可以用SaveAs保存。

我可以从磁盘合并现有的PDF文件而不是渲染的吗?

是的。使用PdfDocument.FromFile('path/to/file.pdf')加载每个现有PDF,然后将加载的对象传递给PdfDocument.Merge()。您可以在同一列表中混合文件加载的和新渲染的文档。

PdfDocument.Merge是否保留文档格式和字体?

是的。IronPDF在合并过程中保留所有来源文档的字体、图像、注释和页面布局。每个来源文档的原始外观在最终合并的PDF中得以保留。

我如何控制合并PDF中的页面顺序?

输出中的页面顺序与传递给Merge方法的Python列表中的PdfDocument对象的顺序一致。通过在调用Merge之前重新排列列表元素来控制顺序。

我可以压缩合并的PDF以减少文件大小吗?

可以。在合并之后,调用合并的PdfDocument上的CompressImages(quality),然后再调用SaveAs。质量值90在压缩和视觉保真度之间提供了良好的平衡。

IronPDF for Python是跨平台的吗?

是的。IronPDF for Python支持Windows和Linux上的Python 3.x。相同的PdfDocument.Merge() API在两个平台上都可以工作,无需任何配置更改。

我可以向合并的PDF文档添加元数据吗?

可以。在合并之后,在合并的PdfDocument上设置元数据属性,如pdf.MetaData.Authorpdf.MetaData.Title,然后再保存。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
版本: 2026.6 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据?
运行示例看着你的HTML代码变成PDF文件。