如何使用Python合併PDF文件

使用Python將多個PDF文件合併為單一PDF

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

IronPDF for Python 提供了直接的方法來合併多個PDF文件進入一個檔案,使用PdfDocument.Merge()方法,支持雙文件合併和批量操作,有效地合併大量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可以通過pip作為Python套件獲得。它需要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字串,每一個代表一個兩頁的文件。 RenderHtmlAsPdf 使用 IronPDF 的 Chrome 基於渲染引擎將每個字串轉換為 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

Microsoft MVP

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

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

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

Brent Matzelle

首席技術官,OPYN

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

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

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中的下一步是什麼?

本指南涵蓋了使用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 for Python教學頁面:IronPDF for Python教學

下載該軟體產品。

常見問題

如何使用Python將多個PDF文件合併為一個?

使用pip install ironpdf安裝IronPDF,然後調用PdfDocument.Merge()並傳入包含PdfDocument物件的Python列表。該方法返回一個新的合併文件,您可以用SaveAs將其儲存。

我可以從磁碟中合併已有的PDF文件嗎?

可以。使用PdfDocument.FromFile('path/to/file.pdf')來載入每個現有的PDF,然後將載入的物件傳遞給PdfDocument.Merge()。您可以在同一列表中混合使用文件載入和新渲染的文件。

PdfDocument.Merge能夠保留文件格式和字體嗎?

可以。IronPDF在合併過程中會保留所有來源文件中的字體、圖像、註釋和頁面佈局。每個來源文件的原始外觀在最終合併的PDF中都會被保留。

如何控制合併PDF中的頁面順序?

輸出的頁面順序與傳遞給Merge的Python列表中PdfDocument物件的順序相同。請在調用Merge之前重新排列列表元素以控制順序。

我可以壓縮合併的PDF以減少文件大小嗎?

可以。在合併後,請在調用SaveAs之前調用合併的PdfDocument上的CompressImages(quality)。質量值為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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

希望快速證明嗎?
運行範例 看您的HTML轉化成PDF。