Batch Process Documents – Load Password‑Protected Files with GroupDocs.Merger for Java

處理受密碼保護的文件是需要在 Java 應用程式中 批量處理文件 的開發人員常見的挑戰。在本教學中,你將學習如何 載入受密碼保護的文件,以便有效地批量處理它們。完成本指南後,你將能將此功能整合到任何以文件為中心的工作流程中。

快速解答

  • 本指南的主要目的為何? 載入受密碼保護的檔案,以便使用 GroupDocs.Merger 進行批量處理文件。
  • 需要哪個函式庫? GroupDocs.Merger for Java(最新版本)。
  • 我需要授權嗎? 免費試用可用於測試;正式環境需購買永久授權。
  • 支援哪個 Java 版本? JDK 8 或以上。
  • 我可以一次處理多個檔案嗎? 可以——載入每個檔案後,即可將其加入批次作業(合併、分割、重新排序等)。

什麼是文件的批量處理?

批量處理指的是在單一自動化工作流程中處理一組檔案——合併、分割、重新排序頁面或提取資料——而不需要對每個文件逐一手動操作。當這些檔案受密碼保護時,必須先提供正確的憑證,才能執行任何批次作業。

為何使用 GroupDocs.Merger for Java?

  • 統一的 API,支援多種格式(PDF、DOCX、XLSX、PPTX 等)。
  • 內建安全處理,透過 LoadOptions
  • 可擴展的效能,適用於大規模批次作業。
  • 簡易整合,可直接加入現有的 Java 專案。

前置條件

  • GroupDocs.Merger for Java 函式庫——透過 Maven、Gradle 或直接下載安裝。
  • Java Development Kit (JDK) 8+
  • IDE(如 IntelliJ IDEA 或 Eclipse)。
  • 基本的 Java 知識。

設定 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'

Direct Download:
直接下載請前往 GroupDocs.Merger for Java releases 取得最新版本。

取得授權

  1. 免費試用 – 從 GroupDocs 下載頁面 開始免費試用。
  2. 臨時授權 – 透過 GroupDocs Temporary License 取得,以進行延長測試。
  3. 購買 – 若需完整功能與支援,請從 GroupDocs Purchase page 購買授權。

基本初始化

import com.groupdocs.merger.Merger;

String filePath = "path/to/your/document.docx";
Merger merger = new Merger(filePath);

如何使用 GroupDocs.Merger for Java 載入受密碼保護的文件

載入受密碼保護的文件

步驟 1:使用密碼定義 Load Options

import com.groupdocs.merger.domain.options.LoadOptions;

String filePath = "YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX_PROTECTED";
LoadOptions loadOptions = new LoadOptions("SAMPLE_PASSWORD");

LoadOptions 物件會攜帶解鎖檔案所需的密碼。

步驟 2:使用 Load Options 初始化 Merger

import com.groupdocs.merger.Merger;

// Initialize the Merger with file path and load options
Merger merger = new Merger(filePath, loadOptions);

現在文件已可進行任何批次作業——與其他檔案合併、分割成頁面,或重新排序內容。

步驟 3:使用常數集中管理檔案路徑

class Constants {
    public static final String SAMPLE_DOCX_PROTECTED = "YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX_PROTECTED";
}

使用常數類別可讓程式碼保持整潔,特別是在批次作業中處理數十或數百個檔案時。

範例批次工作流程(概念)

  1. 收集 所有受保護的檔案路徑至 List<String>
  2. 迭代 該清單,為每個檔案建立帶有其專屬 LoadOptionsMerger 實例。
  3. 每個 Merger 實例加入主合併作業 (Merger.merge(...))。
  4. 處理完畢後釋放 每個 Merger,以釋放記憶體。

專業提示: 將迴圈包在 try‑with‑resources 區塊中,或明確呼叫 merger.close(),以確保資源及時釋放。

實務應用

  1. 文件合併: 將數十份受密碼保護的合約合併為單一主檔案。
  2. 頁面重新排序: 在多個受保護的 PDF 之間重新排列頁面,且無需永久解鎖。
  3. 中繼資料編輯: 在提供一次密碼後,更新作者或標題等欄位。

將 GroupDocs.Merger 與雲端儲存(例如 AWS S3、Azure Blob)整合,可程式化地取得受保護檔案、批量處理,並將結果回傳。

大批次處理的效能考量

  • 記憶體管理: 任務完成後關閉每個 Merger 物件。
  • 批次大小: 將檔案分批處理(例如 50‑100 份文件),以免佔用過多 JVM 堆積記憶體。
  • 平行處理: 使用 Java 的 ExecutorService 同時執行獨立的合併任務,但需監控 CPU 使用率。

常見問題

Q: 我可以同時批量處理不同類型的檔案(PDF、DOCX、XLSX)嗎?
A: 可以。GroupDocs.Merger 支援多種格式,只需為每個檔案提供相應的 LoadOptions 即可。

Q: 若密碼不正確會發生什麼情況?
A: 函式庫會拋出 PasswordException。請捕獲此例外、記錄問題,並可選擇在批次中跳過該檔案。

Q: 合併單一批次的文件數量有上限嗎?
A: 沒有硬性上限,但實際上受可用記憶體與 JVM 堆積大小限制。對於極大量的檔案,請使用分批處理。

Q: 批次中的每個文件都需要單獨的授權嗎?
A: 不需要。單一有效的 GroupDocs.Merger 授權即可涵蓋應用程式內所有由函式庫執行的操作。

Q: 我可以在哪裡找到更詳細的 API 文件?
A: 請前往 GroupDocs.Merger Java Docs 取得完整參考資料。

其他常見問題

Q: 我可以直接從串流載入受密碼保護的文件嗎?
A: 可以。使用 Merger(InputStream, LoadOptions) 建構子,以串流方式而非檔案路徑處理。

Q: 如何處理儲存在雲端儲存桶中的檔案?
A: 先將檔案下載至暫存位置或直接串流,透過 LoadOptions 提供密碼,然後依上述方式處理。

Q: 在程式碼中保留密碼安全嗎?
A: 請避免硬編碼密碼。應將密碼安全存放(例如環境變數、Azure Key Vault),並在執行時取得。

資源


最後更新: 2026-03-25
測試環境: GroupDocs.Merger 23.10(撰寫時的最新版本)
作者: GroupDocs