pptx

 
 

Open-Source-JavaScript-Bibliothek für PowerPoint

PPTX-Dateien in Node.js & Browser erstellen, bearbeiten, validieren & animieren mit voller ECMA-376-Konformität.

Was ist pptx?

@office-kit/pptx ist eine moderne, typisierte JavaScript-Bibliothek zum Erzeugen und Bearbeiten von PowerPoint (.pptx)-Dateien sowohl in Node.js‑ als auch in Browser‑Umgebungen. Sie basiert auf der ECMA‑376 PresentationML‑Spezifikation und bietet ein robustes Objektmodell, das das offizielle XML‑Schema widerspiegelt. Im Gegensatz zu vielen Alternativen liefert sie ein einziges ESM‑Bundle, das in allen Umgebungen konsistent funktioniert, vermeidet fragilen, string‑basierten XML und erzeugt Dateien, die mit dem Open‑XML‑SDK‑Validator von Microsoft validiert wurden.

Die Bibliothek unterstützt zwei Workflows: das Bearbeiten vorhandener Vorlagen und das Erstellen von Decks von Grund auf. Sie verarbeitet Folien, Formen, Text, Tabellen, Diagramme, Animationen, Kommentare und Übergänge mit starker Typisierung und Tree‑Shaking‑Unterstützung für eine minimale Bundle‑Größe (~60 KB für einfaches Laden/Speichern). Ihr Design gewährleistet Round‑Trip‑Sicherheit — nicht modellierter Inhalt wird erhalten, nicht entfernt — und macht sie ideal für den Produktionseinsatz, bei dem Schema‑Gültigkeit und plattformübergreifende Kompatibilität (PowerPoint, Keynote, Google Slides, LibreOffice) entscheidend sind.

Previous Next

Erste Schritte mit pptx

