Skip to main content

PowerPoint Capability Matrix

Edit on GitHub

Tested authoring, editing, preservation, rendering, and reporting boundaries for OfficeIMO.PowerPoint.

OfficeIMO.PowerPoint is strongest when the output must stay editable and the workflow can use tested Open XML features. The table below separates native authoring from preservation and preview support so a successful save is not confused with full edit fidelity.

CapabilityAuthor or editPreserve on unrelated editsPNG/SVG and PDF proofNotes
Slides, ordering, sections, size, metadataYesYesYesIncludes duplicate and cross-deck slide import workflows.
Text boxes, rich runs, bullets, links, notesYesYesYesPreflight() measures bounds and reports clipped or unreadably reduced text.
Auto shapes, lines, connectors, groupsYesYesYes, within reported renderer limitsCustom geometry and effects may be approximated in fixed-layout exports.
Pictures and SVG assetsYesYesYesCrop and transforms are supported; broken image relationships are preflight errors.
Native tablesYesYesYesAddTableSlides(...) creates deterministic continuation pages and repeats headers.
Semantic story familiesYesYesYesExecutive, chart, comparison, screenshot, appendix, architecture, and closing stories each have two editable compositions.
Deck rhythm inspectionYes, before renderingNot applicableNot applicableReports repeated kinds/variants, dense streaks, long sections, weak openings, and missing closings with stable codes.
All 16 shared chart kindsYesYesYesClustered/stacked/100% column and bar, line and area variants, scatter, radar, pie, and doughnut use OfficeChartKind.
Categorical combo charts and secondary value axesYesYesYesPer-series RenderKind and OfficeChartAxisGroup stay in native chart XML with cached values and embedded workbook data.
Chart accessibility and data summaryYesYesYesNative alt text can include a deterministic data summary; SaveDataSummary(...) writes a UTF-8 sidecar.
Other chart XML already present in a deckLimited edit surfaceYesSnapshot/export support variesInspect and test the concrete family before promising mutation parity.
Themes, masters, layouts, placeholdersInspect, select, copy from .pptx/.potx, and map by semantic nameYesInherited content is included where supportedTemplate inventory includes brand tokens, footer content, assets, and safe areas.
TransitionsYesYesStatic proof onlyPreview exports show the slide state, not animated playback.
SmartArt and advanced diagramsLimited inspection/renderingYesMay be approximated or reportedPrefer native shapes for generated diagrams that must be predictably editable.
Audio, video, embedded and linked contentLimited mutationYesReported or represented by a fallbackDo not treat a preview as playback proof.
Comments, advanced animation timelines, custom XML, ActiveX, macrosNo general authoring contractPreserve/report where possibleNot a fidelity promiseUse InspectFeatures() before edit-heavy round trips.
Digital signaturesInspect/report onlySave policy appliesNot applicableEditing a signed package can invalidate its signature.

Generation checks

PowerPointDeckPreflightReport report = presentation.Preflight();
report.SaveJson("deck.preflight.json");

// Use this when errors should stop the output pipeline before Save().
presentation.SaveWithPreflight(new PowerPointDeckPreflightOptions {
    FailureSeverity = PowerPointDeckPreflightSeverity.Error
});

The preflight report is the same contract returned by designer generation and OfficeIMO.Markup.PowerPoint. Stable finding codes are intended for CI policy; human messages are supporting context.

For imported presentations, combine layout preflight with InspectFeatures() so the pipeline sees both generated-content risks and package features outside the editable surface.