Open source · Apache-2.0 · TypeScript
Chargez, affichez, modifiez et enregistrez des fichiers .pptx dans le navigateur ou Node.js. Disponible en coeur TypeScript headless et en composants integres pour React, Vue 3, Angular, Svelte 5 et JavaScript vanilla.
npx @christophervr/pptx-viewerRendu
Rendu
187+ formes predefinies, 23 types de graphiques, SmartArt, animations, transitions morph, metafichiers EMF et WMF, polices embarquees et modeles 3D sont dessines en HTML, CSS et SVG. Aucune rasterisation canvas : le texte reste selectionnable et les lecteurs d'ecran continuent de fonctionner.

Modele de donnees
Le chargement d'un fichier .pptx produit un modele PptxData entierement type avec seize types d'elements. Themes, masques, dispositions et conformite OOXML Strict survivent a l'aller-retour : un deck modifie se rouvre proprement dans PowerPoint.
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);Frameworks
La visionneuse s'integre comme composant pret a l'emploi pour React, Vue 3, Angular et Svelte 5, plus une version JavaScript vanilla sans framework. Chaque paquet embarque le moteur : une seule dependance donne le meme rendu partout, mode presentateur, edition et export compris.
<PowerPointViewer /><PowerPointViewer /><pptx-viewer />Automatisation
pptx-viewer-mcp expose plus de 50 outils PPTX avec schemas Zod sous forme de serveur MCP : Claude, Cursor et Copilot peuvent lire, modifier et convertir des presentations directement. Les memes fonctions sont appelables depuis votre propre code en Node, Bun ou serverless.
{
"mcpServers": {
"pptx": {
"command": "npx",
"args": ["pptx-viewer-mcp"]
}
}
}Egalement inclus
Coeditez via un CRDT Yjs avec suivi de presence, fusion du texte au caractere pres et un transport P2P sans serveur.
Ouvrez et enregistrez des fichiers proteges par mot de passe avec le chiffrement agile AES-128 et AES-256.
PNG, JPEG, SVG, PDF, GIF et video depuis le navigateur. L'export SVG fonctionne aussi en Node.js sans DOM.
Transformez les decks en Markdown propre ou en HTML positionne, avec extraction des medias, notes du presentateur et metadonnees.
Creez des presentations par programmation : texte, formes, images, tableaux et graphiques sans toucher a l'OpenXML brut.
Les objets OLE sont en lecture seule et certains effets visuels sont approximes a l'ecran. La page des limitations liste exactement ce qu'il faut attendre.
Chaque libelle de l'interface passe par une cle de traduction pptx.* (plus de 1 600), branchee sur la bibliotheque i18n de votre application : react-i18next, vue-i18n ou ngx-translate. Un dictionnaire anglais est fourni avec chaque paquet, et cette documentation existe en anglais, francais, espagnol et allemand.
Choisissez votre stack
Chaque paquet UI embarque le moteur : une seule dependance suffit. Vous hesitez ? npx @christophervr/pptx-viewer vous guide.
npm i pptx-react-viewerVisionneuse + editeur WYSIWYG pour React 19
npm i pptx-vue-viewerLes memes fonctionnalites pour Vue 3
npm i pptx-angular-viewerLes memes fonctionnalites pour Angular
npm i pptx-vanilla-viewerLe meme moteur, sans framework, DOM pur
npm i pptx-svelte-viewerLes memes fonctionnalites pour Svelte 5
npm i pptx-viewer-coreMoteur headless : analyse, edition, conversion, chiffrement
npm i pptx-viewer-mcpPlus de 50 outils MCP, CLI, codec de collaboration
Pour commencer
Licence Apache-2.0, TypeScript strict, aucune dependance native. Essayez la demo avec vos propres decks, puis suivez le guide de demarrage.