一、客户要求将PPT的前3张转成图片,这里是先转成PDF 再将前3页转成图片 (windows可用)
环境:python2.7,pywin32==224,pyMuPDF1.16.2
import os
from win32com import client
import pythoncom
def FilePreview(file_link,file_name):
path = os.getcwd()
pythoncom.CoInitialize() #没这个的话会报错
p = client.Dispatch(u"PowerPoint.Application")
ppt = p.Presentations.Open(file_link, False, False, False)
filepath = os.path.join('/static/myfile/', file_name+'.pdf')
ppt_link=path+filepath
ppt.ExportAsFixedFormat(ppt_link, 2, PrintRange=None)
p.Quit()
img_list=PDFSwitchImg(ppt_link)
ppt.Close() #关闭ppt
os.remove(ppt_link) #将生成的PDF删除
return img_list
"""需要安装
pip install fitz
pip install pyMuPDF
"""
import fitz
import glob
import time
def PDFSwitchImg(filename):
"""PDF转图片"""""
pdffile = glob.glob(filename)[0]
doc = fitz.open(pdffile)
new_time= int(round(time.time() * 1000))
img_list=[]
for pg in range(0, 3):
page = doc[pg]
zoom = int(1000)
rotate = int(0)
trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=0) # alpha = 0
img_link='/static/upload/fileimg/%s_%s.png'% (new_time,pg+1)
pm.writePNG('.'+img_link)
img_list.append(img_link)
return img_list
img_list=FilePreview(E:/xxxx/xxx.ppt,xxx)
PDF转图片可以看这个 https://blog.csdn.net/QQ1752506968/article/details/101015294