devexpress/agent-skills/devexpress-office-file-api-presentation

Claude Code and agent skill by devexpress/agent-skills

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Build .NET applications with the DevExpress Presentation API for creating, reading, modifying, and exporting PowerPoint presentations programmatically without Microsoft Office. Use when working with .pptx files, slides, shapes, text, tables, slide masters and layouts, themes, slide backgrounds, notes, headers/footers, or exporting presentations to PDF. Also use when someone mentions "DevExpress Presentation", "Presentation API", "DevExpress.Docs.Presentation", "create PowerPoint in C#", "pptx a…

Install

npx vskill@latest install devexpress/agent-skills/devexpress-office-file-api-presentation

SKILL.md

DevExpress Presentation API

The Presentation API is a cross-platform .NET library for creating, loading, modifying, saving, and printing PowerPoint presentations in code — without requiring Microsoft Office. It supports PPTX, PPTM, POTX, and POTM formats and can export to PDF. You can use it in console, desktop, and web applications targeting .NET 8+.

When to Use This Skill

Use this skill when you need to:

  • Create PowerPoint presentations (.pptx) programmatically without Microsoft Office
  • Load and read existing .pptx/.pptm/.potx/.potm files
  • Modify existing presentations (add/remove slides, update shapes and text)
  • Manage slides: add, remove, reorder, clone, or copy slides between presentations
  • Work with shapes: add geometric shapes, picture shapes, and configure fill and outline
  • Add and format text inside shapes (paragraphs, runs, bullets, font settings)
  • Create and customize tables on slides (rows, columns, cells, styles, borders)
  • Set slide backgrounds (solid color, gradient, pattern, picture)
  • Configure slide masters and layouts for consistent presentation design
  • Export presentations to PDF with options (security, image quality, signatures)
  • Merge or split presentations
  • Add, read, or remove speaker notes
  • Configure headers and footers on slides
  • Search, replace, or remove text across a presentation
  • Extract text and images from presentation slides
  • Print presentations
  • Configure themes, view settings, and document properties

Prerequisites & Installation

NuGet Packages
PackagePurpose
DevExpress.Docs.PresentationCore presentation processing (create, load, edit, save, export)
.NET (8/9/10+)
bash
dotnet add package DevExpress.Docs.Presentation

Important: All DevExpress packages in a project must share the same version number. A valid DevExpress license is required.

Non-Windows Development (Linux, macOS, Docker, Cloud)

The SkiaSharp-based drawing engine is enabled automatically on non-Windows platforms. Just add the drawing engine package: dotnet add package DevExpress.Drawing.Skia.

If you hit a DllNotFoundException for a Skia/HarfBuzz assembly, add the SkiaSharp native asset package matching your OS (SkiaSharp.NativeAssets.Linux, SkiaSharp.NativeAssets.macOS, etc.). See references/getting-started.md for the full setup and troubleshooting guide.

Before You Start — Ask the Developer

If the host agent has a structured question-asking tool available, use it to ask these questions one at a time with clear options — for example, Claude Code's AskUserQuestion tool or GitHub Copilot's askQuestions tool. If no such tool is available, ask the questions directly in the chat response before generating code.

Before generating code, ask these questions to avoid rework:

General Questions
  1. Target framework: Are you using .NET 8+ or .NET Framework 4.x?
  2. New or existing project?: Are you creating a new project or adding to an existing one?
  3. Hosting model: Console app, ASP.NET Core, Blazor, MAUI, WinForms, WPF, or something else?
Presentation-Specific Questions
  1. Operation type: Create new presentation / read existing / modify slides / merge-split / export to PDF?
  2. Features needed: Slides / shapes / text / tables / backgrounds / themes / notes / headers-footers?
  3. Output: Do you need to extract content, or produce a .pptx, a PDF, or per-slide images (PNG/JPEG via ExportToImages)?
Rule: If the developer's answer is ambiguous or missing, ask before generating code. Do not guess.

Component Overview

The Presentation API provides:

  • Document management: Create, load, and save presentations (Presentation, DocumentFormat)
  • Slide management: Add, remove, reorder, clone, and copy slides (Slide, SlideCollection)
  • Masters and layouts: Define consistent slide designs (SlideMaster, SlideLayout, SlideLayoutType)
  • Shapes and text: All shape types, text areas, paragraphs, runs, and formatting (Shape, TextArea, TextParagraph, TextRun)
  • Tables: Create and customize slide tables (Table, TableCell, TableRow, TableColumn)
  • Export and print: PDF export with options, printing (ExportToPdf, PdfExportOptions, PrintOptions)
Core Entry Point
csharp
using DevExpress.Docs.Presentation;
// Create a new presentation (contains one default slide)
Presentation presentation = new Presentation();
// Load from file
using FileStream fs = File.OpenRead("input.pptx");
Presentation loaded = new Presentation(fs);
// Load from byte array
Presentation fromBytes = new Presentation(File.ReadAllBytes("input.pptx"));
// Save
using FileStream output = new FileStream("output.pptx", FileMode.Create);
presentation.SaveDocument(output);
// Export to PDF
presentation.ExportToPdf("output.pdf");

Documentation & Navigation Guide

Getting Started

Refer to references/getting-started.md

When you need to:

  • Set up the Presentation API for the first time
  • Understand NuGet packages and assembly references
  • Create your first .pptx presentation
  • Load an existing presentation from a file or stream
  • See a complete working example
Slides and Shapes

Refer to references/slides-and-shapes.md

When you need to:

  • Add, remove, reorder, clone, or copy slides
  • Add geometric shapes, picture shapes, or group shapes to a slide
  • Position and size shapes (X, Y, Width, Height in document units)
  • Configure shape fill (solid, gradient, pattern, picture) and outline
  • Add and format text inside shapes (paragraphs, runs, font, bullets)
  • Create and customize tables (rows, columns, cells, styles, borders)
  • Set slide backgrounds
  • Configure slide masters and layouts
