Pythonを使用してPDFファイルを結合する方法

Pythonを使ってPDFファイルを1つのPDFにマージする

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

IronPDF for Pythonは、PdfDocument.Merge()メソッドを使用して複数のPDF文書を1つのファイルに結合するための直接的なソリューションを提供し、2つのファイルの結合と、多数のPDFを効率的に結合するためのバッチ処理の両方をサポートしています。

PDF(Portable Document Format)は、プラットフォームやアプリケーションに関係なく同一に見えるべきドキュメントの共有に標準です。 レポートを統合したり、スキャンされたドキュメントを結合したり、複数の部品からなるフォームを組み立てたり、さまざまなソースからPDFコンテンツを結合することは、ビジネスやデータ処理のワークフローで繰り返される必要があります。

IronPDFはこの操作をPythonで1つのメソッド呼び出しで処理します。 このガイドは、インストール、基本的な2つのファイルのマージ、および一度に複数のドキュメントを結合するためのバッチ操作をカバーします。

クイックスタート: 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

Python用IronPDFはどのようにインストールしますか?

IronPDFはpipを介してPythonパッケージとして利用可能です。Python 3.xが必要で、WindowsおよびLinuxで動作し、標準のマージ操作に必要な追加のシステム依存関係はありません。 パッケージには、HTMLからPDFへの変換を内部的に処理するChromeベースのレンダリングエンジンが付属しています。

以下のコマンドを使用して、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

"モジュールが定義されていない"エラー権限の問題などの一般的な問題に関する詳細なインストール手順とサポートについては、公式ドキュメントを参照してください。

必要なインポートステートメントは何ですか?

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"
PYTHON

本番アプリケーションでは、ライセンスキーを設定して、IronPDFのフル機能セットのロックを解除してください。 無料トライアルが利用可能です - 無料トライアルを開始してください、購入なしで始めます。

Pythonで2つのPDFファイルをマージするにはどうすればよいですか?

PythonでのPDFファイルの結合には、ソースとなるPDFドキュメントを作成し、それをPdfDocument.Merge()で結合するという2つのステップがあります。 このメソッドは 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

なぜPDF生成にRenderHtmlAsPdfを使うのですか

上記の例は、2つのHTML文字列を使用し、それぞれが2ページの文書を表しています。 RenderHtmlAsPdf は、IronPDFのChromeベースのレンダリングエンジンを使用して各文字列を PdfDocument オブジェクトに変換します。これにより、HTML、CSS、およびJavaScriptコンテンツから正確な結果が生成されます。 このアプローチは、ウェブテンプレートからのレポートやデータ駆動型ドキュメントの生成に最適です。 より複雑なレンダリングシナリオについては、HTMLからPDFへのチュートリアルを参照してください。

ヒントまた、PdfDocument.FromFile("path/to/file.pdf") を使用してディスクから既存の PDF ファイルを読み込み、それらを Merge メソッドに直接渡すこともできます。 これは既存のレポートや外部で生成されたドキュメントを結合する場合に便利です。

マージ メソッドはどのように機能しますか?

PdfDocument.Merge は、PdfDocument オブジェクトの Python リストを単一の引数として受け取ります。 リスト順でドキュメントを結合し、最初のドキュメントのすべてのページを2番目のドキュメントのすべてのページの前に配置します。 その結果、さらに修正や保存が可能な新しい PdfDocument が生成されます。 ページ数、ブックマーク、および各ソースドキュメントからの埋め込みコンテンツは、出力で全て保持されます。

メソッドは同じリストでレンダリングされたドキュメントとファイルロードされたドキュメントの任意の組み合わせを受け入れます。これはレポートの一部が動的に生成され、もう一部が静的テンプレートであるときに有用です。

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で2つ以上のPDFファイルを結合する方法は?

IronPDFでのバッチ結合は、2つのドキュメントを結合する場合と同じパターンに従います。 唯一の違いは、PdfDocument.Mergeオブジェクトがさらに追加される点です。 このメソッドは、一度の操作で数十または数百のドキュメントを処理するようにスケーリングします。

