복사
"$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"
}
]
}
}
}
]
}
}
}
}
}```
