FreeReportv0.13.0English

세금계산서 양식

표준 양식 세금계산서. 공급자 보관용(적색)과 공급받는자 보관용(청색)을 한 장에.

디자이너에서 열기

사용법

  1. 아래 예제 데이터와 같은 구조로 내 데이터를 만듭니다. 서버에서 JSON으로 내려 주면 됩니다.
  2. getTemplate(id)로 정의를 불러오거나, 아래 JSON을 내 프로젝트에 저장해서 씁니다.
  3. 회사 이름·로고·직인·문구는 [디자이너에서 열기]로 바꾼 뒤 [저장]으로 JSON을 받습니다.
  4. 인쇄, PDF, 엑셀, HWPX 저장은 뷰어 도구 모음에 이미 있습니다.
import { getTemplate, createViewer } from '@freereportjs/core';
import '@freereportjs/core/styles.css';

const t = getTemplate('tax-invoice');   // a fresh copy each call
createViewer(document.getElementById('report'), {
  definition: t.definition,
  data: 내데이터,   // 아래 예제 데이터와 같은 구조
});

직인은 데이터의 글자로 그려지는 생성 직인입니다. 실제 인감 이미지를 쓰려면 디자이너에서 직인 요소에 이미지를 지정하세요. 글꼴은 나눔고딕·나눔명조가 기본입니다.

데이터 구조

키종류필드
bookNonumber3
bookSeqnumber27
serialstring2026-1015-0027
datestring2026-10-15
kindstring청구
remarkstring10월분
supplier객체name, ceo, bizNo, address, type, item, phone
buyer객체name, ceo, bizNo, address, type, item, person, phone
cashobjectnull
checkobjectnull
billobjectnull
creditnumber2310000
items[]행 배열 (3행) · 상세 밴드가 반복date, name, spec, qty, price

보고서 정의 (JSON)

