Conception d’étiquettes Zebra (ZPL)¶
Les imprimantes d’étiquettes Zebra ne comprennent pas les documents normaux. Elles lisent plutôt un petit ensemble de commandes texte appelées ZPL (Zebra Programming Language). Une conception ZPL n’est qu’un bloc de texte qui indique à l’imprimante quoi mettre sur l’étiquette et où : une ligne de texte ici, un prix là, un code QR dans le coin.
Cette page explique le ZPL depuis le début afin que vous puissiez lire, modifier et créer vos propres étiquettes produit sans aide. Vous concevez votre étiquette dans , dans le champ Conception personnalisée d’étiquette produit Zebra (voir Configuration des imprimantes).
Astuce
Vous partez rarement d’une page vierge. Gem Logic donne à chaque étiquette une conception par défaut fonctionnelle. Le moyen le plus rapide d’apprendre est d’ouvrir cette conception par défaut, de changer une chose, d’enregistrer et de regarder l’image d’aperçu. Répétez jusqu’à ce que cela paraisse correct.
Démarrage rapide¶
Allez dans et trouvez le champ Conception personnalisée d’étiquette produit Zebra.
Effectuez un petit changement (par exemple, déplacez une ligne ou agrandissez le prix).
Cliquez sur Sauver. Gem Logic génère automatiquement une image d’aperçu de l’étiquette.
Regardez l’aperçu. S’il est incorrect, ajustez et enregistrez à nouveau.
Rien n’est envoyé à une vraie imprimante pendant que vous expérimentez — l’aperçu est généré à partir de votre conception, vous pouvez donc itérer en toute sécurité avant d’imprimer une seule étiquette.
Comment une étiquette ZPL est construite¶
Chaque étiquette commence par ^XA et se termine par ^XZ. Tout ce qui se trouve entre les deux décrit l’étiquette. Une commande commence toujours par un accent circonflexe ^ (ou parfois un tilde ~).
^XA (start of the label)
... commands that build the label ...
^XZ (end of the label)
À l’intérieur, le schéma le plus courant est **« aller à une position, puis imprimer quelque chose là » ** :
^FO50,30^FDHello^FS
Cette ligne unique signifie : aller à la position 50,30 et imprimer le texte « Hello ». Détaillée :
^FO50,30— Field Origin : déplacer à x=50, y=30 (le coin supérieur gauche de ce qui suit).^FDHello— Field Data : le contenu réel à imprimer.^FS— Field Separator : marque la fin de cet élément. Fermez toujours un champ avec^FS.
Cela représente 90 % de la conception d’étiquettes : une série de lignes « position + contenu » empilées les unes sur les autres.
Taille d’étiquette, points et millimètres¶
Les imprimantes Zebra mesurent tout en points, pas en millimètres. La plupart des imprimantes d’étiquettes impriment à 203 DPI, ce qui signifie :
1 mm ≈ 8 points
1 pouce = 203 points
Ainsi, une étiquette de 56 mm de large et 13 mm de haut fait environ 448 points de large et 104 points de haut.
Deux commandes définissent la zone imprimable :
^PW— Print Width, largeur d’impression, en points.^LL— Label Length, longueur d’étiquette (hauteur), en points.
^PW448 (label is 448 dots wide ≈ 56 mm)
^LL104 (label is 104 dots tall ≈ 13 mm)
Important
La taille physique de l’étiquette provient également des champs Largeur d’étiquette produit et Longueur d’étiquette produit à côté du design. Gardez-les synchronisés avec votre stock d’étiquettes réel. La variable {label_length} est remplie automatiquement à partir du champ de longueur, c’est pourquoi le design par défaut utilise ^LL{label_length}.
Positionnement : la grille de coordonnées¶
Imaginez l’étiquette comme une grille. Le point 0,0 est le coin supérieur gauche. Le premier nombre est x (distance vers la droite) et le second est y (distance vers le bas), tous deux en points.
^FO0,0 top-left corner
^FO200,0 200 dots to the right, same height
^FO0,40 left edge, 40 dots down
Pour déplacer un élément, modifiez ses nombres ^FO. x plus grand = plus à droite ; y plus grand = plus bas. C’est ainsi que vous placez l’USG sur une ligne et le métal sur la suivante : donnez-leur le même x mais un y plus grand sur la deuxième ligne.
Ajout et dimensionnement du texte¶
Avant d’imprimer du texte, vous choisissez généralement une taille de police. La méthode la plus simple est ^CF0,h (Change default Font, modifier la police par défaut), où h est la hauteur des caractères en points :
^CF0,28 use ~28-dot-tall text from here on
^FO50,30^FDPrice^FS print "Price" at 50,30 in that size
Chaque ^FD ... ^FS après un ^CF utilise cette taille jusqu’à ce que vous en définissiez une différente. Donc, pour mélanger des tailles sur une étiquette, définissez ^CF0,28 avant le texte grand et ^CF0,14 avant le texte petit.
Astuce
Pour ajouter une nouvelle ligne de texte, vous n’appuyez pas sur Entrée — vous ajoutez un autre champ positionné plus bas. Copiez une ligne existante, donnez-lui une valeur y plus grande et modifiez son contenu.
Insertion des données produit¶
Un design d’étiquette est réutilisé pour chaque produit, vous ne saisissez donc pas l’USG ou le prix manuellement. Vous insérez plutôt des variables entre accolades, et Gem Logic les remplace par les données réelles de chaque produit lors de l’impression de l’étiquette.
^FO1,8^FD{item_sku}^FS prints this product's SKU
^FO180,50^FD{currency}{price}^FS prints e.g. €129
Les mêmes variables sont affichées sous forme de badges cliquables directement sous le champ de design dans l’application, afin que vous puissiez voir celles qui sont disponibles pendant que vous éditez.
Variables disponibles¶
Produit
{brand}: nom de la marque{product_title}: titre du produit{item_sku}: USG du produit{ean_code}: code-barres EAN (utilisé pour le code QR){price}et{currency}: prix et symbole de devise{serial_number}: numéro de série{year_of_manufacture}: année de fabrication{supplier_product_reference}: référence produit du fournisseur{supplier_reference}: référence fournisseur
Matières et gemmes
{material_1}à{material_5}: description complète de la matière (poids, nom et détails de la gemme){material_only_1}à{material_only_5}: nom de la matière ou de la gemme uniquement
Attributs
{attribute_1}à{attribute_5}: attribut sous la formenom: valeur{attribute_name_1}à{attribute_name_5}: nom de l’attribut uniquement{attribute_value_1}à{attribute_value_5}: valeur de l’attribut uniquement
Dimensions
{weight},{length},{width},{height},{diameter},{size},{thickness},{quality}
Collections
{collections}: les collections auxquelles appartient le produit
Catégories
{categories}: les catégories auxquelles le produit appartient, séparées par des virgules
Pays d’origine
{country_of_origin}: le pays d’où provient le produit
Pureté
{clarity}: la pureté de la gemme du produit
Code de coût
{encoded_cost}: le coût d’achat converti dans votre code de coût privé (les lettres sont définies sous ), de sorte que le coût réel n’est pas lisible sur l’étiquette.
RFID (nécessaire uniquement pour les étiquettes avec puces RFID)
{item_sku_epc_hex}: l’USG encodé sous forme de valeur EPC pour la puce RFID{item_sku_epc_word_count}: la longueur EPC, utilisée par la commande RFID ZPL
Mise en page
{label_length}: renseigné automatiquement d’après le paramètre de longueur d’étiquette
Codes QR et codes-barres¶
Un code QR est ajouté avec ^BQN suivi d’un champ de données commençant par QA, :
^FO0,30^BQN,2,2^FDQA,{ean_code}^FS
^FO0,30— position du code QR.^BQN,2,2— un code QR. Le dernier chiffre correspond à la taille (agrandissement). Augmentez-le (3, 4, 5…) pour obtenir un code plus grand et plus facile à scanner ; diminuez-le pour économiser de l’espace.^FDQA,{ean_code}^FS— les données contenues dans le code. Ici, il encode l’EAN du produit.
Pour un code-barres 1D classique, utilisez plutôt ^BCN (Code 128) :
^FO20,20^BCN,60,Y,N,N^FD{ean_code}^FS
Le 60 correspond à la hauteur du code-barres en points, et Y imprime le numéro lisible en dessous.
Le design par défaut, expliqué¶
Voici le design de départ que Gem Logic vous fournit, annoté ligne par ligne. Le lire est le moyen le plus rapide de comprendre comment les éléments s’articulent.
^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
Ligne par ligne :
^XA— début de l’étiquette.^MD20— intensité d’impression. Augmentez-la si les étiquettes sont pâles, diminuez-la si le texte est bavé.^CI28— encodage des caractères, pour que€et les accents s’impriment correctement.^LL{label_length}— hauteur de l’étiquette, remplie automatiquement à partir du paramètre de longueur.^LH0,0— position d’origine : l’origine se trouve en haut à gauche.^CF0,18— taille du texte ~18 points pour les lignes qui suivent.^FO180,8^FD{brand}^FS— la marque, près du haut.^CF0,14— texte plus petit à partir d’ici.^FO50,45^FD{material_2}^FS,^FO50,60^FD{material_3}^FS,^FO180,27^FD{material_1}^FS— les trois matières.^CF0,28— texte plus grand pour le prix.^FO180,50^FD{currency}{price}^FS— le prix, par exemple €129.^CF0,16— texte moyen.^FO1,8^FD{item_sku}^FS— l’USG, en haut à gauche.^FO1,23^FD{supplier_product_reference}^FS— référence produit du fournisseur.^FO50,60^FD{supplier_reference}^FS— référence fournisseur.^FO0,30^BQN,2,2puis^FDQA,{ean_code}^FS— le code QR (en bas à gauche) et ses données (l’EAN).^XZ— fin de l’étiquette.
Avertissement
ZPL ne prend pas en charge les commentaires de ligne — n’utilisez pas de point-virgule ; pour ajouter des notes. ZPL ne comprend que les commandes commençant par ^ (ou ~), donc tout ce qui suit un ; est lu comme faisant partie de la valeur de la commande (ou comme des données d’étiquette parasites). C’est ce qui provoque des erreurs comme « Value “20;” is not a valid number » ou « Ignored unrecognized content », et un ; parasite peut discrètement décaler ou casser votre mise en page.
Pour laisser une note, utilisez la commande de commentaire ^FX, fermée par ^FS. L’imprimante ignore tout ce qui se trouve à l’intérieur :
^FX brand, near the top ^FS
^FO180,8^FD{brand}^FS
La seule règle : un commentaire ^FX ne peut pas contenir de ^ ou ~ — ces caractères terminent le commentaire et démarrent la commande suivante.
Modifications courantes¶
- Agrandir le prix
Recherchez le
^CF0,28avant la ligne{price}et augmentez le nombre, par exemple^CF0,40.- Déplacer un élément
Modifiez ses nombres
^FO. Pour décaler la marque vers le bas, augmentez le deuxième nombre dans^FO180,8(le8).- Ajouter une nouvelle ligne de texte
Copiez une ligne
^FO…^FD…^FS, donnez-lui une valeuryplus grande pour qu’elle se situe plus bas, et modifiez le contenu ou la variable.- Agrandir le code QR
Augmentez le dernier nombre dans
^BQN,2,2(essayez^BQN,3,3). S’il est coupé, donnez-lui plus d’espace ou déplacez-le vers la gauche/le haut avec son^FO.- Ajouter une ligne de séparation
Utilisez une boîte graphique.
^FO0,40^GB540,2,2^FStrace une fine ligne horizontale de 540 points de large.
Prévisualiser et tester avant l’impression¶
Vous disposez de deux moyens simples pour vérifier un design avant d’utiliser de vraies étiquettes :
Dans Gem Logic : à chaque enregistrement, une image d’aperçu de l’étiquette apparaît sous le champ de design. Utilisez-la comme principale boucle de rétroaction.
En ligne : collez votre ZPL dans le visualiseur Labelary gratuit pour obtenir un rendu instantané à différentes tailles d’étiquette. (Remplacez d’abord les
{variables}par un texte d’exemple, car Labelary ne connaît pas vos données produit.)
Si une étiquette réelle semble incorrecte — texte coupé, un QR qui ne se scanne pas, mauvaise taille — consultez la section étiquettes de Dépannage.
Référence rapide des commandes¶
Commande |
Ce qu’elle fait |
|---|---|
|
Début / fin de l’étiquette. Tout se trouve entre ces deux commandes. |
|
Largeur d’impression en points. |
|
Longueur d’étiquette (hauteur) en points. |
|
Point d’origine de l’étiquette — le point d’origine (généralement |
|
Field origin — positionner l’élément suivant à x,y. |
|
Définir la hauteur de police par défaut ( |
|
Field data — le contenu à imprimer — fermé par un séparateur de champ. |
|
Commentaire — ignoré par l’imprimante. Ne peut pas contenir |
|
Media darkness (densité d’impression). Plus élevé signifie plus foncé. |
|
Code QR ; le dernier nombre est la taille. Les données commencent par |
|
Code-barres Code 128 ; |
|
Tracer un rectangle ou une ligne (largeur, hauteur, épaisseur en points). |
|
Encodage des caractères, afin que les symboles comme |
Pour le langage complet, Zebra publie un guide de commandes ZPL détaillé, mais les commandes ci-dessus couvrent presque toutes les étiquettes produit.