ZPLバーコード:Code 128・QR

2026年9月30日 更新

サーマルラベル上にZPLコマンドから生成されたCode 128、QR、EAN-13、Data Matrixのバーコード

サーマルラベルの多くは、バーコードのために存在します。ZPLには一般的なシンボロジーごとに専用のコマンドがあり、プリンターがネイティブ解像度でバーを自ら描画するため、ZPLバーコードはバーコード画像よりくっきり印刷されます。

このガイドでは、実際によく使うコマンドを紹介します。サイズ指定の^BY、Code 128とGS1-128の^BC、QRコードの^BQ、EAN-13の^BE、Data Matrixの^BX、PDF417の^B7について、動作するサンプルと、スキャンできるかどうかを左右するサイズの決め方を解説します。

どのZPLバーコードコマンドを使うか

一般的なバーコードのシンボロジーとZPLコマンド
シンボロジーコマンド主な用途
Code 128^BCSKU、注文番号、追跡番号など、あらゆる英数字データ
GS1-128^BC … DGS1アプリケーション識別子を使う物流データ、SSCCパレットラベル
QR code^BQWebリンク、資産タグ、モバイルでのスキャン
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,100

203 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
^XZ

GS1データには、固定長のAI、チェックデジット、使用できる文字といった厳格な規則があります。ZPLCraftのデザイナーにはGS1アシスタントがあり、AIを1つずつ選んでデータを組み立て、ラベルに反映する前に検証します。

配送ラベル上のGS1-128 SSCCバーコードと、アプリケーション識別子00とその値を表示するGS1アシスタント
GS1アシスタントは、アプリケーション識別子を適用する前に検証します。

^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
^XZ

Data 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ビューアで開く

サンプルコードからCode 128、QR、EAN-13、Data Matrix、GS1-128、PDF417のバーコードをレンダリングしたZPLビューア
ZPLビューアでレンダリングしたサンプルラベル。

ZPLを書かずにバーコードを作成する

ZPLCraftのデザイナーでは、「コード」パネルからCode 128、QR Code、「EAN / GS1」を追加します。「プロパティ」パネルには、シンボロジー、内容、モジュール幅とバーの高さ(ドット単位)、人が読めるテキストの表示有無といった、ZPLコマンドと同じ設定があります。「バーコードのサイズを維持」を使うと、内容がスプレッドシートから来る場合に便利なように、値が変わっても現在の寸法内に収まります。

ZPLCraftエディターで選択されたCode 128バーコードと、内容、シンボロジー、モジュール幅、バーの高さの設定
バーコードのプロパティは、ZPLのパラメーターにそのまま対応します。

GS1バーコードでは、GS1アシスタントがアプリケーション識別子を一覧から選ばせ、長さとチェックデジットを検証し、適用前に正規化された出力を表示します。

ZPLラベルの作り方:ステップバイステップ解説 →

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などの一般的なシンボロジーをブラウザー内でレンダリングします。プレビューではスキャン性能は証明できないため、実際に使うスキャナーで印刷したラベルをテストしてください。

出典