Cross-Platform Support

Designed for C# and VB.NET — Runs on .NET 10, 9, 8, .NET Framework 4.6.2+.

DevExpress Presentation API – Quick Start

Set up DevExpress Presentation API on your machine and build
presentation workflows in your next great DevExpress-powered .NET application.

Windows-based Installer

Run our Unified Installer (includes all DevExpress components and libraries) to start your free 30-day trial.

Free 30-Day Trial

NuGet

Install the DevExpress.Docs.Presentation NuGet package to start your free 30-day trial. Copy the installation command and add the package to your project using NuGet CLI.

dotnet add package DevExpress.Docs.PresentationCopy

Required Namespace and Class

Namespace:

Class:

DevExpress.Docs.Presentation

Presentation

Quick Start Code

  • C#
using DevExpress.Docs.Presentation; 

using (FileStream fs = File.OpenRead("mypresentation.pptx")) { 
  Presentation presentation = new Presentation(fs); 
  presentation.ExportToPdf(new FileStream("exported-doc.pdf", FileMode.Create)); 
}
Copy

Supported Presentation Elements

Use DevExpress Presentation API to add, access, and modify
the following PowerPoint presentation elements.

Slides

Slide Layouts

Slide/Note Masters

Speaker Notes

Shapes & Images

Connectors

Placeholders

Tables

Paragraphs & Text

Lists

Document Properties

View Properties

Themes

Create & Manage Presentations

Automate PowerPoint presentation generation in .NET apps. Create slides from scratch,
modify layouts, update content, and restructure presentations entirely in code.

Merge Presentations

Combine multiple PowerPoint files into a single presentation. Preserve slide structure, layouts, themes, and formatting.

Documentation | Demo

Split Presentation

Extract selected slides, append them to another presentation, or save them as separate presentation files.

Documentation | Demo

Organize Slides

Reorder, duplicate, insert, or remove slides programmatically to restructure decks with ease.

Documentation

Manage Slide Masters and Layouts

Create, modify, and apply slide masters and layouts to ensure consistent branding and design across presentations.

Documentation

Manage Presentation Text

Find, read, extract, edit, and format text across slides, shapes, placeholders, tables, and speaker notes.

Documentation | Demo

Generate and Insert Content

Create slides from scratch. Insert text shapes, tables, images, and other presentation elements.

Documentation

Modify Document Properties

Read and update document information such as title, author, subject, keywords, and custom properties. Enhance document classification and searchability.

Documentation | Demo

Set View Properties

Configure presentation view settings, including slide size, display modes, and other visual preferences.

Documentation

  • C#
using DevExpress.Docs.Presentation;

using var mergedPresentation = new Presentation();
mergedPresentation.Slides.Clear();

// Append all slides from the first speaker's deck
using var inputStream1 = new MemoryStream(File.ReadAllBytes("Speaker1.pptx"));
using var speaker1 = new Presentation(inputStream1, DocumentFormat.Pptx);
foreach (Slide slide in speaker1.Slides)
    mergedPresentation.Slides.Add(slide);

// Append all slides from the second speaker's deck
using var inputStream2 = new MemoryStream(File.ReadAllBytes("Speaker2.pptx"));
using var speaker2 = new Presentation(inputStream2, DocumentFormat.Pptx);
foreach (Slide slide in speaker2.Slides)
    mergedPresentation.Slides.Add(slide);

// Add a cover slide at the beginning
var coverSlide = new Slide(SlideLayoutType.Title);
((Shape)coverSlide.Shapes[0]).TextArea.Text = "Conference Keynote";
mergedPresentation.Slides.Insert(0, coverSlide);

mergedPresentation.DocumentProperties.Author = "Jane Doe";
mergedPresentation.DocumentProperties.Title = "Conference Keynote";
using var mergedStream = new MemoryStream();
mergedPresentation.SaveDocument(mergedStream, DocumentFormat.Pptx);
Copy

File Conversion & Export

Convert presentations between PowerPoint formats and export files to PDF or image formats.
Turn presentations into printable reports and convert slides to raster or vector images
without sacrificing quality. Our cross-platform printing, PDF, and image export capabilities
ensure consistent results in Windows, macOS, and Linux environments.

Convert to PowerPoint Formats

Convert presentations between PowerPoint formats ( PPTX, PPTM, POTX, and POTM). Preserve slides, layouts, themes, and formatting while adapting presentations to different workflows and compatibility requirements.

Documentation | Demo

Export Presentation to PDF

Convert PowerPoint presentations to high-quality PDF suitable for sharing and printing. Define document properties, security settings, and attach files to your PDF output.

Documentation | Demo

Print Presentations

Print presentations from apps deployed to Windows, Linux, and macOS environments. Send files to printers or print queues with full control over layout and relevant page settings.

Documentation

  • C#
