如何使用 Python 合併 PDF 檔案 | IronPDF

使用 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/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")
PYTHON

如何安裝 IronPDF for Python?

IronPDF 可透過 pip 作為 Python 套件取得。它需要 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
SHELL

如需詳細的安裝說明,或針對"Module Not Defined"錯誤權限問題等常見問題的協助,請參閱官方文件。

需要哪些 Import 語句?

在您的 Python 腳本中,請加入以下 import 語句以存取 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"
PYTHON

若用於生產環境,請設定您的授權金鑰以解鎖 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")
PYTHON

為何使用 RenderHtmlAsPdf 來生成 PDF?

上述範例使用了兩段 HTML 字串,每段代表一份兩頁的文件。 RenderHtmlAsPdf 會利用 IronPDF 基於 Chrome 的渲染引擎,將每串字串轉換為 PdfDocument 物件,該引擎能從 HTML、CSS 和 JavaScript 內容中產生精確的結果。 此方法非常適合用於根據網頁範本生成報告或資料驅動的文件。 若需處理更複雜的渲染情境,請參閱 HTML 轉 PDF 教學指南。

提示您也可以使用 PdfDocument.FromFile("path/to/file.pdf") 從磁碟載入現有的 PDF 檔案,並將其直接傳遞給 Merge 方法。 這在整合現有報告或外部產生的文件時非常有用。

Merge 方法是如何運作的?

PdfDocument.MergePdfDocument 物件的 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")
PYTHON

儲存後,您可以進行額外的後處理,例如 PDF 壓縮,以減小大型合併文件的檔案大小。

IronPDF output showing a 4-page merged PDF with thumbnail panel confirming successful two-document merge

合併後的 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")
PYTHON

傳遞給 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

請注意IronPDF 在合併時能完整保留原始檔案中的字型、圖片、註解及頁面版面配置。 內嵌表單欄位或數位簽名的文件亦可合併,但輸出中的互動式表單欄位可能需視使用情境重新扁平化。)}]

IronPDF output showing a multi-page merged PDF with thumbnail navigation panel displaying pages from four source documents

多文件合併結果,顯示來自所有四個原始 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 installIronPDF` 安裝 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 以減小檔案大小嗎?

是的。合併後,請在呼叫 SaveAs 之前,先對合併後的 PdfDocument 呼叫 CompressImages(quality)。將 quality 值設為 90 可在壓縮率與視覺保真度之間取得良好的平衡。

IronPDF for Python 是否支援跨平台?

是的。IronPDF for Python 支援 Windows 和 Linux 上的 Python 3.x。相同的 PdfDocument.Merge() API 在兩個平台上皆可運作,無需任何設定變更。

我可以向合併後的 PDF 文件中添加元資料嗎?

是的。合併後,請在儲存前於合併後的 PDF 文件上設定元資料屬性,例如 pdf.MetaData.Authorpdf.MetaData.Title

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎?
執行範例 觀看您的 HTML 轉為 PDF。