Fonctionnalités

Les détails essentiels, bien exécutés.

Vraie sémantique de document, pas des captures de navigateur dans un wrapper PDF.

Browse use cases
/01

Contrôle au pixel près

x/y en millimètres, x_anchor pour l'alignement à droite, placement sub-millimétrique sur les étiquettes. Des coordonnées, pas des approximations.

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

Codes-barres vectoriels

30+ symbologies dont GS1-128, QR, PDF417, DataMatrix. Tous vectoriels. Longueur totale précise à 0,1 mm.

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

Chaîne de repli des polices

font_mode : strict (la famille déclarée doit couvrir tous les glyphes), prefer (repli sur les familles embarquées), auto (le moteur choisit). L'épuisement auto/prefer retourne API-504 — échec explicite, pas silencieux.

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

Modes de conformité

settings.profile = "pdfa-3b" déclenche la conformité PDF/A-3b et le flux de pièces jointes XML embarqué que Factur-X / ZUGFeRD exigent. Un champ, un document conforme.

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

Variables + pagination

{page} / {total_pages} résolus après mise en page. keep_together, widow/orphan, blocs page_break.

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

Tableaux qui paginent

row_span entre les pages, en-têtes répétés, alternate_fill, bordures doubles composées. Le 1 % qui casse toujours.

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

Un JSON, deux surfaces

Le même JSON DocumentRequest pilote POST /api/v1/pdf/render et l'éditeur visuel sur editor.gpdf.com. Éditez visuellement, livrez par API, ou écrivez à la main — les trois flux round-trippent le même fichier.

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

Conçu pour les factures

0,00005 $ par page, p50 3 ms, CJK intégré, flux d'attachement PDF/A-3. Les quatre chiffres que les équipes fintech, ERP et conformité fiscale vérifient en premier.

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

Conçu pour les étiquettes d'expédition

Presets de tailles label_100_150 et label_4_6_in. GS1-128, ITF-14, SSCC vectoriels à 0,1 mm de précision — transporteurs et 3PL impriment en pointe sans codes-barres rasterisés.

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