Python自动化办公word、ppt转pdf

Python自动化办公,在工作的过程中偶尔会遇到大量的word、ppt转pdf的情况,针对这情况,归纳了一份Python使用,希望可以加大办公的效率!

import os
import comtypes.client
def get_path_for_word():
    # 获取当前运行路径
    path = os.getcwd()
    print('当前路径:' + path)
    # 获取所有文件名的列表
    filename_list = os.listdir(path)
    # 获取所有word文件名列表
    wordname_list = [filename for filename in filename_list \
                     if filename.endswith((".doc", ".docx"))]
    for wordname in wordname_list:
        # 分离word文件名称和后缀,转化为pdf名称
        print('获取文件列表:' + wordname)
        pdfname = os.path.splitext(wordname)[0] + '.pdf'
        # 如果当前word文件对应的pdf文件存在,则不转化
        if pdfname in filename_list:
            continue
        # 拼接 路径和文件名
        wordpath = os.path.join(path, wordname)
        pdfpath = os.path.join(path, pdfname)
        #生成器
        yield wordpath,pdfpath
        
        
def get_path_for_ppt():
    # 获取当前运行路径
    path = os.getcwd()
    print('当前路径:' + path)
    # 获取所有文件名的列表
    filename_list = os.listdir(path)
    # 获取所有word文件名列表
    wordname_list = [filename for filename in filename_list \
                     if filename.endswith((".ppt", ".pptx"))]
    for wordname in wordname_list:
        # 分离word文件名称和后缀,转化为pdf名称
        print('获取文件列表:' + wordname)
        pdfname = os.path.splitext(wordname)[0] + '.pdf'
        # 如果当前word文件对应的pdf文件存在,则不转化
        if pdfname in filename_list:
            continue
        # 拼接 路径和文件名
        wordpath = os.path.join(path, wordname)
        pdfpath = os.path.join(path, pdfname)
        #生成器
        yield wordpath,pdfpath
        
def convert_word_to_pdf():
    word = comtypes.client.CreateObject("Word.Application")
    word.Visible = 0
    for wordpath,pdfpath in get_path_for_word():
        newpdf = word.Documents.Open(wordpath)
        newpdf.SaveAs(pdfpath, FileFormat=17)
        newpdf.Close()
    print('word转换pdf结束!')
        
def convert_ppt_to_pdf():
    # ppt转化为pdf
    FileFormat=32
    ppt = comtypes.client.CreateObject("Powerpoint.Application")
    ppt.Visible = 1
    for wordpath,pdfpath in get_path_for_ppt():
        newpdf = ppt.Presentations.Open(wordpath)
        newpdf.SaveAs(pdfpath, FileFormat)
        newpdf.Close()
    print('ppt转化为pdf结束!')
 
if __name__ == "__main__":
    convert_word_to_pdf()
    #convert_ppt_to_pdf()

后续:pdf、word、ppt的相互转换~

猜你喜欢

转载自blog.csdn.net/The_dream1/article/details/123756096