using DevExpress.Docs.Pdf;
using DevExpress.Docs.Presentation;

using var inputStream = new MemoryStream(File.ReadAllBytes("Presentation.pptx"));
using var presentation = new Presentation(inputStream, DocumentFormat.Pptx);

// Save presentations in different PowerPoint formats
using var potxStream = new MemoryStream();
presentation.SaveDocument(potxStream, DocumentFormat.Potx);

// Export to PDF with custom metadata and encryption 
using var pdfStream = new MemoryStream();
var pdfOptions = new DevExpress.Docs.Presentation.Export.PdfExportOptions();
pdfOptions.DocumentOptions.Author = "Jane Doe, CFO";
pdfOptions.DocumentOptions.Title = "Investor Report";
var encryption = new EncryptionOptions("ownerpassword", "userpassword") {
    Algorithm = EncryptionAlgorithm.AES256,
    DataExtractionPermissions = DocumentDataExtractionPermissions.NotAllowed,
    PrintPermissions = DocumentPrintPermissions.Allowed
};
pdfOptions.EncryptionOptions = encryption;
presentation.ExportToPdf(pdfStream, pdfOptions);
Copy

Shape Support

Create, copy, customize, and manage shapes across slides and layouts with full programmatic control.
DevExpress Presentation API supports 170+ PowerPoint-compatible shape types, from simple
text boxes and connectors to tables and complex shapes with custom geometry.

Shape Management

Create, duplicate, move, resize, and delete shapes across slides and layouts with precise control over positioning and layering.

Documentation

Group and Ungroup Shapes

Combine multiple shapes into a single group for easier manipulation or ungroup them to edit individual elements.

Documentation

Edit and Format Shape Text

Insert and modify text content within shapes with full control over text structure and formatting. Adjust font settings, alignment, spacing, indentation, and numbering.

Documentation

Insert Pictures

Add images to slides and manage their size, position, cropping, and formatting within the presentation. All popular image formats are supported - PNG, JPG, BMP, SVG, and more.

Documentation

Protect Shapes

Programmatically restrict shape editing operations by locking shape position, size, group state, or content.

Documentation

Accessibility Attributes

Set alternative text and descriptions to improve presentation compatibility with accessibility tools. Mark visuals as decorative to help screen readers locate meaningful content.

Supported Shape Types

Text Box

Preset Shape

Custom Geometry

Connector

Group

Picture

Table

Placeholder

Table Support

Create, access, and manage PowerPoint tables programmatically. The DevExpress Presentation API provides
a comprehensive table model with precise control over structure, layout, and styling.

Insert Tables

Create tables on slides: define the number of rows and columns, position, and overall table size.

Documentation | Demo

Manipulate Rows, Columns, Cells

Add, remove, duplicate, or resize rows and columns, merge or split table cells, and adjust table structure programmatically.

Manage Cell Content

Insert, delete, and format text within table cells. Format individual cells with borders, shading, alignment, background fills and other styling options.

Table Styles

Apply predefined, theme-aware table styles. Easily style banded rows and columns, first and last columns, and header and total rows to match your presentation design.

Documentation

  • C#
using DevExpress.Docs.Presentation;

// Build a workstream breakdown presentation
using var presentation = new Presentation();
Slide slide = presentation.Slides[0];
slide.Shapes.Clear();

// Add a workstream table
Table workstreamTable = new Table(4, 3);
workstreamTable.X = 250; workstreamTable.Y = 250;
workstreamTable.Width = 3500;

// Fill the table with data and apply formatting
var tableData = new string[,] {
    { "Workstream", "Owner", "Progress" },
    { "Data Intake", "Team A", "100%" },
    { "Normalization", "Team B", "85%" },
    { "Validation", "Team C", "90%" }
};
for (int i = 0; i < workstreamTable.Rows.Count; i++)
    for (int j = 0; j < workstreamTable.Columns.Count; j++) {
        TableCell cell = workstreamTable[i, j];
        cell.TextArea.Text = tableData[i, j];
        var properties = cell.TextArea.Paragraphs[0].Properties;
        properties.Alignment = TextParagraphAlignment.Center;
        properties.TextProperties.FontSize = 30;
    }
workstreamTable.Style = new ThemedTableStyle(TableStyleType.MediumStyle3);
slide.Shapes.Add(workstreamTable);

using var outputStream = new MemoryStream();
presentation.SaveDocument(outputStream, DocumentFormat.Pptx);
Copy

Format Presentation

Apply consistent formatting across slides, shapes, paragraphs, and text elements. The DevExpress Presentation API
allows you to control themes, backgrounds, typography, and layout styling programmatically.

Slide Background

Define slide background fills using solid colors, gradients, images, or theme-based styles to maintain a consistent visual design.

Documentation

Customize Themes

Apply and modify presentation themes to control colors, fonts, and effects across all slides. Customize and remap the color scheme while maintaining background and font color consistency.

