最近在研究一些日常工作或者生活中比較實用的東西,這次的功能是:批量導出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. 選擇所有幻燈片
然后桌面就會生成一個包含所有幻燈片圖片格式的文件夾