PDF aus Handlebars-Template erstellen
Der Service Task „PDF erstellen aus Template (Handlebars)“ erzeugt ein PDF-Dokument auf Basis einer HTML-Vorlage. Die Vorlage wird mit Handlebars gerendert, um dynamische Inhalte einzufügen. Ideal für Rechnungen, Angebote oder Berichte.
Input-Parameter
Die folgenden Felder werden als Eingabe für den Task benötigt:
{
"filename": "document.pdf",
"content": {
"customerName": "Max Mustermann",
"invoiceNumber": "12345",
"totalAmount": 500.00
},
"templateHtml": "<html><body><h1>Rechnung Nr. {{invoiceNumber}}</h1><p>Kunde: {{customerName}}</p><p>Betrag: {{totalAmount}} EUR</p></body></html>"
}
Erläuterung:
filename
: Gewünschter Dateiname des erzeugten PDF-Dokuments.content
: Daten, die in die HTML-Vorlage eingebettet werden sollen.templateHtml
: HTML-Vorlage mit Handlebars-Platzhaltern.
Output
Der Task gibt eine Referenz zum erzeugten PDF-Dokument zurück.
{
"status": 200,
"response": {
"fileReference": "s3://bucket-name/document.pdf"
}
}
Erläuterung:
status
: Status des Vorgangs (200
für erfolgreich).fileReference
: Datei-Referenz zum erstellten PDF-Dokument.
JSONata-Beispiele
{
"filename": "rechnung-{{$.orderDetails.orderId}}.pdf",
"content": {
"customerName": $.customer.name,
"invoiceNumber": $.orderDetails.orderId,
"totalAmount": $.orderDetails.totalAmount
},
"templateHtml": "<html><body><h1>Rechnung Nr. {{invoiceNumber}}</h1><p>Kunde: {{customerName}}</p><p>Betrag: {{totalAmount}} EUR</p></body></html>"
}
Verfügbare Handlebars-Helper
Helper | Beschreibung | Beispiel |
---|---|---|
dateTimeFormat |
Formatiert ein Datum im ISO-8601-Format zu einem lokalisierten Datum und Uhrzeit. | {{dateTimeFormat '2024-12-22T10:30:00Z' 'de-DE' 'Europe/Berlin'}} |
multiply |
Multipliziert zwei Zahlen. | {{multiply 5 3}} |
currentDateTime |
Gibt das aktuelle Datum und die Uhrzeit im angegebenen Format zurück. | {{currentDateTime 'de-DE' 'Europe/Berlin'}} |
toGermanDate |
Konvertiert ein Datum im Format YYYY-MM-DD in das deutsche Datumsformat. |
{{toGermanDate '2024-12-22'}} |
replace |
Ersetzt einen bestimmten Text durch einen anderen. | {{replace 'Pantarey GmbH' 'GmbH' 'AG'}} |
add |
Addiert zwei Zahlen. | {{add 10 5}} |
round |
Rundet eine Zahl auf eine bestimmte Anzahl von Dezimalstellen. | {{round 12.3456 2}} |
currency_eur |
Formatiert eine Zahl als Euro-Betrag im deutschen Format. | {{currency_eur 1234.56}} |
addDaysToCurrentDate |
Fügt eine bestimmte Anzahl von Tagen zum aktuellen Datum hinzu. | {{addDaysToCurrentDate 5}} |
month_name |
Gibt den Monatsnamen basierend auf einem Datum zurück. | {{month_name '2024-12-22'}} |
greaterThan |
Prüft, ob die erste Zahl größer als die zweite ist. | {{#greaterThan 10 5}}Größer{{else}}Nicht größer{{/greaterThan}} |
lessThan |
Prüft, ob die erste Zahl kleiner als die zweite ist. | {{#lessThan 3 5}}Kleiner{{else}}Nicht kleiner{{/lessThan}} |
greaterOrEqualThan |
Prüft, ob die erste Zahl größer oder gleich der zweiten ist. | {{#greaterOrEqualThan 5 5}}Größer oder gleich{{else}}Nicht größer oder gleich{{/greaterOrEqualThan}} |
lessOrEqualThan |
Prüft, ob die erste Zahl kleiner oder gleich der zweiten ist. | {{#lessOrEqualThan 3 5}}Kleiner oder gleich{{else}}Nicht kleiner oder gleich{{/lessOrEqualThan}} |
numberFormat |
Formatiert eine Zahl im deutschen Zahlenformat. | {{numberFormat 1234567.89}} |
Hinweise
- Verwende Handlebars in
templateHtml
, um dynamische Inhalte einzufügen. - Nutze die Helper, um Inhalte bequem zu formatieren.
- Stelle sicher, dass die Daten im
content
korrekt formatiert sind. - Das PDF wird im Hintergrund generiert und als Datei-Referenz zurückgegeben.
Tipp
Nutze JSONata, um content
und filename
dynamisch aus Prozessdaten zu erzeugen.