pptx

 
 

Åpen kildekode JavaScript-bibliotek for PowerPoint

Opprett, rediger, valider og animer PPTX-filer i Node.js og nettleser med full ECMA-376-kompatibilitet.

Hva er pptx?

@office-kit/pptx er et moderne, typet JavaScript-bibliotek for å generere og redigere PowerPoint (.pptx)-filer både i Node.js- og nettlesermiljøer. Bygget rundt ECMA-376 PresentationML-spesifikasjonen, gir det en robust objektmodell som speiler det offisielle XML-skjemaet. I motsetning til mange alternativer leverer det en enkelt ESM-pakke som fungerer konsistent på tvers av miljøer, unngår skjør strengbasert XML, og produserer filer som er validert mot Microsofts Open XML SDK-validator.

Biblioteket støtter to arbeidsflyter: redigering av eksisterende maler og opprettelse av presentasjoner fra bunnen av. Det håndterer lysbilder, former, tekst, tabeller, diagrammer, animasjoner, kommentarer og overganger med sterk typet og tree‑shaking‑støtte for minimal pakkestørrelse (~60 KB for grunnleggende last/lagre). Designet sikrer rundtur‑sikkerhet—udelatt innhold blir bevart, ikke fjernet—og gjør det ideelt for produksjonsbruk hvor skjema‑gyldighet og tverrplattform‑kompatibilitet (PowerPoint, Keynote, Google Slides, LibreOffice) er kritisk.

Previous Next

Kom i gang med pptx

Installer @office-kit/pptx via npm, pnpm eller yarn. Biblioteket distribueres som en ESM-pakke og støtter tree-shaking for minimal fotavtrykk. Etter installasjon, importer funksjoner som `loadPresentation`, `savePresentation` eller `createPresentation` for å begynne å lage eller redigere PPTX-filer. API-et er konsistent på tvers av Node.js- og nettlesermiljøer, og det offisielle [pptx GitHub](https://github.com/office-kit/pptx)-repoet inneholder detaljerte bruks-eksempler, valideringsverktøy og en ferdighetsguide for AI-assistert utvikling.

Installer pptx via NPM, pnpm eller Yarn

# npm
npm install @office-kit/pptx

# pnpm
pnpm add @office-kit/pptx

# yarn
yarn add @office-kit/pptx

Rediger PowerPoint-maler

Redigering av maler er en kjernefunksjon i @office-kit/pptx. Du kan laste inn en eksisterende PPTX-fil, finne plassholdere (f.eks. tittel, brødtekst), og erstatte tekst programmatisk—ideelt for dynamisk rapportgenerering. Biblioteket støtter token-basert erstatning på tvers av alle lysbilder, noe som gjør batch-oppdateringer enkle. Det bevarer layoutintegriteten og sikrer at resultatet forblir kompatibelt med PowerPoint, Keynote og Google Slides. Denne arbeidsflyten er spesielt nyttig for malbaserte presentasjoner hvor kun innholdet endres mellom kjøringer.

Hvordan erstatte maltekst i en PowerPoint-fil?

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

Lag presentasjoner fra bunnen av

Med `createPresentation()` kan du bygge en komplett PowerPoint-presentasjon fra bunnen av—ingen mal nødvendig. Funksjonen returnerer en fullt strukturert presentasjon med en master, et tema og standardoppsett (`Blank`, `Title Slide`, `Title and Content`). Du kan deretter legge til lysbilder, sette inn tekstbokser, bilder, tabeller og diagrammer ved hjelp av typede API-er. Denne tilnærmingen gir full kontroll over design og innhold, og muliggjør programmatisk generering av presentasjoner for dashbord, rapporter eller AI-drevne lysbildesett mens ECMA-376-kompatibilitet opprettholdes.

Hvordan lage en ny PowerPoint-presentasjon fra bunnen av?

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

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

Diagrammer, animasjoner og kommentarer

@office-kit/pptx støtter rike lysbildeelementer inkludert diagrammer (stolpe, linje, kakediagram, område), animasjoner (fadeIn, fadeOut, appear) og kommentarer. Diagrammer innebygger levende Excel-data for redigering i PowerPoint, mens animasjoner bruker forhåndsdefinerte effekter med konfigurerbare varigheter. Kommentarer lar deg legge til gjennomgangsnotater med forfattermetadata og valgfri posisjonering. Disse funksjonene gjør biblioteket egnet for å lage interaktive, data‑rike presentasjoner som oppfyller profesjonelle standarder og består skjema‑validering.

Hvordan legge til et diagram og animasjon på et lysbilde?

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

Validering og skjemaoverholdelse

Sikring av at PPTX-filer er ECMA-376-kompatible er kritisk for kompatibilitet på tvers av verktøy. @office-kit/pptx inkluderer `validatePresentation()` for å oppdage problemer som manglende relasjoner, ugyldige lysbilde-ID-er eller ødelagte layout-referanser. Den bruker også `xmllint` i CI der det er tilgjengelig for å validere generert XML mot offisielle skjemaer. Dette valideringslaget hjelper med å fange opp subtile feil før distribusjon, og sikrer at presentasjoner åpnes pålitelig i PowerPoint, Keynote, Google Slides og LibreOffice—uten å måtte stole på "open and pray"-adferd.

Hvordan validere en PowerPoint-presentasjon?

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.
 Norsk