4

これは古い質問のように思えるかもしれませんが、30分かけてSO全体を検索した後も、網羅的な答えは見つかりませんでした。

私は PDFBox を使用しており、各文字列の座標とともに PDF ファイルからすべてのテキストを抽出したいと考えています。私は彼らのPrintTextLocations例(http://pdfbox.apache.org/apidocs/org/apache/pdfbox/examples/util/PrintTextLocations.html)を使用していますが、私が使用している種類のpdf(Eチケット)ではプログラムが失敗します文字列を認識し、各文字を個別に出力します。TextPosition出力は、次のような文字列 (それぞれがオブジェクトを表す) のリストです。

String[414.93896,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=4.0] s
String[418.93896,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=4.447998] a
String[423.38696,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=1.776001] l
String[425.16296,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=4.447998] e

プログラムに文字列「sale」を一意として認識さTextPositionせ、その位置を教えてもらいたいのですが。setSpacingTolerance()また、メソッドとメソッドを試してみてsetAverageCharacterTolerance() PDFTextStripper、標準値の上と下に異なる値を設定しました (FYI はそれぞれ 0.5 と 0.3 です)が、出力はまったく変化しませんでした。どこが間違っていますか?前もって感謝します。

4

2 に答える 2

4

Joey が述べたように、PDF は、特定の文字を印刷する場所を示す指示の集まりにすぎません。

単語または行を抽出するには、いくつかのデータ セグメンテーションを実行する必要があります。文字のバウンディング ボックスを調べると、同じ行にある文字と単語を形成する文字を認識することができます。

于 2012-06-04T10:02:43.890 に答える