
pptx
Open Source JavaScript knihovna pro PowerPoint
Vytvářejte, upravujte, validujte a animujte soubory PPTX v Node.js a prohlížeči s plnou kompatibilitou ECMA-376.
Co je pptx?
@office-kit/pptx je moderní, typovaná knihovna JavaScript pro generování a úpravu souborů PowerPoint (.pptx) jak v prostředí Node.js, tak v prohlížeči. Postavena na specifikaci ECMA-376 PresentationML, poskytuje robustní objektový model, který odráží oficiální XML schéma. Na rozdíl od mnoha alternativ poskytuje jediný ESM balíček, který funguje konzistentně napříč prostředími, vyhýbá se křehkým řetězcovým XML a vytváří soubory validované pomocí validátoru Microsoft Open XML SDK.
Knihovna podporuje dva pracovní postupy: úpravu existujících šablon a tvorbu prezentací od nuly. Zpracovává snímky, tvary, text, tabulky, grafy, animace, komentáře a přechody s přísným typováním a podporou tree-shaking pro minimální velikost balíčku (~60 KB pro základní načtení/uložení). Její design zajišťuje bezpečnost při zpětném průchodu – neznámý obsah je zachován, neodstraňován – což ji činí ideální pro produkční použití, kde jsou kritické platnost schématu a multiplatformní kompatibilita (PowerPoint, Keynote, Google Slides, LibreOffice).
Začínáme s pptx
Nainstalujte @office-kit/pptx pomocí npm, pnpm nebo yarn. Knihovna je distribuována jako balíček ESM a podporuje tree-shaking pro minimální velikost. Po instalaci importujte funkce jako `loadPresentation`, `savePresentation` nebo `createPresentation`, abyste mohli začít vytvářet nebo upravovat soubory PPTX. API je konzistentní v prostředích Node.js i prohlížeče a oficiální [pptx GitHub](https://github.com/office-kit/pptx) repozitář obsahuje podrobné příklady použití, validační nástroje a průvodce dovednostmi pro vývoj s podporou AI.
Nainstalujte pptx pomocí NPM, pnpm nebo Yarn
# npm
npm install @office-kit/pptx
# pnpm
pnpm add @office-kit/pptx
# yarn
yarn add @office-kit/pptx
Upravit šablony PowerPoint
Úprava šablon je hlavní předností @office-kit/pptx. Můžete načíst existující soubor PPTX, najít zástupné symboly (např. název, tělo) a nahradit text programově — ideální pro dynamické generování zpráv. Knihovna podporuje nahrazování založené na tokenu napříč všemi snímky, což usnadňuje hromadné aktualizace. Zachovává integritu rozvržení a zajišťuje, že výstup zůstává kompatibilní s PowerPoint, Keynote a Google Slides. Tento pracovní postup je zvláště užitečný pro šablonové prezentace, kde se mezi jednotlivými běhy mění jen obsah.
Jak nahradit text šablony v souboru 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);
Vytvořit prezentace od začátku
S funkcí `createPresentation()` můžete vytvořit kompletní PowerPoint prezentaci od nuly—není potřeba žádná šablona. Funkce vrací plně strukturovanou prezentaci s masterem, tématem a výchozími rozvrženími (`Blank`, `Title Slide`, `Title and Content`). Poté můžete přidávat snímky, vkládat textová pole, obrázky, tabulky a grafy pomocí typovaných API. Tento přístup poskytuje plnou kontrolu nad designem a obsahem, umožňuje programové generování prezentací pro dashboardy, zprávy nebo AI‑řízené sady snímků při zachování souladu s ECMA‑376.
Jak vytvořit novou prezentaci PowerPoint od začátku?
import {
addTitleSlide,
createPresentation,
savePresentation,
} from '@office-kit/pptx';
const pres = createPresentation();
addTitleSlide(pres, 'Q3 Business Review');
const out: Uint8Array = await savePresentation(pres);
Grafy, animace a komentáře
@office-kit/pptx podporuje bohaté prvky snímků včetně grafů (sloupcový, čárový, koláčový, plošný), animací (fadeIn, fadeOut, appear) a komentářů. Grafy vkládají živá data z Excelu pro úpravy v PowerPointu, zatímco animace používají předdefinované efekty s nastavitelnou délkou trvání. Komentáře vám umožňují přidávat poznámky recenzentů s metadaty autora a volitelným umístěním. Tyto funkce činí knihovnu vhodnou pro vytváření interaktivních, datově bohatých prezentací, které splňují profesionální standardy a projdou validací schématu.
Jak přidat graf a animaci do snímku?
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);
Validace a shoda se schématem
Zajištění, že soubory PPTX jsou v souladu s ECMA‑376, je klíčové pro kompatibilitu napříč nástroji. @office-kit/pptx obsahuje `validatePresentation()`, který detekuje problémy jako chybějící vztahy, neplatná ID snímků nebo poškozené odkazy na rozvržení. Také používá `xmllint` v CI, pokud je k dispozici, k ověření vygenerovaného XML proti oficiálním schématům. Tato validační vrstva pomáhá zachytit jemné chyby před distribucí, což zajišťuje spolehlivé otevření prezentací v PowerPointu, Keynote, Google Slides a LibreOffice—bez spoléhání se na chování "otevři a modli se".
Jak ověřit prezentaci 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.
