从PDF转换为字符串

7

如何以最简单的方式将PDF文件中的文本(单词)作为一个长字符串或字符串数组获取。

我尝试过pdfbox,但对我来说无效。


1
PDFBox出了什么问题?您是在寻找替代方案还是想要解决现有的问题? - Catchwa
我也不喜欢这个API的设计,我快速查看了iText,我认为那是一个更好的选择。对于我的需求来说,该API似乎更加合理。 - Ankur
4个回答

4

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

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

OpenPDF 的一部分。 - Sander Verhagen

3

PDFBox在许多较新的PDF文件中存在问题,特别是那些嵌入PNG图像的文件。

我对PDFTextStream印象非常深刻。


1

JPedalMultivalent也提供了Java中的文本提取,或者您可以使用Runtime.exec访问xpdf


0

嗯,我之前使用了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);
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接