我正在使用iText從特定位置的pdf文件中提取一些文本。 爲了做到這一點,我使用的LocationTextExtractionStrategy:iText:使用LocationTextExtractionStrategy從pdf文件中提取的文本的順序錯誤
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,複製,然後粘貼在文本編輯器的一切按正確順序排列。
有沒有辦法解決這個問題? 非常感謝;)
最有可能的「總延長線價格」略高於「零件描述數量單價」,因此之前提取。 – mkl
答案有幫助嗎?如果沒有,請指出問題所在。 – mkl
對不起,我很忙,無法測試答案中提供的解決方案。我會盡快找到一些時間;) –