Skip to content

v0.4.0 — PPTX Export

Choose a tag to compare

@owrede owrede released this 23 May 23:50
· 7 commits to main since this release

Added

  • PPTX export — new menu item "Export as PPTX" produces an editable PowerPoint file with native text frames (headings, paragraphs, bullets, numbered lists, code blocks, blockquotes, kickers). Built on PptxGenJS.
  • Image-aware PPTX layouts — full-image, half-image, half-image-horizontal, caption, grid route images into a primary slot with text alongside. Slide-level background: image.png becomes a slide-spanning background.
  • Dynamic-background gradients in PPTX — use-dynamic-background color sequences interpolated per visible slide and applied as solid backgrounds (PPTX has no deck-spanning gradient; we discretize at export).
  • Font embedding in PPTX — typefaces from the deck's theme and frontmatter are embedded as TTF data. WOFF2 fonts are decompressed via wawoff2. Variable fonts are pinned to per-slot static instances (regular / bold / italic / bold-italic) via HarfBuzz hb-subset, with axis residue (STAT, fvar, gvar, axis-value names) stripped so the result is structurally clean. Theme1.xml's major/minor font entries are patched to match.
  • Speaker notes carried into PPTX as native notes-slide entries.

Compatibility — embedded PPTX fonts

  • ✅ Verified rendering correctly: Google Slides, macOS Quick Look
  • ❌ Verified NOT rendering: Microsoft PowerPoint for Mac (renders Calibri fallback; appears to ignore third-party embedded fonts regardless of structural correctness)
  • ❓ Not yet verified: Windows PowerPoint, Keynote, LibreOffice Impress
  • Workaround for Mac PowerPoint recipients: install the source font system-wide (Font Book).

Full Changelog: v0.3.4...v0.4.0