Design af Zebra (ZPL) etiketter

Zebra-etiketprintere forstår ikke normale dokumenter. I stedet læser de et lille sæt tekstkommandoer kaldet ZPL (Zebra Programming Language). Et ZPL-design er blot en tekstblok, der fortæller printeren, hvad der skal placeres på etiketten og hvor: en tekstlinje her, en pris der, en QR-kode i hjørnet.

Denne side forklarer ZPL fra bunden, så De kan læse, redigere og opbygge Deres egne produktetiketter uden hjælp. De designer Deres etiket under Konfiguration ‣ Printere, i feltet Brugerdefineret Zebra-produktetiketdesign (se Printerkonfiguration).

Tip

De starter sjældent fra en blank side. Gem Logic giver hver etiket et fungerende standarddesign. Den hurtigste måde at lære på er at åbne den standard, ændre én ting, gemme og se på forhåndsvisningsbilledet. Gentag, indtil det ser rigtigt ud.

Hurtig start

  1. Gå til Konfiguration ‣ Printere og find feltet Brugerdefineret Zebra-produktetiketdesign.

  2. Foretag en lille ændring (f.eks. flyt en linje eller gør prisen større).

  3. Klik på Gem. Gem Logic genererer automatisk et forhåndsvisningsbillede af etiketten.

  4. Se på forhåndsvisningen. Hvis den er forkert, juster og gem igen.

Intet sendes til en rigtig printer, mens De eksperimenterer — forhåndsvisningen genereres fra Deres design, så De kan iterere sikkert, før De udskriver en eneste etiket.

Sådan opbygges en ZPL-etiket

Hver etiket starter med ^XA og slutter med ^XZ. Alt derimellem beskriver etiketten. En kommando begynder altid med et cirkumfleks ^ (eller undertiden en tilde ~).

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

Indeni er det mest almindelige mønster »gå til en position, og udskriv derefter noget der«:

^FO50,30^FDHello^FS

Den enkelte linje betyder: gå til position 50,30 og udskriv teksten »Hello«. Opdelt:

  • ^FO50,30Field Origin: flyt til x=50, y=30 (øverste venstre hjørne af det, der kommer derefter).

  • ^FDHelloField Data: det faktiske indhold, der skal udskrives.

  • ^FSField Separator: markerer slutningen af denne del. Luk altid et felt med ^FS.

Det udgør 90% af etiketdesign: en række af »position + indhold«-linjer stablet sammen.

Etiketstørrelse, dots og millimeter

Zebra-printere måler alt i dots, ikke millimeter. De fleste etiketprintere udskriver ved 203 DPI, hvilket betyder:

  • 1 mm ≈ 8 dots

  • 1 tomme = 203 dots

Så en etiket, der er 56 mm bred og 13 mm høj, er cirka 448 dots bred og 104 dots høj.

To kommandoer indstiller det printerbare område:

  • ^PWPrint Width, udskriftsbredde, i dots.

  • ^LLLabel Length, etiketlængde (højde), i dots.

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

Vigtigt

Den fysiske etiketstørrelse kommer også fra felterne Produktetiketbredde og Produktetiketlængde ved siden af designet. Hold disse synkroniserede med Deres faktiske etiketlager. Variablen {label_length} udfyldes automatisk fra længdefeltet, derfor bruger standarddesignet ^LL{label_length}.

Positionering: koordinatgitteret

Tænk på etiketten som et gitter. Punktet 0,0 er det øverste venstre hjørne. Det første tal er x (hvor langt til højre), og det andet er y (hvor langt ned), begge i dots.

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

For at flytte et element skal De ændre dets ^FO-tal. Større x = længere til højre; større y = længere ned. Det er sådan, De placerer SKU på én linje og metallet på den næste: giv dem samme x, men en større y på anden linje.

Tilføjelse og størrelse af tekst

Før De udskriver tekst, vælger De normalt en skriftstørrelse. Den enkleste måde er ^CF0,h (Change default Font, ændr standardskrifttype), hvor h er tegnhøjden i dots:

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

Hver ^FD ... ^FS efter en ^CF bruger den størrelse, indtil De indstiller en anden. Så for at blande størrelser på én etiket skal De indstille ^CF0,28 før den store tekst og ^CF0,14 før den lille tekst.

