2009-12-04 54 views
66

我正在尋找一個PDF庫,它將允許我從PDF文檔中提取文本。我看了PyPDF,這可以很好地從PDF文檔中提取文本。問題在於,如果文檔中有表格,則表格中的文本將與文檔文本的其餘部分一起提取。這可能會產生問題,因爲它會產生無用的文本部分,並且看起來亂碼(例如,將大量數字拼湊在一起)。高級PDF解析使用Python(提取沒有表等的文本):什麼是最好的圖書館?

我在找東西是更先進一點。我想從PDF文檔中提取文本,排除任何表格和特殊格式。有沒有這樣的圖書館?還是我不得不對輸出文本做一些後處理來擺脫這些部分?

回答

53

您還可以看看PDFMiner,Python中的另一個PDF解析器。

您可能會感興趣的PDFMiner的特殊性在於您可以控制在進行提取時如何重新組合文本部分。您可以通過指定線條,單詞,字符等之間的空白來實現這一點。因此,也許通過調整它可以實現您想要的(取決於文檔的可變性)。 PDFMiner也可以給你頁面中文本的位置,它可以通過對象ID和其他東西提取數據。所以挖掘PDFMiner並且很有創意!

但是,您的問題並不是一件容易解決的問題,因爲在PDF中,文本不是連續的,而是由絕大部分小字符組成的。 PDF的重點是保持佈局完整。它不是面向內容的,而是面向方面的。

+1

PDFMiner看起來很有趣。我能夠使用它的XML輸出,然後解析它,忽略我不想要的內容。這仍然需要大量的後處理,但現在它可能是最好的解決方案。謝謝。 – 2009-12-09 17:25:26

+0

@Etienne,如果PDF還有其他語言字符,可以使用它嗎? – 2014-07-06 20:10:38

+0

它應該與其他語言字符一起使用。 Docs提及:CJK語言和垂直編寫腳本支持。最好的方式來確定,測試它! – Etienne 2014-07-07 17:57:34

-1

這是一個困難的問題,因爲解決視覺上相似的PDF文件可能會因他們是如何產生的有大相徑庭的結構。在最糟糕的情況下,圖書館需要基本上像OCR一樣行事。另一方面,PDF可能包含足夠的結構和元數據,以便於刪除表格和數字,這些數據庫可以根據需要量身定製。

我很確定沒有開源工具可以解決各種PDF文件的問題,但我記得聽說過商業軟件聲稱完全按照你的要求去做。我相信你會在搜索時遇到他們。