Services

PDF – Template anlegen

Lege ein PDF-Template in der Datenbank an, inklusive HTML, Variablen und Basis‑Optionen.

Route

  • Methode: POST
  • URL: /api/pdf/create-template
  • Auth: x-api-key (Header); nur serverseitig verwenden

Request

  • name: string (erforderlich)
  • html: string (optional; HTML-Fragment oder Dokument)
  • variables: object|string (optional; wird zu JSON serialisiert)
  • format: string (optional; z.B. "A4")
  • landscape: boolean (optional)
  • marginTop|Right|Bottom|Left: string (optional; z.B. "12mm")

/api/pdf/create-template (POST)

{
  "name": "Monthly Report",
  "html": "<h1>{{title}}</h1>",
  "variables": {
    "title": "Report"
  },
  "format": "A4",
  "landscape": false,
  "marginTop": "12mm",
  "marginRight": "12mm",
  "marginBottom": "12mm",
  "marginLeft": "12mm"
}
curl -X POST "https://dev.nuvisphere.de/api/pdf/create-template" \
  -H "Content-Type: application/json" \
  -H "x-api-key: API_KEY"
  -d '{
  "name": "Monthly Report",
  "html": "<h1>{{title}}</h1>",
  "variables": {
    "title": "Report"
  },
  "format": "A4",
  "landscape": false,
  "marginTop": "12mm",
  "marginRight": "12mm",
  "marginBottom": "12mm",
  "marginLeft": "12mm"
}'
// server-side (Node/Next.js)
const res = await fetch("https://dev.nuvisphere.de/api/pdf/create-template", {
  method: "POST",
  headers: {
    "content-type": "application/json",
    "x-api-key": process.env.MAILER_API_KEY!,

  },
  body: JSON.stringify({
  "name": "Monthly Report",
  "html": "<h1>{{title}}</h1>",
  "variables": {
    "title": "Report"
  },
  "format": "A4",
  "landscape": false,
  "marginTop": "12mm",
  "marginRight": "12mm",
  "marginBottom": "12mm",
  "marginLeft": "12mm"
}),
});
if (!res.ok) throw new Error(`Request failed ${res.status}`);
const json = await res.json();
  • API Key niemals im Browser verwenden – nur serverseitig (z. B. process.env.MAILER_API_KEY).
  • Lässt du optionale Felder weg, nutzt die API ggf. Template-/Defaultwerte.

Response

{
  "ok": true,
  "id": "DOCUMENT_ID"
}

Weiterverwendung

Die id kann in /api/pdf/generate als templateId verwendet werden, um das gespeicherte Template zu rendern.