iText java无法正确解析PDF中的文本/
我正在使用iTextJavaAPI从PDF中提取文本iText java无法正确解析PDF中的文本/,java,itext,Java,Itext,我正在使用iTextJavaAPI从PDF中提取文本 String text = PdfTextExtractor.getTextFromPage(reader,i); Src PDF内容: 1.2提交资料 生成的文本: 提交资料 1.2 提取的文本被分成两行,文本的顺序也被打乱了 有人能帮我理解我做错了什么吗 Src pdf文件链接- 从iText生成的目标文本文件- 但是,当我使用其他PDF API(如PDFClown)进行测试时,它的工作情况与预期一样 请帮忙 谢谢你的原因 iText
String text = PdfTextExtractor.getTextFromPage(reader,i);
Src PDF内容:
1.2提交资料
生成的文本:
提交资料1.2 提取的文本被分成两行,文本的顺序也被打乱了 有人能帮我理解我做错了什么吗 Src pdf文件链接- 从iText生成的目标文本文件- 但是,当我使用其他PDF API(如PDFClown)进行测试时,它的工作情况与预期一样 请帮忙 谢谢你的原因 iText及其标准文本提取策略用于提取 作为 因为“1.2”实际上位于“提交文件”下方(每分钟): 正如您在本PDF内容图说明摘录中所见,“1.2”在y坐标-6634处绘制,而“提交资料”在-6628处绘制,即“1.2”在“提交资料”下方绘制6个缩放单位 这使得iText将其放在单独的下一行 解决办法 您可以使用from而不是默认提取策略cf,并获得以下输出:
1.2 SUBMITTALS
(有关该策略使用的详细信息,请咨询。是该答案“更新:位置变化文本提取策略”一节中更新的策略。)原因
iText及其标准文本提取策略用于提取
作为
因为“1.2”实际上位于“提交文件”下方(每分钟):
正如您在本PDF内容图说明摘录中所见,“1.2”在y坐标-6634处绘制,而“提交资料”在-6628处绘制,即“1.2”在“提交资料”下方绘制6个缩放单位
这使得iText将其放在单独的下一行
解决办法
您可以使用from而不是默认提取策略cf,并获得以下输出:
1.2 SUBMITTALS
(有关该策略使用的详细信息,请咨询该答案“更新:位置变化文本提取策略”一节中的更新策略。)请重新格式化代码那么“Src PDF内容-1.2提交文件生成文本-提交文件1.2”来自何方?在Src PDF链接中,打开PDF,您将在目标文本文件链接中看到以1.2提交文件开头的部分-对于同一部分,您将在一行中看到提交文件,在单独的一行中看到1.2。在我的Java代码中,我只是使用“String text=PdfTextExtractor.getTextFromPage(reader,I);”来提取页面内容。顺便说一下,我使用的是5.5.7,也尝试了5.5.10。同样的结果。我不太确定,但也许iText的PDF转换程序的格式与其他PDF API不同。请重新格式化代码。那么“Src PDF内容-1.2提交文件生成文本-提交文件1.2”是从哪里来的?在Src PDF链接中,打开PDF,您将在目标文本文件链接中看到以1.2提交文件开头的部分-对于同一部分,您将在一行中看到提交文件,在单独的一行中看到1.2。在我的Java代码中,我只是使用“String text=PdfTextExtractor.getTextFromPage(reader,I);”来提取页面内容。顺便说一下,我使用的是5.5.7,也尝试了5.5.10。同样的结果。我不是很确定,但也许iText的PDF转换程序与其他PDF API的格式不同。非常感谢您的解释!!谢谢你的解释!!
1.2 SUBMITTALS