- 准备工作
- 运行效果
- 代码
- 后记
-
打开电脑,打开ppt准备
复习预习,为了好翻页转出PDF,但是PPT有很多章,需要批量转出。 -
使用的是 python3.10,office2021
-
安装相应的包(应该都有)
-
文件位置
# 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)