再見PDF提取收費!我用100行Python代碼搞定!

大家在日常的工作和學習過程中,都少不了與PDF文件打交道,很多的小夥伴都面臨着將PDF文件中的文字、圖片和表格數據提取出來的問題。能夠對PDF文件中的文字、表格等數據進行編輯,網上現存的PDF提取的軟件都需要付費操作

小編今天就利用百行的python程序,來提取PDF文件中的文字、圖片和表格數據。一起來看看吧。

1. python庫版本介紹

本次程序涉及到多個python第三方庫與python3的內置庫,而且不同的python庫版本對於程序的兼容性不一致,因此我們首先來介紹一下使用到的python第三方庫版本。

  • PySimpleGUI 4.38.0

  • pdfminer3k 1.3.4

  • pdfplumber 0.5.27

  • fitz 0.0.1.dev2

  • pandas 1.1.3

02.程序講解

看過視頻之後,接下來就進行程序的展示,程序的展示主要分爲以下的四個方面,分別是:

  • PDF提取文字

  • PDF提取圖片

  • PDF提取表格

  • 交互界面的製作

03.PDF提取文字

PDF中文字是隻允許我們進行只讀,但是無法進行更改,所以我們要做的就是提取PDF中的文字信息,然後將提取到的文字寫入到word文件當中,讓我們能夠進行後續的改寫。對於文字的提取,我們利用的是pdfminer函數庫,其程序如下圖所示:

程序首先創建了PDFParser對象來進行PDF文檔的分析,PDFDocument對象來將資源對象處理成我們需要的格式,PDFResourceManager對象用來保存共享數據內容;而PDFPageInterpreter則是用來處理頁面的內容。程序中通過for循環來針對PDF文件中的每一頁內容進行處理,對於每一頁的內容,通過layout來存儲頁面解析出來的各種對象;包括文本,圖片等信息。但是小編髮現,對於圖片的提取,pdfminer的效果很不好,所以後面針對於圖片的提取;小編採用的fitz庫進行單獨的處理,取得很好的圖片提取效果。這裏,我們先來看一下對於文本的處理結果。

我們的pdf是一個兩頁的pdf文檔,我們只讓程序去提取第一頁的文本,從上圖可以看出,程序完整的提取出第一頁的文本,沒有任何的錯誤。

04.PDF提取圖片

對於文字的提取處理完畢後,接下來我們就來看一下如何提取pdf中的圖片,並將其保存到本地。對於圖片的提取,程序如下圖所示:

上述的程序中,利用fitz庫來提取PDF文檔中的對象,然後通過字符串匹配來判斷對象是不是圖片類型,如果不是的話,我們直接進行跳過即可。如果判斷對象是圖片類型的話,我們邊可以通過創建PixMap對象來提取圖片,並保存到我們指定的路徑下即可。結果如下圖所示:

上圖可以看出,程序正確的將圖片進行了提取,從而達到了我們的圖片提取的目的,可以在短短的幾秒內完成pdf文檔的所有圖片的提取。

05.PDF提取表格

對於PDF中表格的提取,利用的是pdfplumber庫,程序如下圖所示:

程序中,通過pdfplumber庫讀取PDF文件,針對於文件中的每一頁,提取表格數據,然後通過pandas將表格數據保存到根目錄下的tables文件夾中,結果如下圖所示。

通過結果的展示,可以看出,對於PDF中的表格數據,程序能夠做到較爲準確的提取。

06.交互界面的製作

交互界面的製作,程序利用的是PySimpleGUI庫進行處理,其部分程序如下圖所示。

PySimpleGUI庫集合了tkinter,wxpython、PyQt等GUI庫的優勢,其最重要的特點是用簡單少量的代碼就可以製作出精美的界面。程序執行的可視化界面如下圖所示。


07.軟件打包

爲了方便大家的使用,小編將程序打包爲exe文件,需要注意的是,爲了減少大家對於exe文件執行時的報錯,需要在win10(64bit)的環境下進行運行。大家可以下載exe文件,直接進行pdf文件內容的提取。

【菜鳥學Python】累計原創近400篇趣味乾貨(爬蟲,數據分析,算法,面試指南,原創趣味實戰,Python遊戲,機器學習),歡迎一起學Python,交流指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章