テーブルは、PDF で最もよく使用される書式設定要素の 1 つです。 場合によっては、さらに分析を行うために PDF のテーブルからデータを抽出する必要がある場合があります。この記事では、Spire.PDF for Java を使用して PDF からテーブルのデータを抽出する方法を紹介します。 Spire.PDF for Java をインストールします まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Mavenを使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。 <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf</artifactId> <version>9.12.0</version> </dependency> </dependencies> PDF からテーブルのデータを抽出する Spire.PDF for Java は、PdfTableExtractor.extractTable(int pageIndex) メソッドを使用して、特定の PDF ページからテーブルを検出して抽出します。以下は、PDF ファイルからテーブルデータを抽出する手順です。 PdfDocument クラスを使用して、サンプル PDF ファイルをロードします。 StringBuilder インスタンスと PdfTableExtractor インスタンスを作成します。 PDFのページをループし、PdfTableExtractor.extractTable(int pageIndex) メソッドを使用して、各ページから PdfTable 配列にテーブルを抽出します。 配列内のテーブルをループします。 各テーブルの行と列をループし、PdfTable.getText(int rowIndex、int columnIndex) メソッドを使用して、各テーブルのセルからデータを抽出します。 StringBuilder.append() メソッドを使用して、StringBuilder インスタンスにデータを追加します。 Writer.write() メソッドを使用して、抽出したデータを txt ファイルに書き込みます。 Java import com.spire.pdf.PdfDocument; import com.spire.pdf.utilities.PdfTable; import com.spire.pdf.utilities.PdfTableExtractor; import java.io.FileWriter; public class ExtractTableData { public static void main(String []args) throws Exception { //サンプルPDFファイルをロードする PdfDocument pdf = new PdfDocument("Sample.pdf"); //StringBuilder インスタンスを作成する StringBuilder builder = new StringBuilder(); //PdfTableExtractor インスタンスを作成する PdfTableExtractor extractor = new PdfTableExtractor(pdf); //PDFのページをループする for (int pageIndex = 0; pageIndex < pdf.getPages().getCount(); pageIndex++) { //現在のページからテーブルを PdfTable 配列に抽出する PdfTable[] tableLists = extractor.extractTable(pageIndex); //テーブルが見つかった場合 if (tableLists != null && tableLists.length > 0) { //配列内のテーブルをループする for (PdfTable table : tableLists) { //現在のテーブルの行をループする for (int i = 0; i < table.getRowCount(); i++) { //現在のテーブルの列をループする for (int j = 0; j < table.getColumnCount(); j++) { //現在のテーブルのセルからデータを抽出し、StringBuilder に追加する String text = table.getText(i, j); builder.append(text + " | "); } builder.append("rn"); } } } } //データを .txt ファイルに書き込む FileWriter fw = new FileWriter("ExtractTable.txt"); fw.write(builder.toString()); fw.flush(); fw.close(); } } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。