2017-06-13 10 views
3

私はを使用してPDFからフォントサイズを取得しています。PDFBox getFontSizeは-1を返します

PDFTextStripperを延長し、writeStringの機能を無効にして、TextPositionオブジェクトにアクセスできます。

半分の時間で正常に動作します。しかし、それ以外の時はフォントサイズを '-1'として返します。何故ですか?これは私のアルゴリズムの残りの部分に影響します。

私は機能を試しましたgetHeightgetHeightDirおよびgetFontSizeです。私はこれらすべてで同じ結果を得る。

@Override 
protected void writeString(String string, List<TextPosition> textPositions) throws IOException { 
    for (TextPosition text : textPositions) { 
     getChar(text); 
     writeString(string); 
    } 
} 

getChar機能が情報を処理します。ここでは

writeString関数です。

これを修正するにはどうすればよいですか?前もって感謝します。

EDIT:私はPDFBox 2.0.2を使用しています。私のアプリケーションでは、任意のファイルをpdfに変換してPDFBoxを使用して処理する必要があります。この問題はすべてのスプレッドシートファイルに発生します。私はApache POI 3.15を使って文書をPDFに変換します。 doc、docx、ppt、pptx、odt、odpについてはうまく動作します

+1

あなたのpdfを共有し、使用しているバージョンをご記入ください –

+0

私はPDFBox 2.0.2を使用しています。 私のアプリケーションでは、任意のファイルをpdfに変換してPDFBoxを使用して処理する必要があります。この問題はすべてのスプレッドシートファイルに発生します。 Apache POI 3.15を使用して文書をPDFに変換します。 doc、docx、ppt、pptx、odt、odpでは正常に動作します。 –

+0

現在のバージョンは2.0.6です。私はあなたがPDFを共有する場合にのみ、問題を見ることができます。そうでない場合は、PrintTextLocationsの例を試して、getFontSize()が返すものを見てください。 –

答えて

0

あなたの質問からサンプル文書を共有していないので、ここに私の推論があります。

PDFBoxが正常に動作すると仮定すると、getFontSizeが-1を返すと、ソース側で、つまりPDFを生成中にフォントサイズが設定されていません。あなたの所見から、getFontSizeが-1を返す文字がすべて同じサイズを持つ場合、これはデフォルトサイズと考えることができます。

これは役に立ちませんでしたが、実際のソリューションでは、他のユーザーのコメントに記載されているように、サンプルpdfを提供することができます。

関連する問題