বৈশিষ্ট্য

ভিত্তিগত কিন্তু গুরুত্বপূর্ণ অংশগুলো, ঠিকভাবে করা হয়েছে।

PDF wrapper-এ browser screenshots নয়, বরং প্রকৃত document semantics।

Browse use cases
/01

পিক্সেল-স্তরের নিয়ন্ত্রণ

x/y মিলিমিটারে, ডান-প্রান্ত সারিবদ্ধতার জন্য x_anchor, লেবেলে sub-মিলিমিটার স্থাপনা। স্থানাঙ্ক, আনুমানিক নয়।

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

Vector barcodes

GS1-128, QR, PDF417, DataMatrix সহ ৩০+ symbologies। সব vector। Overall barcode length ০.১ mm পর্যন্ত accurate।

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

ফন্ট ফলব্যাক চেইন

font_mode: strict (ঘোষিত পরিবার সব glyph কভার করতে হবে), prefer (বান্ডেল পরিবারে fallback), auto (ইঞ্জিন বেছে নেয়)। auto/prefer ফুরিয়ে গেলে API-504 — স্পষ্ট ব্যর্থতা, নীরব নয়।

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

কমপ্লায়েন্স মোড

settings.profile = "pdfa-3b" PDF/A-3b সম্মতি ও Factur-X / ZUGFeRD-এর প্রয়োজনীয় embedded XML attachment stream — উভয় চালু করে। একটি ফিল্ড, একটি সম্মত নথি।

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

Variables + pagination

{page} / {total_pages} layout-এর পরে resolved। keep_together, widow/orphan, page_break blocks।

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

Tables যা paginate করে

Pages জুড়ে row_span, repeat headers, alternate_fill, compound double borders। সেই 1% যা সবসময় ভাঙে।

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

একটি JSON, দুটি ইন্টারফেস

একই DocumentRequest JSON POST /api/v1/pdf/render এবং editor.gpdf.com-এর visual editor চালায়। visually সম্পাদনা করুন, 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

Invoices-এর জন্য তৈরি

প্রতি page $0.00005, p50 3 ms, embedded CJK, PDF/A-3 attachment stream। Fintech, ERP এবং tax-compliance teams প্রথমে যে চারটি number check করে।

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

Shipping labels-এর জন্য তৈরি

label_100_150 এবং label_4_6_in size presets। Vector GS1-128, ITF-14, SSCC ০.১ mm precision-এ — carriers এবং 3PLs peak-এ rasterised barcodes ছাড়াই print করে।

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