Documentation

Format Shapes

Customize fill, outline, text formatting, effects, and other visual properties to match presentation themes and design requirements.

Manage Lists

Create and format bullet and numbered lists, customize list styles, and control indentation and hierarchy levels.

Documentation

  • C#
using DevExpress.Docs;
using DevExpress.Docs.Presentation;
using System.Drawing;

using var inputStream = new MemoryStream(File.ReadAllBytes("Presentation.pptx"));
using var presentation = new Presentation(inputStream, DocumentFormat.Pptx);

// Customize the presentation theme (colors and fonts)
var theme = presentation.SlideMasters[0].Theme;
theme.ColorScheme.Accent1 = new OfficeColor(Color.FromArgb(0, 120, 212));
theme.ColorScheme.Accent2 = new OfficeColor(Color.FromArgb(16, 124, 16));
theme.FontScheme.MajorFont = new ThemeFont("Segoe UI", "Calibri");
theme.FontScheme.MinorFont = new ThemeFont("Arial", "Helvetica");

// Set a gradient background for all slides
var gradient = new GradientFill(GradientType.Linear);
gradient.GradientStops.Add(new GradientStop(Color.FromArgb(23, 43, 77), 0));
gradient.GradientStops.Add(new GradientStop(Color.FromArgb(52, 94, 163), 100));
var customBackground = new CustomSlideBackground(gradient);
foreach (Slide slide in presentation.Slides) {
    slide.Background = customBackground;
}

using var outputStream = new MemoryStream();
presentation.SaveDocument(outputStream, DocumentFormat.Pptx);
Copy

Placeholders & Speaker Notes

Control slide information elements and speaker notes programmatically. Use the DevExpress Presentation API
to manage header, footer, slide number, date/time, and other placeholders. Insert speaker notes
for entire presentations or individual slides.

Manage Headers and Footers

Add or hide headers and footers on all or individual slides. Customize header/footer sections in slide masters and layouts. Insert dynamic content using built-in placeholders.

Documentation

Work with Speaker Notes

Add, remove, read, or edit speaker notes associated with slides to store talking points, context, summaries, or accessibility text.

Documentation | Demo

Manage Placeholders

Access and modify slide placeholders to build custom layouts and programmatically populate titles, text areas, and content regions.

Documentation

  • C#
using DevExpress.Docs.Presentation;

using var inputStream = new MemoryStream(File.ReadAllBytes("Presentation.pptx"));
using var presentation = new Presentation(inputStream, DocumentFormat.Pptx);

// Add footers, slide numbers, and date to all slides
var hfManager = presentation.HeaderFooterManager;
hfManager.AddFooterPlaceholder(presentation.Slides, " Jane Doe Corp — Confidential");
hfManager.AddSlideNumberPlaceholder(presentation.Slides);
hfManager.AddDateTimePlaceholder(presentation.Slides);

// Add speaker notes with talking points to each slide
string[] talkingPoints = {
    "Welcome the audience and introduce the agenda.",
    "Discuss Q2 revenue growth and key metrics.",
    "Highlight product roadmap milestones for H2.",
    "Open the floor for Q&A."
};
for (int i = 0; i < talkingPoints.Length; i++) {
    Slide slide = presentation.Slides[i];
    if (slide.Notes == null)
        slide.Notes = new NotesSlide();
    slide.Notes.TextArea.Text = talkingPoints[i];
}

using var outputStream = new MemoryStream();
presentation.SaveDocument(outputStream, DocumentFormat.Pptx);
Copy

AI-ready PowerPoint Presentation APIs

DevExpress PowerPoint Presentation API offers backend-ready AI-powered extensions that can summarize, translate,
proofread, and chat with content using any AI model. Our AI extensions integrate seamlessly with both cloud-based
services (Azure OpenAI, OpenAI, Google Gemini) and offline models (Ollama, ONNX Runtime, AI Foundry Local)
via the Microsoft.Extensions.AI library and its IChatClient interface.

Integrate AI Provider of Your Choice

Choose and integrate the AI service provider that fits your security, cost, and performance requirements.

Documentation

Summarize Presentations

Generate concise executive summaries from long slide decks. Use the output as speaker notes or share as meeting recap / key takeaways.

Documentation

Translate and Proofread Text

Translate slide text into any supported language while preserving structure and layout. Improve clarity, tone, and grammar to deliver polished and professional presentations with AI-powered proofreading.

Documentation

Chat with Presentation Data

Turn presentations into searchable knowledge sources and let users ask questions in plain language — perfect for internal knowledge bases, training materials, and enterprise portals. Large presentations are automatically chunked to reduce token usage and ensure fast response times in production environments.

Documentation

  • C#
