FreeReportv0.13.0한국어

Shipping labels template

Eight labels per A4 sheet (2 × 4): receiver, address, a tracking barcode and a QR code.

Open in the designer

How to use it

  1. Shape your data like the sample data below; serve it as JSON from your server.
  2. Load the definition with getTemplate(id), or save the JSON below in your project.
  3. Change the company name, logo, seal and wording with [Open in the designer], then [Save] the JSON.
  4. Printing and PDF, Excel and HWPX export are already in the viewer toolbar.
import { getTemplate, createViewer } from '@freereportjs/core';
import '@freereportjs/core/styles.css';

const t = getTemplate('shipping-label');   // a fresh copy each call
createViewer(document.getElementById('report'), {
  definition: t.definition,
  data: myData,   // same structure as the sample data below
});

Seals are generated from text in the data; to use a real seal image, set an image on the seal element in the designer. The default fonts are Nanum Gothic and Nanum Myeongjo.

Data structure

KeyKindFields
senderobjectname, phone
rows[]rows (8) · repeated by the detail bandcarrier, shipDate, trackingNo, orderNo, receiver, item, qty

Report definition (JSON)

{
  "version": 1,
  "name": "출고 라벨",
  "page": {
    "size": "A4",
    "margins": [
      12,
      6,
      12,
      6
    ]
  },
  "font": {
    "family": "Nanum Gothic",
    "size": 9
  },
  "bands": {
    "detail": {
      "height": 68,
      "columns": 2,
      "columnGap": 4,
      "canGrow": false,
      "elements": [
        {
          "type": "rect",
          "x": 0,
          "y": 0,
          "w": 97,
          "h": 66,
          "radius": 2,
          "width": 0.3,
          "color": "#333333"
        },
        {
          "type": "text",
          "x": 3,
          "y": 2,
          "w": 50,
          "h": 6,
          "text": "{carrier}  출고",
          "style": {
            "bold": true,
            "fontSize": 10
          }
        },
        {
          "type": "text",
          "x": 53,
          "y": 2,
          "w": 41,
          "h": 6,
          "text": "{format(shipDate, \"yyyy-MM-dd\")}",
          "style": {
            "align": "right",
            "fontSize": 8,
            "color": "#555"
          }
        },
        {
          "type": "line",
          "x": 3,
          "y": 9,
          "w": 91,
          "h": 0,
          "width": 0.3
        },
        {
          "type": "text",
          "x": 3,
          "y": 10,
          "w": 14,
          "h": 7,
          "text": "받는 분",
          "style": {
            "fontSize": 7,
            "color": "#555",
            "padding": [
              0.5,
              0.5,
              0.5,
              0.5
            ]
          }
        },
        {
          "type": "text",
          "x": 17,
          "y": 10,
          "w": 52,
          "h": 7,
          "text": "{receiver.name}",
          "style": {
            "bold": true,
            "fontSize": 12
          }
        },
        {
          "type": "text",
          "x": 3,
          "y": 17,
          "w": 14,
          "h": 11,
          "text": "주소",
          "style": {
            "fontSize": 7,
            "color": "#555",
            "padding": [
              0.5,
              0.5,
              0.5,
              0.5
            ],
            "valign": "top"
          }
        },
        {
          "type": "text",
          "x": 17,
          "y": 17,
          "w": 52,
          "h": 11,
          "text": "{receiver.address}",
          "style": {
            "fontSize": 8.5,
            "valign": "top"
          }
        },
        {
          "type": "text",
          "x": 3,
          "y": 28,
          "w": 14,
          "h": 6,
          "text": "전화",
          "style": {
            "fontSize": 7,
            "color": "#555",
            "padding": [
              0.5,
              0.5,
              0.5,
              0.5
            ]
          }
        },
        {
          "type": "text",
          "x": 17,
          "y": 28,
          "w": 52,
          "h": 6,
          "text": "{phone(receiver.phone)}",
          "style": {
            "fontSize": 8.5
          }
        },
        {
          "type": "barcode",
          "x": 72,
          "y": 11,
          "w": 22,
          "h": 22,
          "expr": "\"https://track.example.com/\" + trackingNo",
          "format": "qr"
        },
        {
          "type": "line",
          "x": 3,
          "y": 35,
          "w": 91,
          "h": 0,
          "width": 0.2,
          "dash": "dashed",
          "color": "#888888"
        },
        {
          "type": "text",
          "x": 3,
          "y": 36,
          "w": 14,
          "h": 6,
          "text": "품목",
          "style": {
            "fontSize": 7,
            "color": "#555",
            "padding": [
              0.5,
              0.5,
              0.5,
              0.5
            ]
          }
        },
        {
          "type": "text",
          "x": 17,
          "y": 36,
          "w": 77,
          "h": 6,
          "text": "{item} × {qty}",
          "style": {
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 3,
          "y": 42,
          "w": 14,
          "h": 6,
          "text": "보내는 분",
          "style": {
            "fontSize": 7,
            "color": "#555",
            "padding": [
              0.5,
              0.5,
              0.5,
              0.5
            ]
          }
        },
        {
          "type": "text",
          "x": 17,
          "y": 42,
          "w": 77,
          "h": 6,
          "text": "{sender.name}  {phone(sender.phone)}",
          "style": {
            "fontSize": 8
          }
        },
        {
          "type": "barcode",
          "x": 3,
          "y": 49,
          "w": 60,
          "h": 15,
          "expr": "trackingNo",
          "format": "code128"
        },
        {
          "type": "text",
          "x": 65,
          "y": 50,
          "w": 29,
          "h": 6,
          "text": "주문번호",
          "style": {
            "fontSize": 7,
            "color": "#555",
            "padding": [
              0.5,
              0.5,
              0.5,
              0.5
            ],
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 65,
          "y": 56,
          "w": 29,
          "h": 7,
          "expr": "orderNo",
          "style": {
            "align": "right",
            "bold": true,
            "fontSize": 9
          }
        }
      ]
    }
  }
}

Sample data

{
  "sender": {
    "name": "(주)세컨드코리아 물류센터",
    "phone": "07077681326"
  },
  "rows": [
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261020",
      "orderNo": "ORD-1040",
      "receiver": {
        "name": "김민준",
        "address": "서울특별시 강남구 테헤란로 152",
        "phone": "01023450000"
      },
      "item": "무선 키보드",
      "qty": 1
    },
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261027",
      "orderNo": "ORD-1041",
      "receiver": {
        "name": "이서연",
        "address": "부산광역시 해운대구 센텀중앙로 79",
        "phone": "01023451111"
      },
      "item": "A4 복사용지 (박스)",
      "qty": 2
    },
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261034",
      "orderNo": "ORD-1042",
      "receiver": {
        "name": "박도윤",
        "address": "대구광역시 중구 동성로 30",
        "phone": "01023452222"
      },
      "item": "토너 카트리지",
      "qty": 3
    },
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261041",
      "orderNo": "ORD-1043",
      "receiver": {
        "name": "최지우",
        "address": "인천광역시 연수구 송도과학로 32",
        "phone": "01023453333"
      },
      "item": "USB-C 허브",
      "qty": 1
    },
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261048",
      "orderNo": "ORD-1044",
      "receiver": {
        "name": "정하준",
        "address": "광주광역시 서구 상무중앙로 110",
        "phone": "01023454444"
      },
      "item": "27형 모니터",
      "qty": 2
    },
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261055",
      "orderNo": "ORD-1045",
      "receiver": {
        "name": "강서윤",
        "address": "대전광역시 유성구 대학로 99",
        "phone": "01023455555"
      },
      "item": "무선 마우스",
      "qty": 3
    },
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261062",
      "orderNo": "ORD-1046",
      "receiver": {
        "name": "조은우",
        "address": "경기도 성남시 분당구 판교역로 166",
        "phone": "01023456666"
      },
      "item": "사무용 의자",
      "qty": 1
    },
    {
      "carrier": "한빛택배",
      "shipDate": "2026-10-20",
      "trackingNo": "568320261069",
      "orderNo": "ORD-1047",
      "receiver": {
        "name": "윤지호",
        "address": "경기도 수원시 영통구 광교로 145",
        "phone": "01023457777"
      },
      "item": "노트북 15형",
      "qty": 2
    }
  ]
}