Skip to content

PPTX adapter: preserve slide structure, notes, media, and reading order #22

Description

@1wgrumph

Migrated from private source issue alphazede/bran-dev#7

Parent: #5

Goal

Add a local PPTX adapter that maps PresentationML into the presentation-content payload defined by the enterprise-document RFC and can emit a supported deterministic PPTX projection.

Import scope

Preserve, where supported:

  • deck and slide order, slide identifiers, sections, and layouts
  • shapes, text, tables, hyperlinks, and grouped elements
  • speaker notes, comments, alt text, and reading order
  • themes and style references needed to interpret content
  • images and permitted media as content-addressed assets
  • stable slide/shape/text locators for BRAN citations

Unsupported transitions, animations, charts, SmartArt, or media behavior must appear in the fidelity receipt rather than disappearing silently.

Safety boundary

  • Treat PPTX as an untrusted OPC/ZIP package.
  • Do not execute macros, actions, embedded objects, scripts, or media.
  • Do not follow external relationships or remote media.
  • Enforce part-count, relationship, nesting, decompression, and total-byte limits.

Acceptance criteria

  • Import is deterministic regardless of ZIP ordering and timestamps.
  • Fixtures cover layouts, text boxes, grouped shapes, tables, notes, comments, alt text, links, images, and reading order.
  • Adversarial fixtures cover external media, macro-enabled decks, malformed relationships, path escape, and decompression limits.
  • Exported decks open in at least two independent readers and include a fidelity receipt.
  • Import-export-import preserves supported slide order, structural identities, notes, accessibility metadata, and citation anchors.
  • DLP and public-boundary checks complete before export.
  • No PowerPoint installation or cloud service is required.

Non-goals

Running slide shows, executing transitions or macros, or promising pixel-identical layout across rendering engines.

Activity

added this to the 0.2.0 milestone on Sep 15, 2026

1wgrumph commented on Sep 30, 2026

@1wgrumph
ContributorAuthor

Delivered in PR #51 (merged as 7ea4052): PPTX adapter with presentation projection, fidelity receipt and deterministic export, registered with DOCX, XLSX and PDF. Every acceptance item is met with tests and two-reader evidence (python-pptx, LibreOffice). Not covered: PowerPoint itself was not available to test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions