# QR 코드

> QR 요소, 오류 정정 단계, 크기와 길이.

Source: https://82label.app/docs/qr/

QR 은 정사각형 요소입니다. `size` 는 한 변의 mm 이고, 좌표를 빼면 가운데에 들어갑니다. 주문 조회 주소, 상품 페이지, 재고 위치 코드처럼 긴 값에 씁니다.

```js
{ type: 'qr', x: 36, y: 4, size: 20, value: 'https://shop.example.com/o/{{orderNo}}', ecc: 'M' }
```

```js
const template = {
  v: 1,
  name: '재고 위치',
  paper: { kind: 'roll', dpi: 203 },
  label: { width: 60, height: 30 },
  elements: [
    { type: 'qr', x: 3, y: 3, size: 24, value: 'LOC:{{loc}}', ecc: 'Q' },
    { type: 'text', x: 30, y: 5, w: 28, h: 10, text: '{{loc}}', size: 16, bold: true, fit: 'shrink' },
    { type: 'text', x: 30, y: 16, w: 28, h: 10, text: '{{desc}}', size: 8, fit: 'wrap' },
  ],
};

const rows = [{ loc: 'A-03-12', desc: '2층 A구역 3번 선반 12칸' }];

Label82.print(template, rows);
```

## 오류 정정 (ecc)

| ecc | 복구 | 쓰는 곳 |
| --- | --- | --- |
| `L` | 약 7% | 깨끗한 실내 라벨, 긴 값 |
| `M` | 약 15% | 기본값 |
| `Q` | 약 25% | 물류 현장, 긁히기 쉬운 곳 |
| `H` | 약 30% | 오염이 심한 곳 |

## 크기와 길이

- 한 칸(모듈)이 0.25mm 이상이면 휴대폰으로 잘 읽힙니다. 값이 길수록 칸이 많아지니 `size` 를 키우세요.
- 바깥 여백(칸 2개분)은 자동으로 들어가 있습니다.
- 값이 너무 길면 `QrError`(`qr_too_long`)가 나고 그 자리에 X 상자를 그립니다. 주소는 짧은 URL 로 바꾸세요.

```js
Label82.qrSVG('https://82label.app', { size: 30, ecc: 'M' }); // QR 그림만
```
