如何以最简单的方式将PDF文件中的文本(单词)作为一个长字符串或字符串数组获取。
我尝试过pdfbox,但对我来说无效。
使用iText。例如,以下代码片段将提取文本。
PdfTextExtractor parser = new PdfTextExtractor(new PdfReader("C:/Text.pdf")); parser.getTextFromPage(3);
JPedal
和Multivalent
也提供了Java
中的文本提取,或者您可以使用Runtime.exec
访问xpdf
嗯,我之前使用了Tika来从PDF中提取原始文本(它基于PDFBox),但我认为Tika只有在需要从不同的文件格式中提取文本时才有用(自动检测功能非常实用)。
如果你只想将PDF解析成文本,我建议你使用PDFTextStream,因为它是一个比其他API(如iText和PDFBox)更好的解析器。
通过PDFTextStream,你可以轻松获取结构化文本(页码->块->行->文本单元),并且它还能提供一些相关信息,例如字符编码、高度、字符在页面中的位置等。
示例:
public class ExtractTextAllPages {
public static void main (String[] args) throws IOException {
String pdfFilePath = args[0];
PDFTextStream pdfts = new PDFTextStream(pdfFilePath);
StringBuilder text = new StringBuilder(1024);
pdfts.pipe(new OutputTarget(text));
pdfts.close();
System.out.printf("The text extracted from %s is:", pdfFilePath);
System.out.println(text);
}
}