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 .pptx file, 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 after new Presentation().
  • AutoShapes, Tables, and Connectors: Insert shapes via slide.Shapes.AddAutoShape(), tabular data via slide.Shapes.AddTable(), and visual connectors between shapes via slide.Shapes.AddConnector().
  • Rich text formatting: Format text at character level with PortionFormat: font size, bold, italic, underline, and ARGB color via FillType.Solid and ColorFormat.
  • Fill types: Apply FillType.Solid, Gradient, Pattern, or Picture fills 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.

See Also