iText java无法正确解析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

我正在使用iTextJavaAPI从PDF中提取文本

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