版权声明:经验之谈,不知能否换包辣条,另,转载请注明出处。 https://blog.csdn.net/zhezhebie/article/details/81565914
windows下面需要先安装:
comtypes和win32com模块
pip3 install win32com comtypes
python3.6批量将ppt转换为pdf:
import win32com
import win32com.client
import sys
ppt_root = jpg_root =sys.path[0]+"\\"
def ppt2png(pptFileName):
powerpoint = win32com.client.Dispatch('PowerPoint.Application')
powerpoint.Visible = True
ppt_path = ppt_root + pptFileName
outputFileName = pptFileName[0:-4] + ".pdf"
ppt = powerpoint.Presentations.Open(ppt_path)
#保存为图片
ppt.SaveAs(jpg_root + pptFileName.rsplit('.')[0] + '.jpg', 17)
#保存为pdf
ppt.SaveAs(jpg_root + outputFileName, 32) # formatType = 32 for ppt to pdf
# 关闭打开的ppt文件
ppt.Close()
# 关闭powerpoint软件
# powerpoint.Quit()
import os
for fn in (fns for fns in os.listdir(ppt_root) if fns.endswith(('.ppt', 'pptx'))):
ppt2png(fn)
另外一种方法:
import comtypes.client
import os
def init_powerpoint():
powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
powerpoint.Visible = 1
return powerpoint
def ppt_to_pdf(powerpoint, inputFileName, outputFileName, formatType = 32):
if outputFileName[-3:] != 'pdf':
outputFileName = outputFileName + ".pdf"
deck = powerpoint.Presentations.Open(inputFileName)
deck.SaveAs(outputFileName, formatType) # formatType = 32 for ppt to pdf
deck.Close()
def convert_files_in_folder(powerpoint, folder):
files = os.listdir(folder)
pptfiles = [f for f in files if f.endswith((".ppt", ".pptx"))]
for pptfile in pptfiles:
fullpath = os.path.join(cwd, pptfile)
ppt_to_pdf(powerpoint, fullpath, fullpath)
if __name__ == "__main__":
powerpoint = init_powerpoint()
cwd = os.getcwd()
convert_files_in_folder(powerpoint, cwd)
powerpoint.Quit()