تصميم ملصقات Zebra (ZPL)

طابعات ملصقات Zebra لا تفهم المستندات العادية. بدلاً من ذلك، تقرأ مجموعة صغيرة من الأوامر النصية تسمى ZPL (Zebra Programming Language). تصميم ZPL ليس سوى كتلة نصية تخبر الطابعة بما يجب وضعه على الملصق وأين: سطر نصي هنا، سعر هناك، رمز QR في الزاوية.

تشرح هذه الصفحة ZPL من الصفر حتى تتمكنوا من قراءة تصاميم ملصقات المنتجات وتعديلها وبنائها بأنفسكم دون مساعدة. تصممون ملصقكم في الإعدادات ‣ الطابعات، في حقل تصميم ملصق منتج Zebra مخصص (راجعوا إعدادات الطابعة).

نصيحة

نادراً ما تبدأون من صفحة فارغة. يمنح Gem Logic كل ملصق تصميماً افتراضياً يعمل. أسرع طريقة للتعلّم هي فتح ذلك الافتراضي، تغيير شيء واحد، الحفظ، والنظر إلى صورة المعاينة. كرّروا العملية حتى يبدو التصميم صحيحاً.

البداية السريعة

  1. انتقلوا إلى الإعدادات ‣ الطابعات وابحثوا عن حقل تصميم ملصق منتج Zebra مخصص.

  2. أجروا تغييراً صغيراً (على سبيل المثال، نقل سطر أو تكبير السعر).

  3. انقروا على حفظ. يُنشئ Gem Logic تلقائياً صورة معاينة للملصق.

  4. انظروا إلى المعاينة. إذا كانت خاطئة، اضبطوها واحفظوا مرة أخرى.

لا يُرسل أي شيء إلى طابعة حقيقية أثناء التجربة — تُنشأ المعاينة من تصميمكم، لذا يمكنكم التكرار بأمان قبل طباعة ملصق واحد.

كيف يُبنى ملصق ZPL

كل ملصق يبدأ بـ ^XA وينتهي بـ ^XZ. كل ما بينهما يصف الملصق. يبدأ الأمر دائماً بعلامة ^ (أو أحياناً بعلامة ~).

^XA            (start of the label)
... commands that build the label ...
^XZ            (end of the label)

داخلياً، النمط الأكثر شيوعاً هو "الانتقال إلى موضع، ثم طباعة شيء هناك":

^FO50,30^FDHello^FS

هذا السطر الواحد يعني: انتقل إلى الموضع 50,30 واطبع النص "Hello". بالتفصيل:

  • ^FO50,30Field Origin: انتقل إلى x=50، y=30 (الزاوية العلوية اليسرى لما يأتي بعده).

  • ^FDHelloField Data: المحتوى الفعلي المراد طباعته.

  • ^FSField Separator: يحدد نهاية هذا الجزء. أغلقوا الحقل دائماً بـ ^FS.

هذا يمثّل 90% من تصميم الملصقات: سلسلة من أسطر "موضع + محتوى" مكدّسة معاً.

حجم الملصق، النقاط والمليمترات

تقيس طابعات Zebra كل شيء بوحدة النقاط، وليس المليمترات. معظم طابعات الملصقات تطبع بدقة 203 DPI، مما يعني:

  • 1 مم ≈ 8 نقاط

  • 1 بوصة = 203 نقطة

لذا فإن ملصقاً بعرض 56 مم وارتفاع 13 مم يكون بحوالي 448 نقطة عرضاً و``104`` نقطة ارتفاعاً.

أمران يحددان المنطقة القابلة للطباعة:

  • ^PWPrint Width، عرض الطباعة، بالنقاط.

  • ^LLLabel Length، طول الملصق (الارتفاع)، بالنقاط.

^PW448        (label is 448 dots wide ≈ 56 mm)
^LL104        (label is 104 dots tall ≈ 13 mm)

مهم

حجم الملصق الفعلي يأتي أيضاً من حقلي عرض ملصق المنتج و:guilabel:طول ملصق المنتج بجوار التصميم. احتفظوا بهذه القيم متزامنة مع مخزون الملصقات الفعلي لديكم. المتغير {label_length} يتم ملؤه تلقائياً من حقل الطول، ولهذا السبب يستخدم التصميم الافتراضي ^LL{label_length}.

