Skip to content

Open Source · Apache-2.0 · TypeScript

.pptx-Bearbeitung,
zum Einbetten.

Open-Source-PowerPoint-Viewer und WYSIWYG-Editor fur React, Vue 3, Angular, Svelte 5 und Vanilla JavaScript. Ein headless TypeScript-Kern ladt, bearbeitet und speichert .pptx-Dateien; die Komponenten rendern sie als natives HTML, CSS und SVG.

npm i pptx-react-viewer

Live-Demo

Direkt hier ausprobieren.

Das ist der echte Editor, der in Ihrem Browser lauft: dieselbe deployte Demo-App wie von npm, live eingebettet. Wechseln Sie das Framework, oder teilen Sie die Ansicht und sehen Sie zu, wie zwei unabhangige Apps dasselbe Deck gemeinsam bearbeiten.

Funktionen

Was Sie bekommen.

Originalgetreues Rendering

Uber 187 vordefinierte Formen, 23 Diagrammtypen, SmartArt, Animationen, Morph-Ubergange, eingebettete Schriften, EMF- und WMF-Metadateien und 3D-Modelle, alle als HTML, CSS und SVG gezeichnet. Text bleibt markierbar und Screenreader funktionieren weiter.

Rendering

WYSIWYG-Bearbeitung

Ein Menuband, Inspektor-Panels und direkte Manipulation auf der Leinwand fur Text, Formen, Tabellen, Diagramme und SmartArt, mit vollstandiger Undo-Historie. Auch Master- und Layout-Elemente sind bearbeitbar.

Bearbeitung

Verlustfreier Roundtrip

Das Laden erzeugt ein voll typisiertes Datenmodell mit sechzehn Elementtypen. Das Speichern schreibt gultiges OpenXML mit intakten Themes, Mastern, Layouts und OOXML-Strict-Konformitat, sodass sich ein bearbeitetes Deck sauber in PowerPoint offnet.

Laden und Speichern

Echtzeit-Kollaboration

Gemeinsames Bearbeiten uber ein Yjs-CRDT mit Prasenzanzeige, zeichengenauem Text-Merge und einem Peer-to-Peer-Transport, der keinen Server braucht.

Kollaboration

Export

PNG, JPEG, SVG, PDF, GIF und Video direkt aus dem Browser. Der SVG-Export lauft auch headless in Node.js, ganz ohne DOM.

Export

Verschlusselung

Offnen und speichern Sie passwortgeschutzte Dateien mit agiler AES-128- und AES-256-Verschlusselung.

Verschlusselung

Erstellen und konvertieren

Erstellen Sie Decks programmatisch mit dem fluent Builder, oder konvertieren Sie sie in sauberes Markdown oder positioniertes HTML mit Medienextraktion und Vortragsnotizen.

Builder-API

Lokalisierung

Jedes UI-Label lauft uber einen von 1.600+ pptx.*-Ubersetzungsschlusseln, verbunden mit der i18n-Bibliothek, die Ihre App bereits nutzt: react-i18next, vue-i18n oder ngx-translate.

Lokalisierung

Automatisierung

.pptx, bearbeitet von Agenten.

pptx-viewer-mcp stellt uber das Model Context Protocol 50+ PPTX-Werkzeuge mit Zod-Schemas bereit, sodass Claude, Cursor und Copilot Prasentationen direkt lesen, bearbeiten und konvertieren konnen. Dieselben Funktionen laufen headless in Node, Bun oder Serverless-Umgebungen, und eine CLI deckt einmalige Konvertierungen ab.

MCP und Werkzeuge
.mcp.jsonClaude · Cursor · Copilot
{
  "mcpServers": {
    "pptx": {
      "command": "npx",
      "args": ["pptx-viewer-mcp"]
    }
  }
}
round-trip.tsNode · Bun · browser
import { PptxHandler } from 'pptx-viewer-core';

const handler = new PptxHandler();
const deck = await handler.load(bytes);

// Every element is a typed, discriminated union
for (const el of deck.slides[0].elements) {
  if (el.type === 'text') el.text = rebrand(el.text);
}

// Serialize straight back to a valid .pptx
const file = await handler.save(deck.slides);

Schnellstart

Ein Deck in funfzehn Zeilen.

Installieren Sie das Paket fur Ihr Framework, ubergeben Sie die rohen .pptx-Bytes und geben Sie dem Container eine Hohe. Bearbeitung, Prasentation, Kollaboration und Export sind nur eine Prop entfernt.

Deck.tsxnpm i pptx-react-viewer
import { PowerPointViewer } from 'pptx-react-viewer';
import { useEffect, useState } from 'react';
import 'pptx-react-viewer/styles';

export function Deck() {
  const [content, setContent] = useState<Uint8Array | null>(null);

  useEffect(() => {
    fetch('/deck.pptx')
      .then((r) => r.arrayBuffer())
      .then((buf) => setContent(new Uint8Array(buf)));
  }, []);

  if (!content) return <div>Loading...</div>;
  return (
    <div style={{ height: '100vh' }}>
      <PowerPointViewer content={content} canEdit />
    </div>
  );
}
Vollstandige Anleitung: React

FAQ

Haufige Fragen.

Ist die kommerzielle Nutzung kostenlos?

Ja. Alles steht unter Apache-2.0-Lizenz: der Kern, alle funf UI-Pakete, der MCP-Server und die Demos. Es gibt keine Bezahlstufe.

Offnen sich bearbeitete Dateien wieder in PowerPoint?

Ja. Das Speichern schreibt gultiges OpenXML mit erhaltenen Themes, Mastern, Layouts und OOXML-Strict-Konformitat, sodass sich ein hier geladenes, bearbeitetes und gespeichertes Deck sauber in PowerPoint offnet.

Braucht es einen Server?

Nein. Parsen, Rendern, Bearbeiten und Speichern passieren im Browser. Der Kern lauft auch in Node.js und Bun fur serverseitige oder CLI-Arbeit.

Wie werden Folien gerendert?

Als natives HTML, CSS und SVG statt als Canvas-Bitmap. Text bleibt markierbar, der Zoom bleibt scharf und Screenreader funktionieren.

Braucht die Kollaboration Infrastruktur?

Standardmassig nicht. Der mitgelieferte Transport ist Peer-to-Peer (y-webrtc) und funktioniert von statischem Hosting aus. Fur Persistenz und Authentifizierung konnen Sie ihn auf ein y-websocket-Relay zeigen lassen. Kollaboration →

Kann es passwortgeschutzte Dateien offnen?

Ja. Agile AES-128- und AES-256-Verschlusselung wird beim Offnen wie beim Speichern unterstutzt.

Welche Frameworks werden unterstutzt?

React 19, Vue 3, Angular, Svelte 5 und ein frameworkfreier Vanilla-Build. Jedes Paket bundelt denselben Kern, das Rendering ist also uberall identisch.

Was sind die Grenzen?

OLE-Objekte sind schreibgeschutzt und einige visuelle Effekte werden auf dem Bildschirm angenahert. Die Seite zu den Einschrankungen listet genau auf, was zu erwarten ist. Einschrankungen →

Loslegen

.pptx rein. .pptx raus.

Fugen Sie Ihrer App PowerPoint-Unterstutzung mit einer einzigen Abhangigkeit hinzu. Apache-2.0-lizenziert, striktes TypeScript, keine nativen Abhangigkeiten. Testen Sie die Demo mit einem eigenen Deck und folgen Sie dann dem Schnellstart.

© 2026 Christopher van Rooyen · Apache-2.0pptx-viewer · die PowerPoint-Engine fur das Web