在 PDF 中使用 GroupDocs.Parser for Java 搜尋多個關鍵字

在 PDF 文件中搜尋特定文字可能相當具挑戰性,尤其是面對大型檔案或大量頁面時。如果您需要快速且可靠地在 PDF 檔案中搜尋多個關鍵字,GroupDocs.Parser for Java 函式庫提供了乾淨且高效能的解決方案。本教學將帶您完成函式庫的設定、依頁碼搜尋,以及處理不支援的格式——全部提供可直接複製到專案的實務範例。

快速解答

  • 什麼函式庫可以協助您在 PDF 中搜尋多個關鍵字? GroupDocs.Parser for Java。
  • 可以將結果限制在特定頁碼嗎? 是的,使用 SearchOptions 您可以取得每個匹配項的頁索引。
  • 開發時需要授權嗎? 免費試用可用於測試;正式環境需購買授權。
  • 支援正規表達式嗎? 當然,於 SearchOptions 中啟用即可。
  • 需要哪個 Java 版本? Java 8 或以上,搭配 Maven 或 Gradle 建置工具。

什麼是「在 PDF 中搜尋多個關鍵字」?

當您需要在大型 PDF 中同時定位多個詞彙——例如「invoice」、「due date」或「total」——一次性搜尋並返回每個命中所在的頁碼,可節省時間並降低程式碼複雜度。GroupDocs.Parser 抽象化了低階 PDF 解析,提供簡易 API 讓您執行這類多關鍵字查詢。

為什麼使用 GroupDocs.Parser for Java?

  • 即使是掃描或複雜的 PDF,也能精確提取文字
  • 內建頁面索引,讓您確切知道每個關鍵字出現的位置。
  • 例外處理,支援不支援的格式、加密檔案及記憶體密集型文件。
  • 零相依 Maven 整合,快速設定專案。

前置條件

  • Java 8 以上 以及相容 Maven 的 IDE(IntelliJ IDEA、Eclipse 等)。
  • GroupDocs.Parser for Java(版本 25.5 或更新)。
  • 具備 Java 例外處理與檔案 I/O 的基本知識。

設定 GroupDocs.Parser for Java

您可以透過 Maven 加入函式庫,或直接下載。

使用 Maven

將儲存庫與相依性加入您的 pom.xml 檔案:

<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 下載最新版本。
License Acquisition:先使用免費試用或申請臨時授權測試 GroupDocs.Parser。長期使用請考慮購買正式授權。

基本初始化與設定

函式庫可用後,初始化相當簡單:

import com.groupdocs.parser.Parser;

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
try (Parser parser = new Parser(filePath)) {
    // Your parsing logic here
} catch (Exception e) {
    System.err.println("An error occurred: " + e.getMessage());
}

實作指南

我們將實作分為兩個實用功能:

  1. 在 PDF 中搜尋多個關鍵字並取得頁碼 – 適用於「依頁碼搜尋 PDF」的情境。
  2. 優雅的錯誤處理以因應不支援的文件格式

功能 1:在 PDF 中搜尋多個關鍵字並取得頁面索引

概觀

GroupDocs.Parser 的 search 方法結合 SearchOptions,可定位任意詞彙(或正規表達式模式),同時返回字元位置與頁面索引。

步驟說明

步驟 1 – 匯入所需類別

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.SearchResult;
import com.groupdocs.parser.options.SearchOptions;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;

步驟 2 – 初始化 parser 並設定 SearchOptions

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf"; // Replace with actual document path

try (Parser parser = new Parser(filePath)) {
    if (!parser.getFeatures().isText()) {
        throw new UnsupportedDocumentFormatException("Text extraction isn't supported.");
    }

    // false = case‑insensitive, false = not whole‑word, false = regex disabled, true = return page index
    SearchOptions options = new SearchOptions(false, false, false, true);
    Iterable<SearchResult> results = parser.search("invoice|due date|total", options);
    
    for (SearchResult result : results) {
        System.out.println(String.format("Found at position %d on page %d: %s", 
                                         result.getPosition(), 
                                         result.getPageIndex() + 1, // pages are zero‑based
                                         result.getText()));
    }
} catch (UnsupportedDocumentFormatException e) {
    System.err.println(e.getMessage());
}

