
pptx
Atviro kodo JavaScript biblioteka PowerPoint
Kurti, redaguoti, tikrinti ir animuoti PPTX failus Node.js ir naršyklėje, visiškai atitinkančius ECMA-376 standartą.
Kas yra pptx?
@office-kit/pptx yra moderni, tipizuota JavaScript biblioteka, skirta generuoti ir redaguoti PowerPoint (.pptx) failus tiek Node.js, tiek naršyklės aplinkoje. Sukurta pagal ECMA-376 PresentationML specifikaciją, ji suteikia patikimą objektų modelį, atspindintį oficialią XML schemą. Skirtingai nuo daugelio alternatyvų, ji pateikia vieną ESM paketą, kuris nuosekliai veikia visose aplinkose, vengia trapios, eilutėmis pagrįstos XML ir išveda failus, patikrintus pagal Microsoft Open XML SDK validatorių.
Biblioteka palaiko du darbo srautus: esamų šablonų redagavimą ir pristatymų kūrimą nuo nulio. Ji apdoroja skaidres, formas, tekstą, lenteles, diagramas, animacijas, komentarus ir perėjimus su griežtu tipų tikrinimu ir tree‑shaking palaikymu, kad būtų minimalus paketo dydis (~60 KB baziniam įkėlimui/įrašymui). Jos dizainas užtikrina duomenų apsaugą perkelimo metu – neapdorotas turinys išsaugomas, nepašalinamas – todėl ji yra ideali gamybos naudojimui, kur svarbus schemos galiojimas ir kryžminė platformų suderinamumas (PowerPoint, Keynote, Google Slides, LibreOffice).
Pradžia dirbant su pptx
Įdiekite @office-kit/pptx naudodami npm, pnpm arba yarn. Biblioteka platinama kaip ESM paketas ir palaiko tree-shaking, kad būtų minimalus pėdsakas. Po įdiegimo importuokite funkcijas, tokias kaip `loadPresentation`, `savePresentation` arba `createPresentation`, kad pradėtumėte kurti arba redaguoti PPTX failus. API yra nuosekli tiek Node.js, tiek naršyklės aplinkoje, o oficiali [pptx GitHub](https://github.com/office-kit/pptx) saugykla turi išsamias naudojimo pavyzdžius, validacijos įrankius ir įgūdžių vadovą AI pagalbai kuriant.
Įdiekite pptx per NPM, pnpm arba Yarn
# npm
npm install @office-kit/pptx
# pnpm
pnpm add @office-kit/pptx
# yarn
yarn add @office-kit/pptx
Redaguoti PowerPoint šablonus
Šablonų redagavimas yra pagrindinis @office-kit/pptx privalumas. Galite įkelti esamą PPTX failą, rasti vietas, kuriose yra rezervuoti laukai (pvz., pavadinimas, turinys) ir programiškai pakeisti tekstą – tai puiku dinamiškam ataskaitų generavimui. Biblioteka palaiko žetonų pagrindu vykstančią keitimą visose skaidrėse, todėl masiniai atnaujinimai yra be pastangų. Ji išlaiko išdėstymo vientisumą ir užtikrina, kad išvestis išliktų suderinama su PowerPoint, Keynote ir Google Slides. Šis darbo procesas ypač naudingas šabloninėms prezentacijoms, kai tik turinys keičiasi tarp vykdymų.
Kaip pakeisti šablono tekstą PowerPoint faile?
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);
Kurti skaidres nuo nulio
Naudodami `createPresentation()`, galite sukurti visą „PowerPoint“ pristatymą nuo nulio — nereikia šablono. Funkcija grąžina visiškai struktūruotą pristatymą su pagrindiniu šablonu, tema ir numatytais išdėstymais (`Blank`, `Title Slide`, `Title and Content`). Tuomet galite pridėti skaidres, įterpti teksto laukelius, paveikslėlius, lenteles ir diagramas naudodami tipizuotas API. Šis požiūris suteikia visišką kontrolę dėl dizaino ir turinio, leidžiant programiškai generuoti pristatymus skydeliams, ataskaitoms arba AI valdomiems skaidrių rinkiniams, išlaikant ECMA-376 suderinamumą.
Kaip sukurti naują PowerPoint pristatymą nuo pradžių?
import {
addTitleSlide,
createPresentation,
savePresentation,
} from '@office-kit/pptx';
const pres = createPresentation();
addTitleSlide(pres, 'Q3 Business Review');
const out: Uint8Array = await savePresentation(pres);
Diagramos, animacijos ir komentarai
@office-kit/pptx palaiko turtingus skaidrių elementus, įskaitant diagramas (stulpelinės, linijinės, skritulinės, ploto), animacijas (fadeIn, fadeOut, appear) ir komentarus. Diagramose įterpiami tiesioginiai „Excel“ duomenys redagavimui „PowerPoint“, o animacijos naudoja iš anksto nustatytus efektus su konfigūruojamu trukme. Komentarai leidžia pridėti recenzento pastabas su autoriaus metaduomenimis ir pasirenkamu pozicionavimu. Šios funkcijos daro biblioteką tinkamą kurti interaktyvius, duomenimis turtingus pristatymus, atitinkančius profesinius standartus ir praeinančius schemos validaciją.
Kaip pridėti diagramą ir animaciją į skaidrę?
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);
Patikrinimas ir schemos atitiktis
Užtikrinti, kad PPTX failai atitiktų ECMA-376 standartą, yra kritiška siekiant suderinamumo tarp įrankių. @office-kit/pptx apima `validatePresentation()`, kad aptiktų problemas, tokias kaip trūkstamos ryšiai, neteisingi skaidrių ID arba sugadintos išdėstymo nuorodos. Jis taip pat naudoja `xmllint` CI aplinkoje, kai prieinama, kad patikrintų sugeneruotą XML pagal oficialias schemas. Šis validacijos sluoksnis padeda sugauti subtilias klaidas prieš platinimą, užtikrinant, kad pristatymai patikimai atsidarytų PowerPoint, Keynote, Google Slides ir LibreOffice programose – be priklausomybės nuo "atidaryk ir meldžis" elgesio.
Kaip patikrinti PowerPoint pristatymą?
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.
