롤, 시트, 송장. 용지에 맞춰 그립니다
내 사이트에는 이렇게 붙입니다
스크립트 한 줄, npm 패키지, 웹 컴포넌트 중 편한 것으로. 서식은 JSON 그대로 넣거나 저장한 ID 로 부릅니다.
<script src="https://82label.app/cdn/v0.1.0/82label.min.js"></script>
<button id="print">라벨 인쇄</button>
<script>
const template = {
v: 1,
name: '상품 바코드 50×30',
paper: { kind: 'roll', dpi: 203 },
label: { width: 50, height: 30 },
elements: [
{ type: 'text', x: 2.5, y: 2, w: 45, h: 6, text: '{{name}}', size: 9, bold: true, fit: 'shrink' },
{ type: 'text', x: 2.5, y: 8, w: 45, h: 4, text: '{{price}}', size: 8 },
{ type: 'barcode', x: 2.5, y: 13, w: 45, h: 15, format: 'code128', value: '{{sku}}' },
],
};
document.getElementById('print').onclick = () =>
Label82.print(template, [
{ name: '무선 이어폰 프로', price: '39,000원', sku: 'EP-2026-0412' },
{ name: '고속 충전 케이블 1m', price: '9,900원', sku: 'CB-1M-0007' },
]);
</script><script src="https://82label.app/cdn/v0.1.0/82label.min.js"></script>
<script>
// 82label.app 에 저장한 서식은 ID 로 부릅니다. 사이트에서 고치면 바로 반영됩니다.
Label82.print('lbl_a1b2c3d4e5', [
{ name: '무선 이어폰 프로', price: '39,000원', sku: 'EP-2026-0412' },
]);
</script><link rel="stylesheet" href="https://82label.app/cdn/v0.1.0/82label.css">
<script src="https://82label.app/cdn/v0.1.0/82label.min.js"></script>
<label-82
template="lbl_a1b2c3d4e5"
data='[{"name":"무선 이어폰 프로","price":"39,000원","sku":"EP-2026-0412"}]'
button="라벨 인쇄">
</label-82>npm i @82label/core
import { print } from '@82label/core';
import template from './labels/product.json'; // 디자이너에서 받은 서식 JSON
async function printLabels(orders) {
const rows = orders.map((o) => ({ name: o.productName, price: o.priceText, sku: o.sku }));
const result = await print(template, rows);
// result.via: 'agent'(출력 프로그램) 또는 'browser'
return result;
}import { useState } from 'react';
import { print } from '@82label/core';
import template from './labels/product.json';
export function PrintLabelButton({ items }) {
const [busy, setBusy] = useState(false);
const onClick = async () => {
setBusy(true);
try {
const rows = items.map((it) => ({ name: it.name, price: it.price, sku: it.sku }));
const r = await print(template, rows);
if (r.status === 'pending_permission') alert('출력 프로그램에서 이 사이트를 허용해 주세요.');
} finally {
setBusy(false);
}
};
return <button onClick={onClick} disabled={busy}>라벨 인쇄</button>;
}<script setup>
import { ref } from 'vue';
import { print } from '@82label/core';
import template from './labels/product.json';
const props = defineProps({ items: Array });
const busy = ref(false);
async function onPrint() {
busy.value = true;
try {
await print(template, props.items.map((it) => ({ name: it.name, price: it.price, sku: it.sku })));
} finally {
busy.value = false;
}
}
</script>
<template>
<button :disabled="busy" @click="onPrint">라벨 인쇄</button>
</template>라벨 출력에 필요한 것만
- 디자이너mm 눈금자, 1mm 격자, 스냅, 확대. 글자·바코드·QR·이미지·선·박스를 놓고 위치를 숫자로 맞춥니다. 로그인 없이도 씁니다.
- {{필드}} 와 데이터바뀌는 값은 {{name}} 처럼 적고, 데이터 배열을 넘기면 한 줄이 라벨 한 장입니다. 값은 글자로만 들어가 안전합니다.
- 바코드 7가지와 QRCode128, EAN-13·8, UPC-A, Code39, ITF, ITF-14, QR. EAN 체크 숫자 자동 계산, 막대는 프린터 도트에 맞춰 스캔이 잘 됩니다.
- mm 그대로 브라우저 인쇄@page 크기를 라벨에 맞추고 여백 0, 배율 100%. 폼텍 칸이 밀리지 않고, 시트는 원하는 칸부터 채웁니다.
- 창 없이 바로 인쇄Windows 출력 프로그램이 켜져 있으면 같은 print() 가 인쇄 창 없이 라벨프린터로 보냅니다. 없으면 브라우저로 넘어갑니다.
- 서식은 JSON 또는 ID서식을 코드에 통째로 넣으면 82label 서버 없이 돌고, 저장해서 ID 로 부르면 사이트에서 고친 내용이 바로 반영됩니다.
요금
직접 쓰면 무료입니다. 82label 서버에 서식을 많이 보관할 때만 돈을 받습니다.
정식 출시 전까지 모두 무료
무료
0원
- 디자이너, JSON 내보내기
- 라이브러리(CDN·npm), 브라우저 인쇄
- 롤·폼텍 기본서식
- 82label 에 서식 3개 보관
구독
서식당 월 5,000원부가세 포함
- 보관 서식 3개 초과분
- 택배 송장 기본서식
- Windows 출력 프로그램(사일런트 인쇄)
- 언제든 해지, 남은 기간까지 사용
Windows 10·11
인쇄 창 없이, 누르면 바로 나오게
82label 출력 프로그램을 설치하고 계정에 연결하면(30일 무료 체험, 이후 구독), 같은 print() 가 라벨프린터로 바로 보냅니다. 처음 보는 사이트는 허용을 묻고, 업데이트는 서명을 확인한 뒤 조용히 설치됩니다.
30일 무료 체험 · 계정 연결 필요
- 설치관리자 권한 없이 설치, 트레이에서 실행
- 계정 연결내 서식 › 출력 프로그램에서 받은 키를 붙여 넣기
- 사이트 허용내 사이트에서 처음 인쇄할 때 한 번 허용
자주 묻는 질문
정말 무료인가요?
라이브러리(MIT), 디자이너, JSON 내보내기, 브라우저 인쇄, 롤·폼텍 서식은 무료입니다. 82label 서버에 서식을 3개 넘게 보관하거나 택배 송장 서식·Windows 출력 프로그램을 쓰려면 구독(서식당 월 5,000원, 부가세 포함)이 필요합니다. 정식 출시 전에는 모두 무료입니다.
어떤 프린터를 쓸 수 있나요?
Windows 에 드라이버가 설치된 프린터는 모두 됩니다. 감열 라벨프린터(TSC, Zebra, 빅솔론, 세우테크 등), 일반 레이저·잉크젯(폼텍 시트) 모두 같은 그림을 mm 크기 그대로 찍습니다. ZPL 같은 프린터 명령어는 아직 쓰지 않습니다.
인쇄 창 없이 바로 찍을 수 있나요?
Windows 출력 프로그램을 설치하고 구독 계정에 연결하면 print() 가 인쇄 창 없이 바로 찍습니다. 출력 프로그램이 없으면 같은 코드가 브라우저 인쇄 창을 엽니다.
폼텍 시트에서 칸이 밀려요.
인쇄 창의 배율을 100%(실제 크기)로, "용지에 맞춤"을 끄고, 여백을 없음으로 두세요. 그래도 프린터마다 1~2mm 밀린다면 서식의 marginTop·marginLeft 를 조금씩 고치면 됩니다.
바코드가 스캐너로 안 읽혀요.
높이를 10mm 이상, 양옆 여백을 충분히 두고, 서식의 dpi 를 프린터와 맞추세요(대부분 203). 값이 길면 바코드 칸을 넓히거나 Code 128 숫자 전용(C 세트)이 되도록 숫자만 쓰세요.
다른 사이트가 몰래 내 프린터로 인쇄할 수 있나요?
아니요. 출력 프로그램은 요청한 사이트를 확인해 처음 보는 사이트는 허용 여부를 묻고, 허용한 사이트만 인쇄합니다. 출력 프로그램은 내 PC(127.0.0.1)에서만 요청을 받습니다.
서식 ID 를 알면 남이 제 서식을 고칠 수 있나요?
아니요. ID 로는 읽기만 됩니다. 고치기와 지우기는 로그인한 주인만 할 수 있습니다. 서식에 비밀 정보를 넣지 마세요. 값은 인쇄할 때 데이터로 넘기면 됩니다.
택배사 송장번호도 발급해 주나요?
아니요. 송장번호 발급과 집하 접수는 택배사 계약과 각 사의 API 가 필요합니다. 82label 은 받은 송장번호와 주소를 송장 용지의 정해진 위치에 찍어 줍니다.
Mac 이나 리눅스에서도 되나요?
브라우저 인쇄는 어느 운영체제에서나 됩니다. 사일런트 인쇄용 출력 프로그램은 지금은 Windows 10·11(64비트)만 있습니다.
첫 라벨을 지금 그려 보세요.
가입하지 않아도 디자인하고 인쇄할 수 있습니다.
디자이너 열기