Charts (v26.1+)

Refer to references/charts.md

When you need to:

  • Add a standard chart (bar, line, pie, scatter, area, etc.) to a slide
  • Add an Office 2016+ chart type (waterfall, funnel, treemap, sunburst, etc.)
  • Configure chart data series with ChartStringData and ChartNumericData
  • Choose between Chart (standard types) and ChartEx (Office 2016+ types)
  • Customize individual data points (CustomDataPoints, DataPoint, Marker, MarkerStyle)
  • Configure the chart legend (position, appearance, custom entries)
Export

Refer to references/export.md

When you need to:

  • Export a presentation to PDF
  • Configure PDF export options (security, image optimization, signatures, attachments)
  • Export slides to images (DXImage[]) with configurable resolution (v26.1+)
  • Merge two or more presentations
  • Split a presentation into separate files
  • Print a presentation
Advanced Features

Refer to references/advanced-features.md

When you need to:

  • Add, edit, or remove speaker notes
  • Configure slide headers and footers (footer text, date, slide number)
  • Search, replace, or remove text across the presentation or a specific slide
  • Extract text or images from slides programmatically
  • Customize presentation themes (color scheme, font scheme)
  • Configure view settings (active view, grid spacing, normal view layout)
  • Read or set document properties (title, author, keywords, custom properties)

Quick Start Example

Create a presentation with a title slide and one content slide:

csharp
using DevExpress.Docs.Office;
using DevExpress.Docs.Presentation;
using System.Drawing;
// Create a new presentation
Presentation presentation = new Presentation();
// Remove the default slide
presentation.Slides.Clear();
// Access the default slide master and its Title layout
SlideMaster master = presentation.SlideMasters[0];
master.Background = new CustomSlideBackground(new SolidFill(Color.FromArgb(230, 240, 255)));
// Add a title slide
Slide titleSlide = new Slide(master.Layouts.Get(SlideLayoutType.Title));
foreach (Shape shape in titleSlide.Shapes) {
if (shape.PlaceholderSettings.Type is PlaceholderType.CenteredTitle)
shape.TextArea = new TextArea("My Presentation");
if (shape.PlaceholderSettings.Type is PlaceholderType.Subtitle)
shape.TextArea = new TextArea("Created with DevExpress Presentation API");
}
presentation.Slides.Add(titleSlide);
// Add a content slide
Slide contentSlide = new Slide(master.Layouts.GetOrCreate(SlideLayoutType.Object));
foreach (Shape shape in contentSlide.Shapes) {
if (shape.PlaceholderSettings.Type is PlaceholderType.Title)
shape.TextArea = new TextArea("Key Points");
if (shape.PlaceholderSettings.Type is PlaceholderType.Body) {
TextArea body = new TextArea();
body.Paragraphs.Clear();
body.Paragraphs.Add(new TextParagraph("First bullet point"));
body.Paragraphs.Add(new TextParagraph("Second bullet point"));
body.Paragraphs.Add(new TextParagraph("Third bullet point"));
shape.TextArea = body;
}
}
presentation.Slides.Add(contentSlide);
// Add footer with slide numbers
presentation.HeaderFooterManager.AddSlideNumberPlaceholder(presentation.Slides);
// Save as .pptx
using FileStream outStream = new FileStream("output.pptx", FileMode.Create);
presentation.SaveDocument(outStream);
What This Does

Creates a two-slide presentation with a styled blue background. The first slide is a title slide; the second slide has a title and a bullet list. The result is saved as output.pptx.

Key Properties & API Surface

Presentation
Property/MethodTypeDescription
SlidesSlideCollectionAccess all slides in the presentation
SlideMastersSlideMasterCollectionAccess slide masters
SlideSizeSlideSizeGet or set slide dimensions and orientation
HeaderFooterManagerHeaderFooterManagerManage headers and footers
NotesMasterNotesMasterAccess the notes master layout
ViewPropertiesViewPropertiesConfigure view settings
DocumentPropertiesDocumentPropertiesAccess metadata (title, author, etc.)
SaveDocument(Stream)voidSave presentation to a stream
ExportToPdf(string)voidExport to PDF file path
ExportToPdf(Stream, PdfExportOptions)voidExport to PDF with options
Print()voidPrint with default printer
Print(PrintOptions)voidPrint with specified options
FindText(string, TextSearchOptions)IList<TextSearchInfo>Search text across all slides
ReplaceText(string, string, TextSearchOptions)voidReplace text across all slides
GetActualShapeBounds(Slide, Shape)RectangleFGet effective bounds of a shape
Slide
Property/MethodTypeDescription
ShapesShapeCollectionShapes on this slide
BackgroundSlideBackgroundSlide background fill
NotesNotesSlideSpeaker notes for this slide
VisibleboolWhether the slide is shown during presentation
ShowMasterShapesboolWhether master/layout shapes are inherited
Clone()SlideCreate a copy of this slide
FindText(string, TextSearchOptions)IList<TextSearchInfo>Search text within this slide
ReplaceText(string, string, TextSearchOptions)voidReplace text within this slide
ActualFooterPlaceholderShapeFooter placeholder shape
ActualSlideNumberPlaceholderShapeSlide number placeholder shape
ActualDateTimePlaceholderShapeDate/time placeholder shape
Shape

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
52
Repository forks
8
7-day trend score
20

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/devexpress/agent-skills/devexpress-office-file-api-presentation/badge)](https://verified-skill.com/skills/devexpress/agent-skills/devexpress-office-file-api-presentation)

Something wrong with this skill or its page? Tell us.