paperjsx
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePaperJSX Document Generation
PaperJSX 文档生成
Generate professional documents from JSON layout specs. PaperJSX is generation-only — it creates new files, it does not edit existing ones.
从JSON布局规范生成专业文档。PaperJSX仅用于生成——它创建新文件,不编辑现有文件。
Triggers
触发场景
Use this skill when the user asks to:
- Create a presentation or generate slides
- Make a PPTX or PowerPoint file
- Create a Word document or DOCX
- Generate an Excel spreadsheet with charts
- Create a JSON to PPTX, JSON to DOCX, or JSON to XLSX file
- Generate a PDF invoice, report, or chart document
当用户提出以下需求时使用此技能:
- 创建演示文稿或生成幻灯片
- 制作PPTX或PowerPoint文件
- 创建Word文档或DOCX
- 生成带图表的Excel电子表格
- 创建JSON转PPTX、JSON转DOCX或JSON转XLSX文件
- 生成PDF发票、报告或图表文档
Install
安装
Install the format-appropriate package:
bash
undefined安装对应格式的包:
bash
undefinedPresentations
演示文稿
npm install @paperjsx/json-to-pptx
npm install @paperjsx/json-to-pptx
Word documents
Word文档
npm install @paperjsx/json-to-docx
npm install @paperjsx/json-to-docx
Spreadsheets
电子表格
npm install @paperjsx/json-to-xlsx
npm install @paperjsx/json-to-xlsx
PDF documents
PDF文档
npm install @paperjsx/json-to-pdf
undefinednpm install @paperjsx/json-to-pdf
undefinedHow it works
工作原理
- Build a JSON layout spec matching the schema in
references/json-schema.md - Write a Node.js script that passes the JSON to the PaperJSX engine
- Run the script to generate the output file
- Validate the output file exists and is non-zero bytes
Do not write imperative PaperJSX API code. The execution model is always: JSON spec in, document file out.
- 构建符合中 schema 的JSON布局规范
references/json-schema.md - 编写Node.js脚本,将JSON传递给PaperJSX引擎
- 运行脚本生成输出文件
- 验证输出文件已存在且大小非零
请勿编写命令式PaperJSX API代码。执行模式始终为:输入JSON规范,输出文档文件。
Example: PPTX generation
示例:PPTX生成
javascript
import { PaperEngine } from "@paperjsx/json-to-pptx";
import fs from "node:fs";
const spec = {
type: "Document",
meta: { title: "Q4 Review" },
slides: [
{
type: "Slide",
children: [
{ type: "Text", content: "Q4 2025 Business Review", style: { fontSize: 36, bold: true } }
]
}
]
};
const buffer = await PaperEngine.render(spec);
fs.writeFileSync("presentation.pptx", buffer);
console.log("Generated presentation.pptx");javascript
import { PaperEngine } from "@paperjsx/json-to-pptx";
import fs from "node:fs";
const spec = {
type: "Document",
meta: { title: "Q4 Review" },
slides: [
{
type: "Slide",
children: [
{ type: "Text", content: "Q4 2025 Business Review", style: { fontSize: 36, bold: true } }
]
}
]
};
const buffer = await PaperEngine.render(spec);
fs.writeFileSync("presentation.pptx", buffer);
console.log("Generated presentation.pptx");Example: DOCX generation
示例:DOCX生成
javascript
import { renderToDocx } from "@paperjsx/json-to-docx";
import fs from "node:fs";
const result = await renderToDocx({
type: "DocxDocument",
pageSize: "a4",
orientation: "portrait",
pages: [
{
elements: [
{ type: "heading", level: 1, text: "Quarterly Report" },
{ type: "paragraph", text: "Section content here." }
]
}
]
});
fs.writeFileSync("report.docx", result.buffer);
console.log("Generated report.docx");javascript
import { renderToDocx } from "@paperjsx/json-to-docx";
import fs from "node:fs";
const result = await renderToDocx({
type: "DocxDocument",
pageSize: "a4",
orientation: "portrait",
pages: [
{
elements: [
{ type: "heading", level: 1, text: "Quarterly Report" },
{ type: "paragraph", text: "Section content here." }
]
}
]
});
fs.writeFileSync("report.docx", result.buffer);
console.log("Generated report.docx");Example: XLSX generation
示例:XLSX生成
javascript
import { SpreadsheetEngine } from "@paperjsx/json-to-xlsx";
import fs from "node:fs";
const spec = {
meta: { title: "Revenue Data", creator: "PaperJSX" },
sheets: [{
name: "Revenue",
rows: [
{ cells: [{ value: "Quarter" }, { value: "Revenue" }] },
{ cells: [{ value: "Q1 2026" }, { value: 420000 }] },
{ cells: [{ value: "Q2 2026" }, { value: 510000 }] }
]
}]
};
const buffer = await SpreadsheetEngine.render(spec);
fs.writeFileSync("revenue.xlsx", buffer);
console.log("Generated revenue.xlsx");javascript
import { SpreadsheetEngine } from "@paperjsx/json-to-xlsx";
import fs from "node:fs";
const spec = {
meta: { title: "Revenue Data", creator: "PaperJSX" },
sheets: [{
name: "Revenue",
rows: [
{ cells: [{ value: "Quarter" }, { value: "Revenue" }] },
{ cells: [{ value: "Q1 2026" }, { value: 420000 }] },
{ cells: [{ value: "Q2 2026" }, { value: 510000 }] }
]
}]
};
const buffer = await SpreadsheetEngine.render(spec);
fs.writeFileSync("revenue.xlsx", buffer);
console.log("Generated revenue.xlsx");Validation
验证
After generating any file, always verify:
javascript
import fs from "node:fs";
const stats = fs.statSync("output.pptx");
if (stats.size === 0) {
throw new Error("Generated file is empty");
}
console.log(`Output file: ${stats.size} bytes`);If the engine throws an error, surface the full error message to the user.
生成任何文件后,请始终进行验证:
javascript
import fs from "node:fs";
const stats = fs.statSync("output.pptx");
if (stats.size === 0) {
throw new Error("Generated file is empty");
}
console.log(`Output file: ${stats.size} bytes`);如果引擎抛出错误,请将完整错误信息反馈给用户。
Schema reference
Schema参考
See for the complete JSON layout spec schema for all supported formats.
references/json-schema.md查看获取所有支持格式的完整JSON布局规范schema。
references/json-schema.md