Skip to main content

Document library

OfficeIMO.PowerPoint

Create and edit PPTX, work with documented legacy PowerPoint subsets, and inspect compatibility limits from .NET without Microsoft PowerPoint.

MIT licensed No Office required Cross-platform .NET
Install dotnet add package OfficeIMO.PowerPoint
Generated output · OfficeIMO.PowerPoint
GENERATED OUTPUT

Ready for your workflow

Build, inspect, and transform documents through a focused API.

C#
using var document = CreateDocument();
document.Save();

Format support

Modern and legacy Microsoft PowerPoint files

Support is tracked by operation and fidelity. OfficeIMO reports approximations, visual fallbacks, preserved content, and blocked conversions instead of treating every extension as an identical promise.

See full compatibility evidence
Legacy binary.PPT.POT.PPS.PPA
Modern.PPTX.PPTM.POTX.POTM.PPSX.PPSM.PPAM
Tracked contractsPPT (PowerPoint 97–2003): 56Package line 3.2.2

Why OfficeIMO.PowerPoint?

OfficeIMO.PowerPoint creates and edits .pptx presentations and supports documented subsets of legacy .ppt, .pot, and .pps workflows. Automate slide decks for reporting pipelines, inspect or modernize supported legacy content, or build dynamic dashboards without PowerPoint installed on your machine.

Features

  • Slide creation & management — add, remove, reorder, and duplicate slides programmatically
  • Text boxes & bullets — rich text with fonts, colors, sizes, and multi-level bullet lists
  • Tables with merged cells — rows, columns, horizontal and vertical merges, and per-cell styling
  • Images — insert from file path or stream in PNG, JPEG, GIF, BMP, TIFF, EMF, and WMF formats
  • Shapes with fill, stroke & effects — rectangles, circles, arrows, and callouts with fill, line, shadow, glow, and reflection settings
  • SmartArt and custom geometry — editable process, hierarchy, cycle, list, matrix, pyramid, relationship, path, and polygon content
  • Editable shared charts with formatting — all 17 OfficeChartKind families, including bubble charts, plus combo/secondary axes, data labels, legends, axis configuration, and accessibility summaries
  • Review and presentation workflows — classic comments, modern threaded comments and replies, custom shows, and supported shape/text/chart animations
  • OLE and macro package workflows — add or replace embedded OLE storage and bounded opaque VBA projects while keeping macro-enabled formats explicit
  • Slide sections & transitions — organize slides into sections and apply transition animations
  • Themes & layouts — apply built-in or custom themes and choose from standard slide layouts
  • Designer decks — generate distinct visual directions from a brand brief, score semantic deck plans, and keep output editable
  • Semantic story families — compose executive summaries, chart narratives, comparisons, annotated screenshots, appendix tables, architecture views, and closings
  • Deck rhythm checks — flag repetitive layouts, dense streaks, long sections, and missing closing actions before rendering
  • Speaker notes — attach presenter notes to any slide
  • Slide copying & importing — copy slides within a presentation or import from another .pptx file
  • PowerPoint 97-2003 compatibility — import supported content into the editable model, author the documented native binary subset, preserve unrelated records during supported edits, and preflight PPTX-to-binary conversion loss
  • Password and signature policy — open and save protected binary presentations, inspect legacy signatures, and block signature-invalidating saves by default

Common deck patterns

Deck typeTypical contentWhy OfficeIMO.PowerPoint helps
Weekly status and KPI decksTitle slides, bullet summaries, charts, and calloutsGenerated slides keep recurring reports consistent across every run
Customer QBR and account reviewsRepeated sections, data-driven visuals, and speaker notesYou can build once and swap in customer-specific data at runtime
Training and onboarding packsReusable layouts, screenshots, and step-by-step slidesCode-first generation makes it easier to version and refresh content
Release demos and roadmap decksImported slides, product screenshots, and comparison tablesCopying and composing slides keeps larger decks maintainable

Quick start

