Zum Inhalt springen

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 KB

    Deutsche 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 KB

    E-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 mit factur-x.xml, vor der Auslieferung gegen die Regeln der EN 16931 geprüft.

    money · number · date

  • Jinja2PDF · 1 Seite · 141 KB

    US-Rechnung mit Sales Tax

    Papierformat Letter, Dollar und US-Datumsangaben aus der Locale en-US der 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 KB

    Kassenbon 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 mit where und sum.

    sum · where · money · number · barcode · qrcode · date · dateAdd

  • Jinja2PDF · 1 Seite · 101 KB

    Angebot 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 KB

    Angebot als Entwurf markiert

    Die Vorlage weiß nichts von der Markierung: post.watermark legt 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/watermark markiert ein früher gerendertes PDF.

    money · date · dateAdd · sum

  • LiquidPDF · 1 Seite · 90 KB

    Lieferschein 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 KB

    Packliste, nach Packstücken gruppiert

    Die Anfrage sendet eine flache Artikelliste; groupBy macht 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 KB

    Rechnungskorrektur (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 KB

    Mahnung 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 KB

    Kurszertifikat 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 KB

    Teilnahmebescheinigung mit Inhalten und Prüfcode

    Eine Bescheinigung, die aufführt, was vermittelt wurde: die Module mit ihren Unterrichtseinheiten, die Summe als Zahl und von numToWords auf 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 KB

    Arbeitszeugnis aus Markdown

    Ein Textdokument statt einer Tabelle: Die Absätze kommen als Markdown, markdown macht 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 KB

    Lebenslauf 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 range und lt als fünf Punkte.

    sortBy · date · range · lt · join

  • HandlebarsPDF · 1 Seite · 110 KB

    Vertrauliche 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 KB

    Stundenzettel mit Saldo und Projektübersicht

    Ein Wochen-Stundenzettel in Handlebars: Wochentage auf Deutsch formatiert, die gearbeiteten Stunden summiert und mit subtract dem 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 KB

    Gegenseitiges 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 numToWords aus: „two (2) years“.

    date · dateAdd · numToWords · join

  • HandlebarsPDF · 1 Seite · 83 KB

    Kü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 KB

    Spendenbescheinigung (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 KB

    Veranstaltungsticket 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 KB

    Namensschilder, 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, und default ersetzt eine fehlende Organisation oder Rolle. Zehn Gäste ergeben zwei Seiten.

    chunk · pageBreak · upper · default

  • LiquidPDF · 1 Seite · 34 KB

    Geschenkgutschein 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 über dateAdd drei 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 KB

    Bericht mit Diagramm

    Ein Deckblatt, ein Seitenumbruch und ein Chart.js-Balkendiagramm, das in der Vorlage aus den Daten entsteht; pluck holt 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 KB

    Jahresbericht 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.outline macht 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 KB

    Händler-Preisliste mit EAN-Barcodes

    Ein Produkt-Feed kommt unsortiert an. groupBy bildet einen Abschnitt je Kategorie, sortBy sortiert jeden nach Name, min und max ergeben 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 KB

    Eine Vorlage, viele Sprachen

    Texte kommen über t() aus dem Wörterbuch der Vorlage, und die locale der 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 KB

    Open-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 KB

    Bewertungskarte, 1080×1080

    Eine quadratische Karte für Instagram und LinkedIn aus einer Kundenbewertung: range und lt zeichnen die Bewertung als fünf Sterne, truncate hält ein langes Zitat im Quadrat, und das Datum der Bewertung steht als Monat und Jahr da.

    range · lt · truncate · date

  • LiquidPNG · 189 KB

    Webinar-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: date nimmt als zweites Argument eine Zeitzone, London, Berlin und New York lesen also jeweils ihre eigene Uhr, Winterzeit eingeschlossen.

    date · qrcode · replace · join

  • Jinja2PNG · 52 KB

    Kennzahlen-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 sortBy und first und 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 KB

    Versandetikett, 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. barcode kann 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.

Die Beispielgalerie in der App: ein Suchfeld, Filter für Gruppe, Art und Engine und Karten mit den gerenderten Rechnungen und Angeboten der ersten Gruppe.

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.

template.htmlJinja2
{% 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>
template.htmlLiquid
{% 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>
template.htmlHandlebars
{{#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
200 OKJSON
{
  "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.