메인 콘텐츠로 건너뛰기
field 값, field 구조, 규칙 검사 오류와 같은 추출 데이터를 내보낼 때 사용하는 OCR JSON 스키마입니다.
"$schema": "http://json-schema.org/draft-07/schema",
  "type": "object",
  "description": "Document.",
  "definitions": {
    "borderType": {
      "type": "string",
      "description": "Table cell border type.",
      "enum": [
        "unknown",
        "invisible",
        "visible"
      ]
    },
    "rect": {
      "type": "object",
      "description": "Rectangle {r:left, t:top, r:right, b:bottom}",
      "required": [
        "l",
        "t",
        "r",
        "b"
      ],
      "properties": {
        "l": {
          "type": "integer",
          "description": "Left coordinate."
        },
        "t": {
          "type": "integer",
          "description": "Top coordinate."
        },
        "r": {
          "type": "integer",
          "description": "Right coordinate."
        },
        "b": {
          "type": "integer",
          "description": "Bottom coordinate."
        }
      }
    },
    "confidence": {
      "type": "number",
      "description": "Confidence."
    },
    "listNumberingStyle": {
      "type": "string",
      "description": "List numbering style.",
      "enum": [
        "None",
        "Decimal",
        "UpperRoman",
        "LowerRoman",
        "UpperLetter",
        "LowerLetter",
        "Ordinal",
        "CardinalText",
        "OrdinalText",
        "Hex",
        "Chicago",
        "IdeographDigital",
        "JapaneseCounting",
        "Aiueo",
        "Iroha",
        "DecimalFullWidth",
        "DecimalHalfWidth",
        "JapaneseLegal",
        "JapaneseDigitalTenThousand",
        "DecimalEnclosedCircle",
        "DecimalFullWidth2",
        "AiueoFullWidth",
        "IrohaFullWidth",
        "DecimalZero",
        "Bullet",
        "Ganada",
        "Chosung",
        "DecimalEnclosedFullstop",
        "DecimalEnclosedParen",
        "DecimalEnclosedCircleChinese",
        "IdeographEnclosedCircle",
        "IdeographTraditional",
        "IdeographZodiac",
        "IdeographZodiacTraditional",
        "TaiwaneseCounting",
        "IdeographLegalTraditional",
        "TaiwaneseCountingThousand",
        "TaiwaneseDigital",
        "ChineseCounting",
        "ChineseLegalSimplified",
        "ChineseCountingThousand",
        "ApplicationDefined",
        "KoreanDigital",
        "KoreanCounting",
        "KoreanLegal",
        "KoreanDigital2",
        "Hebrew1",
        "ArabicAlpha",
        "Hebrew2",
        "ArabicAbjad",
        "HindiVowels",
        "HindiConsonants",
        "HindiNumbers",
        "HindiCounting",
        "ThaiLetters",
        "ThaiNumbers",
        "ThaiCounting",
        "VietnameseCounting",
        "NumberInDash",
        "RussianLower",
        "RussianUpper",
        "Burmese",
        "Unnumbered"
      ]
    },
    "listLevel": {
      "type": "object",
      "description": "List level desctiption",
      "required": [
        "levelIndex",
        "numberingStyle",
        "startNumber"
      ],
      "properties": {
        "levelIndex": {
          "type": "integer",
          "description": "Level index.",
          "minimum": 0
        },
        "numberingStyle": {
          "$ref": "#/definitions/listNumberingStyle",
          "description": "List numbering style."
        },
        "startNumber": {
          "type": "integer",
          "description": "Start number."
        }
      }
    },
    "picture": {
      "type": "object",
      "description": "Block with image.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Picture block ID."
        },
        "position": {
          "$ref": "#/definitions/rect"
        },
        "confidence": {
          "$ref": "#/definitions/confidence"
        }
      }
    },
    "barcode": {
      "type": "object",
      "description": "Barcode.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Barcode block ID."
        },
        "position": {
          "$ref": "#/definitions/rect"
        },
        "confidence": {
          "$ref": "#/definitions/confidence"
        },
        "type": {
          "type": "string",
          "description": "Barcode type.",
          "enum": [
            "Code39",
            "Interleaved25",
            "EAN13",
            "Code128",
            "EAN8",
            "PDF417",
            "Codabar",
            "UPCE",
            "Industrial25",
            "IATA25",
            "Matrix25",
            "Code93",
            "PostNet",
            "UCC128",
            "Patch",
            "Aztec",
            "DataMatrix",
            "QRCode",
            "UPCA",
            "MaxiCode",
            "Code32",
            "FullAscii",
            "IntelligentMail",
            "RoyalMail4State",
            "KIX",
            "Australia4State",
            "JapanPost",
            "NotFound"
          ]
        },
        "value": {
          "type": "string",
          "description": "Barcode value."
        },
        "supplementType": {
          "type": "string",
          "description": "Supplement type.",
          "enum": [
            "none",
            "2digits",
            "5digits"
          ]
        },
        "supplementValue": {
          "type": "string",
          "description": "Supplement value."
        }
      }
    },
    "lines": {
      "type": "array",
      "description": "An array of text strings in the text block ordered by reading direction.",
      "items": [
        {
          "type": "object",
          "description": "A line of text.",
          "properties": {
            "position": {
              "$ref": "#/definitions/rect"
            },
            "confidence": {
              "$ref": "#/definitions/confidence"
            },
            "text": {
              "type": "string",
              "description": "A line of text value."
            },
            "charParams": {
              "$ref": "#/definitions/charParams"
            },
            "words": {
              "type": "array",
              "description": "An array of words in a line of text ordered by reading direction.",
              "items": [
                {
                  "type": "object",
                  "description": "Word.",
                  "properties": {
                    "position": {
                      "$ref": "#/definitions/rect"
                    },
                    "confidence": {
                      "$ref": "#/definitions/confidence"
                    },
                    "text": {
                      "type": "string",
                      "description": "Word value."
                    },
                    "charParams": {
                      "$ref": "#/definitions/charParams"
                    },
                    "chars": {
                      "type": "array",
                      "description": "읽기 방향에 따라 정렬된 단어의 문자 배열.",
                      "items": [
                        {
                          "type": "object",
                          "description": "Word character.",
                          "properties": {
                            "confidence": {
                              "$ref": "#/definitions/confidence"
                            },
                            "text": {
                              "type": "string",
                              "description": "Word character value."
                            },
                            "position": {
                              "$ref": "#/definitions/rect"
                            },
                            "charParams": {
                              "$ref": "#/definitions/charParams"
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      ]
    },
    "charParams": {
      "type": "object",
      "description": "Symbol font formatting parameters.",
      "properties": {
        "bold": {
          "type": "boolean",
          "description": "Bold property state - if it is different from the container's one",
          "default": false
        },
        "italic": {
          "type": "boolean",
          "description": "이탤릭 속성 상태 - 컨테이너와 다른 경우",
          "default": false
        },
        "underlined": {
          "type": "boolean",
          "description": "밑줄 속성 상태 - 컨테이너와 다른 경우",
          "default": false
        },
        "strikeout": {
          "type": "boolean",
          "description": "취소선 속성 상태 - 컨테이너와 다른 경우",
          "default": false
        },
        "smallCaps": {
          "type": "boolean",
          "description": "작은 대문자 속성 상태 - 컨테이너와 다른 경우",
          "default": false
        },
        "superscript": {
          "type": "boolean",
          "description": "위 첨자 속성 상태 - 컨테이너와 다른 경우",
          "default": false
        },
        "subscript": {
          "type": "boolean",
          "description": "아래 첨자 속성 상태 - 컨테이너와 다른 경우",
          "default": false
        },
        "scaling": {
          "type": "integer",
          "description": "배율 속성 상태(1의 천분율) - 컨테이너와 다른 경우",
          "default": 1000,
          "minimum": 100,
          "maximum": 10000
        },
        "spacing": {
          "type": "integer",
          "description": "간격 속성 상태(트윕 단위, 1/20 pt, 1/1440 인치) - 컨테이너와 다른 경우",
          "default": 0,
          "minimum": -1000,
          "maximum": 1000
        },
        "fontSize": {
          "type": "integer",
          "description": "글꼴 크기 속성 상태(트윕 단위, 1/20 pt, 1/1440 인치) - 컨테이너와 다른 경우",
          "default": 200,
          "minimum": 50,
          "maximum": 4000
        },
        "fontName": {
          "type": "string",
          "description": "글꼴 이름 속성 상태 - 컨테이너와 다른 경우"
        },
        "color": {
          "type": "string",
          "description": "기호 글꼴 색상 속성 상태(6자리 형식 RRGGBB의 16진수 값) - 컨테이너와 다른 경우"
        },
        "backgroundColor": {
          "type": "string",
          "description": "기호 배경 색상 속성 상태(6자리 형식 RRGGBB의 16진수 값) - 컨테이너와 다른 경우"
        },
        "lang": {
          "type": "string",
          "description": "기호 언어 속성 상태(언어 및 국가 부분으로 구성, ISO 639 및 ISO 3166 참조) - 컨테이너와 다른 경우"
        }
      }
    }
  },
  "required": [
    "version",
    "producer"
  ],
  "properties": {
    "version": {
      "type": "string",
      "description": "문서 스키마 버전.",
      "default": "Vantage OCR.Skill JSON output v1.0"
    },
    "producer": {
      "type": "string",
      "description": "JSON 파일 작성자.",
      "default": "ABBYY Vantage OCR.Skill"
    },
    "languages": {
      "type": "array",
      "description": "문서 언어 목록.",
      "items": [
        {
          "type": "string",
          "description": "문서 언어."
        }
      ]
    },
    "layout": {
      "type": "object",
      "description": "레이아웃(물리적 구조).",
      "required": [
        "pages"
      ],
      "properties": {
        "corrected": {
          "type": "boolean",
          "description": "출력에서 보정된 이미지의 좌표.",
          "default": true
        },
        "pages": {
          "type": "array",
          "description": "첫 번째부터 마지막까지 순서대로 정렬된 문서 페이지 배열.",
          "items": [
            {
              "type": "object",
              "description": "문서 페이지.",
              "properties": {
                "width": {
                  "type": "integer",
                  "description": "페이지의 너비(픽셀 단위)."
                },
                "height": {
                  "type": "integer",
                  "description": "페이지의 높이(포인트 단위)."
                },
                "rotated": {
                  "type": "string",
                  "description": "원본 이미지를 기준으로 한 페이지 회전.",
                  "enum": [
                    "none",
                    "clockwise",
                    "counterclockwise",
                    "upside-down"
                  ]
                },
                "texts": {
                  "type": "array",
                  "description": "텍스트가 포함된 블록 배열.",
                  "items": [
                    {
                      "type": "object",
                      "description": "텍스트.",
                      "properties": {
                        "id" : {
                          "type": "string",
                          "description": "텍스트 블록 ID."
                        },
                        "position": {
                          "$ref": "#/definitions/rect"
                        },
                        "confidence": {
                          "$ref": "#/definitions/confidence"
                        },
                        "lines": {
                          "#ref": "#/definitions/lines"
                        }
                      }
                    }
                  ]
                },
                "tables": {
                  "type": "array",
                  "description": "테이블이 포함된 블록 배열.",
                  "items": [
                    {
                      "type": "object",
                      "description": "테이블.",
                      "properties": {
                        "id" : {
                          "type": "string",
                          "description": "테이블 블록 ID."
                        },
                        "position": {
                          "$ref": "#/definitions/rect"
                        },
                        "confidence": {
                          "$ref": "#/definitions/confidence"
                        },
                        "cells": {
                          "type": "array",
                          "description": "테이블 셀.",
                          "items": [
                            {
                              "type": "object",
                              "description": "테이블 셀.",
                              "properties": {
                                "id" : {
                                  "type": "string",
                                  "description": "테이블 셀 ID."
                                },
                                "position": {
                                  "$ref": "#/definitions/rect"
                                },
                                "confidence": {
                                  "$ref": "#/definitions/confidence"
                                },
                                "colRowPosition": {
                                  "type": "object",
                                  "description": "열-행 시스템에서의 셀 좌표 {l:왼쪽 열, t:위쪽 행, r:오른쪽 열, b:아래쪽 행}",
                                  "properties":{
                                    "l": {
                                      "type": "integer",
                                      "description": "왼쪽 구분선 인덱스."
                                    },
                                    "t": {
                                      "type": "integer",
                                      "description": "위쪽 구분선 인덱스."
                                    },
                                    "r": {
                                      "type": "integer",
                                      "description": "오른쪽 구분선 인덱스."
                                    },
                                    "b": {
                                      "type": "integer",
                                      "description": "아래쪽 구분선 인덱스."
                                    }
                                  }
                                },
                                "borders": {
                                  "type": "object",
                                  "description": "테이블 셀 테두리 유형 {l:왼쪽, t:위쪽, r:오른쪽, b:아래쪽}",
                                  "properties":{
                                    "l": {
                                      "$ref": "#/definitions/borderType",
                                      "description": "왼쪽 테두리 유형."
                                    },
                                    "t": {
                                      "$ref": "#/definitions/borderType",
                                      "description": "위쪽 테두리 유형."
                                    },
                                    "r": {
                                      "$ref": "#/definitions/borderType",
                                      "description": "오른쪽 테두리 유형."
                                    },
                                    "b": {
                                      "$ref": "#/definitions/borderType",
                                      "description": "아래쪽 테두리 유형."
                                    }
                                  }
                                },
                                "contentType": {
                                  "type": "string",
                                  "description": "테이블 셀 콘텐츠 유형: [text, picture, barcode].",
                                  "enum": [
                                    "text",
                                    "picture",
                                    "barcode"
                                  ]
                                },
                                "picture": {
                                  "$ref": "#/definitions/picture"
                                },
                                "barcode": {
                                  "$ref": "#/definitions/barcode"
                                },
                                "lines": {
                                  "$ref": "#/definitions/lines"
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  ]
                },
                "pictures": {
                  "type": "array",
                  "description": "그림이 포함된 블록의 배열입니다.",
                  "items": [
                    {
                      "$ref": "#/definitions/picture"
                    }
                  ]
                },
                "barcodes": {
                  "type": "array",
                  "description": "바코드가 포함된 블록의 배열입니다.",
                  "items": [
                    {
                      "$ref": "#/definitions/barcode"
                    }
                  ]
                },
                "separators": {
                  "type": "array",
                  "description": "구분선이 포함된 블록의 배열입니다.",
                  "items": [
                    {
                      "type": "object",
                      "description": "구분선입니다.",
                      "properties": {
                        "position": {
                          "$ref": "#/definitions/rect"
                        },
                        "confidence": {
                          "$ref": "#/definitions/confidence"
                        },
                        "color": {
                          "type": "integer",
                          "description": "구분선 색상입니다."
                        },
                        "thickness": {
                          "type": "integer",
                          "description": "구분선 두께입니다."
                        },
                        "type": {
                          "type": "string",
                          "description": "구분선 유형입니다.",
                          "enum": [
                            "unknown",
                            "solid",
                            "dotted"
                          ]
                        },
                        "endPoints": {
                          "type": "object",
                          "description": "구분선 끝점의 좌표 {startX:startX, startY:startY, endX:endX, endY:endY}",
                          "properties":{
                            "startX": {
                              "type": "integer",
                              "description": "시작점 X 좌표입니다."
                            },
                            "startY": {
                              "type": "integer",
                              "description": "시작점 Y 좌표입니다."
                            },
                            "endX": {
                              "type": "integer",
                              "description": "끝점 X 좌표입니다."
                            },
                            "endY": {
                              "type": "integer",
                              "description": "끝점 Y 좌표입니다."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "checkmarks": {
                  "type": "array",
                  "description": "체크 표시가 포함된 블록의 배열입니다.",
                  "items": [
                    {
                      "type": "object",
                      "description": "체크 표시입니다.",
                      "properties": {
                        "position": {
                          "$ref": "#/definitions/rect"
                        },
                        "confidence": {
                          "$ref": "#/definitions/confidence"
                        },
                        "value": {
                          "type": "string",
                          "description": "체크 표시 값입니다.",
                          "enum": [
                            "checked",
                            "unchecked",
                            "corrected",
                            "unknown"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          ]
        }
      }
    },
    "content": {
      "type": "object",
      "description": "문서 콘텐츠(논리적 구조)입니다.",
      "properties": {
        "paragraphs": {
          "type": "array",
          "description": "읽기 방향에 따라 정렬된 문서 단락의 배열입니다.",
          "items": [
            {
              "type": "object",
              "description": "문서 단락입니다.",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "문서 내 단락 ID입니다."
                },
                "role": {
                  "type": "string",
                  "description": "문서 내 단락의 역할입니다.",
                  "enum": [
                    "other",
                    "text",
                    "heading",
                    "headingNumber",
                    "tableOfContents",
                    "tableText",
                    "runningTitle",
                    "endNote",
                    "footNote",
                    "tableCaption",
                    "tableHeading",
                    "pictureCaption",
                    "artefact"
                  ]
                },
                "formatting": {
                  "type": "object",
                  "description": "단락 서식입니다.",
                  "properties": {
                    "aligning": {
                      "type": "string",
                      "description": "단락 내 텍스트 정렬입니다.",
                      "enum": [
                        "left",
                        "center",
                        "right",
                        "justified",
                        "justifiedForArabic"
                      ]
                    },
                    "lineSpacing": {
                      "type": "integer",
                      "description": "단락 줄 간격입니다.",
                      "minimum": 0,
                      "default": 0
                    }
                  }
                },
                "layoutReferences": {
                  "type": "array",
                  "description": "단락 내 텍스트 순서대로 페이지 블록 구조에서 문서 단락 부분 소스의 배열입니다.",
                  "items": [
                    {
                      "type": "object",
                      "description": "블록/셀 내 참조 블록/셀 ID, 단락 인덱스 및 줄 범위입니다.",
                      "required": [
                        "blockId",
                        "blockType",
                        "parIndex",
                        "firstLine",
                        "lastLine"
                      ],
                      "properties": {
                        "blockId": {
                          "type": "string",
                          "description": "포함하는 텍스트 블록 또는 테이블 셀 ID입니다."
                        },
                        "blockType": {
                          "type": "string",
                          "description": "단락 컨테이너 유형입니다.",
                          "enum": [
                            "text",
                            "cell"
                          ]
                        },
                        "sectionIndex": {
                          "type": "integer",
                          "description": "페이지의 논리적 섹션 인덱스입니다(단락을 포함하는 섹션이 없는 경우 -1, 예: 머리글, 바닥글 등).",
                          "minimum": -1
                        },
                        "columnIndex": {
                          "type": "integer",
                          "description": "논리적 섹션 내 열 인덱스입니다(단락을 포함하는 열이 없는 경우 -1, 예: 삽입 텍스트, 각주 등).",
                          "minimum": -1
                        },
                        "lineNumbering": {
                          "type": "boolean",
                          "description": "단락이 줄 번호 매기기 영역에 포함된 경우 true입니다."
                        },
                        "parIndex": {
                          "type": "integer",
                          "description": "블록 또는 테이블 셀 내 단락 인덱스입니다.",
                          "minimum": 0
                        },
                        "firstLine": {
                          "type": "integer",
                          "description": "블록 또는 테이블 셀 내 단락의 첫 번째 줄 인덱스입니다.",
                          "minimum": 0
                        },
                        "lastLine": {
                          "type": "integer",
                          "description": "블록 또는 테이블 셀 내 단락의 마지막 줄 인덱스입니다.",
                          "minimum": 0
                        }
                      }
                    }
                  ]
                },
                "text": {
                  "type": "string",
                  "description": "단락 텍스트입니다."
                },
                "listReference": {
                  "type": "object",
                  "description": "단락을 포함하는 목록에 대한 참조입니다.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "목록 ID입니다."
                    },
                    "levelIndex": {
                      "type": "integer",
                      "description": "현재 목록 항목 수준 인덱스입니다.",
                      "minimum": 0,
                      "default": 0
                    },
                    "ordinalNumber": {
                      "type": "integer",
                      "description": "현재 목록 항목 서수입니다.",
                      "minimum": -1,
                      "default": 0
                    }
                  }
                },
                
              }
            }
          ]
        },
        "lists": {
          "type": "array",
          "description": "문서에서 발견된 목록의 배열입니다.",
          "items": [
            {
              "type": "object",
              "description": "목록 설명입니다.",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "문서 내 목록 ID입니다."
                },
                "listLevels": {
                  "type": "array",
                  "description": "목록 수준 설명의 배열입니다.",
                  "items": [
                    {
                      "$ref": "#/definitions/listLevel"
                    }
                  ]
                }
              }
            }
          ]
        }
      }
    }
  }
}```