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);
}
}
4条答案
按热度按时间wztqucjr1#
在许多新的PDF上,尤其是那些嵌入png图像的PDF上,pdfbox会出现呕吐。
我对pdftextstream印象深刻
oo7oh9g92#
JPedal
以及Multivalent
还提供文本提取Java
或者你可以访问xpdf
使用Runtime.exec
7fhtutme3#
使用itext。例如,下面的代码片段将提取文本。
gt0wga4j4#
嗯,我使用tika是为了从pdf中提取原始文本(它基于pdfbox),但是我认为tika只有在您必须从不同的文件格式中提取文本时才有用(自动检测帮助很大)。
如果您只想将pdf解析为文本,我建议使用pdftextstream,因为它比其他api(如itext和pdfbox)好得多。
使用pdftextstream,您可以很容易地获得结构化文本(页面->块->行->文本单位),并可以提取相关信息,如字符编码、高度、字符在页面中的位置等。。
例子: