【发布时间】:2016-05-22 13:30:16
【问题描述】:
我正在使用 iText 从特定位置的 pdf 文件中提取一些文本。 为此,我正在使用 LocationTextExtractionStrategy:
public static void main(String[] args) throws Exception {
PdfReader pdfReader = new PdfReader("location_text_extraction_test.pdf");
Rectangle rectangle = new Rectangle(38, 0, 516, 516);
RenderFilter[] filter = {new RegionTextRenderFilter(rectangle)};
TextExtractionStrategy strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);
String text = PdfTextExtractor.getTextFromPage(pdfReader, 1, strategy);
System.out.println(text);
pdfReader.close();
}
问题是提取的文本顺序错误:
应该提取为:
Part Description Quantity Unit Price Total For Line Extended Price Landing Fee 1.00 407.84 $ USD 407.84 407.84 $
提取为:
Total For Line Extended Price Part Description Quantity Unit Price 1.00 407.84 $ USD 407.84 407.84 $ Landing Fee
请注意,当我在 Acrobat 中打开 pdf 时,使用 Ctrl+A 选择所有文本,复制然后将其粘贴到文本编辑器中,所有内容都按正确的顺序排列。
有没有办法解决这个问题? 非常感谢;)
【问题讨论】:
-
最有可能“总行扩展价格”略高于“零件描述数量单价”,因此,之前提取。
-
答案有帮助吗?如果不是,请指出问题。
-
抱歉,我很忙,无法测试您的答案中提供的解决方案。我会尽快找到一些时间;)
标签: pdf itext text-extraction