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 КБ для базовой загрузки/сохранения). Ее дизайн обеспечивает безопасность обратного прохода — немоделируемый контент сохраняется, а не удаляется, что делает её идеальной для использования в продакшене, где критичны валидность схемы и кросс‑платформенная совместимость (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) содержит подробные примеры использования, инструменты валидации и руководство по навыкам для разработки с поддержкой ИИ.

Установите 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 с нуля — без шаблона. Функция возвращает полностью структурированную презентацию с мастером, темой и стандартными макетами (`Blank`, `Title Slide`, `Title and Content`). Затем вы можете добавлять слайды, вставлять текстовые поля, изображения, таблицы и диаграммы, используя типизированные API. Такой подход предоставляет полный контроль над дизайном и содержимым, позволяя программно генерировать презентации для панелей мониторинга, отчетов или презентаций, управляемых ИИ, при соблюдении совместимости с 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 поддерживает богатые элементы слайдов, включая диаграммы (столбчатые, линейные, круговые, областные), анимации (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.
 Русский