{
  "version": 1,
  "name": "세금계산서",
  "page": {
    "size": "A4",
    "margins": [
      12,
      15,
      12,
      15
    ]
  },
  "font": {
    "family": "Nanum Gothic",
    "size": 8.5
  },
  "dataSource": "items",
  "bands": {
    "title": {
      "height": 240,
      "canGrow": false,
      "elements": [
        {
          "type": "text",
          "x": 0,
          "y": 0,
          "w": 100,
          "h": 14,
          "text": "세 금 계 산 서",
          "style": {
            "color": "#c8102e",
            "bold": true,
            "fontSize": 18,
            "align": "center",
            "letterSpacing": 2,
            "border": "0.25 solid #c8102e"
          }
        },
        {
          "type": "text",
          "x": 100,
          "y": 0,
          "w": 20,
          "h": 14,
          "text": "(공급자\n보관용)",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 120,
          "y": 0,
          "w": 20,
          "h": 7,
          "text": "책 번 호",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 140,
          "y": 0,
          "w": 40,
          "h": 7,
          "text": "{bookNo} 권  {bookSeq} 호",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "text",
          "x": 120,
          "y": 7,
          "w": 20,
          "h": 7,
          "text": "일련번호",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 140,
          "y": 7,
          "w": 40,
          "h": 7,
          "text": "{serial}",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 14,
          "w": 7,
          "h": 32,
          "text": "공\n급\n자",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 8,
            "padding": 0.3,
            "lineHeight": 1.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 14,
          "w": 17,
          "h": 8,
          "text": "등록번호",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 14,
          "w": 66,
          "h": 8,
          "expr": "bizNo(supplier.bizNo)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 10,
            "align": "center",
            "bold": true,
            "letterSpacing": 0.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 22,
          "w": 17,
          "h": 8,
          "text": "상    호\n(법인명)",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 22,
          "w": 30,
          "h": 8,
          "expr": "supplier.name",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 54,
          "y": 22,
          "w": 10,
          "h": 8,
          "text": "성\n명",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 64,
          "y": 22,
          "w": 26,
          "h": 8,
          "expr": "supplier.ceo",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 30,
          "w": 17,
          "h": 8,
          "text": "사 업 장\n주    소",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 30,
          "w": 66,
          "h": 8,
          "expr": "supplier.address",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 38,
          "w": 17,
          "h": 8,
          "text": "업    태",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 38,
          "w": 25,
          "h": 8,
          "expr": "supplier.type",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 49,
          "y": 38,
          "w": 10,
          "h": 8,
          "text": "종목",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 59,
          "y": 38,
          "w": 31,
          "h": 8,
          "expr": "supplier.item",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 90,
          "y": 14,
          "w": 7,
          "h": 32,
          "text": "공\n급\n받\n는\n자",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 8,
            "padding": 0.3,
            "lineHeight": 1.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 14,
          "w": 17,
          "h": 8,
          "text": "등록번호",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 14,
          "w": 66,
          "h": 8,
          "expr": "bizNo(buyer.bizNo)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 10,
            "align": "center",
            "bold": true,
            "letterSpacing": 0.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 22,
          "w": 17,
          "h": 8,
          "text": "상    호\n(법인명)",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 22,
          "w": 30,
          "h": 8,
          "expr": "buyer.name",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 144,
          "y": 22,
          "w": 10,
          "h": 8,
          "text": "성\n명",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 154,
          "y": 22,
          "w": 26,
          "h": 8,
          "expr": "buyer.ceo",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 30,
          "w": 17,
          "h": 8,
          "text": "사 업 장\n주    소",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 30,
          "w": 66,
          "h": 8,
          "expr": "buyer.address",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 38,
          "w": 17,
          "h": 8,
          "text": "업    태",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 38,
          "w": 25,
          "h": 8,
          "expr": "buyer.type",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 139,
          "y": 38,
          "w": 10,
          "h": 8,
          "text": "종목",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 149,
          "y": 38,
          "w": 31,
          "h": 8,
          "expr": "buyer.item",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5
          }
        },
        {
          "type": "seal",
          "x": 75,
          "y": 18.5,
          "w": 15,
          "h": 15,
          "rotate": -6,
          "generate": {
            "text": "{supplier.name}",
            "centerText": "대표이사인",
            "shape": "circle"
          },
          "style": {
            "fontFamily": "Nanum Myeongjo"
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 46,
          "w": 34,
          "h": 6,
          "text": "작 성 일 자",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 34,
          "y": 46,
          "w": 12,
          "h": 6,
          "text": "공란수",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 46,
          "y": 46,
          "w": 52,
          "h": 6,
          "text": "공 급 가 액",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 98,
          "y": 46,
          "w": 42,
          "h": 6,
          "text": "세    액",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 140,
          "y": 46,
          "w": 40,
          "h": 6,
          "text": "비    고",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 52,
          "w": 34,
          "h": 8,
          "expr": "date",
          "format": "yyyy. MM. dd.",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 34,
          "y": 52,
          "w": 12,
          "h": 8,
          "expr": "max2(0, 11 - len(string(sum(qty * price))))",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 46,
          "y": 52,
          "w": 52,
          "h": 8,
          "expr": "sum(qty * price)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right",
            "bold": true
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 52,
          "w": 42,
          "h": 8,
          "expr": "round(sum(qty * price) * 0.1)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 140,
          "y": 52,
          "w": 40,
          "h": 8,
          "expr": "remark",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 60,
          "w": 8,
          "h": 6,
          "text": "월",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 8,
          "y": 60,
          "w": 8,
          "h": 6,
          "text": "일",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 16,
          "y": 60,
          "w": 50,
          "h": 6,
          "text": "품    목",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 66,
          "y": 60,
          "w": 18,
          "h": 6,
          "text": "규 격",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 84,
          "y": 60,
          "w": 14,
          "h": 6,
          "text": "수 량",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 98,
          "y": 60,
          "w": 22,
          "h": 6,
          "text": "단 가",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 120,
          "y": 60,
          "w": 26,
          "h": 6,
          "text": "공 급 가 액",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 146,
          "y": 60,
          "w": 20,
          "h": 6,
          "text": "세 액",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 166,
          "y": 60,
          "w": 14,
          "h": 6,
          "text": "비 고",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 66,
          "w": 8,
          "h": 7,
          "expr": "month(items[0].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 66,
          "w": 8,
          "h": 7,
          "expr": "day(items[0].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 66,
          "w": 50,
          "h": 7,
          "expr": "items[0].name",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 66,
          "w": 18,
          "h": 7,
          "expr": "items[0].spec",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 66,
          "w": 14,
          "h": 7,
          "expr": "items[0].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 66,
          "w": 22,
          "h": 7,
          "expr": "items[0].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 66,
          "w": 26,
          "h": 7,
          "expr": "iif(items[0], items[0].qty * items[0].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 66,
          "w": 20,
          "h": 7,
          "expr": "iif(items[0], round(items[0].qty * items[0].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 66,
          "w": 14,
          "h": 7,
          "expr": "items[0].note",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 73,
          "w": 8,
          "h": 7,
          "expr": "month(items[1].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 73,
          "w": 8,
          "h": 7,
          "expr": "day(items[1].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 73,
          "w": 50,
          "h": 7,
          "expr": "items[1].name",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 73,
          "w": 18,
          "h": 7,
          "expr": "items[1].spec",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 73,
          "w": 14,
          "h": 7,
          "expr": "items[1].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 73,
          "w": 22,
          "h": 7,
          "expr": "items[1].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 73,
          "w": 26,
          "h": 7,
          "expr": "iif(items[1], items[1].qty * items[1].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 73,
          "w": 20,
          "h": 7,
          "expr": "iif(items[1], round(items[1].qty * items[1].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 73,
          "w": 14,
          "h": 7,
          "expr": "items[1].note",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 80,
          "w": 8,
          "h": 7,
          "expr": "month(items[2].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 80,
          "w": 8,
          "h": 7,
          "expr": "day(items[2].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 80,
          "w": 50,
          "h": 7,
          "expr": "items[2].name",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 80,
          "w": 18,
          "h": 7,
          "expr": "items[2].spec",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 80,
          "w": 14,
          "h": 7,
          "expr": "items[2].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 80,
          "w": 22,
          "h": 7,
          "expr": "items[2].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 80,
          "w": 26,
          "h": 7,
          "expr": "iif(items[2], items[2].qty * items[2].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 80,
          "w": 20,
          "h": 7,
          "expr": "iif(items[2], round(items[2].qty * items[2].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 80,
          "w": 14,
          "h": 7,
          "expr": "items[2].note",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 87,
          "w": 8,
          "h": 7,
          "expr": "month(items[3].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 87,
          "w": 8,
          "h": 7,
          "expr": "day(items[3].date)",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 87,
          "w": 50,
          "h": 7,
          "expr": "items[3].name",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 87,
          "w": 18,
          "h": 7,
          "expr": "items[3].spec",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 87,
          "w": 14,
          "h": 7,
          "expr": "items[3].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 87,
          "w": 22,
          "h": 7,
          "expr": "items[3].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 87,
          "w": 26,
          "h": 7,
          "expr": "iif(items[3], items[3].qty * items[3].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 87,
          "w": 20,
          "h": 7,
          "expr": "iif(items[3], round(items[3].qty * items[3].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 87,
          "w": 14,
          "h": 7,
          "expr": "items[3].note",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 7
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 94,
          "w": 36,
          "h": 6,
          "text": "합 계 금 액",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 36,
          "y": 94,
          "w": 27,
          "h": 6,
          "text": "현    금",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 63,
          "y": 94,
          "w": 27,
          "h": 6,
          "text": "수    표",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 90,
          "y": 94,
          "w": 27,
          "h": 6,
          "text": "어    음",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 117,
          "y": 94,
          "w": 27,
          "h": 6,
          "text": "외상미수금",
          "style": {
            "color": "#c8102e",
            "align": "center",
            "border": "0.25 solid #c8102e",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 100,
          "w": 36,
          "h": 8,
          "expr": "sum(qty * price) + round(sum(qty * price) * 0.1)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right",
            "bold": true
          }
        },
        {
          "type": "field",
          "x": 36,
          "y": 100,
          "w": 27,
          "h": 8,
          "expr": "cash",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 63,
          "y": 100,
          "w": 27,
          "h": 8,
          "expr": "check",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 90,
          "y": 100,
          "w": 27,
          "h": 8,
          "expr": "bill",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 117,
          "y": 100,
          "w": 27,
          "h": 8,
          "expr": "credit",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "text",
          "x": 144,
          "y": 94,
          "w": 36,
          "h": 14,
          "text": "이 금액을 **{kind}** 함",
          "style": {
            "border": "0.25 solid #c8102e",
            "fontSize": 10,
            "align": "center",
            "color": "#c8102e"
          },
          "markup": true
        },
        {
          "type": "line",
          "x": 0,
          "y": 116,
          "w": 180,
          "h": 0,
          "dash": "dashed",
          "color": "#9aa3b2",
          "width": 0.25
        },
        {
          "type": "text",
          "x": 80,
          "y": 113.5,
          "w": 20,
          "h": 5,
          "text": "절 취 선",
          "style": {
            "align": "center",
            "fontSize": 6.5,
            "color": "#9aa3b2",
            "background": "#ffffff"
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 124,
          "w": 100,
          "h": 14,
          "text": "세 금 계 산 서",
          "style": {
            "color": "#1f3fbf",
            "bold": true,
            "fontSize": 18,
            "align": "center",
            "letterSpacing": 2,
            "border": "0.25 solid #1f3fbf"
          }
        },
        {
          "type": "text",
          "x": 100,
          "y": 124,
          "w": 20,
          "h": 14,
          "text": "(공급받는자\n보관용)",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 120,
          "y": 124,
          "w": 20,
          "h": 7,
          "text": "책 번 호",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 140,
          "y": 124,
          "w": 40,
          "h": 7,
          "text": "{bookNo} 권  {bookSeq} 호",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "text",
          "x": 120,
          "y": 131,
          "w": 20,
          "h": 7,
          "text": "일련번호",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 140,
          "y": 131,
          "w": 40,
          "h": 7,
          "text": "{serial}",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 138,
          "w": 7,
          "h": 32,
          "text": "공\n급\n자",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8,
            "padding": 0.3,
            "lineHeight": 1.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 138,
          "w": 17,
          "h": 8,
          "text": "등록번호",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 138,
          "w": 66,
          "h": 8,
          "expr": "bizNo(supplier.bizNo)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 10,
            "align": "center",
            "bold": true,
            "letterSpacing": 0.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 146,
          "w": 17,
          "h": 8,
          "text": "상    호\n(법인명)",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 146,
          "w": 30,
          "h": 8,
          "expr": "supplier.name",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 54,
          "y": 146,
          "w": 10,
          "h": 8,
          "text": "성\n명",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 64,
          "y": 146,
          "w": 26,
          "h": 8,
          "expr": "supplier.ceo",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 154,
          "w": 17,
          "h": 8,
          "text": "사 업 장\n주    소",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 154,
          "w": 66,
          "h": 8,
          "expr": "supplier.address",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 7,
          "y": 162,
          "w": 17,
          "h": 8,
          "text": "업    태",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 24,
          "y": 162,
          "w": 25,
          "h": 8,
          "expr": "supplier.type",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 49,
          "y": 162,
          "w": 10,
          "h": 8,
          "text": "종목",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 59,
          "y": 162,
          "w": 31,
          "h": 8,
          "expr": "supplier.item",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 90,
          "y": 138,
          "w": 7,
          "h": 32,
          "text": "공\n급\n받\n는\n자",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8,
            "padding": 0.3,
            "lineHeight": 1.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 138,
          "w": 17,
          "h": 8,
          "text": "등록번호",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 138,
          "w": 66,
          "h": 8,
          "expr": "bizNo(buyer.bizNo)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 10,
            "align": "center",
            "bold": true,
            "letterSpacing": 0.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 146,
          "w": 17,
          "h": 8,
          "text": "상    호\n(법인명)",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 146,
          "w": 30,
          "h": 8,
          "expr": "buyer.name",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 144,
          "y": 146,
          "w": 10,
          "h": 8,
          "text": "성\n명",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 154,
          "y": 146,
          "w": 26,
          "h": 8,
          "expr": "buyer.ceo",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 154,
          "w": 17,
          "h": 8,
          "text": "사 업 장\n주    소",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 154,
          "w": 66,
          "h": 8,
          "expr": "buyer.address",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 97,
          "y": 162,
          "w": 17,
          "h": 8,
          "text": "업    태",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 114,
          "y": 162,
          "w": 25,
          "h": 8,
          "expr": "buyer.type",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5
          }
        },
        {
          "type": "text",
          "x": 139,
          "y": 162,
          "w": 10,
          "h": 8,
          "text": "종목",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 149,
          "y": 162,
          "w": 31,
          "h": 8,
          "expr": "buyer.item",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5
          }
        },
        {
          "type": "seal",
          "x": 75,
          "y": 142.5,
          "w": 15,
          "h": 15,
          "rotate": -6,
          "generate": {
            "text": "{supplier.name}",
            "centerText": "대표이사인",
            "shape": "circle"
          },
          "style": {
            "fontFamily": "Nanum Myeongjo"
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 170,
          "w": 34,
          "h": 6,
          "text": "작 성 일 자",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 34,
          "y": 170,
          "w": 12,
          "h": 6,
          "text": "공란수",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 46,
          "y": 170,
          "w": 52,
          "h": 6,
          "text": "공 급 가 액",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 98,
          "y": 170,
          "w": 42,
          "h": 6,
          "text": "세    액",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 140,
          "y": 170,
          "w": 40,
          "h": 6,
          "text": "비    고",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 176,
          "w": 34,
          "h": 8,
          "expr": "date",
          "format": "yyyy. MM. dd.",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 34,
          "y": 176,
          "w": 12,
          "h": 8,
          "expr": "max2(0, 11 - len(string(sum(qty * price))))",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 46,
          "y": 176,
          "w": 52,
          "h": 8,
          "expr": "sum(qty * price)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right",
            "bold": true
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 176,
          "w": 42,
          "h": 8,
          "expr": "round(sum(qty * price) * 0.1)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 140,
          "y": 176,
          "w": 40,
          "h": 8,
          "expr": "remark",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 184,
          "w": 8,
          "h": 6,
          "text": "월",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 8,
          "y": 184,
          "w": 8,
          "h": 6,
          "text": "일",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 16,
          "y": 184,
          "w": 50,
          "h": 6,
          "text": "품    목",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 66,
          "y": 184,
          "w": 18,
          "h": 6,
          "text": "규 격",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 84,
          "y": 184,
          "w": 14,
          "h": 6,
          "text": "수 량",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 98,
          "y": 184,
          "w": 22,
          "h": 6,
          "text": "단 가",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 120,
          "y": 184,
          "w": 26,
          "h": 6,
          "text": "공 급 가 액",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 146,
          "y": 184,
          "w": 20,
          "h": 6,
          "text": "세 액",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 166,
          "y": 184,
          "w": 14,
          "h": 6,
          "text": "비 고",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 190,
          "w": 8,
          "h": 7,
          "expr": "month(items[0].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 190,
          "w": 8,
          "h": 7,
          "expr": "day(items[0].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 190,
          "w": 50,
          "h": 7,
          "expr": "items[0].name",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 190,
          "w": 18,
          "h": 7,
          "expr": "items[0].spec",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 190,
          "w": 14,
          "h": 7,
          "expr": "items[0].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 190,
          "w": 22,
          "h": 7,
          "expr": "items[0].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 190,
          "w": 26,
          "h": 7,
          "expr": "iif(items[0], items[0].qty * items[0].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 190,
          "w": 20,
          "h": 7,
          "expr": "iif(items[0], round(items[0].qty * items[0].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 190,
          "w": 14,
          "h": 7,
          "expr": "items[0].note",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 197,
          "w": 8,
          "h": 7,
          "expr": "month(items[1].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 197,
          "w": 8,
          "h": 7,
          "expr": "day(items[1].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 197,
          "w": 50,
          "h": 7,
          "expr": "items[1].name",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 197,
          "w": 18,
          "h": 7,
          "expr": "items[1].spec",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 197,
          "w": 14,
          "h": 7,
          "expr": "items[1].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 197,
          "w": 22,
          "h": 7,
          "expr": "items[1].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 197,
          "w": 26,
          "h": 7,
          "expr": "iif(items[1], items[1].qty * items[1].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 197,
          "w": 20,
          "h": 7,
          "expr": "iif(items[1], round(items[1].qty * items[1].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 197,
          "w": 14,
          "h": 7,
          "expr": "items[1].note",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 204,
          "w": 8,
          "h": 7,
          "expr": "month(items[2].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 204,
          "w": 8,
          "h": 7,
          "expr": "day(items[2].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 204,
          "w": 50,
          "h": 7,
          "expr": "items[2].name",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 204,
          "w": 18,
          "h": 7,
          "expr": "items[2].spec",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 204,
          "w": 14,
          "h": 7,
          "expr": "items[2].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 204,
          "w": 22,
          "h": 7,
          "expr": "items[2].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 204,
          "w": 26,
          "h": 7,
          "expr": "iif(items[2], items[2].qty * items[2].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 204,
          "w": 20,
          "h": 7,
          "expr": "iif(items[2], round(items[2].qty * items[2].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 204,
          "w": 14,
          "h": 7,
          "expr": "items[2].note",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 211,
          "w": 8,
          "h": 7,
          "expr": "month(items[3].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 8,
          "y": 211,
          "w": 8,
          "h": 7,
          "expr": "day(items[3].date)",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 16,
          "y": 211,
          "w": 50,
          "h": 7,
          "expr": "items[3].name",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5
          }
        },
        {
          "type": "field",
          "x": 66,
          "y": 211,
          "w": 18,
          "h": 7,
          "expr": "items[3].spec",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "align": "center"
          }
        },
        {
          "type": "field",
          "x": 84,
          "y": 211,
          "w": 14,
          "h": 7,
          "expr": "items[3].qty",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 98,
          "y": 211,
          "w": 22,
          "h": 7,
          "expr": "items[3].price",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 120,
          "y": 211,
          "w": 26,
          "h": 7,
          "expr": "iif(items[3], items[3].qty * items[3].price, null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 146,
          "y": 211,
          "w": 20,
          "h": 7,
          "expr": "iif(items[3], round(items[3].qty * items[3].price * 0.1), null)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 166,
          "y": 211,
          "w": 14,
          "h": 7,
          "expr": "items[3].note",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7
          }
        },
        {
          "type": "text",
          "x": 0,
          "y": 218,
          "w": 36,
          "h": 6,
          "text": "합 계 금 액",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 36,
          "y": 218,
          "w": 27,
          "h": 6,
          "text": "현    금",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 63,
          "y": 218,
          "w": 27,
          "h": 6,
          "text": "수    표",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 90,
          "y": 218,
          "w": 27,
          "h": 6,
          "text": "어    음",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "text",
          "x": 117,
          "y": 218,
          "w": 27,
          "h": 6,
          "text": "외상미수금",
          "style": {
            "color": "#1f3fbf",
            "align": "center",
            "border": "0.25 solid #1f3fbf",
            "fontSize": 7.5,
            "padding": 0.3,
            "lineHeight": 1.1
          }
        },
        {
          "type": "field",
          "x": 0,
          "y": 224,
          "w": 36,
          "h": 8,
          "expr": "sum(qty * price) + round(sum(qty * price) * 0.1)",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right",
            "bold": true
          }
        },
        {
          "type": "field",
          "x": 36,
          "y": 224,
          "w": 27,
          "h": 8,
          "expr": "cash",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 63,
          "y": 224,
          "w": 27,
          "h": 8,
          "expr": "check",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 90,
          "y": 224,
          "w": 27,
          "h": 8,
          "expr": "bill",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "field",
          "x": 117,
          "y": 224,
          "w": 27,
          "h": 8,
          "expr": "credit",
          "format": "#,##0",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 8.5,
            "align": "right"
          }
        },
        {
          "type": "text",
          "x": 144,
          "y": 218,
          "w": 36,
          "h": 14,
          "text": "이 금액을 **{kind}** 함",
          "style": {
            "border": "0.25 solid #1f3fbf",
            "fontSize": 10,
            "align": "center",
            "color": "#1f3fbf"
          },
          "markup": true
        }
      ]
    }
  }
}

