ZPLフォント:^Aコマンド・内蔵フォント・サンプル

2026年9月30日 更新

ZPLフォントコマンドと、スケーラブルフォント0、ビットマップフォントAとD、OCR-B、UTF-8テキストを示すサーマルラベルを並べた図

Zebraラベル上のすべての文字は、^Aコマンド(または^CFで設定したデフォルト)で選択したプリンターフォントで描画されます。フォントを正しく扱うポイントは主に3つです。適切な内蔵フォントを選ぶこと、サイズをポイントではなくプリンターのドット単位で指定すること、そして送信した文字をプリンターが描画できるようにすることです。

このガイドでは、^Aの構文、すべての内蔵フォントとそのネイティブサイズ、203 dpiと300 dpiでのサイズの違い、^CI28による多言語文字の扱い、プリンターに保存するカスタムTrueTypeフォントを解説します。下のサンプルは無料のZPLビューアで開き、その場で編集できます。

^Aフォントコマンド

フィールドには、そのフィールドデータの直前に指定したフォントが使われます。このコマンドはフォント名、向き、そしてドット単位の高さと幅を指定します。

^Afo,h,w
  • f — フォント名:0はスケーラブルフォント、A~HとP~Vはビットマップフォント、または^CWで割り当てた1文字のエイリアスです。
  • o — 向き:Nは通常、Rは時計回りに90°回転、Iは180°反転、Bは下から上への読み取り(270°)です。
  • h — 文字の高さ(ドット)。
  • w — 文字の幅(ドット)。省略すると、プリンターが高さから自動的に決定します。

実運用でよく使われるパターンは、^CFでデフォルトを1回設定し、異なるサイズが必要なフィールドだけ^Aで上書きする方法です。

^XA
^CF0,30
^FO40,40^FDDefault font 0 at 30 dots^FS
^FO40,90^A0N,60,60^FDLarger heading^FS
^FO40,170^A0B,40,40^FDRotated 270^FS
^XZ

ZPLの内蔵フォントとサイズ

Zebraプリンターには、1種類のスケーラブルなアウトラインフォントと、固定サイズのビットマップフォント群が内蔵されています。ビットマップフォントには、203 dpi(8ドット/mm)でのドット数で表されるネイティブの文字セルがあります。拡大はそのセルの整数倍でしかできないため、指定した高さは最も近い倍数に丸められます。

203 dpiでのネイティブセルサイズ付きZPL内蔵フォント一覧
フォント種類ネイティブセル(高さ × 幅、ドット)備考
0スケーラブル15 × 12CG Triumvirate Bold Condensed。任意のサイズを指定でき、ラベルでは最もよく使われます。
Aビットマップ9 × 5注意書きなどの小さな文字向け。大文字と小文字に対応。
Bビットマップ11 × 7大文字のみ。
C, Dビットマップ18 × 10CとDは同じサイズ。大文字と小文字に対応。
Eビットマップ28 × 15OCR-B。300 dpiプリンターでは42 × 20ドット。
Fビットマップ26 × 13大文字と小文字に対応。
Gビットマップ60 × 40見出し用の大きな文字。
Hビットマップ21 × 13OCR-A、大文字のみ。300 dpiプリンターでは34 × 22ドット。
P–Vビットマップ20 × 18 … 80 × 7120 × 18から80 × 71ドットまでの固定サイズ。一部のプリンターモデルで利用できます。

フォント0はもともと太字のコンデンスドフォントであるため、配送ラベルや倉庫ラベルの多くは、住所から大きな仕分けコードまですべてにこのフォントを使っています。

ZPLフォントの例

このラベルは、一般的な内蔵フォントそれぞれで1行ずつ印字し、さらに回転させたフィールドを1つ加えています。203 dpiで幅4インチのラベル用に作成されています。

^XA
^PW812
^LL620
^CI28
^FO40,30^A0N,50,50^FDFont 0 (scalable) at 50 dots^FS
^FO40,100^A0N,30,30^FDFont 0 at 30 dots^FS
^FO40,150^AAN,18,10^FDFont A 9x5, magnified x2^FS
^FO40,190^ABN,22,14^FDFONT B 11X7 X2^FS
^FO40,230^ADN,36,20^FDFont D 18x10 x2^FS
^FO40,290^AEN,28,15^FDFont E OCR-B^FS
^FO40,340^AFN,26,13^FDFont F 26x13^FS
^FO40,390^AGN,60,40^FDG 60x40^FS
^FO40,470^AHN,21,13^FDFONT H OCR-A^FS
^FO740,30^A0R,30,30^FDRotated with R^FS
^XZ

このフォントサンプルをZPLビューアで開く

ビューアでは高さと幅を変更でき、ビットマップフォントが整数倍ごとに段階的に切り替わる一方、フォント0は滑らかに拡大縮小される様子を確認できます。

ドット単位のフォントサイズ:203 dpiと300 dpi

