Можливості

Базові, але важливі деталі зроблено правильно.

Справжня семантика документа, а не скріншоти браузера в обгортці PDF.

Browse use cases
/01

Контроль до пікселя

x/y у міліметрах, x_anchor для вирівнювання по правому краю, субміліметрове позиціювання на етикетках. Координати, а не наближення.

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

Векторні штрих-коди

30+ символік включно з GS1-128, QR, PDF417, DataMatrix. Усі векторні. Загальна довжина точна до 0,1 мм.

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

Ланцюг резервних шрифтів

font_mode: strict (заявлена родина має покрити всі гліфи), prefer (фолбек по вбудованих родинах), auto (рушій обирає). Вичерпання auto/prefer повертає API-504 — явна відмова, а не мовчазна.

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

Режими відповідності

settings.profile = "pdfa-3b" вмикає відповідність PDF/A-3b і вбудований потік XML-вкладень, які вимагають Factur-X / ZUGFeRD. Одне поле — один відповідний документ.

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

Змінні + пагінація

{page} / {total_pages} вирішуються після layout. keep_together, widow/orphan, блоки page_break.

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

Таблиці, що пагінуються

row_span між сторінками, повторювані заголовки, alternate_fill, складені подвійні межі.

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

Один JSON, дві поверхні

Той самий DocumentRequest JSON приводить у дію POST /api/v1/pdf/render та візуальний редактор на editor.gpdf.com. Редагуйте візуально, надсилайте через API або пишіть вручну — усі три маршрути round-trip один файл.

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

Створено для рахунків

$0,00005 за page, p50 3 ms, вбудований CJK, потік вкладень PDF/A-3. Чотири числа, які fintech, ERP і tax-compliance teams перевіряють першими.

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

Створено для транспортних етикеток

Пресети розмірів label_100_150 і label_4_6_in. Векторні GS1-128, ITF-14, SSCC з точністю 0,1 мм — перевізники та 3PL друкують у пікове навантаження без растрових штрих-кодів.

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