PDF ファイルは通常、テキスト、画像、見出し、注釈、その他の要素で構成されます。また、この形式はプラットフォーム (デスクトップ/モバイルなど) 全体でドキュメントのレイアウトを保持するため、インターネット上で情報を共有するために広く使用されています。ただし、さらなる処理のために PDF ドキュメントのテキストコンテンツを抽出する必要がある場合があります。そこでこの記事では、Java Cloud SDK を使用して PDF からテキストを抽出する方法について詳しく説明します。操作が完了すると、出力は TXT 形式で保存されます。
PDFからTXTへの変換API
Aspose.PDF Cloud SDK for Java は、受賞歴のある当社の REST API ソリューションであり、PDF を作成、編集し、JPG、XPS、HTML、DOCX およびその他のさまざまな サポートされている形式 に変換する機能を提供します。 Java アプリケーションに PDF テキスト認識機能を実装するには、Maven ビルド タイプ プロジェクトの pom.xml に次の詳細を追加してください。
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf-cloud</artifactId>
<version>21.11.0</version>
</dependency>
</dependencies>
SDK のインストール後の次の重要なステップは、Aspose Cloud での無料アカウントの作成です。そのため、新しく作成したアカウントを使用してログインし、クラウド ダッシュボードでクライアント ID とクライアント シークレットを検索/作成してください。これらの詳細は後続のセクションで必要になります。
Java での PDF からテキストへの変換
Java Cloud SDK を使用して PDF からテキストへの変換を実行するには、以下の手順に従ってください。したがって、変換が成功すると、結果の TXT ファイルがクラウド ストレージに保存されます。
- まず、ClientID と Client Secret を引数として指定して PdfApi オブジェクトを作成する必要があります。
- 次に、File インスタンスを使用して入力 PDF ファイルをロードします。
- UploadFile(…) メソッドを使用して、入力 PDF をクラウド ストレージにアップロードします
- テキスト抽出用の PDF のページ番号を指定する Integer 変数と、テキスト コンテンツを抽出する必要があるページの長方形の領域を示す Double インスタンスを作成します。
- 最後に getPageText(…) メソッドを呼び出して、入力 PDF からテキスト コンテンツを取得します。
try
{
// https://dashboard.aspose.cloud/ から ClientID と ClientSecret を取得します。
String clientId = "bb959721-5780-4be6-be35-ff5c3a6aa4a2";
String clientSecret = "4d84d5f6584160cbd91dba1fe145db14";
// PdfApi のインスタンスを作成する
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// 入力された PDF ドキュメントの名前
String inputFile = "marketing.pdf";
// 入力された PDF ファイルの内容を読み取る
File file = new File("//Users//"+inputFile);
// PDFをクラウドストレージにアップロードする
pdfApi.uploadFile("input.pdf", file, null);
// 変換する PDF の特定のページ
int pageNumber =1;
// 左下隅の X 座標
Double LLX = 0.0;
// Y - 左下隅の座標。
Double LLY = 0.0;
// X - 右上隅の座標。
Double URX = 800.0;
// Y - 右上隅の座標。
Double URY = 800.0;
// APIを呼び出してPDFをテキストに変換する
TextRectsResponse response = pdfApi.getPageText(inputFile, pageNumber, LLX, LLY, URX, URY, null, null, true, null, "default");
// 結果のTXTファイルインスタンス
FileWriter myWriter = new FileWriter("filename.txt");
// 個々のテキスト出現をたどって、コンソールで印刷結果を取得します
for(int counter=0; counter <=response.getTextOccurrences().getList().size()-1; counter++)
{
// テキストコンテンツをTXTファイルに書き込む
myWriter.write(response.getTextOccurrences().getList().get(counter).getText());
}
// TXTハンドラーを閉じる
myWriter.close();
System.out.println("Text successfully extracted from PDF !");
}catch(Exception ex)
{
System.out.println(ex);
}
上記の例で使用されているサンプル PDF ファイルは、marketing.pdf および extracted.txt からダウンロードできます。
cURL コマンドを使用して PDF からテキストを抽出する
REST API には cURL コマンドを介して簡単にアクセスできるため、このセクションでは、cURL コマンドを使用して PDF からテキスト コンテンツを抽出する方法のオプションを検討します。したがって、前提条件として、次のコマンドを実行しながら、まず JWT アクセス トークンを (クライアントの資格情報に基づいて) 生成する必要があります。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
JWT トークンを取得したら、次のコマンドを実行して、PDF ドキュメント内のすべてのテキストを抽出する必要があります。
curl -v -X GET "https://api.aspose.cloud/v3.0/pdf/input.pdf/text?splitRects=true&LLX=0&LLY=0&URX=800&URY=800" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
結論
この記事では、Java Cloud SDKを使用してPDFをTXTに変換する方法について詳しく説明しました。同時に、cURL コマンドを使用して PDF からテキストを抽出するオプションも検討しました。したがって、複数の PDF ページ間を柔軟に移動できるため、コンテンツを抽出する場所を制御できます。 Java Cloud API によって提供されるその他の魅力的な機能について詳しく知るには、製品 ドキュメント を参照することを強くお勧めします。また、すべての Cloud SDK は MIT ライセンスに基づいて公開されているため、GitHub から完全なソース コードをダウンロードし、要件に応じて変更することを検討することもできます。問題が発生した場合は、無料の 製品サポート フォーラム を通じて迅速に解決するために当社に連絡することを検討してください。
関連記事
詳細については、次のリンクを参照してください。