如何在 Java 中使用 GroupDocs.Merger 提取和合併頁面

在本完整教學中,您將了解如何使用 GroupDocs.Merger for Java 從 PDF、DOCX 檔案、試算表以及其他多種文件類型 提取和合併頁面。無論您是需要組合自訂手冊、從多本書中抽取章節,或是從分散的來源檔案生成簡潔報告,本指南都會以清晰的說明和實務範例帶您完成整個流程。

快速回答

  • 主要使用情境是什麼? 將 PDF、DOCX、XLSX、PPTX 以及其他支援格式中選取的頁面合併為單一輸出檔案。
  • 哪個函式庫負責此功能? GroupDocs.Merger for Java。
  • 我需要授權嗎? 免費試用可用於評估;正式上線需購買付費授權。
  • 需要哪個 Java 版本? Java 8 或更高。
  • 我可以合併超過兩個檔案嗎? 可以——對每個額外的來源文件重複呼叫 join。

什麼是提取與合併頁面?

extract and merge pages 是從一個或多個來源文件中選取特定頁碼或頁範圍,並將其拼接成新檔案的過程。此方式可避免手動複製貼上,並確保最終文件保留原始的格式、字型與影像。

為何使用 GroupDocs.Merger for Java?

GroupDocs.Merger for Java 是一套多功能函式庫,讓開發人員能以程式方式操作文件,支援超過 50 種格式,高速處理且低記憶體消耗,適合企業環境中的伺服器端文件工作流程與大規模批次作業。

  • 格式彈性: 支援 50 種以上的輸入與輸出格式,包括 PDF、DOCX、PPTX、XLSX 以及影像檔,使您幾乎能處理任何辦公文件。
  • 效能導向: 僅處理您請求的頁面,降低記憶體使用量。
  • 易於整合: 可透過 Maven 或 Gradle 取得,具備清晰的 API 文件且無外部相依性。

前置條件

  • 基本的 Java 程式設計知識。
  • 用於相依管理的 Maven 或 Gradle。
  • 如 IntelliJ IDEA 或 Eclipse 等 IDE。

設定 GroupDocs.Merger for Java

使用以下任一方法將函式庫加入您的專案。

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 releases 下載最新版本。

取得授權

要解鎖所有功能,您需要授權。您可以先使用免費試用,或在 購買頁面 購買完整授權。亦提供臨時授權供短期評估使用。

如何在 Java 中提取與合併頁面?

Merger 類別是負責建立與管理文件合併操作的主要 API 元件。使用 Merger 建構子載入每個來源文件,指定所需的頁碼,然後呼叫 join 進行合併。最後,將合併結果儲存為目標格式。此端對端流程僅需四個方法呼叫,且在所有支援的檔案類型上皆能一致運作。

步驟說明:提取與合併特定頁面

步驟 1:以主要文件初始化 Merger

import com.groupdocs.merger.Merger;
import com.groupdocs.merger.domain.options.PageJoinOptions;

String filePath = YOUR_DOCUMENT_DIRECTORY + "/sample.pdf"; // Source PDF document path
Merger merger = new Merger(filePath);

步驟 2:定義要合併的頁面

// Specify the page numbers you wish to join (e.g., pages 1 and 2)
PageJoinOptions joinOptions = new PageJoinOptions(1, 2);

步驟 3:從第二個文件合併選取的頁面

// Path to your DOCX file\ String docxFilePath = YOUR_DOCUMENT_DIRECTORY + "/sample.docx";
merger.join(docxFilePath, joinOptions);

步驟 4:儲存結果並釋放資源

String outputFilePath = YOUR_OUTPUT_DIRECTORY + "/CrossJoinPagesFromVariousDocuments-output.pdf";
merger.save(outputFilePath);

try {
    merger.close();
} catch (Exception e) {
    // Handle exceptions appropriately
}

步驟 5(可選):使用常數集中管理檔案路徑

import java.nio.file.Paths;
import java.io.File;

public class PathConstants {
    public static final String DOCUMENT_BASE_PATH = YOUR_DOCUMENT_DIRECTORY;
    public static final String OUTPUT_BASE_PATH = YOUR_OUTPUT_DIRECTORY;

    public static String getDocumentPath(String fileName) {
        return DOCUMENT_BASE_PATH + "/" + fileName;
    }

    public static String getOutputFilePath() {
        File outputFile = new File(OUTPUT_BASE_PATH, "CrossJoinPagesFromVariousDocuments-output.pdf");
        return outputFile.getPath();
    }
}

使用常數可讓程式碼更簡潔,亦方便未來路徑的變更。

實務應用

以下是幾個 提取與合併頁面 發揮效益的實務情境:

  1. 文件整合: 從多本教科書中抽取選定章節,合併成單一 PDF 以便快速檢閱。
  2. 報告生成: 將財務 PDF 及由 Excel 產生的 PDF 中的關鍵章節合併為一份執行摘要。
  3. 研究彙編: 將多篇學術論文(PDF、DOCX)的摘錄合併為單一參考文件。

效能考量

  • 關閉 Merger 完成後關閉 Merger,以釋放本機資源。
  • 僅選取所需頁面 而非合併整個檔案,可大幅縮短處理時間。
  • 妥善處理例外 以免在來源檔案遺失或損毀時發生崩潰。

常見問題與解決方案

問題解決方案
OutOfMemoryError 在大型檔案上將頁面分成較小批次處理,並在每個批次後關閉 Merger。
不支援的檔案格式確認該格式已列於 GroupDocs.Merger 支援的格式清單中(PDF、DOCX、XLSX、PPTX 等)。
授權未套用確保授權檔案放置於應用程式根目錄,或透過 License license = new License(); license.setLicense("path/to/license.lic"); 進行設定。

常見問答

Q: 我可以合併超過兩個文件嗎?
A: 可以,只需對每個額外的來源檔案重複呼叫 merger.join()。

Q: GroupDocs.Merger 支援哪些檔案類型?
A: 支援 PDF、DOCX、DOC、PPTX、PPT、XLSX、XLS 以及其他多種常見辦公格式,總計超過 50 種。

Q: 如何在不合併的情況下提取文件的頁面?
A: 使用 extract 方法搭配 PageExtractOptions,將選取的頁面另存為新檔。此用例已在 extract pages java 中說明。

Q: 合併的頁數有上限嗎?
A: 函式庫沒有硬性上限,實際限制取決於系統的記憶體與 CPU。

Q: 我可以產生動態的輸出檔名嗎?
A: 當然可以——可使用 PathConstants.getOutputFilePath() 或自訂邏輯,將時間戳記或 UUID 串接至檔名。

資源

探索這些連結以深化您的專業知識,並解決可能遇到的問題。


最後更新: 2026-10-16
測試環境: GroupDocs.Merger for Java latest-version
作者: GroupDocs

相關教學