Zebra(ZPL)ラベルのデザイン¶
Zebraラベルプリンターは通常の文書を理解しません。代わりに、**ZPL**(Zebra Programming Language)と呼ばれる小規模なテキストコマンド群を読み取ります。ZPLデザインは、ラベル上に何をどこに配置するかをプリンターに指示するテキストブロックです。ここにテキスト行を、そこに価格を、隅にQRコードを、といった具合です。
本ページではZPLをゼロから解説しますので、他者の助けを借りずに製品ラベルの読み取り、編集、作成ができるようになります。ラベルのデザインは の カスタムZebra製品ラベルデザイン フィールドで行います(プリンター設定 をご参照ください)。
ちなみに
通常、白紙から始めることはほとんどありません。Gem Logicは全てのラベルに動作するデフォルトデザインを用意しています。最も早く学ぶ方法は、そのデフォルトを開き、一箇所を変更し、保存してプレビュー画像を確認することです。理想的な見た目になるまで繰り返してください。
クイックスタート¶
に移動し、カスタムZebra製品ラベルデザイン フィールドを探してください。
小さな変更を加えてください(例:行を移動したり、価格を大きくしたり)。
保存 をクリックしてください。Gem Logicが自動的にラベルの**プレビュー画像**を生成します。
プレビューを確認してください。間違っている場合は、調整して再度保存してください。
実験中は実際のプリンターには何も送信されません。プレビューはデザインから生成されるため、一枚もラベルを印刷する前に安全に試行錯誤できます。
ZPLラベルの構成方法¶
全てのラベルは ^XA で始まり ^XZ で終わります。その間の全てがラベルの内容を記述します。コマンドは常にキャレット ^``(または時にはチルダ ``~)で始まります。
^XA (start of the label)
... commands that build the label ...
^XZ (end of the label)
内部で最も一般的なパターンは、**「位置に移動し、そこに何かを印刷する」**です:
^FO50,30^FDHello^FS
この一行は「位置50,30に移動して"Hello"というテキストを印刷する」という意味です。分解すると:
^FO50,30— Field Origin: x=50、y=30に移動します(次に来る要素の左上隅)。^FDHello— Field Data: 実際に印刷する内容。^FS— Field Separator: この要素の終わりを示します。フィールドは必ず^FSで閉じてください。
これがラベルデザインの90%です。「位置 + 内容」の行を積み重ねていくだけです。
ラベルサイズ、ドット数とミリメートル¶
Zebraプリンターではすべてをミリメートルではなく**ドット**で測定します。ほとんどのラベルプリンターは**203 DPI**で印刷されるため、以下のようになります:
1 mm ≈ 8ドット
1インチ = 203ドット
したがって、幅56 mm、高さ13 mmのラベルは、約``448``ドット幅、``104``ドット高になります。
印刷可能領域を設定する2つのコマンドがあります:
^PW— Print Width、印刷幅、ドット単位。^LL— Label Length、ラベル長(高さ)、ドット単位。
^PW448 (label is 448 dots wide ≈ 56 mm)
^LL104 (label is 104 dots tall ≈ 13 mm)
重要
ラベルの実際のサイズは、デザインの横にある 製品ラベル幅 および 製品ラベル長 フィールドからも取得されます。これらを実際のラベル在庫と同期させてください。{label_length} 変数は長さフィールドから自動的に入力されるため、デフォルトのデザインでは ^LL{label_length} が使用されています。
配置:座標グリッド¶
ラベルをグリッドとして考えてください。0,0 の点は**左上隅**です。最初の数値は**x**(右方向の距離)、2番目は**y**(下方向の距離)で、どちらもドット単位です。
^FO0,0 top-left corner
^FO200,0 200 dots to the right, same height
^FO0,40 left edge, 40 dots down
要素を移動するには、^FO の数値を変更します。xが大きいほど右、yが大きいほど下になります。SKUを1行目に、金属を2行目に配置する場合は、同じxを指定し、2行目のyを大きくします。
テキストの追加とサイズ設定¶
テキストを印刷する前に、通常は**フォントサイズ**を選択します。最も簡単な方法は ^CF0,h``(デフォルト**F**\ ontの変更)で、``h は文字の高さをドット単位で指定します:
^CF0,28 use ~28-dot-tall text from here on
^FO50,30^FDPrice^FS print "Price" at 50,30 in that size
^CF の後のすべての ^FD ... ^FS は、別のサイズを設定するまでそのサイズを使用します。したがって、1つのラベルに複数のサイズを混在させるには、大きなテキストの前に ^CF0,28、小さなテキストの前に ^CF0,14 を設定します。
ちなみに
**新しいテキスト行**を追加するには、Enterキーを押さず、下方に配置された別のフィールドを追加します。既存の行をコピーし、より大きな y 値を指定して、内容を変更してください。
製品データの挿入¶
ラベルデザインはすべての製品に再利用されるため、SKUや価格を手動で入力することはありません。代わりに、波括弧で囲んだ**変数**を挿入すると、ラベル印刷時にGem Logicが各製品の実際のデータに置き換えます。
^FO1,8^FD{item_sku}^FS prints this product's SKU
^FO180,50^FD{currency}{price}^FS prints e.g. €129
同じ変数は、アプリ内のデザインフィールドの直下にクリック可能なバッジとして表示されるため、編集中に利用可能な変数を確認できます。
利用可能な変数¶
製品
{brand}: ブランド名{product_title}: 製品タイトル{item_sku}: 製品SKU{ean_code}: EANバーコード(QRコードに使用){price}および{currency}: 価格と通貨記号{serial_number}: シリアル番号{year_of_manufacture}: 製造年{supplier_product_reference}: 仕入先製品リファレンス{supplier_reference}: 仕入先リファレンス
素材と宝石
{material_1}``から``{material_5}: 素材の詳細情報(重量、名称、宝石詳細){material_only_1}``から``{material_only_5}: 素材または宝石の名称のみ
属性
{attribute_1}``から``{attribute_5}: ``名前: 値``形式の属性{attribute_name_1}``から``{attribute_name_5}: 属性名のみ{attribute_value_1}``から``{attribute_value_5}: 属性値のみ
寸法
{weight}、{length}、{width}、{height}、{diameter}、{size}、{thickness}、{quality}
コレクション
{collections}: 商品が属するコレクション
カテゴリー
{categories}: 商品が属するカテゴリー(カンマ区切り)
原産国
{country_of_origin}: 商品の原産国
クラリティ
{clarity}: 商品の宝石クラリティ
原価コード
{encoded_cost}: 仕入原価を貴社専用の原価コードに変換したもの(文字は:menuselection:`設定 --> 全般設定`で設定)。ラベル上で実際の原価を読み取れないようにします。
**RFID**(RFIDタグ付きラベルにのみ必要)
{item_sku_epc_hex}: RFIDチップ用のEPC値としてエンコードされたSKU{item_sku_epc_word_count}: ZPL RFIDコマンドで使用されるEPC長
レイアウト
{label_length}: ラベル長設定から自動入力
QRコードとバーコード¶
QRコードは``^BQN``に続いて``QA,``で始まるデータフィールドを記述して追加します:
^FO0,30^BQN,2,2^FDQA,{ean_code}^FS
^FO0,30— QRコードの配置位置^BQN,2,2— QRコード。**最後の数字がサイズ**(倍率)です。大きく読み取りやすいコードにするには数字を上げ(3、4、5…)、スペースを節約するには下げてください。^FDQA,{ean_code}^FS— コード内のデータ。ここでは商品のEANをエンコードしています。
従来の1次元バーコードの場合は``^BCN``(Code 128)を使用します:
^FO20,20^BCN,60,Y,N,N^FD{ean_code}^FS
標準デザインの解説¶
これはGem Logicが提供する初期デザインです。各行にコメントが付いています。これを読むことで、各要素がどのように組み合わさっているかを最も早く理解できます。
^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
行ごとの説明:
^XA— ラベルの開始。^MD20— 印刷の濃さ。ラベルが薄い場合は値を上げ、文字がにじむ場合は下げます。^CI28— 文字エンコーディング。``€``やアクセント記号が正しく印刷されるようにします。^LL{label_length}— ラベルの高さ。長さ設定から自動的に入力されます。^LH0,0— ホームポジション:原点は左上隅です。^CF0,18— 以降の行のテキストサイズ〜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— 3つの素材。^CF0,28— 価格用の大きいテキスト。^FO180,50^FD{currency}{price}^FS— 価格、例:€129。^CF0,16— 中サイズのテキスト。^FO1,8^FD{item_sku}^FS— SKU、左上。^FO1,23^FD{supplier_product_reference}^FS— 仕入先商品参照番号。^FO50,60^FD{supplier_reference}^FS— 仕入先参照番号。^FO0,30^BQN,2,2その後^FDQA,{ean_code}^FS— QRコード(左下)とそのデータ(EAN)。^XZ— ラベルの終了。
警告
ZPLには行コメントがありません — メモを追加するためにセミコロン ; を使用しないでください。 ZPLは ^ (または ~)で始まるコマンドのみを理解するため、; の後に続くものはすべてコマンドの値の一部(またはラベルデータのノイズ)として読み取られます。これが "Value '20;' is not a valid number" や "Ignored unrecognized content" などのエラーの原因となり、余分な ; はレイアウトを静かに破壊したり崩したりする可能性があります。
メモを残すには、^FS``で閉じる ``^FX コメントコマンドを使用してください。プリンタはその内部のすべてを無視します:
^FX brand, near the top ^FS
^FO180,8^FD{brand}^FS
唯一のルール:^FX コメントには ^ または ~ を含めることができません — これらの文字はコメントを終了し、次のコマンドを開始します。
よくある変更¶
- 価格を大きくする
{price}行の前にある^CF0,28を見つけて、数値を大きくします。例:^CF0,40。- 何かを移動する
その
^FOの数値を変更します。ブランド名を下に移動するには、^FO180,8の2番目の数値(8)を大きくします。- 新しいテキスト行を追加する
^FO…^FD…^FS行をコピーし、より大きいy値を与えて下に配置し、内容または変数を変更します。- QRコードを大きくする
``^BQN,2,2``の最後の数値を増やします(``^BQN,3,3``を試してください)。切れてしまう場合は、スペースを広げるか、``^FO``で左/上に移動させてください。
- 区切り線を追加する
グラフィックボックスを使用します。``^FO0,40^GB540,2,2^FS``は540ドット幅の細い横線を描画します。
印刷前のプレビューとテスト¶
実際のラベルを使用する前に、デザインを確認する簡単な方法が2つあります。
Gem Logic内で: 保存するたびに、デザインフィールドの下にラベルのプレビュー画像が表示されます。これをメインのフィードバックループとしてご利用ください。
オンライン: 無料の`Labelaryビューアー <https://labelary.com/viewer.html>`_にZPLを貼り付けると、さまざまなラベルサイズでの即座のレンダリングを確認できます。(Labelaryは製品データを認識しないため、まず``{variables}``をサンプルテキストに置き換えてください。)
実際のラベルに問題がある場合(テキストが切れている、QRがスキャンできない、サイズが間違っているなど)は、:doc:`troubleshooting`のラベルセクションをご参照ください。
コマンドクイックリファレンス¶
コマンド |
機能 |
|---|---|
|
ラベルの開始/終了。すべてのコンテンツはこの間に配置されます。 |
|
印刷幅(ドット単位)。 |
|
ラベルの長さ(高さ、ドット単位)。 |
|
ラベルホーム — 原点(通常は``0,0``)。 |
|
フィールド原点 — 次の要素をx,yに配置します。 |
|
後続テキストのデフォルトフォント高さ(``h``ドット)を設定します。 |
|
フィールドデータ — 印刷するコンテンツ — フィールド区切り文字で閉じます。 |
|
コメント — プリンタは無視します。``^``や``~``を含むことはできません。 |
|
メディアダークネス(印刷濃度)。数値が大きいほど濃くなります。 |
|
QRコード; 最後の数値がサイズです。データは |
|
Code 128バーコード; |
|
ボックスまたはラインを描画します(幅、高さ、太さをドット単位で指定)。 |
|
文字エンコーディング。 |
完全な言語仕様については、ZebraがZPLコマンドの完全ガイドを公開していますが、上記のコマンドでほぼすべての商品ラベルに対応できます。