Design av Zebra (ZPL) etiketter

Zebra-etikettskrivare förstår inte vanliga dokument. Istället läser de en liten uppsättning textkommandon som kallas ZPL (Zebra Programming Language). En ZPL-design är helt enkelt ett textblock som talar om för skrivaren vad som ska placeras på etiketten och var: en textrad här, ett pris där, en QR-kod i hörnet.

Den här sidan förklarar ZPL från grunden så att du kan läsa, redigera och skapa dina egna produktetiketter utan hjälp. Du utformar din etikett under Konfiguration ‣ Skrivare, i fältet Anpassad Zebra-produktetikett-design (se Printerkonfiguration).

Tips

Du börjar sällan från en tom sida. Gem Logic ger varje etikett en fungerande standarddesign. Det snabbaste sättet att lära sig är att öppna den standarden, ändra en sak, spara och titta på förhandsvisningsbilden. Upprepa tills det ser rätt ut.

Snabbstart

  1. Gå till Konfiguration ‣ Skrivare och hitta fältet Anpassad Zebra-produktetikett-design.

  2. Gör en liten ändring (till exempel flytta en rad eller göra priset större).

  3. Klicka på Spara. Gem Logic genererar automatiskt en förhandsvisningsbild av etiketten.

  4. Titta på förhandsvisningen. Om den är fel, justera och spara igen.

Ingenting skickas till en riktig skrivare medan du experimenterar — förhandsvisningen genereras från din design, så du kan iterera säkert innan du skriver ut en enda etikett.

Hur en ZPL-etikett är uppbyggd

Varje etikett börjar med ^XA och slutar med ^XZ. Allt däremellan beskriver etiketten. Ett kommando börjar alltid med ett cirkumflextecken ^ (eller ibland ett tilde-tecken ~).

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

Inuti är det vanligaste mönstret ”gå till en position och skriv sedan ut något där”:

^FO50,30^FDHello^FS

Den enda raden betyder: gå till position 50,30 och skriv ut texten ”Hello”. Uppdelat:

  • ^FO50,30Field Origin: flytta till x=50, y=30 (det övre vänstra hörnet av det som kommer härnäst).

  • ^FDHelloField Data: det faktiska innehållet som ska skrivas ut.

  • ^FSField Separator: markerar slutet på denna del. Stäng alltid ett fält med ^FS.

Det är 90% av etikettdesign: en serie ”position + innehåll”-rader staplade tillsammans.

Etikettstorlek, punkter och millimeter

Zebra-skrivare mäter allt i punkter, inte i millimeter. De flesta etikett-skrivare skriver ut i 203 DPI, vilket innebär:

  • 1 mm ≈ 8 punkter

  • 1 tum = 203 punkter

Så en etikett som är 56 mm bred och 13 mm hög är cirka 448 punkter bred och 104 punkter hög.

Två kommandon anger det utskrivbara området:

  • ^PWPrint Width, utskriftsbredd, i punkter.

  • ^LLLabel Length, etikettlängd (höjd), i punkter.

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

Viktigt

Den fysiska etikettstorleken kommer också från fälten Produktetikettbredd och Produktetikettlängd bredvid designen. Håll dem synkroniserade med er faktiska etikettstock. Variabeln {label_length} fylls i automatiskt från längdfältet, vilket är anledningen till att standarddesignen använder ^LL{label_length}.

Positionering: koordinatgittret

Tänk på etiketten som ett gitter. Punkten 0,0 är det övre vänstra hörnet. Det första numret är x (hur långt åt höger) och det andra är y (hur långt nedåt), båda i punkter.

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

För att flytta ett element, ändra dess ^FO-nummer. Större x = längre åt höger; större y = längre nedåt. På detta sätt placerar du SKU på en rad och materialet på nästa: ge dem samma x men ett större y på den andra raden.

Lägga till och ändra textstorlek

Innan du skriver ut text väljer du vanligtvis en teckenstorlek. Det enklaste sättet är ^CF0,h (Change default Font, ändra standardteckensnitt), där h är teckenhöjden i punkter:

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

Varje ^FD ... ^FS efter en ^CF använder den storleken tills du anger en annan. För att blanda storlekar på en etikett, ange ^CF0,28 före den stora texten och ^CF0,14 före den lilla texten.

