Projektowanie etykiet Zebra (ZPL)

Drukarki etykiet Zebra nie rozumieją zwykłych dokumentów. Zamiast tego odczytują niewielki zestaw poleceń tekstowych zwanych ZPL (Zebra Programming Language). Projekt ZPL to po prostu blok tekstu, który informuje drukarkę, co umieścić na etykiecie i w jakim miejscu: linię tekstu tutaj, cenę tam, kod QR w rogu.

Niniejsza strona wyjaśnia język ZPL od podstaw, dzięki czemu będzie Pan/Pani w stanie czytać, edytować i tworzyć własne etykiety produktów bez pomocy z zewnątrz. Projekt etykiety tworzy się w Konfiguracja ‣ Drukarki, w polu Niestandardowy projekt etykiety produktu Zebra (patrz Konfiguracja drukarek).

Wskazówka

Rzadko zaczyna się od czystej kartki. Gem Logic nadaje każdej etykiecie działający domyślny projekt. Najszybszym sposobem nauki jest otwarcie tego domyślnego projektu, zmiana jednego elementu, zapisanie i spojrzenie na obraz podglądu. Powtarzaj, aż wygląd będzie odpowiedni.

Szybki start

  1. Przejdź do Konfiguracja ‣ Drukarki i znajdź pole Niestandardowy projekt etykiety produktu Zebra.

  2. Wprowadź niewielką zmianę (na przykład przesuń linię lub powiększ cenę).

  3. Kliknij Zapisz. Gem Logic automatycznie wygeneruje obraz podglądu etykiety.

  4. Sprawdź podgląd. Jeśli jest nieprawidłowy, dostosuj i zapisz ponownie.

Podczas eksperymentowania nic nie jest wysyłane do rzeczywistej drukarki — podgląd jest generowany na podstawie Pana/Pani projektu, więc może Pan/Pani bezpiecznie iterować przed wydrukowaniem pojedynczej etykiety.

Jak zbudowana jest etykieta ZPL

Każda etykieta zaczyna się od ^XA i kończy ^XZ. Wszystko pomiędzy opisuje etykietę. Polecenie zawsze zaczyna się od znaku daszka ^ (lub czasami tyldy ~).

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

Wewnątrz najczęstszym wzorcem jest „przejdź do pozycji, następnie wydrukuj tam coś”:

^FO50,30^FDHello^FS

Ta pojedyncza linia oznacza: przejdź do pozycji 50,30 i wydrukuj tekst „Hello”. W rozbiciu:

  • ^FO50,30Field Origin: przesuń do x=50, y=30 (lewy górny róg tego, co następuje).

  • ^FDHelloField Data: właściwa treść do wydrukowania.

  • ^FSField Separator: oznacza koniec tego elementu. Zawsze zamykaj pole za pomocą ^FS.

To stanowi 90% projektowania etykiet: seria linii „pozycja + treść” ułożonych jedna po drugiej.

Rozmiar etykiety, punkty i milimetry

Drukarki Zebra mierzą wszystko w punktach, a nie w milimetrach. Większość drukarek etykiet drukuje w rozdzielczości 203 DPI, co oznacza:

  • 1 mm ≈ 8 punktów

  • 1 cal = 203 punkty

Zatem etykieta o szerokości 56 mm i wysokości 13 mm ma około 448 punktów szerokości i 104 punkty wysokości.

Dwa polecenia określają obszar do druku:

  • ^PWPrint Width, szerokość druku, w punktach.

  • ^LLLabel Length, długość etykiety (wysokość), w punktach.

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

Ważne

Fizyczny rozmiar etykiety pochodzi również z pól Szerokość etykiety produktu i Długość etykiety produktu obok projektu. Należy synchronizować je z rzeczywistym zapasem etykiet. Zmienna {label_length} jest wypełniana automatycznie z pola długości, dlatego domyślny projekt używa ^LL{label_length}.

Pozycjonowanie: siatka współrzędnych

Wyobraź Pan/Pani sobie etykietę jako siatkę. Punkt 0,0 to lewy górny róg. Pierwsza liczba to x (jak daleko w prawo), a druga to y (jak daleko w dół), obie w punktach.

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

Aby przesunąć element, zmień jego liczby ^FO. Większe x = bardziej w prawo; większe y = bardziej w dół. W ten sposób umieszcza się SKU w jednej linii, a metal w następnej: nadaje się im to samo x, ale większe y w drugiej linii.

Dodawanie i skalowanie tekstu

Przed drukowaniem tekstu zazwyczaj wybiera się rozmiar czcionki. Najprostszym sposobem jest ^CF0,h (Change default Font, zmiana domyślnej czcionki), gdzie h to wysokość znaku w punktach:

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

Każde ^FD ... ^FS po ^CF używa tego rozmiaru, dopóki nie ustawi się innego. Aby więc mieszać rozmiary na jednej etykiecie, należy ustawić ^CF0,28 przed dużym tekstem i ^CF0,14 przed małym tekstem.

