如何在 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 並保存:
    :title=MergeExample.java
    PdfDocument merged = PdfDocument.merge(pdfA, pdfB);
    merged.saveAs(Paths.get("assets/merged.pdf"));
    :title=MergeExample.java
    PdfDocument merged = PdfDocument.merge(pdfA, pdfB);
    merged.saveAs(Paths.get("assets/merged.pdf"));
    JAVA

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

Java 是一種高階程式設計語言,像 PDF 資料一樣也具有平台無關性。 這使得在不同的計算機系統間移動變得容易。 然而,在 Java 中與來源 PDF 檔案和輸入流一起工作可能很具挑戰性。 IronPDF一個 Java 程式庫,適合輕鬆操作和處理現有 PDF 文件。

在這篇教學指南中,您將學習如何安裝 IronPDF Java 程式庫並合併多個 PDF 文件。 無論是整合報告、合併掃描文件或組裝多頁形式,IronPDF 提供了一個簡單明瞭的 API,方便地在內部處理 PDF 操作的複雜性。

什麼是 IronPDF,為什麼選擇它來合併 PDF?

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

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

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

要合併多個 PDF 檔案,您需要以下事項:

  1. 任何支援 Java 的 IDE(如 NetBeans、Eclipse、IntelliJ 等)。 我們會在這裡使用 IntelliJ 合併多個 PDF。
  2. 在 IDE 運行的 Maven 項目。
  3. 安裝在您系統上的 Java 開發工具包(JDK)版本 8 或更高。
  4. 基本的 Java 程式設計和 Maven 依賴管理知識。

如何安裝 IronPDF 以合併 PDF?

合併 PDF 文件,我們首先需要 IronPDF Java 程式庫。 下載和安裝 IronPDF 在任何項目中的三種方法。

  1. 您可以在 Maven 項目的 pom.xml 文件中新增 IronPDF 的相依性,並使用 Maven 命令行工具或 IDE 直接從中央儲存庫下載程式庫。
  2. 另一種方法是存取 Maven 網站並下載最新版本的 IronPDF。 您可以直接從 這裡 下載。
  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。 您也可以使用以下程式碼將其新增到 pom.xml 文件中,或可以存取 Maven 網站這裡

<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,顯示用於 PDF 合併專案設定的 IronPDF 與 SLF4J 相依性

pom.xml 相依性

為了使用 IronPDF 功能合併 PDF 文件,在 main.java 文件中也需要以下 import 語句。

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
Icon Quote related to 如何安裝 IronPDF 以合併 PDF?

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to 如何安裝 IronPDF 以合併 PDF?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 如何安裝 IronPDF 以合併 PDF?

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 如何安裝 IronPDF 以合併 PDF?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 如何安裝 IronPDF 以合併 PDF?

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to 如何安裝 IronPDF 以合併 PDF?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何使用 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>";

// 使用 HTML 內容創建 PdfDocument 對象
PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);

// 將兩個 PDF 文檔合併為一個文檔
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>";

// 使用 HTML 內容創建 PdfDocument 對象
PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);

// 將兩個 PDF 文檔合併為一個文檔
PdfDocument merged = 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 檢視器,顯示合併後的 4 頁文件以及縮圖導覽面板

合併多個 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] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_A] 第 2 頁</p>";
    String htmlB = "<p> [PDF_B] </p>"
            + "<p> [PDF_B] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_B] 第 2 頁</p>";
    String htmlC = "<p> [PDF_C] </p>"
            + "<p> [PDF_C] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_C] 第 2 頁</p>";
    String htmlD = "<p> [PDF_D] </p>"
            + "<p> [PDF_D] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_D] 第 2 頁</p>";

// 創建 PdfDocument 對象
    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
    PdfDocument pdfC = PdfDocument.renderHtmlAsPdf(htmlC);
    PdfDocument pdfD = PdfDocument.renderHtmlAsPdf(htmlD);

// 將文檔添加到列表中
    List<PdfDocument> pdfs = new ArrayList<>();
pdfs.add(pdfA);
pdfs.add(pdfB);
pdfs.add(pdfC);
pdfs.add(pdfD);

// 將所有文檔合併為一個 PDF
    PdfDocument merged = PdfDocument.merge(pdfs);

