Możliwości

Podstawowe, ale ważne detale zrobione dobrze.

Prawdziwa semantyka dokumentu, nie zrzuty ekranu przeglądarki w wrapperze PDF.

Browse use cases
/01

Kontrola na poziomie piksela

x/y w milimetrach, x_anchor dla wyrównania do prawej, pozycjonowanie sub-milimetrowe na etykietach. Współrzędne, nie przybliżenia.

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

Wektorowe kody kreskowe

30+ symboliki w tym GS1-128, QR, PDF417, DataMatrix. Wszystkie wektorowe. Łączna długość dokładna do 0,1 mm.

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

Łańcuch fallback czcionek

font_mode: strict (zadeklarowana rodzina musi pokryć wszystkie glify), prefer (fallback przez wbudowane rodziny), auto (silnik wybiera). Wyczerpanie auto/prefer zwraca API-504 — błąd jawny, nie cichy.

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

Tryby zgodności

settings.profile = "pdfa-3b" włącza zgodność PDF/A-3b oraz wbudowany strumień załączników XML wymagany przez Factur-X / ZUGFeRD. Jedno pole, jeden zgodny dokument.

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

Zmienne + paginacja

{page} / {total_pages} rozwiązywane po layout. keep_together, widow/orphan, bloki page_break.

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

Tabele, które paginują

row_span między stronami, powtarzane nagłówki, alternate_fill, złożone podwójne obramowania. Ten 1 % co zawsze się psuje.

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

Jeden JSON, dwie powierzchnie

Ten sam JSON DocumentRequest napędza POST /api/v1/pdf/render i edytor wizualny pod editor.gpdf.com. Edytuj wizualnie, wysyłaj przez API lub pisz ręcznie — wszystkie trzy ścieżki round-trippują ten sam plik.

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

Zbudowane dla faktur

$0,00005 za stronę, p50 3 ms, osadzony CJK, strumień załącznika PDF/A-3. Cztery liczby, które zespoły fintech, ERP i compliance podatkowy sprawdzają najpierw.

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

Zbudowane dla etykiet wysyłkowych

Presety rozmiarów label_100_150 i label_4_6_in. Wektorowe GS1-128, ITF-14, SSCC z precyzją 0,1 mm — przewoźnicy i 3PL drukują w szczycie bez rastrowych kodów kreskowych.

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