【摸鱼技巧一】【python】PPT批量转PDF

该博客介绍了一种使用Python的win32com.client模块来批量将PowerPoint(PPT)文件转换为PDF的方法。作者首先介绍了所需的准备工作,包括安装必要的库,并展示了在VScode和Jupyter Notebook中成功运行的示例。代码部分详细解释了转换过程,从打开PPT应用到保存为PDF。最后,作者幽默地提到虽然可以在线转换,但手动处理能提高效率。
摘要由CSDN通过智能技术生成

准备工作

  1. 打开电脑,打开ppt准备复习预习,为了好翻页转出PDF,但是PPT有很多章,需要批量转出。

  2. 使用的是 python3.10,office2021

  3. 安装相应的包(应该都有)
    在这里插入图片描述

  4. 文件位置
    在这里插入图片描述

运行效果

使用VScode运行成功
在这里插入图片描述
2022年5月14日使用jupyter notebook运行成功
在这里插入图片描述

代码

# 1). 导入需要的模块(打开应用程序的模块)
import win32com.client
import os
def ppt2pdf(filename, output_filename):
    """
    PPT文件导出为pdf格式
    filename: PPT文件的名称
    output_filename: 导出的pdf文件的名称
    """
    # 2). 打开PPT程序
    ppt_app = win32com.client.Dispatch('PowerPoint.Application')
    # ppt_app.Visible = True  # 程序操作应用程序的过程是否可视化

    # 3). 通过PPT的应用程序打开指定的PPT文件
    # filename = "D:/大三下课程资料/嵌入式/PPT/xxx.ppt"
    # output_filename = "D:/大三下课程资料/嵌入式/PDF/xxx.pdf"
    
    ppt = ppt_app.Presentations.Open(filename)

    # 4). 打开的PPT另存为pdf文件。17数字是ppt转图片,32数字是ppt转pdf。
    output_filename = output_filename.replace('/', '\\');
    print(output_filename)
    ppt.SaveAs(output_filename,32)
    print(output_filename+"导出成pdf格式成功!!!")
    # 退出PPT程序
    ppt_app.Quit()


def main():
    # 要处理的目录名称
    dirname = 'D:/大三下课程资料/嵌入式'
    # 列出指定目录的内容
    filenames = os.listdir(dirname+'/PPT') #D:/大三下课程资料/嵌入式/PPT里面是xxx.ppt
    # for循环依次访问指定目录的所有文件名
    for filename in filenames:
        # 判断文件的类型,对所有的ppt文件进行处理(ppt文件以ppt或者pptx结尾的)
        if filename.endswith('ppt') or filename.endswith('pptx'):
            print(filename)           # PPT.pptx -> PPT.pdf
            # 将filename以.进行分割,返回2个信息,文件的名称和文件的后缀名
            base, ext = filename.split('.')  # base=PPT素材1 ext=pdf
            new_name = base + '.pdf'         # PPT素材1.pdf
            # ppt文件的完整位置:D:/大三下课程资料/嵌入式/PPT/xxx.ppt
            filename = dirname + '/PPT/' + filename
            #print(filename)
            # pdf文件的完整位置:D:/大三下课程资料/嵌入式/PDF/xxx.pdf
            output_filename = dirname + '/PDF/' + new_name
            #print(output_filename)
            # 将ppt转成pdf文件
            ppt2pdf(filename, output_filename)


if __name__ == "__main__":
    main()

后记

如果你说,哎呀,你费这么大劲干嘛,我直接找网上的网站一键批量转换就好了。那我会说,你说的很好,下次不许再说了。。。
官方文档https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.presentation.saveas
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值