在 Python 中處理 PowerPoint 中的形狀

PowerPoint 演示文稿中使用了各種類型的圖表,使內容更加詳盡。這些圖表由不同的形狀組成,例如橢圓、直線、矩形和連接器。在本文中,您將學習如何在 Python 中以編程方式在 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 幻燈片添加形狀的步驟。

  1. 使用 Presentation 類創建演示文稿或加載現有演示文稿。
  2. 從 Presentation.slides 集合中獲取所需幻燈片的引用。
  3. 使用 addautoshape(ShapeType, Single, Single, Single, Single) 方法添加一個橢圓(或任何其他形狀)。
  4. 使用 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 添加形狀

在 Python 中使用連接器連接 PowerPoint 形狀

在圖表中,不同的形狀使用稱為連接器的線相互連接。連接器可以是直線或曲線。讓我們看看如何在 Python 中的兩個 PowerPoint 形狀之間添加連接符。

  1. 首先,創建 Presentation 類的一個實例來創建或加載演示文稿。
  2. 然後,使用 Presentation.slides 集合獲取幻燈片的引用。
  3. 就像您在上一節中添加的那樣添加兩個形狀並獲取它們的引用。
  4. 使用 addconnector(ShapeType, Single, Single, Single, Single) 方法創建連接器。
  5. 使用 Connector.startshapeconnectedto 和 Connector.endshapeconnectedto 屬性加入形狀。
  6. 調用 Connector.reroute() 方法創建最短的自動連接路徑。
  7. 最後,使用 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 形狀

在 Python 中克隆 PowerPoint 形狀

有時,您選擇克隆形狀而不是創建新形狀。為此,Aspose.Slides 支持形狀克隆。以下是使用 Python 在 PowerPoint 中克隆形狀的步驟。

  1. 首先,使用 Presentation 類加載演示文稿文件。
  2. 從 Presentation.slides 集合中獲取幻燈片的引用。
  3. 從 ISlide.shapes 集合訪問源和目標幻燈片形狀。
  4. 使用 addclone() 方法將源幻燈片形狀集合中的形狀克隆到目標幻燈片。
  5. 最後,保存更新後的演示文稿文件。

以下代碼示例展示瞭如何在 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 演示文稿中刪除形狀。

  1. 創建 Presentation 類的實例以加載 PPT/PPTX 文件。
  2. 從 Presentation.slides 集合訪問所需的幻燈片。
  3. 使用 IShape.alternativetext 屬性過濾具有特定文本的所需形狀。
  4. 使用 Islide.shapes.remove(IShape) 方法刪除形狀。
  5. 最後,保存更新後的演示文稿文件。

以下代碼示例展示瞭如何使用 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 的信息。此外,您可以隨時通過我們的 論壇 告訴我們您的疑問。

也可以看看