ZPLではポイントやミリメートルではなく、すべてプリンターのドット単位で指定します。203 dpiのプリンターは1ミリメートルあたり8ドット、300 dpiのプリンターは12ドットです。そのため、同じ^A0N,40,40コマンドでも、203 dpiのプリンターでは高さ約5 mmの文字が印字されますが、300 dpiのプリンターでは約3.4 mmにしかなりません。

ポイントサイズをドットに換算するには、プリンター解像度を掛けて72で割ります。12ポイントの行は、203 dpiで約34ドット、300 dpiで約50ドットです。ラベルを別の解像度のプリンターに移すときは、すべてのフォントの高さ・幅・位置を同じ比率(300 ÷ 203 ≈ 1.48)で拡大縮小してください。

^CFでデフォルトフォントを設定する

^CFコマンドは、独自の^Aを指定していない以降のすべてのフィールドのデフォルトフォントを変更します。^CF0,30はフォント0の30ドットをデフォルトにし、^CFA,18はビットマップフォントAの2倍サイズに切り替えます。フォーマットの先頭でデフォルトを設定しておくと、各フィールドの記述が短くなり、ラベルの保守が楽になります。

アクセント記号、Unicode、多言語文字

多くのプリンターは、初期状態ではフィールドデータを従来のシングルバイト文字コードとして解釈するため、アクセント付き文字、通貨記号、ラテン文字以外の文字が誤った文字で印字されることがあります。フォーマットの先頭付近に^CI28を追加すると、フィールドデータがUTF-8であることをプリンターに伝えられます。

^XA
^CI28
^FO40,40^A0N,40,40^FDMüller GmbH — 25 €^FS
^XZ

文字コードの指定だけでは問題の半分しか解決しません。選択したフォントに該当する字形も含まれている必要があります。内蔵フォント0は西ヨーロッパの文字に対応していますが、中国語・日本語・韓国語・アラビア語・キリル文字は、通常、プリンターにUnicode対応のTrueTypeフォントをインストールする必要があります。安全に入力できない文字は、^FHを使うと^FD内に16進エスケープとして記述できます。

カスタムTrueTypeフォント:^A@と^CW

最近のZebraプリンターの多くは、フラッシュメモリ(通常はドライブE:)にTrueTypeまたはOpenTypeフォントを保存できます。Zebra Setup Utilitiesまたは~DYダウンロードコマンドでフォントをアップロードし、^A@でファイル名を指定して呼び出します(例:^A@N,40,40,E:ARIAL.TTF)。

ラベル内で同じフォントを何度も使う場合は、^CWで1文字のエイリアスを割り当てると、フルパスの代わりに^AZと書けます。ダウンロードしたフォントは送信先のプリンターにしか存在しないため、すべてのラベルを同じように印刷するには、運用しているすべてのプリンターに同じフォントファイルが必要です。

^XA
^CWZ,E:ARIAL.TTF
^FO40,40^AZN,40,40^FDArial via alias Z^FS
^FO40,100^A@N,40,40,E:ARIAL.TTF^FDArial by file name^FS
^XZ

ZPLプレビューでのフォントの表示

Zebraのプリンターフォントは独自仕様のため、オンラインビューアでピクセル単位まで完全に再現することはできません。ZPLCraftのビューアは、内蔵フォントに対して同じセルサイズと字形メトリクスを持つライセンス済みの代替フォントを使用し、描画できないものは警告として表示します。プレビューはレイアウトと収まり具合の確認に使い、文字間隔や改行はテスト印刷で1回確認してください。

ZPLフォントに関するよくある質問

ZPLのデフォルトフォントは何ですか?

フォーマットで^CFまたは^Aによる指定がない場合、プリンターはビットマップフォントAをデフォルトにします。実際には、ほぼすべてのラベルがスケーラブルフォントのCG Triumvirate Bold Condensedであるフォント0を明示的に指定しています。

ZPLで文字を太字にするにはどうすればよいですか?

ZPLに太字の属性はありません。フォント0はもともと太字のコンデンスドフォントです。さらに太くしたい場合は、高さに対して幅を大きくするか、太字のTrueTypeフォントをプリンターにインストールして^A@で選択してください。

文字が想定と違うサイズで印字されるのはなぜですか?

ラベルが別のプリンター解像度向けに作成されたか、ビットマップフォントが最も近い整数倍に丸められた可能性があります。正確なサイズが必要な場合はフォント0を使い、203 dpiと300 dpiを切り替えるときはドット値を拡大縮小してください。

アクセント付き文字やラテン文字以外の文字が正しく印字されないのはなぜですか?

^CI28を追加してプリンターにフィールドデータをUTF-8として読み取らせ、選択したフォントにその文字が含まれていることを確認してください。中国語やアラビア語などの文字は、通常、プリンターに保存したUnicode対応のTrueTypeフォントが必要です。

出典