
JavaでPDFからテーブルを抽出
最近、Java で PDF ファイルからテキストをプログラムで抽出する方法についての 記事 を公開しました。このブログ投稿では、この Java API for PDF を使用して、Java で PDF からテーブルを抽出する方法を学習します。このライブラリは、PDF ドキュメントを解析および操作するための強力な機能を提供します。さらに、このライブラリを使用して PDF テーブル エクストラクタを構築することにより、データ抽出を自動化できます。ただし、続行する前にローカル マシンに Java がインストールされていることを確認してください。
このガイドでは、次の点について説明します。
PDF テーブル エクストラクタ - API インストール
このライブラリのインストール プロセスは単純明快です。実際、API を ダウンロード するか、次の 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>
<classifier>jdk17</classifier>
</dependency>
JavaでPDFからテーブルを抽出
API がインストールされると、プログラムで PDF テーブル エクストラクタを構築するためのコードの記述を開始できます。
以下の手順とコード スニペットに従ってください。
- Document クラスのオブジェクトを作成し、ソース PDF ファイルを読み込みます。
- 検索を実行し、検索結果へのアクセスを提供する TableAbsorber クラスのインスタンスをインスタンス化します。
- getPages メソッドを呼び出して、PDF ドキュメント ページをループします。
- visit メソッドを呼び出して、ページからテーブルを抽出します。
- 見つかったテーブルを含む読み取り専用 IList を返す getTableList メソッドを呼び出します。
- getRowList メソッドを呼び出して行を取得します。行のリストを反復処理します。
- getCellList メソッドを呼び出して、セルのリストを反復処理します。
- getTextFragments メソッドを呼び出して、セルに含まれるテキストを記述する TextFragment オブジェクトのコレクションを取得します。
- 現在の TextFragment のテキスト セグメントを取得する getSegments メソッドを呼び出します。
- 結果を印刷します。
次のコードをコピーしてメイン ファイルに貼り付けます。
String filePath = "table.pdf";
// Document クラスのオブジェクトを作成し、ソース PDF ファイルを読み込みます
Document pdfDocument = new Document(filePath);
// 検索を実行し、検索結果へのアクセスを提供する TableAbsorber クラスのインスタンスをインスタンス化する
TableAbsorber absorber = new TableAbsorber();
// getPages メソッドを呼び出して、PDF ドキュメントのページをループします。
for (Page page : pdfDocument.getPages()) {
// visit メソッドを呼び出してページからテーブルを抽出する
absorber.visit(page);
// 見つかったテーブルを含む読み取り専用 IList を返す getTableList メソッドを呼び出します
for (AbsorbedTable table : absorber.getTableList()) {
System.out.println("Table");
// getRowList メソッドを呼び出して行を取得する 行のリストを反復処理する
for (AbsorbedRow row : table.getRowList()) {
// getCellList メソッドを呼び出して、セルのリストを反復処理します。
for (AbsorbedCell cell : row.getCellList()) {
// getTextFragments メソッドを呼び出して、セルに含まれるテキストを記述する TextFragment オブジェクトのコレクションを取得します
for (TextFragment fragment : cell.getTextFragments()) {
StringBuilder sb = new StringBuilder();
// 現在の TextFragment のテキスト セグメントを取得する getSegments メソッドを呼び出します。
for (TextSegment seg : fragment.getSegments())
sb.append(seg.getText());
System.out.print(sb.toString() + "|");
}
}
System.out.println();
}
}
}
無料ライセンスを取得する
無料の一時ライセンス を利用して、評価制限なしで API を試すことができます。
まとめ
これで、このブログ記事は終わりです。プログラムを使用して Java で PDF からテーブルを抽出する方法を学習しました。このガイドは、ビジネス アプリケーション用の PDF テーブル エクストラクタの構築を検討している場合に非常に役立ちます。さらに、ドキュメント にアクセスして、他の機能を知ることができます。
さらに、Getting Started guide に従うことをお勧めします。
最後に、conholdate.com が新しいブログ記事を書いています。したがって、最新の更新については連絡を取り合ってください。
質問する
フォーラムでご質問やご質問をお知らせください。
よくある質問
PDF から表を抽出できますか?
この リンク にアクセスして、プログラムで PDF ドキュメントからテーブルを抽出する手順とコード スニペットを確認してください。