windows下python批量转换ppt为图片和PDF

版权声明:经验之谈,不知能否换包辣条,另,转载请注明出处。 https://blog.csdn.net/zhezhebie/article/details/81565914

windows下面需要先安装:

comtypeswin32com模块

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()

猜你喜欢

转载自blog.csdn.net/zhezhebie/article/details/81565914