ZPL 폰트: ^A 명령어, 내장 폰트와 예제

2026년 9월 30일 업데이트

ZPL 폰트 명령어와 스케일러블 폰트 0, 비트맵 폰트 A와 D, OCR-B, UTF-8 텍스트가 인쇄된 감열 라벨

Zebra 라벨의 모든 텍스트는 ^A 명령어(또는 ^CF로 지정한 기본값)로 선택한 프린터 폰트로 그려집니다. 폰트를 제대로 다루려면 세 가지가 중요합니다. 알맞은 내장 폰트를 고르고, 포인트가 아닌 프린터 도트 단위로 크기를 지정하며, 프린터가 전송한 문자를 실제로 그릴 수 있는지 확인하는 것입니다.

이 가이드에서는 ^A 구문, 모든 내장 폰트와 기본 크기, 203 dpi와 300 dpi 사이의 크기 변화, ^CI28을 사용한 다국어 문자 처리, 프린터에 저장하는 사용자 지정 TrueType 폰트를 다룹니다. 아래 예제를 무료 ZPL 뷰어에서 열어 실시간으로 수정해 볼 수 있습니다.

^A 폰트 명령어

필드는 필드 데이터 바로 앞에 지정된 폰트를 사용합니다. 이 명령어는 폰트 이름, 방향, 그리고 도트 단위의 높이와 너비를 받습니다:

^Afo,h,w
  • f — 폰트 이름: 스케일러블 폰트는 0, 비트맵 폰트는 A–H와 P–V, 또는 ^CW로 지정한 한 글자 별칭입니다.
  • o — 방향: N은 정방향, R은 시계 방향 90° 회전, I는 180° 반전, B는 아래에서 위로 읽는 방향(270°)입니다.
  • h — 문자 높이(도트).
  • w — 문자 너비(도트). 생략하면 프린터가 높이에서 자동으로 계산합니다.

실무에서 자주 쓰는 방식은 ^CF로 기본값을 한 번 지정한 뒤, 다른 크기가 필요한 필드에서만 ^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 dots/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 폰트 예제

이 라벨은 일반적인 내장 폰트별로 한 줄씩과 회전된 필드 하나를 출력합니다. 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 pt 줄은 203 dpi에서 약 34도트, 300 dpi에서 약 50도트입니다. 프린터 해상도가 다른 프린터로 라벨을 옮길 때는 모든 폰트 높이, 너비, 위치를 같은 비율(300 ÷ 203 ≈ 1.48)로 조정하세요.

^CF로 기본 폰트 지정하기

^CF 명령어는 자체 ^A가 없는 이후의 모든 필드에 적용되는 기본 폰트를 바꿉니다. ^CF0,30은 30도트 크기의 폰트 0을 기본값으로 만들고, ^CFA,18은 두 배 크기의 비트맵 폰트 A로 전환합니다. 포맷 맨 위에서 기본값을 지정하면 각 필드가 짧아지고 라벨을 관리하기 쉬워집니다.

악센트 문자, 유니코드, 다국어 문자

기본적으로 많은 프린터는 필드 데이터를 구형 1바이트 코드 페이지로 해석하므로 악센트 문자, 통화 기호, 비라틴 문자가 잘못된 문자로 출력될 수 있습니다. 포맷 앞부분에 ^CI28을 추가하면 필드 데이터가 UTF-8임을 프린터에 알려 줍니다.

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

인코딩은 문제의 절반만 해결합니다. 선택한 폰트에 해당 글리프도 있어야 합니다. 내장 폰트 0은 서유럽 문자를 지원하지만, 한국어, 중국어, 일본어, 아랍어, 키릴 문자는 대개 프린터에 유니코드 TrueType 폰트를 설치해야 합니다. 문자를 안전하게 입력할 수 없는 경우 ^FH를 사용해 ^FD 안에 16진수 이스케이프로 표기할 수 있습니다.

사용자 지정 TrueType 폰트: ^A@와 ^CW

최신 Zebra 프린터 대부분은 플래시 메모리(보통 E: 드라이브)에 TrueType 또는 OpenType 폰트를 저장할 수 있습니다. Zebra Setup Utilities나 ~DY 다운로드 명령어로 폰트를 업로드한 다음, 예를 들어 ^A@N,40,40,E:ARIAL.TTF처럼 ^A@로 파일 이름을 지정해 호출합니다.

라벨에서 같은 폰트를 여러 번 쓴다면 ^CW로 한 글자 별칭을 지정해 전체 경로 대신 ^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 뷰어는 내장 폰트에 대해 같은 셀 크기와 메트릭을 가진 라이선스 대체 폰트를 사용하며, 그릴 수 없는 항목은 경고로 표시합니다. 미리보기는 레이아웃과 맞춤 확인용으로 사용하고, 간격과 줄 바꿈은 테스트 인쇄 한 번으로 확인하세요.

ZPL 폰트 관련 질문

ZPL의 기본 폰트는 무엇인가요?

포맷에서 ^CF나 ^A로 지정하지 않으면 프린터는 비트맵 폰트 A를 기본으로 사용합니다. 실제로는 거의 모든 라벨이 스케일러블 폰트인 CG Triumvirate Bold Condensed, 즉 폰트 0을 명시적으로 지정합니다.

ZPL에서 텍스트를 굵게 만들려면 어떻게 하나요?

ZPL에는 굵게 속성이 없습니다. 폰트 0은 이미 굵은 콘덴스드 서체입니다. 텍스트를 더 굵게 하려면 높이에 비해 너비를 늘리거나, 굵은 TrueType 폰트를 프린터에 설치하고 ^A@로 선택하세요.

텍스트가 예상과 다른 크기로 출력되는 이유는 무엇인가요?

라벨이 다른 프린터 해상도에 맞춰 작성되었거나, 비트맵 폰트가 가장 가까운 정수 배율로 맞춰졌기 때문일 수 있습니다. 정확한 크기가 필요하면 폰트 0을 사용하고, 203 dpi와 300 dpi 사이를 옮길 때는 도트 값을 비율에 맞게 조정하세요.

악센트 문자나 비라틴 문자가 잘못 출력되는 이유는 무엇인가요?

^CI28을 추가해 프린터가 필드 데이터를 UTF-8로 읽게 하고, 선택한 폰트에 해당 문자가 있는지 확인하세요. 중국어나 아랍어 같은 문자는 대개 프린터에 저장된 유니코드 TrueType 폰트가 필요합니다.

출처