Generate native .pptx, .docx, .xlsx, and .pdf files from JSON. No headless Chromium, no HTML conversion —
real OOXML and real PDF, straight to a buffer.
Deterministic output, flexbox layout, and strict Zod validation at every edge. Works in any Node.js >=18 runtime
— serverless, edge, CI, desktop.
@paperjsx/json-to-pptx— PowerPoint from JSON.
Editable charts, 40+ shapes, diagrams, flex layout.@paperjsx/json-to-docx— Word from JSON. Tables with
spans, nested lists, images, template hydration ({{placeholder}}).@paperjsx/json-to-pdf— PDF from JSON. Font subsetting, tagged structure for accessibility, streaming output.@paperjsx/json-to-xlsx— Excel from JSON. 40+ formula builders, conditional formatting, style dedup.@paperjsx/templates— 13 typed templates (invoice, lab report, pitch deck, …) with Zod schemas and sample data.@paperjsx/document-diff— plugin-driven JSON diffing for review UIs and audit logs.
@paperjsx/json-to-pptx-pro— 140+ shapes, 15 chart types,.potxtemplates, HarfBuzz shaping, canvas previews. Production / self-hosting license.@paperjsx/json-to-docx-pro·@paperjsx/json-to-pdf-pro·@paperjsx/json-to-xlsx-pro— commercial tiers of the document engines.
@paperjsx/mcp-server— Model Context Protocol server. 13 tools that let Claude, Cursor, Copilot, Windsurf, Cline, and Gemini actually produce documents, not just describe them.
npm install @paperjsx/json-to-pptx
import { PaperEngine } from "@paperjsx/json-to-pptx";
import { writeFileSync } from "node:fs";
const buffer = await PaperEngine.render({
type: "Document",
slides: [{
type: "Slide",
children: [{ type: "Text", content: "Hello, PaperJSX" }],
}],
});
writeFileSync("hello.pptx", buffer); Docs · playground · npm · npm
Built by theplainworks