Tips

För att lägga till en ny textrad trycker du inte på Enter — du lägger till ett annat positionerat fält längre ned. Kopiera en befintlig rad, ge den ett större y-värde och ändra innehållet.

Infoga produktdata

En etikettdesign återanvänds för varje produkt, så du skriver inte in SKU eller pris manuellt. Istället infogar du variabler inom måsvingar, och Gem Logic ersätter dem med varje produkts verkliga data när etiketten skrivs ut.

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

Samma variabler visas som klickbara märken direkt under designfältet i appen, så du kan se vilka som är tillgängliga medan du redigerar.

Tillgängliga variabler

Produkt

  • {brand}: varumärkesnamn

  • {product_title}: produkttitel

  • {item_sku}: produkt-SKU

  • {ean_code}: EAN-streckkod (används för QR-koden)

  • {price} och {currency}: pris och valutasymbol

  • {serial_number}: serienummer

  • {year_of_manufacture}: tillverkningsår

  • {supplier_product_reference}: leverantörens produktreferens

  • {supplier_reference}: leverantörsreferens

Material och ädelstenar

  • {material_1} till {material_5}: fullständig materialbeskrivning (vikt, namn och ädelstensdetaljer)

  • {material_only_1} till {material_only_5}: endast material- eller ädelstensnamn

Attribut

  • {attribute_1} till {attribute_5}: attribut som namn: värde

  • {attribute_name_1} till {attribute_name_5}: endast attributnamn

  • {attribute_value_1} till {attribute_value_5}: endast attributvärde

Mått

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

Kollektioner

  • {collections}: de kollektioner som produkten tillhör

Kategorier

  • {categories}: de kategorier som produkten tillhör, kommaseparerade

Ursprungsland

  • {country_of_origin}: det land som produkten kommer från

Klarhet

  • {clarity}: ädelstensens klarhet för produkten

Kostnadskod

  • {encoded_cost}: inköpskostnaden omvandlad till er privata kostnadskod (bokstäverna ställs in under Konfiguration ‣ Allmänna inställningar), så att den faktiska kostnaden inte är läsbar på etiketten.

RFID (behövs endast för etiketter med RFID-taggar)

  • {item_sku_epc_hex}: SKU kodad som ett EPC-värde för RFID-chippet

  • {item_sku_epc_word_count}: EPC-längden, som används av ZPL RFID-kommandot

Layout

  • {label_length}: fylls i automatiskt från inställningen för etikettlängd

QR-koder och streckkoder

En QR-kod läggs till med ^BQN följt av ett datafält som börjar med QA,:

^FO0,30^BQN,2,2^FDQA,{ean_code}^FS
  • ^FO0,30 — var QR-koden placeras.

  • ^BQN,2,2 — en QR-kod. Det sista talet är storleken (förstoring). Höj det (3, 4, 5…) för en större, lättare att skanna kod; sänk det för att spara utrymme.

  • ^FDQA,{ean_code}^FS — data inuti koden. Här kodar den produktens EAN.

För en klassisk 1D-streckkod använd istället ^BCN (Code 128):

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

60 är streckkodshöjden i punkter, och Y skriver ut det läsbara numret under.

Standarddesignen, förklarad

Det här är den startdesign som Gem Logic ger dig, kommenterad rad för rad. Att läsa den är det snabbaste sättet att förstå hur delarna passar ihop.

^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

Rad för rad:

  • ^XA — start av etiketten.

  • ^MD20 — utskriftsdunkelhet. Öka den om etiketter ser ljusa ut, sänk den om texten är suddig.

  • ^CI28 — teckenkodning, så att och accenter skrivs ut korrekt.

  • ^LL{label_length} — etiketthöjd, fylls i automatiskt från längdinställningen.

  • ^LH0,0 — hemposition: origo är det övre vänstra hörnet.

  • ^CF0,18 — textstorlek ~18 punkter för de rader som följer.

  • ^FO180,8^FD{brand}^FS — varumärket, nära toppen.

  • ^CF0,14 — mindre text härifrån.

  • ^FO50,45^FD{material_2}^FS, ^FO50,60^FD{material_3}^FS, ^FO180,27^FD{material_1}^FS — de tre materialen.

  • ^CF0,28 — större text för priset.

  • ^FO180,50^FD{currency}{price}^FS — priset, t.ex. €129.

  • ^CF0,16 — medelstor text.

  • ^FO1,8^FD{item_sku}^FS — SKU, uppe till vänster.

  • ^FO1,23^FD{supplier_product_reference}^FS — leverantörens produktreferens.

  • ^FO50,60^FD{supplier_reference}^FS — leverantörsreferens.

  • ^FO0,30^BQN,2,2 sedan ^FDQA,{ean_code}^FS — QR-koden (nere till vänster) och dess data (EAN).

  • ^XZ — slut på etiketten.

