Tính năng

Những chi tiết nền tảng nhưng quan trọng, được làm đúng.

Ngữ nghĩa document thật, không phải ảnh chụp browser trong wrapper PDF.

Browse use cases
/01

Kiểm soát từng pixel

x/y theo milimét, x_anchor cho căn lề phải, đặt vị trí sub-milimét trên nhãn. Là tọa độ, không phải xấp xỉ.

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

Mã vạch vector

30+ ký hiệu bao gồm GS1-128, QR, PDF417, DataMatrix. Tất cả vector. Tổng chiều dài chính xác 0,1 mm.

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

Chuỗi fallback font

font_mode: strict (font khai báo phải phủ mọi glyph), prefer (dự phòng qua các font tích hợp), auto (engine tự chọn). Auto/prefer cạn lựa chọn sẽ trả về API-504 — thất bại minh bạch, không im lặng.

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

Chế độ tuân thủ

settings.profile = "pdfa-3b" kích hoạt tuân thủ PDF/A-3b cùng luồng tệp đính kèm XML mà Factur-X / ZUGFeRD yêu cầu. Một trường, một tài liệu tuân thủ.

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

Biến + phân trang

{page} / {total_pages} được giải sau layout. keep_together, widow/orphan, khối page_break.

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

Bảng phân trang

row_span qua các trang, lặp header, alternate_fill, viền đôi composite. 1 % luôn bị hỏng.

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

Một JSON, hai giao diện

Cùng một JSON DocumentRequest điều khiển POST /api/v1/pdf/render và trình soạn thảo trực quan tại editor.gpdf.com. Sửa trực quan, gửi qua API hoặc viết tay — cả ba đường đều round-trip cùng một file.

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

Xây dựng cho hoá đơn

$0,00005 mỗi trang, p50 3 ms, CJK nhúng, stream đính kèm PDF/A-3. Bốn con số mà các nhóm fintech, ERP, và compliance thuế kiểm tra đầu tiên.

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

Xây dựng cho nhãn vận chuyển

Preset kích thước label_100_150 và label_4_6_in. GS1-128, ITF-14, SSCC vector với độ chính xác 0,1 mm — hãng vận chuyển và 3PL in ở giờ cao điểm mà không cần mã vạch raster.

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