ZPL이란? Zebra 프로그래밍 언어 해설
ZPLCraft2026년 8월 17일 업데이트

ZPL(Zebra 프로그래밍 언어)은 Zebra 및 호환 감열 프린터가 라벨을 기술하는 데 사용하는 명령 언어입니다. ZPL 프린터는 완성된 이미지 대신 짧은 일반 텍스트 명령 블록을 받아 이를 해석하고 설정된 프린트헤드 해상도로 라벨을 렌더링합니다.
ZPL은 ERP 시스템, 스크립트, 브라우저 도구 같은 애플리케이션에서 생성할 수 있는 간결한 텍스트 명령을 사용합니다. 지원 여부는 모델과 구성에 따라 다릅니다. Zebra는 개별 모델 사양에ZPL II 지원을 명시하며, 일부 타사 프린터는 문서화된 ZPL 호환 에뮬레이션 모드를 제공합니다.
ZPL 라벨은 어떻게 생겼나요?
ZPL 문서는 각각 캐럿(^)으로 시작하는 명령어의 시퀀스입니다. 모든 라벨은 ^XA(형식 시작)과 ^XZ(형식 종료) 사이에 감싸입니다. 다음은 완전하고 실제로 작동하는 라벨입니다:
^XA
^CF0,40
^FO50,50^FDHELLO WORLD^FS
^FO50,110^GB700,4,4^FS
^BY3,2,100
^FO150,150^BCN,100,Y,N,N^FD12345678^FS
^XZ줄별로 읽어보면:
^XA…^XZ— 라벨 형식을 열고 닫습니다. 그 사이의 모든 것이 라벨 하나를 기술합니다.^CF0,40— 기본 폰트를 스케일러블 폰트 0으로 설정하고 높이를 40 도트로 지정합니다.^FO50,50— 필드 원점(Field Origin): 다음 필드를 왼쪽에서 50 도트, 위에서 50 도트 위치에 배치합니다.^FDHELLO WORLD^FS— 필드 데이터(Field Data) 뒤에 오는 필드 구분자(Field Separator): 필드의 실제 내용입니다.^GB700,4,4— 너비 700 도트, 높이 4 도트의 그래픽 박스(Graphic Box)를 그립니다 — 여기서는 수평 구분선으로 사용됩니다.^BY3,2,100그다음^BCN,100,Y,N,N— 바코드 기본값(모듈 너비, 비율, 높이)을 설정한 후, 데이터 Code 128 바코드를12345678로 렌더링하고 아래에 인간이 읽을 수 있는 줄을 표시합니다.
픽셀이 아닌 도트: DPI 이해하기
ZPL의 모든 좌표와 크기는 프린터 도트로 측정되며, 도트의 물리적 크기는 프린트헤드 해상도에 따라 달라집니다. 일반적인 해상도는 203 dpi(8 도트/mm), 300 dpi(12 도트/mm), 600 dpi(24 도트/mm)입니다. 203 dpi 프린터에서 4×6인치 배송 라벨은 812×1218 도트이고, 300 dpi 프린터에서 같은 라벨은 1200×1800 도트입니다. 한 해상도용 ZPL은 다른 해상도에서 더 작거나 크게 인쇄되므로 DPI 불일치는 "새 프린터에서 라벨이 이상하게 보인다"는 문제의 흔한 원인입니다. 크기는 대상 DPI에 맞춰야 합니다.
ZPL vs. EPL vs. 드라이버 인쇄
일부 레거시 데스크탑 프린터가 사용하는 더 오래되고 단순한 언어인 EPL(Eltron 프로그래밍 언어)은 일부 구형 프린터 또는 명시적으로 호환되는 프린터에서 사용됩니다. ZPL과 EPL 지원은 모델과 펌웨어에 따라 다르므로 언어를 선택하기 전에 제조사 문서를 확인하세요. 프린터 언어를 직접 출력하는 방식의 대안은 드라이버 기반 인쇄입니다. 이 방식에서는 Windows 또는 CUPS 드라이버가 렌더링된 페이지를 설정된 프린터에 맞게 준비합니다. 원시 ZPL은 좌표를 직접 제어하고 텍스트 페이로드를 작게 유지할 수 있지만, 장치나 운영체제가 호환되는 원시 ZPL 경로를 제공하지 않을 때는 드라이버 기반 인쇄가 더 적합할 수 있습니다.
ZPL 작성 방법 또는 생성 방법
일회성 라벨의 경우 명령어 레퍼런스를 참고하면서 직접 ZPL을 작성하는 것도 충분히 가능합니다. 이 언어는 작고, 몇 가지 명령어(^FO, ^FD, ^A, ^BC, ^GB)만으로도 대부분의 실제 라벨을 커버할 수 있습니다. 레이아웃을 반복적으로 수정해야 할 때부터 힘들어집니다 — 위치를 조금 바꿀 때마다 도트 좌표를 편집하고 파일을 재전송하고 라벨 용지를 낭비해야 합니다.
이 문제를 해결하는 것이 시각적 편집기입니다. ZPLCraft의 실제 크기 캔버스에서 텍스트, 바코드, 선, 박스를 배치하고 선택한 프린터 DPI에 맞춘 ZPL을 생성할 수 있습니다. 바코드 데이터, 치수, 여백은 선택한 심볼로지의 요구 사항을 충족해야 하며, 인쇄 결과는 대상 프린터와 스캐너로 확인해야 합니다. 이미 ZPL을 전송하는 시스템으로 코드를 내보내거나, 브라우저에서 WebUSB 인쇄를 사용 할 수 있습니다. 단, 브라우저와 운영체제 및 프린터가 호환되고 점유 가능한 인터페이스를 제공해야 합니다.
자주 묻는 기본 질문
ZPL은 무료로 사용할 수 있나요?
Zebra는 ZPL II 프로그래밍 가이드를 공개 참고 자료로 제공하며, 텍스트 편집기로 ZPL 명령을 작성할 수 있습니다. 프린터 소프트웨어, 폰트, 펌웨어, 상표에는 각각 별도의 라이선스 조건이 적용될 수 있습니다.
ZPL 파일 확장자는 무엇인가요?
필수 확장자는 없습니다 — ZPL은 일반 텍스트입니다. 실제로 .zpl, .txt와 .prn가 사용됩니다. 프린터는 신경 쓰지 않으며, 단지 바이트 스트림을 소비할 뿐입니다.
프린터 없이 ZPL을 미리볼 수 있나요?
예 — Labelary 같은 렌더링 서비스가 ZPL을 이미지로 변환하며, ZPLCraft 편집기는 디자인하는 동안 라벨의 실시간 미리보기를 표시하므로 레이아웃이 확정될 때만 라벨 용지를 소비합니다.
어떤 프린터가 ZPL과 호환되나요?
호환성은 모델과 구성에 따라 다릅니다. 제조사 사양에서 ZPL 또는 ZPL II 지원이나 문서화된 에뮬레이션 모드를 확인하고, 대상 DPI와 필요한 기능을 확인한 뒤 실제 출력 경로를 테스트하세요. USB 연결이나 TCP 포트 9100 지원만으로는 해당 프린터가 ZPL을 받아들인다는 것을 입증할 수 없습니다. 호환성과 권장 방법