Python中把PDF轉成單個或多個圖片
現在有很多在線的pdf轉圖片工具,但是有些數據是不想聯網,更不想把數據上傳到別人的服務器進行轉換,那么怎么辦呢?正常的Java編寫一個耗費時間;現在不是有Python嗎,人家有庫,用起來快有方便,那我們就直接拿來用就好了,多舒服;
協議:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/
版權聲明:本文為原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
一、安裝Python環境
這一步不想說了,這個比較簡單。記得配置一下環境變量。不然運行腳本比較費勁!
二、Python的PDF轉PNG代碼
注意:第一步要安裝庫:pip install pymupdf
#安裝庫 pip install pymupdf
import os
import fitz
pdf_dir=[]
def get_file():
docunames = os.listdir()
for docuname in docunames:
if os.path.splitext(docuname)[1]=='.pdf': #目錄下包含.pdf的文件
pdf_dir.append(docuname)
def conver_img():
for pdf in pdf_dir:
doc = fitz.open(pdf)
#pdf_name = os.path.splitext(pdf)[0]
pdf_name = os.path.splitext(pdf)[0]
print("====================================")
print("開始轉換%s.PDF文檔"%pdf_name)
print("====================================")
print("共",doc.pageCount,"頁")
for pg in range(0,doc.pageCount):
print("\r轉換為圖片",pg+1,"/",doc.pageCount,end=";")
page=doc[pg]
rotate = int(0) #旋轉角度
# 每個尺寸的縮放系數為2,這將為我們生成分辨率提高四倍的圖像
zoom_x=2.0
zoom_y=2.0
print("")
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
pm= page.getPixmap(matrix=trans, alpha=False)
pm.writePNG(r'./tu'+str(pdf_name)+'-'+'{:02}.png'.format(pg))
if __name__=='__main__':
get_file()
conver_img()
腳本和PDF要在同一個文件夾下。該腳本會對文件夾下的所有PDF進行轉換。