使用 GroupDocs.Parser 在 Java 中從 ZIP 檔案提取文字

如果您需要在 Java 應用程式中 從 zip 壓縮檔提取文字,GroupDocs.Parser 提供了簡潔、統一的 API,為您處理繁重的工作。無論是處理電子郵件附件、大量文件上傳,或是備份檔案,本教學將一步步說明——從 Maven 設定到遍歷 ZIP 內每個檔案並取得可讀內容。

快速答覆

  • 應該使用哪個函式庫? GroupDocs.Parser for Java。
  • 能否從 ZIP 內的每個檔案提取文字? 可以,支援所有 parser 可處理的格式。
  • 需要授權嗎? 免費試用可用於評估;正式環境需購買永久授權。
  • 記憶體使用是否會成問題? 使用 try‑with‑resources 並逐項處理,可保持佔用低。
  • 需要哪個 Java 版本? JDK 8 或以上。

您將學會

  • 如何在 Java 中使用 GroupDocs.Parser 從 zip 檔案提取文字
  • 透過 Maven 或直接下載的方式設定函式庫。
  • 讀取 zip 附件的實作範例以及檢查容器支援情況。
  • 真實案例、效能技巧與除錯建議。

為何選擇 GroupDocs.Parser 進行 ZIP 提取?

  • 統一 API – 一個呼叫即可處理數十種文件類型,無需額外解析器。
  • 容器感知 – 函式庫可在開始處理前告訴您 ZIP 是否支援提取。
  • 資源友好 – 自動串流處理與 try‑with‑resources 可降低記憶體使用。

前置條件

在開始之前,請確保您已具備:

  • 已安裝並設定 JDK 8+
  • 如 IntelliJ IDEA 或 Eclipse 等 IDE(任何支援 Java 的編輯器皆可)。
  • 基本的 Maven 知識(或手動加入 JAR 的能力)。

必要函式庫、版本與相依性

您需要最新的 GroupDocs.Parser for Java。以下為 Maven 坐標。

Maven 設定

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

直接下載
亦可從 GroupDocs.Parser for Java releases 下載最新版本。

授權取得

  • 免費試用: 先以試用版探索功能。
  • 臨時授權: 使用臨時金鑰即可無限制測試。
  • 購買授權: 正式上線時取得完整授權,以移除評估限制。

如何在 Java 中從 zip 提取文字

以下將實作分為兩個實用功能:

  1. 提取 zip 附件 – 從壓縮檔內每個檔案抽取文字。
  2. 檢查容器提取支援 – 驗證 ZIP 是否可處理並列出其內容。

功能 1 – 提取 Zip 附件

步驟 1:初始化 Parser

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleZip.zip")) {
    // Proceed with extraction logic...
}

步驟 2:遍歷附件並提取文字

Iterable<ContainerItem> attachments = parser.getContainer();
if (attachments == null) {
    System.out.println("Container extraction isn't supported");
} else {
    for (ContainerItem item : attachments) {
        try (Parser attachmentParser = item.openParser()) {
            // Attempt to extract text from each zip entity
            try (TextReader reader = attachmentParser.getText()) {
                String extractedText = reader == null ? "No text" : reader.readToEnd();
                System.out.println(extractedText);
            }
        } catch (UnsupportedDocumentFormatException ex) {
            System.out.println("The format of the contained document isn't supported.");
        }
    }
}

這段程式碼在做什麼?

  • parser.getContainer() 會回傳 ZIP 內所有條目的可遍歷集合。
  • 對於每個 ContainerItem,我們會開啟專屬的 Parser 實例(item.openParser())。
  • attachmentParser.getText() 嘗試讀取文字內容;若格式不支援,會捕捉例外並繼續處理。

功能 2 – 驗證容器提取支援

步驟 1:初始化 Parser(同上)

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleZip.zip")) {
    // Check supported operations...
}

步驟 2:列出 ZIP 內的檔案路徑

Iterable<ContainerItem> attachments = parser.getContainer();
if (attachments == null) {
    System.out.println("Container extraction isn't supported");
} else {
    for (ContainerItem item : attachments) {
        System.out.println(item.getFilePath()); // Output the file path of each item
    }
}

為何這很重要:
了解內部結構可協助您決定是否處理整個壓縮檔、跳過不支援的檔案,或向使用者提供預覽。

實務應用

  1. 電子郵件附件處理 – 自動從壓縮的郵件附件中提取並建立索引。
  2. 文件管理系統 – 接收使用者一次上傳多個檔案的壓縮包,仍能搜尋內容。
  3. 備份與還原驗證 – 在還原前驗證壓縮文件是否包含預期文字。

效能考量

  • 逐項處理: 範例一次讀取一個檔案,可避免大型壓縮檔造成記憶體激增。
  • Try‑with‑Resources: 確保每個 ParserTextReader 及時關閉,防止資源泄漏。
  • 多執行緒(進階): 對於極大 ZIP,可將迴圈平行化,但每個執行緒必須使用自己的 Parser 實例。

常見問題與解決方案

問題原因解決方式
Container extraction isn't supportedZIP 中包含 parser 無法處理的格式。檢查壓縮檔內的檔案類型;僅支援的格式才能被解析。
UnsupportedDocumentFormatException嵌套文件的格式未被識別。跳過該檔案,或在壓縮前先將其轉換為支援的類型。
大型壓縮檔導致記憶體激增同時載入多個檔案。如範例般逐一處理;避免將所有提取的文字存入集合。

常見問答

Q: 什麼是 GroupDocs.Parser Java?
A: 這是一套可從多種文件格式(包括 PDF、Office 檔等)提取文字、metadata 與圖片的函式庫。

Q: 能否使用此函式庫從 zip 中提取非文字檔(例如圖片)?
A: 主要功能是文字提取,但亦可透過額外 API 取得圖片與其他二進位內容。

Q: 如何有效處理非常大的 ZIP 檔案?
A: 採用上述逐項迭代方式,將 parser 放在 try‑with‑resources 區塊內,並避免一次載入全部內容。

Q: GroupDocs.Parser 可用於商業應用嗎?
A: 可以,但必須擁有有效的正式授權。

Q: 若遇到問題該向哪裡尋求協助?
A: 可前往免費支援論壇 GroupDocs Support Forum 取得協助。

其他資源

立即開始整合 從 zip 提取文字 功能,讓您的 Java 應用程式能讀取壓縮檔內的每份文件!


最後更新: 2026-02-21
測試版本: GroupDocs.Parser 25.5
作者: GroupDocs