ZPLバーコード:Code 128・QR
ZPLCraft2026年9月30日 更新

サーマルラベルの多くは、バーコードのために存在します。ZPLには一般的なシンボロジーごとに専用のコマンドがあり、プリンターがネイティブ解像度でバーを自ら描画するため、ZPLバーコードはバーコード画像よりくっきり印刷されます。
このガイドでは、実際によく使うコマンドを紹介します。サイズ指定の^BY、Code 128とGS1-128の^BC、QRコードの^BQ、EAN-13の^BE、Data Matrixの^BX、PDF417の^B7について、動作するサンプルと、スキャンできるかどうかを左右するサイズの決め方を解説します。
どのZPLバーコードコマンドを使うか
| シンボロジー | コマンド | 主な用途 |
|---|---|---|
| Code 128 | ^BC | SKU、注文番号、追跡番号など、あらゆる英数字データ |
| GS1-128 | ^BC … D | GS1アプリケーション識別子を使う物流データ、SSCCパレットラベル |
| QR code | ^BQ | Webリンク、資産タグ、モバイルでのスキャン |
| EAN-13 | ^BE | 店頭の小売商品(POS) |
| UPC-A | ^BU | 北米の小売商品 |
| Data Matrix | ^BX | 小さな部品、電子機器、医療分野(GS1 DataMatrix) |
| PDF417 | ^B7 | 小さな領域に多くのデータが必要な書類やID |
| Code 39 | ^B3 | 旧来の産業用・自動車向けシステム |
| Interleaved 2 of 5 | ^B2 | 出荷用カートン(ITF-14) |
^BYでバーコードのサイズを指定する
^BYは、それ以降のバーコードの既定値を設定します。モジュール幅(最も細いバーの幅、ドット単位)、比率を使うシンボロジーでの太いバーと細いバーの比率、そしてバーの高さです。リニアバーコードでは、シンボル全体がモジュール幅に比例して拡大縮小するため、モジュール幅がほぼすべてを決めます。
^BYw,r,h
^BY2,3,100203 dpiでは1ドットが0.125 mmなので、モジュール幅2では0.25 mmのバー、モジュール幅3では0.375 mmのバーになります。ハンドヘルドスキャナーは通常2ドットのモジュールを問題なく読み取れます。離れた場所からスキャンするラベルや曲面上のラベルでは、3以上が有利です。モジュールは整数ドットでなければならないため、スキャンの挙動を変えずにバーコードを任意の幅に引き伸ばすことはできません。
^BCによるCode 128
Code 128は英字、数字、記号をコンパクトにエンコードでき、SKUや注文番号の定番の選択肢です。^BCには、向き、バーの高さ、人が読める行を印刷するかどうか(上か下か)、モードを指定します。チェック文字はプリンターが自動的に計算します。
^XA
^BY2,3,90
^FO40,40^BCN,90,Y,N,N^FDSKU-100245^FS
^XZ^BCモードDによるGS1-128
GS1-128は、GTINの(01)、バッチやロットの(10)、SSCCの(00)などのGS1アプリケーション識別子(AI)を使うCode 128です。モードDでは、^FDにAIを括弧付きで書きます。プリンターが必要なFNC1文字を挿入し、括弧はエンコードデータに含めず、人が読める行にだけ印刷します。
^XA
^BY2
^FO40,40^BCN,110,Y,N,N,D^FD(01)09520123456788(10)LOT7^FS
^XZGS1データには、固定長のAI、チェックデジット、使用できる文字といった厳格な規則があります。ZPLCraftのデザイナーにはGS1アシスタントがあり、AIを1つずつ選んでデータを組み立て、ラベルに反映する前に検証します。

