
pptx
Отворена JavaScript библиотека за PowerPoint
Създавайте, редактирайте, валидирайте и анимирайте PPTX файлове в Node.js и браузър с пълна съвместимост с ECMA-376.
Какво е pptx?
@office-kit/pptx е модерна, типизирана JavaScript библиотека за генериране и редактиране на PowerPoint (.pptx) файлове както в Node.js, така и в браузърни среди. Изградена върху спецификацията ECMA-376 PresentationML, тя предоставя стабилен обектен модел, който отразява официалната XML схема. За разлика от мнозина алтернативи, тя доставя единствен ESM пакет, който работи последователно в различни среди, избягва крехкия XML, базиран на низове, и генерира файлове, валидирани спрямо валидатора на Microsoft Open XML SDK.
Библиотеката поддържа два работни процеса: редактиране на съществуващи шаблони и създаване на комплекти от нулата. Тя обработва слайдове, форми, текст, таблици, диаграми, анимации, коментари и преходи със силно типизиране и поддръжка на tree-shaking за минимален размер на пакета (~60 KB за базово зареждане/запис). Дизайнът й осигурява безопасност при обратен процес — неструктурираното съдържание се запазва, а не се премахва — което я прави идеална за продукционна употреба, където валидността на схемата и крос‑платформената съвместимост (PowerPoint, Keynote, Google Slides, LibreOffice) са от съществено значение.
Започване с pptx
Инсталирайте @office-kit/pptx чрез npm, pnpm или yarn. Библиотеката се разпространява като ESM пакет и поддържа tree-shaking за минимален отпечатък. След инсталацията импортирайте функции като `loadPresentation`, `savePresentation` или `createPresentation`, за да започнете създаване или редактиране на PPTX файлове. API‑то е последователно както в Node.js, така и в браузърните среди, а официалното [pptx GitHub](https://github.com/office-kit/pptx) хранилище включва подробни примери за употреба, инструменти за валидация и ръководство за умения за AI‑подпомагана разработка.
Инсталирайте pptx чрез NPM, pnpm или Yarn
# npm
npm install @office-kit/pptx
# pnpm
pnpm add @office-kit/pptx
# yarn
yarn add @office-kit/pptx
Редактиране на PowerPoint шаблони
Редактирането на шаблони е ключова сила на @office-kit/pptx. Можете да заредите съществуващ PPTX файл, да откриете плейсхолдъри (например заглавие, тяло) и да замените текста програмно — идеално за динамично генериране на отчети. Библиотеката поддържа замяна на базата на токени във всички слайдове, което прави пакетните актуализации без усилие. Тя запазва целостта на оформлението и гарантира, че изходът остава съвместим с PowerPoint, Keynote и Google Slides. Този работен процес е особено полезен за шаблонни презентации, където само съдържанието се променя между изпълненията.
Как да замените текст от шаблон в 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);
Създаване на презентации от нулата
С `createPresentation()` можете да създадете пълен PowerPoint набор от нулата — без необходимост от шаблон. Функцията връща напълно структуриран набор с master, тема и подразбиращи се оформления (`Blank`, `Title Slide`, `Title and Content`). След това можете да добавяте слайдове, вмъквате текстови полета, изображения, таблици и диаграми, използвайки типизирани API-та. Този подход осигурява пълен контрол върху дизайна и съдържанието, позволявайки програмен генериране на презентации за табла, отчети или AI‑управлявани набори от слайдове, като същевременно се спазва съвместимостта с ECMA‑376.
Как да създадете нова PowerPoint презентация от нулата?
import {
addTitleSlide,
createPresentation,
savePresentation,
} from '@office-kit/pptx';
const pres = createPresentation();
addTitleSlide(pres, 'Q3 Business Review');
const out: Uint8Array = await savePresentation(pres);
Диаграми, анимации и коментари
@office-kit/pptx поддържа богати елементи за слайдове, включително диаграми (bar, line, pie, area), анимации (fadeIn, fadeOut, appear) и коментари. Диаграмите вграждат живи данни от Excel за редактиране в PowerPoint, докато анимациите използват предварително зададени ефекти с конфигурируеми продължителности. Коментарите ви позволяват да добавяте бележки от рецензенти с метаданни за автора и по избор позициониране. Тези функции правят библиотеката подходяща за създаване на интерактивни, данни-наситени презентации, които отговарят на професионалните стандарти и преминават валидирането на схемата.
Как да добавите диаграма и анимация към слайд?
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);
Валидация и съответствие със схема
Осигуряването, че PPTX файловете са съвместими с ECMA-376, е от съществено значение за съвместимостта между различни инструменти. @office-kit/pptx включва `validatePresentation()` за да открива проблеми като липсващи връзки, невалидни идентификатори на слайдове или счупени препратки към оформления. Той също използва `xmllint` в CI, където е наличен, за да валидира генерирания XML спрямо официалните схеми. Този слой за валидиране помага да се открият фини грешки преди разпространението, като гарантира, че презентациите се отварят надеждно в PowerPoint, Keynote, Google Slides и LibreOffice — без да се разчита на "отворете и се надявайте" поведение.
Как да валидирате 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.
