PDFBox 2.0.2中缺少PDFTextStripper()类,用于从PDF中提取文本。

4
我用Java实现了一个简单的PDF文本提取方法,使用的是PDFBox 1.8.10版本。由于某些原因,我需要将库升级到PDFBox 2.0.2版本。可能在新版本中PDFTextStripper()方法已被删除或位于另一个包中。有没有什么办法解决这个问题?或者你能建议另一种从PDF获取文本的方式吗?
以下是我的代码:
public String extractTextFromPdf() {
     File jInputFile = new File("c:/lorem/ipsum.pdf");
     PDDocument PDDoc = PDDocument.load(jInputFile ); 
     String strContent = new PDFTextStripper().getText(PDDoc);
     PDDoc.close();
     return strContent;
}

提前感谢您。


你使用哪个 IDE?在 Netbeans 中,按 Ctrl-Shift-I 键,导入将自动修正。在 Eclipse 中,按 Ctrl-Shift-O。 - Tilman Hausherr
2
@TilmanHausherr 谢谢,我正在使用Eclipse。重启后问题已经解决了。我认为这是一个临时性错误。PDFBox将PDFTextStripper类从“org.apache.pdfbox.util”移动到“org.apache.pdfbox.text”包中。真是一项进步... - bcakmak
很高兴它能正常工作。请删除您的问题,因为这是一些相当琐碎的事情。或者您可以自己回答。 - Tilman Hausherr
1个回答

0

试试这个吧

{
    PDDocument document = null;
    document = PDDocument.load(new File("test.pdf"));
    document.getClass();
    if (!document.isEncrypted()) {
        PDFTextStripperByArea stripper = new PDFTextStripperByArea();
        stripper.setSortByPosition(true);
        PDFTextStripper Tstripper = new PDFTextStripper();
        String st = Tstripper.getText(document);
        System.out.println("Text:" + st);
    }
} catch (Exception e) {
    e.printStackTrace();
}`

1
这不是问题的答案。另外,document.getClass(); 没有任何效果。if (!document.isEncrypted()) 不需要。 - Tilman Hausherr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接