Varning

ZPL har inga radkommentarer — använd inte ett semikolon ; för att lägga till anteckningar. ZPL förstår endast kommandon som börjar med ^ (eller ~), så allt efter ett ; läses som en del av kommandots värde (eller som lös etikettdata). Det är vad som orsakar fel som "Value ’20;’ is not a valid number" eller "Ignored unrecognized content", och ett vilsegånget ; kan tyst flytta eller bryta din layout.

För att lämna en anteckning, använd kommandot ^FX för kommentarer, avslutat med ^FS. Skrivaren ignorerar allt inuti det:

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

Den enda regeln: en ^FX-kommentar kan inte innehålla ett ^ eller ~ — dessa tecken avslutar kommentaren och startar nästa kommando.

Vanliga ändringar

Gör priset större

Hitta ^CF0,28 före {price}-raden och öka talet, t.ex. ^CF0,40.

Flytta något

Ändra dess ^FO-tal. För att flytta varumärket nedåt, öka det andra talet i ^FO180,8 (8).

Lägg till en ny textrad

Kopiera en ^FO…^FD…^FS-rad, ge den ett större y-värde så att den hamnar lägre, och ändra innehållet eller variabeln.

Gör QR-koden större

Öka det sista numret i ^BQN,2,2 (prova ^BQN,3,3). Om den klipps av, ge den mer utrymme eller flytta den åt vänster/uppåt med dess ^FO.

Lägg till en separatorlinje

Använd en grafisk ruta. ^FO0,40^GB540,2,2^FS ritar en tunn horisontell linje som är 540 punkter bred.

Förhandsgranska och testa innan utskrift

Du har två enkla sätt att kontrollera en design innan du använder riktiga etiketter:

  • I Gem Logic: varje gång du sparar visas en förhandsgranskningsbild av etiketten under designfältet. Använd den som din huvudsakliga återkopplingsloop.

  • Online: klistra in din ZPL i den kostnadsfria Labelary viewer för att se en direkt rendering i olika etikettstorlekar. (Ersätt först {variables} med exempeltext, eftersom Labelary inte känner till dina produktdata.)

Om en riktig etikett ser fel ut — avklippt text, en QR-kod som inte kan skannas, fel storlek — se etikettsektionen i Felsökning.

Snabbreferens för kommandon

Kommando

Vad det gör

^XA / ^XZ

Start / slut på etiketten. Allt finns mellan dem.

^PW

Utskriftsbredd i punkter.

^LL

Etikettlängd (höjd) i punkter.

^LH

Label home — ursprungspunkten (vanligtvis 0,0).

^FO x,y

Field origin — placera nästa element vid x,y.

^CF0,h

Ställ in standardtypsnittshöjden (h punkter) för följande text.

^FD ... ^FS

Field data — innehållet som ska skrivas ut — avslutas med en fältseparator.

^FX ... ^FS

Kommentar — ignoreras av skrivaren. Kan inte innehålla ^ eller ~.

^MD

Media darkness (utskriftsmörkhet). Högre är mörkare.

^BQN,m,m

QR-kod; det sista numret är storleken. Data börjar med QA,.

^BCN,h,...

Code 128-streckkod; h är höjden i punkter.

^GB w,h,t

Rita en ruta eller linje (bredd, höjd, tjocklek i punkter).

^CI28

Teckenkodning, så att symboler som skrivs ut korrekt.

För det fullständiga språket publicerar Zebra en komplett ZPL-kommandoguide, men kommandona ovan täcker nästan alla produktetiketter.