상세 컨텐츠

본문 제목

ZEBRA 바코드 프린터 프로그래밍 언어 (ZPL) 사용방법 - 반복되는 폼 저장, 호출로 코드 줄이기

알쓸신잡

by 블랙캣 2021. 9. 3. 07:11

본문

728x90
반응형

반응형

바코드프린터 제조사 ZEBRA 에서 생산하는 바코드프린터에 사용하는 프로그래밍 언어를 Zebra Programming Language, 줄여서 ZPL 이라고 합니다.

위 사진에서 보는 것 같이 라벨 인쇄시 항상 인쇄되는 표 또는 문구 로고등이 있는 폼(양식)이 있고 폼 안에 변경되는 데이터를 인쇄해야 하는 경우 계속 반복하여 인쇄하는 폼(양식)을 프린터에 저장해 두고 프로그램에서는 변경되는 데이터만 보내주고 폼은 호출하여 인쇄하는 방법이 있습니다.

이렇게 하면 프로그램에서 라벨 인쇄시 반복되는 코드를 계속 보내줄 필요 없이 바뀌는 데이터만 보내주면 되기 때문에 코딩 작업이 간편해 집니다.

ZPL 명령어를 사용하여 반복되는 폼(양식)을 저장하고 호출하여 인쇄하는 방법을 알아보겠습니다.


* 반복되는 폼 명령어

^XA
^DFR:SAMPLE.GRF^FS
^FO20,30^GB560,440,4^FS
^FO20,190^GB560,0,4^FS
^FO30,40^ADN,36,20^FDTitle :^FS
^FO30,200^ADN,36,20^FDBarcode :^FS
^FO150,125^ADN,36,20^FN1^FS
^FO70,280^BY3^B3N,,120^FN2^FS
^XZ

 

위 명령어를 프린터로 전송하면 사진과 같은 모양의 폼을 프린터 메모리에 SAMPLE.GRF 이름으로 저장합니다.

* 코드 설명
코드 설명
^XA 명령어 시작을 알립니다.
^DFR:SAMPLE.GRF^FS 프린터에 저장할 폼 이름을 SAMPLE.GRF 로 설정합니다.
^FO20,30^GB560,440,4^FS 박스를 그립니다.
^FO20,190^GB560,0,4^FS 박스 가운데 가로선을 그립니다.
^FO30,40^ADN,36,20^FDTitle :^FS Title : 글자를 인쇄합니다.
^FO30,200^ADN,36,20^FDBarcode :^FS Barcode : 글자를 인쇄합니다.
^FO150,125^ADN,36,20^FN1^FS X축 150, Y축 125 위치에 FN1 값을 받아 글자를 인쇄합니다.
*FN1 값은 프로그램에서 보내주는 값 입니다.
^FO70,280^BY3^B3N,,120^FN2^FS X축 70, Y축 280 위치에 FN2 값을 받아 바코드를 인쇄합니다.
*FN2 값은 프로그램에서 보내주는 값 입니다.
^XZ 명령어 종료를 알립니다.

프로그램에서 프린터에 저장된 폼을 호출하여 데이터를 적용하는 것을 알아 보겠습니다.

^XA
^XFR:SAMPLE.GRF
^FN1^FDForm Printing^FS
^FN2^FD12345678^FS
^XZ

 

위 명령어를 프린터로 전송하면 저장되어 있던 폼을 호출하여 사진과 같이 인쇄 됩니다.

* 코드 설명
코드 설명
^XA 명령어 시작을 알립니다.
^XFR:SAMPLE.GRF 프린터에 저장된 SAMPLE.GRF 폼을 호출합니다.
^FN1^FDForm Printing^FS 폼에 지정된 FN1 에 Form Printing 을 보냅니다.
^FN2^FD12345678^FS 폼에 지정된 FN2 에 12345678 을 보냅니다.
^XZ 명령어 종료를 알립니다.

프린터에 저장되어 있는 SAMPLE.GRF 폼 파일을 호출하여 FN1 과 FN2 에 출력할 데이터 값만 보내주면 되므로 명령어가 아주 간단해 집니다.


^XA
^FO20,30^GB560,440,4^FS
^FO20,190^GB560,0,4^FS
^FO30,40^ADN,36,20^FDTitle :^FS
^FO30,200^ADN,36,20^FDBarcode :^FS
^FO150,125^ADN,36,20^FDForm Printing^FS
^FO70,280^BY3^B3N,,120^FD12345678^FS
^XZ

 

라벨을 출력할 때마다 위와 같이 모든 명령어 코드를 작성하여 프린터로 전송해야 하지만

^XA
^XFR:SAMPLE.GRF
^FN1^FDForm Printing^FS
^FN2^FD12345678^FS
^XZ

 

이렇게 명령어 몇 줄 사용하지 않고 처리 할 수 있습니다.

예제에서 사용한 폼 형식이 단순하기 때문에 명령어 라인이 몇 줄 안되지만 폼 형식이 복잡한 경우 사용되는 명령어가 수십 라인 이상 되기 때문에 이렇게 폼 형식으로 저장해 두고 호출하는 방식으로 프로그래밍 하는 방식이 효율적입니다.


반복되는 폼(양식)을 저장하고 호출하여 효율적으로 명령어를 사용하는 방법을 알아보았습니다.

728x90
반응형

관련글 더보기

댓글 영역