Zastosowanie lub zmiana układów slajdów w .NET

Wprowadzenie

Układ slajdu definiuje rozmieszczenie pól zastępczych i formatowanie treści na slajdzie. Kontroluje, które pola zastępcze są dostępne i gdzie się pojawiają. Układy slajdów pomagają szybko i konsekwentnie projektować prezentacje — niezależnie od tego, czy tworzysz coś prostego, czy bardziej złożonego. Niektóre z najczęściej używanych układów slajdów w programie PowerPoint to:

Układ slajdu tytułowego – Zawiera dwa pola zastępcze tekstu: jedno dla tytułu i jedno dla podtytułu.

Układ tytuł i treść – Zawiera mniejsze pole tytułu u góry oraz większe poniżej dla głównej treści (takiej jak tekst, wypunktowanie, wykresy, obrazy i inne).

Układ pusty – Nie zawiera żadnych pól zastępczych, dając pełną kontrolę nad projektowaniem slajdu od podstaw.

Układy slajdów są częścią wzorca slajdu (slide master), który jest slajdem najwyższego poziomu definiującym style układów w całej prezentacji. Do układów slajdów możesz uzyskać dostęp i modyfikować je poprzez wzorzec slajdu — po typie, nazwie lub unikalnym identyfikatorze. Alternatywnie możesz edytować konkretny układ slajdu bezpośrednio w prezentacji.

Aby pracować z układami slajdów w Aspose.Slides dla .NET, możesz używać:

Dodaj układy slajdów do prezentacji

Aby dostosować wygląd i strukturę swoich slajdów, możesz potrzebować dodać nowe układy slajdów do prezentacji. Aspose.Slides dla .NET umożliwia sprawdzenie, czy dany układ już istnieje, dodanie nowego w razie potrzeby i użycie go do wstawiania slajdów opartych na tym układzie.

  1. Utwórz instancję klasy Presentation.
  2. Uzyskaj dostęp do IMasterLayoutSlideCollection.
  3. Sprawdź, czy żądany układ slajdu już istnieje w kolekcji. Jeśli nie, dodaj potrzebny układ slajdu.
  4. Dodaj pusty slajd oparty na nowym układzie slajdu.
  5. Zapisz prezentację.

Poniższy kod C# pokazuje, jak dodać układ slajdu do prezentacji PowerPoint:

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
    // Przejdź przez typy układów slajdów, aby wybrać układ slajdu.
    IMasterLayoutSlideCollection layoutSlides = presentation.Masters[0].LayoutSlides;
    ILayoutSlide layoutSlide = layoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? layoutSlides.GetByType(SlideLayoutType.Title);

    if (layoutSlide == null)
    {
        // Sytuacja, w której prezentacja nie zawiera wszystkich typów układów.
        // Plik prezentacji zawiera tylko typy układów Blank i Custom.
        // Jednak układy slajdów z typami niestandardowymi mogą mieć rozpoznawalne nazwy,
        // takie jak "Title", "Title and Content", itp., które mogą być użyte do wyboru układu slajdu.
        // Możesz również oprzeć się na zestawie typów kształtów pól zastępczych.
        // Na przykład slajd tytułowy powinien mieć tylko typ pola zastępczego Title, i tak dalej.
        foreach (ILayoutSlide titleAndObjectLayoutSlide in layoutSlides)
        {
            if (titleAndObjectLayoutSlide.Name == "Title and Object")
            {
                layoutSlide = titleAndObjectLayoutSlide;
                break;
            }
        }

        if (layoutSlide == null)
        {
            foreach (ILayoutSlide titleLayoutSlide in layoutSlides)
            {
                if (titleLayoutSlide.Name == "Title")
                {
                    layoutSlide = titleLayoutSlide;
                    break;
                }
            }

            if (layoutSlide == null)
            {
                layoutSlide = layoutSlides.GetByType(SlideLayoutType.Blank);
                if (layoutSlide == null)
                {
                    layoutSlide = layoutSlides.Add(SlideLayoutType.TitleAndObject, "Title and Object");
                }
            }
        }
    }

    // Dodaj pusty slajd przy użyciu dodanego układu slajdu.
    presentation.Slides.InsertEmptySlide(0, layoutSlide);

    // Zapisz prezentację na dysku.  
    presentation.Save("Output.pptx", SaveFormat.Pptx);
}

Usuń nieużywane układy slajdów

Aspose.Slides udostępnia metodę RemoveUnusedLayoutSlides z klasy Compress, aby umożliwić usunięcie niechcianych i nieużywanych układów slajdów.

Poniższy kod C# pokazuje, jak usunąć układ slajdu z prezentacji PowerPoint:

using (Presentation presentation = new Presentation("Presentation.pptx"))
{
    Aspose.Slides.LowCode.Compress.RemoveUnusedLayoutSlides(presentation);
    
    presentation.Save("Output.pptx", SaveFormat.Pptx);
}

Dodaj pola zastępcze do układów slajdów

Aspose.Slides udostępnia właściwość ILayoutSlide.PlaceholderManager, która pozwala dodawać nowe pola zastępcze do układu slajdu.

Ten menedżer zawiera metody dla następujących typów pól zastępczych:

Placeholder PowerPoint ILayoutPlaceholderManager Metoda
Content AddContentPlaceholder(float x, float y, float width, float height)
Content (Vertical) AddVerticalContentPlaceholder(float x, float y, float width, float height)
Text AddTextPlaceholder(float x, float y, float width, float height)
Text (Vertical) AddVerticalTextPlaceholder(float x, float y, float width, float height)
Picture AddPicturePlaceholder(float x, float y, float width, float height)
Chart AddChartPlaceholder(float x, float y, float width, float height)
Table AddTablePlaceholder(float x, float y, float width, float height)
SmartArt AddSmartArtPlaceholder(float x, float y, float width, float height)
Media AddMediaPlaceholder(float x, float y, float width, float height)
Online Image AddOnlineImagePlaceholder(float x, float y, float width, float height)

