ppt批处理转pptx/pdf

syan 发布于 2019-12-19 4696 次阅读


为了让iPad能够较方便地开启PPT文件,被迫写一个帮助ppt进行高速咏唱的批处理程序

import comtypes.client
import os

# 创建ppt对象
def init_powerpoint():
    powerpoint = comtypes.client.CreateObject('Powerpoint.Application')
    powerpoint.Visible = 1
    return powerpoint

# 打开ppt,更换后缀为pptx
def ppt_to_pptx(powerpoint, inputFileName):
    if(inputFileName[-3:] == 'ppt'):
        outputFileName = inputFileName[:-4] + '.pptx'
        app = powerpoint.Presentations.Open(inputFileName)
        app.SaveAs(outputFileName)
        app.Close()

# 打开文件,输出pdf,默认格式化32
def ppt_to_pdf(powerpoint, inputFileName, formatType=32):
    if(inputFileName[-3:] == 'ppt'):
        outputFileName = inputFileName[:-4] + ".pdf"
        app = powerpoint.Presentations.Open(inputFileName)
        app.SaveAs(outputFileName, formatType)
        app.Close()
    if(inputFileName[-4:] == 'pptx'):
        outputFileName = inputFileName[:-5] + ".pdf"
        app = powerpoint.Presentations.Open(inputFileName)
        app.SaveAs(outputFileName, formatType)
        app.Close()

# 对所有ppt类型文件应用
def switch_the_fucking_ppt(powerpoint, folder, mod):
    files = os.listdir(folder)
    ppts = [f for f in files if f.endswith((".ppt", ".pptx"))]
    for ppt in ppts:
        path = os.path.join(folder, ppt)
        if mod == 1:
            ppt_to_pptx(powerpoint, path)
        elif mod == 2:
            ppt_to_pdf(powerpoint, path)
        else:
            return

if __name__ == "__main__":
    folder = input('请输入文件夹地址,如\'C:\\Users\\Syan\\Desktop\\大学物理\':\n')
    mod = int(input('请输入要执行的操作:\n1、ppt2pptx\n2、ppt/pptx2pdf\n'))
    powerpoint = init_powerpoint()
    switch_the_fucking_ppt(powerpoint, folder, mod)
    powerpoint.Quit()

参考了《Python批量将ppt转换为pdf》,感谢一下作者

百无一用是书生
最后更新于 2019-12-19