[Python]将PPT中出现的图片素材批量导出&PPT全部导出生成图片

最近在研究一些日常工作或者生活中比较实用的东西,这次的功能是:批量导出ppt中所有的图片素材。

用到的库是:python-pptx

pip install python-pptx

代码参考:Python 将 PPT 中的图片素材批量导出

稍微做了优化和修正一个错误,已经测试过可以直接用,需要准备一个带有图片素材的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. 选择所有幻灯片

然后桌面就会生成一个包含所有幻灯片图片格式的文件夹

posted @ 2021-03-05 15:59  萧蔷ink  阅读(1096)  评论(0编辑  收藏  举报