merge pdf java – GroupDocs Merger for Java 完整指南

介紹

在數位時代,效率高的 merge pdf java 作業對於處理數十份報告、合約,或需要從大型 PDF 中抽取特定頁面的企業而言至關重要。GroupDocs.Merger for Java 為您提供一套強大且高效能的 API,能在不將整個檔案載入記憶體的情況下,完成文件的合併、抽取與管理。本教學將帶您逐步了解安裝、核心功能以及最佳實踐技巧,讓您今天就能在 Java 中開始合併 PDF。

您將學到

  • 如何在 IDE 中設定 GroupDocs.Merger for Java
  • 在 Java 中 merge pdf java 檔案、加入文件以及合併 PDF 的方法
  • extract pdf pages java 的技巧與高效儲存合併後文件的方式
  • Java 文件處理與效能調校的驗證最佳實踐

在進入程式碼前,先確認您已具備所有必要條件。

快速解答

  • 合併 PDF 的主要類別是什麼? Merger – 它代表一個 PDF 文件,提供所有合併/抽取的方法。
  • 我可以一次加入多個文件嗎? 可以,使用 joinPageBuilder 來串接任意數量的檔案。
  • 如何抽取特定頁面? 建立 PageBuilder,加入欲抽取的頁面,然後套用並儲存。
  • 支援哪些檔案格式? 超過 30 種輸入與輸出格式,包括 PDF、DOCX、XLSX、PPTX 以及各類影像。
  • 商業使用需要授權嗎? 商業使用必須擁有有效的 GroupDocs.Merger 授權;亦提供免費試用供評估。

什麼是 merge pdf java?

merge pdf java 指的是使用 Java 程式碼將兩個或多個 PDF 檔案合併為單一 PDF。透過 GroupDocs.Merger,此操作在記憶體中完成,保留版面配置、註解與中繼資料,且支援最高 2 GB 的檔案。此方式讓開發者能自動化報告彙整、合約組合等文件導向工作流程,免除手動操作。

為何使用 GroupDocs.Merger for Java?

GroupDocs.Merger 支援 30+ 種文件格式,且可在不將整個檔案載入 RAM 的情況下處理 數百頁的 PDF,記憶體使用量最高可減少 70 %。其流暢的 API 允許鏈式呼叫,使程式碼簡潔且易於維護,極適合企業級 Java 文件處理管線。

前置條件

  • Java Development Kit (JDK) 8 或更新版本
  • IDE – IntelliJ IDEA、Eclipse 或任何支援 Java 的編輯器
  • 建置工具 – Maven 或 Gradle 用於相依管理

必要的函式庫與版本

在專案中加入 GroupDocs.Merger for Java,可透過 Maven、Gradle 或直接下載:

Maven

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-merger</artifactId>
    <version>latest-version</version>
</dependency>

Gradle

implementation 'com.groupdocs:groupdocs-merger:latest-version'

直接下載
下載最新版本請前往 GroupDocs.Merger for Java 下載頁面

取得授權方式如下:

  • 申請 免費試用 以測試功能。
  • 取得 臨時授權 進行延長評估。
  • 若已準備好投入生產,可購買正式授權。

設定 GroupDocs.Merger for Java

安裝與取得授權

先在專案中加入 GroupDocs.Merger 的相依。可依上述 Maven 或 Gradle 方式加入,或直接從 GroupDocs 官方網站 下載 JAR 檔。

接下來,我們初始化並設定 merger:

import com.groupdocs.merger.Merger;

public class InitializeMerger {
    public static void main(String[] args) throws Exception {
        // Define input file path
        String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
        
        // Initialize Merger with source document
        Merger merger = new Merger(filePath);
        
        System.out.println("GroupDocs.Merger initialized successfully!");
    }
}

上述程式碼示範了如何以樣本 PDF 的路徑建立 Merger 實例。初始化 Merger 物件是任何 java document processing 工作的第一步。

實作指南

功能 1:初始化 Merger

概述
此功能說明如何在 Java 專案中設定 GroupDocs Merger 函式庫,為後續的合併或抽取頁面等操作做好準備。

Merger 類別代表一個 PDF 文件,提供合併、抽取與儲存頁面的相關方法。

步驟實作

  1. 定義輸入路徑 – 設定文件目錄與輸出路徑。
  2. 初始化 Merger 物件 – 使用來源文件路徑建立 Merger 物件。
import com.groupdocs.merger.Merger;
import java.nio.file.Paths;
import java.io.File;

public class FeatureInitializeMerger {
    public static void run() throws Exception {
        // Define input and output paths using placeholders
        String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
        String filePathOut = new File("YOUR_OUTPUT_DIRECTORY", Paths.get(filePath).getFileName().toString()).getPath();
        
        // Initialize the Merger object with the source document
        Merger merger = new Merger(filePath);
    }
}

功能 2:合併多個文件

概述
此功能讓您 merge pdf java 多個檔案,將多個 PDF 合併為單一完整文件。

步驟實作

  1. 初始化 Merger – 先以主要文件建立 Merger。
  2. 加入其他文件 – 使用 join 方法依需求順序加入更多 PDF。
import com.groupdocs.merger.Merger;

