1

我无法使用 itext 解析器获得一致的结果。这是代码

public void parsePdf(String pdf) throws IOException {
    PdfReader reader = new PdfReader(pdf);
    Rectangle rect = new Rectangle(370,280, 380, 613);
    RenderFilter filter = new RegionTextRenderFilter(rect);
    TextExtractionStrategy strategy;
    strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);      
    s=PdfTextExtractor.getTextFromPage(reader, 1, strategy);
    reader.close();
    System.out.println(s);
}

我正在使用报告管理器创建 pdf。两种文件的模板不同,但我要提取的字段的位置是相同的。
我正在使用位置策略。矩形指向我要解析的位置。当打印在纸上时,有问题的字段位于相同的位置,所以我的猜测是应该解析相同,但事实并非如此。第一个文档给了我预期的结果,但是当我用与我的矩形相同的坐标解析第二个文档时,我正在解析比预期位置高两行的东西。希望这是一个更好的解释。
我在报表管理器中设置了模板,以便目标字段位于相同的位置,两个 pdf 的字体大小、间距、相同的文档标题在打印出来时很明显,但是在解析时我得到两行偏移。

4

0 回答 0