投影片

本文提供了一系列範例,示範如何使用 Aspose.Slides for .NET 來操作投影片。您將學習如何使用 Presentation 類別新增、存取、複製、重新排序以及移除投影片。

以下每個範例皆包含簡要說明,並附有 C# 程式碼片段。

新增投影片

若要新增投影片,必須先選擇版面配置。本範例中,我們使用 Blank 版面,並向簡報中新增一張空白投影片。

static void AddSlide()
{
    using var presentation = new Presentation();

    // 每張投影片皆基於版面配置,而版面配置本身則來源於母片。
    // 使用 Blank 版面建立新投影片。
    var blankLayout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

    // Add a new empty slide using the selected layout.
    presentation.Slides.AddEmptySlide(layout: blankLayout);
}

💡 Note: 每個投影片版面都是從母片衍生而來,母片定義了整體設計與占位符結構。下圖說明了 PowerPoint 中母片與其相關版面如何組織。

Master and Layout Relationship

依索引存取投影片

您可以透過索引存取投影片,或根據參考取得投影片的索引。此功能在遍歷或修改特定投影片時相當有用。

static void AccessSlide()
{
    // 預設情況下,簡報會建立一張空白投影片。
    using var presentation = new Presentation();

    // 再新增一張空白投影片。
    var blankLayout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);
    presentation.Slides.AddEmptySlide(layout: blankLayout);

    // 依索引存取投影片。
    var firstSlide = presentation.Slides[0];
    var secondSlide = presentation.Slides[1];

    // 從參考取得投影片索引,然後依索引存取它。
    var secondSlideIndex = presentation.Slides.IndexOf(secondSlide);
    var secondSlideByIndex = presentation.Slides[secondSlideIndex];
}

複製投影片

此範例示範如何複製現有投影片。複製出的投影片會自動加入投影片集合的末端。

static void CloneSlide()
{
    // 預設情況下,簡報只包含一張空白投影片。
    using var presentation = new Presentation();
    var firstSlide = presentation.Slides[0];

    // 複製第一張投影片;它會被加入到簡報的末端。
    var clonedSlide = presentation.Slides.AddClone(sourceSlide: firstSlide);

    // 複製投影片的索引為 1(簡報中的第二張投影片)。
    var clonedSlideIndex = presentation.Slides.IndexOf(clonedSlide);
}

重新排序投影片

您可以透過將投影片移至新索引來變更順序。在此例中,我們將複製的投影片移至第一個位置。

static void ReorderSlide()
{
    using var presentation = new Presentation();
    var firstSlide = presentation.Slides[0];

    // 新增第一張投影片的複本(預設建立)。
    var clonedSlide = presentation.Slides.AddClone(firstSlide);

    // 將複製的投影片移至第一個位置(其他投影片往下移)。
    presentation.Slides.Reorder(index: 0, clonedSlide);
}

移除投影片

若要移除投影片,只需參考該投影片並呼叫 Remove。此範例先新增第二張投影片,然後移除原始投影片,僅剩下新加入的那張。

static void RemoveSlide()
{
    using var presentation = new Presentation();

    // 新增一張空白投影片,除了預設的第一張投影片之外。
    var blankLayout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);
    var secondSlide = presentation.Slides.AddEmptySlide(layout: blankLayout);

    // 移除第一張投影片;僅保留新加入的投影片。
    var firstSlide = presentation.Slides[0];
    presentation.Slides.Remove(firstSlide);
}