昨天在公司需要把一份PDF格式認證表轉換為圖片JPEG格式,所以在網上查詢了一些與此相關的python庫,最后看網上大多都是使用Wand和PyMuPDF,在安裝了Wand庫后,導入相應的模塊后報錯了,好像要安裝什么依賴項,最后選擇了PyMuPDF,下載庫文件就可以直接用。
1、下載PyMuPDF庫文件
pip install PyMuPDF
2、源文件貼上
import os import fitz # 導入的是fitz if __name__ == '__main__': base_path = input("請輸入要轉換的文件路徑:") # 輸入要轉換的PDF所在的文件夾 filenames = os.listdir(base_path) # 獲取PDF文件列表 for filename in filenames: full_path = os.path.join(base_path, filename) # 拼接,得到PDF文件的絕對路徑 print(full_path) doc = fitz.open(full_path) # 打開一個PDF文件,doc為Document類型,是一個包含每一頁PDF文件的列表 rotate = int(0) # 設置圖片的旋轉角度 zoom_x = 2.0 # 設置圖片相對於PDF文件在X軸上的縮放比例 zoom_y = 2.0 # 設置圖片相對於PDF文件在Y軸上的縮放比例 trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate) print("%s開始轉換..." % filename) if doc.pageCount > 1: # 獲取PDF的頁數 for pg in range(doc.pageCount): page = doc[pg] # 獲得第pg頁 pm = page.getPixmap(matrix=trans, alpha=False) # 將其轉化為光柵文件(位數) new_full_name = full_path.split(".")[0] # 保證輸出的文件名不變 pm.writeImage("%s%s.jpg" % (new_full_name, pg)) # 將其輸入為相應的圖片格式,可以為位圖,也可以為矢量圖
# 我本來想輸出為jpg文件,但是在網頁中都是png格式(即調用writePNG),再轉換成別的圖像文件前,最好查一下是否支持 else: page = doc[0] pm = page.getPixmap(matrix=trans, alpha=False) new_full_name = full_path.split(".")[0] pm.writeImage("%s.jpg" % new_full_name) print("%s轉換完成!" % filename)
3、PyMuPDF文檔