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を作成しています。2 種類のファイルのテンプレートは異なりますが、抽出するフィールドの位置は同じです。
LocationStrategy を使用しています。長方形は、解析したい位置を指しています。紙に印刷すると、問題のフィールドは同じ位置にあるため、同じものを解析する必要があると思いますが、そうではありません。最初のドキュメントでは期待どおりの結果が得られますが、2 番目のドキュメントを四角形の同じ座標で解析すると、期待される場所の 2 行上にあるものを解析しています。これがより良い説明であることを願っています。
レポートマネージャーでテンプレートを設定して、ターゲットフィールドが同じ位置、同じフォントサイズ、間隔、両方の PDF の同じドキュメントヘッダーになるように設定しましたが、印刷すると明らかですが、解析すると 2 行のオフセットが得られます。