チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Java»Spire.PDF for Java»»Java:PDF からテーブルのデータを抽出する方法
2024-01-04

Java:PDF からテーブルのデータを抽出する方法

テーブルは、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("\r\n");
                    }
                }
            }
        }

        //データを .txt ファイルに書き込む
        FileWriter fw = new FileWriter("ExtractTable.txt");
        fw.write(builder.toString());
        fw.flush();
        fw.close();
    }
}

Java:PDF からテーブルのデータを抽出する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 125 times