الميزات

التفاصيل الأساسية والمهمة، منفذة بشكل صحيح.

دلالات مستند حقيقية، وليس لقطات شاشة المتصفح في غلاف 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. كلها vector. طول الباركود الكلي دقيق حتى 0.1 mm.

// 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} يحلان بعد التخطيط. keep_together وwidow/orphan وpage_break blocks.

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

جداول تُرقّم الصفحات

row_span عبر الصفحات، repeat headers، alternate_fill، compound double borders. ذلك الـ 1% الذي ينكسر دائمًا.

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

JSON واحد، واجهتان

نفس JSON DocumentRequest يُشغّل POST /api/v1/pdf/render والمحرر المرئي على editor.gpdf.com. حرر بصريًا، أرسل عبر API، أو اكتب يدويًا — كل المسارات الثلاثة تدور حول نفس الملف.

// 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 attachment stream. الأرقام الأربعة التي تفحصها فرق fintech وERP وtax-compliance أولًا.

// 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. Vector GS1-128 وITF-14 وSSCC بدقة 0.1 mm — تطبع carriers و3PLs في الذروة بلا rasterised barcodes.

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