赞
踩
打开电脑,打开ppt准备复习预习,为了好翻页转出PDF,但是PPT有很多章,需要批量转出。
使用的是 python3.10,office2021
安装相应的包(应该都有)
文件位置
使用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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。