将PDF文件的文本(单词)作为一个长字符串或字符串数组的最简单方法是什么。
我尝试过pdfbox,但这对我不起作用。
答案 0 :(得分:4)
使用iText。例如,以下代码段将提取文本。
PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf")); parser.getTextFromPage(3);
答案 1 :(得分:2)
许多较新PDF上的PDFBox barfs,特别是那些嵌入了PNG图像的PDF。
印象非常深刻答案 2 :(得分:1)
JPedal
和Multivalent
也提供Java
中的文字提取,或者您可以使用xpdf
Runtime.exec
答案 3 :(得分:0)
好吧,我使用Tika从pdf中提取原始文本(它基于PDFBox),但我认为Tika只有在必须从不同文件格式中提取文本时才有用(自动检测有很多帮助)。
如果您只想将pdf解析为文本,我建议PDFTextStream 因为它比其他api(例如iText和PDFBox)更好的解析器。
使用PDFTextStream,您可以轻松获得结构化文本(pages-> blocks-> lines-> textUnits),并且您可以提取相关信息,例如字符编码,高度,角色的位置等。页面等..
示例:
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);
}
}