2011-06-20 97 views

回答

3

經過查找(很難找到)PDFBox文檔後,我發現this little gem

顯然其中一個例子顯示瞭如何去做你所要求的一切。基本上,您將子類PdfTextStripper並覆蓋processTextPosition方法。在那裏,您可以查詢TextPosition以瞭解您需要的任何信息。

對於未來的參考,你可以在這裏找到的Javadoc:http://pdfbox.apache.org/apidocs/index.html

+0

這個小寶石不起作用。 –

+0

它的工作原理,但你需要從PDFBox來源編譯它 – lauhub

3

其中一個用於從PDF提取文本的最好的東西是TET, the text extraction toolkit。 TET是PDFlib.com系列產品的一部分。

PDFlib.com是Thomas Merz's(「PostScript和PDF聖經」)公司的作者。

TET的第一個化身是a library。那個人可以做你想做的一切,包括關於頁面上每個文本元素的位置信息。哦,它也可以提取圖像。它重組+合併碎片成碎片的圖像。

pdflib.com還提供了此技術的另一個化身TET plugin for Acrobat。顯然你也需要使用Acrobat來使用它。第三個化身是PDFlib TET iFilter。這是用戶工作站的獨立工具。這兩種都是免費的(如啤酒),用於私人非商業用途。

最後,TET還帶有一個命令行界面。

TET真的很強大。比Adobe自己的文本提取更好。它爲我提取了其他工具(包括Adobe's)只會吐出垃圾的文本。

幾個月前,我測試了他們的桌面獨立工具,他們在他們的網頁上說的是真的。它有一個非常好的命令行。我的一些「有問題的」PDF測試文件處理工具讓我非常滿意。

這件事是我對每一個複雜和具有挑戰性的PDF文本提取要求的建議。

TET簡直太棒了。它檢測表格。在表格中,它標識跨越多列的單元格。它分別標識每個表格單元的表格行和內容。它可以很好地處理連字符:刪除連字符並恢復完整的單詞。它支持非ASCII語言(包括CJK,阿拉伯語和希伯來語)。當遇到連字時,它恢復原始字符...

試試看。

+0

這聽起來真是令人印象深刻。 「太好了,甚至是真的」。我很想深入瞭解它,看看有多少種方法可以打破它。 > :)我知道這是*可能*,我也知道它有多難。 –

+0

@MarkStorer:我很好奇 - 你有沒有機會在TET上打個分? –

+0

不是。剛剛過去一年,我已經退出了PDF格式的業務。 –

1

Quick PDF Library中提取選項3或4的GetPageText函數返回包含文本(單個單詞或一段文本)和相關字體名稱,文本顏色,文本大小和文本的所選頁面的CSV字符串在頁面上的下屬。

注意:這是一個商業圖書館,我爲銷售它的公司工作。

+2

感謝您對貴公司和產品的誠實。 –