Introduction
Aspose.Slides FOSS for .NET is now available on NuGet: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx files entirely in C#, with no dependency on Microsoft Office or any proprietary runtime.
The library is designed for developers who need to generate or manipulate presentation files programmatically: automating slide decks from data, extracting text and metadata from uploaded PPTX files, building presentation-based reporting pipelines, or embedding presentation creation into ASP.NET applications. Because Aspose.Slides.Foss targets .NET Standard, it deploys identically on Windows, macOS, Linux, and Docker containers.
Key Features
- Full round-trip PPTX support: Open any
.pptxfile, modify its content, and save it back without losing unknown XML parts that the library does not yet understand. - Slides management: Add, remove, and iterate slides using
prs.Slides; the presentation starts with one blank slide afternew Presentation(). - AutoShapes, Tables, and Connectors: Insert shapes via
slide.Shapes.AddAutoShape(), tabular data viaslide.Shapes.AddTable(), and visual connectors between shapes viaslide.Shapes.AddConnector(). - Rich text formatting: Format text at character level with
PortionFormat: font size, bold, italic, underline, and ARGB color viaFillType.SolidandColorFormat. - Fill types: Apply
FillType.Solid,Gradient,Pattern, orPicturefills to any shape. - Visual effects: Outer shadow, glow, soft edge, blur, reflection, and inner shadow via
shape.EffectFormat. - 3D formatting: Bevel, camera, light rig, material, and extrusion depth via
shape.ThreeDFormat. - Speaker notes: Attach notes text to each slide via
NotesSlideManager.AddNotesSlide(). - Threaded comments: Add comments with author metadata and slide position.
- Embedded images: Embed from file path, bytes, or
Stream. - Document properties: Read and write core, app, and custom properties.
Getting Started
Install from NuGet. .NET 9.0 or later is required.
dotnet add package Aspose.Slides.Foss
Create your first presentation with a shape and save it:
using Aspose.Slides.Foss;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 120);
shape.AddTextFrame("Hello from Aspose.Slides FOSS!");
prs.Save("hello.pptx", SaveFormat.Pptx);
Always use Presentation inside a using block; this ensures all internal resources are released when the block exits.
Text Formatting Example
using Aspose.Slides.Foss;
using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Bold heading in corporate blue");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 28;
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);
prs.Save("formatted.pptx", SaveFormat.Pptx);
Current Limitations
The following areas raise NotImplementedException in this release:
- Charts, SmartArt, and OLE objects
- Animations and slide transitions
- Export to PDF, HTML, SVG, or image formats
- Hyperlinks, action settings, VBA macros, and digital signatures
Unknown XML parts encountered during load are preserved verbatim on save, so PPTX files produced by other tools round-trip safely.