82label

문서 › 바코드와 QR

바코드

Code128, EAN-13·8, UPC-A, Code39, ITF, ITF-14. 체크 숫자와 스캔 크기.

바코드는 요소 하나입니다. 값만 적어도 됩니다: 좌표를 빼면 라벨 가운데에 너비 80% 로 들어갑니다.

{ type: 'barcode', value: '{{sku}}' }                       // Code 128, 가운데
{ type: 'barcode', x: 3, y: 14, w: 44, h: 13, format: 'ean13', value: '{{ean}}', showText: true }

실제 라이브러리로 그린 예제

이 예제의 코드

Label82.barcodeSVG('880123456789', { format: 'ean13', height: 18 })

형식

format값쓰는 곳
code128숫자·영문·기호 아무 길이기본값. 상품 코드(SKU), 주문번호, 택배 송장. 숫자만 길면 자동으로 촘촘한 C 세트.
ean13숫자 12자리(+체크 1)국내 유통 상품 바코드(880…). 12자리만 넣으면 체크 숫자를 계산해 붙입니다. 13자리면 체크 숫자를 검사합니다.
ean8숫자 7자리(+체크 1)작은 상품.
upca숫자 11자리(+체크 1)북미 상품 바코드.
code39대문자 영문·숫자·- . 공백 $ / + %오래된 사내 시스템, 자산 관리.
itf14숫자 13자리(+체크 1)물류 박스(GTIN-14).
itf짝수 자리 숫자Interleaved 2 of 5, 체크 숫자 없음. 한진·롯데 송장번호.

잘못된 값

값이 형식에 맞지 않으면(EAN 자릿수가 틀림, Code39 에 소문자 등) 그 자리에 X 표시 상자를 그리고 인쇄 결과의 errors 에 남깁니다. 미리 검사하려면 encodeBarcode 를 부르세요.

import { encodeBarcode, eanCheckDigit, BarcodeError } from '@82label/core';

eanCheckDigit('880123456789'); // 3 → 8801234567893
try {
  encodeBarcode('ean13', '88012345');
} catch (e) {
  if (e instanceof BarcodeError) console.log(e.message);
}

const r = await Label82.print(template, rows);
r.errors; // [{ element: 2, code: 'barcode_invalid', message: '…' }]

스캔이 잘 되는 크기

  • 막대 하나(모듈)의 폭은 프린터 도트의 정수배로 맞춥니다(paper.dpi). 203dpi 에서 한 도트는 0.125mm.
  • 좌우 여백(quiet zone)은 모듈 10개분을 비워 둡니다. 라벨 가장자리에 붙이지 마세요.
  • 높이는 10mm 이상을 권합니다. 송장처럼 멀리서 읽는 바코드는 15mm 이상.
  • 긴 값을 좁은 칸에 넣으면 모듈이 0.19mm 아래로 내려가 읽기 어렵습니다. 디자이너가 경고합니다.

바코드만 따로

라벨 없이 바코드 그림만 필요하면 barcodeSVG 를 쓰세요. 화면 표시나 PDF 에 넣을 SVG 문자열을 돌려줍니다.

Label82.barcodeSVG('EP-2026-0412', { height: 15, showText: true });
Label82.barcodeSVG('880123456789', { format: 'ean13', moduleWidth: 0.33 });