Skip to content

Open source · Apache-2.0 · TypeScript

L'edition .pptx,
prete a integrer.

Visionneuse et editeur WYSIWYG PowerPoint open source pour React, Vue 3, Angular, Svelte 5 et JavaScript vanilla. Un coeur TypeScript headless charge, modifie et enregistre les fichiers .pptx ; les composants les affichent en HTML, CSS et SVG natifs.

npm i pptx-react-viewer

Demo en direct

Essayez-le ici meme.

C'est le vrai editeur qui tourne dans votre navigateur : la meme application demo deployee que celle de npm, integree en direct. Changez de framework, ou scindez la vue et regardez deux applications independantes co-editer un meme deck.

Fonctionnalites

Ce que vous obtenez.

Rendu haute fidelite

Plus de 187 formes predefinies, 23 types de graphiques, SmartArt, animations, transitions morph, polices embarquees, metafichiers EMF et WMF et modeles 3D, tous dessines en HTML, CSS et SVG. Le texte reste selectionnable et les lecteurs d'ecran continuent de fonctionner.

Rendu

Edition WYSIWYG

Un ruban, des panneaux inspecteurs et la manipulation directe sur le canevas pour le texte, les formes, les tableaux, les graphiques et les SmartArt, avec un historique d'annulation complet. Les elements des masques et des dispositions sont eux aussi editables.

Edition

Aller-retour sans perte

Le chargement produit un modele de donnees entierement type avec seize types d'elements. L'enregistrement ecrit un OpenXML valide en preservant themes, masques, dispositions et conformite OOXML Strict : un deck modifie se rouvre proprement dans PowerPoint.

Chargement et enregistrement

Collaboration en temps reel

Co-editez via un CRDT Yjs avec suivi de presence, fusion du texte au caractere pres et un transport pair-a-pair qui ne demande aucun serveur.

Collaboration

Export

PNG, JPEG, SVG, PDF, GIF et video directement depuis le navigateur. L'export SVG fonctionne aussi en headless dans Node.js, sans DOM.

Export

Chiffrement

Ouvrez et enregistrez des fichiers proteges par mot de passe avec le chiffrement agile AES-128 et AES-256.

Chiffrement

Construire et convertir

Creez des decks par programmation avec le builder fluide, ou convertissez-les en Markdown propre ou en HTML positionne avec extraction des medias et notes du presentateur.

API Builder

Localisation

Chaque libelle de l'interface passe par l'une des 1 600+ cles de traduction pptx.*, reliees a la bibliotheque i18n que votre application utilise deja : react-i18next, vue-i18n ou ngx-translate.

Localisation

Automatisation

.pptx, edite par des agents.

pptx-viewer-mcp expose plus de 50 outils PPTX avec des schemas Zod via le Model Context Protocol : Claude, Cursor et Copilot peuvent lire, modifier et convertir des presentations directement. Les memes fonctions tournent en headless dans Node, Bun ou en serverless, et une CLI couvre les conversions ponctuelles.

MCP et outils
.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);

Demarrage rapide

Affichez un deck en quinze lignes.

Installez le package de votre framework, passez les octets .pptx bruts et donnez une hauteur au conteneur. Edition, presentation, collaboration et export sont a une prop pres.

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>
  );
}
Guide complet: React

FAQ

Questions frequentes.

Est-ce gratuit pour un usage commercial ?

Oui. Tout est sous licence Apache-2.0 : le coeur, les cinq packages UI, le serveur MCP et les demos. Il n'y a pas d'offre payante.

Les fichiers modifies se rouvrent-ils dans PowerPoint ?

Oui. L'enregistrement ecrit un OpenXML valide en preservant themes, masques, dispositions et conformite OOXML Strict : un deck charge, modifie et enregistre ici se rouvre proprement dans PowerPoint.

Faut-il un serveur ?

Non. L'analyse, le rendu, l'edition et l'enregistrement se font dans le navigateur. Le coeur tourne aussi dans Node.js et Bun pour le travail cote serveur ou en CLI.

Comment les diapositives sont-elles rendues ?

En HTML, CSS et SVG natifs plutot qu'en bitmap canvas. Le texte reste selectionnable, le zoom reste net et les lecteurs d'ecran fonctionnent.

La collaboration demande-t-elle une infrastructure ?

Pas par defaut. Le transport fourni est pair-a-pair (y-webrtc) et fonctionne depuis un hebergement statique. Pour la persistance et l'authentification, vous pouvez le pointer vers un relais y-websocket. Collaboration →

Peut-il ouvrir des fichiers proteges par mot de passe ?

Oui. Le chiffrement agile AES-128 et AES-256 est pris en charge a l'ouverture comme a l'enregistrement.

Quels frameworks sont pris en charge ?

React 19, Vue 3, Angular, Svelte 5 et une version vanilla sans framework. Chaque package embarque le meme moteur, le rendu est donc identique partout.

Quelles sont les limites ?

Les objets OLE sont en lecture seule et quelques effets visuels sont approximes a l'ecran. La page des limitations detaille exactement quoi attendre. Limitations →

Commencer

.pptx en entree. .pptx en sortie.

Ajoutez la prise en charge de PowerPoint a votre application avec une seule dependance. Licence Apache-2.0, TypeScript strict, aucune dependance native. Essayez la demo avec un de vos decks, puis suivez le demarrage rapide.

© 2026 Christopher van Rooyen · Apache-2.0pptx-viewer · le moteur PowerPoint pour le web