Zebra(ZPL) 라벨 디자인하기

Zebra 라벨 프린터는 일반 문서를 인식하지 못합니다. 대신 **ZPL**(Zebra Programming Language)이라는 텍스트 명령 집합을 사용합니다. ZPL 디자인은 프린터에 라벨에 무엇을 어디에 배치할지 알려주는 텍스트 블록입니다. 여기에 텍스트 한 줄, 저기에 가격 하나, 모서리에 QR 코드 하나 같은 방식입니다.

이 페이지는 ZPL을 처음부터 설명하므로 도움 없이도 제품 라벨을 읽고, 편집하고, 직접 제작하실 수 있습니다. 구성 ‣ 프린터 아래 맞춤형 Zebra 제품 라벨 디자인 필드에서 라벨을 디자인하십시오(프린터 구성 참조).

빈 페이지에서 시작하는 경우는 드뭅니다. Gem Logic은 모든 라벨에 작동하는 기본 디자인을 제공합니다. 가장 빠른 학습 방법은 해당 기본값을 열고, 한 가지만 변경하고, 저장한 다음 미리보기 이미지를 확인하는 것입니다. 올바르게 보일 때까지 반복하십시오.

빠른 시작

  1. 구성 ‣ 프린터`로 이동하여 :guilabel:`맞춤형 Zebra 제품 라벨 디자인 필드를 찾으십시오.

  2. 작은 변경(예: 선 이동 또는 가격 확대)을 수행하십시오.

  3. :guilabel:`저장`을 클릭하십시오. Gem Logic이 자동으로 라벨의 **미리보기 이미지**를 생성합니다.

  4. 미리보기를 확인하십시오. 잘못된 경우 조정하고 다시 저장하십시오.

실험하는 동안 실제 프린터로 아무것도 전송되지 않습니다. 미리보기는 디자인에서 생성되므로 라벨 한 장을 인쇄하기 전에 안전하게 반복 작업을 수행하실 수 있습니다.

ZPL 라벨 구조

모든 라벨은 ^XA``로 시작하고 ``^XZ``로 끝납니다. 사이의 모든 것이 라벨을 설명합니다. 명령은 항상 캐럿 ``^``(또는 때로는 틸드 ``~)으로 시작됩니다.

^XA            (start of the label)
... commands that build the label ...
^XZ            (end of the label)

내부적으로 가장 일반적인 패턴은 **”위치로 이동한 다음 그곳에 무언가 인쇄”**입니다:

^FO50,30^FDHello^FS

이 한 줄은 *위치 50,30으로 이동하여 “Hello” 텍스트를 인쇄*한다는 의미입니다. 분해하면:

  • ^FO50,30**F**ield **O**rigin: x=50, y=30으로 이동(다음에 올 내용의 왼쪽 상단 모서리).

  • ^FDHello**F**ield **D**ata: 인쇄할 실제 내용.

  • ^FS**F**ield **S**eparator: 이 부분의 끝을 표시. 항상 ``^FS``로 필드를 닫으십시오.

이것이 라벨 디자인의 90%입니다. “위치 + 내용” 라인을 연속으로 쌓는 방식입니다.

라벨 크기, 도트 및 밀리미터

Zebra 프린터는 모든 것을 밀리미터가 아닌 **도트**로 측정합니다. 대부분의 라벨 프린터는 **203 DPI**로 인쇄하며, 이는 다음을 의미합니다:

  • 1 mm ≈ 8 도트

  • 1 인치 = 203 도트

따라서 너비 56 mm, 높이 13 mm인 라벨은 약 448 도트 너비, 104 도트 높이입니다.

인쇄 가능 영역을 설정하는 두 가지 명령어:

  • ^PWPrint Width, 인쇄 너비(도트 단위).

  • ^LLLabel Length, 라벨 길이(높이, 도트 단위).

^PW448        (label is 448 dots wide ≈ 56 mm)
^LL104        (label is 104 dots tall ≈ 13 mm)

중요

실제 라벨 크기는 디자인 옆에 있는 제품 라벨 너비제품 라벨 길이 필드에서도 가져옵니다. 실제 라벨 재고와 동기화하여 유지하십시오. {label_length} 변수는 길이 필드에서 자동으로 채워지므로 기본 디자인에서 ``^LL{label_length}``를 사용합니다.