using OfficeIMO.Drawing;
using OfficeIMO.PowerPoint;
using DocumentFormat.OpenXml.Drawing.Charts;

using var presentation = PowerPointPresentation.Create("Overview.pptx");
presentation.SlideSize.SetPreset(PowerPointSlideSizePreset.Screen16x9);

var intro = presentation.AddSlide();
intro.AddTitleCm("Product overview", 1.5, 1.2, 22, 1.4);
var highlights = intro.AddTextBoxCm(string.Empty, 1.5, 3.0, 12, 5.5);
highlights.AddBullets(new[] {
    "Revenue grew 18% year over year",
    "Customer satisfaction reached 94%",
    "Delivery expanded to 12 markets"
});

var data = new OfficeChartData(
    new[] { "Q1", "Q2", "Q3", "Q4" },
    new[] { new OfficeChartSeries("Revenue", new[] { 3.2, 3.8, 4.1, 4.9 }) });

var chartSlide = presentation.AddSlide();
chartSlide.AddTitleCm("Revenue by quarter", 1.5, 1.2, 22, 1.4);
chartSlide.AddChartCm(OfficeChartKind.ColumnClustered, data, 1.5, 3.0, 22, 9,
        new PowerPointChartAccessibilityOptions {
            AlternativeText = "Quarterly revenue increased from 3.2 to 4.9"
        })
    .SetTitle("2025 revenue")
    .SetLegend(OfficeChartLegendPosition.Bottom);

presentation.Save();

Convert PPT and PPTX

using OfficeIMO.PowerPoint;

var analysis = PowerPointPresentation.AnalyzeConversion(
    "archive-deck.ppt",
    "archive-deck.pptx");

if (!analysis.Compatibility.HasBlockedFeatures)
{
    PowerPointPresentation.Convert(
        "archive-deck.ppt",
        "archive-deck.pptx");
}

The analysis reports whether slide content remains native, needs an editable approximation or visual fallback, is preserved for recovery, or must be blocked. The same conversion entry point handles PPTX-to-PPT when a customer or system still requires a binary presentation.

Repeatable slide workflow

  1. Start with a small set of deck templates or layout conventions so generated presentations feel intentional, not improvised.
  2. Build slides from domain data, not from presentation-specific strings scattered throughout your code.
  3. Reserve charts, tables, and notes for the slides that benefit from structured output rather than manual formatting.
  4. Export decks as pipeline artifacts for email, GitHub Actions, scheduled reports, or customer handoff packages.
  5. Reuse the same source data across Word, Excel, Reader, and PowerPoint outputs when your workflow needs multiple deliverables.

Before publishing a generated deck, call Preflight() to measure text fit, check shape bounds and image relationships, and write a JSON report. Use AddTableSlides(...) or PowerPointDeckPlan.WithContinuations() when source content can exceed one slide.

Compatibility

Target FrameworkSupported
.NET 10.0Yes
.NET 8.0Yes
.NET Standard 2.0Yes
.NET Framework 4.7.2Yes

OfficeIMO.PowerPoint runs on Windows, Linux, and macOS. It generates standard .pptx files and PowerPoint 97-2003 .ppt, .pot, and .pps compound files. Binary password protection uses legacy RC4 CryptoAPI for interoperability and should not be treated as modern cryptography.

GuideDescription
PowerPoint documentationStart with the package overview and supported presentation workflow.
Slides guideBuild title slides, content slides, charts, and slide layouts.
Designer DecksCreate visually structured, editable decks from briefs, recommendations, and semantic plans.
Capability matrixSee what is authored, edited, preserved, rendered, or intentionally reported.
PPT and PPTX compatibilityCheck formats, conversion directions, tracked behaviors, and fidelity states.
Getting StartedSet up the package family and choose the right companion libraries for reporting pipelines.
PSWriteOfficeUse PowerShell to automate the same presentation scenarios from scripts.

Next step

Turn the package into a working document.

Follow a focused guide, inspect the generated API reference, or try a browser-safe conversion.