办公文档
需要从结构化 JSON 生成…
当用户要求创建演示文稿、Word、Excel 图表或 PDF 报告,且可用 JSON layout spec 描述内容时,使用 PaperJSX 生成新文档。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要从结构化 JSON 生成 PPTX/特定
解决思路
- 根据目标格式安装对应包:生成演示文稿运行 `npm install @paperjsx/json-to-pptx`。
- 生成 Word 文档运行 `npm install @paperjsx/json-to-docx`。
- 生成电子表格运行 `npm install @paperjsx/json-to-xlsx`。
- 生成 PDF 文档运行 `npm install @paperjsx/json-to-pdf`。
- 按 `references/json-schema.md` 中的 schema 构建 JSON layout spec。
- 编写 Node.js 脚本,把 JSON spec 传给 PaperJSX engine。
- 运行脚本生成输出文件。
- 生成后校验输出文件存在且非 0 字节。
- 不要写命令式 PaperJSX API 代码;执行模型始终是 JSON spec in、document file out。
- PPTX 生成:从 `@paperjsx/json-to-pptx` 导入 `PaperEngine`,从 `node:fs` 导入 `fs`;构造 `type: Document`、`meta.title: Q4 Review`、`slides` 数组,slide 用 `type: Slide` 和 `children`,文本用 `type: Text`、`content: Q4 2025 Business Review`、`style: { fontSize: 36, bold: true }`;调用 `await PaperEngine.render(spec)` 得到 buffer;用 `fs.writeFileSync('presentation.pptx', buffer)` 写入;打印 `Generated presentation.pptx`。
- DOCX 生成:从 `@paperjsx/json-to-docx` 导入 `renderToDocx`,从 `node:fs` 导入 `fs`;构造 `type: DocxDocument`、`pageSize: a4`、`orientation: portrait`、`pages` 数组,pages 内用 `elements`,元素如 `type: heading`、`level: 1`、`text: Quarterly Report` 和 `type: paragraph`、`text: Section content here.`;调用 `await renderToDocx(...)`;用 `fs.writeFileSync('report.docx', result.buffer)` 写入;打印 `Generated report.docx`。
- XLSX 生成:从 `@paperjsx/json-to-xlsx` 导入 `SpreadsheetEngine`,从 `node:fs` 导入 `fs`;构造 `meta: { title: Revenue Data, creator: PaperJSX }`、`sheets` 数组,sheet 含 `name: Revenue` 和 `rows`,每行含 `cells`,单元格用 `value`,例如 `Quarter`、`Revenue`、`Q1 2026`、`420000`、`Q2 2026`、`510000`;调用 `await SpreadsheetEngine.render(spec)` 得到 buffer;用 `fs.writeFileSync('revenue.xlsx', buffer)` 写入;打印 `Generated revenue.xlsx`。
- 生成后验证:用 `fs.statSync('output.pptx')` 读取 `stats`;如果 `stats.size === 0` 则 `throw new Error('Generated file is empty')`;否则打印 `Output file: ${stats.size} bytes`。
- 如果 engine 抛出错误,向用户展示完整错误消息。
- 查看 `references/json-schema.md` 获取所有支持格式的完整 JSON layout spec schema。
适用边界 · 注意事项
- 不要用于编辑已有 PPTX/DOCX/XLSX/PDF 文件;PaperJSX 只生成新文件。
- 不要写命令式 PaperJSX API 代码;必须使用 JSON spec 输入、文档文件输出模型。
- 未安装对应 `@paperjsx` 包或没有 Node.js/npm 环境时不适用。