Conversion de langages d'imprimante
Convertir TSPL en ZPL : équivalences de commandes et guide de migration (TSC → Zebra)
Comment les commandes TSPL se traduisent en ZPL, les pièges des unités, polices et largeurs de barres, une étiquette réelle avant/après et comment porter une bibliothèque TSC sur des imprimantes Zebra.
La migration inverse survient quand une entreprise standardise ses lignes industrielles sur Zebra, hérite d'étiquettes TSC lors d'une acquisition, ou doit fournir du ZPL parce que le WMS d'un client l'envoie directement à l'imprimante. TSPL est un langage plus lisible, donc la traduction vers ZPL consiste surtout à respecter la structure plus stricte de ZPL : tout entre ^XA…^XZ, chaque champ ouvert par ^FO et fermé par ^FS.
Équivalences de commandes
| Opération | TSPL (TSC) | ZPL (Zebra) |
|---|---|---|
| Début / fin d'étiquette | CLS … PRINT 1 | ^XA … ^XZ |
| Taille de l'étiquette | SIZE 100 mm,75 mm GAP 3 mm,0 | ^PW800 ^LL600 (points) |
| Position d'un champ | Deux premiers paramètres de TEXT/BARCODE (x,y en points) | ^FO50,40 (x,y en points) |
| Texte | TEXT 50,40,"0",0,12,12,"Bonjour" | ^A0N,40,40 ^FDBonjour^FS |
| Code 128 | BARCODE 50,150,"128",80,1,0,2,4,"12345" | ^BY2 ^BCN,80,Y,N,N ^FD12345^FS |
| Code QR | QRCODE 400,150,M,6,A,0,"données" | ^BQN,2,6 ^FDQA,données^FS |
| Data Matrix | DMATRIX 400,150,120,120,"données" | ^BXN,6,200 ^FDdonnées^FS |
| Cadre / ligne | BOX x,y,xend,yend,2 / BAR x,y,w,h | ^GB300,2,2^FS |
| Copies | PRINT 10,1 | ^PQ10 |
| Noirceur / vitesse | DENSITY 10 SPEED 4 | ^MD15 ^PR4 |
Ce qui change réellement
- Taille de l'étiquette : SIZE en millimètres de TSPL devient ^PW/^LL en points — multipliez par 8 à 203 dpi ou 11,8 à 300 dpi et arrondissez.
- Polices : les polices bitmap 1–8 de TSPL n'ont pas de jumelle ZPL ; associez-les à ^A0 (vectorielle) avec une hauteur choisie pour reproduire la taille imprimée, ou aux polices ^A A–H pour un rendu bitmap.
- Codes-barres : les largeurs étroite/large par commande de TSPL deviennent un seul ^BY avant le code-barres ; si deux codes-barres de l'étiquette utilisent des largeurs différentes, il faut deux déclarations ^BY.
- QR et Data Matrix : TSPL les dimensionne en largeur de cellule ou en pixels ; ZPL par grossissement (^BQ) ou module (^BX). Vérifiez la taille imprimée, pas les chiffres.
- Rotation : TSPL pivote par champ (0/90/180/270) ; ZPL utilise ^FW pour toute l'étiquette ou la lettre d'orientation dans chaque commande ^A/^B (N, R, I, B).
Avant et après : la même étiquette
SIZE 60 mm,40 mm GAP 2 mm,0 CLS TEXT 20,20,"3",0,1,1,"LOC-A01-03" BARCODE 20,60,"128",80,1,0,2,2,"LOCA0103" PRINT 1
^XA ^PW480 ^LL320 ^FO20,20 ^A0N,30,30 ^FDLOC-A01-03^FS ^FO20,60 ^BY2 ^BCN,80,Y,N,N ^FDLOCA0103^FS ^PQ1 ^XZ
Liste de contrôle de migration
- Décider une fois de la stratégie de polices cible (^A0 vectorielle ou ^A bitmap) et l'appliquer à toute la bibliothèque par cohérence.
- Vérifier la largeur de module ^BY par rapport à la résolution de la tête Zebra ; une largeur qui se lisait sur la TSC peut être trop étroite à 300 dpi.
- Remplacer les logos BITMAP de TSPL par ^GF ou, de préférence, par des graphiques stockés (^DG) pour garder les travaux légers.
- Si l'étiquette est alimentée par un WMS qui parle déjà ZPL, garder les champs variables dans le même ordre pour éviter un nouveau mappage.
Comment EtikStudio procède
Importez le travail TSPL, corrigez visuellement ce qui doit l'être, sélectionnez un profil Zebra et exportez le ZPL. Les polices sont appariées par métriques imprimées, ^BY est dérivé de la barre étroite que vous aviez, et la ligne lisible est régénérée depuis le même champ de données, si bien que les deux ne divergent jamais.
Les exemples de commandes sont simplifiés pour la clarté ; la syntaxe exacte varie selon le modèle et le firmware. Testez toujours sur l'imprimante cible.