위치 지정: 좌표 그리드

라벨을 그리드로 생각하십시오. 0,0 지점은 **좌측 상단 모서리**입니다. 첫 번째 숫자는 **x**(오른쪽으로의 거리)이고 두 번째는 **y**(아래로의 거리)이며, 둘 다 도트 단위입니다.

^FO0,0        top-left corner
^FO200,0      200 dots to the right, same height
^FO0,40       left edge, 40 dots down

요소를 이동하려면 ^FO 숫자를 변경하십시오. x가 클수록 더 오른쪽, y가 클수록 더 아래입니다. 이렇게 하면 SKU를 한 줄에, 금속을 다음 줄에 배치할 수 있습니다. 같은 x 값을 주되 두 번째 줄에는 더 큰 y 값을 주면 됩니다.

텍스트 추가 및 크기 조정

텍스트를 인쇄하기 전에 일반적으로 글꼴 크기**를 선택합니다. 가장 간단한 방법은 ``^CF0,h``(기본 **Font 변경)이며, 여기서 ``h``는 도트 단위의 문자 높이입니다:

^CF0,28               use ~28-dot-tall text from here on
^FO50,30^FDPrice^FS   print "Price" at 50,30 in that size

^CF 이후의 모든 ``^FD … ^FS``는 다른 크기를 설정할 때까지 해당 크기를 사용합니다. 따라서 한 라벨에 여러 크기를 혼합하려면 큰 텍스트 앞에 ``^CF0,28``을, 작은 텍스트 앞에 ``^CF0,14``를 설정하십시오.

**새 텍스트 줄**을 추가하려면 Enter를 누르지 않고, 아래쪽에 위치한 다른 필드를 추가합니다. 기존 줄을 복사하여 더 큰 y 값을 부여하고 내용을 변경하십시오.

제품 데이터 삽입

라벨 디자인은 모든 제품에 재사용되므로 SKU나 가격을 직접 입력하지 않습니다. 대신 중괄호 안에 **변수**를 삽입하면 Gem Logic이 라벨을 인쇄할 때 각 제품의 실제 데이터로 대체합니다.

^FO1,8^FD{item_sku}^FS          prints this product's SKU
^FO180,50^FD{currency}{price}^FS prints e.g. €129

동일한 변수가 앱의 디자인 필드 바로 아래에 클릭 가능한 배지로 표시되므로 편집하는 동안 사용 가능한 변수를 확인할 수 있습니다.

사용 가능한 변수

제품

  • {brand}: 브랜드명

  • {product_title}: 제품명

  • {item_sku}: 제품 SKU

  • {ean_code}: EAN 바코드(QR 코드에 사용)

  • {price}{currency}: 가격 및 통화 기호

  • {serial_number}: 일련번호

  • {year_of_manufacture}: 제조 연도

  • {supplier_product_reference}: 공급업체 제품 참조번호

  • {supplier_reference}: 공급업체 참조번호

소재 및 보석

  • ``{material_1}``부터 ``{material_5}``까지: 전체 소재 설명(중량, 이름 및 보석 상세 정보)

  • ``{material_only_1}``부터 ``{material_only_5}``까지: 소재 또는 보석 이름만

속성

  • {attribute_1}``부터 ``{attribute_5}``까지: ``이름: 형식의 속성

  • ``{attribute_name_1}``부터 ``{attribute_name_5}``까지: 속성 이름만

  • ``{attribute_value_1}``부터 ``{attribute_value_5}``까지: 속성 값만

치수

  • {weight}, {length}, {width}, {height}, {diameter}, {size}, {thickness}, {quality}

컬렉션

  • {collections}: 제품이 속한 컬렉션

카테고리

  • {categories}: 제품이 속한 카테고리(쉼표로 구분)

원산지

  • {country_of_origin}: 제품의 원산지 국가

투명도

  • {clarity}: 제품 보석의 투명도

원가 코드

  • {encoded_cost}: 매입 원가를 귀하의 비공개 원가 코드로 변환한 값(문자는 :menuselection:`구성 –> 일반 설정`에서 설정됩니다). 이를 통해 실제 원가가 라벨에서 읽히지 않습니다.

