Pdf轉(zhuǎn)Word用Python輕松搞定!
大家在日常的工作學(xué)習(xí)過(guò)程中,都會(huì)遇到一個(gè)問(wèn)題就是將pdf中的文本內(nèi)容轉(zhuǎn)化為word的形式,也就是從只讀變成可讀寫的形式。面對(duì)這種情況,大家大都采用網(wǎng)上的工具,但是網(wǎng)上的工具良莠不齊,很難達(dá)到我們的需求。
今天,小編就帶領(lǐng)大家利用python來(lái)實(shí)現(xiàn)如何將pdf的內(nèi)容轉(zhuǎn)化為word文檔。同時(shí)我們還將提取pdf中的圖片,保存到我們的指定文件夾內(nèi)。
01.文字的提取
我們首先要做的是對(duì)于pdf中文本的提取,如下圖所示:
Pdf中文字是只允許我們進(jìn)行只讀,但是無(wú)法進(jìn)行更改,所以我們要做的就是提取pdf中的文字信息,然后將提取到的文字寫入到word文件當(dāng)中,讓我們能夠進(jìn)行后續(xù)的改寫。對(duì)于文字的提取,我們利用的是pdfminer函數(shù)庫(kù),其主要的函數(shù)如下圖所示:
- 程序首先利用get_content_from_pdf函數(shù)來(lái)返回pdf中提取到的數(shù)據(jù);
 - 然后分別創(chuàng)建了PDFResourceManager對(duì)象來(lái)保存共享數(shù)據(jù)內(nèi)容,PDFPageAggregator對(duì)象來(lái)將資源對(duì)象處理成我們需要的格式,而PDFPageInterpreter則是用來(lái)處理頁(yè)面的內(nèi)容;
 - 程序中page_index用來(lái)幫助我們?cè)O(shè)定需要提取哪幾頁(yè)的內(nèi)容,對(duì)于我們需要提取的頁(yè)面,通過(guò)創(chuàng)建的PDFPageInterpreter對(duì)象來(lái)對(duì)頁(yè)面信息進(jìn)行解釋;
 - 最后通過(guò)PDFPageAggregator對(duì)象來(lái)對(duì)數(shù)據(jù)進(jìn)行處理;
 
這里的layout中就包含了頁(yè)面解析出來(lái)的各種對(duì)象。包括文本,圖片等信息。但是小編發(fā)現(xiàn),對(duì)于圖片的提取,pdfminer的效果很不好,所以后面針對(duì)于圖片的提取,小編采用的fitz庫(kù)進(jìn)行單獨(dú)的處理,取得很好的圖片提取效果。說(shuō)了這么多,我們先來(lái)看一下對(duì)于文本的處理結(jié)果。
我們的pdf是一個(gè)兩頁(yè)的pdf文檔,我們只讓程序去提取第一頁(yè)的文本,從上圖可以看出,程序完整的提取出第一頁(yè)的文本,沒(méi)有任何的錯(cuò)誤。
02.圖片的提取
有了對(duì)于文字的處理,接下來(lái)我們就來(lái)看一下如何提取pdf中的圖片,并將其保存到本地。對(duì)于圖片的提取,程序如下圖所示:
上述的程序中,我們利用fitz庫(kù)來(lái)提取pdf文檔中的對(duì)象,然后通過(guò)字符串匹配來(lái)判斷對(duì)象是不是圖片類型,如果不是的話,我們直接進(jìn)行跳過(guò)即可。
如果判斷對(duì)象是圖片類型的話,我們邊可以通過(guò)創(chuàng)建PixMap對(duì)象來(lái)提取圖片,并保存到我們指定的路徑下即可。結(jié)果如下圖所示:
上圖可以看出,我們正確的將圖片進(jìn)行了提取,從而達(dá)到了我們的圖片提取的目的,而且小編也嘗試過(guò)多個(gè)圖片的提取,同樣也是沒(méi)有任何壓力??梢栽诙潭痰膸酌雰?nèi)完成pdf文檔的所有圖片的提取。
以上就是小編為大家?guī)?lái)的pdf轉(zhuǎn)word的提取,我們經(jīng)過(guò)講解,不僅僅完成了對(duì)于pdf文檔中文本的提取,而且還完成了對(duì)于圖片的提取,從而大大的緩解我們工作的壓力,提高了工作的效率,大家也趕快下載源碼,應(yīng)用起來(lái)吧。




















 
 
 











 
 
 
 