代码小抄
# encoding:utf-8
import comtypes.client
import os
import argparse
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_file(powerpoint, input_file, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
output_file = os.path.join(output_folder, os.path.splitext(os.path.basename(input_file))[0] + ".pdf")
ppt_to_pdf(powerpoint, input_file, output_file)
if __name__ == "__main__":
# 设置命令行参数
# parser = argparse.ArgumentParser(description='Convert PowerPoint files to PDF.')
# parser.add_argument('input_file', help='The PowerPoint file to convert.')
# parser.add_argument('output_folder', help='The folder to save the PDF file.')
# args = parser.parse_args()
powerpoint = init_powerpoint()
# convert_file(powerpoint, args.input_file, args.output_folder)
convert_file(powerpoint, input_file, output_folder)
powerpoint.Quit()