
pptx
Thư viện JavaScript mã nguồn mở cho PowerPoint
Tạo, Chỉnh sửa, Xác thực & Tạo hoạt ảnh cho các tệp PPTX trong Node.js & Trình duyệt với Tuân thủ đầy đủ ECMA-376.
pptx là gì?
@office-kit/pptx là một thư viện JavaScript hiện đại, có kiểu dữ liệu, dùng để tạo và chỉnh sửa các tệp PowerPoint (.pptx) trong cả môi trường Node.js và trình duyệt. Được xây dựng dựa trên tiêu chuẩn ECMA-376 PresentationML, nó cung cấp một mô hình đối tượng mạnh mẽ phản ánh đúng schema XML chính thức. Khác với nhiều giải pháp thay thế, nó cung cấp một bundle ESM duy nhất hoạt động nhất quán trên mọi môi trường, tránh việc sử dụng XML dựa trên chuỗi dễ gãy, và xuất ra các tệp đã được xác thực bằng bộ kiểm tra của Microsoft Open XML SDK.
Thư viện hỗ trợ hai quy trình làm việc: chỉnh sửa mẫu hiện có và tạo bộ trình chiếu từ đầu. Nó xử lý các slide, hình dạng, văn bản, bảng, biểu đồ, hoạt ảnh, bình luận và chuyển đổi với kiểu dữ liệu mạnh và hỗ trợ tree-shaking để giảm kích thước gói tối thiểu (~60 KB cho tải/lưu cơ bản). Thiết kế của nó đảm bảo an toàn vòng quay—nội dung không được mô hình hoá được giữ nguyên, không bị loại bỏ—làm cho nó trở thành lựa chọn lý tưởng cho việc sử dụng trong môi trường sản xuất, nơi tính hợp lệ của schema và khả năng tương thích đa nền tảng (PowerPoint, Keynote, Google Slides, LibreOffice) là rất quan trọng.
Bắt đầu với pptx
Cài đặt @office-kit/pptx qua npm, pnpm hoặc yarn. Thư viện được phân phối dưới dạng bundle ESM và hỗ trợ tree-shaking để giảm kích thước tối thiểu. Sau khi cài đặt, nhập các hàm như `loadPresentation`, `savePresentation`, hoặc `createPresentation` để bắt đầu tạo hoặc chỉnh sửa tệp PPTX. API nhất quán trên môi trường Node.js và trình duyệt, và kho lưu trữ chính thức [pptx GitHub](https://github.com/office-kit/pptx) bao gồm các ví dụ sử dụng chi tiết, công cụ kiểm tra và hướng dẫn kỹ năng cho phát triển hỗ trợ AI.
Cài đặt pptx qua NPM, pnpm hoặc Yarn
# npm
npm install @office-kit/pptx
# pnpm
pnpm add @office-kit/pptx
# yarn
yarn add @office-kit/pptx
Chỉnh sửa mẫu PowerPoint
Chỉnh sửa mẫu là điểm mạnh cốt lõi của @office-kit/pptx. Bạn có thể tải một tệp PPTX hiện có, xác định các placeholder (ví dụ: tiêu đề, nội dung), và thay thế văn bản một cách lập trình—lý tưởng cho việc tạo báo cáo động. Thư viện hỗ trợ thay thế dựa trên token trên tất cả các slide, giúp cập nhật hàng loạt trở nên dễ dàng. Nó giữ nguyên tính toàn vẹn của bố cục và đảm bảo đầu ra vẫn tương thích với PowerPoint, Keynote và Google Slides. Quy trình này đặc biệt hữu ích cho các bài thuyết trình mẫu, nơi chỉ có nội dung thay đổi giữa các lần chạy.
Cách thay thế văn bản mẫu trong tệp 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);
Tạo bộ trình chiếu từ đầu
Với `createPresentation()`, bạn có thể xây dựng một bộ PowerPoint hoàn chỉnh từ đầu—không cần mẫu. Hàm trả về một bộ đầy đủ cấu trúc với master, theme và các bố cục mặc định (`Blank`, `Title Slide`, `Title and Content`). Sau đó, bạn có thể thêm slide, chèn hộp văn bản, hình ảnh, bảng và biểu đồ bằng các API đã định kiểu. Cách tiếp cận này cho phép kiểm soát toàn diện thiết kế và nội dung, hỗ trợ tạo tự động các bài thuyết trình cho bảng điều khiển, báo cáo hoặc bộ slide dựa trên AI đồng thời duy trì tuân thủ ECMA-376.
Cách tạo một bộ PowerPoint mới từ đầu?
import {
addTitleSlide,
createPresentation,
savePresentation,
} from '@office-kit/pptx';
const pres = createPresentation();
addTitleSlide(pres, 'Q3 Business Review');
const out: Uint8Array = await savePresentation(pres);
Biểu đồ, Hoạt ảnh & Bình luận
@office-kit/pptx hỗ trợ các yếu tố slide phong phú bao gồm biểu đồ (cột, đường, tròn, khu vực), hoạt ảnh (fadeIn, fadeOut, appear) và bình luận. Biểu đồ nhúng dữ liệu Excel trực tiếp để chỉnh sửa trong PowerPoint, trong khi hoạt ảnh sử dụng các hiệu ứng được cài sẵn với thời lượng có thể cấu hình. Bình luận cho phép bạn thêm ghi chú của người đánh giá kèm siêu dữ liệu tác giả và vị trí tùy chọn. Những tính năng này làm cho thư viện phù hợp cho việc tạo các bài thuyết trình tương tác, giàu dữ liệu đáp ứng tiêu chuẩn chuyên nghiệp và vượt qua kiểm tra schema.
Cách thêm biểu đồ và hoạt ảnh vào một slide?
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);
Xác thực & Tuân thủ Schema
Đảm bảo các tệp PPTX tuân thủ chuẩn ECMA-376 là rất quan trọng để tương thích giữa các công cụ. @office-kit/pptx bao gồm `validatePresentation()` để phát hiện các vấn đề như mối quan hệ bị thiếu, ID slide không hợp lệ, hoặc tham chiếu bố cục bị hỏng. Nó cũng sử dụng `xmllint` trong CI khi có sẵn để xác thực XML được tạo so với các schema chính thức. Lớp xác thực này giúp bắt các lỗi tinh vi trước khi phân phối, đảm bảo các bản trình chiếu mở một cách đáng tin cậy trong PowerPoint, Keynote, Google Slides và LibreOffice—mà không phải dựa vào hành vi "open and pray".
Cách xác thực một bản trình chiếu 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.
