將PowerPoint演示文稿中的形狀(幻燈片中的內容元素,包括文本框、圖形、圖片、圖表等)保存為圖片是方便內容跨平台分享和再利用的有效手段。利用Python,我們可以直接將PowerPoint幻燈片中帶設計和格式的文本、圖片、圖形、表格等各種元素直接保存為圖片,從而實現在保留原設計和格式的情況下,將其發佈在網頁或是在其他文檔編輯等場景再利用。本文將演示如何使用Python保存PowerPoint演示文稿中的形狀為圖像文件。
- 使用Python保存PPT中的所有形狀為圖像文件
- 用Python保存PPT中帶格式設計的圖片為圖像文件
本文所使用的方法需要用到Spire.Presentation for Python,PyPI:pip install spire.presentation。
申請免費License
使用Python保存PPT中的所有形狀為圖像文件
在操作PowerPoint演示文稿時,我們可以先使用Presentation.LoadFromFile()方法從文件載入演示文稿,再使用Presentation.Slides.get_Item()方法獲取單個幻燈片或遍歷所幻燈片。然後,我們可以遍歷通過Slide.Shapes.SaveAsImage(shapeIndex: int, dpiX: int, dpiY: int)方法將形狀保存為圖像。下面是操作步驟示例:
- 導入所需模塊
- 創建
Presentation實例。 - 使用
Presentation.LoadFromFile()方法加載PowerPoint演示文稿。 - 使用
Presentation.Pages.get_Item()方法獲取一個幻燈片。 -
遍歷幻燈片中的形狀:
- 使用
Slide.Shapes.SaveAsImage()方法將形狀保存為圖像流。 - 使用
Stream.Save()方法將圖像流保存到文件。
- 使用
代碼示例
from spire.presentation import *
# 創建一個 Presentation 實例
presentation = Presentation()
# 加載一個 PowerPoint 文件
presentation.LoadFromFile("Sample.pptx")
# 獲取第四張幻燈片(索引從0開始)
slide = presentation.Slides.get_Item(4)
# 將形狀保存為圖片流
for i in range(slide.Shapes.Count):
# 保存當前形狀為指定大小的圖片流
imageStream = slide.Shapes.SaveAsImage(i, 256, 256)
# 保存圖片到文件
imageStream.Save(f"output/Shapes/ShapeToImage{i}.png")
# 釋放資源
presentation.Dispose()
結果
用Python保存PPT中帶格式設計的圖片為圖像文件
通過直接將形狀保存圖像文件的方法,我們還可以直接將演示文稿中進行了格式編輯的圖片保存圖像文件,並保留其格式。我們只需要在將形狀保存為圖像時,判斷其是否為SlidePicture實例並保存這些實例。以下是操作步驟示例:
- 導入所需模塊
- 創建
Presentation實例。 - 使用
Presentation.LoadFromFile()方法加載PowerPoint演示文稿。 - 使用
Presentation.Pages.get_Item()方法獲取一個幻燈片。 -
遍歷幻燈片中的形狀:
- 判斷形狀是否為
SlidePicture實例,如果是則將其保存為圖像流。 - 使用
Stream.Save()方法將圖像流保存到圖像文件。
- 判斷形狀是否為
代碼示例
from spire.presentation import *
# 創建一個 Presentation 實例
presentation = Presentation()
# 加載一個 PowerPoint 文件
presentation.LoadFromFile("Sample.pptx")
# 獲取第五張幻燈片(索引從0開始)
slide = presentation.Slides.get_Item(1)
# 遍歷幻燈片中的所有形狀
i = 0
for shape in slide.Shapes:
# 檢查形狀是否是 SlidePicture 類型的對象
if isinstance(shape, SlidePicture):
# 保存形狀為圖片流
shape = shape if isinstance(shape, SlidePicture) else None
image = slide.Shapes.SaveAsImage(slide.Shapes.IndexOf(shape), 256, 256)
# 保存圖片到文件
image.Save(f"output/Images/ImageShape{i}.png")
i += 1
# 釋放資源
presentation.Dispose()
結果
本文演示瞭如何使用Python將PowerPoint演示文稿中的形狀保存圖像文件。