עיצוב תוויות Zebra ‏(ZPL)

מדפסות תוויות Zebra אינן מבינות מסמכים רגילים. במקום זאת, הן קוראות קבוצה קטנה של פקודות טקסט הנקראות ZPL ‏(Zebra Programming Language). עיצוב ZPL הוא פשוט בלוק טקסט שאומר למדפסת מה להדפיס על התווית והיכן: שורת טקסט כאן, מחיר שם, קוד QR בפינה.

דף זה מסביר ZPL מההתחלה כך שתוכלו לקרוא, לערוך ולבנות תוויות מוצר משלכם ללא עזרה. אתם מעצבים את התווית שלכם תחת Configuration ‣ Printers, בשדה Custom Zebra product label design (ראו הגדרת מדפסת).

טיפ

לעיתים נדירות מתחילים מדף ריק. Gem Logic נותנת לכל תווית עיצוב ברירת מחדל עובד. הדרך המהירה ביותר ללמוד היא לפתוח את ברירת המחדל הזו, לשנות דבר אחד, לשמור ולהסתכל על תמונת התצוגה המקדימה. חזרו על התהליך עד שזה נראה נכון.

התחלה מהירה

  1. עברו אל Configuration ‣ Printers ומצאו את השדה Custom Zebra product label design.

  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)

חשוב

גודל התווית הפיזי נקבע גם על פי השדות רוחב תווית מוצר ו־אורך תווית מוצר ליד העיצוב. יש לשמור על סנכרון עם מלאי התוויות בפועל. המשתנה {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 גדול יותר = יותר למטה. כך ממקמים את המק״ט בשורה אחת ואת המתכת בשורה הבאה: נותנים להם את אותו 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 גדול יותר, ולשנות את התוכן שלה.

הוספת נתוני מוצר

עיצוב תווית נעשה בשימוש חוזר עבור כל מוצר, ולכן אין להקליד את המק״ט או המחיר ידנית. במקום זאת מוסיפים משתנים בסוגריים מסולסלים, ו־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}: מק״ט מוצר

  • {ean_code}: ברקוד EAN (משמש עבור קוד QR)

  • {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}: המק“ט מקודד כערך EPC עבור שבב ה־RFID

  • {item_sku_epc_word_count}: אורך ה־EPC, המשמש את פקודת ZPL RFID

פריסה

  • {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 — המק״ט, בפינה השמאלית העליונה.

  • ^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 גדול יותר כך שתשב נמוך יותר, ושנו את התוכן או את המשתנה.

הגדל את קוד ה-QR

הגדל את המספר האחרון ב-^BQN,2,2 (נסה ^BQN,3,3). אם הוא נחתך, תן לו יותר מקום או הזז אותו שמאלה/למעלה באמצעות ^FO שלו.

הוסף קו מפריד

השתמש בתיבה גרפית. ^FO0,40^GB540,2,2^FS מצייר קו אופקי דק ברוחב 540 נקודות.

תצוגה מקדימה ובדיקה לפני הדפסה

יש לכם שתי דרכים פשוטות לבדוק עיצוב לפני שימוש בתוויות אמיתיות:

  • ב-Gem Logic: בכל פעם שאתם שומרים, תמונת תצוגה מקדימה של התווית מופיעה מתחת לשדה העיצוב. השתמשו בה כלולאת המשוב העיקרית שלכם.

  • מקוון: הדביקו את ה-ZPL שלכם ב-מציג Labelary החינמי כדי לראות רינדור מיידי בגדלי תוויות שונים. (החליפו תחילה את {variables} בטקסט לדוגמה, מכיוון ש-Labelary אינו מכיר את נתוני המוצר שלכם.)

אם תווית אמיתית נראית שגויה — טקסט חתוך, קוד QR שלא נסרק, גודל שגוי — ראו את הקטע של התוויות ב-פתרון בעיות.

מדריך מהיר לפקודות

פקודה

מה היא עושה

^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 מקיף, אך הפקודות לעיל מכסות כמעט כל תווית מוצר.