bwip-js: تولید بارکد با جاوااسکریپت خالص
خلاصهٔ کاملتر
bwip-js یه کتابخونهی متنبازه که اصلاً از یه پروژهی PostScript به نام «Barcode Writer in Pure PostScript» ترجمه شده و حالا بهصورت جاوااسکریپت خالص در دسترسه. این کتابخونه روی هر مرورگر مدرن و هر فریمورک سرور-ساید مبتنی بر جاوااسکریپت کار میکنه و نیازی به وابستگی خارجی خاصی نداره.
یکی از بزرگترین مزیتهای bwip-js پشتیبانی از بیش از ۱۰۰ نوع بارکد مختلفه؛ از بارکدهای خطی رایج مثل EAN، UPC و ISBN گرفته تا بارکدهای دوبعدی. این یعنی تقریباً هر بارکدی که توی صنایع مختلف استفاده میشه رو میشه باهاش تولید کرد.
خروجی این کتابخونه بسته به پلتفرم متفاوته: توی مرورگر خروجی Canvas داری، توی Node.js تصویر PNG با Buffer تحویل میگیری، توی React Native از DataURL استفاده میشه، و روی همهی پلتفرمها خروجی SVG هم در دسترسه. این انعطاف باعث میشه هر جایی که کار میکنی بتونی ازش استفاده کنی.
پکیج اصلی رو میشه با npm install bwip-js نصب کرد، ولی برای راحتی بیشتر چهار پکیج پلتفرم-اسپسیفیک هم داری: node، browser، react-native و generic. پکیج generic فقط شامل خروجیهای SVG و custom drawing هست و روی هر پلتفرمی اجرا میشه.
کار با API این کتابخونه سادهست. برای تولید یه بارکد فقط به دو پارامتر اصلی نیاز داری: bcid که نوع بارکد رو مشخص میکنه، و text که محتوای بارکد رو داره. بقیهی گزینهها مثل مقیاس، چرخش، رنگها و padding اختیاریان. میشه تصویر رو چرخوند، پدینگ داد، رنگ بارها و متن رو تغییر داد و خیلی تنظیمات دیگه.
یه نکتهی مهم دربارهی نسخهی ۴.۱۰ اینه که ارتفاع تصویر بارکدهای EAN، UPC و ISBN تغییر کرده. قبلاً ارتفاع بر اساس بارهای بلند «guard» محاسبه میشد، ولی الان بر اساس بارهای کوتاه حساب میشه. این باعث میشه تصویر نهایی در scale=1 حدود ۵ پیکسل بلندتر از قبل بشه. اگه میخوای ارتفاع قدیمی رو داشته باشی، باید ۱.۷۵ میلیمتر از ارتفاع کم کنی.
علاوه بر پکیج npm، یه سرویس آنلاین هم وجود داره که میشه بارکدها رو مستقیم از طریق URL درخواست داد و توی HTML یا سرورهای غیر جاوااسکریپتی امبد کرد. این برای کسایی که نمیخوان کتابخونه رو نصب کنن خیلی راحته، هرچند برای سرورهای جاوااسکریپتی استفاده مستقیم از کتابخونه خیلی بهتره چون پرفورمنس بالاتریه.
نکات کلیدی:
- پشتیبانی از بیش از ۱۰۰ نوع بارکد خطی و دوبعدی
- اجرا روی مرورگر، Node.js، React Native و Electron
- خروجی PNG، Canvas و SVG بسته به پلتفرم
- نصب ساده با npm، هم بهصورت پکیج کلی هم پلتفرم-اسپسیفیک
- API آنلاین برای تولید بارکد بدون نیاز به نصب
- در نسخه ۴.۱۰ ارتفاع بارکدهای EAN/UPC تغییر کرده
- فقط دو پارامتر اجباری: نوع بارکد و متن




