Presentation Class
A non-visual component that allows you to generate presentations from scratch and manipulate existing presentations in PPTX format.
Namespace: DevExpress.Docs.Presentation
Assembly: DevExpress.Docs.Presentation.v25.1.dll
NuGet Package: DevExpress.Docs.Presentation
Declaration
Remarks
The Presentation Document API is a cross-platform .NET library that allows you to create, load, modify, save, and print presentations in code. You can use this library in desktop and web applications that target a variety of platforms (Windows Forms, WPF, ASP.NET Web Forms, ASP.NET MVC, ASP.NET Core, and Blazor).
To create your first presentation from scratch, follow our step-by-step tutorial:
Important
You need a license for the DevExpress Office File API Subscription or DevExpress Universal Subscription to use the PDF Document API.
Warning
The Presentation
should not be accessed simultaneously by different threads.
Example
The following code snippet creates a new presentation, adds three slides, and populates slides with content:
using DevExpress.Docs.Presentation;
using DevExpress.Drawing;
using System.Drawing;
namespace DxPresentationGetStarted;
public class Program {
public static void Main(string[] _) {
// Create a new presentation and remove the default empty slide
Presentation presentation = new Presentation();
presentation.Slides.Clear();
// Specify a custom background color for the slide master to share this background across all child slides
SlideMaster slideMaster = presentation.SlideMasters[0];
slideMaster.Background = new CustomSlideBackground(new SolidFill(Color.FromArgb(194, 228, 249)));
// Create a slide with the Title layout
Slide slide1 = new Slide(slideMaster.Layouts.Get(SlideLayoutType.Title));
foreach (Shape shape in slide1.Shapes) {
// Specify the centered title text
if (shape.PlaceholderSettings.Type is PlaceholderType.CenteredTitle) {
shape.TextArea = new TextArea("Daily Testing Status Report");
}
// Set the subtitle to the current date
if (shape.PlaceholderSettings.Type is PlaceholderType.Subtitle) {
shape.TextArea = new TextArea($"{DateTime.Now: dddd, MMMM d, yyyy}");
}
}
presentation.Slides.Add(slide1);
// Create a slide with based on the Object layout
Slide slide2 = new Slide(slideMaster.Layouts.GetOrCreate(SlideLayoutType.Object));
foreach (Shape shape in slide2.Shapes) {
// Specify the slide title
if (shape.PlaceholderSettings.Type is PlaceholderType.Title) {
shape.TextArea = new TextArea("Today’s Highlights");
}
// Add a list of paragraths to the slide
if (shape.PlaceholderSettings.Type is PlaceholderType.Body) {
TextArea textArea = new TextArea();
textArea.Paragraphs.Clear();
textArea.Paragraphs.Add(new TextParagraph("5 successful builds"));
textArea.Paragraphs.Add(new TextParagraph("2 failed builds"));
textArea.Paragraphs.Add(new TextParagraph("12 new bugs reported"));
textArea.Paragraphs.Add(new TextParagraph("3 deployments"));
textArea.Paragraphs.Add(new TextParagraph("1 rollback"));
shape.TextArea = textArea;
}
}
presentation.Slides.Add(slide2);
// Create a slide based on the Object layout
Slide slide3 = new Slide(slideMaster.Layouts.GetOrCreate(SlideLayoutType.Object));
foreach (Shape shape in slide3.Shapes) {
// Specify the slide title
if (shape.PlaceholderSettings.Type is PlaceholderType.Title) {
shape.TextArea = new TextArea("Build Status");
}
// Add an image to a slide placeholder
if (shape.PlaceholderSettings.Type is PlaceholderType.Body) {
shape.TextArea = new TextArea(" ");
string imagePath = @"..\..\..\data\table.png";
Stream stream = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
PictureFill fill = new PictureFill(DXImage.FromStream(stream));
fill.Stretch = true;
shape.Fill = fill;
}
}
presentation.Slides.Add(slide3);
// Add slide numbers and a footer to all slides
presentation.HeaderFooterManager.AddSlideNumberPlaceholder(presentation.Slides);
presentation.HeaderFooterManager.AddFooterPlaceholder(presentation.Slides, "ProductXCompany");
// Save the presentation as to a PPTX file
FileStream outputStream = new FileStream(@"..\..\..\data\my-presentation.pptx", FileMode.Create);
presentation.SaveDocument(outputStream);
outputStream.Dispose();
// Export the presentation to PDF
presentation.ExportToPdf(new FileStream(@"..\..\..\data\exported-document.pdf", FileMode.Create));
}
}