تحديد الموضع: شبكة الإحداثيات

تخيّلوا الملصق كشبكة. النقطة 0,0 هي الزاوية العلوية اليسرى. الرقم الأول هو x (المسافة نحو اليمين) والثاني هو y (المسافة نحو الأسفل)، كلاهما بالنقاط.

^FO0,0        top-left corner
^FO200,0      200 dots to the right, same height
^FO0,40       left edge, 40 dots down

لنقل عنصر، غيّروا أرقام ^FO الخاصة به. x أكبر = أبعد نحو اليمين؛ y أكبر = أبعد نحو الأسفل. هكذا تضعون SKU في سطر واحد والمعدن في السطر التالي: أعطوهما نفس x ولكن y أكبر في السطر الثاني.

إضافة النص وتحديد حجمه

قبل طباعة النص، عادة ما تختارون حجم خط. أبسط طريقة هي ^CF0,h (Change default Font، تغيير الخط الافتراضي)، حيث h هو ارتفاع الحرف بالنقاط:

^CF0,28               use ~28-dot-tall text from here on
^FO50,30^FDPrice^FS   print "Price" at 50,30 in that size

كل ^FD ... ^FS بعد ^CF يستخدم ذلك الحجم حتى تحددوا حجماً مختلفاً. لذا لخلط الأحجام على ملصق واحد، حددوا ^CF0,28 قبل النص الكبير و``^CF0,14`` قبل النص الصغير.

نصيحة

لإضافة سطر نص جديد، لا تضغطون على Enter — بل تضيفون حقلاً آخر موضعاً في الأسفل. انسخوا سطراً موجوداً، أعطوه قيمة y أكبر، وغيّروا محتواه.

إدراج بيانات المنتج

تصميم الملصق يُعاد استخدامه لكل منتج، لذا لا تكتبون SKU أو السعر يدوياً. بدلاً من ذلك تدرجون متغيرات بين أقواس معقوفة، ويستبدلها Gem Logic بالبيانات الحقيقية لكل منتج عند طباعة الملصق.

^FO1,8^FD{item_sku}^FS          prints this product's SKU
^FO180,50^FD{currency}{price}^FS prints e.g. €129

نفس المتغيرات تُعرض كشارات قابلة للنقر مباشرة أسفل حقل التصميم في التطبيق، حتى تتمكنوا من رؤية المتغيرات المتاحة أثناء التحرير.

المتغيرات المتاحة

المنتج

  • {brand}: اسم العلامة التجارية

  • {product_title}: عنوان المنتج

  • {item_sku}: SKU المنتج

  • {ean_code}: باركود EAN (يُستخدم لرمز الاستجابة السريعة)

  • {price} و``{currency}``: السعر ورمز العملة

  • {serial_number}: الرقم التسلسلي

  • {year_of_manufacture}: سنة الصنع

  • {supplier_product_reference}: مرجع منتج المورّد

  • {supplier_reference}: مرجع المورّد

المواد والأحجار الكريمة

  • {material_1} إلى {material_5}: وصف كامل للمادة (الوزن، الاسم، وتفاصيل الحجر الكريم)

  • {material_only_1} إلى {material_only_5}: اسم المادة أو الحجر الكريم فقط

السمات

  • {attribute_1} إلى {attribute_5}: السمة بصيغة الاسم: القيمة

  • {attribute_name_1} إلى {attribute_name_5}: اسم السمة فقط

  • {attribute_value_1} إلى {attribute_value_5}: قيمة السمة فقط

الأبعاد

  • {weight}، {length}، {width}، {height}، {diameter}، {size}، {thickness}، {quality}

المجموعات

  • {collections}: المجموعات التي ينتمي إليها المنتج

الفئات

  • {categories}: الفئات التي ينتمي إليها المنتج، مفصولة بفواصل

بلد المنشأ

  • {country_of_origin}: البلد الذي نشأ منه المنتج

النقاء

  • {clarity}: نقاء الحجر الكريم للمنتج

رمز التكلفة

  • {encoded_cost}: تكلفة الشراء المحولة إلى رمز التكلفة الخاص بكم (يتم تعيين الأحرف ضمن الإعدادات ‣ الإعدادات العامة)، بحيث لا تكون التكلفة الحقيقية مقروءة على الملصق.

