从PDf到String

时间:2009-11-05 04:59:28

标签: java pdf text io

将PDF文件的文本(单词)作为一个长字符串或字符串数​​组的最简单方法是什么。

我尝试过pdfbox,但这对我不起作用。

4 个答案:

答案 0 :(得分:4)

使用iText。例如,以下代码段将提取文本。

PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf"));
parser.getTextFromPage(3);

答案 1 :(得分:2)

许多较新PDF上的PDFBox barfs,特别是那些嵌入了PNG图像的PDF。

我对PDFTextStream

印象非常深刻

答案 2 :(得分:1)

JPedalMultivalent也提供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);
    }
}