// 保存合併的 PDF 文檔
    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] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_A] 第 2 頁</p>";
    String htmlB = "<p> [PDF_B] </p>"
            + "<p> [PDF_B] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_B] 第 2 頁</p>";
    String htmlC = "<p> [PDF_C] </p>"
            + "<p> [PDF_C] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_C] 第 2 頁</p>";
    String htmlD = "<p> [PDF_D] </p>"
            + "<p> [PDF_D] 第 1 頁 </p>"
            + "<div style='page-break-after: always;'></div>"
            + "<p> [PDF_D] 第 2 頁</p>";

// 創建 PdfDocument 對象
    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
    PdfDocument pdfC = PdfDocument.renderHtmlAsPdf(htmlC);
    PdfDocument pdfD = PdfDocument.renderHtmlAsPdf(htmlD);

// 將文檔添加到列表中
    List<PdfDocument> pdfs = new ArrayList<>();
pdfs.add(pdfA);
pdfs.add(pdfB);
pdfs.add(pdfC);
pdfs.add(pdfD);

// 將所有文檔合併為一個 PDF
    PdfDocument merged = PdfDocument.merge(pdfs);

// 保存合併的 PDF 文檔
    merged.saveAs(Paths.get("assets/more_than_two_merged.pdf"));
}
JAVA

上面使用 HTML 渲染方法建立了四個 PDF 文件。 接下來,我們為每個 PDF 填充一個新的 List 集合,然後將此列表作為單個參數傳遞給 merge 方法。 結果是這些 PDF 被合併為單一的 PDF 文件。

對於更複雜的合併方案,如合併來自不同 PDF 的特定頁面或範圍,您可以將合併功能與頁面操作功能相結合。 在 拆分 PDF 指南中了解有關頁面級操作的更多資訊。

PDF 檢視器,顯示合併後含 8 頁的文件,展示使用 Java IronPDF 成功完成多檔案 PDF 合併

多於兩個的合併 PDF 文件

進階合併選項

除了基本的合併,IronPDF 還提供了進階的 PDF 操作能力:

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

以下是選擇性頁面合併的例子:

// 載入現有的 PDF
PdfDocument existingPdf = PdfDocument.fromFile(Paths.get("source.pdf"));
PdfDocument newPages = PdfDocument.fromFile(Paths.get("additional.pdf"));

// 提取特定頁面(從新的 PDF 中提取第 2-4 頁)
PdfDocument selectedPages = newPages.extractPages(1, 3); // 0-索引

// 將選擇的頁面與現有的 PDF 合併
PdfDocument finalPdf = PdfDocument.merge(existingPdf, selectedPages);
finalPdf.saveAs(Paths.get("merged_selective.pdf"));
// 載入現有的 PDF
PdfDocument existingPdf = PdfDocument.fromFile(Paths.get("source.pdf"));
PdfDocument newPages = PdfDocument.fromFile(Paths.get("additional.pdf"));

// 提取特定頁面(從新的 PDF 中提取第 2-4 頁)
PdfDocument selectedPages = newPages.extractPages(1, 3); // 0-索引

// 將選擇的頁面與現有的 PDF 合併
PdfDocument finalPdf = PdfDocument.merge(existingPdf, selectedPages);
finalPdf.saveAs(Paths.get("merged_selective.pdf"));
JAVA

合併 PDF 使用 IronPDF 的關鍵收穫是什麼?

本文解釋了如何使用 IronPDF for Java 合併 PDF 文件。

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

IronPDF 性能良好,執行所有操作都迅速並精確。 它在 Java 中處理 PDF 文件是個極佳的選擇。 此外,它是基於 IronPDF for .NET 的功能。

IronEngine for Java 允許使用開放標準文件型別(如 HTML、CSS、JS、JPG 和 PNG)進行 HTML/URL/字串到 PDF 的轉換。 它產生的 PDF 文件像素完美,建立於最新技術上。 如需要部署到雲平台,請參閱我們的指南,如 AWS 部署Azure 部署Google Cloud 部署

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

IronPDF 對於開發免費,並且可以取得商業使用許可。 有關更多授權資訊,請存取以下連結

常見問題

如何在 Java 中合併兩個 PDF 文件?

using 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 專案中?

在您的 pom.xml 文件中新增 IronPDF 作為依賴項,包含 com.ironsoftware groupId 和 ironpdf artifactId。這將使您能夠使用所有 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.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

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