結合するドキュメント数にかかわらず、2つまたは200のドキュメントを結合する場合でも、同じAPIです。 高ボリュームのシナリオ、たとえば夜間のレポート集約やドキュメントアセンブリパイプラインなどでは、IronPDFは結合前にレンダリングフェーズを高速化するために並列PDF生成もサポートしています。

プロセスには2つのステップがあります:

  • マージする PdfDocument オブジェクトを含む Python リストを作成する
  • リストを PdfDocument.Merge の引数として渡してください

リストで複数のPDFを結合する方法

以下のコードは、4つの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ファイルではなく、既存の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 結合の 2 つの主なパターンについて解説しました。1 つは HTML コンテンツを PDF 文書としてレンダリングし、PdfDocument.Merge を使用して結合する方法、もう 1 つはディスクから既存のファイルを読み込んでバッチ処理で結合する方法です。 どちらのアプローチも同じAPIを共有しており、シンプルな2ファイル結合から大規模なドキュメントバッチにスケーリングします。

IronPDFは結合後の操作もサポートしています。ヘッダーとフッターの追加、ブランディングのための水印の適用、結合ドキュメントからのテキスト抽出、プログラムによるPDFフォームの記入などが含まれます。

ライブラリはWindowsおよびLinux上 for Python 3.xをサポートしています。 より多く for Python PDF操作については、PDFの分割画像へのPDF変換、およびPDFの印刷をご覧ください。 Pythonコードのすべての例についてはIronPDF for Pythonの例のページをご覧ください。

無料トライアルを始めて環境でのPDF結合をテストする、またはライセンスオプションを確認して本番展開を行います。

次に何ができるのかを見てみましょうか? IronPDF Pythonのチュートリアルページはこちらをご覧ください:IronPDF for Python tutorials

ソフトウェア製品をダウンロード

よくある質問

Pythonを使って複数のPDFファイルを1つに結合する方法を教えてください。

pip install ironpdfでIronPDFをインストールし、その後でPdfDocument.Merge()をPythonのPdfDocumentオブジェクトのリストで呼び出します。このメソッドは新しい統合ドキュメントを返し、SaveAsで保存します。

レンダリングされたPDFではなくディスク上の既存のPDFファイルをマージできますか?

はい。PdfDocument.FromFile('path/to/file.pdf')を使用して各既存PDFをロードし、ロードされたオブジェクトをPdfDocument.Merge()に渡します。ファイルでロードされたドキュメントと新たにレンダリングされたドキュメントを同じリストで混在させることができます。

PdfDocument.Mergeはドキュメントのフォーマットやフォントを保持しますか?

はい。IronPDFは、マージ中にすべてのソースドキュメントからフォント、画像、注釈、ページレイアウトを保持します。各ソースドキュメントの元の外観は最終的なマージされたPDFで維持されます。

マージされたPDFでページの順序を制御するにはどうすればよいですか?

出力のページ順序は、Mergeに渡されたPythonリストのPdfDocumentオブジェクトの順序に一致します。順序を制御するには、Mergeを呼び出す前にリスト要素を並び替えます。

マージされたPDFのファイルサイズを減らすために圧縮できますか?

はい。マージ後に、CompressImages(quality)をマージされたPdfDocumentで呼び出し、SaveAsを呼び出す前に実行してください。品質値90は、圧縮と視覚的な忠実度のバランスにおいて良い選択です。

IronPDF for Pythonはクロスプラットフォーム対応ですか?

はい。IronPDF for PythonはWindowsおよびLinux上でPython 3.xをサポートしています。PdfDocument.Merge()の同じAPIが、どちらのプラットフォームでも設定変更なしで動作します。

マージされたPDFドキュメントにメタデータを追加できますか?

はい。マージ後、保存する前にマージされたPdfDocumentpdf.MetaData.Authorpdf.MetaData.Titleなどのメタデータプロパティを設定してください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか?
サンプルを実行するHTML が PDF に変換されるのを確認します。