TSPLからZPLへの変換:コマンド対応表と移行ガイド(TSC → Zebra)
TSPLコマンドをZPLに翻訳する方法、単位・フォント・バー幅の落とし穴、実際のラベルの変換前後、TSCのラベルライブラリをZebraプリンタへ持ち込む方法。
逆方向の移行は、企業が産業ラインをZebraに標準化するとき、買収でTSCのラベルを引き継いだとき、あるいは顧客のWMSがZPLをプリンタに直接送るためZPLで納品しなければならないときに起こります。TSPLは読みやすい言語なので、ZPLへの翻訳は主にZPLのより厳格な構造を守ることです:すべてを^XA…^XZの中に置き、各フィールドを^FOで開き^FSで閉じます。
コマンド対応表
| 操作 | TSPL(TSC) | ZPL(Zebra) |
|---|---|---|
| ラベルの開始/終了 | CLS … PRINT 1 | ^XA … ^XZ |
| ラベルサイズ | SIZE 100 mm,75 mm GAP 3 mm,0 | ^PW800 ^LL600(ドット) |
| フィールド位置 | TEXT/BARCODE の最初の2パラメータ(x,y ドット) | ^FO50,40(x,y ドット) |
| テキスト | TEXT 50,40,"0",0,12,12,"Hello" | ^A0N,40,40 ^FDHello^FS |
| Code 128 | BARCODE 50,150,"128",80,1,0,2,4,"12345" | ^BY2 ^BCN,80,Y,N,N ^FD12345^FS |
| QRコード | QRCODE 400,150,M,6,A,0,"data" | ^BQN,2,6 ^FDQA,data^FS |
| Data Matrix | DMATRIX 400,150,120,120,"data" | ^BXN,6,200 ^FDdata^FS |
| 枠/線 | BOX x,y,xend,yend,2 / BAR x,y,w,h | ^GB300,2,2^FS |
| 枚数 | PRINT 10,1 | ^PQ10 |
| 濃度/速度 | DENSITY 10 SPEED 4 | ^MD15 ^PR4 |
実際に変わるもの
- ラベルサイズ:TSPLのミリメートル指定SIZEはドット単位の^PW/^LLになります — 203 dpiなら8倍、300 dpiなら11.8倍して丸めます。
- フォント:TSPLのビットマップフォント1〜8にはZPLの対応物がありません。印刷サイズに合わせた高さで^A0(スケーラブル)に対応させるか、ビットマップ風の見た目なら^AフォントA〜Hに対応させます。
- バーコード:TSPLのコマンドごとの細/太幅は、バーコードの前の単一の^BYになります。ラベル上の2つのバーコードで幅が異なる場合は、^BY宣言が2つ必要です。
- QRとData Matrix:TSPLはセル幅またはピクセル寸法で、ZPLは倍率(^BQ)またはモジュール(^BX)でサイズを指定します。数値ではなく印刷サイズを確認してください。
- 回転:TSPLはフィールドごとに回転(0/90/180/270)します。ZPLはラベル全体に^FWを使うか、各^A/^Bコマンドの向き文字(N、R、I、B)を使います。
変換前と変換後:同じラベル
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
移行チェックリスト
- 対象フォント戦略(スケーラブル^A0かビットマップ^Aか)を一度決め、一貫性のためライブラリ全体に適用する。
- ^BYモジュール幅をZebraヘッドの解像度に照らして確認する。TSCで読めた幅が300 dpiでは細すぎることがある。
- TSPLのBITMAPロゴを^GFに、できればジョブを小さく保つため保存グラフィック(^DG)に置き換える。
- すでにZPLを話すWMSからラベルを供給している場合、再マッピングを避けるため可変フィールドを同じ順序に保つ。
EtikStudioでの方法
TSPLジョブをインポートし、必要なら視覚的に修正し、Zebraプロファイルを選んでZPLをエクスポートします。フォントは印刷メトリクスで照合され、^BYは以前の細バー幅から導出され、可読行は同じデータフィールドから再生成されるため、両者が食い違うことはありません。
コマンド例は分かりやすさのため簡略化しています。正確な構文はプリンタの機種とファームウェアにより異なります。必ず対象プリンタでテストしてください。