4

我正在制作一个允许使用 apache Solr 搜索 pdf 的应用程序。我无法在 pdf 中找到某些术语。

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

例子

 Column1 | Column2
 stack   | overflow

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

我一直在查看来源以了解导致问题的原因。但似乎 writePage 方法必须猜测空格。我无法真正改变它,因为它看起来很复杂。

是否有任何其他解决方案可以从带有列的 pdf 中获得良好的文本提取?

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

1 回答 1

0

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

链接将帮助您使用 PDFbox 从 pdf 中获取字符的位置。

于 2012-12-21T06:03:41.970 回答