Funktionen

Die grundlegenden Details, richtig umgesetzt.

Echte Dokumentensemantik, keine Browser-Screenshots in einem PDF-Wrapper.

Browse use cases
/01

Pixelgenaue Kontrolle

x/y in Millimetern, x_anchor für rechtsbündige Ausrichtung, sub-millimeter-genaue Platzierung auf Etiketten. Koordinaten, keine Näherungen.

// inside elements[i]
"x_anchor": {
  "reference": "content_right",
  "offset": 6
}
/02

Vektor-Barcodes

30+ Symbologien inkl. GS1-128, QR, PDF417, DataMatrix. Alle vektorbasiert. Gesamtlänge auf 0,1 mm genau.

// 30+ formats: code128, qrcode, datamatrix, pdf417, ...
"type": "barcode",
"format": "code128",
"content": "INV-2026-001"
Why vector beats raster
/03

Font-Fallback-Kette

font_mode: strict (deklarierte Familie muss alle Glyphen abdecken), prefer (Fallback durch gebündelte Familien), auto (Engine wählt). Erschöpfung in auto/prefer liefert API-504 — fail-loud, nicht still.

// inside style{}
"font_family": "NotoSans-Regular",
"font_mode": "prefer"
/04

Compliance-Modi

settings.profile = "pdfa-3b" aktiviert PDF/A-3b-Konformität plus den eingebetteten XML-Anhangsstrom, den Factur-X / ZUGFeRD verlangen. Ein Feld, ein konformes Dokument.

// top-level on DocumentRequest
"settings": {
  "profile": "pdfa-3b"
}
PDF/A and Factur-X, explained
/05

Variablen + Paginierung

{page} / {total_pages} nach dem Layout aufgelöst. keep_together, widow/orphan, page_break-Blöcke.

// element of type "variable"
{ "type": "variable",
  "name": "page",
  "scope": "system" }
/06

Tabellen, die paginieren

row_span über Seiten hinweg, wiederholte Header, alternate_fill, zusammengesetzte doppelte Ränder. Das 1 %, das immer kaputtgeht.

// inside table element
"pagination": {
  "keep_spans_together": true
}
/07

Ein JSON, zwei Oberflächen

Dasselbe DocumentRequest-JSON treibt POST /api/v1/pdf/render und den visuellen Editor unter editor.gpdf.com. Visuell editieren, per API ausliefern oder von Hand schreiben — alle drei Wege roundtrippen dieselbe Datei.

// three routes, one engine
POST /api/v1/pdf/render
POST /api/v1/template-render
POST /api/v1/e-invoice/render
Read the API reference
/08

Gebaut für Rechnungen

$0,00005 pro Seite, p50 3 ms, eingebettetes CJK, PDF/A-3-Anhang-Stream. Die vier Zahlen, die Fintech-, ERP- und Steuer-Compliance-Teams zuerst prüfen.

// invoice — header + table pattern
{ "size": "a4",
  "elements": [
    { "type": "text",  "x": 18, "y": 22, ... },
    { "type": "table", "x": 18, "y": 60, ... }
  ]}
Why JSON beats HTML→PDF
/09

Gebaut für Versandetiketten

label_100_150- und label_4_6_in-Größen-Presets. Vektor-GS1-128, ITF-14, SSCC mit 0,1 mm Präzision — Carrier und 3PLs drucken im Hochlauf ohne rasterisierte Barcodes.

// 4×6 thermal shipping label
{ "size": "label_4_6_in",
  "elements": [{
    "type": "barcode",
    "format": "code128",
    "content": "1Z999AA10123456784" }]}
Shipping-label use case