Python實(shí)現(xiàn)在PPT中添加或刪除圖片
在數(shù)字化辦公時(shí)代,Python已成為自動(dòng)化處理Office文檔的首選工具。針對(duì)PowerPoint圖片管理,使用Python能實(shí)現(xiàn)批量操作多個(gè)PPT文件,并減少人工操作的失誤。本文將介紹如何使用免費(fèi)Python庫(kù)在PPT文檔中添加圖片,或刪除PPT文檔中的圖片。
環(huán)境準(zhǔn)備
安裝 Free Spire.Presentation for Python庫(kù)。
pip install Spire.Presentation.Free
Python 在PPT幻燈片中添加圖片
使用免費(fèi)Python庫(kù)提供的 ISlide.Shapes.AppendEmbedImageByImageData() 方法,可實(shí)現(xiàn)在指定幻燈片中添加圖片。操作如下:
創(chuàng)建PPT演示文檔,并通過(guò) Presentation.Slides[index] 屬性獲取其中指定幻燈片。
加載一張圖片,然后指定圖片在幻燈片上的位置。
通過(guò) ISlide.Shapes.AppendEmbedImageByPath() 方法在幻燈片中添加圖片。
使用 Presentation.SaveToFile() 方法保存生成的演示文稿。
Python代碼:
from spire.presentation.common import * import math from spire.presentation import * # 創(chuàng)建PPT演示文稿 presentation = Presentation() # 獲取第一張幻燈片 slide = presentation.Slides[0] # 加載一張圖片 imageFile = "logo.png" # 指定圖片在幻燈片中的位置 left = math.trunc(presentation.SlideSize.Size.Width / float(2)) -100 rect1 = RectangleF.FromLTRB (left, 120, 180 + left, 300) # 在幻燈片上添加嵌入式圖片 image = slide.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, imageFile, rect1) # 設(shè)置圖片的外框線為無(wú)填充效果 image.Line.FillType = FillFormatType.none # 保存PPT文檔 presentation.SaveToFile("PPT圖片.pptx", FileFormat.Pptx2016) presentation.Dispose()
生成文檔:
Python 刪除PPT幻燈片中的圖片
要?jiǎng)h除PowerPoint幻燈片中的所有圖片則需要先遍歷幻燈片中的每一個(gè)形狀,找出形狀中的圖片類(lèi)型 (SlidePicture),再通過(guò) ISlide.Shapes.Remove(Index) 來(lái)刪除圖片。操作如下:
使用 Presentation.LoadFromFile() 方法加載PPT文檔。
通過(guò) Presentation.Slides[index] 屬性獲取指定幻燈片。
使用 for 循環(huán)來(lái)遍歷指定幻燈片上的所有形狀。
判斷當(dāng)前形狀是否是為 SlidePicture 類(lèi)型(圖片),如果是,則使用 ISlide.Shapes.Remove(Index) 來(lái)刪除圖片。
使用 Presentation.SaveToFile() 方法保存生成的演示文稿。
Python代碼:
from spire.presentation.common import * from spire.presentation import * # 加載PPT文件 ppt = Presentation() ppt.LoadFromFile("PPT圖片.pptx") # 獲取第一張幻燈片 slide = ppt.Slides[0] # 遍歷幻燈片中的所有形狀 for i in range(slide.Shapes.Count - 1, -1, -1): # 判斷當(dāng)前形狀是否為圖片(SlidePicture) if isinstance(slide.Shapes[i], SlidePicture): # 如果是圖片,則從幻燈片中移除該形狀 slide.Shapes.RemoveAt(i) # 保存結(jié)果文件 ppt.SaveToFile("刪除PPT圖片.pptx", FileFormat.Pptx2016) ppt.Dispose()
方法補(bǔ)充
Python向PPT中批量插入圖片
1.用python-pptx模塊
實(shí)現(xiàn)的過(guò)程也很簡(jiǎn)單,主要是導(dǎo)入指定模塊,利用os來(lái)遍歷所有的圖片,然后創(chuàng)建ppt對(duì)象,插入空白的slide,然后通過(guò)循環(huán)的辦法把圖片插入到幻燈片中。根據(jù)圖片距離左、上、高度來(lái)最終確定其位置。
from pptx import Presentation from pptx.util import Inches import os # 獲取當(dāng)前目錄下所有的png文件 pics = [file for file in os.listdir(".") if file.endswith(".png")] # 創(chuàng)建一個(gè)演示文稿對(duì)象 prs = Presentation() for pic in pics: # 添加一張新幻燈片 slide_layout = prs.slide_layouts[5] # 使用空白布局 slide = prs.slides.add_slide(slide_layout) # 添加圖片到幻燈片 img_path = pic left = 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')
2.利用Aspose.slides這個(gè)模塊
Aspose模塊的辦法和python-pptx的類(lèi)似。過(guò)程也是首先遍歷得到圖片的地址,然后創(chuàng)建PPT對(duì)象,通過(guò)添加空白slide,把圖片插入的辦法來(lái)實(shí)現(xiàn)。
import aspose.slides as slides import os pics = [file for file in os.listdir(".") if file.endswith(".png")] # 創(chuàng)建演示文稿 with slides.Presentation() as pres: # 訪問(wèn)第一張幻燈片 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個(gè)數(shù)是是圖片距離左側(cè)和右側(cè)的距離。
到此這篇關(guān)于Python實(shí)現(xiàn)在PPT中添加或刪除圖片的文章就介紹到這了,更多相關(guān)Python PPT圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的Django框架中自定義模版標(biāo)簽的示例
這篇文章主要介紹了Python的Django框架中自定義模版標(biāo)簽的示例,標(biāo)簽的用處比過(guò)濾器更多,需要的朋友可以參考下2015-07-07Django數(shù)據(jù)庫(kù)表反向生成實(shí)例解析
這篇文章主要介紹了Django數(shù)據(jù)庫(kù)表反向生成實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02Python實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03python實(shí)現(xiàn)坦克大戰(zhàn)游戲 附詳細(xì)注釋
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05Python實(shí)現(xiàn)windows自動(dòng)關(guān)機(jī)功能
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)windows自動(dòng)關(guān)機(jī)功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下2025-01-01Python OpenCV對(duì)圖像進(jìn)行模糊處理詳解流程
OpenCV是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類(lèi)構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面很多通用算法2021-10-10解決paramiko執(zhí)行命令超時(shí)的問(wèn)題
這篇文章主要介紹了解決paramiko執(zhí)行命令超時(shí)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04python實(shí)現(xiàn)中文分詞FMM算法實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)中文分詞FMM算法,實(shí)例分析了Python基于FMM算法進(jìn)行中文分詞的實(shí)現(xiàn)方法,涉及Python針對(duì)文件、字符串及正則匹配操作的相關(guān)技巧,需要的朋友可以參考下2015-07-07