使用 Python 管理簡報中的 SmartArt 圖形

概觀

Aspose.Slides 允許您以程式方式在 PowerPoint 簡報中建立和管理 SmartArt 圖形。本篇說明如何將 SmartArt 形狀加入投影片、存取現有的 SmartArt 形狀、依特定佈局類型搜尋 SmartArt,並透過變更 SmartArt 樣式或色彩樣式來更新其外觀。範例示範如何透過簡報投影片的形狀集合操作 SmartArt 形狀、檢查形狀是否為 SmartArt,然後修改或檢視其屬性。

建立 SmartArt 形狀

Aspose.Slides for Python via .NET 允許您從頭開始在投影片上加入自訂 SmartArt 形狀。API 使此工作變得簡單。若要將 SmartArt 形狀加入投影片:

  1. 建立 Presentation 類別的實例。
  2. 依索引取得目標投影片。
  3. 加入 SmartArt 形狀,指定其佈局類型。
  4. 將修改後的簡報儲存為 PPTX 檔。
import aspose.slides as slides
import aspose.slides.smartart as smartart

# 建立 Presentation 類別的實例。
with slides.Presentation() as presentation:
    # 取得簡報投影片。
    slide = presentation.slides[0]
    # 新增 SmartArt 形狀。
    smart_art = slide.shapes.add_smart_art(0, 0, 400, 400, smartart.SmartArtLayoutType.BASIC_BLOCK_LIST)
    # 將簡報儲存至磁碟。
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

在投影片上存取 SmartArt 形狀

以下程式碼示範如何在投影片上存取 SmartArt 形狀。範例會遍歷投影片上的每個形狀,並檢查它是否為 SmartArt 物件。

import aspose.slides as slides
import aspose.slides.smartart as smartart

# 載入簡報檔案。
with slides.Presentation("SmartArt.pptx") as presentation:
    # 遍歷第一張投影片上的每個形狀。
    for shape in presentation.slides[0].shapes:
        # 檢查形狀是否為 SmartArt 形狀。
        if isinstance(shape, smartart.SmartArt):
            # 輸出形狀名稱。
            print("Shape name:", shape.name)

以指定佈局類型存取 SmartArt 形狀

以下範例說明如何存取具有指定佈局類型的 SmartArt 形狀。請注意,SmartArt 的佈局類型無法變更——它是唯讀的,且於形狀建立時即設定。

  1. 建立 Presentation 實例並載入包含 SmartArt 形狀的簡報。
  2. 依索引取得第一張投影片的參照。
  3. 遍歷第一張投影片上的所有形狀。
  4. 檢查形狀是否為 SmartArt 物件。
  5. 如果 SmartArt 形狀的佈局類型符合需求,執行所需的操作。
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation("SmartArt.pptx") as presentation:
    # 遍歷第一張投影片上的每個形狀。
    for shape in presentation.slides[0].shapes:
        # 檢查形狀是否為 SmartArt 形狀。
        if isinstance(shape, smartart.SmartArt):
            # 檢查 SmartArt 版面配置類型。
            if shape.layout == smartart.SmartArtLayoutType.BASIC_BLOCK_LIST:
                print("Do something here...")

變更 SmartArt 形狀樣式

以下範例說明如何定位 SmartArt 形狀並變更其樣式:

  1. 建立 Presentation 並載入包含 SmartArt 形狀的檔案。
  2. 依索引取得第一張投影片的參照。
  3. 遍歷第一張投影片上的每個形狀。
  4. 尋找具有指定樣式的 SmartArt 形狀。
  5. 將新樣式指派給 SmartArt 形狀。
  6. 儲存簡報。
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation("SmartArt.pptx") as presentation:
    # 遍歷第一張投影片上的每個形狀。
    for shape in presentation.slides[0].shapes:
        # 檢查形狀是否為 SmartArt 形狀。
        if isinstance(shape, smartart.SmartArt):
            # 檢查 SmartArt 樣式。
            if shape.quick_style == smartart.SmartArtQuickStyleType.SIMPLE_FILL:
                # 變更 SmartArt 樣式。
                smart.quick_style = smartart.SmartArtQuickStyleType.CARTOON
    # 儲存簡報。
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

變更 SmartArt 形狀的色彩樣式

此範例說明如何變更 SmartArt 形狀的色彩樣式。範例程式碼會定位具有指定色彩樣式的 SmartArt 形狀並更新它。

  1. 建立 Presentation 類別的實例並載入包含 SmartArt 形狀的簡報。
  2. 依索引取得第一張投影片的參照。
  3. 遍歷第一張投影片上的每個形狀。
  4. 檢查形狀是否為 SmartArt 物件。
  5. 定位具有指定色彩樣式的 SmartArt 形狀。
  6. 為該 SmartArt 形狀設定新的色彩樣式。
  7. 儲存簡報。
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation("SmartArt.pptx") as presentation:
    # 遍歷第一張投影片上的每個形狀。
    for shape in presentation.slides[0].shapes:
        # 檢查形狀是否為 SmartArt 形狀。
        if isinstance(shape, smartart.SmartArt):
            # 檢查顏色類型。
            if shape.color_style == smartart.SmartArtColorType.COLORED_FILL_ACCENT1:
                # 變更顏色類型。
                shape.color_style = smartart.SmartArtColorType.COLORFUL_ACCENT_COLORS
    # 儲存簡報。
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

常見問題

我可以將 SmartArt 作為單一物件進行動畫效果嗎?

是的。SmartArt 是形狀,因此您可以像對其他形狀一樣,透過動畫 API 套用 standard animations(進入、退出、強調、動作路徑)等動畫效果。

如果我不知道 SmartArt 的內部 ID,該如何在投影片上找到特定的 SmartArt?

設定並使用替代文字(AltText),並以該值搜尋形狀——這是定位目標形狀的建議做法。

我可以將 SmartArt 與其他形狀群組嗎?

是的。您可以將 SmartArt 與其他形狀(圖片、表格等)群組,然後 manipulate the group

我該如何取得特定 SmartArt 的影像(例如,用於預覽或報告)?

匯出該形狀的縮圖/影像;此函式庫可以將 render individual shapes 轉換為點陣檔(PNG/JPG/TIFF)。

將整份簡報轉換為 PDF 時,SmartArt 外觀會被保留嗎?

是的。渲染引擎針對 PDF export 追求高保真度,並提供多種品質與相容性選項。