有時候我們需要把PPT的內容做成圖片進行預覽,這時候就要把PPT轉成圖片,文件少的時候可以手工完成,另存爲圖片就完成了。
但是如果這是一個長期工作就要靠腳本實現,省去大部分人工操作,這裏就使用python的win32擴展進行實現。
首先安裝win32擴展,我使用的python版本是3.6 的,安裝win32擴展和老版本不一樣,如果是舊版本直接pip install就可以安裝了;下面我也介紹下python3.6安裝win32的操作。
首先進入網站https://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32,進入網站之後搜索PyWin32關鍵詞就可以找到下面的文字:
pywin32-221-cp36-cp36m-win_amd64.whl
介紹下cp27代表的意思是 python2.7版本 , cp36代表的意思是python3.6
後面的win32代碼系統是32位的,win_amd64代碼64位系統,注意別下錯了。
下載完畢之後把pywin32-221-cp36-cp36m-win_amd64.whl放在python的安裝目錄的Scripts目錄下面:
安裝wheel:
pip install wheel
然後pip install pywin32-221-cp36-cp36m-win_amd64.whl
接下來執行:
python pywin32_postinstall.py -install 就安裝完畢了
win32的擴展已經安裝成功了,接下來寫生成ppt圖片的代碼:
import os
import win32com
from win32com.client import Dispatch, constants
def ppt2png(filename,dst_filename):
ppt = win32com.client.Dispatch('PowerPoint.Application')
#是否展示打開的文件
#ppt.Visible = True
#屏蔽錯誤彈框提示
ppt.DisplayAlerts = False
#打開ppt
pptSel = ppt.Presentations.Open(filename)
#把ppt另存爲圖片
pptSel.SaveAs(dst_filename,17);
ppt.Quit()
#找到ppt的存放路徑就好了
ppt_dir = "D:\\ppt";
for fn in (fns for fns in os.listdir(ppt_dir) if fns.endswith(('.ppt','.pptx'))):
try:
file_name = os.path.splitext(fn)[0]
ppt2png(ppt_dir+"\\"+fn,ppt_dir+"\\"+file_name+".jpg")
except:
continue
結果如下:
已經成功的生成ppt的預覽圖片了。