通常,大家的需求都是将PPT转化为PDF,无论是Word还是WPS都已经实现了这些功能。偶尔也会需要把PDF转为PPT。原则上来说,可以利用python的一些库解析PDF,但是这显然比较麻烦。最好的办法就是先转化为图片,然后再插入PPT。而这个过程只需要使用python-pptx的基本功能,以及pdf2image和PIL库来处理。
正好在github上有一个项目已经做了这件事。
phasedOut/pdf2pptxgithub.com
它的想法就是把pdf的每一页转化为png,然后插入到ppt中。但是这里面有些无用的内容,比方在新的ppt中插入一些日期之类的。这里面还有一些不方便之处,就是要按要求建立几个目录,这些其实也都是可以自动完成的。当然也有一些缺陷,图片的aspect ration和ppt的不一样,这些都可以通过修改源码解决。
由于我也只暂时使用,因此等后面有时间,我把它改善一下,传到github上。目前如果要使用的话可以将下面的代码复制。
# -*- coding: utf-8 -*-
然后将代码保存到某个python文件例如"pdf2ppt.py"中,将该文件和需要转化的pdf放在一起,在命令行执行:
python .pdf2ppt.py 文件名 300 16x9
其中文件名无需'.pdf'后缀,300指的是转化成图片的dpi,后面的16x9指的是屏幕的比例。
通过这次调研,发现也可以通过对markdown的解析,利用python-pptx生成ppt,相对beamer是麻烦一些,不过也许偶尔会有用。
python-pptx - python-pptx 0.6.18 documentationpython-pptx.readthedocs.io
另外pathlib看来是要比os好用。
pathlib - pathlib 1.0.1 documentationpathlib.readthedocs.io
python3 pathlib库Path类方法总结www.jb51.net
小明:你应该使用pathlib替代os.pathzhuanlan.zhihu.com
爱吃鱼De大猫:为什么你应该开始习惯使用 pathlib?zhuanlan.zhihu.com
Python 有哪些让你相见恨晚的技巧?www.zhihu.com
Gahana:每周一个 Python 模块 | pathlibzhuanlan.zhihu.com
wang looker:python路径操作新标准:pathlib 模块zhuanlan.zhihu.com
高级爬虫-陈祥安:华丽的蜕变-使用Pathlib模块,文件操作So Easy!zhuanlan.zhihu.com
艺赛旗RPA:RPA技术分享:Python 之 Pathlib 模块zhuanlan.zhihu.com
jiangyx:Python文件操作,看这篇就足够zhuanlan.zhihu.com
pdf2image是一个把pdf转化为图片的库,使用非常简单。
https://github.com/Belval/pdf2imagegithub.com
以后有时间把这些内容整理一下。