RFID (مطلوب فقط للملصقات المزودة بشرائح RFID)

  • {item_sku_epc_hex}: رمز SKU المشفّر كقيمة EPC لشريحة RFID

  • {item_sku_epc_word_count}: طول EPC، المستخدم بواسطة أمر RFID في ZPL

التخطيط

  • {label_length}: يُملأ تلقائياً من إعداد طول الملصق

رموز QR والباركود

يُضاف رمز QR باستخدام ^BQN متبوعاً بحقل بيانات يبدأ بـ QA,:

^FO0,30^BQN,2,2^FDQA,{ean_code}^FS
  • ^FO0,30 — موضع رمز QR.

  • ^BQN,2,2 — رمز QR. الرقم الأخير هو الحجم (التكبير). ارفعوه (3، 4، 5…) للحصول على رمز أكبر يسهل مسحه؛ اخفضوه لتوفير المساحة.

  • ^FDQA,{ean_code}^FS — البيانات داخل الرمز. هنا يشفّر رمز EAN الخاص بالمنتج.

للحصول على باركود أحادي البُعد (1D) كلاسيكي بدلاً من ذلك، استخدموا ^BCN (Code 128):

^FO20,20^BCN,60,Y,N,N^FD{ean_code}^FS

الرقم 60 هو ارتفاع الباركود بالنقاط، و Y يطبع الرقم المقروء أسفله.

التصميم الافتراضي، شرح مفصّل

هذا هو التصميم المبدئي الذي يقدّمه لكم Gem Logic، مشروح سطراً بسطر. قراءته هي أسرع طريقة لفهم كيفية ترابط العناصر.

^XA
^MD20
^CI28
^LL{label_length}
^LH0,0
^CF0,18
^FO180,8^FD{brand}^FS
^CF0,14
^FO50,45^FD{material_2}^FS
^FO50,60^FD{material_3}^FS
^FO180,27^FD{material_1}^FS
^CF0,28
^FO180,50^FD{currency}{price}^FS
^CF0,16
^FO1,8^FD{item_sku}^FS
^FO1,23^FD{supplier_product_reference}^FS
^FO50,60^FD{supplier_reference}^FS
^FO0,30^BQN,2,2
^FDQA,{ean_code}^FS
^XZ

سطراً بسطر:

  • ^XA — بداية الملصق.

  • ^MD20 — شدة الطباعة. ارفعوها إذا كانت الملصقات باهتة، واخفضوها إذا كان النص مُشوَّهاً.

  • ^CI28 — ترميز الأحرف، بحيث تُطبع والحروف المُشكَّلة بشكل صحيح.

  • ^LL{label_length} — ارتفاع الملصق، يُملأ تلقائياً من إعداد الطول.

  • ^LH0,0 — الموضع الأساسي: نقطة الأصل هي الزاوية العلوية اليسرى.

  • ^CF0,18 — حجم النص ~18 نقطة للأسطر التالية.

  • ^FO180,8^FD{brand}^FS — العلامة التجارية، قرب الأعلى.

  • ^CF0,14 — نص أصغر من هنا فصاعداً.

  • ^FO50,45^FD{material_2}^FS، ^FO50,60^FD{material_3}^FS، ^FO180,27^FD{material_1}^FS — المواد الثلاث.

  • ^CF0,28 — نص أكبر للسعر.

  • ^FO180,50^FD{currency}{price}^FS — السعر، مثلاً €129.

  • ^CF0,16 — نص متوسط.

  • ^FO1,8^FD{item_sku}^FS — الـ SKU، في الزاوية العلوية اليسرى.

  • ^FO1,23^FD{supplier_product_reference}^FS — مرجع منتج المورِّد.

  • ^FO50,60^FD{supplier_reference}^FS — مرجع المورِّد.

  • ^FO0,30^BQN,2,2 ثم ^FDQA,{ean_code}^FS — رمز الاستجابة السريعة (QR) (في الزاوية السفلية اليسرى) وبياناته (الـ EAN).

  • ^XZ — نهاية الملصق.

تحذير

