JavaでPDFファイルを結合する方法

Java Merge PDF Files into a Single PDF

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

PDFはポータブル文書形式であり、テキストとグラフィックを含む文書の電子形式です。 これは、すべてのオペレーティングシステム、デバイス、またはソフトウェアアプリケーションで同じコンテンツとレイアウトを表示する独立した形式です。

Javaは高水準のプログラミング言語で、PDFデータと同様にプラットフォームに依存しません。 これにより、異なるコンピュータシステム間での移動が容易になります。 しかし、JavaでのソースPDFファイルと入力ストリームの取り扱いは難しいタスクになり得ます。 IronPDFJavaライブラリは、既存のPDFファイルを容易に操作し、作業するために最適です。

このハウツーガイドでは、IronPDF Javaライブラリをインストールし、複数のPDFドキュメントを結合する方法を学びます。

class="hsg-featured-snippet">

JavaでPDFファイルを結合する方法

  1. PDFファイルの結合を実行するためにJavaライブラリをインストールします
  2. renderHtmlAsPdf メソッドを利用して複数のPDFを生成します
  3. Javaでmergeメソッドを使用してPDFを結合します
  4. 結合されたPDFドキュメントを保存するためにsaveAsメソッドを使用します
  5. PDFオブジェクトのリストを作成し、mergeメソッドを使用して2つ以上のPDFを結合します

IronPDF: Javaライブラリ

IronPDFは、単一または複数のPDFドキュメントを作成、読み取り、編集するためのJavaライブラリです。 これは、HTMLレンダリングを使用してコンテンツの外観を含め、メタデータとしてタイトルや著者名を含むすべてのPDFファイルをゼロから作成することができます。 このライブラリは複数のPDFファイルを結合することも可能で、コンテンツを一つのPDFの目的ファイルパスに簡単にまとめることができます。 PDFファイルやPDFイテレータオブジェクト操作のために、サードパーティのライブラリ、外部フレームワーク、またはプラットフォーム統合を必要としません。 またクロスプラットフォームサポートも提供します。 これは、WindowsLinux、およびクラウドプラットフォーム上で動作するJava 8+、Kotlin、Scala用に特別に設計されています。

前提条件

複数のPDFファイルを結合するには、次のものが必要です:

  1. 任意のJava対応のIDE(Netbeans、Eclipse、IntelliJなど)。 ここでは複数のPDFを結合するためにIntelliJを使用します。
  2. IDEで実行中のMavenプロジェクト。

IronPDFのインストール

PDFファイルを結合するために私たちに必要な最初のものは、IronPDF Javaライブラリです。 どのプロジェクトでもIronPDFをダウンロードしてインストールするには3つの方法があります。

  1. IronPDFの依存関係をMavenプロジェクトのpom.xmlファイルに追加し、MavenコマンドラインツールまたはIDEを使用してライブラリを中央リポジトリから直接ダウンロードします。
  2. もう一つの方法はMavenのウェブサイトを訪れてIronPDFの最新バージョンをダウンロードすることです。 You can download it from here directly.
  3. IronPDFのウェブサイトを訪れて、このリンクから直接ダウンロードすることもできます。

どのケースでも、以下の依存関係コードをpom.xmlファイルに追加します。

<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>YOUR_VERSION_HERE</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>YOUR_VERSION_HERE</version>
</dependency>
XML

PDFを結合するには、もう一つSlf4j-simpleの依存関係も必要です。 You can also add it to the pom.xml file using the following code or you can visit the Maven website here.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
XML
class="content-img-align-center">
class="center-image-wrapper"> Java Merge PDFs - Figure 1: pom.xml dependencies

class="content__image-caption">pom.xmlの依存関係

IronPDFの機能を使用してPDFファイルを結合するためには、main.javaファイルに次のインポートステートメントも必要です。

import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

JavaでIronPDFを使用して二つのPDFソースファイルを結合

PDFファイルを結合するには、まずPDFファイルを作成し、それらを最終的に結合したPDFファイルに変換する必要があります。次のコードサンプルはまさにそれを実行します:

String htmlA = "<p> [PDF_A] </p>"
        + "<p> [PDF_A] 1st Page </p>"
        + "<div style='page-break-after: always;'></div>"
        + "<p> [PDF_A] 2nd Page</p>";
String htmlB = "<p> [PDF_B] </p>"
        + "<p> [PDF_B] 1st Page </p>"
        + "<div style='page-break-after: always;'></div>"
        + "<p> [PDF_B] 2nd Page</p>";

