zoukankan      html  css  js  c++  java
  • [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. 选择所有幻灯片

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

    Knowledge, like candlelight, can illuminate a person and countless people.
  • 相关阅读:
    bzoj2243: [SDOI2011]染色
    bzoj4538: [Hnoi2016]网络
    bzoj 1004
    数论小结2.
    数论小结1.
    Catalan Number
    uva 11645
    uva 01510
    redis cluster介绍
    搭建redis-sentinel(哨兵机制)集群
  • 原文地址:https://www.cnblogs.com/xiaoqiangink/p/14486735.html
Copyright © 2011-2022 走看看