![在 Python 中處理 PowerPoint 中的形狀](images/Work-with-Shapes-in-Slides-in-C-1024x578.jpg#center)
PowerPoint 演示文稿中使用了各種類型的圖表,使內容更加詳盡。這些圖表由不同的形狀組成,例如橢圓、直線、矩形和連接器。在本文中,您將學習如何在 Python 中以編程方式在 PowerPoint 幻燈片中添加、克隆和刪除形狀。
- 用於處理 PowerPoint 形狀的 Python 庫
- PowerPoint 形狀的類型
- 將形狀添加到 PowerPoint 幻燈片
- 在 PowerPoint 中向形狀添加連接線
- 在 PowerPoint 幻燈片中克隆形狀
- 從 PowerPoint 幻燈片中刪除形狀
用於處理 PowerPoint 形狀的 Python 庫
Aspose.Slides for Python via .NET 旨在從 Python 應用程序中創建和操作 PowerPoint 演示文稿。我們將使用此庫來處理 PowerPoint 幻燈片中的形狀。您可以使用以下 pip 命令從 PyPI 安裝它。
> pip install aspose.slides
PowerPoint 中的形狀類型
您可以使用 Aspose.Slides for Python 在 PowerPoint 演示文稿中創建各種形狀。最常用的形狀包括:
在 Python 中向 PowerPoint 幻燈片添加形狀
要添加任何形狀,包括橢圓、直線、矩形,使用 addautoshape(ShapeType, Single, Single, Single, Single) 方法,您可以將形狀類型和其他必要參數傳遞給該方法。 ShapeType 枚舉用於指定形狀的類型。以下是在 Python 中向 PowerPoint 幻燈片添加形狀的步驟。
- 使用 Presentation 類創建演示文稿或加載現有演示文稿。
- 從 Presentation.slides 集合中獲取所需幻燈片的引用。
- 使用 addautoshape(ShapeType, Single, Single, Single, Single) 方法添加一個橢圓(或任何其他形狀)。
- 使用 Presentation.save(String, SaveFormat) 方法保存演示文稿。
以下代碼示例演示如何在 Python 中向 PowerPoint 幻燈片添加形狀。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 創建一個新的演示文稿
with slides.Presentation() as pres:
# 獲取第一張幻燈片
sld = pres.slides[0]
# 添加橢圓類型的自動形狀
shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)
# 對橢圓形狀應用一些格式
shp.fill_format.fill_type = slides.FillType.SOLID
shp.fill_format.solid_fill_color.color = drawing.Color.pink
# 對 Ellipse 行應用一些格式
shp.line_format.fill_format.fill_type = slides.FillType.SOLID
shp.line_format.fill_format.solid_fill_color.color = drawing.Color.purple
shp.line_format.width = 5
# 將 PPTX 文件保存到磁盤
pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)
以下是我們使用上面的代碼示例添加的橢圓。
![在 Python 中向 PowerPoint PPT 添加形狀](images/add-shape-in-PPT.png#center)
在 Python 中使用連接器連接 PowerPoint 形狀
在圖表中,不同的形狀使用稱為連接器的線相互連接。連接器可以是直線或曲線。讓我們看看如何在 Python 中的兩個 PowerPoint 形狀之間添加連接符。
- 首先,創建 Presentation 類的一個實例來創建或加載演示文稿。
- 然後,使用 Presentation.slides 集合獲取幻燈片的引用。
- 就像您在上一節中添加的那樣添加兩個形狀並獲取它們的引用。
- 使用 addconnector(ShapeType, Single, Single, Single, Single) 方法創建連接器。
- 使用 Connector.startshapeconnectedto 和 Connector.endshapeconnectedto 屬性加入形狀。
- 調用 Connector.reroute() 方法創建最短的自動連接路徑。
- 最後,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代碼示例展示瞭如何在 Python 中連接 PowerPoint 幻燈片中的形狀。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 創建演示文稿
with slides.Presentation() as presentation:
# 訪問所選幻燈片的形狀集合
shapes = presentation.slides[0].shapes
# 添加橢圓
ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)
# 添加自動形狀矩形
rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)
# 添加連接器以連接形狀
connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)
# 使用連接器連接形狀
connector.start_shape_connected_to = ellipse
connector.end_shape_connected_to = rectangle
# 調用 reroute 設置形狀之間的自動最短路徑
connector.reroute()
# 保存演示文稿
presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)
以下是使用連接器連接形狀後的演示文稿屏幕截圖。
![在 Python 中使用連接器連接 PowerPoint 形狀](images/Connect-PowerPoint-Shapes.jpg#center)
在 Python 中克隆 PowerPoint 形狀
有時,您選擇克隆形狀而不是創建新形狀。為此,Aspose.Slides 支持形狀克隆。以下是使用 Python 在 PowerPoint 中克隆形狀的步驟。
- 首先,使用 Presentation 類加載演示文稿文件。
- 從 Presentation.slides 集合中獲取幻燈片的引用。
- 從 ISlide.shapes 集合訪問源和目標幻燈片形狀。
- 使用 addclone() 方法將源幻燈片形狀集合中的形狀克隆到目標幻燈片。
- 最後,保存更新後的演示文稿文件。
以下代碼示例展示瞭如何在 Python 中克隆 PowerPoint 幻燈片中的形狀。
import aspose.slides as slides
# 負載演示
with slides.Presentation("add-ellipse.pptx") as presentation:
# 訪問源幻燈片的形狀
sourceShapes = presentation.slides[0].shapes
# 添加新的空白幻燈片
blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
destSlide = presentation.slides.add_empty_slide(blankLayout)
# 訪問目標幻燈片的形狀
destShapes = destSlide.shapes
# 克隆形狀
destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
destShapes.add_clone(sourceShapes[0])
destShapes.insert_clone(0, sourceShapes[0], 50, 150)
# 保存存檔
presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)
在 Python 中從 PowerPoint 幻燈片中刪除形狀
您還可以按照以下步驟從 PowerPoint 演示文稿中刪除形狀。
- 創建 Presentation 類的實例以加載 PPT/PPTX 文件。
- 從 Presentation.slides 集合訪問所需的幻燈片。
- 使用 IShape.alternativetext 屬性過濾具有特定文本的所需形狀。
- 使用 Islide.shapes.remove(IShape) 方法刪除形狀。
- 最後,保存更新後的演示文稿文件。
以下代碼示例展示瞭如何使用 Python 從 PowerPoint 幻燈片中刪除形狀。
# 負載演示
with slides.Presentation("add-ellipse.pptx") as presentation:
# 獲取第一張幻燈片
sld = presentation.slides[0]
alttext = "User Defined"
# 遍歷形狀
for i in range(len(sld.shapes)):
# 通過替代文本查找形狀
ashp = sld.shapes[0]
if ashp.alternative_text == alttext:
sld.shapes.remove(ashp)
# 保存存檔
presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)
獲得免費許可證
您可以獲得免費的臨時許可證 來使用 Aspose.Slides for Python,而沒有評估限制。
結論
MS PowerPoint 支持一系列形狀來創建不同類型的圖表,例如流程圖。在本文中,我們介紹瞭如何創建 PowerPoint 形狀(例如橢圓、矩形)以及如何使用 Python 中的連接器連接它們。此外,您還學習瞭如何以編程方式克隆和刪除 PowerPoint 幻燈片中的形狀。您可以使用 文檔 探索更多關於 Aspose.Slides for Python 的信息。此外,您可以隨時通過我們的 論壇 告訴我們您的疑問。