如何在 Java 中合併 PDF 文件

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

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

IronPDF for Java 可以使用 PdfDocument.merge() 方法將多個 PDF 文件合併到一個文件中,支援兩個文件的合併以及 PDF 集合的批次操作。

快速入門:在 Java 中合併 PDF 檔案

  1. 將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
  2. 從 HTML 建立 PDF 文件:

    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
    JAVA
  3. 合併PDF並儲存: ```java :title=MergeExample.java PdfDocument 合併 = PdfDocument.merge(pdfA, pdfB); merged.saveAs(Paths.get("assets/merged.pdf"));

PDF是便攜式文件格式,是一種包含文字和圖形的電子文檔格式。 它在所有作業系統、裝置或軟體應用程式中顯示相同的內容和佈局。

Java 是一種高階程式語言,就像 PDF 資料一樣,它也具有平台無關性。 這樣就可以輕鬆地在不同的電腦系統之間切換。 然而,在 Java 中處理來源 PDF 檔案和輸入流可能具有挑戰性。 IronPDF一個 Java 程式庫,非常適合輕鬆操作和處理現有的 PDF 檔案。

在本操作指南中,您將學習如何安裝IronPDF Java 程式庫並合併多個 PDF 文件。 無論您是合併報告、合併掃描文件或組裝多部分錶單, IronPDF都提供了一個簡單的 API,可以在內部處理 PDF 操作的複雜性。

什麼是IronPDF ?為什麼要使用它進行 PDF 合併?

IronPDF是一個 Java 庫,用於建立、讀取和編輯單一或多個 PDF 文件。 它允許用戶從頭開始創建所有 PDF 文件,包括使用 HTML 渲染的內容外觀,以及標題和作者姓名等元資料。 該程式庫還允許合併多個 PDF 文件,從而可以輕鬆地將內容合併到一個 PDF 目標文件路徑中。 它不需要任何第三方函式庫、外部框架或平台整合即可處理 PDF 檔案或 PDF 迭代器物件。 它還提供跨平台支援。 它專為在WindowsLinux雲端平台上運行的Java 8+、Kotlin 和 Scala而設計。

IronPDF能夠有效地處理 PDF 合併操作,因為它能夠保持文件完整性、保留格式、處理複雜的佈局並有效率地處理大型文件。 該程式庫的合併功能支援各種場景,包括依序追加文件、在特定位置插入頁面以及合併頁面大小或方向不同的 PDF 檔案。

Java中合併PDF的先決條件是什麼?

若要合併多個PDF文件,您需要以下工具:

  1. 任何支援 Java 的 IDE(NetBeans、Eclipse、IntelliJ 等)。 我們將使用 IntelliJ 來合併多個 PDF 檔案。
  2. 在 IDE 中執行的 Maven 專案。
  3. 您的系統上已安裝 Java 開發工具包 (JDK) 8 或更高版本。
  4. 具備 Ja​​va 程式設計和 Maven 依賴管理的基本知識。

如何安裝IronPDF進行 PDF 合併?

合併 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
Maven pom.xml showing IronPDF and SLF4J dependencies for PDF merging project setup

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

如何使用IronPDF在 Java 中合併兩個 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 合併 = 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 合併 = PdfDocument.merge(pdfA, pdfB);
JAVA

上述程式碼建立了兩個包含 HTML 標記的字串。每個變數的 HTML 內容跨越兩頁。 然後,呼叫 IronPDF 的 renderHtmlAsPdf 方法將兩個 HTML 字串轉換為單獨的 PDF 文件。 有關更進階的 HTML 轉 PDF 轉換選項,包括自訂字體和樣式,請參閱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文件輸出結果如下所示:

PDF viewer showing merged 4-page document with thumbnail navigation panel

合併多個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 文件。

對於更複雜的合併場景,例如合併來自不同 PDF 的特定頁面或範圍,您可以將合併功能與頁面操作功能結合。 有關拆分 PDF 指南中頁面層級操作的詳細資訊。

PDF viewer showing merged document with 8 pages, demonstrating successful multi-file PDF merge using Java IronPDF

合併兩個以上的 PDF 文件

進階合併選項

除了基本的合併功能外, IronPDF還提供高級 PDF 操作的附加功能:

1.選擇性頁面合併:在合併之前從來源 PDF 中提取特定頁面
2.在指定位置插入:在現有文件中的特定位置新增 PDF 文件
3.保留元資料:在合併作業期間維護文件屬性和元數據
4.處理大型文件:高效處理大型 PDF 文件,不會有記憶體問題

以下是一個選擇性頁面合併的範例:

// Load existing PDFs
PdfDocument existingPdf = PdfDocument.fromFile(Paths.get("source.pdf"));
PdfDocument newPages = PdfDocument.fromFile(Paths.get("additional.pdf"));

// Extract specific pages (pages 2-4 from the new PDF)
PdfDocument selectedPages = newPages.extractPages(1, 3); // 0-indexed

// Merge the selected pages with the existing PDF
PdfDocument finalPdf = PdfDocument.merge(existingPdf, selectedPages);
finalPdf.saveAs(Paths.get("merged_selective.pdf"));
// Load existing PDFs
PdfDocument existingPdf = PdfDocument.fromFile(Paths.get("source.pdf"));
PdfDocument newPages = PdfDocument.fromFile(Paths.get("additional.pdf"));

// Extract specific pages (pages 2-4 from the new PDF)
PdfDocument selectedPages = newPages.extractPages(1, 3); // 0-indexed

// Merge the selected pages with the existing PDF
PdfDocument finalPdf = PdfDocument.merge(existingPdf, selectedPages);
finalPdf.saveAs(Paths.get("merged_selective.pdf"));
JAVA

使用IronPDF合併 PDF 檔案有哪些關鍵要點?

本文介紹如何使用IronPDF for Java 合併 PDF 檔案。

我們首先介紹如何使用 Maven 安裝IronPDF for Java,然後展示了使用 HTML 渲染方法產生 PDF 的簡單方法。 之後,我們學習如何將兩個或多個 PDF 檔案合併成一個 PDF 檔案。

IronPDF性能優異,能夠快速且準確地完成所有操作。 它是 Java 中處理 PDF 文件的絕佳選擇。 此外,它也基於IronPDF for .NET功能。

IronEngine for Java 允許將 HTML/URL/字串轉換為 PDF,支援 HTML、CSS、JS、JPG 和 PNG 等開放標準文件類型。 它能產生像素級完美的 PDF 文檔,並採用最新技術建構。 部署到雲端平台,請參閱我們的AWS 部署指南、 Azure 部署指南Google Cloud 部署指南

您可以從我們的程式碼範例頁面取得更多關於如何使用IronPDF for Java 的資訊。 如需了解更多 PDF 操作功能,請瀏覽我們關於壓縮 PDF新增浮水印建立 PDF 表單的教學。

IronPDF可免費用於開發,並可授權用於商業用途。 有關許可證的更多信息,請訪問以下連結

常見問題解答

如何在 Java 中合併兩個 PDF 檔案?

使用 IronPDF,您可以使用 PdfDocument.merge() 方法合併兩個 PDF 檔案。只需創建或載入您的 PDF 文件,然後調用 PdfDocument.merge(pdfA,pdfB),並使用 saveAs() 方法保存結果。

PDF 合併需要什麼 Java 版本?

IronPDF 專為 Java 8 及更高版本設計,也支援 Kotlin 和 Scala。它可在 Windows、Linux 和雲端平台上運作,無需第三方程式庫或外部框架。

我可以一次合併兩個以上的 PDF 嗎?

是的,IronPDF 支援合併多個 PDF 的批次作業。您可以建立 PDF 物件清單,並使用合併方法在一次操作中將它們全部合併為單一文件。

如何將 PDF 合併函式庫加入 Maven 專案?

透過包含 com.ironsoftware groupId 與 ironpdf artifactId,在您的 pom.xml 檔案中加入 IronPDF 作為相依性。這將讓您存取所有 PDF 操作功能,包括合併。

合併 PDF 是否保留原始格式?

是的,IronPDF 可在合併 PDF 時保持文件的完整性。它可以保留格式、處理複雜的版面設計,並有效率地處理大型檔案,同時保持每個文件的原貌。

在合併之前,我可以從 HTML 建立 PDF 嗎?

絕對可以IronPDF 允許您使用 renderHtmlAsPdf() 方法從 HTML 建立 PDF。您可以從 HTML 內容產生多個 PDF,然後再使用相同的合併功能將它們合併在一起。

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

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

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

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

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

還在捲動嗎?

想要快速證明?
執行範例 觀看您的 HTML 變成 PDF。