using Azure.AI.OpenAI;
using DevExpress.AIIntegration;
using DevExpress.AIIntegration.Docs;
using DevExpress.Docs.Presentation;
using Microsoft.Extensions.AI;
using System.Globalization;

string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string apiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_APIKEY");
string model = "gpt-4o-mini";

IChatClient client = new AzureOpenAIClient(
    new Uri(endpoint), new System.ClientModel.ApiKeyCredential(apiKey))
    .GetChatClient(model).AsIChatClient();
AIExtensionsContainerDefault aiContainer = AIExtensionsContainerConsole.CreateDefaultAIExtensionContainer(client);
var aiService = aiContainer.CreateAIDocProcessingService();

using var inputStream = new MemoryStream(File.ReadAllBytes("Presentation.pptx"));
using var presentation = new Presentation(inputStream, DocumentFormat.Pptx);

// Summarize a presentation
string summary = await aiService.SummarizeAsync(presentation, SummarizationMode.Abstractive);

// Proofread entire presentation
await aiService.ProofreadAsync(presentation, new CultureInfo("en-US"));

// Translate the first slide into German
await aiService.TranslateAsync(presentation.Slides[0], new CultureInfo("de-DE"));

// Chat with presentation data(RAG)
string answer = await aiService.AskAIAsync(
    presentation,
    "What are the key financial takeaways?",
    new RagOptions { ChunkSize = 800, AugmentationChunkCount = 8 });
Copy

FAQ — PowerPoint Presentation API

 
Is Microsoft PowerPoint® required to create presentations with the DevExpress PowerPoint Presentation API?

No. You do not need to install PowerPoint® to generate PPTX, PPTM, POTX, or POTM files. DevExpress PowerPoint Presentation API is a standalone library that creates presentations programmatically.

  • C#
using DevExpress.Docs.Presentation;
using System.Drawing;

// Create a new presentation
Presentation presentation = new Presentation();

// Remove default slide and create a blank slide
presentation.Slides.Clear();
Slide slide = new Slide(SlideLayoutType.Blank);

// Add a title shape with formatted text
Shape titleShape = new Shape(ShapeType.Rectangle, 100, 100, 8000, 800);
titleShape.TextArea = new TextArea("Quarterly Sales Report");
titleShape.TextArea.Paragraphs[0].Properties.TextProperties.FontSize = 44;
titleShape.Fill = new SolidFill(Color.Transparent);
slide.Shapes.Add(titleShape);
 

// Add the slide to the presentation
presentation.Slides.Add(slide);

// Save the presentation
presentation.SaveDocument("report.pptx");
Copy
Does the PowerPoint Presentation support .NET?

Yes. DevExpress PowerPoint Presentation API supports .NET 10, .NET 9, and .NET 8. Our PoerPoint presentation generation API works in apps that run on Windows, Linux, and macOS. You can deploy your apps on Azure and AWS.

What .NET Framework versions does the PowerPoint Presentation API support?

DevExpress PowerPoint Presentation API supports .NET Framework 4.6.2, 4.7, and 4.8 (current version v25.2). For complete version compatibility information, refer to our prerequisites documentation: Office File API Prerequisites.

How is the PowerPoint Presentation API licensed?

DevExpress PowerPoint Presentation API is licensed per developer. Each developer using the API requires an individual license. Licensing is not based on the number of machines, deployments, CPUs, or end users.

The PowerPoint Presentation API is available through two licensing options:

For complete licensing terms, refer to the DevExpress End-User License Agreement.

Which NuGet package do I need for the PowerPoint Presentation API?

For .NET projects, install the DevExpress.Docs.Presentation NuGet package. This package includes all dependencies required to create, modify, and save PowerPoint presentations.

For .NET Framework projects using the DevExpress Unified Component Installer, reference the following v25.2+ assemblies:

  • DevExpress.Docs.Presentation.dll
  • DevExpress.Data.dll
  • DevExpress.Drawing.dll
  • DevExpress.Printing.Core.dll
  • DevExpress.Office.Core.dll
  • DevExpress.Docs.Core.dll
  • DevExpress.Pdf.Core.dll
What can I do with the PowerPoint Presentation API?

DevExpress PowerPoint Presentation API allows you to create, load, modify, save, and export presentations programmatically. You can manage slide masters and layouts, add shapes, text, images, tables, and charts, apply themes and formatting, search and replace text content, protect presentations with passwords, digitally sign documents, merge and split presentations, and export to PDF.

Does the PowerPoint Presentation API support AI-powered features?

Yes. DevExpress Presentation API includes AI-powered extensions for presentation processing. These extensions support translation of entire presentations or specific slides, summarization of presentation content, and proofreading capabilities while preserving original formatting.

To use AI extensions, install the DevExpress.AIIntegration.Docs NuGet package.

Refer to our documentation for implementation details: AI-powered Extensions for DevExpress Office File API.

How do I get started with the PowerPoint Presentation API?