PaperJSX-Dokumentgenerierung
Erstelle professionelle Dokumente aus JSON-Layoutspezifikationen. PaperJSX ist rein generierend – es erstellt neue Dateien, bearbeitet aber keine vorhandenen.
Trigger
Nutze diesen Skill, wenn der Benutzer darum bittet:
- Eine Präsentation zu erstellen oder Folien zu generieren
- Eine PPTX- oder PowerPoint-Datei zu erstellen
- Ein Word-Dokument oder DOCX zu erstellen
- Eine Excel-Tabelle mit Diagrammen zu generieren
- Eine JSON-zu-PPTX-, JSON-zu-DOCX- oder JSON-zu-XLSX-Datei zu erstellen
- Eine PDF-Rechnung, einen Bericht oder ein Diagrammdokument zu generieren
Installation
Installiere das formatgerechte Paket:
# Präsentationen
npm install @paperjsx/json-to-pptx
# Word-Dokumente
npm install @paperjsx/json-to-docx
# Tabellenkalkulationen
npm install @paperjsx/json-to-xlsx
# PDF-Dokumente
npm install @paperjsx/json-to-pdf
Funktionsweise
- Erstelle eine JSON-Layoutspezifikation, die dem Schema in
references/json-schema.mdentspricht - Schreibe ein Node.js-Skript, das das JSON an die PaperJSX-Engine übergibt
- Führe das Skript aus, um die Ausgabedatei zu generieren
- Überprüfe, ob die Ausgabedatei existiert und nicht leer ist
Schreibe keinen imperativen PaperJSX-API-Code. Das Ausführungsmodell ist immer: JSON-Spezifikation rein, Dokumentdatei raus.
Beispiel: PPTX-Generierung
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 Geschäftsreview", style: { fontSize: 36, bold: true } }
]
}
]
};
const buffer = await PaperEngine.render(spec);
fs.writeFileSync("praesentation.pptx", buffer);
console.log("Praesentation.pptx generiert");
Beispiel: DOCX-Generierung
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: "Quartalsbericht" },
{ type: "paragraph", text: "Abschnittsinhalt hier." }
]
}
]
});
fs.writeFileSync("bericht.docx", result.buffer);
console.log("Bericht.docx generiert");
Beispiel: XLSX-Generierung
import { SpreadsheetEngine } from "@paperjsx/json-to-xlsx";
import fs from "node:fs";
const spec = {
meta: { title: "Umsatzdaten", creator: "PaperJSX" },
sheets: [{
name: "Umsatz",
rows: [
{ cells: [{ value: "Quartal" }, { value: "Umsatz" }] },
{ cells: [{ value: "Q1 2026" }, { value: 420000 }] },
{ cells: [{ value: "Q2 2026" }, { value: 510000 }] }
]
}]
};
const buffer = await SpreadsheetEngine.render(spec);
fs.writeFileSync("umsatz.xlsx", buffer);
console.log("Umsatz.xlsx generiert");
Validierung
Überprüfe nach der Generierung einer Datei immer:
import fs from "node:fs";
const stats = fs.statSync("ausgabe.pptx");
if (stats.size === 0) {
throw new Error("Generierte Datei ist leer");
}
console.log(`Ausgabedatei: ${stats.size} Bytes`);
Falls die Engine einen Fehler wirft, gib die vollständige Fehlermeldung an den Benutzer aus.
Schema-Referenz
Siehe references/json-schema.md für das vollständige JSON-Layoutspezifikationsschema aller unterstützten Formate.