pptx

 
 

Perpustakaan JavaScript Sumber Terbuka untuk PowerPoint

Cipta, Edit, Sahkan & Animasikan Fail PPTX dalam Node.js & Pelayar dengan Pematuhan Penuh ECMA-376.

Apakah pptx?

@office-kit/pptx ialah perpustakaan JavaScript berjenis moden untuk menjana dan menyunting fail PowerPoint (.pptx) dalam kedua-dua persekitaran Node.js dan pelayar. Dibina berasaskan spesifikasi ECMA-376 PresentationML, ia menyediakan model objek yang kukuh yang mencerminkan skema XML rasmi. Berbeza dengan banyak alternatif, ia menyediakan satu bundle ESM tunggal yang berfungsi secara konsisten merentasi persekitaran, mengelakkan XML berasaskan rentetan yang rapuh, dan menghasilkan fail yang disahkan mengikut validator Microsoft Open XML SDK.

Pustaka menyokong dua aliran kerja: menyunting templat sedia ada dan mencipta dek dari awal. Ia mengendalikan slaid, bentuk, teks, jadual, carta, animasi, komen, dan peralihan dengan pengetikan kuat serta sokongan tree‑shaking untuk saiz bundle minimum (~60 KB untuk muat/simpan asas). Reka bentuknya memastikan keselamatan pusingan balik—kandungan yang tidak dimodelkan dipelihara, tidak dipotong—menjadikannya ideal untuk penggunaan produksi di mana kesahihan skema dan keserasian merentas platform (PowerPoint, Keynote, Google Slides, LibreOffice) adalah kritikal.

Previous Next

Mula Menggunakan pptx

Pasang @office-kit/pptx melalui npm, pnpm, atau yarn. Perpustakaan ini diedarkan sebagai bundle ESM dan menyokong tree-shaking untuk jejak yang minimum. Selepas pemasangan, import fungsi seperti `loadPresentation`, `savePresentation`, atau `createPresentation` untuk mula menulis atau menyunting fail PPTX. API adalah konsisten di antara persekitaran Node.js dan penyemak imbas, dan repositori rasmi [pptx GitHub](https://github.com/office-kit/pptx) mengandungi contoh penggunaan terperinci, alat pengesahan, serta panduan kemahiran untuk pembangunan berasaskan AI.

Pasang pptx melalui NPM, pnpm, atau Yarn

# npm
npm install @office-kit/pptx

# pnpm
pnpm add @office-kit/pptx

# yarn
yarn add @office-kit/pptx

Sunting Templat PowerPoint

Penyuntingan templat adalah kelebihan utama @office-kit/pptx. Anda boleh memuatkan fail PPTX yang sedia ada, mencari tempat letak (contoh: tajuk, badan), dan menggantikan teks secara programatik—ideal untuk penjanaan laporan dinamik. Perpustakaan ini menyokong penggantian berasaskan token di semua slaid, menjadikan kemas kini pukal mudah. Ia mengekalkan integriti susun atur dan memastikan output tetap serasi dengan PowerPoint, Keynote, dan Google Slides. Aliran kerja ini sangat berguna untuk persembahan bertemplat di mana hanya kandungan yang berubah antara setiap kali dijalankan.

Bagaimana untuk Menggantikan Teks Templat dalam Fail 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);

Buat Dek Dari Awal

Dengan `createPresentation()`, anda boleh membina satu set lengkap PowerPoint dari sifar—tiada templat diperlukan. Fungsi ini mengembalikan set yang terstruktur sepenuhnya dengan master, tema, dan susun atur lalai (`Blank`, `Title Slide`, `Title and Content`). Anda kemudian boleh menambah slaid, menyisipkan kotak teks, imej, jadual, dan carta menggunakan API berjenis. Pendekatan ini memberikan kawalan penuh ke atas reka bentuk dan kandungan, membolehkan penjanaan persembahan secara programatik untuk papan pemuka, laporan, atau set slaid berkuasa AI sambil mengekalkan pematuhan ECMA-376.

Bagaimana untuk Membuat Dek PowerPoint Baru dari Awal?

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

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

Carta, Animasi & Komen

@office-kit/pptx menyokong elemen slaid yang kaya termasuk carta (bar, line, pie, area), animasi (fadeIn, fadeOut, appear), dan komen. Carta menyematkan data Excel langsung untuk penyuntingan dalam PowerPoint, manakala animasi menggunakan kesan pratetap dengan jangka masa yang boleh dikonfigurasi. Komen membolehkan anda menambah nota penilai dengan metadata pengarang dan penempatan pilihan. Ciri-ciri ini menjadikan perpustakaan sesuai untuk mencipta persembahan interaktif dan kaya data yang memenuhi piawaian profesional serta lulus pengesahan skema.

Bagaimana untuk Menambah Carta dan Animasi ke Slaid?

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

Pengesahan & Pematuhan Skema

Memastikan fail PPTX mematuhi ECMA-376 adalah penting untuk keserasian merentasi alat. @office-kit/pptx termasuk `validatePresentation()` untuk mengesan isu seperti hubungan yang hilang, ID slaid tidak sah, atau rujukan susun atur yang rosak. Ia juga menggunakan `xmllint` dalam CI jika tersedia untuk mengesahkan XML yang dijana terhadap skema rasmi. Lapisan pengesahan ini membantu menangkap ralat halus sebelum pengedaran, memastikan persembahan dibuka dengan boleh dipercayakan dalam PowerPoint, Keynote, Google Slides, dan LibreOffice—tanpa bergantung pada "open and pray" behavior.

Bagaimana untuk Mengesahkan Persembahan 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.
 Melayu