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 类的 Javadocs 和源代码,但是我对 Java 的熟悉不足以找出解决方案。而且,毫不奇怪,如果我尝试在我的类中更改 processTextPosition 以返回一个值,那么它会产生此错误(“PDF 中的 processTextPosition(TextPosition) 无法覆盖 PDFTextStripper 中的 processTextPosition(TextPosition)”。)

4

0 回答 0