Geração de Documentos com PaperJSX
Gere documentos profissionais a partir de especificações de layout em JSON. PaperJSX é apenas para criação — ele cria novos arquivos, não edita os existentes.
Gatilhos
Use esta skill quando o usuário pedir para:
- Criar uma apresentação ou gerar slides
- Fazer um arquivo PPTX ou PowerPoint
- Criar um documento Word ou DOCX
- Gerar uma planilha Excel com gráficos
- Criar um arquivo JSON para PPTX, JSON para DOCX ou JSON para XLSX
- Gerar uma fatura, relatório ou documento com gráficos em PDF
Instalação
Instale o pacote apropriado para o formato:
# Apresentações
npm install @paperjsx/json-to-pptx
# Documentos Word
npm install @paperjsx/json-to-docx
# Planilhas
npm install @paperjsx/json-to-xlsx
# Documentos PDF
npm install @paperjsx/json-to-pdf
Como funciona
- Construa uma especificação de layout JSON seguindo o esquema em
references/json-schema.md - Escreva um script Node.js que passe o JSON para o motor PaperJSX
- Execute o script para gerar o arquivo de saída
- Valide se o arquivo de saída existe e não possui zero bytes
Não escreva código imperativo da API PaperJSX. O modelo de execução é sempre: especificação JSON de entrada, arquivo de documento de saída.
Exemplo: Geração de PPTX
import { PaperEngine } from "@paperjsx/json-to-pptx";
import fs from "node:fs";
const spec = {
type: "Document",
meta: { title: "Revisão Q4" },
slides: [
{
type: "Slide",
children: [
{ type: "Text", content: "Revisão de Negócios Q4 2025", style: { fontSize: 36, bold: true } }
]
}
]
};
const buffer = await PaperEngine.render(spec);
fs.writeFileSync("apresentacao.pptx", buffer);
console.log("Arquivo apresentacao.pptx gerado");
Exemplo: Geração de DOCX
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: "Relatório Trimestral" },
{ type: "paragraph", text: "Conteúdo da seção aqui." }
]
}
]
});
fs.writeFileSync("relatorio.docx", result.buffer);
console.log("Arquivo relatorio.docx gerado");
Exemplo: Geração de XLSX
import { SpreadsheetEngine } from "@paperjsx/json-to-xlsx";
import fs from "node:fs";
const spec = {
meta: { title: "Dados de Receita", creator: "PaperJSX" },
sheets: [{
name: "Receita",
rows: [
{ cells: [{ value: "Trimestre" }, { value: "Receita" }] },
{ cells: [{ value: "Q1 2026" }, { value: 420000 }] },
{ cells: [{ value: "Q2 2026" }, { value: 510000 }] }
]
}]
};
const buffer = await SpreadsheetEngine.render(spec);
fs.writeFileSync("receita.xlsx", buffer);
console.log("Arquivo receita.xlsx gerado");
Validação
Após gerar qualquer arquivo, sempre verifique:
import fs from "node:fs";
const stats = fs.statSync("saida.pptx");
if (stats.size === 0) {
throw new Error("O arquivo gerado está vazio");
}
console.log(`Arquivo de saída: ${stats.size} bytes`);
Se o motor lançar um erro, exiba a mensagem de erro completa para o usuário.
Referência do esquema
Consulte references/json-schema.md para o esquema completo de especificação de layout JSON para todos os formatos suportados.