Beispiele
Vorlagen zum Übernehmen
Jedes Beispiel ist ein vollständiger Vorlagenordner, wie ihn die CLI anlegt: Vorlage, Einstellungen, Beispieldaten und die Anfrage, die sie rendert. Jedes rendert genau so mit derselben Engine, die auch die API nutzt.
Die Ergebnisse sind echte Ausgaben, keine Entwürfe: vom Formfeed-Render-Worker (Chromium 153.0.8010.12) aus genau den gezeigten Dateien gerendert und zum Herunterladen.
Angebote, Rechnungen und was danach kommt
Jinja2PDF · 1 Seite · 90 KBDeutsche Rechnung mit GiroCode
Positionen, Netto, Umsatzsteuer und Brutto in der Vorlage berechnet, Datumsangaben im deutschen Format mit Fälligkeit nach 14 Tagen, ein SEPA-QR-Code für Banking-Apps und eine Fußzeile mit Seitenzahlen. Ihr Code sendet die Fakten; die Vorlage verantwortet das Layout.
money · number · date · dateAdd · sum · epcQr
Jinja2PDF · 1 Seite · 129 KBE-Rechnung: ZUGFeRD und Factur-X aus einer Vorlage
Eine deutsche Rechnung, deren Daten ein einziger
_invoice-Block sind. Die Vorlage druckt den Block, und derselbe Block wird zum XML im PDF: eine ZUGFeRD- bzw. Factur-X-Rechnung, ein PDF/A-3 mitfactur-x.xml, vor der Auslieferung gegen die Regeln der EN 16931 geprüft.money · number · date
Jinja2PDF · 1 Seite · 141 KBUS-Rechnung mit Sales Tax
Papierformat Letter, Dollar und US-Datumsangaben aus der Locale
en-USder Vorlage. Die Sales Tax gilt nur für steuerpflichtige Positionen, eine Anzahlung verringert den offenen Betrag, und Status und QR-Code zum Bezahlen folgen aus dem, was noch offen ist.sum · where · round · money · number · date · dateAdd · default · qrcode · replace
LiquidPDF · 1 Seite · 27 KBKassenbon auf einer 80-mm-Rolle
Ein Kassenbon für Thermodrucker, dessen Seite genau so lang ist wie der Bon: Die Vorlage schreibt ihre
@page-Größe selbst, aus der Zahl der Artikel und Steuersätze. Die Preise sind Bruttopreise, und die Aufschlüsselung je Steuersatz entsteht in der Vorlage mitwhereundsum.sum · where · money · number · barcode · qrcode · date · dateAdd
Jinja2PDF · 1 Seite · 101 KBAngebot mit optionalen Positionen
Ein Angebot im deutschen Brieflayout: Optionale Positionen stehen in der Liste, bleiben aber aus der Summe, Rabatt und Umsatzsteuer werden in der Vorlage berechnet, und die Gültigkeit ergibt sich aus dem Angebotsdatum. Die Fußzeile trägt die Pflichtangaben für Geschäftsbriefe.
money · number · date · dateAdd · sum · where
LiquidPDF · 1 Seite · 74 KBAngebot als Entwurf markiert
Die Vorlage weiß nichts von der Markierung:
post.watermarklegt DRAFT nach dem Rendern über jede Seite, geprüfter Entwurf und endgültiges Angebot kommen also aus derselben Vorlage und denselben Daten. Der Text richtet sich nach der Seitendiagonale und läuft von links unten nach rechts oben. Eine halbe Einheit zusätzlich zum Rendering;/pdf/watermarkmarkiert ein früher gerendertes PDF.money · date · dateAdd · sum
LiquidPDF · 1 Seite · 90 KBLieferschein mit Barcode und Empfangsbestätigung
Ein Lieferschein ohne Preise: bestellte gegen gelieferte Mengen, ein Hinweis bei Positionen mit Restmenge, die Nummer als Code-128-Barcode für den Wareneingang und ein Unterschriftsblock, der nie über einen Seitenumbruch läuft. Geschrieben in Liquid.
barcode · date · number · sum · default
Jinja2PDF · 1 Seite · 95 KBPackliste, nach Packstücken gruppiert
Die Anfrage sendet eine flache Artikelliste;
groupBymacht daraus einen Abschnitt je Packstück mit eigener Tabelle und eigenem Gewicht, und die Einleitung zählt Packstücke, Artikel und Kilogramm. Ein Packstück wird nie über zwei Seiten getrennt.groupBy · sum · number · date · length
Jinja2PDF · 1 Seite · 103 KBRechnungskorrektur (umgangssprachlich Gutschrift)
Was umgangssprachlich „Gutschrift“ heißt: eine Korrektur, die sich mit Nummer und Datum auf die ursprüngliche Rechnung bezieht und die Beträge negativ ausweist. Die Daten enthalten die positiven Werte der korrigierten Positionen; die Vorlage dreht das Vorzeichen mit
multiply(-1)und berechnet die Umsatzsteuer auf das Ergebnis.money · number · date · sum · multiply
HandlebarsPDF · 1 Seite · 114 KBMahnung mit GiroCode
Ein Mahnschreiben in Handlebars: Der Text ändert sich mit der letzten Mahnung, offene Rechnungen werden über verschachtelte Helfer mit Verzugszinsen und Mahngebühr summiert, und ein GiroCode trägt Gesamtbetrag und Verwendungszweck. Der Mahnlauf für alle Kunden ist ein Batch.
money · date · dateAdd · sum · add · epcQr
Zertifikate und Personaldokumente
HandlebarsPDF · 1 Seite · 49 KBKurszertifikat in Handlebars
Ein Zertifikat im Querformat mit QR-Code zur Echtheitsprüfung, einzeln als PNG gerendert oder für einen ganzen Kurs als Batch, der in einem Zip endet. Handlebars nimmt Optionen als Hash-Argumente:
{{qrcode verify_url size=96}}.date · qrcode · upper
HandlebarsPDF · 1 Seite · 101 KBTeilnahmebescheinigung mit Inhalten und Prüfcode
Eine Bescheinigung, die aufführt, was vermittelt wurde: die Module mit ihren Unterrichtseinheiten, die Summe als Zahl und von
numToWordsauf Deutsch ausgeschrieben, dazu ein QR-Code zum Prüfen der Bescheinigungsnummer. Randloses A4 ohne Ränder, für einen ganzen Kurs als ein Batch gerendert.date · sum · number · qrcode · numToWords
LiquidPDF · 1 Seite · 76 KBArbeitszeugnis aus Markdown
Ein Textdokument statt einer Tabelle: Die Absätze kommen als Markdown,
markdownmacht daraus HTML mit Listen und Hervorhebungen, und die Vorlage setzt eine Serifenschrift, Blocksatz mit Silbentrennung und einen Unterschriftsblock für zwei Unterzeichnende, der auf einer Seite zusammenbleibt.markdown · date · upper
HandlebarsPDF · 1 Seite · 100 KBLebenslauf mit Seitenleiste und Kompetenzbewertung
Ein einseitiger Lebenslauf in zwei Spalten bis an den Rand. Die Vorlage sortiert die Stationen nach Beginn, die Daten dürfen also in beliebiger Reihenfolge kommen, schreibt „present“ für eine Stelle ohne Enddatum und zeichnet jede Bewertung mit
rangeundltals fünf Punkte.sortBy · date · range · lt · join
HandlebarsPDF · 1 Seite · 110 KBVertrauliche Gehaltsabrechnung mit Passwort
Zwei Post-Processing-Schritte in einer Anfrage: eine rote Markierung CONFIDENTIAL auf jeder Seite, danach AES-256-Verschlüsselung mit dem Passwort der Mitarbeiterin oder des Mitarbeiters; Drucken ist erlaubt, Kopieren und Bearbeiten nicht. Das Passwort landet nie im Render-Log. Der Download öffnet sich mit dem Passwort
formfeed. Eine Einheit für die Seite plus je eine halbe Einheit pro Schritt.money · date · sum
HandlebarsPDF · 1 Seite · 87 KBStundenzettel mit Saldo und Projektübersicht
Ein Wochen-Stundenzettel in Handlebars: Wochentage auf Deutsch formatiert, die gearbeiteten Stunden summiert und mit
subtractdem Soll gegenübergestellt, und dieselben Einträge für die Übersicht nach Projekt gruppiert. Zwei Unterschriftszeilen bleiben am Seitenende zusammen.date · number · sum · subtract · groupBy
Verträge und Bestätigungen
HandlebarsPDF · 2 Seiten · 147 KBGegenseitiges NDA mit nummerierten Klauseln
Eine zweiseitige Vereinbarung mit laufender Kopfzeile, einer Fußzeile für Paraphen und Seitenzahlen und Klauseln, die CSS-Zähler nummerieren; die optionale Abwerbeklausel nummeriert also alles danach neu. Die Laufzeit schreibt
numToWordsaus: „two (2) years“.date · dateAdd · numToWords · join
HandlebarsPDF · 1 Seite · 83 KBKündigungsbestätigung mit bedingten Absätzen
Ein schlichter Geschäftsbrief, dessen Absätze von den Daten abhängen: Mit Erstattung nennt er Betrag und Termin, ohne sagt er, dass nichts mehr offen ist, und der Absatz zum Datenexport erscheint nur, wenn es eine Frist gibt. Datumsangaben sind auf Deutsch ausgeschrieben.
date · money
LiquidPDF · 1 Seite · 111 KBSpendenbescheinigung (Zuwendungsbestätigung)
Eine Bestätigung über eine Geldzuwendung, angelehnt an den Wortlaut des amtlichen Musters: der Betrag in Ziffern und, über
numToWords, in Großbuchstaben, wie das Formular es verlangt, der Freistellungsbescheid des Finanzamts und der Haftungshinweis. Das Beispiel zeigt die Mechanik; lassen Sie den Wortlaut für Ihre Organisation steuerlich prüfen.money · numToWords · date · upper
Veranstaltungen: Tickets, Namensschilder und Gutscheine
Jinja2PDF · 1 Seite · 89 KBVeranstaltungsticket mit QR-Code und PDF417
Ein Ticket zum Selbstausdrucken im eigenen Papierformat, 210 × 80 mm ohne Ränder: ein QR-Code für die Check-in-App auf dem Abriss, die Ticketnummer noch einmal als PDF417-Streifen für Handscanner, und Beginn, Einlass und Wochentag aus zwei Zeitstempeln auf Deutsch formatiert.
date · money · upper · qrcode · barcode
Jinja2PDF · 2 Seiten · 83 KBNamensschilder, acht pro A4-Bogen
Eine Anfrage enthält die ganze Gästeliste.
chunk(8)teilt sie in Bögen zu acht Schildern in einem CSS-Grid mit Zellen von 90 × 67,5 mm,pageBreak()beginnt dazwischen einen neuen Bogen, unddefaultersetzt eine fehlende Organisation oder Rolle. Zehn Gäste ergeben zwei Seiten.chunk · pageBreak · upper · default
LiquidPDF · 1 Seite · 34 KBGeschenkgutschein mit Tailwind, als PDF und PNG
Ein Gutschein im Format DIN lang, gestaltet mit Tailwind-Klassen, die beim Rendern kompiliert werden, beliebige Werte wie
h-[99mm]eingeschlossen. Das Ablaufdatum liegt überdateAdddrei Jahre nach dem Ausstellungsdatum, die Nachricht erscheint nur, wenn es eine gibt, und dieselbe Vorlage rendert als PNG für die Mail.money · date · dateAdd · qrcode · default
Berichte, Preislisten und mehrsprachige Dokumente
Jinja2PDF · 2 Seiten · 34 KBBericht mit Diagramm
Ein Deckblatt, ein Seitenumbruch und ein Chart.js-Balkendiagramm, das in der Vorlage aus den Daten entsteht;
pluckholt Beschriftungen und Werte aus den Zeilen. Diagramme rendern ohne Animation, das PDF entspricht also der Vorschau. Lange Berichte laufen asynchron und melden sich per Webhook.chart · pluck · sum · money · number · date · pageBreak
Jinja2PDF · 4 Seiten · 431 KBJahresbericht mit Inhaltsverzeichnis und Lesezeichen
Ein vierseitiger Bericht: ein Deckblatt mit verlinktem Inhaltsverzeichnis, Kennzahlen, ein Liniendiagramm mit zwei Jahren, Regionen nach Umsatz sortiert und ein Anhang mit Konten nach Region gruppiert.
pdf.outlinemacht die Überschriften zu Lesezeichen, und keine Region wird über eine Seite getrennt.sum · sortBy · first · groupBy · length · pluck · chart · round · number · money · date
LiquidPDF · 2 Seiten · 272 KBHändler-Preisliste mit EAN-Barcodes
Ein Produkt-Feed kommt unsortiert an.
groupBybildet einen Abschnitt je Kategorie,sortBysortiert jeden nach Name,minundmaxergeben die Preisspanne in der Überschrift, und jede Zeile trägt ihren EAN-13-Barcode. Eine Kategorie wird nie über eine Seite getrennt.groupBy · sortBy · min · max · length · money · multiply · barcode · date
Jinja2PDF · 1 Seite · 17 KBEine Vorlage, viele Sprachen
Texte kommen über
t()aus dem Wörterbuch der Vorlage, und dielocaleder Anfrage wählt Sprache sowie Zahlen- und Datumsformat. Das deutsche Rendering sagt „Auftragsbestätigung“ und „113,50 €“, das englische „Order confirmation“ und „€113.50“, aus denselben Daten.t · money · sum · date · dateAdd
Social-Media-Bilder und Etiketten
LiquidPNG · 356 KBOpen-Graph-Bild mit Tailwind
Ein Social-Bild in 1200×630 in Liquid mit Tailwind-Klassen, beim Rendern kompiliert. Liquid übergibt Optionen als Schlüsselwort-Argumente (
| image: width: 72), und eine identische Anfrage mit einem Live-Schlüssel innerhalb von 24 Stunden bekommt die frühere Datei, ohne Einheiten zu kosten.image · date · truncate · default
HandlebarsPNG · 117 KBBewertungskarte, 1080×1080
Eine quadratische Karte für Instagram und LinkedIn aus einer Kundenbewertung:
rangeundltzeichnen die Bewertung als fünf Sterne,truncatehält ein langes Zitat im Quadrat, und das Datum der Bewertung steht als Monat und Jahr da.range · lt · truncate · date
LiquidPNG · 189 KBWebinar-Story, 1080×1920
Eine Story im Format 9:16 in Liquid und Tailwind, die den Beginn aus einem Zeitstempel für drei Städte angibt:
datenimmt als zweites Argument eine Zeitzone, London, Berlin und New York lesen also jeweils ihre eigene Uhr, Winterzeit eingeschlossen.date · qrcode · replace · join
Jinja2PNG · 52 KBKennzahlen-Karte mit Diagramm, 1200×675
Eine Karte im Format 16:9 für Slack, LinkedIn oder X aus dreißig Tagen Bestellungen: Summen, die Veränderung zum Vormonat, der stärkste Tag über
sortByundfirstund ein Chart.js-Balkendiagramm für dunklen Hintergrund, alles in der Vorlage berechnet.sum · round · sortBy · first · number · money · date · chart · range · length · pluck
Jinja2PDF · 1 Seite · 32 KBVersandetikett, 100×150 mm
Ein eigenes Papierformat für Thermodrucker, ein Code-128-Barcode für die Sendungsnummer, ein QR-Code aus URL und Sendungsnummer und der Paketinhalt in der Vorlage summiert.
barcodekann auch EAN-13, ITF-14, DataMatrix und PDF417.barcode · qrcode · number · sum · upper
Mit einem Klick im eigenen Workspace
Jede Beispielseite hat den Button „Diese Vorlage verwenden“. Er führt in die App, wo ein Klick eine Kopie in Ihrem Workspace anlegt: die Vorlage mit Einstellungen, Übersetzungen und Beispieldaten, veröffentlicht und bereit für die API. Dieselben Beispiele stehen in der App unter Vorlagen → Beispiele, mit Suche und Filtern für Gruppe, Art und Engine.

