C++で PDF ファイルを検索

Microsoft や Adobe PDF などのソフトウェアを使用せずに、サーバー側の Aspose.PDF を C++ API で使用する、ネイティブで高性能な PDF ドキュメント検索。

C++ を使ってPDFファイルを検索する方法

PDFファイルを検索するために、cpp プラットフォーム用の機能豊富でパワフルで使いやすいドキュメント操作APIである Aspose.PDF for C++ APIを使用します。NuGet パッケージマネージャーを開き、aspose.pdf を検索してインストールします。パッケージマネージャーコンソールから次のコマンドを使用することもできます。

Package Manager Console

PM > Install-Package Aspose.PDF.Cpp

C++ でPDFファイルを検索


ご使用の環境でコードを試すには Aspose.PDF for C++ が必要です。

  1. PDF を Document のインスタンスとともに読み込みます。
  2. 検索するテキストをパラメータとして TextFragmentAbsorber オブジェクトを作成します。
  3. 抽出されたすべてのテキストフラグメントコレクションを取得します。
  4. 各フラグメントをループしてすべての情報を取得します。

PDFファイルを検索-C++。


// Load PDF document
Document pdfDocument = new Document("source.pdf");

// Create TextAbsorber object to find all instances of the input search phrase
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\d{4}-\d{4}"); // like 1999-2000

// Set text search option to specify regular expression usage
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Accept the absorber for first page of document
pdfDocument.getPages().accept(textFragmentAbsorber);

// Get the extracted text fragments into collection
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Loop through the fragments
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	System.out.println("Text :- " + textFragment.getText());
	System.out.println("Position :- " + textFragment.getPosition());
	System.out.println("XIndent :- " + textFragment.getPosition().getXIndent());
	System.out.println("YIndent :- " + textFragment.getPosition().getYIndent());
	System.out.println("Font - Name :- " + textFragment.getTextState().getFont().getFontName());
	System.out.println("Font - IsAccessible :- " + textFragment.getTextState().getFont().isAccessible());
	System.out.println("Font - IsEmbedded - " + textFragment.getTextState().getFont().isEmbedded());
	System.out.println("Font - IsSubset :- " + textFragment.getTextState().getFont().isSubset());
	System.out.println("Font Size :- " + textFragment.getTextState().getFontSize());
	System.out.println("Foreground Color :- " + textFragment.getTextState().getForegroundColor());
}