public class FeatureJoinDocuments {
    public static void run() throws Exception {
        // Define input and output paths using placeholders
        String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
        String filePathOut = new File("YOUR_OUTPUT_DIRECTORY", Paths.get(filePath).getFileName().toString()).getPath();
        
        // Initialize the Merger object with the source document
        Merger merger = new Merger(filePath);
        
        // Join another PDF file into the existing one
        String filePath2 = "YOUR_DOCUMENT_DIRECTORY/sample2.pdf";
        merger.join(filePath2);
    }
}

功能 3:使用 PageBuilder 抽取頁面

概述
抽取功能利用 PageBuilder 來選取與操作 PDF 中的特定頁面,實現精確的 extract pdf pages java 作業。

PageBuilder 為輔助類別,可在套用變更前選取、重新排序或移除頁面。

步驟實作

  1. 初始化 Merger – 設定初始文件。
  2. 建立 PageBuilder 實例 – 用於頁面操作。
  3. 加入特定頁面 – 選取欲抽取或修改的頁碼。
import com.groupdocs.merger.Merger;
import com.groupdocs.merger.domain.builders.PageBuilder;

public class FeatureExtractPages {
    public static void run() throws Exception {
        // Define input and output paths using placeholders
        String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
        String filePathOut = new File("YOUR_OUTPUT_DIRECTORY", Paths.get(filePath).getFileName().toString()).getPath();
        
        // Initialize the Merger object with the source document
        Merger merger = new Merger(filePath);
        
        // Create a PageBuilder instance for manipulating pages
        PageBuilder pageBuilder = merger.createPageBuilder();
        
        // Add specific pages from documents to the PageBuilder
        pageBuilder.addPage(pageBuilder.getDocuments().get(1).getPages()[0]);
        pageBuilder.addPage(pageBuilder.getDocuments().get(0).getPages()[1]);
        pageBuilder.addPage(pageBuilder.getDocuments().get(1).getPages()[1]);
    }
}

功能 4:套用 PageBuilder 並儲存結果

概述
本節示範如何套用 PageBuilder 所做的變更,並 save the merged document

直接答案

建立 PageBuilder,加入所需頁面,呼叫 applyPageBuilder,最後以 save 指定輸出路徑,即可在幾行 Java 程式碼內完成合併與儲存。

步驟實作

  1. 初始化 Merger – 從來源文件開始。
  2. 使用 PageBuilder 操作頁面 – 加入欲修改的頁面。
  3. 套用變更並儲存 – 使用 applyPageBuilder 實作變更,然後 save 新檔案。
import com.groupdocs.merger.Merger;
import com.groupdocs.merger.domain.builders.PageBuilder;

public class FeatureApplyPageBuilder {
    public static void run() throws Exception {
        // Define input and output paths using placeholders
        String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
        String filePathOut = new File("YOUR_OUTPUT_DIRECTORY", Paths.get(filePath).getFileName().toString()).getPath();
        
        // Initialize the Merger object with the source document
        Merger merger = new Merger(filePath);
        
        // Create a PageBuilder instance for manipulating pages
        PageBuilder pageBuilder = merger.createPageBuilder();
        
        // Add specific pages from documents to the PageBuilder (Example steps)
        pageBuilder.addPage(pageBuilder.getDocuments().get(1).getPages()[0]);
        
        // Apply the PageBuilder configuration and save the result
        merger.applyPageBuilder(pageBuilder);
        merger.save(filePathOut);
    }
}

常見問題與解決方案

  • 大型 PDF 記憶體錯誤 – 在載入文件前設定 Merger.setLoadOptions(LoadOptions.streaming()) 以啟用串流模式。
  • 頁面順序錯亂 – 檢查 join 呼叫的順序或 PageBuilder.addPage 的排列。
  • 找不到授權 – 確認在任何 Merger 操作前,已正確傳入 License.setLicense("path/to/license.xml") 的授權檔案路徑。
  • 進度監控 – 實作 ProgressListener 並將其附加至 Merger 實例,即可接收即時進度回呼。

License 類別用於載入 GroupDocs 授權檔,以啟用完整功能。
ProgressListener 介面讓您取得合併作業的即時進度回呼。

常見問答

Q: 我可以合併受密碼保護的 PDF 嗎?
A: 可以,在建立 Merger 物件時提供密碼,API 會安全地解密後再進行合併。

Q: GroupDocs.Merger 支援 DOCX 轉 PDF 的轉換嗎?
A: 完全支援——此函式庫能在合併工作流程中將 DOCX、XLSX、PPTX 以及其他多種格式轉換為 PDF。

Q: 我能處理的最大檔案大小是多少?
A: 透過其串流架構,API 可處理最高 2 GB 的檔案,而不需要完整載入記憶體。

Q: 如何在合併的 PDF 中加入浮水印?
A: 在呼叫 save 前使用 merger.addWatermark(watermarkOptions),即可在每一頁嵌入浮水印。

Q: 有辦法監控合併進度嗎?
A: 實作 ProgressListener 並附加至 Merger 實例,即可取得即時的合併進度回呼。

結論

您現在已掌握完整、可直接投入生產環境的 merge pdf java 教學,涵蓋檔案合併、頁面抽取與儲存等操作。將這些模式套用於報告自動生成、合約組合或任何需要動態 PDF 操作的工作流程。深入探索 API,還可利用加密、數位簽章與進階頁面編輯等功能。


Last Updated: 2026-05-17
Tested With: GroupDocs.Merger for Java 23.9 (latest stable)
Author: GroupDocs

相關教學