예제 데이터

{
  "bookNo": 3,
  "bookSeq": 27,
  "serial": "2026-1015-0027",
  "date": "2026-10-15",
  "kind": "청구",
  "remark": "10월분",
  "supplier": {
    "name": "(주)세컨드코리아",
    "ceo": "구명석",
    "bizNo": "7928703276",
    "address": "경기도 파주시 와석순환로 507, 701호",
    "type": "정보통신업",
    "item": "소프트웨어 개발",
    "phone": "07077681326"
  },
  "buyer": {
    "name": "(주)한빛물산",
    "ceo": "김한빛",
    "bizNo": "1248112345",
    "address": "서울특별시 중구 세종대로 110, 12층",
    "type": "도소매",
    "item": "사무용품",
    "person": "김민준 과장",
    "phone": "0212345678"
  },
  "cash": null,
  "check": null,
  "bill": null,
  "credit": 2310000,
  "items": [
    {
      "date": "2026-10-15",
      "name": "FreeReport 회사 라이선스",
      "spec": "영구",
      "qty": 1,
      "price": 900000
    },
    {
      "date": "2026-10-15",
      "name": "보고서 양식 개발",
      "spec": "2종",
      "qty": 2,
      "price": 450000
    },
    {
      "date": "2026-10-15",
      "name": "기술 지원 (1년)",
      "spec": "원격",
      "qty": 1,
      "price": 300000
    }
  ]
}