2012-12-20 44 views
2

我正在製作一個應用程序,它允許使用apache Solr搜索pdf。我無法在pdf中查找某些術語。如何避免pdfbox附加單詞

我注意到列中的單詞被追加了。

Column1 | Column2 
stack | overflow 

這裏PdftextStripper有時會給予我的StackOverflow作爲提取的文本。這會導致solr中的不良tokinazation,從而無法找到該術語。 (是的,我知道我可以使用通配符,但這不適用於短語查詢)

我一直在尋找來源,看看是什麼原因造成的問題。但是,似乎writePage方法必須猜測空格。因爲它看起來非常複雜,所以我無法改變這一點。

是否有任何其他解決方案可以使用列從pdf中獲取良好的文本提取?

  • 也許某種轉換其他程序。
  • 也許補丁爲pdfbox。
  • 是的我見過類似的 問題,但他們主要處理提取的順序(這在 我的情況並不重要)。

回答

0

我在用PDFbox提取文本時遇到同樣的問題。我通過獲取每個角色的位置信息解決了這個問題。我把每個角色的x位置和y位置。並實現了一個簡單的邏輯來區分單詞。在此之前,我的詞定義只是「」(空間)。我又添加了一個邏輯,即如果兩個字符的X位置的差異超過了某個值(這個值將是您的選擇),並且它在同一行中,即相同的y座標(不同的y座標意味着新詞),我把它們當作一個新詞來對待。有了這個邏輯,我能夠解決表格內容,新行等問題。

link將幫助您獲得PDF格式的PDF字符的位置。

+0

K我會試驗一下,看看它是否有效。在一個新單詞的2個字符之間你有多少個像素? – DavidVdd

+0

寫頁面相當複雜... – DavidVdd

+0

花了3或5分。 – Neeraj