
pptx
Bibliothèque JavaScript open source pour PowerPoint
Créer, modifier, valider et animer des fichiers PPTX dans Node.js et le navigateur avec une conformité totale à ECMA-376.
Qu'est-ce que pptx ?
@office-kit/pptx est une bibliothèque JavaScript moderne et typée pour générer et modifier des fichiers PowerPoint (.pptx) à la fois dans les environnements Node.js et navigateur. Construite autour de la spécification ECMA-376 PresentationML, elle fournit un modèle d'objet robuste qui reflète le schéma XML officiel. Contrairement à de nombreuses alternatives, elle fournit un seul bundle ESM qui fonctionne de manière cohérente sur tous les environnements, évite le XML fragile basé sur des chaînes, et génère des fichiers validés par le validateur Open XML SDK de Microsoft.
La bibliothèque prend en charge deux flux de travail : la modification de modèles existants et la création de présentations à partir de zéro. Elle gère les diapositives, les formes, le texte, les tableaux, les graphiques, les animations, les commentaires et les transitions avec un typage fort et une prise en charge du tree‑shaking pour une taille de bundle minimale (~60 KB pour le chargement/enregistrement de base). Sa conception garantit la sécurité du aller‑retour — le contenu non modélisé est préservé, pas supprimé — ce qui la rend idéale pour une utilisation en production où la validité du schéma et la compatibilité multiplateforme (PowerPoint, Keynote, Google Slides, LibreOffice) sont essentielles.
Commencer avec pptx
Installez @office-kit/pptx via npm, pnpm ou yarn. La bibliothèque est distribuée sous forme de bundle ESM et prend en charge le tree‑shaking pour une empreinte minimale. Après l'installation, importez des fonctions telles que `loadPresentation`, `savePresentation` ou `createPresentation` pour commencer à créer ou modifier des fichiers PPTX. L'API est cohérente sur les environnements Node.js et navigateur, et le dépôt officiel [GitHub pptx](https://github.com/office-kit/pptx) comprend des exemples d'utilisation détaillés, des outils de validation et un guide de compétences pour le développement assisté par IA.
Installez pptx via NPM, pnpm ou Yarn
# npm
npm install @office-kit/pptx
# pnpm
pnpm add @office-kit/pptx
# yarn
yarn add @office-kit/pptx
Modifier les modèles PowerPoint
La modification de modèles est une force principale de @office-kit/pptx. Vous pouvez charger un fichier PPTX existant, localiser les espaces réservés (par ex., titre, corps) et remplacer le texte de manière programmatique—idéal pour la génération dynamique de rapports. La bibliothèque prend en charge le remplacement basé sur des jetons sur toutes les diapositives, rendant les mises à jour par lots simples. Elle préserve l'intégrité de la mise en page et garantit que la sortie reste compatible avec PowerPoint, Keynote et Google Slides. Ce flux de travail est particulièrement utile pour les présentations basées sur des modèles où seul le contenu change entre les exécutions.
Comment remplacer le texte du modèle dans un fichier PowerPoint ?
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);
Créer des présentations à partir de zéro
Avec `createPresentation()`, vous pouvez créer un jeu complet de diapositives PowerPoint à partir de zéro—aucun modèle requis. La fonction renvoie un jeu entièrement structuré avec un maître, un thème et des mises en page par défaut (`Blank`, `Title Slide`, `Title and Content`). Vous pouvez ensuite ajouter des diapositives, insérer des zones de texte, des images, des tableaux et des graphiques en utilisant des API typées. Cette approche offre un contrôle total sur la conception et le contenu, permettant la génération programmatique de présentations pour des tableaux de bord, des rapports ou des jeux de diapositives pilotés par l'IA tout en respectant la conformité ECMA-376.
Comment créer un nouveau diaporama PowerPoint à partir de zéro ?
import {
addTitleSlide,
createPresentation,
savePresentation,
} from '@office-kit/pptx';
const pres = createPresentation();
addTitleSlide(pres, 'Q3 Business Review');
const out: Uint8Array = await savePresentation(pres);
Graphiques, animations et commentaires
@office-kit/pptx prend en charge des éléments de diapositive riches, y compris des graphiques (bar, line, pie, area), des animations (fadeIn, fadeOut, appear) et des commentaires. Les graphiques intègrent des données Excel en direct pour les modifier dans PowerPoint, tandis que les animations utilisent des effets prédéfinis avec des durées configurables. Les commentaires vous permettent d'ajouter des notes de relecteur avec des métadonnées d'auteur et un positionnement optionnel. Ces fonctionnalités rendent la bibliothèque adaptée à la création de présentations interactives et riches en données qui respectent les normes professionnelles et passent la validation du schéma.
Comment ajouter un graphique et une animation à une diapositive ?
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);
Validation et conformité au schéma
S'assurer que les fichiers PPTX sont conformes à la norme ECMA-376 est essentiel pour la compatibilité entre les outils. @office-kit/pptx inclut `validatePresentation()` pour détecter des problèmes tels que des relations manquantes, des ID de diapositive invalides ou des références de mise en page cassées. Il utilise également `xmllint` dans le CI lorsqu'il est disponible pour valider le XML généré contre les schémas officiels. Cette couche de validation permet de détecter les erreurs subtiles avant la distribution, garantissant que les présentations s'ouvrent de manière fiable dans PowerPoint, Keynote, Google Slides et LibreOffice—sans dépendre d'un comportement « ouvrir et prier ».
Comment valider une présentation PowerPoint ?
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.
