如何使用Java读取PDF文件?[关闭]


69

我想使用Java从PDF文件中读取一些文本数据。我怎样才能做到这一点?

Answers:


70

PDFBox是我为此找到的最好的库,它很全面,如果您只是进行基本的文本提取,它真的非常易于使用。示例可以在这里找到。

它在页面上对此进行了解释,但要注意的一件事是,使用setStartPage()和setEndPage()时的开始索引和结束索引包含在内。我第一次绕过了这个解释,然后花了我一段时间才意识到为什么每次打电话我回头一页以上!

Itext是另一种也可以与C#一起使用的替代方法,尽管我个人从未使用过它。它比PDFBox级别低,因此如果您只需要基本文本提取,则不太适合该工作。


27

使用Apache PDFBox的过程如下:

PDDocument document = PDDocument.load(new File("test.pdf"));
if (!document.isEncrypted()) {
    PDFTextStripper stripper = new PDFTextStripper();
    String text = stripper.getText(document);
    System.out.println("Text:" + text);
}
document.close();

2
导入这些:import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; import org.apache.pdfbox.text.PDFTextStripperByArea;
Srivastav

17

PDFBox包含用于文本提取的工具

iText对文本操作提供了更底层的支持,但是您必须编写大量代码才能提取文本。

iText in Action很好地概述了从PDF中提取文本的局限性,而与使用的库无关(第18.2节:提取和编辑文本),以及令人信服的解释,说明了为什么该库不支持文本提取。简而言之,编写处理简单情况的代码相对容易,但是从总体上来说,从PDF中提取文本基本上是不可能的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.