PPT转换PDF后转成图片

一、客户要求将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 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章