PDFBox getText不返回所有可见文本



我使用PDFBox从我的PDF文档中提取文本。它检索文本,但不是全部(具体来说,似乎缺少标题/页眉和页脚文本)。缺少的部分不是图像,而是在foxit阅读器中使用文本视图时提取的。

我使用版本1.8.12,并使用2.0.2做了一个测试用例,只是为了看看它是否会返回更多的内容。

这是我在2.0.2中使用的代码:

public static void main(String[] args) {
    File file = new File("D:\\file.pdf");
    try {
        PDDocument doc = PDDocument.load(file);
        PDFTextStripper stripper = new PDFTextStripper();
        //stripper.setSuppressDuplicateOverlappingText(false);
        stripper.getText(doc);
    } catch (Exception e) {
        System.out.println("Exc errirs ");
    }
}

现在我想知道有没有什么设置我错过了?PDFBox失败是因为文本在一些装饰元素的顶部(文本下的矩形)?

感谢

编辑:链接到相关文件

正如评论中所讨论的那样,文本并没有丢失,而是在"错误"的位置。默认情况下,PDFBox文本提取在内容流中提取字符,但它们并不总是以"自然"的方式出现。PDF文件是由软件创建的,而不是由人创建的。

另一个选择是使用排序选项:

stripper.setSortByPosition(true)

但是,正如mkl所指出的,如果文本在两列中,您也不会喜欢结果

相关内容

  • 没有找到相关文章

最新更新