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