// Create PdfDocument objects using the HTML content
PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);

// Merge the two PDF documents into a single document
PdfDocument merged = PdfDocument.merge(pdfA, pdfB);
String htmlA = "<p> [PDF_A] </p>"
        + "<p> [PDF_A] 1st Page </p>"
        + "<div style='page-break-after: always;'></div>"
        + "<p> [PDF_A] 2nd Page</p>";
String htmlB = "<p> [PDF_B] </p>"
        + "<p> [PDF_B] 1st Page </p>"
        + "<div style='page-break-after: always;'></div>"
        + "<p> [PDF_B] 2nd Page</p>";

// Create PdfDocument objects using the HTML content
PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);

// Merge the two PDF documents into a single document
PdfDocument merged = PdfDocument.merge(pdfA, pdfB);
JAVA

上記のコードはHTMLマークアップを含む2つの文字列を生成します。各変数のHTMLコンテンツは2ページにわたっています。 次に、IronPDFのrenderHtmlAsPdfメソッドが呼び出され、HTML文字列の両方が個別のPDFドキュメントに変換されます。

PDFファイルを一緒に結合するメソッドはPdfDocument.mergeです。 このメソッドは上記で呼び出され、2つのPDFドキュメントを1つに結合します。 結果は、2番目のPdfDocumentのコンテンツを最初のものの最後に追加して生成された新しいPdfDocumentです。

結合された複数のPDFドキュメントを保存

結合されたPDFファイルを所望の目的地ファイルパスに保存するには、次の行を単に使用してください:

merged.saveAs(Paths.get("assets/merged.pdf"));
merged.saveAs(Paths.get("assets/merged.pdf"));
JAVA

結合されたPDFファイルの出力は下に示されています:

class="content-img-align-center">
class="center-image-wrapper"> Java Merge PDFs - Figure 2: Merge Multiple PDF Documents

class="content__image-caption">複数のPDFドキュメントを結合

2つ以上のPDFファイルを結合

2つ以上のPDFドキュメントを結合するには、まず必要なPdfDocumentオブジェクトを含むコレクションを作成し、次にそのリストを単一の引数としてPdfDocument.mergeメソッドに渡します。 コードは次の通りです:

import java.util.List;
import java.util.ArrayList;

public static void main(String[] args) throws IOException {
    String htmlA = "<p> [PDF_A] </p>"
            + "<p> [PDF_A] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_A] 2nd Page</p>";
    String htmlB = "<p> [PDF_B] </p>"
            + "<p> [PDF_B] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_B] 2nd Page</p>";
    String htmlC = "<p> [PDF_C] </p>"
            + "<p> [PDF_C] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_C] 2nd Page</p>";
    String htmlD = "<p> [PDF_D] </p>"
            + "<p> [PDF_D] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_D] 2nd Page</p>";

    // Creating PdfDocument objects
    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
    PdfDocument pdfC = PdfDocument.renderHtmlAsPdf(htmlC);
    PdfDocument pdfD = PdfDocument.renderHtmlAsPdf(htmlD);

    // Add documents to a list
    List<PdfDocument> pdfs = new ArrayList<>();
    pdfs.add(pdfA);
    pdfs.add(pdfB);
    pdfs.add(pdfC);
    pdfs.add(pdfD);

    // Merge all documents into a single PDF
    PdfDocument merged = PdfDocument.merge(pdfs);

    // Save the merged PDF document
    merged.saveAs(Paths.get("assets/more_than_two_merged.pdf"));
}
import java.util.List;
import java.util.ArrayList;

public static void main(String[] args) throws IOException {
    String htmlA = "<p> [PDF_A] </p>"
            + "<p> [PDF_A] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_A] 2nd Page</p>";
    String htmlB = "<p> [PDF_B] </p>"
            + "<p> [PDF_B] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_B] 2nd Page</p>";
    String htmlC = "<p> [PDF_C] </p>"
            + "<p> [PDF_C] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_C] 2nd Page</p>";
    String htmlD = "<p> [PDF_D] </p>"
            + "<p> [PDF_D] 1st Page </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_D] 2nd Page</p>";

    // Creating PdfDocument objects
    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
    PdfDocument pdfC = PdfDocument.renderHtmlAsPdf(htmlC);
    PdfDocument pdfD = PdfDocument.renderHtmlAsPdf(htmlD);

    // Add documents to a list
    List<PdfDocument> pdfs = new ArrayList<>();
    pdfs.add(pdfA);
    pdfs.add(pdfB);
    pdfs.add(pdfC);
    pdfs.add(pdfD);

    // Merge all documents into a single PDF
    PdfDocument merged = PdfDocument.merge(pdfs);

    // Save the merged PDF document
    merged.saveAs(Paths.get("assets/more_than_two_merged.pdf"));
}
JAVA

