Skip to content

Rendering fidelity

PptxDiff parses real .pptx files — full OOXML: slides, relationships, layouts, masters, themes, notes, charts, tables, diagrams — using JSZip in the browser. Nothing is converted server-side; there is no server.

Rendered vs. Schematic

Each slide preview carries a badge showing how it was drawn:

  • Rendered — the slide was handed to @aiden0z/pptx-renderer (vendored locally as a self-contained bundle, not loaded from a CDN), which parses the zip, builds an internal presentation model, and paints a pixel-accurate thumbnail into the DOM: parseZip → buildPresentation → PptxViewer.renderThumbnailToContainer.
  • Schematic — a graceful fallback. If a part can't be parsed by the renderer, PptxDiff draws a simplified box-and-text representation instead of failing outright.

This fallback is what lets the app stay usable even against decks with unusual or partially-invalid parts, rather than refusing to diff them.

Change-highlight overlays

On top of the real (or schematic) render, PptxDiff draws highlight boxes for anything that differs — outline colors are keyed to diff status:

  • Changed elements get one outline color
  • Added elements (present only in the After slide) get another
  • Removed elements (present only in the Before slide) get a third

This lets you see where on the slide a change lives, not just read it in a list below.

Known rendering limitations

  • Slide master & layout thumbnails are schematic (dashed rectangles from placeholder geometry) rather than pixel-perfect — the renderer library only renders slides, not raw layout/master parts. You'll still see the layout name and theme name resolved correctly per side.
  • Transition preview shows the After slide's transition type/speed plus a simplified crossfade swatch — not a literal PowerPoint transition render. This is a deliberate, clearly-labeled simplification, not a bug.

See Limitations for the full list of known, accepted trade-offs.