我想使用 Java 从 PDF 文件中读取一些文本数据。我怎样才能做到这一点?
原文由 yohan.jayarathna 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想使用 Java 从 PDF 文件中读取一些文本数据。我怎样才能做到这一点?
原文由 yohan.jayarathna 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 Apache PDFBox 它是这样的:
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;
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();
原文由 Sachin 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
PDFBox 是我为此目的找到的最好的库,它很全面,如果您只是进行基本的文本提取,它真的很容易使用。可以在 此处 找到示例。
它在页面上对其进行了解释,但需要注意的一件事是使用 setStartPage() 和 setEndPage() 时的开始索引和结束索引 都 包含在内。我第一次跳过了那个解释,然后我花了一段时间才意识到为什么我每次打电话都得到不止一页的回复!
Itext 是另一种也适用于 C# 的替代方法,尽管我个人从未使用过它。它比 PDFBox 级别更低,因此如果您只需要基本的文本提取,则不太适合这项工作。