HTMLレンダー方式を使用して4つのPDFドキュメントが上部で作成されます。 次に、それぞれのPDFを含む新しいリストコレクションを埋め、そのリストをmergeメソッドに単一の引数として渡します。 その結果、これらのPDFは単一のPDFドキュメントに結合されます。

class="content-img-align-center">
class="center-image-wrapper"> Java Merge PDFs - Figure 3: More Than Two Merged PDF Files

class="content__image-caption">2つ以上の結合されたPDFファイル

結論

この記事では、JavaでIronPDFを使用してPDFファイルを結合する方法について説明しました。

最初にMavenを使用してJava用のIronPDFをインストールする方法を説明し、次にHTMLレンダリングメソッドを使用してPDFを生成する簡単な方法を示しました。 その後、2つ以上のPDFを単一のPDFファイルに結合する方法を見ました。

IronPDFは非常に優れた性能を発揮し、すべての操作を速く正確に行います。 JavaでPDFファイルを扱う上での優れたオプションです。 さらに、それはIronPDF for .NETの機能に基づいています。

IronEngine for Javaは、HTML、CSS、JS、JPG、およびPNGなどのオープンスタンダードな文書形式でHTML/URL/文字列からPDF変換を可能にします。 それはピクセルパーフェクトなPDFドキュメントを生成し、最新の技術で構築されています。

Java用のIronPDFを使用する方法についての詳細はコード例のページをご覧ください。

IronPDFは開発のために無料で利用でき、商業利用のためにライセンスできます。 ライセンスについての詳細情報は以下のリンクをご覧ください。

よくある質問

Javaを使用して複数のPDFファイルを1つのドキュメントに結合するにはどうすればいいですか?

IronPDFライブラリを使用することで、Javaで複数のPDFファイルを結合することができます。PdfDocumentオブジェクトのリストを作成し、mergeメソッドを使用してそれらを1つのファイルに統合することができます。

JavaでPDF操作用のIronPDFをインストールするためにはどのような手順が必要ですか?

JavaプロジェクトにIronPDFをインストールするには、Mavenプロジェクトを設定する必要があります。pom.xmlファイルにIronPDFの依存関係を追加し、Mavenを使用して中央リポジトリからライブラリをダウンロード可能にします。

Javaでドキュメントを結合する際にPDFのフォーマットを保持するにはどうすればよいですか?

IronPDFは結合プロセス中にPDFの元のフォーマットを維持します。その高度なレンダリングエンジンにより、結合されたPDFは元のドキュメントのすべてのフォント、レイアウト、およびスタイルを保持します。

JavaでIronPDFを実行するためにサポートされているプラットフォームは何ですか?

IronPDFはクロスプラットフォームの動作をサポートしており、Windows、Linux、およびクラウドプラットフォームでの実行が可能です。Java 8+、Kotlin、Scalaと互換性があります。

IronPDFを使用してドキュメントを結合した後にPDFファイルを保存する方法は?

IronPDFでドキュメントを結合した後、saveAsメソッドを使用して結果のPDFファイルを保存できます。このメソッドでは、結合されたドキュメントの保存先パスを指定できます。

JavaでHTMLコンテンツをPDFに変換することができるのはIronPDFですか?

はい、IronPDFはrenderHtmlAsPdfメソッドを使用してHTMLコンテンツをPDFに変換することができます。この機能により、HTML文字列を高品質なPDFドキュメントに変換することが可能です。

IronPDFは追加のライブラリなしでPDFを結合しようとするJava開発者にとって適した選択肢ですか?

IronPDFはJava開発者にとって優れた選択肢です。追加のサードパーティライブラリを必要とせず、強力なPDF作成および操作機能を提供するスタンドアロンライブラリです。

JavaでPDF作成と結合にIronPDFを使用する利点は何ですか?

IronPDFは、高速な処理、正確なレンダリング、HTML、CSS、および画像をPDFに変換する能力を含むいくつかの利点を提供します。開発用途には無料で使用できますが、商用展開にはライセンスが必要です。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。

準備はいいですか?
バージョン: 2025.11 ただ今リリースされました