Create Placeholders in PowerPoint
With the following example, you will learn how to create and customize placeholders in C# and VB.NET using the GemBox.Presentation API.
using GemBox.Presentation;
using System.Linq;
class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
var presentation = new PresentationDocument();
// Create new master slide.
var master = presentation.MasterSlides.AddNew();
// Create new empty layout slide for existing master slide.
var layout = master.LayoutSlides.AddNew(SlideLayoutType.Custom);
// Create title and subtitle placeholders on layout slide.
layout.Content.AddPlaceholder(PlaceholderType.Title);
layout.Content.AddPlaceholder(PlaceholderType.Subtitle);
// Create new slide; will inherit all placeholders (title and subtitle) from template layout slide.
var slide = presentation.Slides.AddNew(layout);
// Retrieve "Title" placeholder.
var shape = slide.Content.Drawings.OfType<Shape>().Where(item => item.Placeholder?.PlaceholderType == PlaceholderType.Title).First();
// Set shape fill and outline format.
shape.Format.Outline.Fill.SetSolid(Color.FromName(ColorName.DarkGray));
shape.Format.Fill.SetSolid(Color.FromName(ColorName.LightGray));
// Set shape text.
shape.Text.AddParagraph().AddRun("Placeholders, GemBox.Presentation");
// Retrieve "Subtitle" placeholder.
shape = slide.Content.Drawings.OfType<Shape>().Where(item => item.Placeholder?.PlaceholderType == PlaceholderType.Subtitle).First();
// Set shape outline format.
shape.Format.Outline.Fill.SetSolid(Color.FromName(ColorName.DarkGray));
// Set shape text.
shape.Text.AddParagraph().AddRun("Shows how to use placeholders with GemBox.Presentation component.");
presentation.Save("Placeholders.pptx");
}
}
Imports GemBox.Presentation
Imports System.Linq
Module Program
Sub Main()
' If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Dim presentation = New PresentationDocument
' Create New master slide.
Dim master = presentation.MasterSlides.AddNew()
' Create New empty layout slide for existing master slide.
Dim layout = master.LayoutSlides.AddNew(SlideLayoutType.Custom)
' Create title And subtitle placeholders on layout slide.
layout.Content.AddPlaceholder(PlaceholderType.Title)
layout.Content.AddPlaceholder(PlaceholderType.Subtitle)
' Create New slide; will inherit all placeholders (title And subtitle) from template layout slide.
Dim slide = presentation.Slides.AddNew(layout)
' Retrieve "Title" placeholder.
Dim shape = slide.Content.Drawings.OfType(Of Shape).Where(Function(item) item.Placeholder IsNot Nothing AndAlso item.Placeholder.PlaceholderType = PlaceholderType.Title).First()
' Set shape fill and outline format.
shape.Format.Outline.Fill.SetSolid(Color.FromName(ColorName.DarkGray))
shape.Format.Fill.SetSolid(Color.FromName(ColorName.LightGray))
' Set shape text.
shape.Text.AddParagraph().AddRun("Placeholders, GemBox.Presentation")
' Retrieve "Subtitle" placeholder.
shape = slide.Content.Drawings.OfType(Of Shape).Where(Function(item) item.Placeholder IsNot Nothing AndAlso item.Placeholder.PlaceholderType = PlaceholderType.Subtitle).First()
' Set shape outline format.
shape.Format.Outline.Fill.SetSolid(Color.FromName(ColorName.DarkGray))
' Set shape text.
shape.Text.AddParagraph().AddRun("Shows how to use placeholders with GemBox.Presentation component.")
presentation.Save("Placeholders.pptx")
End Sub
End Module
Placeholder
elements are special drawings that establish a connection between a slide and its parent layout slide (Slide.ParentTemplate
), which consequently enables users to specify common properties like layout or formatting in a single place (the layout slide).
These settings are automatically propagated to all slides whose template parent is that layout slide. You can synchronize a slide with its parent layout slide by calling the Slide.Reset
method.