Tip

For at tilføje en ny tekstlinje trykker De ikke på Enter — De tilføjer et andet positioneret felt længere nede. Kopiér en eksisterende linje, giv den en større y-værdi, og ændr dens indhold.

Indsættelse af produktdata

Et etiketdesign genbruges til hvert produkt, så De indtaster ikke SKU eller prisen manuelt. I stedet indsætter De variabler i krøllede parenteser, og Gem Logic erstatter dem med hvert produkts faktiske data, når etiketten udskrives.

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

De samme variabler vises som klikbare badges direkte under designfeltet i appen, så De kan se, hvilke der er tilgængelige, mens De redigerer.

Tilgængelige variabler

Produkt

  • {brand}: mærkenavn

  • {product_title}: produkttitel

  • {item_sku}: produkt-SKU

  • {ean_code}: EAN-stregkode (bruges til QR-koden)

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

  • {serial_number}: serienummer

  • {year_of_manufacture}: fremstillingsår

  • {supplier_product_reference}: leverandørens produktreference

  • {supplier_reference}: leverandørreference

Materialer og ædelstene

  • {material_1} til {material_5}: fuldstændig materialebeskrivelse (vægt, navn og ædelstensdetaljer)

  • {material_only_1} til {material_only_5}: kun materiale- eller ædelstensn​avn

Attributter

  • {attribute_1} til {attribute_5}: attribut som navn: værdi

  • {attribute_name_1} til {attribute_name_5}: kun attributnavn

  • {attribute_value_1} til {attribute_value_5}: kun attributværdi

Dimensioner

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

Kollektioner

  • {collections}: de kollektioner produktet tilhører

Kategorier

  • {categories}: de kategorier produktet tilhører, adskilt med kommaer

Oprindelsesland

  • {country_of_origin}: det land produktet stammer fra

Renhed

  • {clarity}: produktets ædelstensrenhed

Omkostningskode

  • {encoded_cost}: købsprisen omregnet til Deres private omkostningskode (bogstaverne indstilles under Konfiguration ‣ Generelle indstillinger), så den egentlige omkostning ikke kan aflæses på etiketten.

RFID (kun nødvendigt for etiketter med RFID-tags)

  • {item_sku_epc_hex}: SKU’en kodet som en EPC-værdi til RFID-chippen

  • {item_sku_epc_word_count}: EPC-længden, anvendt af ZPL RFID-kommandoen

Layout

  • {label_length}: udfyldes automatisk ud fra etiketlængde-indstillingen

QR-koder og stregkoder

En QR-kode tilføjes med ^BQN efterfulgt af et datafelt, der starter med QA,:

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

  • ^BQN,2,2 — en QR-kode. Det sidste tal er størrelsen (forstørrelse). Forøg det (3, 4, 5…) for en større, lettere at scanne kode; sænk det for at spare plads.

  • ^FDQA,{ean_code}^FS — dataene inde i koden. Her kodes produktets EAN.

For en klassisk 1D-stregkode bruges i stedet ^BCN (Code 128):

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

60 er stregkodehøjden i punkter, og Y udskriver det læsbare nummer nedenunder.

Standarddesignet, forklaret

Dette er det startdesign, Gem Logic giver dig, forklaret linje for linje. At læse det er den hurtigste måde at forstå, hvordan delene passer sammen.

^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

Linje for linje:

  • ^XA — start på etiketten.

  • ^MD20 — udskriftsmørke. Hæv det, hvis etiketter ser blege ud, sænk det, hvis teksten er sløret.

  • ^CI28 — tegnkodning, så og accenter udskrives korrekt.

  • ^LL{label_length} — etikethøjde, udfyldes automatisk fra længdeindstillingen.

  • ^LH0,0 — hjemmeposition: udgangspunktet er øverste venstre hjørne.

  • ^CF0,18 — tekststørrelse ~18 punkter for de efterfølgende linjer.

  • ^FO180,8^FD{brand}^FS — mærket, nær toppen.

  • ^CF0,14 — mindre tekst herfra.

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

  • ^CF0,28 — større tekst til prisen.

  • ^FO180,50^FD{currency}{price}^FS — prisen, f.eks. €129.

  • ^CF0,16 — mellemstor tekst.

  • ^FO1,8^FD{item_sku}^FS — SKU, øverst til venstre.

  • ^FO1,23^FD{supplier_product_reference}^FS — leverandørens produktreference.

  • ^FO50,60^FD{supplier_reference}^FS — leverandørreference.

  • ^FO0,30^BQN,2,2 derefter ^FDQA,{ean_code}^FS — QR-koden (nederst til venstre) og dens data (EAN).

  • ^XZ — slut på etiketten.

