如何避免pdfbox附加单独的单词

时间:2012-12-20 11:54:59

标签: java pdfbox

我正在制作一个允许使用apache Solr在pdf中搜索的应用程序。我在pdf中找不到某些术语时遇到了麻烦。

我注意到列中的单词被附加了。

实施例

 Column1 | Column2
 stack   | overflow

这里的PdftextStripper有时会将stackoverflow作为提取文本。这会导致solr中的不良组织化,从而阻止您找到该术语。 (是的,我知道我可以使用通配符,但这在短语查询中不起作用)

我一直在寻找消息来源,看看是什么导致了这个问题。但似乎writePage方法必须猜测空格。我无法改变这一点,因为它看起来非常复杂。

是否还有其他解决方案可以从包含列的pdf中获取良好的文本提取效果?

  • 也许某种转换其他程序。
  • 也许补丁为pdfbox。
  • 是的,我见过类似的 问题,但他们主要处理提取的顺序(在... 我的情况并不重要。)

1 个答案:

答案 0 :(得分:0)

我在使用PDFbox提取文本时遇到了同样的问题。我通过获取每个角色的位置信息来解决这个问题。我占据了每个角色的x位置和y位置。并实现了一个简单的逻辑来区分单词。在此之前,我的单词分隔符只是“”(空格)。我又添加了一个逻辑,如果两个字符的X位置的差异超出某个值(这个值将是你的选择。)并且它在同一行,那就是相同的y坐标(不同的y坐标意味着一个新词),我把它们当作一个新词。通过这种逻辑,我能够解决表格内容,换行等问题。

link将帮助您通过PDFbox获取pdf中的字符位置。