Wskazówka

Aby dodać nową linię tekstu, nie naciska się Enter — dodaje się kolejne pozycjonowane pole niżej. Należy skopiować istniejącą linię, nadać jej większą wartość y i zmienić jej zawartość.

Wstawianie danych produktu

Projekt etykiety jest wykorzystywany ponownie dla każdego produktu, więc nie wpisuje się ręcznie SKU ani ceny. Zamiast tego wstawia się zmienne w nawiasach klamrowych, a Gem Logic zastępuje je rzeczywistymi danymi każdego produktu podczas drukowania etykiety.

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

Te same zmienne są wyświetlane jako klikalne odznaki bezpośrednio pod polem projektu w aplikacji, dzięki czemu można zobaczyć, które są dostępne podczas edycji.

Dostępne zmienne

Produkt

  • {brand}: nazwa marki

  • {product_title}: tytuł produktu

  • {item_sku}: SKU produktu

  • {ean_code}: kod kreskowy EAN (używany do kodu QR)

  • {price} i {currency}: cena i symbol waluty

  • {serial_number}: numer seryjny

  • {year_of_manufacture}: rok produkcji

  • {supplier_product_reference}: referencja produktu dostawcy

  • {supplier_reference}: referencja dostawcy

Materiały i kamienie szlachetne

  • {material_1} do {material_5}: pełny opis materiału (waga, nazwa i szczegóły kamienia szlachetnego)

  • {material_only_1} do {material_only_5}: wyłącznie nazwa materiału lub kamienia szlachetnego

Atrybuty

  • {attribute_1} do {attribute_5}: atrybut w formacie nazwa: wartość

  • {attribute_name_1} do {attribute_name_5}: wyłącznie nazwa atrybutu

  • {attribute_value_1} do {attribute_value_5}: wyłącznie wartość atrybutu

Wymiary

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

Kolekcje

  • {collections}: kolekcje, do których należy produkt

Kategorie

  • {categories}: kategorie, do których należy produkt, oddzielone przecinkami

Kraj pochodzenia

  • {country_of_origin}: kraj, z którego pochodzi produkt

Czystość

  • {clarity}: czystość kamienia szlachetnego produktu

Kod kosztów

  • {encoded_cost}: koszt zakupu przekonwertowany na Państwa prywatny kod kosztów (litery są ustawiane w Konfiguracja ‣ Ustawienia ogólne), dzięki czemu rzeczywisty koszt nie jest czytelny na etykiecie.

RFID (wymagane tylko dla etykiet z tagami RFID)

  • {item_sku_epc_hex}: SKU zakodowane jako wartość EPC dla chipa RFID

  • {item_sku_epc_word_count}: długość EPC, używana przez polecenie RFID ZPL

Układ

  • {label_length}: wypełniane automatycznie na podstawie ustawienia długości etykiety

Kody QR i kody kreskowe

Kod QR dodawany jest za pomocą ^BQN po którym następuje pole danych rozpoczynające się od QA,:

^FO0,30^BQN,2,2^FDQA,{ean_code}^FS
  • ^FO0,30 — położenie kodu QR.

  • ^BQN,2,2 — kod QR. Ostatnia liczba to rozmiar (powiększenie). Zwiększcie ją (3, 4, 5…), aby uzyskać większy, łatwiejszy do zeskanowania kod; zmniejszcie ją, aby zaoszczędzić miejsce.

  • ^FDQA,{ean_code}^FS — dane wewnątrz kodu. Tutaj koduje numer EAN produktu.

Dla klasycznego kodu kreskowego 1D należy użyć ^BCN (Code 128):

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

60 to wysokość kodu kreskowego w punktach, a Y drukuje czytelny dla człowieka numer poniżej.

Domyślny projekt, objaśnienie

Oto początkowy projekt, który udostępnia Gem Logic, z objaśnieniami linia po linii. Przeczytanie go to najszybszy sposób, aby zrozumieć, jak elementy łączą się ze sobą.

^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

