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 | 웹 링크, 자산 태그, 모바일 스캔 |
| EAN-13 | ^BE | 판매 시점(POS)의 소매 상품 |
| UPC-A | ^BU | 북미의 소매 상품 |
| Data Matrix | ^BX | 소형 부품, 전자 제품, 의료 분야 (GS1 DataMatrix) |
| PDF417 | ^B7 | 좁은 영역에 많은 데이터가 필요한 문서와 신분증 |
| 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 디자이너에는 AI를 하나씩 추가하며 데이터를 만들고 라벨에 반영하기 전에 검증해 주는 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
^XZData Matrix와 PDF417
^BX는 Data Matrix를 인쇄합니다. 두 번째 파라미터는 각 모듈의 크기(도트 단위)이며, 품질 수준 200은 표준 ECC 200 버전을 선택합니다. 아주 작은 정사각형에 많은 데이터를 저장할 수 있어 소형 부품과 의료 기기에 흔히 쓰입니다. ^B7은 문서와 신분증에 쓰이는 적층형 바코드인 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인치 라벨에 자주 쓰이는 바코드 종류를 하나씩 인쇄합니다. 뷰어에서 열어 데이터와 파라미터를 바꾸면서 바코드가 갱신되는 모습을 확인해 보세요.
^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의 모듈 너비를 늘리세요.
- 여백(quiet zone) 부족. 선형 바코드는 양쪽에 빈 공간이 필요하며, 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 및 기타 자주 쓰이는 바코드를 렌더링합니다. 미리보기만으로 스캔 성능을 증명할 수는 없으므로, 실제로 사용하는 스캐너로 인쇄된 라벨을 테스트하세요.