Dieselben Zeilen, drei Engines
Wählen Sie die Vorlagensprache, die Ihr Team kennt. Die Helfer sind überall dieselben: Filter in Jinja2 und Liquid, Helper in Handlebars.
Mit der Locale de-DE geben alle drei 960,00 € und 10.09.2026 aus.
{% for line in invoice.lines %}
<tr>
<td>{{ line.description }}</td>
<td class="num">{{ line.qty | number(0) }}</td>
<td class="num">{{ line.total | money }}</td>
</tr>
{% endfor %}
<p>{{ invoice.date | date('dd.MM.yyyy') }}</p>{% for line in invoice.lines %}
<tr>
<td>{{ line.description }}</td>
<td class="num">{{ line.qty | number: 0 }}</td>
<td class="num">{{ line.total | money }}</td>
</tr>
{% endfor %}
<p>{{ invoice.date | date: 'dd.MM.yyyy' }}</p>{{#each invoice.lines}}
<tr>
<td>{{description}}</td>
<td class="num">{{number qty 0}}</td>
<td class="num">{{money total}}</td>
</tr>
{{/each}}
<p>{{date invoice.date "dd.MM.yyyy"}}</p>Was zurückkommt
Ein synchrones Rendering antwortet mit dem fertigen Dokument: einer signierten Download-URL, der Seitenzahl, den berechneten Einheiten und den Versionen, die es erzeugt haben, damit Sie später genau sagen können, welche Vorlage und welche Engine die Datei gemacht haben.
Lassen Sie einen Agenten füllen
Dieselben Vorlagen funktionieren über den MCP-Server aus Claude, Cursor oder Ihrem eigenen Agenten: Der Agent liest das Schema, prüft die Daten und rendert.
KI-Agenten einrichten{
"id": "rnd_7da09ab6cd9946b798c187c2a9350852",
"status": "succeeded",
"output": "pdf",
"download_url": "https://cdn.formfeed.dev/o/eu/…/rechnung-2026-0042.pdf?exp=…&sig=…",
"expires_at": "2026-09-17T10:42:00.000Z",
"page_count": 1,
"units": 1,
"region": "eu",
"environment": "live",
"template": { "id": "tpl_7c1e4b9a2d5f4c8e9b3a6d0f2e8c4a1b", "slug": "invoice-de", "version": 7 },
"engine_version": "chromium 140.0.7339.16; engine jinja2",
"template_checksum": "9f2c…",
"output_sha256": "b41e…",
"deduplicated": false,
"timings": { "queue_ms": 0, "compile_ms": 12, "render_ms": 640, "post_ms": 0, "upload_ms": 41, "total_ms": 712 },
"created_at": "2026-09-10T10:42:00.000Z"
}Heute mit dem Rendern beginnen
Der kostenlose Plan enthält 100 Einheiten im Monat und kostenlose Testrenderings. Wechseln Sie den Plan, wenn Sie mehr brauchen.