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) са от съществено значение.

Previous Next

Започване с 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.
 Български