^BQによるQRコード
^BQN,2,6は、通常の向き、QRモデル2、倍率6(各モジュールが6 × 6ドット)を選択します。フィールドデータは、誤り訂正レベルと入力モードの後にカンマが続く形で始まります。LA,はレベルLと自動入力を意味します。コードがこすれたり一部が隠れたりするおそれがある場合は、LではなくHまたはQを使用してください。
^XA
^FO40,40^BQN,2,6^FDLA,https://example.com/p/100245^FS
^XZ^BEと^BUによるEAN-13とUPC-A
EAN-13では最初の12桁を送ればプリンターがチェックデジットを追加します。^BUのUPC-Aも、11桁で同じように動作します。小売用バーコードには、GS1から自社に割り当てられたGTINを使用する必要があり、小売店が求めるサイズより小さく縮小してはいけません。
^XA
^BY3
^FO40,40^BEN,90,Y,N^FD590123412345^FS
^XZData MatrixとPDF417
^BXはData Matrixを印刷します。2番目のパラメーターは各モジュールのサイズ(ドット単位)で、品質レベル200は標準のECC 200を選択します。非常に小さな正方形に多くのデータを格納できるため、小さな部品や医療機器でよく使われます。^B7は、書類やIDで使われるスタック型バーコードのPDF417を印刷します。パラメーターで行の高さと誤り訂正レベルを設定します。
^XA
^FO40,40^BXN,8,200^FD100245-LOT7^FS
^FO300,40^BY2^B7N,6,3,,,N^FDORDER 100245 / 3 PARCELS^FS
^XZ動作するバーコードのサンプル
このラベルは、203 dpiの4インチラベルに、一般的なシンボロジーを1つずつ印刷します。ビューアで開いてデータやパラメーターを変更すると、バーコードが更新される様子を確認できます。
^XA
^PW812
^LL1000
^CI28
^CF0,28
^FO40,30^FDCode 128^FS
^BY2,3,90
^FO40,70^BCN,90,Y,N,N^FDSKU-100245^FS
^FO470,30^FDQR code^FS
^FO470,60^BQN,2,6^FDLA,https://example.com/p/100245^FS
^FO40,260^FDEAN-13^FS
^BY3
^FO40,300^BEN,90,Y,N^FD590123412345^FS
^FO470,260^FDData Matrix^FS
^FO470,300^BXN,8,200^FD100245-LOT7^FS
^FO40,500^FDGS1-128^FS
^BY2
^FO40,540^BCN,110,Y,N,N,D^FD(01)09520123456788(10)LOT7^FS
^FO40,730^FDPDF417^FS
^BY2
^FO40,770^B7N,6,3,,,N^FDORDER 100245 / 3 PARCELS^FS
^XZ
ZPLを書かずにバーコードを作成する
ZPLCraftのデザイナーでは、「コード」パネルからCode 128、QR Code、「EAN / GS1」を追加します。「プロパティ」パネルには、シンボロジー、内容、モジュール幅とバーの高さ(ドット単位)、人が読めるテキストの表示有無といった、ZPLコマンドと同じ設定があります。「バーコードのサイズを維持」を使うと、内容がスプレッドシートから来る場合に便利なように、値が変わっても現在の寸法内に収まります。

GS1バーコードでは、GS1アシスタントがアプリケーション識別子を一覧から選ばせ、長さとチェックデジットを検証し、適用前に正規化された出力を表示します。
ZPLバーコードがスキャンできない理由
- モジュール幅が小さすぎる。203 dpiで1ドットのモジュールは0.125 mmで、多くのスキャナーは分解できません。^BYのモジュール幅を大きくしてください。
- クワイエットゾーンがない。リニアバーコードは両側に余白が必要で、Code 128ではモジュール幅の10倍以上です。テキストやボックスをバーから離してください。
- バーコードが画像として印刷されている。ビットマップとして拡大縮小したバーコードは、バーの幅が不揃いになることがあります。ネイティブのZPLバーコードコマンドならこの問題を避けられます。
- プリンターの解像度が違う。203 dpi用に書かれたZPLを300 dpiのプリンターで印刷すると、意図した約3分の2の大きさで印刷され、モジュールがスキャナーの読み取れる大きさを下回ることがあります。
- 印刷濃度や速度。バーがにじんだりかすれたりするのは、デザインの問題ではなく、プリンターの濃度や速度の設定が原因であることがよくあります。
ZPLバーコードに関するよくある質問
ZPLバーコードを大きくするには?
リニアバーコードでは^BYのモジュール幅、QRコードでは^BQの倍率、Data Matrixでは^BXのモジュールサイズを大きくします。バーを高くするには、高さのパラメーターを大きくします。幅は常に整数ドット単位で変化します。
チェックデジットはプリンターが計算しますか?
必要とするシンボロジーについては計算します。Code 128はチェック文字を自動的に追加し、^BEと^BUは最初の12桁または11桁からEAN-13とUPC-Aのチェックデジットを計算します。
配送ラベルにはどのバーコードを使えばよいですか?
運送業者の仕様に従ってください。運送業者の追跡バーコードは通常Code 128またはGS1-128で、多くの運送業者がMaxiCodeやPDF417などの2Dコードも追加します。
プリンターなしでZPLバーコードをプレビューできますか?
はい。ZPLビューアは、Code 128、QR、EAN、UPC、Data Matrix、PDF417などの一般的なシンボロジーをブラウザー内でレンダリングします。プレビューではスキャン性能は証明できないため、実際に使うスキャナーで印刷したラベルをテストしてください。