Poniższy kod C# demonstruje, jak dodać nowe kształty pól zastępczych do układu pustego:

using (var presentation = new Presentation())
{
    // Pobierz układ slajdu Blank.
    ILayoutSlide layout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

    // Pobierz menedżera pól zastępczych układu slajdu.
    ILayoutPlaceholderManager placeholderManager = layout.PlaceholderManager;

    // Dodaj różne pola zastępcze do układu slajdu Blank.
    placeholderManager.AddContentPlaceholder(20, 20, 310, 270);
    placeholderManager.AddVerticalTextPlaceholder(350, 20, 350, 270);
    placeholderManager.AddChartPlaceholder(20, 310, 310, 180);
    placeholderManager.AddTablePlaceholder(350, 310, 350, 180);

    // Dodaj nowy slajd z układem Blank.
    ISlide newSlide = presentation.Slides.AddEmptySlide(layout);

    presentation.Save("Placeholders.pptx", SaveFormat.Pptx);
}

Rezultat:

The placeholders on the layout slide

Ustaw widoczność stopki dla układu slajdu

W prezentacjach PowerPoint elementy stopki, takie jak data, numer slajdu i własny tekst, mogą być wyświetlane lub ukrywane w zależności od układu slajdu. Aspose.Slides dla .NET pozwala kontrolować widoczność tych pól zastępczych stopki. Jest to przydatne, gdy chcesz, aby niektóre układy wyświetlały informacje stopki, a inne pozostały czyste i minimalistyczne.

  1. Utwórz instancję klasy Presentation.
  2. Pobierz odwołanie do układu slajdu po jego indeksie.
  3. Ustaw pole stopki slajdu jako widoczne.
  4. Ustaw pole numeru slajdu jako widoczne.
  5. Ustaw pole daty i godziny jako widoczne.
  6. Zapisz prezentację.

Poniższy kod C# pokazuje, jak ustawić widoczność stopki slajdu i wykonać powiązane operacje:

using (Presentation presentation = new Presentation("Presentation.ppt"))
{
    ILayoutSlideHeaderFooterManager headerFooterManager = presentation.LayoutSlides[0].HeaderFooterManager;

    if (!headerFooterManager.IsFooterVisible)
    {
        headerFooterManager.SetFooterVisibility(true);
    }

    if (!headerFooterManager.IsSlideNumberVisible)
    {
        headerFooterManager.SetSlideNumberVisibility(true);
    }

    if (!headerFooterManager.IsDateTimeVisible)
    {
        headerFooterManager.SetDateTimeVisibility(true);
    }

    headerFooterManager.SetFooterText("Footer text");
    headerFooterManager.SetDateTimeText("Date and time text");

    presentation.Save("Presentation.ppt", SaveFormat.Ppt);
}

Ustaw widoczność stopki potomnych układów slajdu

W prezentacjach PowerPoint elementy stopki, takie jak data, numer slajdu i własny tekst, mogą być kontrolowane na poziomie slajdu‑mistrza, aby zapewnić spójność we wszystkich układach slajdów. Aspose.Slides dla .NET umożliwia ustawienie widoczności i treści tych pól zastępczych stopki na slajdzie‑mistrzu i propagowanie tych ustawień do wszystkich potomnych układów slajdu. Takie podejście zapewnia jednolite informacje stopki w całej prezentacji.

  1. Utwórz instancję klasy Presentation.
  2. Pobierz odwołanie do slajdu‑mistrza po jego indeksie.
  3. Ustaw wszystkie pola stopki w mistrzu i w jego dzieciach jako widoczne.
  4. Ustaw wszystkie pola numeru slajdu w mistrzu i w jego dzieciach jako widoczne.
  5. Ustaw wszystkie pola daty i godziny w mistrzu i w jego dzieciach jako widoczne.
  6. Zapisz prezentację.

Poniższy kod C# demonstruje tę operację:

using (Presentation presentation = new Presentation("Presentation.ppt"))
{
    IMasterSlideHeaderFooterManager headerFooterManager = presentation.Masters[0].HeaderFooterManager;

    headerFooterManager.SetFooterAndChildFootersVisibility(true);
    headerFooterManager.SetSlideNumberAndChildSlideNumbersVisibility(true);
    headerFooterManager.SetDateTimeAndChildDateTimesVisibility(true);

    headerFooterManager.SetFooterAndChildFootersText("Footer text");
    headerFooterManager.SetDateTimeAndChildDateTimesText("Date and time text");

    presentation.Save("Output.pptx", SaveFormat.Pptx);
}

FAQ

Jaka jest różnica między slajdem master a układem slajdu?

Slajd master definiuje ogólny motyw i domyślne formatowanie, natomiast układy slajdów określają konkretne rozmieszczenie pól zastępczych dla różnych typów treści.

Czy mogę skopiować układ slajdu z jednej prezentacji do drugiej?

Tak, możesz sklonować układ slajdu z kolekcji LayoutSlides jednej prezentacji i wstawić go do innej za pomocą metody AddClone.

Co się stanie, jeśli usunę układ slajdu, który jest nadal używany przez slajd?

Jeśli spróbujesz usunąć układ slajdu, który jest nadal referencjonowany przynajmniej przez jeden slajd w prezentacji, Aspose.Slides zgłosi PptxEditException. Aby tego uniknąć, użyj RemoveUnusedLayoutSlides, który bezpiecznie usuwa tylko nieużywane układy slajdów.