pptx

 
 

Bibliotecă JavaScript Open Source pentru PowerPoint

Creează, Editează, Validează și Animează Fișiere PPTX în Node.js și Browser cu Conformitate Completă ECMA-376.

Ce este pptx?

@office-kit/pptx este o bibliotecă modernă, tipizată JavaScript pentru generarea și editarea fișierelor PowerPoint (.pptx) atât în medii Node.js, cât și în browser. Construită în jurul specificației ECMA-376 PresentationML, oferă un model de obiecte robust care reflectă schema XML oficială. Spre deosebire de multe alternative, livrează un singur pachet ESM care funcționează în mod constant în toate mediile, evită XML fragil bazat pe șiruri și generează fișiere validate de validatorul Microsoft Open XML SDK.

Biblioteca suportă două fluxuri de lucru: editarea șabloanelor existente și crearea de prezentări de la zero. Gestionează diapozitive, forme, text, tabele, grafice, animații, comentarii și tranziții cu tipizare strictă și suport de tree‑shaking pentru o dimensiune minimă a pachetului (~60 KB pentru încărcare/salvare de bază). Designul său asigură siguranța în procesul de round‑trip—conținutul nemodelat este păstrat, nu eliminat—făcându‑l ideal pentru utilizarea în producție, unde validitatea schemei și compatibilitatea multiplatformă (PowerPoint, Keynote, Google Slides, LibreOffice) sunt critice.

Previous Next

Începerea cu pptx

Instalați @office-kit/pptx prin npm, pnpm sau yarn. Biblioteca este distribuită ca un pachet ESM și suportă tree-shaking pentru o amprentă minimă. După instalare, importați funcții precum `loadPresentation`, `savePresentation` sau `createPresentation` pentru a începe să creați sau să editați fișiere PPTX. API-ul este consistent în mediile Node.js și browser, iar depozitul oficial [pptx GitHub](https://github.com/office-kit/pptx) include exemple detaliate de utilizare, instrumente de validare și un ghid de abilități pentru dezvoltare asistată de AI.

Instalați pptx prin NPM, pnpm sau Yarn

# npm
npm install @office-kit/pptx

# pnpm
pnpm add @office-kit/pptx

# yarn
yarn add @office-kit/pptx

Editați șabloanele PowerPoint

Editarea șabloanelor este un punct forte al @office-kit/pptx. Puteți încărca un fișier PPTX existent, să localizați marcajele (de exemplu, titlu, corp) și să înlocuiți textul programatic—ideal pentru generarea dinamică de rapoarte. Biblioteca suportă înlocuirea bazată pe tokenuri pe toate diapozitivele, facilitând actualizările în lot. Păstrează integritatea aspectului și asigură că rezultatul rămâne compatibil cu PowerPoint, Keynote și Google Slides. Acest flux de lucru este deosebit de util pentru prezentări șablonate în care doar conținutul se schimbă între rulări.

Cum să înlocuiți textul șablonului într-un fișier 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);

Creați prezentări de la zero

Cu `createPresentation()`, poți crea un set complet de diapozitive PowerPoint de la zero—fără a necesita un șablon. Funcția returnează un set complet structurat cu un master, temă și layout-uri implicite (`Blank`, `Title Slide`, `Title and Content`). Poți apoi să adaugi diapozitive, să inserezi casete de text, imagini, tabele și grafice utilizând API-uri tipizate. Această abordare oferă control total asupra designului și conținutului, permițând generarea programatică a prezentărilor pentru tablouri de bord, rapoarte sau seturi de diapozitive generate de AI, menținând conformitatea cu ECMA-376.

Cum să creați un nou deck PowerPoint de la zero?

import {
  addTitleSlide,
  createPresentation,
  savePresentation,
} from '@office-kit/pptx';

const pres = createPresentation();
addTitleSlide(pres, 'Q3 Business Review');
const out: Uint8Array = await savePresentation(pres);

Grafice, animații și comentarii

@office-kit/pptx suportă elemente de diapozitiv bogate, inclusiv grafice (bară, linie, plăcintă, zonă), animații (fadeIn, fadeOut, appear) și comentarii. Graficele încorporează date Excel live pentru editare în PowerPoint, în timp ce animațiile utilizează efecte presetate cu durate configurabile. Comentariile îți permit să adaugi note de revizor cu metadate ale autorului și poziționare opțională. Aceste funcționalități fac ca biblioteca să fie potrivită pentru crearea de prezentări interactive și bogate în date, care respectă standardele profesionale și trec de validarea schemei.

Cum să adăugați un grafic și o animație la un diapozitiv?

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);

Validare și conformitate cu schema

Asigurarea că fișierele PPTX respectă standardul ECMA-376 este esențială pentru compatibilitatea între instrumente. @office-kit/pptx include `validatePresentation()` pentru a detecta probleme precum relații lipsă, ID-uri de diapozitiv nevalide sau referințe de aspect întrerupte. De asemenea, folosește `xmllint` în CI, acolo unde este disponibil, pentru a valida XML-ul generat față de schemele oficiale. Acest strat de validare ajută la capturarea erorilor subtile înainte de distribuție, asigurând deschiderea fiabilă a prezentărilor în PowerPoint, Keynote, Google Slides și LibreOffice—fără a se baza pe comportamentul „deschide și roagă-te”.

Cum să validați o prezentare 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.
 Română