Control al píxel
x/y en milímetros, x_anchor para alineación al borde derecho, posicionamiento submilimétrico en etiquetas. Coordenadas, no aproximaciones.
// inside elements[i]
"x_anchor": {
"reference": "content_right",
"offset": 6
} Semántica de documento real, no capturas de navegador en un wrapper PDF.
x/y en milímetros, x_anchor para alineación al borde derecho, posicionamiento submilimétrico en etiquetas. Coordenadas, no aproximaciones.
// inside elements[i]
"x_anchor": {
"reference": "content_right",
"offset": 6
} 30+ simbologías incl. GS1-128, QR, PDF417, DataMatrix. Todas vectoriales. Longitud total precisa a 0,1 mm.
// 30+ formats: code128, qrcode, datamatrix, pdf417, ...
"type": "barcode",
"format": "code128",
"content": "INV-2026-001" Why vector beats raster font_mode: strict (la familia declarada debe cubrir todos los glifos), prefer (recurre a las familias integradas), auto (lo elige el motor). Agotamiento de auto/prefer devuelve API-504 — fallo explícito, no silencioso.
// inside style{}
"font_family": "NotoSans-Regular",
"font_mode": "prefer" settings.profile = "pdfa-3b" activa la conformidad PDF/A-3b y el flujo de adjuntos XML incrustado que Factur-X / ZUGFeRD requieren. Un campo, un documento conforme.
// top-level on DocumentRequest
"settings": {
"profile": "pdfa-3b"
} PDF/A and Factur-X, explained {page} / {total_pages} resueltos post-layout. keep_together, widow/orphan, bloques page_break.
// element of type "variable"
{ "type": "variable",
"name": "page",
"scope": "system" } row_span entre páginas, encabezados repetidos, alternate_fill, bordes dobles compuestos. El 1 % que siempre se rompe.
// inside table element
"pagination": {
"keep_spans_together": true
} El mismo JSON DocumentRequest impulsa POST /api/v1/pdf/render y el editor visual en editor.gpdf.com. Edita visualmente, entrega vía API, o escribe a mano — los tres flujos round-trippan el mismo archivo.
// three routes, one engine
POST /api/v1/pdf/render
POST /api/v1/template-render
POST /api/v1/e-invoice/render Read the API reference $0,00005 por página, p50 3 ms, CJK embebido, flujo de adjunto PDF/A-3. Los cuatro números que los equipos fintech, ERP y compliance fiscal verifican primero.
// invoice — header + table pattern
{ "size": "a4",
"elements": [
{ "type": "text", "x": 18, "y": 22, ... },
{ "type": "table", "x": 18, "y": 60, ... }
]} Why JSON beats HTML→PDF Presets de tamaño label_100_150 y label_4_6_in. GS1-128, ITF-14, SSCC vectoriales con precisión de 0,1 mm — transportistas y 3PL imprimen en pico sin códigos de barras rasterizados.
// 4×6 thermal shipping label
{ "size": "label_4_6_in",
"elements": [{
"type": "barcode",
"format": "code128",
"content": "1Z999AA10123456784" }]} Shipping-label use case