Functies

De essentiële details, goed uitgevoerd.

Echte documentsemantiek, geen browser-screenshots in een PDF-wrapper.

Browse use cases
/01

Pixelnauwkeurige controle

x/y in millimeters, x_anchor voor rechtsuitlijning, sub-millimeter plaatsing op labels. Coördinaten, geen benaderingen.

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

Vector-barcodes

30+ symbologieën incl. GS1-128, QR, PDF417, DataMatrix. Allemaal vector. Totale lengte tot 0,1 mm nauwkeurig.

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

Font-fallback-keten

font_mode: strict (gedeclareerde familie moet alle glyphs dekken), prefer (val terug op meegeleverde families), auto (engine kiest). Uitputting van auto/prefer geeft API-504 — fail-loud, niet stil.

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

Compliance-modi

settings.profile = "pdfa-3b" activeert PDF/A-3b-conformiteit plus de ingebedde XML-bijlagestroom die Factur-X / ZUGFeRD vereisen. Eén veld, één conform document.

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

Variabelen + paginering

{page} / {total_pages} opgelost na layout. keep_together, widow/orphan, page_break-blokken.

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

Tabellen die pagineren

row_span over pagina's, herhalende headers, alternate_fill, samengestelde dubbele randen. Die 1 % die altijd breekt.

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

Eén JSON, twee oppervlakken

Hetzelfde DocumentRequest JSON drijft POST /api/v1/pdf/render en de visuele editor op editor.gpdf.com aan. Bewerk visueel, lever via API of schrijf met de hand — alle drie de wegen round-trippen hetzelfde bestand.

// 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

Gebouwd voor facturen

$0,00005 per pagina, p50 3 ms, ingebed CJK, PDF/A-3-bijlagestream. De vier cijfers die fintech-, ERP- en belastingteams als eerste checken.

// 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

Gebouwd voor verzendlabels

label_100_150- en label_4_6_in-formaatpresets. Vector GS1-128, ITF-14, SSCC met 0,1 mm precisie — vervoerders en 3PL's printen op piekvolume zonder gerasterde barcodes.

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