我正在制作一个允许使用apache Solr在pdf中搜索的应用程序。我在pdf中找不到某些术语时遇到了麻烦。
我注意到列中的单词被附加了。
实施例
Column1 | Column2
stack | overflow
这里的PdftextStripper有时会将stackoverflow作为提取文本。这会导致solr中的不良组织化,从而阻止您找到该术语。 (是的,我知道我可以使用通配符,但这在短语查询中不起作用)
我一直在寻找消息来源,看看是什么导致了这个问题。但似乎writePage方法必须猜测空格。我无法改变这一点,因为它看起来非常复杂。
是否还有其他解决方案可以从包含列的pdf中获取良好的文本提取效果?
答案 0 :(得分:0)
我在使用PDFbox提取文本时遇到了同样的问题。我通过获取每个角色的位置信息来解决这个问题。我占据了每个角色的x位置和y位置。并实现了一个简单的逻辑来区分单词。在此之前,我的单词分隔符只是“”(空格)。我又添加了一个逻辑,如果两个字符的X位置的差异超出某个值(这个值将是你的选择。)并且它在同一行,那就是相同的y坐标(不同的y坐标意味着一个新词),我把它们当作一个新词。通过这种逻辑,我能够解决表格内容,换行等问题。
此link将帮助您通过PDFbox获取pdf中的字符位置。