使用 Python 将 PDF 文件合并为单一 PDF 文件
IronPDF for Python 提供了一种直接解决方案,可通过 PdfDocument.Merge() 方法将多个 PDF 文档合并为单个文件,既支持两文件合并,也支持批量操作,可高效地合并大量 PDF 文件。
PDF(便携文件格式)是必须跨平台和应用程序呈现相同外观的文档共享标准。 无论您是在整合报告、合并扫描的文件,还是汇集多部分表单,从各种来源合并PDF内容是商业和数据处理工作流程中的经常性要求。
IronPDF在Python中仅需一个方法调用即可处理此操作。 本指南涵盖安装、基本的两个文件合并和一次合并多个文档的批处理操作。
快速入门:使用 Python 合并 PDF 文件
#: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")#: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 库:
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/install.sh
pip install ironpdf#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/install.sh
pip install ironpdf有关详细的安装说明和常见问题(如"模块未定义"错误或权限问题)的帮助,请参阅官方文档。
需要哪些导入语句?
在您的Python脚本中,包含以下导入语句以访问IronPDF的PDF生成和合并功能:
#: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"#: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/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")#: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字符串,每一个代表一个两页的文档。 RenderHtmlAsPdf 利用 IronPDF 基于 Chrome 的渲染引擎,将每条字符串转换为 PdfDocument 对象,该引擎能从 HTML、CSS 和 JavaScript 内容中生成准确的结果。 这种方法非常适合从Web模板生成报告或数据驱动的文档。 有关更复杂的渲染场景,请参阅HTML到PDF教程。
PdfDocument.FromFile("path/to/file.pdf") 从磁盘加载现有的 PDF 文件,并将其直接传递给 Merge 方法。 当组合预先存在的报告或外部生成的文档时,这很有用。合并方法如何工作?
PdfDocument.Merge 接受一个由 PdfDocument 对象组成的 Python 列表作为其唯一参数。 它按列表顺序合并文档,将第一个文档的所有页面放在第二个文档的所有页面之前,依此类推。 最终生成一个新的 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.Merge 之前,列表中会添加更多 PdfDocument 对象。 该方法可以扩展以处理一次性处理数十个或数百个文档。
无论您是合并2个还是200个文档,API始终相同。 对于高负载场景,如夜间报告聚合或文档组装管道,IronPDF还支持并行PDF生成,以加速合并前的渲染阶段。
该过程包括两个步骤:
- 创建一个包含待合并的
PdfDocument对象的 Python 列表 - 将列表作为参数传递给
PdfDocument.Merge
如何使用列表合并多个PDF?
以下代码通过一次调用合并四个HTML渲染文档:
#: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")#: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/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")#: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,然后再保存。









