Fitur

Detail dasar yang penting, dikerjakan dengan benar.

Semantik dokumen nyata, bukan screenshot browser dalam wrapper PDF.

Browse use cases
/01

Kontrol level piksel

x/y dalam milimeter, x_anchor untuk perataan tepi kanan, penempatan sub-milimeter pada label. Koordinat, bukan perkiraan.

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

Barcode vektor

30+ simbologi termasuk GS1-128, QR, PDF417, DataMatrix. Semua vektor. Panjang total akurat hingga 0,1 mm.

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

Rantai fallback font

font_mode: strict (family yang dideklarasikan harus menutup semua glif), prefer (fallback ke family bawaan), auto (mesin memilih). Auto/prefer kehabisan opsi mengembalikan API-504 — gagal terbuka, bukan diam.

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

Mode kepatuhan

settings.profile = "pdfa-3b" mengaktifkan kepatuhan PDF/A-3b plus aliran lampiran XML tertanam yang dibutuhkan Factur-X / ZUGFeRD. Satu kolom, satu dokumen patuh.

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

Variabel + paginasi

{page} / {total_pages} di-resolve setelah layout. keep_together, widow/orphan, blok page_break.

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

Tabel yang paginasi

row_span lintas halaman, header berulang, alternate_fill, border ganda komposit. 1 % yang selalu rusak.

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

Satu JSON, dua antarmuka

JSON DocumentRequest yang sama menggerakkan POST /api/v1/pdf/render dan editor visual di editor.gpdf.com. Edit secara visual, kirim via API, atau tulis manual — ketiganya round-trip file yang sama.

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

Dibangun untuk faktur

$0,00005 per halaman, p50 3 ms, CJK tertanam, stream lampiran PDF/A-3. Empat angka yang dicek pertama oleh tim fintech, ERP, dan compliance pajak.

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

Dibangun untuk label pengiriman

Preset ukuran label_100_150 dan label_4_6_in. GS1-128, ITF-14, SSCC vektor dengan presisi 0,1 mm — carrier dan 3PL mencetak saat puncak tanpa barcode raster.

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