2017-09-15 87 views
-4

當從PDF中讀取文本時,它在Python3中如何識別?我想知道Python3如何「看到」它,以便我可以告訴它需要查找,保存什麼信息等。如何從Python中的「可見」PDF中提取文本?

我的最終目標是閱讀PDF,從讀取的信息中查找某些文本,然後創建一個新的僅包含符合標準的信息行。作爲一個粗略的例子(僞代碼):

-Read the PDF,if column 4 has a'x'in,copy the ROW to a separate file(skip,if it does not contain'x'),繼續直到PDF結束。

-Read NEW doc,如果第1列有'n',請保留行,否則刪除它。

我知道這不是最理想的做法,我計劃在稍後修復該部分。

+1

你自己做了什麼研究嗎? http://www.unixuser.org/~euske/python/pdfminer/index.html –

+1

您應該首先閱讀您正在使用的PDF工具的源代碼(如果可用)。看看[Stack Overflow用戶需要多少研究工作?](http://meta.stackoverflow.com/q/261592/7432) –

回答

-1

從一般意義上講,這是非常非常困難的。 PDF格式允許以任何順序在頁面上的任何位置「繪製」個人字或字母。

這意味着您看到的「段落」在PDF文件中可能存在或不存在任何連續的含義。 PDF閱讀器(Acrobat等)僅定位每個單詞/字母,使它們看起來全部在一個段落中。

所以,你可能呈現的頁面,然後逐個像素看看,以確定如何排列文本。 (這就是爲什麼如果你嘗試簡單的剪切& PDF的粘貼,有時會出現混亂。)

好消息是,你通常會得到不錯的訂購(PDF渲染器不會故意有意識地混亂的文本)。這就是現在的工具,如pdfminer的工作。

的表類似:看到他們爲表,PDF把它們看作一系列具有同一水平的細胞失調的,但不同的垂直偏移(不一定在文件中的順序相同。)

正如其他人所建議的,查看pdfminer,閱讀PDF規範,調查如何格式化您的 PDF文件。

+0

在寫這個問題之前,我看了一下PDF礦工,並試着去看其他問題以及。當你甚至不確定什麼是什麼時,很難去尋找某些東西。人們在這裏很快判斷並假設。謝謝pbuck的解釋。不知道它讓我更接近實際的代碼,但我確實學到了一些東西 – platypus87