說明關鍵參數

  • filePath:您要搜尋的 PDF 檔案路徑。
  • SearchOptions(false, false, false, true)
    • Case‑sensitivefalse 使搜尋不區分大小寫。
    • Whole‑wordfalse 允許部分匹配。
    • Regexfalse 關閉正規表達式解析;若需 regex,請設為 true
    • Return page indextrue 確保每個 SearchResult 含有頁碼。

**提示:**搜尋字串 "invoice|due date|total" 使用管道符號 (|) 於一次呼叫中搜尋多個關鍵字

疑難排解

  • 結果為空:確認 PDF 確實包含可選取的文字(而非僅圖像)。
  • 頁碼不正確:請記得 getPageIndex() 為零基礎;加上 +1 以得到人類可讀的頁碼。

功能 2:不支援文件格式的錯誤處理

概觀

並非所有檔案皆能解析文字(例如加密或僅含影像的 PDF)。捕捉 UnsupportedDocumentFormatException 可讓應用程式優雅失敗。

實作

步驟 1 – 在 try‑catch 區塊中建立 parser

try (Parser parser = new Parser(filePath)) {
    if (!parser.getFeatures().isText()) {
        throw new UnsupportedDocumentFormatException("Text extraction isn't supported.");
    }
} catch (UnsupportedDocumentFormatException e) {
    System.err.println(e.getMessage());
}

為何重要
提前偵測不支援的格式後,您可以通知使用者、記錄問題,或改用 OCR 解決方案,而不是讓整個流程崩潰。

實務應用

以下三種常見情境特別適合 在 PDF 中搜尋多個關鍵字

  1. 法律文件審查 – 在數百頁中定位「不可抗力」、「終止」或「保密」等條款。
  2. 發票處理 – 一次性擷取「發票號碼」、「到期日」與「總金額」以自動化會計。
  3. 學術研究 – 掃描論文以找出多種術語變體(例如「機器學習」、「深度學習」、「神經網路」)。

效能考量

  • 僅解析所需頁面:若已知相關章節,可限制搜尋範圍以減少記憶體使用。
  • 使用 try‑with‑resources(如範例所示)確保及時關閉 parser,防止記憶體洩漏。
  • 避免將整個 PDF 載入記憶體,處理極大檔案時可分塊處理。

結論

您現在已掌握完整、可投入生產環境的 在 PDF 中搜尋多個關鍵字 方法,能取得精確頁碼並優雅處理不支援的格式。將這些程式碼片段整合至批次處理、Web 服務或桌面工具,即可大規模自動化文件分析。

後續步驟

  • 嘗試使用正規表達式模式以進行更複雜的搜尋。
  • 將搜尋結果與 PDF 寫入器(如 GroupDocs.Conversion)結合,以標註匹配項目。
  • 探索批次處理:遍歷 PDF 資料夾並將結果儲存至資料庫。

常見問題

Q: 可以一次搜尋多個關鍵字嗎?
A: 可以。使用管道分隔的字串(例如 "invoice|due date|total")或在 SearchOptions 中啟用 regex。

Q: 若文件被加密該怎麼辦?
A: 建立 Parser 時提供密碼。若沒有密碼,函式庫會拋出例外,您可以捕捉處理。

Q: 如何有效處理非常大的 PDF 檔案?
A: 逐頁處理檔案,或使用 SearchOptions 限制搜尋範圍至特定頁碼區段。

Q: GroupDocs.Parser 是否相容所有 PDF 版本?
A: 它支援大多數 PDF 標準(1.4‑1.7、PDF/A、PDF/X),但仍建議使用前自行測試您的檔案。

Q: 可以用於文件的批次處理嗎?
A: 當然可以。遍歷目錄、套用相同搜尋邏輯,並將每個檔案的結果寫入資料庫。

資源


Last Updated: 2026-04-21
Tested With: GroupDocs.Parser for Java 25.5
Author: GroupDocs

{< /blocks/products/pf/tutorial-page-section >} {< /blocks/products/pf/main-container >} {< /blocks/products/pf/main-wrap-class >} {< blocks/products/products-backtop-button >}