Paper Office
paper-pptxAPI referencecompose

pptx.compose

paper-pptx 0.2.0 API reference

Cross-presentation slide import and deck merge (paper-pptx addition).

Composition is how decks are actually made, and composition is relationship-and- inheritance surgery - the corruption-prone, package-level mechanics this fork exists to own. Presentation.import_slide transplants one slide between packages under one of three CONSCIOUS reconciliation modes (there is no right default):

  • "adopt_theme" - content transplants; the slide rebinds to a destination layout (the rebind machinery), orphan placeholders bake from their SOURCE-resolved look, and every run whose resolved values changed is reported. The slide takes the house style.
  • "keep_appearance" - the source layout + master + theme chain transplants with it. Support parts deduplicate by content fingerprint, so ten slides from one source share ONE transplanted master, which gains additional layouts on demand.
  • "bake" - every resolvable run's effective values become explicit local properties (resolved in the SOURCE package), furniture placeholders (dt/ftr/sldNum) drop, other placeholders become free shapes, and the slide attaches to a destination layout. Visually stable without importing masters.

The source presentation is never mutated (the cross-contamination guarantee, byte- tested). All transplant decisions - the full refusal ledger - validate BEFORE the first destination write. Media always copies across packages (never shared); charts deep-copy with their embedded workbooks; SmartArt carries opaquely; comments drop (reported); OLE/ActiveX/internal-link relationships refuse. Fingerprint dedupe is conservative and relationship-binding-aware: support parts are reused only when their bytes and referenced part graph match. A transplanted master pruned to fewer layouts no longer fingerprints like its source.

SCHEMA_NAME

attributeSCHEMA_NAME
= 'paper-import-report'

SCHEMA_VERSION

attributeSCHEMA_VERSION
= 3

On this page