Installieren Sie @office-kit/pptx über npm, pnpm oder yarn. Die Bibliothek wird als ESM-Bundle bereitgestellt und unterstützt Tree-Shaking für einen minimalen Footprint. Nach der Installation importieren Sie Funktionen wie `loadPresentation`, `savePresentation` oder `createPresentation`, um mit dem Erstellen oder Bearbeiten von PPTX-Dateien zu beginnen. Die API ist sowohl in Node.js- als auch in Browser-Umgebungen konsistent, und das offizielle [pptx GitHub](https://github.com/office-kit/pptx) Repository enthält detaillierte Anwendungsbeispiele, Validierungswerkzeuge und einen Leitfaden für KI-unterstützte Entwicklung.

Installiere pptx über NPM, pnpm oder Yarn

# npm
npm install @office-kit/pptx

# pnpm
pnpm add @office-kit/pptx

# yarn
yarn add @office-kit/pptx

PowerPoint-Vorlagen bearbeiten

Die Vorlagenbearbeitung ist eine Kernstärke von @office-kit/pptx. Sie können eine vorhandene PPTX-Datei laden, Platzhalter (z. B. Titel, Textkörper) finden und den Text programmgesteuert ersetzen – ideal für die dynamische Berichtserstellung. Die Bibliothek unterstützt tokenbasierte Ersetzungen über alle Folien hinweg, wodurch Batch‑Updates mühelos möglich sind. Sie bewahrt die Layout‑Integrität und stellt sicher, dass die Ausgabe mit PowerPoint, Keynote und Google Slides kompatibel bleibt. Dieser Workflow ist besonders nützlich für templatisierte Präsentationen, bei denen sich zwischen den Durchläufen nur der Inhalt ändert.

Wie ersetzt man Vorlagentext in einer PowerPoint-Datei?

import {
  findSlidePlaceholder,
  getSlides,
  loadPresentation,
  savePresentation,
  setShapeText,
} from '@office-kit/pptx';

const pres = await loadPresentation(existingPptxBytes);
const cover = getSlides(pres)[0]!;
const title = findSlidePlaceholder(cover, 'title');
if (title) setShapeText(title, 'Q3 Review');
const body = findSlidePlaceholder(cover, 'body');
if (body) setShapeText(body, 'Numbers up and to the right.');
const out: Uint8Array = await savePresentation(pres);

Decks von Grund auf erstellen

Mit `createPresentation()` können Sie ein komplettes PowerPoint-Deck von Grund auf erstellen – keine Vorlage erforderlich. Die Funktion gibt ein vollständig strukturiertes Deck mit einem Master, einem Theme und Standardlayouts (`Blank`, `Title Slide`, `Title and Content`) zurück. Anschließend können Sie Folien hinzufügen, Textfelder, Bilder, Tabellen und Diagramme über typisierte APIs einfügen. Dieser Ansatz bietet volle Kontrolle über Design und Inhalt und ermöglicht die programmgesteuerte Erstellung von Präsentationen für Dashboards, Berichte oder KI‑gesteuerte Foliendecks, wobei die ECMA‑376‑Konformität erhalten bleibt.

Wie erstellt man ein neues PowerPoint-Deck von Grund auf?

import {
  addTitleSlide,
  createPresentation,
  savePresentation,
} from '@office-kit/pptx';

const pres = createPresentation();
addTitleSlide(pres, 'Q3 Business Review');
const out: Uint8Array = await savePresentation(pres);

Diagramme, Animationen & Kommentare

@office-kit/pptx unterstützt umfangreiche Folienelemente, darunter Diagramme (Balken, Linie, Kreis, Fläche), Animationen (fadeIn, fadeOut, appear) und Kommentare. Diagramme betten Live‑Excel‑Daten ein, die in PowerPoint bearbeitet werden können, während Animationen vordefinierte Effekte mit konfigurierbaren Dauern verwenden. Kommentare ermöglichen das Hinzufügen von Prüfer‑Hinweisen mit Autor‑Metadaten und optionaler Positionierung. Diese Funktionen machen die Bibliothek geeignet für die Erstellung interaktiver, datenreicher Präsentationen, die professionellen Standards entsprechen und die Schema‑Validierung bestehen.

Wie fügt man einer Folie ein Diagramm und eine Animation hinzu?

import {
  addSlideChart,
  getSlides,
  loadPresentation,
  setShapeAnimation,
  savePresentation,
  inches,
} from '@office-kit/pptx';

const pres = await loadPresentation(templateBytes);
const slide = getSlides(pres)[0]!;
addSlideChart(slide!, {
  x: inches(0.5),
  y: inches(0.5),
  w: inches(8),
  h: inches(4.5),
  spec: {
    kind: 'column',
    categories: ['Q1', 'Q2', 'Q3', 'Q4'],
    series: [
      { name: 'Revenue', values: [120, 180, 240, 300] },
      { name: 'Cost', values: [80, 90, 130, 160] },
    ],
    title: 'FY26 plan',
  },
});
const shape = getSlideShapes(slide)[0]!;
setShapeAnimation(shape, { effect: 'fadeIn', durationMs: 800 });
await savePresentation(pres);

Validierung & Schema-Konformität

Die Sicherstellung, dass PPTX-Dateien ECMA-376-konform sind, ist entscheidend für die Kompatibilität zwischen Tools. @office-kit/pptx enthält `validatePresentation()`, um Probleme wie fehlende Beziehungen, ungültige Folien‑IDs oder fehlerhafte Layout‑Verweise zu erkennen. Es verwendet außerdem `xmllint` in CI, sofern verfügbar, um das erzeugte XML gegen offizielle Schemas zu validieren. Diese Validierungsebene hilft, subtile Fehler vor der Verteilung zu erfassen und stellt sicher, dass Präsentationen zuverlässig in PowerPoint, Keynote, Google Slides und LibreOffice geöffnet werden können – ohne sich auf "open and pray"-Verhalten zu verlassen.

Wie validiert man eine PowerPoint-Präsentation?

import { validatePresentation } from '@office-kit/pptx';

const issues = validatePresentation(pres);
for (const i of issues) console.error(i.severity, i.message);
// Catches missing rels, dangling slide ids, layouts without masters, etc.
 Deutsch