最近在研究一些日常工作或者生活中比较实用的东西,这次的功能是:批量导出ppt中所有的图片素材。
用到的库是:python-pptx
pip install python-pptx
稍微做了优化和修正一个错误,已经测试过可以直接用,需要准备一个带有图片素材的ppt或者pptx格式的文档 放到同一目录下即可。
代码实现:
#!/usr/bin/python
# -*- coding: utf-8
from pptx import Presentation
import os
import sys
'''
功能:
将pptx中出现的图片素材全部导出
'''
ppt_root = jpg_root =sys.path[0]
i = 0
def ppt2png(pptFileName):
# 实例化ppt对象
prs = Presentation(pptFileName) #PPT文件路径
# 遍历
for slide in prs.slides:
for obj in slide.shapes:
# try/except 因为非图片元素没有Image方法会弹出异常.
try:
global i
# 获取二进制字符流
imdata = obj.image.blob
# 判断文件后缀类型
imagetype = obj.image.content_type
typekey = imagetype.find('/') + 1
i +=1
imtype = imagetype[typekey:]
# 创建image文件夹保存抽出图片
path = jpg_root +"/image/"
if not os.path.exists(path):
os.makedirs(path)
# 图片生成
obj.name = "Picture"+ str(i)
image_file = path + obj.name + "." + imtype
file_str=open(image_file,'wb')
file_str.write(imdata)
file_str.close()
except:
pass
for fn in (fns for fns in os.listdir(ppt_root) if fns.endswith(('.ppt', 'pptx'))):
ppt2png(fn)
将PPT每页内容导出生成图片
一样有代码可以实现,不过ppt 本身就有这个功能,所以就不记录python 相关实现了,因为懒。 hhh~~
- 1. 打开ppt后,选择保存Save As..
- 2. 保存方式选择jpg or png
- 3. 选择所有幻灯片
然后桌面就会生成一个包含所有幻灯片图片格式的文件夹