如何在 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 文件和輸入流可能是一項具有挑戰性的任務。 IronPDF一個 Java 庫,非常適合輕鬆操作和處理現有的 PDF 文件。

在這篇指南中,您將學會如何安裝 IronPDF Java 庫並合併多個 PDF 文檔。

class="hsg-featured-snippet">

如何在 Java 中合併 PDF 文件

  1. 安裝 Java 庫以對 PDF 文件進行合併
  2. 利用renderHtmlAsPdf方法生成多個 PDF
  3. 使用 Java 中的merge方法合併 PDF
  4. 使用saveAs方法保存合併的 PDF 文檔
  5. 合併超過兩個 PDF,通過創建 PDF 對象的列表並使用merge方法

IronPDF:Java 庫

IronPDF 是一個用於創建、閱讀和編輯單個或多個 PDF 文檔的 Java 庫。 它允許用戶從頭開始創建所有 PDF 文件,包括使用 HTML 渲染的內容外觀,以及元數據如標題和作者名。 該庫也支持合併多個 PDF 文件,方便將內容合併為一個 PDF 目標文件路徑。 無需任何第三方庫、外部框架或平台集成即可處理 PDF 文件或 PDF 迭代器對象。 它還提供跨平台支持。 專為運行於 Java 8+、Kotlin 和 ScalaWindows、Linux 和雲平台 而設計。

先決條件

要合併多個 PDF 文件,您需要以下內容:

  1. 任何支持 Java 的 IDE (Netbeans, Eclipse, IntelliJ, 等)。 此處將使用 IntelliJ 合併多個 PDF。
  2. 在 IDE 中運行的 Maven 項目。

安裝 IronPDF

合併 PDF 文件的第一步是 IronPDF Java 庫。 在任何項目中下載和安裝 IronPDF 有三種方法。

  1. 可以在 Maven 項目的pom.xml文件中添加 IronPDF 依賴項,並使用 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 合併 PDF - 圖 1:pom.xml 依賴項

class="content__image-caption">pom.xml 依賴項

main.java文件中也需要以下導入語句,以使用 IronPDF 函數合併 PDF 文件。

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 標記的字符串。每個變量的 HTML 內容跨越兩頁。 然後調用了 IronPDF 的renderHtmlAsPdf方法,將兩個 HTML 字符串轉換為單獨的 PDF 文檔。

合併 PDF 文件的方法是PdfDocument.merge。 上述方法被調用以將兩個 PDF 文檔合併為一個。 結果是一個新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 合併 PDF - 圖 2:合併多個 PDF 文檔

class="content__image-caption">合併多個 PDF 文檔

合併超過兩個 PDF 文件

合併超過兩個 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 渲染方法創建了四個 PDF 文檔。 接下來,我們用每個 PDF 填充一個新的List集合,然後將該列表作為單個參數傳遞給merge方法。 結果是這些 PDF 被合併為一個 PDF 文檔。

class="content-img-align-center">
class="center-image-wrapper">Java 合併 PDF - 圖 3:超過兩個合併的 PDF 文件

class="content__image-caption">超過兩個合併的 PDF 文件

結論

本文說明瞭如何使用 Java 的 IronPDF 合併 PDF 文件。

我們首先介紹了如何使用 Maven 安裝 IronPDF,然後展示了一個通過 HTML 渲染方法生成 PDF 的簡單方法。 之後,我們看到如何將兩個或更多 PDF 合併為單個 PDF 文件。

IronPDF 表現非常出色,所有操作都快速而準確。 這是用於在 Java 中處理 PDF 文件的一個很好的選擇。 此外,它基於 IronPDF for .NET 功能。

Java 的 IronEngine 允許 HTML/URL/字符串轉換為具有開放標準文檔類型的 PDF,如 HTML、CSS、JS、JPG 和 PNG。 它生成像素完美的 PDF 文檔,並基於最新技術構建。

您可以從我們的代碼示例頁面獲取更多有關如何使用 IronPDF for Java 的信息。

IronPDF 在開發中是免費的,並可供商業使用授權使用。 有關許可證的更多信息,請訪問以下鏈接

常見問題解答

如何使用 Java 將多個 PDF 文件合併成一個文件?

您可以使用 IronPDF 庫在 Java 中合併多個 PDF 文件。它允許您創建一個 PdfDocument 對象列表,並使用 merge 方法將它們合併成單一文件。

安裝 IronPDF 以進行 PDF 操作在 Java 中需要哪些步驟?

要在 Java 項目中安裝 IronPDF,您需要設置一個 Maven 項目。將 IronPDF 依賴添加到您的 pom.xml 文件中,以便可以使用 Maven 從中央庫下載該庫。

如何確保在 Java 中合併文件時保留 PDF 格式?

IronPDF 在合併過程中保留了 PDF 的原始格式。其先進的渲染引擎確保合併後的 PDF 保留了原始文件的所有字體、佈局和樣式。

IronPDF 在 Java 中支持哪些平臺運行?

IronPDF 支持跨平臺操作,允許您在 Windows、Linux 和雲平臺上運行。它與 Java 8+、Kotlin 和 Scala 兼容。

如何在使用 IronPDF 合併文檔後保存 PDF 文件?

在使用 IronPDF 合併文檔後,您可以使用 saveAs 方法保存合併後的 PDF 文件。此方法允許您指定合併文檔的目標路徑。

IronPDF 能在 Java 中處理將 HTML 內容轉換為 PDF 的功能嗎?

是的,IronPDF 可以使用 renderHtmlAsPdf 方法將 HTML 內容轉換為 PDF。此功能使得 HTML 字符串可以轉換為高質量的 PDF 文件。

IronPDF 對於尋求合併 PDF 而不使用其他庫的 Java 開發人員來說是一個合適的選擇嗎?

IronPDF 對於 Java 開發人員是一個極佳的選擇,因為它不需要任何第三方庫。它是一個獨立的庫,提供強大的 PDF 創建和操作功能。

在 Java 中使用 IronPDF 進行 PDF 創建和合併有什麼優點?

IronPDF 提供多項優勢,包括高速處理、準確渲染以及將 HTML、CSS 和圖像轉換為 PDF 的功能。它對開發用途是免費的,商業部署需另購授權。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。

準備好開始了嗎?
版本: 2025.11 剛剛發布