PDFBox getText不返回所有可见文本
问题描述:
我正在使用PDFBox从我的PDF文档中提取文本。它检索文本,但不是全部(特别是,看起来像标题/页眉和页脚文本丢失)。丢失的部分不是图像,在福昕阅读器中使用文本视图时会被提取。PDFBox getText不返回所有可见文本
我正在使用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指出,如果文本是在两列,你不会喜欢的结果无论是。
请分享一个可以重现问题的PDF。 – mkl
在问题 –
中添加链接而哪些文字缺失?在第1页中,具有前导符号的第一个“Windows Phone”行不是书写而是矢量图形。其余行“Windows Phone:”和“Empowering Business”由PDFBox提取。他们可能不会出现在你期望的地方,但他们在那里。 – mkl