**RFID**(RFID 태그가 있는 라벨에만 필요)

  • {item_sku_epc_hex}: RFID 칩용 EPC 값으로 인코딩된 SKU

  • {item_sku_epc_word_count}: ZPL RFID 명령에서 사용되는 EPC 길이

레이아웃

  • {label_length}: 라벨 길이 설정에서 자동으로 채워집니다

QR 코드 및 바코드

QR 코드는 ``^BQN``과 ``QA,``로 시작하는 데이터 필드를 함께 사용하여 추가됩니다:

^FO0,30^BQN,2,2^FDQA,{ean_code}^FS
  • ^FO0,30 — QR 코드 위치입니다.

  • ^BQN,2,2 — QR 코드입니다. **마지막 숫자는 크기**(배율)입니다. 더 크고 스캔하기 쉬운 코드를 원하시면 이 값을 높이고(3, 4, 5…), 공간을 절약하려면 낮추십시오.

  • ^FDQA,{ean_code}^FS — 코드 안의 데이터입니다. 여기서는 제품의 EAN을 인코딩합니다.

기존 1D 바코드를 사용하려면 ``^BCN``(Code 128)을 사용하십시오:

^FO20,20^BCN,60,Y,N,N^FD{ean_code}^FS

``60``은 바코드 높이(도트 단위)이며, ``Y``는 그 아래에 사람이 읽을 수 있는 숫자를 인쇄합니다.

기본 디자인 설명

다음은 Gem Logic이 제공하는 기본 디자인을 줄 단위로 설명한 것입니다. 이를 읽으면 각 요소가 어떻게 구성되는지 가장 빠르게 이해할 수 있습니다.

^XA
^MD20
^CI28
^LL{label_length}
^LH0,0
^CF0,18
^FO180,8^FD{brand}^FS
^CF0,14
^FO50,45^FD{material_2}^FS
^FO50,60^FD{material_3}^FS
^FO180,27^FD{material_1}^FS
^CF0,28
^FO180,50^FD{currency}{price}^FS
^CF0,16
^FO1,8^FD{item_sku}^FS
^FO1,23^FD{supplier_product_reference}^FS
^FO50,60^FD{supplier_reference}^FS
^FO0,30^BQN,2,2
^FDQA,{ean_code}^FS
^XZ

줄 단위 설명:

  • ^XA — 라벨의 시작.

  • ^MD20 — 인쇄 농도. 라벨이 흐릿하면 높이고, 텍스트가 번지면 낮추십시오.

  • ^CI28 — 문자 인코딩, 및 악센트 기호가 올바르게 인쇄되도록 합니다.

  • ^LL{label_length} — 라벨 높이, 길이 설정에서 자동으로 채워집니다.

  • ^LH0,0 — 홈 위치: 원점은 왼쪽 상단 모서리입니다.

  • ^CF0,18 — 다음 줄의 텍스트 크기 약 18도트.

  • ^FO180,8^FD{brand}^FS — 브랜드, 상단 근처.

  • ^CF0,14 — 여기서부터 더 작은 텍스트.

  • ^FO50,45^FD{material_2}^FS, ^FO50,60^FD{material_3}^FS, ^FO180,27^FD{material_1}^FS — 세 가지 소재.

  • ^CF0,28 — 가격을 위한 더 큰 텍스트.

  • ^FO180,50^FD{currency}{price}^FS — 가격, 예: €129.

  • ^CF0,16 — 중간 크기 텍스트.

  • ^FO1,8^FD{item_sku}^FS — SKU, 왼쪽 상단.

  • ^FO1,23^FD{supplier_product_reference}^FS — 공급업체 제품 참조.

  • ^FO50,60^FD{supplier_reference}^FS — 공급업체 참조.

  • ^FO0,30^BQN,2,2 다음 ^FDQA,{ean_code}^FS — QR 코드(왼쪽 하단) 및 해당 데이터(EAN).

  • ^XZ — 라벨의 끝.

경고

