我想使用Java从PDF文件中读取一些文本数据。请帮我这样做。
感谢任何帮助。
答案 0 :(得分:62)
PDFBox是我为此目的找到的最好的库,如果您只是进行基本的文本提取,它是全面且非常容易使用的。可以找到示例here。
它在页面上解释了它,但有一点需要注意的是,使用setStartPage()和setEndPage()时的起始和结束索引都是两者。我第一次跳过了那个解释然后我花了一段时间才意识到为什么每次通话都会得到多个页面!
Itext是另一种可以与C#一起使用的替代方案,尽管我个人从未使用它。它比PDFBox更低级,因此如果您只需要基本的文本提取,则不太适合这项工作。
答案 1 :(得分:18)
使用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 :(得分:17)
PDFBox包含tools for text extraction。
iText对文本操作有更多的低级支持,但是你必须编写大量的代码来获取文本。
iText in Action概述了PDF文本提取的局限性,无论使用哪个库(第18.2节:提取和编辑文本),以及为什么库没有文本提取支持的令人信服的解释。简而言之,编写一个处理简单案例的代码相对容易,但基本上不可能从PDF中提取文本。
答案 3 :(得分:2)
使用iText等PDF库。