Skip to content

PowerPoint export ​

Some recipients need a PowerPoint file they can edit. The extension produces an editable, theme-faithful .pptx: text, images and tables are real PowerPoint objects, placed where the theme displays them.

Export is one-way: once in PowerPoint, the presentation does not come back to Marp. It is meant for handing over a clean file, not for editing in both tools.

Exporting ​

  1. Open a Marp presentation.
  2. Command Palette → DWA : exporter un PowerPoint éditable (.pptx) (export an editable PowerPoint).
  3. Choose the destination file.

Export uses the current editor content, even if unsaved. It runs locally, with no external service or AI model, and requires a trusted folder.

All Core v1 themes ​

Export knows no theme in advance. It works with any CSS that complies with the Core v1 contract, that is, any CSS that passes the validator: the DWA theme, a theme published on the portal or a local theme. Colors, margins, sizes and fonts come from the theme itself.

How it works ​

  1. The presentation is rendered by Marp with the theme CSS, in the machine's Chrome, Chromium or Edge (the same one as for overflow measurement, setting dwa.overflow.browserPath).
  2. Each text block is captured with its position, font, size, weight, color, line height and links. It becomes a PowerPoint text box in the same place.
  3. Content images become PowerPoint images, with the same cropping. Tables become native tables: column widths, row heights, cell backgrounds and borders.
  4. Everything else, that is, the theme decoration (backgrounds, cards, rules, bullets, timeline numbers, page numbers), is captured on its own, at double resolution, and becomes the slide's background image. Any CSS decoration effect (gradient, pseudo-element, transform) is therefore reproduced exactly.
  5. Fonts embedded in the theme (@font-face in base64) are embedded in the PowerPoint file, under the CSS family name.
  6. Slide comments become speaker notes.

What becomes editable ​

In the MarkdownIn PowerPoint
Headings, paragraphs, list items, links, bold, italicEditable text boxes, in the theme's font and color
Markdown tablesNative PowerPoint tables
Local images (PNG, JPEG, GIF, SVG), including ![bg]Embedded, replaceable images
Theme decoration, bullets and numbers drawn in CSSSlide background image
CommentsSpeaker notes

Measured fidelity ​

The export was compared pixel by pixel in Microsoft PowerPoint, across all compositions in the catalog:

  • positions, sizes, colors, images and decoration: identical;
  • vertical text position: 0 to 2 px difference. PowerPoint and the browser do not place text the same way within the line height; the export compensates for the difference using the font metrics;
  • line wrapping: identical with the embedded font. A 2% safety margin on width keeps a word from wrapping over a single pixel.

Once the file is open, the layout is fixed, as in any PowerPoint: adding a column does not rearrange the others.

Fonts ​

  • Fonts are embedded only if the theme embeds them. A font that is only named (for example font-family: Montserrat without @font-face) depends on the machine: the export reports it, along with the font actually used for measurements.
  • A font whose license forbids embedding is not included. A "preview/print only" font is included with a warning.
  • Variable fonts are displayed with a single weight only in PowerPoint: provide one file per weight in the theme.
  • PowerPoint for Windows and Mac (since 2019) display embedded fonts. Google Slides and Keynote ignore them and use their own.

What is not reproduced as editable objects ​

  • Text with an effect that has no PowerPoint equivalent (rotated, vertical, painted by a background) stays in the background image. The validator rejects these effects in published themes (contract.text-effect).
  • Math formulas remain images.
  • WebP and AVIF images stay in the background image.
  • Remote images (URLs) are not downloaded.
  • Videos, interactive HTML and animations.

Without a browser ​

If no browser is found, the export falls back to an estimated version: placement computed from the DWA Core geometry, DWA palettes, fonts not embedded. The report states this as its first warning.

The export report ​

The Output → DWA Slides channel details the export: missing or non-embeddable fonts, missing, remote or unsupported images, text kept as an image.

Reusable outside VS Code ​

The export engine (src/export/) imports nothing from VS Code: renderPptx produces the complete file, fonts included. It can be reused by a future command-line tool or by the MCP server.

Documentation of the DWA Core v1 language, the VS Code extension, the CLI and the theme portal.