版面投影片

本文示範如何在 Aspose.Slides for PHP via Java 中使用 Layout Slides。版面投影片定義了普通投影片所繼承的設計與格式。您可以新增、存取、複製與移除版面投影片,亦可清除未使用的版面以減少簡報檔案大小。

Add a Layout Slide

您可以建立自訂版面投影片以定義可重複使用的格式。例如,您可以新增一個文字方塊,使所有使用此版面的投影片皆顯示該文字方塊。

function addLayoutSlide() {
    $presentation = new Presentation();
    try {
        $masterSlide = $presentation->getMasters()->get_Item(0);

        // 建立一個使用空白版面類型且具有自訂名稱的版面投影片。
        $layoutSlide = $presentation->getLayoutSlides()->add($masterSlide, SlideLayoutType::Blank, "Main layout");

        $presentation->save("layout_slide.pptx", SaveFormat::Pptx);
    } finally {
        $presentation->dispose();
    }
}

💡 Tip 1: 版面投影片充當個別投影片的模板。您只需定義一次共用元素,便可在多張投影片中重複使用。
💡 Tip 2: 當您在版面投影片上新增形狀或文字時,所有基於該版面的投影片都會自動顯示此共用內容。
以下的螢幕截圖顯示兩張投影片,各自繼承自同一版面的文字方塊。

Slides Inheriting Layout Content

Access a Layout Slide

function accessLayoutSlide() {
    $presentation = new Presentation("layout_slide.pptx");
    try {
        // 依索引存取。
        $firstLayoutSlide = $presentation->getLayoutSlides()->get_Item(0);

        // 依版面類型存取。
        $blankLayoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
    } finally {
        $presentation->dispose();
    }
}

Remove a Layout Slide

function removeLayoutSlide() {
    $presentation = new Presentation("layout_slide.pptx");
    try {
        // 依類型取得版面投影片並將其移除。
        $layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Custom);
        $presentation->getLayoutSlides()->remove($layoutSlide);

        $presentation->save("layout_slide_removed.pptx", SaveFormat::Pptx);
    } finally {
        $presentation->dispose();
    }
}

Remove Unused Layout Slides

function removeUnusedLayoutSlides() {
    $presentation = new Presentation("layout_slide.pptx");
    try {
        // 自動移除所有未被任何投影片參照的版面投影片。
        $presentation->getLayoutSlides()->removeUnused();

        $presentation->save("layout_slides_removed.pptx", SaveFormat::Pptx);
    } finally {
        $presentation->dispose();
    }
}

Clone a Layout Slide

function cloneLayoutSlides() {
    $presentation = new Presentation("layout_slide.pptx");
    try {
        // 依類型取得現有的版面投影片。
        $blankLayoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);

        // 複製版面投影片至版面投影片集合的末端。
        $clonedLayoutSlide = $presentation->getLayoutSlides()->addClone($blankLayoutSlide);

        $presentation->save("layout_slide_cloned.pptx", SaveFormat::Pptx);
    } finally {
        $presentation->dispose();
    }
}

Summary: 版面投影片是管理投影片間一致格式的強大工具。Aspose.Slides 提供完整的建立、管理與最佳化版面投影片的控制權。