Linia po linii:

  • ^XA — początek etykiety.

  • ^MD20 — ciemność druku. Zwiększ, jeśli etykiety wyglądają na blade, zmniejsz, jeśli tekst jest rozmazany.

  • ^CI28 — kodowanie znaków, dzięki czemu i znaki diakrytyczne drukują się poprawnie.

  • ^LL{label_length} — wysokość etykiety, wypełniana automatycznie z ustawienia długości.

  • ^LH0,0 — pozycja początkowa: początek to lewy górny róg.

  • ^CF0,18 — rozmiar tekstu ~18 punktów dla linii, które następują.

  • ^FO180,8^FD{brand}^FS — marka, blisko góry.

  • ^CF0,14 — mniejszy tekst od tego miejsca.

  • ^FO50,45^FD{material_2}^FS, ^FO50,60^FD{material_3}^FS, ^FO180,27^FD{material_1}^FS — trzy materiały.

  • ^CF0,28 — większy tekst na cenę.

  • ^FO180,50^FD{currency}{price}^FS — cena, np. €129.

  • ^CF0,16 — tekst średni.

  • ^FO1,8^FD{item_sku}^FS — SKU, lewy górny róg.

  • ^FO1,23^FD{supplier_product_reference}^FS — odniesienie produktu dostawcy.

  • ^FO50,60^FD{supplier_reference}^FS — odniesienie dostawcy.

  • ^FO0,30^BQN,2,2 następnie ^FDQA,{ean_code}^FS — kod QR (lewy dolny róg) i jego dane (EAN).

  • ^XZ — koniec etykiety.

Ostrzeżenie

ZPL nie obsługuje komentarzy liniowych — nie używaj średnika ; do dodawania notatek. ZPL rozumie jedynie polecenia zaczynające się od ^ (lub ~), więc wszystko po ; jest odczytywane jako część wartości polecenia (lub jako przypadkowe dane etykiety). To właśnie powoduje błędy takie jak „Value «20;» is not a valid number” lub „Ignored unrecognized content”, a przypadkowy ; może po cichu przesunąć lub zepsuć Państwa układ.

Aby zostawić notatkę, użyj polecenia komentarza ^FX, zamkniętego za pomocą ^FS. Drukarka ignoruje wszystko, co się w nim znajduje:

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

Jedna zasada: komentarz ^FX nie może zawierać ^ ani ~ — te znaki kończą komentarz i rozpoczynają następne polecenie.

Typowe zmiany

Powiększ cenę

Znajdź ^CF0,28 przed linią {price} i zwiększ liczbę, np. ^CF0,40.

Przesuń coś

Zmień liczby w ^FO. Aby przesunąć markę w dół, zwiększ drugą liczbę w ^FO180,8 (czyli 8).

Dodaj nową linię tekstu

Skopiuj linię ^FO…^FD…^FS, nadaj jej większą wartość y, aby umieścić ją niżej, i zmień zawartość lub zmienną.

Powiększ kod QR

Zwiększ ostatnią liczbę w ^BQN,2,2 (spróbuj ^BQN,3,3). Jeśli zostanie obcięty, daj mu więcej miejsca lub przesuń go w lewo/do góry za pomocą ^FO.

Dodaj linię rozdzielającą

Użyj pola graficznego. ^FO0,40^GB540,2,2^FS rysuje cienką linię poziomą o szerokości 540 kropek.

Podgląd i testowanie przed drukowaniem

Ma Pan / Pani dwa łatwe sposoby na sprawdzenie projektu przed użyciem prawdziwych etykiet:

  • W Gem Logic: przy każdym zapisaniu pod polem projektu pojawia się podgląd etykiety. Użyj go jako głównej pętli informacji zwrotnej.

  • Online: wklej swój ZPL do darmowego podglądu Labelary, aby zobaczyć natychmiastowy podgląd w różnych rozmiarach etykiet. (Najpierw zamień {variables} na przykładowy tekst, ponieważ Labelary nie zna Twoich danych produktu.)

Jeśli prawdziwa etykieta wygląda nieprawidłowo — obcięty tekst, kod QR, który nie skanuje się, niewłaściwy rozmiar — zobacz sekcję dotyczącą etykiet w Rozwiązywanie problemów.

Szybka instrukcja poleceń

Polecenie

Co robi

^XA / ^XZ

Początek / koniec etykiety. Wszystko znajduje się między nimi.

^PW

Szerokość druku w kropkach.

^LL

Długość etykiety (wysokość) w kropkach.

^LH

Punkt początkowy etykiety — punkt początkowy (zwykle 0,0).

^FO x,y

Punkt początkowy pola — umieszcza następny element na x,y.

^CF0,h

Ustawia domyślną wysokość czcionki (h kropek) dla następnego tekstu.

^FD ... ^FS

Dane pola — zawartość do druku — zamknięta separatorem pola.

^FX ... ^FS

Komentarz — ignorowany przez drukarkę. Nie może zawierać ^ ani ~.

^MD

Ciemność podłoża (ciemność druku). Wyższa wartość oznacza ciemniejszy wydruk.

^BQN,m,m

Kod QR; ostatnia liczba to rozmiar. Dane rozpoczynają się od QA,.

^BCN,h,...

Kod kreskowy Code 128; h to wysokość w kropkach.

^GB w,h,t

Rysuje ramkę lub linię (szerokość, wysokość, grubość w kropkach).

^CI28

Kodowanie znaków, aby symbole takie jak drukowały się poprawnie.

Pełny przewodnik poleceń ZPL publikuje firma Zebra, ale powyższe polecenia obejmują niemal każdą etykietę produktu.