Presentation Structure

The root Office.js object is context.presentation. It exposes the slide collection, page setup, document properties, tags, custom XML parts, bindings, slide masters, and selection helpers.

return await PowerPoint.run(async context => {
  const slides = context.presentation.slides;
  const count = slides.getCount();
  await context.sync();
  return count.value;
});

Slides

Use presentation.slides to add, get, delete, move, and export slides:

const slides = context.presentation.slides;
slides.add();
const count = slides.getCount();
await context.sync();

const slide = slides.getItemAt(count.value - 1);
slide.moveTo(0);

Slides are addressed by collection index or ID. Indexes are zero-based in Office.js APIs; CLI render --slide is one-based.

Export

Slides can be exported from the live in-memory model:

const slide = context.presentation.slides.getItemAt(0);
const base64 = slide.exportAsBase64();
await context.sync();
return base64.value;

Use export when a script needs to copy slides into another workflow. Use Render when the goal is visual inspection.

Deck metadata

Deck-level properties and custom metadata live on presentation.properties, presentation.tags, presentation.customXmlParts, and presentation.bindings.

See Metadata and Custom Data for examples.