python转换word,excel,ppt为pdf和将ppt文件转换为jpg图片

637 阅读1分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 python 将 word转换为pdf

下面的代码中,将自己的word 文件的路径改成自己的目录,然后改一下输出的pdf 的路径和文件名。代码运行后就会生成对应的文件。

from win32com import client

w = client.Dispatch("Word.Application")
doc = w.Documents.Open('d:\temp\a.docx')
doc.ExportAsFixedFormat('D:\temp\word.pdf', client.constants.wdExportFormatPDF)
w.Quit()

python 将 excel转换为pdf

下面的代码中,将自己的excel 文件的路径改成自己的目录,然后改一下输出的pdf 的路径和文件名。代码运行后就会生成对应的文件。

from win32com import client

xlApp = client.Dispatch("Excel.Application")
books = xlApp.Workbooks.Open('d:\temp\test.xlsx')
books.ExportAsFixedFormat(0, 'D:\temp\excel.pdf')
xlApp.Quit()

python 将 ppt转换为pdf

下面的代码中,将自己的ppt 文件的路径改成自己的目录,然后改一下输出的pdf 的路径和文件名。代码运行后就会生成对应的文件。

from win32com import client

p = client.Dispatch("PowerPoint.Application")
ppt = p.Presentations.Open('d:\temp\2017-08-04 Cirrus V3.0 Request.pptx', False, False, False)
ppt.ExportAsFixedFormat('D:\temp\ppt.pdf', 2, PrintRange=None)
p.Quit()

python将 ppt文件转换为jpg图片

下面的代码中,path 代码ppt 的文件路径,而pa 是 输出图片的文件夹名称。

import comtypes.client
import os
import win32
import glob


if __name__ == '__main__':
    path = 'D:/python/Qt/images/1.ppt'
    pa = "D:/python/Qt/images/1"
    fileNames = glob.glob(pa + r'*')   
    for fileName in fileNames:     #将pa 文件夹中的文件删除。
        os.remove( fileName)
    powerpoint = comtypes.client.CreateObject("kwpp.Application") #使用wps的接口
    powerpoint.Visible = 1 
    ppt = powerpoint.Presentations.Open(path)
    # 另存为
    ppt.SaveAs(pa + '.jpg', 17)
    # 退出
    ppt.Close()
    powerpoint.Quit()

运行后将ppt的每一页转化为图片,打开对应的文件夹就能看到代码转化后的 PPT的图片,如下图所示:

将当前文件夹所有ppt文件转换为pdf跟图片

将.py 代码文件的当前文件夹中的所有ppt 文件转化为 pdf 和 图片

import comtypes.client
import win32
import os

def init_powerpoint():
    #powerpoint = comtypes.client.CreateObject("Powerpoint.Application")  #使用office的接口电脑要安装有office的软件
    powerpoint = comtypes.client.CreateObject("Kwpp.Application")  #使用wps的接口运行比较流畅。电脑要安装有wps的软件
    powerpoint.Visible = 1
    return powerpoint

def ppt_to_pdf(powerpoint, inputFileName, outputFileName):
    if outputFileName[-3:] != 'pdf':
        outputFileName = outputFileName[0:-4] + ".pdf"
        print(outputFileName)
    print(inputFileName)
    deck = powerpoint.Presentations.Open(inputFileName)
    deck.SaveAs(outputFileName, 32) #  32   for ppt to pdf
    deck.SaveAs(inputFileName.rsplit('.')[0] + '.jpg', 17)
    
    deck.Close()

def convert_files_in_folder(powerpoint, folder):
    files = os.listdir(folder)
    print(files)    #输出可以了解程序的运行过程。
    pptfiles = [f for f in files if f.endswith((".ppt", ".pptx"))]
    print(pptfiles)
    for pptfile in pptfiles:
        fullpath = os.path.join(cwd, pptfile)
        print(fullpath)
        ppt_to_pdf(powerpoint, fullpath, fullpath)

if __name__ == "__main__":
    powerpoint = init_powerpoint()
    print(powerpoint)
    cwd = os.getcwd()
    print(cwd)
    convert_files_in_folder(powerpoint, cwd)
    powerpoint.Quit()