チュートリアル

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

チュートリアル»Java»Spire.PDF for Java»エキス/読み取り»Java:PDF 文書からテキストを抽出する方法
2022-12-14

Java:PDF 文書からテキストを抽出する方法

PDF からテキストを抽出することは、特に日常的に何百もの 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>8.11.0</version>
    </dependency>
</dependencies>

指定したページからテキストを抽出する

Spire.PDF for Java は、検索可能な PDF からテキストを抽出する PdfTextExtractor クラスと、抽出オプションを管理する PdfTextExtractOptions クラスを提供します。PdfTextExtractor.extract() メソッドは、デフォルトで特定の抽出オプションを指定する必要なく、指定されたページからすべてのテキストを抽出します。詳細な手順は以下のとおりです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドで PDF ファイルを読み込みます。
  • PdfDocument.getPages().get() メソッドで特定のページを取得します。
  • PdfTextExtractor クラスのオブジェクトを作成します。
  • PdfTextExtractor.extract() メソッドを使用して、選択されたページからテキストを抽出します。
  • 抽出したテキストを TXT ファイルに書き出します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextExtractOptions;
import com.spire.pdf.texts.PdfTextExtractor;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class extractTextFromPage {

    public static void main(String[] args) throws IOException {

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFファイルを読み込む
        doc.loadFromFile("Java.pdf");

        //最初のページを表示する
        PdfPageBase page = doc.getPages().get(0);

        //PdfTextExtractor クラスオブジェクトを作成する
        PdfTextExtractor textExtractor = new PdfTextExtractor(page);

        //PdfTextExtractOptions クラスオブジェクトを作成する
        PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

        //ページ内のテキストを抽出する
        String text = textExtractor.extract(extractOptions);

        //テキストをtxtファイルに書き出す
        Files.write(Paths.get("抽出されたテキスト.txt"), text.getBytes());
    }
}

Java:PDF 文書からテキストを抽出する方法

矩形領域からテキストを抽出する

テキストを抽出する矩形領域を指定するには、PdfTextExtractOptions クラスの下にある setExtractArea() メソッドを使用する必要があります。次の手順は、Spire.PDF for Java を使用して、ページの矩形領域からテキストを抽出する方法を示しています。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを用いて PDF ファイルを読み込む。
  • PdfDocument.getPages().get() メソッドを使用して、特定のページを取得する。
  • PdfTextExtractor クラスのオブジェクトを作成します。
  • PdfTextExtractOptions クラスのオブジェクトを作成し、その setExtractArea() メソッドを使用して矩形領域を指定します。
  • PdfTextExtractor.extract() メソッドを使用して、矩形領域からテキストを抽出します。
  • 抽出したテキストを TXT ファイルに書き出します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextExtractOptions;
import com.spire.pdf.texts.PdfTextExtractor;

import java.awt.geom.Rectangle2D;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class extractTextFromRectangleArea {

    public static void main(String[] args) throws IOException {

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFファイルを読み込む
        doc.loadFromFile("Java.pdf");

        //最初のページを取得する
        PdfPageBase page = doc.getPages().get(0);

        //PdfTextExtractor クラスのオブジェクトを作成する
        PdfTextExtractor textExtractor = new PdfTextExtractor(page);

        //PdfTextExtractOptions クラスのオブジェクトを作成する
        PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

        //矩形領域からテキストを抽出するオプションを設定する
        Rectangle2D rectangle2D = new Rectangle2D.Float(0, 300, 890, 170);
        extractOptions.setExtractArea(rectangle2D);

        //指定した領域からテキストを抽出する
        String text = textExtractor.extract(extractOptions);

        //テキストをtxtファイルに書き出す
        Files.write(Paths.get("抽出されたテキスト.txt"), text.getBytes());
    }
}

Java:PDF 文書からテキストを抽出する方法

SimpleExtraction でテキストを抽出する

上記のメソッドは、テキストを一行ずつ抽出します。SimpleExtraction を使用してテキストを抽出する場合、各文字列の現在の垂直位置を記録し、垂直位置が変更された場合、出力に改行を挿入します。以下、詳細な手順を説明します。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドで PDF ファイルを読み込みます。
  • PdfDocument.getPages().get() メソッドで特定のページを取得します。
  • PdfTextExtractor クラスのオブジェクトを作成します。
  • PdfTextExtractOptions クラスのオブジェクトを作成し、setSimpleExtraction() メソッドで SimpleExtraction を有効にします。
  • PdfTextExtractor.ExtractText() メソッドでテキストを抽出します。
  • 抽出されたテキストを TXT ファイルに書き出します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextExtractOptions;
import com.spire.pdf.texts.PdfTextExtractor;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class extractTextWithSimpleExtraction {

    public static void main(String[] args) throws IOException {

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFファイルを読み込む
        doc.loadFromFile("Java.pdf");

        //最初のページを取得する
        PdfPageBase page = doc.getPages().get(0);

        //PdfTextExtractor クラスのオブジェクトを作成する
        PdfTextExtractor textExtractor = new PdfTextExtractor(page);

        //PdfTextExtractOptions クラスのオブジェクトを作成する
        PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

        //SimpleExtractionを有効にする
        extractOptions.setSimpleExtraction(true);

        //指定した領域からテキストを抽出する
        String text = textExtractor.extract(extractOptions);

        //抽出されたテキストをtxtファイルに書き出す
        Files.write(Paths.get("抽出されたテキスト.txt"), text.getBytes());
    }
}

Java:PDF 文書からテキストを抽出する方法

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

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

Read 645 times