SBPL을 ZPL로 변환: SATO 라벨 작업을 Zebra 프린터로
SATO SBPL과 ZPL의 대응, SBPL의 지속적 위치 지정을 ZPL 필드로 푸는 방법, 폰트와 바코드 매핑, 실제 예제.
SBPL 작업은 보통 일본에서 설계된 ERP 모듈이나 SATO 자체 도구에서 나오며 읽기 어렵습니다: 이스케이프 시퀀스, 4자리 좌표, 한 객체에서 다음 객체로 이어지는 위치. ZPL로 변환하는 일은 대부분 암묵적인 것을 명시적으로 만드는 일입니다 — 각 필드가 자체 ^FO, 자체 폰트, 자체 ^FS를 갖습니다.
명령 대응표
| 작업 | SBPL (SATO) | ZPL (Zebra) |
|---|---|---|
| 시작 / 종료 | <ESC>A … <ESC>Z | ^XA … ^XZ |
| 라벨 크기 | <ESC>A1 0609 0812 (높이, 폭: 도트) | ^PW812 ^LL609 |
| 필드 위치 | <ESC>H0040 <ESC>V0030 | ^FO40,30 |
| 텍스트 | <ESC>L0202 <ESC>XU Hello (폰트 + 배율) | ^A0N,36,36 ^FDHello^FS |
| Code 128 | <ESC>BG02090 data (좁은 바 2, 높이 90) | ^BY2 ^BCN,90,Y,N,N ^FDdata^FS |
| QR 코드 | <ESC>2D30,L,06,0,0 <ESC>DN0004,data | ^BQN,2,6 ^FDQA,data^FS |
| 선 / 박스 | <ESC>FW02H0300 (선) / <ESC>FW0202V0100H0300 (박스) | ^GB300,2,2^FS |
| 매수 | <ESC>Q5 | ^PQ5 |
| 농도 / 속도 | <ESC>#E3 <ESC>CS4 | ^MD10 ^PR4 |
| 회전 | <ESC>%1 (90°), %2 (180°), %3 (270°) | ^FWR 또는 방향 문자 |
주의할 점
- 위치: 작업 전체에서 H와 V를 추적한다. H를 생략한 SBPL 객체는 이전 값을 재사용한다. 각 ZPL ^FO에는 해석된 절대 위치를 넣어야 한다.
- 폰트: SBPL 비트맵 폰트 + L 배율 → 폰트 기본 크기 × 배율로 계산한 높이의 ZPL ^A0. 아웃라인 폰트는 더 직접 대응한다.
- 바코드 코드: BG → ^BC (Code 128), BD → ^BE/^B8 (EAN), BC → ^B3 (Code 39), 2D30 → ^BQ, 2D50 → ^BX. 높이는 둘 다 도트.
- 별도 SBPL 텍스트로 추가한 가독 라인은 ^BC가 직접 인쇄하면 중복된다. 제거하거나 남기고 Y 플래그를 N으로 둔다.
- 일본어 텍스트: 한자 폰트 명령은 다운로드한 TrueType 폰트와 유니코드(^CI28)를 통하지 않는 한 ZPL 쌍둥이가 없다.
변환 전후
<ESC>A <ESC>A1 0406 0609 <ESC>H0030 <ESC>V0020 <ESC>L0202 <ESC>XS Amoxicillin 250 mg <ESC>V0060 <ESC>L0101 <ESC>XS Lot B8297K <ESC>V0100 <ESC>BG02070 7601234567834 <ESC>Q1 <ESC>Z
^XA ^PW609 ^LL406 ^FO30,20 ^A0N,30,30 ^FDAmoxicillin 250 mg^FS ^FO30,60 ^A0N,18,18 ^FDLot B8297K^FS ^FO30,100 ^BY2 ^BCN,70,Y,N,N ^FD7601234567834^FS ^PQ1 ^XZ
두 번째와 세 번째 SBPL 객체는 H를 설정하지 않습니다: 첫 번째의 0030을 상속합니다. ZPL 버전은 매번 명시합니다.
EtikStudio의 방식
SBPL 인터프리터는 지속적 위치, 폰트, 배율을 단순한 시각 디자인으로 해석합니다. 그다음 ZPL 내보내기는 다른 디자인과 같으며, 바코드와 가독 텍스트는 하나의 필드에서 재구축됩니다.
명령 예시는 이해를 돕기 위해 단순화했습니다. 정확한 문법은 프린터 모델과 펌웨어에 따라 다르므로 항상 대상 프린터에서 테스트하세요.