ZPL에는 줄 주석이 없습니다 — 세미콜론 ;``**을 사용하여 메모를 추가하지 마십시오.** ZPL은 ``^``(또는 ``~)로 시작하는 명령만 이해하므로, ; 뒤의 모든 내용은 명령의 값(또는 불필요한 라벨 데이터)의 일부로 읽힙니다. 이것이 “Value ‘20;’ is not a valid number” 또는 *”Ignored unrecognized content”*와 같은 오류를 발생시키며, 불필요한 ``;``는 레이아웃을 조용히 이동시키거나 손상시킬 수 있습니다.

메모를 남기려면 ^FS``로 닫는 ``^FX 주석 명령을 사용하십시오. 프린터는 그 안의 모든 내용을 무시합니다:

^FX brand, near the top ^FS
^FO180,8^FD{brand}^FS

한 가지 규칙: ^FX 주석에는 ^ 또는 ``~``를 포함할 수 없습니다 — 이러한 문자는 주석을 종료하고 다음 명령을 시작합니다.

일반적인 수정 사항

가격을 더 크게 만들기

{price} 줄 앞의 ^CF0,28``을 찾아 숫자를 늘리십시오, 예: ``^CF0,40.

요소 이동하기

^FO 숫자를 변경하십시오. 브랜드를 아래로 이동하려면 ^FO180,8``의 번째 숫자(``8)를 늘리십시오.

새 텍스트 줄 추가하기

^FO…^FD…^FS 줄을 복사하고, y 값을 더 크게 지정하여 아래쪽에 배치하고, 내용이나 변수를 변경하십시오.

QR 코드 크기 키우기

``^BQN,2,2``의 마지막 숫자를 늘리십시오(``^BQN,3,3``을 시도해 보십시오). 잘리는 경우 공간을 더 확보하거나 ``^FO``로 위치를 왼쪽/위로 이동하십시오.

구분선 추가하기

그래픽 박스를 사용하십시오. ``^FO0,40^GB540,2,2^FS``는 540도트 너비의 얇은 수평선을 그립니다.

인쇄 전 미리보기 및 테스트

실제 라벨을 사용하기 전에 디자인을 확인할 수 있는 두 가지 간편한 방법이 있습니다:

  • Gem Logic에서: 저장할 때마다 디자인 필드 아래에 라벨의 미리보기 이미지가 나타납니다. 주요 피드백 도구로 활용하십시오.

  • 온라인: ZPL을 무료 `Labelary viewer <https://labelary.com/viewer.html>`_에 붙여넣어 다양한 라벨 크기의 즉시 렌더링을 확인하십시오. (Labelary는 귀하의 제품 데이터를 알지 못하므로 먼저 ``{variables}``를 샘플 텍스트로 교체하십시오.)

실제 라벨이 잘못 보이는 경우 — 잘린 텍스트, 스캔되지 않는 QR, 잘못된 크기 — :doc:`troubleshooting`의 라벨 섹션을 참조하십시오.

명령어 빠른 참조

명령어

기능

^XA / ^XZ

라벨의 시작 / 끝. 모든 내용이 이 사이에 위치합니다.

^PW

인쇄 너비(도트 단위).

^LL

라벨 길이(높이, 도트 단위).

^LH

Label home — 원점(일반적으로 0,0).

^FO x,y

Field origin — 다음 요소를 x,y에 배치합니다.

^CF0,h

다음 텍스트의 기본 글꼴 높이(h 도트)를 설정합니다.

^FD ... ^FS

Field data — 인쇄할 내용 — 필드 구분자로 닫힙니다.

^FX ... ^FS

주석 — 프린터에서 무시됩니다. ^ 또는 ``~``를 포함할 수 없습니다.

^MD

Media darkness(인쇄 농도). 숫자가 클수록 더 진합니다.

^BQN,m,m

QR 코드; 마지막 숫자는 크기입니다. 데이터는 ``QA,``로 시작합니다.

^BCN,h,...

Code 128 바코드; ``h``는 도트 단위의 높이입니다.

^GB w,h,t

상자 또는 선 그리기(도트 단위의 너비, 높이, 두께).

^CI28

문자 인코딩으로, ``€``와 같은 기호가 올바르게 출력됩니다.

전체 언어에 대해 Zebra는 완전한 ZPL 명령 가이드를 제공하지만, 위의 명령만으로도 거의 모든 제품 라벨을 다룰 수 있습니다.