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 つの実用的な機能に分割します:
- PDF で複数キーワードを検索し、ページ番号を取得 – 「ページ番号で PDF を検索」 に最適です。
- サポートされていないドキュメント形式の優雅なエラー処理。
機能 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 つの一般的なシナリオです:
- 法務文書レビュー – 「force majeure」や「termination」や「confidentiality」などの条項を数百ページにわたって検索します。
- 請求書処理 – 「invoice number」や「due date」や「total amount」を一括で抽出し、会計自動化に活用します。
- 学術研究 – 研究論文をスキャンし、複数の用語バリエーション(例: 「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: もちろんです。ディレクトリをループし、同じ検索ロジックを適用して、各ファイルの結果を保存します。
リソース
- ドキュメンテーション: GroupDocs.Parser Java Documentation
- API リファレンス: GroupDocs API Reference
最終更新日: 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 >}