python处理ppt文件,转换成图片或者pdf文件(获取目录下所有文件信息、文件名称分割、文档操作)

把PPT每一页截图到公众号里推送可是个体力活,那就用python脚本去分解ppt,保存每一个为一张图片好了

需要用到“win32com.client”库

 

import win32com.client
import os
import sys

 

第一步,定义读取ppt文件路径和输出路径

path = os.path.abspath(os.path.dirname(sys.argv[0]))
#PPT存放路径
ppt = path + '/' + "test.ppt"
#转换成图片后存放路径
filename = path + '/' + '001.jpg'

 

第二步,ppt路径和存放路径传到转换方法中执行

def ppt2png(ppt, filename):
    # 打开PPT程序
    ppt_app = win32com.client.Dispatch('PowerPoint.Application')
    # 打开ppt文件(后台模式)
    ppt = ppt_app.Presentations.Open(ppt)
    # 打开的PPT另存为图片文件。17数字是ppt转图片,32数字是ppt转pdf。
    ppt.SaveAs(filename, 17)
    print("导出成png格式成功!!!")
    # 退出PPT程序
    ppt_app.Quit()
ppt2png(ppt, filename)

 

其实,就是这么简单。执行后,会在脚本和目录下创建一个文件夹,里面存放ppt每一页的图片文件

            

 

 

当然,也可以转成pdf文件,把第二步的“ppt.SaveAs”后括号内数字改成32,同时把第一步“filename”后的后缀由jpg改成pdf即可,生成上左图pdf文件

这里有个疑问,“filename”的后缀如果是jpg或者png,会创建一个文件夹,把图片存文件夹内,但是如果是pdf则只会在目录下生成一个pdf文件,没搞明白为何

 

当然,如果不想更改ppt文件名称,实现拖到脚本目录下即可转换,那就加上获取文件内所有文件信息,同时通过匹配后缀名的方式识别ppt文件转换

#获取默认目录下所有文件
filenames = os.listdir(path)

#循环读取文件名称
for ppt in filenames:
    #判断文件名称,筛选出后缀名为ppt或者pptx的文件
    if ppt.endswith('ppt') or ppt.endswith('pptx'):
        #将获取的文件名字进行分割,提取出文件名,比如1024.ppt,按照下面的规则base=1024,ext=ppt
        base, ext = ppt.split('.') 
        #转换成图片后存放路径
        filename = path + '/' + base + '.jpg'
        #识别出ppt文件后,拼接成ppt文件存放路径
        ppt = path + '/' + ppt
    else:
        continue

 

 以上,实现文首预期效果,附全部代码

import win32com.client
import os
import sys

path = os.path.abspath(os.path.dirname(sys.argv[0]))

#获取默认目录下所有文件
filenames = os.listdir(path)

def ppt2png(ppt, filename):
    # 打开PPT程序
    ppt_app = win32com.client.Dispatch('PowerPoint.Application')
    # 打开ppt文件(后台模式)
    ppt = ppt_app.Presentations.Open(ppt)
    # 打开的PPT另存为图片文件。17数字是ppt转图片,32数字是ppt转pdf。
    ppt.SaveAs(filename, 17)
    print("转换成功!!!")
    # 退出PPT程序
    ppt_app.Quit()

#循环读取文件名称
for ppt in filenames:
    #判断文件名称,筛选出后缀名为ppt或者pptx的文件
    if ppt.endswith('ppt') or ppt.endswith('pptx'):
        #将获取的文件名字进行分割,提取出文件名,比如1024.ppt,按照下面的规则base=1024,ext=ppt
        base, ext = ppt.split('.') 
        #转换成图片后存放路径
        filename = path + '/' + base + '.jpg'
        #识别出ppt文件后,拼接成ppt文件存放路径
        ppt = path + '/' + ppt
        #执行ppt2png方法,转换ppt
        ppt2png(ppt, filename)
    else:
        continue

 

“win32com.client”的使用参考:https://blog.csdn.net/qq_28304687/article/details/80721653

 

posted @ 2021-03-09 17:01  小贝书屋  阅读(1758)  评论(0编辑  收藏  举报