100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 使用Python实现将ppt文件批量转化为pdf

使用Python实现将ppt文件批量转化为pdf

时间:2020-05-06 00:41:05

相关推荐

使用Python实现将ppt文件批量转化为pdf

使用pywin32模块完成主要功能,程序整体实现思路

1. 初始化PowerPoint 端口应用程序

2. 使用应用程序对象打开ppt文件

3. 将ppt文件直接转存为PDF文件

特点:在后台运行,不需要将应用程序端口可视化,避免了comtypes带来的必须在前台运行的尴尬境地。

废话不多说直接开始整。(完整代码在最后面)

一、首先需要安装pywin32模块

1 $ pip install pywin32

如果上述命令安装失败可以尝试一下方法:

$ python -m pip install pypiwin32

二、导入PowerPoint类库,也可以理解为初始化PowerPoint应用实例

p = gencache.EnsureDispatch("PowerPoint.Application")

三、使用应用程序对象打开ppt文件

ppt = p.Presentations.Open(filename, False, False, False)

Presentations: Presentations是PowerPoint应用程序的一个对象。Microsoft PowerPoint 中所有Presentation对象的集合。 每个演示文稿对象代表当前在 PowerPoint 中打开演示文稿。Open方法:

四、将ppt文件转存为pdf文件

ppt.ExportAsFixedFormat(exportfile, 2, PrintRange=

ExportAsFixedFormat:将 Microsoft PowerPoint 演示文稿的副本发布为固定格式的文件(PDF 或 XPS)。

有关ExportAsFixedFormat说明及参数可以访问微软官方ExportAsFixedFormat说明,下面列举部分参数,感兴趣的可以再参考一下。

五、完整代码,需要的可以直接复制到需要转化的ppt文件目录下面

import osimport globfrom win32com.client import gencachedef get_file_path():"""获得当前文件夹下的所有的.ppt和.pptx文件"""file_path = os.path.split(os.path.abspath(__file__))[0]pp_files = glob.glob(os.path.join(file_path, "*.ppt*"))return file_path, pp_filesdef ppt_to_pdf(filename, results):'''ppt 和 pptx 文件转换'''name = os.path.basename(filename).split('.')[0] + '.pdf'exportfile = os.path.join(results, name)if os.path.isfile(exportfile):print(name, "已经转化了")returnp = gencache.EnsureDispatch("PowerPoint.Application")try:ppt = p.Presentations.Open(filename, False, False, False)except Exception as e:print(os.path.split(filename)[1], "转化失败,失败原因%s" % e)ppt.ExportAsFixedFormat(exportfile, 2, PrintRange=None)print('保存 PDF 文件:', exportfile)p.Quit()def main():"""主程序执行"""file_path, pp_files = get_file_path()results = os.path.join(file_path, "results")if not os.path.exists(results):os.mkdir(os.path.join(results))for _ in pp_files:ppt_to_pdf(_, results)if __name__ == "__main__":main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。