Advarsel

ZPL har ingen linjekommentarer — brug ikke semikolon ; til at tilføje noter. ZPL forstår kun kommandoer, der starter med ^ (eller ~), så alt efter et ; læses som en del af kommandoens værdi (eller som tilfældige etiketdata). Det er det, der forårsager fejl som »Value ›20;‹ is not a valid number« eller »Ignored unrecognized content«, og et tilfældigt ; kan stille flytte eller ødelægge Deres layout.

For at efterlade en note skal De bruge kommentarkommandoen ^FX, afsluttet med ^FS. Printeren ignorerer alt indeni:

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

Den ene regel: en ^FX kommentar kan ikke indeholde et ^ eller ~ — disse tegn afslutter kommentaren og starter den næste kommando.

Almindelige ændringer

Gør prisen større

Find ^CF0,28 før {price} linjen og forøg tallet, f.eks. ^CF0,40.

Flyt noget

Ret dets ^FO tal. For at flytte mærket ned skal De forøge det andet tal i ^FO180,8 (8’et).

Tilføj en ny tekstlinje

Kopiér en ^FO…^FD…^FS linje, giv den en større y værdi, så den sidder lavere, og ret indholdet eller variablen.

Gør QR-koden større

Øg det sidste tal i ^BQN,2,2 (prøv ^BQN,3,3). Hvis den bliver afskåret, giv den mere plads eller flyt den til venstre/op med dens ^FO.

Tilføj en skillelinje

Brug en grafisk boks. ^FO0,40^GB540,2,2^FS tegner en tynd vandret linje på 540 dots bred.

Forhåndsvisning og test før udskrivning

De har to enkle måder at kontrollere et design på, før De bruger rigtige etiketter:

  • I Gem Logic: hver gang De gemmer, vises et forhåndsvisningsbillede af etiketten under designfeltet. Brug det som Deres primære feedbackloop.

  • Online: indsæt Deres ZPL i den gratis Labelary viewer for at se en øjeblikkelig rendering ved forskellige etiketstørrelser. (Erstat først {variables} med eksempeltekst, da Labelary ikke kender Deres produktdata.)

Hvis en rigtig etiket ser forkert ud — afskåret tekst, en QR der ikke scanner, forkert størrelse — se etiketsektionen i Fejlfinding.

Hurtig kommandoreference

Kommando

Hvad den gør

^XA / ^XZ

Start / slut på etiketten. Alt befinder sig mellem dem.

^PW

Udskriftsbredde i dots.

^LL

Etiketlængde (højde) i dots.

^LH

Label home — udgangspunktet (normalt 0,0).

^FO x,y

Field origin — placer det næste element ved x,y.

^CF0,h

Indstil standardskrifthøjden (h dots) for følgende tekst.

^FD ... ^FS

Field data — indholdet der skal udskrives — lukket af en feltseparator.

^FX ... ^FS

Kommentar — ignoreres af printeren. Kan ikke indeholde ^ eller ~.

^MD

Media darkness (udskriftsmørkhed). Højere er mørkere.

^BQN,m,m

QR-kode; det sidste tal er størrelsen. Data starter med QA,.

^BCN,h,...

Code 128-stregkode; h er højden i punkter.

^GB w,h,t

Tegn en ramme eller linje (bredde, højde, tykkelse i punkter).

^CI28

Tegnkodning, så symboler som udskrives korrekt.

For det komplette sprog udgiver Zebra en fuld ZPL-kommandovejledning, men kommandoerne ovenfor dækker næsten enhver produktetiket.