Python實現讀取PDF文件案例
最近有一個本地客戶需求是讀取PDF文件,然後做自動化處理。這其實是一種典型的RPA自動化需求,簡單而言就是模擬人工來操作文件,網頁,客戶端系統等,只要操作規則定義清楚,就可以實施這種RPA應用,而如果這種操作較為頻繁(大量重複),則這種RPA自動化應用實施的ROI(投資回報率)會非常顯著。
事實上利用RPA軟體可以較為容易地實現這類操作,例如AutomationAnywhere,參考此前我寫的一篇文章《RPA軟體之AutomationAnywhere研究》,在AA里就有這類操作PDF文件的標準控制項和應用場景:
(二十八)PDFIntegration(PDF文件操作)
PDF To Image
Extract From Fields
Extract Text
Merge Documents
Split Document
Encrypt Document
Decrypt Document
而現在這個本地客戶需求相對簡單,並且在未來有進一步和其他應用集成的可能性,也就是開發一個端到端的自動化應用,因此用AA來實現這個功能就有點大材小用了,而用Python寫一個自開發的RPA應用就可以支持這個功能,而在Python來操作PDF文件有多種類庫,分別研究了一下,發現對於英文PDF文件支持最好的是pyPDF2類庫,而對於多語言PDF文件支持最好的則是本文這個案例種用到的pdfminer類庫,這兩個類庫的使用方法其實都很簡單。
不說廢話,直接上代碼:
準備了一個簡單的PDF文件做測試:
執行程序,結果如下:
當然了,不管是pyPDF2類庫(只支持英文PDF文件),還是pdfminer類庫(支持多語言PDF文件),都有一個最大的局限性,那就是只能用來讀取電腦生成的PDF文件的內容,而不能用來處理掃描件PDF,對於手寫字也不能支持,要讀取這類PDF掃描件就要用到另外一種技術,那就是——OCR。在後面我會專門寫一篇文章來介紹一個如何利用tensorflow來實現OCR讀取PDF掃描件的案例。
RPA應用實施有兩個階段,第一個階段是傳統RPA(Tranditional RPA),而第二階段是認知RPA(Cognitive RPA),認知RPA比傳統RPA更高級的一點就是引入了AI認知服務,使原來無法操作的非結構化數據可以被操作,例如OCR,人臉識別,聲音識別等等。傳統RPA則是基於對結構化數據的操作,包括excel文件,網頁數據等。當然了,對於電腦生成的PDF文件的讀取和自動化操作,還可以算作是傳統RPA實施的領域,而對於PDF掃描件的讀取和自動化操作,則毫無疑問地可以歸於認知RPA的範圍了。
※Python爬蟲學習Scrapy之Spiders
※Python高手和Python菜鳥的區別是什麼?
TAG:Python |