大家有時候會不會有 PDF 轉 圖片 或是 圖片 合成 PDF 的需求,尤其是一些掃描版的手稿、畫冊、字帖一類的的文檔。 當大家苦于不知道找什么在線應用或軟件來進行轉換的時候,我們用 Python幾行代碼就可以實現 PDF轉圖片的需求了。 今天小圈給大家安利3個可以實現PDF轉圖片的Python庫,不要 so easy 了!
一、PyMuPDF1、PyMuPDF簡介該三方庫從命名形式中就可以看出,PyMuPDF 是 MuPDF 的Python接口形式。 而 MuPDF 是一個輕量級的 PDF、XPS和電子書查看器。MuPDF 由軟件庫、命令行工具和各種平臺的查看器組成。這個工具很小,速度很快,而且很完整。它支持多種文檔格式,如PDF、XPS、OpenXPS、CBZ、EPUB和FictionBook 2。 使用PyMuPDF,你可以訪問擴展名為“.pdf”、“.xps”、“.oxps”、“.cbz”、“.fb2”或“.epub”。此外,大約10種流行的圖像格式也可以像文檔一樣處理“.png”,“.jpg”,“.bmp”,“.tiff”等。 2、安裝PyMuPDF 可以通過Python pip 官方方式安裝,也可以下載離線 wheels包進行安裝。 支持平臺:Windows、Linux、Mac OS pip安裝命令: pip install PyMuPDF 導入命令: import fitz
3、使用方法![]() 驗證pymupdf 模塊是否安裝成功 import fitzprint(fitz.__doc__) 輸出: PyMuPDF 1.21.0: Python bindings for the MuPDF 1.21.0 library.Version date: 2022-11-08 00:00:01.Built for Python 3.8 on darwin (64-bit). 加載PDF文件 # 加載pdf 文件doc = fitz.open('/test/demo.pdf') 獲取Document 屬性和方法 # 1、獲取pdf 頁數pageCount = doc.page_countprint('pdf 頁數: ', pageCount) # 2、獲取pdf 元數據metaData = doc.metadataprint('pdf 元數據: ', metaData) # 3、獲取pdf 目錄信息toc = doc.get_toc()print('pdf 目錄:', toc) Page 加載方法 page = doc.load_page(pno) # 加載每頁數據page = doc[pno] # 加載每頁數據 頁面展示/頁面圖像保存到文件中 # Page 頁面-光柵圖像pix = page.get_pixmap()print('打印頁面圖像對象:', pix)# 保存光柵圖像圖像,需要依賴第三方框架:Pillowpix.pil_save('page-%i.png' % page.number) PDF保存為圖片完整代碼: import osimport fitz def covert2pic(file_path, zoom, png_path): doc = fitz.open(file_path) total = doc.page_count for pg in range(total): page = doc[pg] zoom = int(zoom) # 值越大,分辨率越高,文件越清晰 rotate = int(0) trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).prerotate(rotate) pm = page.get_pixmap(matrix=trans, alpha=False) if not os.path.exists(png_path): os.mkdir(png_path) save = os.path.join(png_path, '%s.png' %(pg+1)) pm.save(save) doc.close()if __name__ == '__main__': pdfPath = 'demo.pdf' imagePath = './imgs' covert2pic(pdfPath, 200, imagePath) 效果: ![]() PyMuPDF 還提供了豐富的功能來操作PDF文件,如讀取、寫入、分割、合并、旋轉、裁剪等。此外,它還支持加密和解密PDF文檔,以及提取文本、圖像和元數據等信息。 至于其他進階用法,小圈下次專門寫個文章進行分享,有興趣的同學可以先去使用嘗試。 二、pdfplumber1、pdfplumber簡介pdfplumber 也是一個可以處理pdf格式信息的庫,可以查找關于每個文本字符、矩陣、和行的詳細信息,也可以對表格進行提取并進行可視化調試。 主要功能:
最終返回的是一個 pdfplumber.Page對象。 2、安裝跟PyMuPDF一樣,支持使用pip安裝,安裝命令: pip install pdfplumber 導入命令: import pdfplumber 3、使用方法pdfplumber有2個基礎類:PDF和Page PDF用來處理整個文檔,Page用來處理整個頁面
讀取pdf文件,并輸出pdf文件的基礎信息 import pdfplumber# 打開pdf文件,有密碼加入password參數pdf_info =pdfplumber.open('demo.pdf')meta_data = pdf_info.metadata # pdf的基礎信息page_con = len(pdf_info.pages) # 獲取pdf的總頁數print('pdf文件的基礎信息:\n', meta_data)print('pdf共%s頁' % page_con) pdfplumber轉圖片完整代碼: import pdfplumberdef covert2pic_v2(file_path, png_path): with pdfplumber.open(file_path) as pdf: # pdf.pages默認為pdf全部頁 # 可通過切片的方式選擇需要轉換的1頁或幾頁,如前2頁:pdf.pages[:2] for i, page in enumerate(pdf.pages[:2]): im = page.to_image(resolution=150) # 保存 save = os.path.join(png_path, '%s.png' % (int(i) + 1)) im.save(save) print('----分割線,第%d頁----' % (int(i) + 1)) 效果跟PyMuPDF一樣,這里就不展示了。 三、Python-Office1、Python-Office簡介Python-office 是一個Python 自動化辦公第三方庫,能解決大部分自動化辦公的問題。而且每 個功能只需一行代碼,不需要小白用戶學習 Python 知識,做到了真正的開箱即用。 2、安裝安裝命令 pip install python-office 有時候易安裝失敗,小圈就遇到了,所以該庫只能簡單介紹下,請朋友們見諒哈!偷下懶! 3、使用方法# 導入這個庫:python-office,簡寫為officeimport office# 一行代碼,實現轉換office.pdf.pdf2imgs( pdf_path='demo.pdf', out_dir='./imgs')# 參數說明:# pdf_path = 你的PDF文件的地址 # out_dir = 轉換后的圖片存放地址,可以不填,默認是PDF的地址 1行Python代碼,實現PDF轉圖片,直接解決了!是不是還沒體驗夠就完成了! 以上就是小編推薦的3款Python三方庫,可快速實現PDF轉圖片的功能,有興趣的同學可以下載食用!! |
|