راهنمای API تولید QR / Barcode (GET)

این API یک فایل تصویر (PNG / SVG / JPG) برمی‌گرداند. هیچ JSON خروجی تصویر ندارد؛ در صورت خطا، JSON با ok=false برمی‌گردد.

Endpoint: /api/code.php
Method: GET
Output: image/*
Playground
ساخت لینک + پیش‌نمایش

لینک خروجی

برای تست، همین لینک را در تب جدید باز کن یا از پیش‌نمایش سمت راست استفاده کن.

پیش‌نمایش

لینک را بساز تا تصویر نمایش داده شود.
اگر خطا باشد، به‌جای تصویر JSON برمی‌گردد. (در devtools/network می‌بینی.)
مستندات
نسخه ساده و کاربردی

ساختار کلی درخواست

GET /api/code.php?type=qr|barcode&data=...&ext=png|svg|jpg&...
نکته: مقدار data را حتماً URL-Encode کن. مثال: فاصله‌ها، #، ?، & و ... باید encode شوند.

پارامترهای عمومی

پارامتر نوع پیش‌فرض توضیح
type qr / barcode qr نوع خروجی.
data string اجباری متن/داده‌ای که باید تبدیل شود. (حداکثر ۲۰۰۰ کاراکتر)
ext png / svg / jpg png فرمت خروجی تصویر.
filename string code نام پیشنهادی فایل در هدر دانلود (اختیاری).
color hex #111827 رنگ کد (foreground). مثال: #000000
bg hex #FFFFFF پس‌زمینه (background).
margin int 10 حاشیه/فاصله اطراف کد.
jpgQuality 10..100 92 کیفیت JPG (فقط وقتی ext=jpg).

پارامترهای QR

پارامتر پیش‌فرض توضیح
size 280 اندازه QR (پیکسل). بازه 80 تا 1400
ecc M سطح تصحیح خطا: L / M / Q / H
transparent 0 اگر 1 باشد، پس‌زمینه شفاف می‌شود (برای PNG/SVG). JPG شفافیت ندارد.

پارامترهای Barcode

پارامتر پیش‌فرض توضیح
format CODE128 مدل بارکد: CODE128 EAN13 EAN8 UPC ITF14 CODE39
barHeight 90 ارتفاع بارکد (px).
barWidth 2 ضخامت خطوط (۱ تا ۱۰).
displayValue 1 نمایش متن زیر بارکد (1/0).
fontSize 14 اندازه متن (برای PNG/JPG با فونت داخلی، برای SVG متن ساده).
textMargin 4 فاصله متن از بارکد.
اعتبارسنجی مهم: EAN13 دقیقاً ۱۳ رقم، EAN8 دقیقاً ۸ رقم، UPC دقیقاً ۱۲ رقم، ITF14 دقیقاً ۱۴ رقم. اگر معتبر نباشد، خروجی JSON خطا برمی‌گردد.

نمونه‌ها

QR (PNG)
GET /api/code.php?type=qr&data=https%3A%2F%2Falvandcms.ir&size=320&ecc=H&color=%23111827&bg=%23FFFFFF&margin=10&ext=png

QR شفاف (PNG)
GET /api/code.php?type=qr&data=HELLO&transparent=1&color=%23000000&margin=12&ext=png

Barcode (CODE128) PNG
GET /api/code.php?type=barcode&format=CODE128&data=INV-2025-00012&barHeight=110&barWidth=2&color=%23111827&bg=%23FFFFFF&margin=12&displayValue=1&ext=png

Barcode (EAN13) SVG
GET /api/code.php?type=barcode&format=EAN13&data=1234567890123&color=%23000000&bg=%23FFFFFF&ext=svg

خطاها

اگر درخواست نامعتبر باشد، پاسخ با status code مناسب و JSON برمی‌گردد:
{"ok":false,"error":"..."}
مثال: داده خالی، فرمت نامعتبر، طول غیرمجاز، یا عدم نصب GD برای JPG.