GroupDocs.Parser for Java を使用した PDF での複数キーワード検索

PDF ドキュメント内で特定のテキストを検索することは、特に大きなファイルや多数のページを扱う場合、困難です。PDF で複数のキーワードを検索する必要がある場合、GroupDocs.Parser for Java ライブラリは、クリーンで高性能なソリューションを提供します。このチュートリアルでは、ライブラリの設定、ページ番号での検索、サポートされていない形式の処理について、実際のプロジェクトにコピーできる例とともに解説します。

クイック回答

  • PDF で複数キーワードを検索するのに役立つライブラリは何ですか? GroupDocs.Parser for Java.
  • 結果を特定のページ番号に限定できますか? はい、SearchOptions を使用すると各一致のページインデックスを取得できます。
  • 開発にライセンスは必要ですか? テストには無料トライアルで動作しますが、本番環境では有料ライセンスが必要です。
  • 正規表現はサポートされていますか? もちろんです – SearchOptions で有効にできます。
  • 必要な Java バージョンは何ですか? Maven または Gradle ビルドツールと共に Java 8 以上が必要です。

「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 の使用

Add the repository and dependency to your pom.xml file:

<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 からダウンロードしてください。
ライセンス取得: 無料トライアルで開始するか、テスト用に一時ライセンスをリクエストしてください。長期的に使用する場合は、ライセンス購入をご検討ください。

基本的な初期化と設定

Once the library is available, initializing it is straightforward:

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());
}

実装ガイド

実装は 2 つの実用的な機能に分割します:

  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 – パーサーを初期化し、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):
    • 大文字小文字の区別false にすると検索は大文字小文字を区別しません。
    • 完全一致false にすると部分一致が許可されます。
    • 正規表現false は正規表現解析を無効にします。正規表現が必要な場合は true に設定してください。
    • ページインデックスの返却true にすると各 SearchResult にページ番号が含まれます。

ヒント: 検索文字列 "invoice|due date|total" はパイプ (|) 演算子を使用して、1 回の呼び出しで 複数キーワード を検索します。

トラブルシューティング

  • 結果が空: PDF に選択可能なテキストが含まれているか(画像だけでないか)を確認してください。
  • ページ番号が正しくない: getPageIndex() はゼロベースであることに注意し、人が読む形式にするには +1 を加えてください。

機能 2: サポートされていないドキュメント形式のエラーハンドリング

概要

すべてのファイルがテキスト抽出できるわけではありません(例: 暗号化された PDF や画像のみの PDF)。UnsupportedDocumentFormatException を捕捉することで、アプリケーションは優雅に失敗させることができます。

実装

ステップ 1 – パーサー作成を try‑catch ブロックでラップ

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 で複数キーワード検索 が有効な 3 つの一般的なシナリオです:

  1. 法務文書レビュー – 「force majeure」や「termination」や「confidentiality」などの条項を数百ページにわたって検索します。
  2. 請求書処理 – 「invoice number」や「due date」や「total amount」を一括で抽出し、会計自動化に活用します。
  3. 学術研究 – 研究論文をスキャンし、複数の用語バリエーション(例: 「machine learning」「deep learning」「neural network」)を検索します。

パフォーマンス上の考慮点

  • 必要なページだけを解析: 関連セクションが分かっている場合、検索範囲を限定してメモリ使用量を削減します。
  • try‑with‑resources を使用(上記参照)して、パーサーが速やかに閉じられ、メモリリークを防止します。
  • 非常に大きなファイルの場合、PDF 全体をメモリにロードしないで、可能であればチャンク単位で処理します。

結論

これで、PDF で複数キーワード検索 を行い、正確なページ番号を取得し、GroupDocs.Parser for Java を使用してサポートされていない形式を優雅に処理する、完全な本番環境向けアプローチが手に入りました。これらのコードスニペットをバッチ処理、Web サービス、デスクトップユーティリティなどの大規模ワークフローに組み込んで、ドキュメント分析を自動化しましょう。

次のステップ

  • より複雑な検索のために正規表現パターンを試してみてください。
  • 検索結果を PDF ライター(例: GroupDocs.Conversion)と組み合わせて、マッチ箇所をハイライトします。
  • PDF フォルダーを反復処理し、結果をデータベースに保存するバッチ処理を検討してください。

よくある質問

Q: 複数のキーワードを同時に検索できますか?
A: はい。パイプ区切り文字列(例: "invoice|due date|total")を使用するか、SearchOptions で正規表現を有効にしてください。

Q: ドキュメントが暗号化されている場合はどうすればよいですか?
A: Parser を構築する際にパスワードを提供してください。パスワードがない場合、ライブラリは例外をスローし、捕捉できます。

Q: 非常に大きな PDF ファイルを効率的に処理するには?
A: ファイルをページ単位で処理するか、SearchOptions を使用して特定のページ範囲に検索範囲を限定してください。

Q: GroupDocs.Parser はすべての PDF バージョンに対応していますか?
A: 大多数の PDF 標準(1.4‑1.7、PDF/A、PDF/X)に対応しています。必ずご自身のファイルでテストしてください。

Q: ドキュメントのバッチ処理に使用できますか?
A: もちろんです。ディレクトリをループし、同じ検索ロジックを適用して、各ファイルの結果を保存します。

リソース


最終更新日: 2026-04-21
テスト済み: GroupDocs.Parser for Java 25.5
作者: GroupDocs

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