この投稿では、Javaを使用してPDFファイルからシームレスにテキストを抽出する方法を学習します。テキスト抽出は、テキスト分析、情報検索、ドキュメント解析などのさまざまなシナリオで役立つ可能性があります。 PDFは最も広く使用されているデジタルドキュメントの1つであるため、PDFドキュメントからのテキスト抽出のユースケースはさらに多くなります。それでは、Javaアプリケーション内からPDFテキスト抽出を実行する方法を確認してみましょう。
PDFからテキストを抽出するJava API - 無料ダウンロード
Aspose.PDF for Javaは、PDFファイルを作成および処理するための幅広い機能を提供する有名なPDFファイル操作APIです。 APIには、数行のコード内でPDFドキュメントからテキストを抽出するさまざまな方法を提供する強力なテキスト抽出機能が含まれています。 APIのJARをダウンロードするか、次の構成を使用してMavenベースのアプリケーションにインストールできます。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.11</version>
</dependency>
Javaを使用してPDFからテキストを抽出する
以下は、Aspose.PDFforJavaを使用してPDFドキュメントからテキストを抽出する手順です。
- Documentクラスを使用してPDFファイルをロードします。
- TextAbsorberクラスのオブジェクトを作成します。
- Document.getPages().accept(TextAbsorber)メソッドを使用して、PDFのすべてのページでTextAbsorberを受け入れます。
- TextAbsorber.getText()メソッドを使用して、PDFからすべてのテキストをフェッチします。
- テキストをTXTファイルに保存します(オプション)。
次のコードサンプルは、Javaを使用してPDFからテキストを抽出する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");
// テキストを抽出するTextAbsorberオブジェクトを作成します
TextAbsorber textAbsorber = new TextAbsorber();
// すべてのページの吸収体を受け入れる
pdfDocument.getPages().accept(textAbsorber);
// 抽出されたテキストを取得します
String extractedText = textAbsorber.getText();
// ライターを作成してファイルを開きます
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);
// ファイルに1行のテキストを書き込みますtw.WriteLine(extractedText);
// ストリームを閉じる
writer.close();
PDFの特定のページからテキストを抽出する
次の手順を使用して、PDFドキュメントの特定のページからテキストを抽出することもできます。
- Documentクラスを使用してPDFファイルをロードします。
- TextDeviceクラスのインスタンスを作成します。
- TextExtractionOptionsクラスを使用して追加のオプションを定義します。
- TextDevice.setExtractionOptions(TextExtractionOptions)メソッドを使用してオプションを設定します。
- TextDevice.Process(Page、String)を使用して、指定したページからテキストを抽出します。
次のコードサンプルは、Javaを使用してPDFの特定のページからテキストを抽出する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");
// テキストデバイスを作成する
TextDevice textDevice = new TextDevice();
// テキスト抽出オプションの設定-テキスト抽出モードの設定(RawまたはPure)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
textDevice.setExtractionOptions(textExtOptions);
// PDFの最初のページからテキストを取得し、ファイル形式で保存します
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");
PDFのページ領域からテキストを抽出する
PDFのページの特定の領域からテキストを抽出することもできます。このために、テキストを抽出する必要がある領域をカバーする長方形を定義できます。以下は、ページ領域からテキストを抽出する手順です。
- Documentクラスを使用してPDFファイルをロードします。
- TextAbsorberクラスのオブジェクトを作成します。
- ページ境界に制限を設定し、TextAbsorber.getTextSearchOptions().setLimitToPageBounds(true)および[TextAbsorber.getTextSearchOptions().setRectangle(new Rectangle(100、200、250、350))][17を使用して長方形を作成します]それぞれの方法。
- 特定のページのアブソーバーを受け入れます。
- TextAbsorber.getText()メソッドを使用してテキストを抽出します。
次のコードサンプルは、Javaの特定のページ領域からテキストを抽出する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document doc = new Document("page_0001.pdf");
// テキストを抽出するTextAbsorberオブジェクトを作成します
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// 最初のページの吸収体を受け入れる
doc.getPages().get_Item(1).accept(absorber);
// 抽出されたテキストを取得します
String extractedText = absorber.getText();
// ライターを作成してファイルを開きます
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// 抽出した内容を書き込む
writer.write(extractedText);
// ライターを閉じる
writer.close();
結論
この記事では、Javaを使用してPDFからテキストを抽出する方法を学びました。 PDF全体、特定のページ、または特定のページ領域からテキストを抽出するなど、さまざまなテキスト抽出方法を見てきました。 ドキュメントを使用して、JavaPDFAPIの詳細を学ぶことができます。
関連項目
情報:Asposeは最近、無料のオンラインText to GIFサービスを開発しました。このサービスを使用すると、テキストをアニメーション化したり、単純なテキストからGIFを生成したりできます。