辦公自動化辦公中,Python最大的優勢是可以批量操作,省去了用戶粘貼、復制、插入等繁瑣的操作。經常做PPT的朋友都知道,把圖片插入到PPT當中的固定位置是一個非常繁瑣的操作,往往調整圖片時耗費大量的時間和精力。如何能省時省力插入圖片呢?今天我們來一起探索一下批量插入圖片到PPT的三種辦法。
一、手工操作
在WPS幻燈片中,通過插入——分頁插圖——再選擇要插入的圖片,就可以批量把圖片插入到PPT當中,不過此時插入的位置默認是PPT的中間位置,就是說無法按照指定的位置插入。
最后的效果如下,每張圖片都會居中顯示:
二、用python-pptx模塊
如果用Python的話,就可以批量插入,而且可以插入指定位置,這樣可以大大節省插入的時間。
實現的過程也很簡單,主要是導入指定模塊,利用os來遍歷所有的圖片,然后創建ppt對象,插入空白的slide,然后通過循環的辦法把圖片插入到幻燈片中。根據圖片距離左、上、高度來最終確定其位置。
from pptx import Presentation
from pptx.util import Inches
import os# 獲取當前目錄下所有的png文件
pics = [file for file in os.listdir(".") if file.endswith(".png")]# 創建一個演示文稿對象
prs = Presentation()for pic in pics:# 添加一張新幻燈片slide_layout = prs.slide_layouts[5] # 使用空白布局slide = prs.slides.add_slide(slide_layout)# 添加圖片到幻燈片img_path = picleft = Inches(5.8)top = Inches(2)height = Inches(3.5)slide.shapes.add_picture(img_path, left, top, height=height)# 保存演示文稿
prs.save('add-image-in-presentation.pptx')
廣告
三、利用Aspose.slides這個模塊
Aspose模塊的辦法和python-pptx的類似。過程也是首先遍歷得到圖片的地址,然后創建PPT對象,通過添加空白slide,把圖片插入的辦法來實現。
import aspose.slides as slides
import os
pics = [file for file in os.listdir(".") if file.endswith(".png")]# 創建演示文稿
with slides.Presentation() as pres:# 訪問第一張幻燈片for num,pic in enumerate(pics,0):slide = pres.slides.add_empty_slide(pres.layout_slides[0])# 從文件加載圖像with open(pic, "rb") as in_file:# 將圖像添加到演示文稿的圖像集image = pres.images.add_image(in_file)# 將圖像添加到幻燈片slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 20, 20, 100, 100, image)# 保存演示文稿pres.save("add-image-in-presentation.pptx", slides.export.SaveFormat.PPTX)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 20, 20, 100, 100, image)這行代碼中,前2個數是是圖片距離左側和右側的距離。
四、學后總結
- 經過實驗Python-pptx這個模塊插入圖片的速度更快,因此建議使用第二種方法。
- Aspose.slides這個模塊比較大,而且是收費的,如果是免費的生成的PPT中有水印,還要去除才可以。