7

「processTextPosition」と同様に、PDFBox を使用して単語の位置を取得することは可能ですか? processTextPosition は単一の文字でのみ呼び出され、それらを単語にマージするコードは、テキストの場所を返す PDFTextStripper (「正規化」内) メソッドの一部です。場所も抽出する方法/ユーティリティはありますか? (動機が何であるか疑問に思っている人のために-情報は実際にはテーブルであり、空のセルを検出したいと考えています)ありがとう

4

1 に答える 1

2

PDF ファイルから抽出されたテキスト内の単語とその x および y 位置を取得するには、PdfTextStripper クラスを拡張し、カスタム クラスを使用して PDF ファイルからテキストを抽出する必要があります。

public class CustomPDFTextStripper extends PDFTextStripper{

    public CustomPDFTextStripper() throws IOException {

    }

    /**
    * Override the default functionality of PDFTextStripper.
    */

    @Override
    protected void writeString(String text, List<TextPosition> textPositions) throws IOException{
        TextPosition firstProsition = textPositions.get(0);
        writeString(String.format("[%s , %s , %s]", firstProsition.getTextPos().getXPosition(),
                firstProsition.getTextPos().getYPosition(), text));

    }
}

このカスタム クラスのオブジェクトを作成し、テキストを抽出します。

PDFTextStripper pdfStripper = new CustomPDFTextStripper();
String text = pdfStripper.getText(*pdf file wrapped as a PDDocument object*);

結果のテキスト文字列は、デフォルトの単語セパレーターで区切られた [xposition, yposition, word] の形式になります。

于 2016-03-10T15:57:23.213 に答える