使用 Python 将 PDF 文件合并为单一 PDF 文件
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")
最小工作流程(5 个步骤)
- 安装用于合并 PDF 文件的 Python 库。
- 使用
RenderHtmlAsPdf生成单个PDF文件,或使用PdfDocument.FromFile加载现有文件 - 应用
Merge方法将PDF文件合并为一个PdfDocument - 使用
SaveAs保存合并后的文档 - 对于多个PDF,请将
PdfDocument对象的列表传递给Merge
如何安装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"
对于生产应用程序,配置您的许可证密钥以解锁完整的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")
为什么使用 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")保存后,您可以应用额外的后处理操作,例如PDF压缩以减少大型合并文档的文件大小。
如何在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")
传递给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中合并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.Author和pdf.MetaData.Title,然后再保存。









