Python工具源码,Python批量提取PPT文件中的图片

您所在的位置:网站首页 如何提取PPT中的图片 Python工具源码,Python批量提取PPT文件中的图片

Python工具源码,Python批量提取PPT文件中的图片

2024-06-20 15:01| 来源: 网络整理| 查看: 265

在办公场景当中,同样也有这样一个需求,那就是快速批量把PPT文件中的图片提取出来,毕竟一个个点击另存为太过于繁琐,以及耗费时间,前面本渣渣分享过如何应用Python批量提取PDF文件中的图片,而这一篇本渣渣就为大家分享如何应用Python批量提取PPT文件中的图片。

其实不通过代码脚本的形式也可以快速方便的提取PPT中的图片文件,这里分享一个简单方法,那就是将PPT文件后缀更改为rar压缩文件的格式,通过解压的方式来获取所有的图片文件,感兴趣的话不妨尝试一番!

言归正传,应用Python批量提取PPT文件中的图片有两种方式,一种是单纯的提取PPT文件中的图片,这种方法可能会存在图片文件缺失的情况,而第二种方法是直接将每一页PPT转换成图片。

方法一:应用Python-pptx库

1.安装方法:

pip install python-pptx

2.提取图片使用方法:

# -*- coding: utf-8 from pptx import Presentation import os import sys ''' 功能:     将pptx中出现的图片素材全部导出 ''' ppt_root = jpg_root = sys.path[0] print(ppt_root) 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)     

方法二:使用win32com导出图片

使用方法:

#将ppt每页转化为图片 # -*- coding: utf-8 -*- import os import win32com import win32com.client # 存储PPT为JPG格式的类型,所对应的数值 ppSaveAsJPG = 17 def ppt_to_jpg(ppt_file_name,output_dir_name):     '''将PPT另存为JPG格式     arguments:         ppt_file_name: 要转换的ppt文件的完整路径文件名,eg:F:\\test\\ppt_name.ppt         output_dir_name:转换后的存放JPG文件的目录,以PPT的名字新建的目录,eg:F:\\test\\ppt_name     '''     # 启动PPT     ppt_app = win32com.client.Dispatch('PowerPoint.Application')     # 设置为0表示后台运行,不显示,1则显示     ppt_app.Visible = 1     # 打开PPT文件     ppt = ppt_app.Presentations.Open(ppt_file_name)     # 另存为,第一个参数为报存图片的目录,第二个是报存的格式。     ppt.SaveAs(output_dir_name, ppSaveAsJPG)     # 退出PPT     ppt_app.Quit() if __name__ == '__main__':     # 当前文件所在目录,eg: F:\\test,如果你要指定某个目录,则手动指定current_dir 即可     current_dir=r'E:\Python\pdfjpg\1'     #current_dir = os.sys.path[0]     # 当前目录下所有文件,遍历的结果是文件名。     dir_list = os.listdir(current_dir)     # 当前目录下所有的PPT文件,eg: ppt_name.ppt     ppt_file_names = (fns for fns in dir_list if fns.endswith(('.ppt','.pptx')))     # 当前目录下所有的PPT文件名,这两者的区别在于有无后缀名,eg: ppt_name     # splitext的作用是,'xx.jpg',会分成'xx'和'.jpg'     ppt_names = (os.path.splitext(fns)[0] for fns in dir_list if fns.endswith(('.ppt','.pptx')))     # 因为只需要文件名,这样也行     # ppt_names = (fns.split('.')[0] for fns in ppt_file_names)     for ppt_file_name,ppt_name in zip(ppt_file_names,ppt_names):         # 该PPT的完整路径文件名,eg: F:\\test\\ppt_name.ppt         ppt_file_name = os.path.join(current_dir,ppt_file_name)         # 需要新建一个与PPT同名的文件,获取完整路径,eg:  F:\\test\\ppt_name         ppt_dir_path = os.path.join(current_dir,ppt_name)         # 创建新目录         os.mkdir(ppt_dir_path)         # print ppt_file_name, ppt_dir_path         ppt_to_jpg(ppt_file_name,ppt_dir_path)         

以上代码均为本渣渣抄袭而来,仅供学习参考,如有疑问,可度娘解答!

来源:

1.Python 将 PPT 中的图片素材批量导出

https://blog.csdn.net/weixin_43575040/article/details/104631516

2.PPT中出现的图片素材批量导出&PPT全部导出生成图片

https://www.cnblogs.com/xiaoqiangink/p/14486735.html

相关阅读:

Python脚本工具,PyMuPDF批量提取PDF文件中的图片

·················END·················

你好,我是二大爷,

革命老区外出进城务工人员,

互联网非早期非专业站长,

喜好python,写作,阅读,英语

不入流程序,自媒体,seo . . .

公众号不挣钱,交个网友。

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注二大爷呗~给你分享python,写作,阅读的内容噢~

扫一扫下方二维码即可关注我噢~

关注我的都变秃了

说错了,都变强了!

不信你试试

扫码关注最新动态

公众号ID:eryeji



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3