Unchained.Pptx
0.1.0-rc.4
This is a prerelease version of Unchained.Pptx.
dotnet add package Unchained.Pptx --version 0.1.0-rc.4
NuGet\Install-Package Unchained.Pptx -Version 0.1.0-rc.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Unchained.Pptx" Version="0.1.0-rc.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Unchained.Pptx" Version="0.1.0-rc.4" />
<PackageReference Include="Unchained.Pptx" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Unchained.Pptx --version 0.1.0-rc.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Unchained.Pptx, 0.1.0-rc.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Unchained.Pptx@0.1.0-rc.4
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Unchained.Pptx&version=0.1.0-rc.4&prerelease
#tool nuget:?package=Unchained.Pptx&version=0.1.0-rc.4&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Unchained.Pptx
Free, MIT-licensed .NET library for reading, writing, and exporting PowerPoint (PPTX) presentations. Its core is implemented directly against ECMA-376 (OpenXML); all dependencies are permissively licensed (no GPL/LGPL), async-first API.
Installation
<PackageReference Include="Unchained.Pptx" />
For slide rendering (PNG/JPEG output):
<PackageReference Include="Unchained.Pptx.Rendering" />
Quick start
using Unchained.Pptx.Engine;
using Unchained.Pptx.Models;
var processor = new PresentationProcessor();
// Load
var doc = await processor.LoadAsync("presentation.pptx");
// Read slides
foreach (var slide in doc.Slides)
Console.WriteLine(slide.GetAllText());
// Add a slide with a text box
using Unchained.Ooxml;
using Unchained.Pptx.Models.Shapes;
var layout = doc.Masters[0].Layouts[0];
var newSlide = doc.Slides.AddBlank(layout);
newSlide.Shapes.AddTextBox(
Emu.FromInches(1), Emu.FromInches(1),
Emu.FromInches(8), Emu.FromInches(2),
"Hello, Unchained!");
// Save
await processor.SaveAsync(doc, "output.pptx");
// Export to PDF
await processor.SaveAsPdfAsync(doc, "output.pdf");
// Export to SVG (one per slide)
var svgs = await processor.ExportAsSvgAsync(doc);
// Export to HTML (one file per slide)
await processor.SaveAsHtmlAsync(doc, "html-output/");
Features
- Full PPTX round-trip — load, modify, save without data loss
- Slides — add, remove, reorder, hide; clone slides
- Shapes — AutoShape, TextBox, Picture, Table, Chart, Connector, Group, OLE, SmartArt
- Text — paragraphs, runs, font formatting, bullets, alignment
- Charts — 27 chart types with data editing
- Animations — entrance/exit/emphasis effects, transitions (33 types)
- Themes — masters, layouts, color schemes, font schemes
- Notes — speaker notes read/write
- Comments — add/remove/read slide comments
- Sections — PowerPoint 2010+ section grouping
- Security — AES-256 OOXML encryption + write protection
- Exports — PDF 1.7, HTML5, SVG
Encryption
// Save encrypted
await processor.SaveAsync(doc, "secret.pptx",
new SaveOptions { Password = "correct-horse-battery-staple" });
// Load encrypted
var doc = await processor.LoadAsync("secret.pptx",
new OpenOptions { Password = "correct-horse-battery-staple" });
Targets
net8.0 · net9.0 · net10.0
License
MIT — no commercial restrictions, no AGPL, no paid tier.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- DocumentFormat.OpenXml (>= 3.5.1)
- Unchained.Drawing.Primitives (>= 0.1.0-rc.4)
- Unchained.Ooxml (>= 0.1.0-rc.4)
-
net8.0
- DocumentFormat.OpenXml (>= 3.5.1)
- Unchained.Drawing.Primitives (>= 0.1.0-rc.4)
- Unchained.Ooxml (>= 0.1.0-rc.4)
-
net9.0
- DocumentFormat.OpenXml (>= 3.5.1)
- Unchained.Drawing.Primitives (>= 0.1.0-rc.4)
- Unchained.Ooxml (>= 0.1.0-rc.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Unchained.Pptx:
| Package | Downloads |
|---|---|
|
Unchained.Pptx.Rendering
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-rc.4 | 40 | 6/20/2026 |