0

org.apache.pdfbox.examples.util.printtextlocations に非常に小さな調整を加えましたが、String、List、または TextPosition オブジェクトを返す方法がわかりません。

PDF の解析は、この for ループによって開始されます。

for (int i=0; i<allPages.size(); i++ ) {
    PDPage page = (PDPage)allPages.get( i );
    System.out.println( "Processing page: " + i );
    PDStream contents = page.getContents();
    if( contents != null )
        {
            printer.processStream(page, page.findResources(), 
                                  page.getContents().getStream() );
        }
}

そして、ここに関連する方法があります:

public void processTextPosition( TextPosition text ) {
    System.out.println( "String[" + text.getXDirAdj() + "," +
            text.getYDirAdj() + " fs=" + text.getFontSize() + " xscale=" +
            text.getXScale() + " height=" + text.getHeightDir() + " space=" +
            text.getWidthOfSpace() + " width=" +
            text.getWidthDirAdj() + "]" + text.getCharacter() ); */
}

必要な情報をコンソールに出力しますが、代わりに TextPosition オブジェクトを返すことができるようにしたいと考えています。

org.apache.pdfbox.util.PDFTextStripper クラスの Javadoc とソースをスキャンしましたが、Java に精通しているだけでは解決策を見つけることができません。そして、当然のことながら、値を返すようにクラスの processTextPosition を変更しようとすると、このエラーが発生します (「PDF の processTextPosition(TextPosition) は、PDFTextStripper の processTextPosition(TextPosition) をオーバーライドできません」)。

4

0 に答える 0