لا توجد تعليقات سطرية في ZPL — لا تستخدموا الفاصلة المنقوطة ; لإضافة ملاحظات. تفهم لغة ZPL فقط الأوامر التي تبدأ بـ ^ (أو ~)، لذا فإن أي شيء بعد ; يُقرأ كجزء من قيمة الأمر (أو كبيانات ملصق شاردة). هذا ما يسبب أخطاء مثل "Value '20;' is not a valid number" أو "Ignored unrecognized content"، وقد تتسبب فاصلة منقوطة شاردة في إزاحة التخطيط أو كسره بشكل غير ملحوظ.

لترك ملاحظة، استخدموا أمر التعليق ^FX، ويُغلق بـ ^FS. تتجاهل الطابعة كل ما بداخله:

^FX brand, near the top ^FS
^FO180,8^FD{brand}^FS

القاعدة الوحيدة: لا يمكن لتعليق ^FX أن يحتوي على ^ أو ~ — هذه الأحرف تُنهي التعليق وتبدأ الأمر التالي.

التعديلات الشائعة

تكبير السعر

ابحثوا عن ^CF0,28 قبل سطر {price} وارفعوا الرقم، مثلاً ^CF0,40.

نقل عنصر

غيّروا أرقامه في ^FO. لإزاحة العلامة التجارية إلى الأسفل، ارفعوا الرقم الثاني في ^FO180,8 (الـ 8).

إضافة سطر نص جديد

انسخوا سطراً من نوع ^FO…^FD…^FS، أعطوه قيمة y أكبر بحيث يظهر أدنى، وغيّروا المحتوى أو المتغيّر.

تكبير رمز الاستجابة السريعة

قم بزيادة الرقم الأخير في ^BQN,2,2 (جرّب ^BQN,3,3). إذا تم قصّه، امنحه مساحة أكبر أو حرّكه لليسار/للأعلى باستخدام ^FO.

إضافة خط فاصل

استخدم صندوقاً رسومياً. ^FO0,40^GB540,2,2^FS يرسم خطاً أفقياً رفيعاً بعرض 540 نقطة.

المعاينة والاختبار قبل الطباعة

لديكم طريقتان سهلتان للتحقق من التصميم قبل استخدام الملصقات الفعلية:

  • في Gem Logic: في كل مرة تحفظون فيها، تظهر صورة معاينة للملصق أسفل حقل التصميم. استخدموها كحلقة التغذية الراجعة الرئيسية.

  • عبر الإنترنت: الصقوا ZPL في عارض Labelary المجاني لمشاهدة عرض فوري بأحجام ملصقات مختلفة. (استبدلوا {variables} بنص تجريبي أولاً، حيث أن Labelary لا يعرف بيانات منتجاتكم.)

إذا ظهر الملصق الفعلي بشكل خاطئ — نص مقصوص، رمز استجابة سريعة لا يُمسح ضوئياً، حجم خاطئ — راجعوا قسم الملصقات في استكشاف الأخطاء وإصلاحها.

مرجع سريع للأوامر

الأمر

ما يقوم به

^XA / ^XZ

بداية / نهاية الملصق. كل شيء يكون بينهما.

^PW

عرض الطباعة بالنقاط.

^LL

طول الملصق (الارتفاع) بالنقاط.

^LH

نقطة بداية الملصق — نقطة الأصل (عادةً 0,0).

^FO x,y

أصل الحقل — وضع العنصر التالي عند x,y.

^CF0,h

تعيين ارتفاع الخط الافتراضي (h نقطة) للنص التالي.

^FD ... ^FS

بيانات الحقل — المحتوى المراد طباعته — يُغلق بفاصل حقل.

^FX ... ^FS

تعليق — تتجاهله الطابعة. لا يمكن أن يحتوي على ^ أو ~.

^MD

كثافة الوسائط (كثافة الطباعة). الأعلى أغمق.

^BQN,m,m

رمز QR؛ الرقم الأخير هو الحجم. تبدأ البيانات بـ QA,.

^BCN,h,...

باركود Code 128؛ h هو الارتفاع بالنقاط.

^GB w,h,t

رسم مربع أو خط (العرض، الارتفاع، السُمك بالنقاط).

^CI28

ترميز الأحرف، بحيث تُطبع الرموز مثل بشكل صحيح.

لمعرفة اللغة كاملةً، تنشر Zebra دليل أوامر ZPL شاملاً، لكن الأوامر أعلاه تغطي تقريباً كل ملصق منتج.