Pas dia-indelingen toe of wijzig ze in .NET

Introductie

Een dia‑indeling bepaalt de rangschikking van plaatshoudervakken en de opmaak van de inhoud op een dia. Ze regelt welke plaatshouders beschikbaar zijn en waar ze verschijnen. Dia‑indelingen helpen je presentaties snel en consistent te ontwerpen — of je nu iets eenvoudigs of complexers maakt. Enkele van de meest voorkomende dia‑indelingen in PowerPoint zijn:

Title Slide layout – Bevat twee tekst‑plaatshouders: één voor de titel en één voor de ondertitel.

Title and Content layout – Beschikt over een kleinere titel‑plaatshouder bovenin en een grotere eronder voor de hoofdinhoud (zoals tekst, opsommingstekens, grafieken, afbeeldingen, enz.).

Blank layout – Heeft geen plaatshouders, zodat je de dia volledig zelf kunt ontwerpen.

Dia‑indelingen maken deel uit van een dia‑master, de bovenliggende dia die de indelingsstijlen voor de presentatie definieert. Je kunt indelingsdia’s benaderen en aanpassen via de dia‑master — op basis van type, naam of unieke ID. Als alternatief kun je een specifieke indelingsdia rechtstreeks in de presentatie bewerken.

Om met dia‑indelingen te werken in Aspose.Slides for .NET, kun je gebruiken:

Dia‑indelingen toevoegen aan presentaties

Om het uiterlijk en de structuur van je dia’s aan te passen, moet je mogelijk nieuwe indelingsdia’s aan een presentatie toevoegen. Aspose.Slides for .NET stelt je in staat te controleren of een specifieke indeling al bestaat, een nieuwe toe te voegen indien nodig, en deze te gebruiken om dia’s in te voegen op basis van die indeling.

  1. Maak een instantie van de Presentation‑klasse.
  2. Benader de IMasterLayoutSlideCollection.
  3. Controleer of de gewenste indelingsdia al bestaat in de collectie. Zo niet, voeg dan de benodigde indelingsdia toe.
  4. Voeg een lege dia toe op basis van de nieuwe indelingsdia.
  5. Sla de presentatie op.

De volgende C#‑code toont hoe je een dia‑indeling toevoegt aan een PowerPoint‑presentatie:

// Instantieer de Presentation-klasse die een PowerPoint-bestand vertegenwoordigt.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
    // Doorloop de verschillende indelingsdia-typen om een indelingsdia te selecteren.
    IMasterLayoutSlideCollection layoutSlides = presentation.Masters[0].LayoutSlides;
    ILayoutSlide layoutSlide = layoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? layoutSlides.GetByType(SlideLayoutType.Title);

    if (layoutSlide == null)
    {
        // Een situatie waarin de presentatie niet alle indelingstypen bevat.
        // Het presentiebestand bevat alleen de typen Blank en Custom.
        // Echter, indelingsdia’s met aangepaste typen kunnen herkenbare namen hebben,
        // zoals "Title", "Title and Content", enz., die gebruikt kunnen worden voor het selecteren van een indelingsdia.
        // Je kunt ook vertrouwen op een set van plaatshouder-vormtypen.
        // Bijvoorbeeld, een titeldia zou alleen de Title plaatshouder moeten hebben, enzovoort.
        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");
                }
            }
        }
    }

    // Voeg een lege dia toe met de toegevoegde indelingsdia.
    presentation.Slides.InsertEmptySlide(0, layoutSlide);

    // Sla de presentatie op naar schijf.  
    presentation.Save("Output.pptx", SaveFormat.Pptx);
}

Ongebruikte dia‑indelingen verwijderen

Aspose.Slides biedt de methode RemoveUnusedLayoutSlides van de Compress‑klasse om ongewenste en ongebruikte indelingsdia’s te verwijderen.

De volgende C#‑code laat zien hoe je een indelingsdia verwijdert uit een PowerPoint‑presentatie:

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

Plaatshouders toevoegen aan dia‑indelingen

Aspose.Slides biedt de eigenschap ILayoutSlide.PlaceholderManager waarmee je nieuwe plaatshouders aan een indelingsdia kunt toevoegen.

Deze manager bevat methoden voor de volgende plaatshoudertypen:

PowerPoint‑plaatshouder ILayoutPlaceholderManager‑methode
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)

De volgende C#‑code demonstreert hoe je nieuwe plaatshoudervormen toevoegt aan de Blank‑indelingsdia:

using (var presentation = new Presentation())
{
    // Haal de lege indelingsdia op.
    ILayoutSlide layout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

    // Haal de plaatshoudermanager van de indelingsdia op.
    ILayoutPlaceholderManager placeholderManager = layout.PlaceholderManager;

    // Voeg verschillende plaatshouders toe aan de lege indelingsdia.
    placeholderManager.AddContentPlaceholder(20, 20, 310, 270);
    placeholderManager.AddVerticalTextPlaceholder(350, 20, 350, 270);
    placeholderManager.AddChartPlaceholder(20, 310, 310, 180);
    placeholderManager.AddTablePlaceholder(350, 310, 350, 180);

    // Voeg een nieuwe dia toe met de lege indeling.
    ISlide newSlide = presentation.Slides.AddEmptySlide(layout);

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

Resultaat:

De plaatshouders op de indelingsdia

Voettekstekens zichtbaar maken voor een indelingsdia

In PowerPoint‑presentaties kunnen voettekstelementen zoals datum, dia‑nummer en aangepaste tekst worden getoond of verborgen afhankelijk van de dia‑indeling. Aspose.Slides for .NET stelt je in staat de zichtbaarheid van deze voettekst‑plaatshouders te regelen. Handig wanneer je voor bepaalde indelingen voettekst wilt weergeven en voor andere een strakke, minimale weergave wilt behouden.

  1. Maak een instantie van de Presentation‑klasse.
  2. Haal een referentie naar een indelingsdia op via de index.
  3. Zet de voettekst‑plaatshouder van de dia op zichtbaar.
  4. Zet de dia‑nummer‑plaatshouder op zichtbaar.
  5. Zet de datum‑tijd‑plaatshouder op zichtbaar.
  6. Sla de presentatie op.

De volgende C#‑code toont hoe je de zichtbaarheid van een dia‑voettekst instelt en gerelateerde acties uitvoert:

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);
}

Voettekst van onderliggende dia’s zichtbaar maken

In PowerPoint‑presentaties kunnen voettekstelementen zoals datum, dia‑nummer en aangepaste tekst op het niveau van de master‑dia worden beheerd om consistentie over alle indelingsdia’s te waarborgen. Aspose.Slides for .NET maakt het mogelijk de zichtbaarheid en inhoud van deze voettekst‑plaatshouders op de master‑dia in te stellen en deze instellingen door te geven aan alle onderliggende indelingsdia’s. Zo behoud je uniforme voettekstinformatie gedurende de hele presentatie.

  1. Maak een instantie van de Presentation‑klasse.
  2. Haal een referentie naar de master‑dia op via de index.
  3. Zet de voettekst‑plaatshouders van de master en alle onderliggende dia’s op zichtbaar.
  4. Zet de dia‑nummer‑plaatshouders van de master en alle onderliggende dia’s op zichtbaar.
  5. Zet de datum‑tijd‑plaatshouders van de master en alle onderliggende dia’s op zichtbaar.
  6. Sla de presentatie op.

De volgende C#‑code demonstreert deze bewerking:

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

Wat is het verschil tussen een master‑dia en een indelingsdia?

Een master‑dia bepaalt het algemene thema en de standaardopmaak, terwijl indelingsdia’s specifieke rangschikkingen van plaatshouders voor verschillende soorten inhoud definiëren.

Kan ik een indelingsdia van de ene presentatie naar de andere kopiëren?

Ja, je kunt een indelingsdia klonen vanuit de LayoutSlides‑collectie van een presentatie en deze invoegen in een andere met de AddClone‑methode.

Wat gebeurt er als ik een indelingsdia verwijder die nog door een dia wordt gebruikt?

Als je probeert een indelingsdia te verwijderen die nog door ten minste één dia in de presentatie wordt gerefereerd, zal Aspose.Slides een PptxEditException werpen. Gebruik in plaats daarvan RemoveUnusedLayoutSlides om veilig alleen de ongebruikte indelingsdia’s te verwijderen.