2016-12-04 15 views
0

pdfboxを使用してpdfからテキストを抽出しようとしています。しかし、私はテーブルからすべてのテキストを抽出することができません。私は(オレンジ色)第一テーブルからテキストを取得することができる午前PdfBox - PDFからテキストを抽出できません

enter image description here

(一部の機密テキストが強調されている)

(PDFファイルから切り取ら)下の画像を参照してください3番目のテーブル(一般情報1)。しかし、私は2番目のテーブルから何かを抽出することができません。

出力では、1番目と3番目のテーブルの出力の間に2つの空白行が表示されます。

ここに私のコードです。

PDDocument doc = PDDocument.load(new File("....")); 
PDFTextStripper pdfStripper = new PDFTextStripper(); 
String text = pdfStripper.getText(doc); 
System.out.println(text); 
doc.close(); 

入力や提案はありますか?

+1

これは再現可能なPDFを提供する必要があります。 –

+0

https://pdfbox.apache.org/2.0/faq.html#notext「PDF文書からテキストを取得できないのはなぜですか?」 –

+0

Adob​​e Readerからそのテキストをコピー&ペーストできますか? – mkl

答えて

0

問題が見つかりました。内容は表示されていたが、再配置されていた。

PDFには2つのテーブルが順番に配置されていました。この表の内容は、その直後に置かれたいくつかの表の内容の後に表示されていました。たとえば、6つのテーブルがあり、これが上から2番目のテーブルだったとします。コンテンツは2位の代わりに5位に表示されています。

Tilmanで示されているように、pdfStripper.setSortByPosition(true)を使用すると、予想される場所に期待されるコンテンツが表示されます。

+1

setSortByPosition()メソッドを使用します。これがなければ、シーケンス内の文字をPDF自体から得ることができます。これは有用かもしれません。 –

+0

@TilmanHausherrありがとう、これは問題を解決しました! – AgentX

関連する問題