ZPL을 TSPL로 변환: 명령 대응표와 마이그레이션 가이드 (Zebra → TSC)
ZPL 명령이 TSPL에 어떻게 대응되는지, 단위·폰트·바코드에서 무엇이 바뀌는지, 실제 라벨의 변환 전후, 그리고 재디자인 없이 Zebra 라벨 라이브러리를 TSC 프린터로 옮기는 방법.
Zebra에서 TSC로의 이동은 물류와 리테일에서 가장 흔한 프린터 마이그레이션입니다. TSC 장비는 가격이 낮고 기구부는 같은 라벨과 리본에 호환됩니다. 걸림돌은 언어입니다. ZPL과 TSPL은 같은 것 — 특정 위치의 텍스트, 바코드, 박스 — 을 완전히 다른 문법으로 기술하므로, 무언가가 대신 번역해 주지 않는 한 기존 ZPL 템플릿은 모두 다시 작성해야 합니다.
명령 대응표
| 작업 | ZPL (Zebra) | TSPL (TSC) |
|---|---|---|
| 라벨 시작 / 종료 | ^XA … ^XZ | CLS … PRINT 1 |
| 라벨 크기 | ^PW800 ^LL600 (도트) | SIZE 100 mm,75 mm GAP 3 mm,0 |
| 필드 위치 | ^FO50,40 (x,y 도트) | TEXT/BARCODE의 처음 두 매개변수 (x,y 도트) |
| 텍스트 | ^A0N,40,40 ^FDHello^FS | TEXT 50,40,"0",0,12,12,"Hello" |
| Code 128 | ^BY2 ^BCN,80,Y,N,N ^FD12345^FS | BARCODE 50,150,"128",80,1,0,2,4,"12345" |
| QR 코드 | ^BQN,2,6 ^FDQA,data^FS | QRCODE 400,150,M,6,A,0,"data" |
| Data Matrix | ^BXN,6,200 ^FDdata^FS | DMATRIX 400,150,120,120,"data" |
| 박스 / 선 | ^GB300,2,2^FS | BOX x,y,xend,yend,2 / BAR x,y,w,h |
| 매수 | ^PQ10 | PRINT 10,1 |
| 농도 / 속도 | ^MD15 ^PR4 | DENSITY 10 SPEED 4 |
실제로 바뀌는 것
- 단위: ZPL은 도트로만 동작합니다. TSPL은 SIZE와 GAP에서 밀리미터나 인치를 받지만 위치는 도트입니다. 203 dpi ZPL 템플릿을 300 dpi TSC 프린터로 옮기려면 모든 좌표에 1.48을 곱해야 합니다.
- 폰트: ZPL의 ^A0는 도트 단위로 크기를 지정하는 스케일러블 폰트입니다. TSPL 내장 폰트 1~8은 정수 배율의 고정 비트맵이고, 폰트 "0"은 스케일러블이지만 문자당 도트로 지정합니다. 텍스트 폭이 정확히 일치하지 않으므로 제품명이 긴 라벨을 확인하세요.
- 바코드 매개변수: ZPL은 ^BY로 모듈 폭을 한 번 설정해 재사용합니다. TSPL은 BARCODE 명령마다 좁은 바와 넓은 바 폭을 선언합니다. 가독 문자는 둘 다 플래그지만 폰트와 위치가 다릅니다.
- 원점과 방향: 둘 다 왼쪽 위 모서리를 쓰지만 TSPL의 DIRECTION과 REFERENCE는 (0,0)의 위치를 바꿉니다. 모든 작업에서 명시적으로 설정하세요.
- 그래픽: ZPL의 ^GF 16진 비트맵과 TSPL BITMAP은 바이트 순서와 극성이 다릅니다. 로고는 복사가 아니라 재인코딩해야 합니다.
- RFID: ^RF 명령은 RFID가 없는 TSC 모델에 대응물이 없습니다. RFID 지원 TSC 장비에서는 명령 체계가 다르며 인코딩을 다시 정의해야 합니다.
변환 전후: 같은 라벨
^XA ^PW812 ^LL609 ^FO40,30 ^A0N,36,36 ^FDSafety Harness^FS ^FO40,80 ^A0N,24,24 ^FDLOT: MX-24-0917^FS ^FO40,130 ^BY2 ^BCN,90,Y,N,N ^FD7501234567893^FS ^PQ1 ^XZ
SIZE 101.6 mm,76.2 mm GAP 3 mm,0 DIRECTION 1 CLS TEXT 40,30,"0",0,11,11,"Safety Harness" TEXT 40,80,"0",0,7,7,"LOT: MX-24-0917" BARCODE 40,130,"128",90,1,0,2,4,"7501234567893" PRINT 1,1
라벨 크기가 물리 단위로 바뀌고, 각 필드가 자체 좌표를 가지며, 바코드가 바 폭을 인라인으로 선언하는 점에 주목하세요. 데이터 — 제품, 로트, GTIN — 는 그대로이고 겉포장만 바뀌었습니다.
마이그레이션 체크리스트
- 좌표를 스케일링하기 전에 프린터 해상도(203 vs 300 dpi)를 확인한다.
- 각 템플릿을 TSC 장비에서 한 번 인쇄하고 바코드를 검증한다(ISO 15416). 등급이 떨어지면 좁은 바 폭을 조정한다.
- 긴 가변 텍스트가 넘치지 않는지 확인한다 — TSPL 폰트는 같은 공칭 크기에서 더 넓다.
- 로고를 TSPL 비트맵으로 재인코딩하거나, 더 좋게는 디자인 도구에서 벡터 객체로 유지한다.
- ZPL 버전을 라이브러리에 남긴다: 전환 기간에는 혼합 장비가 일반적이다.
EtikStudio의 방식
ZPL 파일을 붙여넣거나 가져오면 인터프리터가 밀리미터 단위의 편집 가능한 디자인으로 렌더링합니다. TSC 프린터 프로필을 선택하고 내보내면 EtikStudio는 대상 해상도로 스케일링한 좌표, 메트릭이 일치하는 폰트, 모듈 단위로 재구축한 바코드, 재인코딩한 로고로 TSPL을 생성합니다. 같은 디자인이 마지막 Zebra가 퇴역할 때까지 Zebra 장비에서도 계속 인쇄됩니다.
명령 예시는 이해를 돕기 위해 단순화했습니다. 정확한 문법은 프린터 모델과 펌웨어에 따라 다르므로 항상 대상 프린터에서 테스트하세요.