kordoc 4.24.21 → 4.24.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/{-IS4RXPEZ.js → -POV3PVKW.js} +11 -11
- package/dist/{chunk-3RVASM4C.js → chunk-2NINEUJ5.js} +4 -4
- package/dist/{chunk-MMZUWRH6.js → chunk-2Q4ZLQQJ.js} +11 -11
- package/dist/{chunk-BV2YG7M6.js → chunk-2S4WERRK.js} +2 -2
- package/dist/{chunk-PDOWSDNM.js → chunk-2UNY7AKC.js} +2 -2
- package/dist/{chunk-F4GZFIUJ.js → chunk-3QWZCQI6.js} +2 -2
- package/dist/{chunk-E6G4B457.js → chunk-5L32QFLQ.js} +2 -2
- package/dist/{chunk-MYDHNNPA.js → chunk-6OG6WPA3.js} +43 -8
- package/dist/chunk-6OG6WPA3.js.map +1 -0
- package/dist/{chunk-NRCG3ASU.js → chunk-7JFJPFME.js} +2 -2
- package/dist/{chunk-WVZSTMCZ.cjs → chunk-7OZLM5MR.cjs} +3 -3
- package/dist/{chunk-WVZSTMCZ.cjs.map → chunk-7OZLM5MR.cjs.map} +1 -1
- package/dist/{chunk-V7S36XCU.cjs → chunk-AABI2ELF.cjs} +3 -3
- package/dist/{chunk-V7S36XCU.cjs.map → chunk-AABI2ELF.cjs.map} +1 -1
- package/dist/{chunk-O5ZCJEZ4.js → chunk-AXBEO5NB.js} +2 -2
- package/dist/{chunk-L556KKBU.cjs → chunk-HJ5YI5E6.cjs} +79 -79
- package/dist/{chunk-L556KKBU.cjs.map → chunk-HJ5YI5E6.cjs.map} +1 -1
- package/dist/{chunk-B3POEH7X.js → chunk-JDDKQD7W.js} +2 -2
- package/dist/{chunk-IZN5BTCW.js → chunk-NBETHWJH.js} +2 -2
- package/dist/{chunk-4OF7DHIT.js → chunk-NRPLZ4NO.js} +4 -4
- package/dist/{chunk-F6OHQLN7.js → chunk-NWNL5YYK.js} +38 -7
- package/dist/chunk-NWNL5YYK.js.map +1 -0
- package/dist/{chunk-NE75RO62.js → chunk-PG7OI72B.js} +2 -2
- package/dist/{chunk-BNEKESI4.js → chunk-QMAWEM4N.js} +2 -2
- package/dist/{chunk-MGCIQ43Y.js → chunk-SLS65M44.js} +3 -3
- package/dist/{chunk-BTBFKDPH.js → chunk-SYJZYHBB.js} +2 -2
- package/dist/{chunk-B5M676H3.cjs → chunk-T7Z554HT.cjs} +6 -6
- package/dist/{chunk-B5M676H3.cjs.map → chunk-T7Z554HT.cjs.map} +1 -1
- package/dist/{chunk-BUFGW3UJ.cjs → chunk-TBGNGQ2O.cjs} +213 -182
- package/dist/chunk-TBGNGQ2O.cjs.map +1 -0
- package/dist/{chunk-CPVXUEKF.js → chunk-VK3ZZLT7.js} +2 -2
- package/dist/{chunk-N45RCYBL.js → chunk-VK6S3WGD.js} +3 -3
- package/dist/{chunk-Z6ONQ63K.js → chunk-VOLDBZDF.js} +2 -2
- package/dist/{chunk-WQC4XWVT.js → chunk-WTFXQGND.js} +2 -2
- package/dist/{chunk-BMXWY36E.js → chunk-XEYTPWCF.js} +39 -8
- package/dist/chunk-XEYTPWCF.js.map +1 -0
- package/dist/{chunk-UNYH6MTO.js → chunk-XLVQUVL4.js} +2 -2
- package/dist/{chunk-OMGCVZ4W.cjs → chunk-YOLFNCQQ.cjs} +2 -2
- package/dist/{chunk-OMGCVZ4W.cjs.map → chunk-YOLFNCQQ.cjs.map} +1 -1
- package/dist/chunks-SGEDTBKI.js +10 -0
- package/dist/cli.js +30 -30
- package/dist/{formula-DHBBWQLC.js → formula-7YKP7MFB.js} +3 -3
- package/dist/{formula-G3FQTUOY.cjs → formula-IIPZAHPY.cjs} +9 -9
- package/dist/{formula-G3FQTUOY.cjs.map → formula-IIPZAHPY.cjs.map} +1 -1
- package/dist/{formula-I4EA7ULD.js → formula-TI6JRF6D.js} +4 -4
- package/dist/{image-ocr-THUO6YRG.cjs → image-ocr-4FIFSQ5E.cjs} +17 -17
- package/dist/{image-ocr-THUO6YRG.cjs.map → image-ocr-4FIFSQ5E.cjs.map} +1 -1
- package/dist/{image-ocr-QUVBGNWD.js → image-ocr-JQ65V7NG.js} +9 -9
- package/dist/{image-ocr-5YWVBRY6.js → image-ocr-Q7ZPUDKM.js} +6 -6
- package/dist/index.cjs +463 -428
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +43 -8
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +23 -23
- package/dist/{model-bundle-6RG5PO3R.js → model-bundle-RHZIWRK3.js} +5 -5
- package/dist/{models-CGYIGN6D.js → models-IX2U5E2X.js} +5 -5
- package/dist/{parse-worker-v2-F5NXYBU6.js → parse-worker-v2-WH2ZU73A.js} +12 -12
- package/dist/{parser-GJ4PKW7I.cjs → parser-HZI6SSX5.cjs} +172 -161
- package/dist/parser-HZI6SSX5.cjs.map +1 -0
- package/dist/{parser-G5QTRKII.js → parser-OSH4JPYU.js} +22 -11
- package/dist/parser-OSH4JPYU.js.map +1 -0
- package/dist/{parser-I2C5DUXC.js → parser-U2WRX53G.js} +25 -14
- package/dist/parser-U2WRX53G.js.map +1 -0
- package/dist/{pdf-ocr-U3I74Q4O.js → pdf-ocr-HUQ2RFMY.js} +9 -9
- package/dist/{pdf-ocr-TNW6YOPX.js → pdf-ocr-NPFRBGWJ.js} +6 -6
- package/dist/pdf-ocr-OA57HOVS.cjs +35 -0
- package/dist/{pdf-ocr-LJKCUXTE.cjs.map → pdf-ocr-OA57HOVS.cjs.map} +1 -1
- package/dist/{profile-io-5YZCFK7B.js → profile-io-MVJHVB5K.js} +3 -3
- package/dist/{rasterize-7VRHPOQX.js → rasterize-MBQRUDTT.js} +3 -3
- package/dist/{redact-doc-VK6VGBK3.js → redact-doc-Y6DPTTVM.js} +11 -11
- package/dist/{render-Y7J6DPRL.js → render-CSVVMX6Y.js} +7 -7
- package/dist/seal-Y7I5CXGZ.js +10 -0
- package/dist/{setup-4XTUDU4X.js → setup-BU2VPWG4.js} +3 -3
- package/dist/visual-OAJU373I.js +21 -0
- package/dist/{watch-SPZRLTKG.js → watch-RLLW3NTH.js} +12 -12
- package/package.json +1 -1
- package/dist/chunk-BMXWY36E.js.map +0 -1
- package/dist/chunk-BUFGW3UJ.cjs.map +0 -1
- package/dist/chunk-F6OHQLN7.js.map +0 -1
- package/dist/chunk-MYDHNNPA.js.map +0 -1
- package/dist/chunks-FYCQOIWO.js +0 -10
- package/dist/parser-G5QTRKII.js.map +0 -1
- package/dist/parser-GJ4PKW7I.cjs.map +0 -1
- package/dist/parser-I2C5DUXC.js.map +0 -1
- package/dist/pdf-ocr-LJKCUXTE.cjs +0 -35
- package/dist/seal-4QIZ3ZNI.js +0 -10
- package/dist/visual-VEMQJ52W.js +0 -21
- /package/dist/{-IS4RXPEZ.js.map → -POV3PVKW.js.map} +0 -0
- /package/dist/{chunk-3RVASM4C.js.map → chunk-2NINEUJ5.js.map} +0 -0
- /package/dist/{chunk-MMZUWRH6.js.map → chunk-2Q4ZLQQJ.js.map} +0 -0
- /package/dist/{chunk-BV2YG7M6.js.map → chunk-2S4WERRK.js.map} +0 -0
- /package/dist/{chunk-PDOWSDNM.js.map → chunk-2UNY7AKC.js.map} +0 -0
- /package/dist/{chunk-F4GZFIUJ.js.map → chunk-3QWZCQI6.js.map} +0 -0
- /package/dist/{chunk-E6G4B457.js.map → chunk-5L32QFLQ.js.map} +0 -0
- /package/dist/{chunk-NRCG3ASU.js.map → chunk-7JFJPFME.js.map} +0 -0
- /package/dist/{chunk-O5ZCJEZ4.js.map → chunk-AXBEO5NB.js.map} +0 -0
- /package/dist/{chunk-B3POEH7X.js.map → chunk-JDDKQD7W.js.map} +0 -0
- /package/dist/{chunk-IZN5BTCW.js.map → chunk-NBETHWJH.js.map} +0 -0
- /package/dist/{chunk-4OF7DHIT.js.map → chunk-NRPLZ4NO.js.map} +0 -0
- /package/dist/{chunk-NE75RO62.js.map → chunk-PG7OI72B.js.map} +0 -0
- /package/dist/{chunk-BNEKESI4.js.map → chunk-QMAWEM4N.js.map} +0 -0
- /package/dist/{chunk-MGCIQ43Y.js.map → chunk-SLS65M44.js.map} +0 -0
- /package/dist/{chunk-BTBFKDPH.js.map → chunk-SYJZYHBB.js.map} +0 -0
- /package/dist/{chunk-CPVXUEKF.js.map → chunk-VK3ZZLT7.js.map} +0 -0
- /package/dist/{chunk-N45RCYBL.js.map → chunk-VK6S3WGD.js.map} +0 -0
- /package/dist/{chunk-Z6ONQ63K.js.map → chunk-VOLDBZDF.js.map} +0 -0
- /package/dist/{chunk-WQC4XWVT.js.map → chunk-WTFXQGND.js.map} +0 -0
- /package/dist/{chunk-UNYH6MTO.js.map → chunk-XLVQUVL4.js.map} +0 -0
- /package/dist/{chunks-FYCQOIWO.js.map → chunks-SGEDTBKI.js.map} +0 -0
- /package/dist/{formula-DHBBWQLC.js.map → formula-7YKP7MFB.js.map} +0 -0
- /package/dist/{formula-I4EA7ULD.js.map → formula-TI6JRF6D.js.map} +0 -0
- /package/dist/{image-ocr-QUVBGNWD.js.map → image-ocr-JQ65V7NG.js.map} +0 -0
- /package/dist/{image-ocr-5YWVBRY6.js.map → image-ocr-Q7ZPUDKM.js.map} +0 -0
- /package/dist/{model-bundle-6RG5PO3R.js.map → model-bundle-RHZIWRK3.js.map} +0 -0
- /package/dist/{models-CGYIGN6D.js.map → models-IX2U5E2X.js.map} +0 -0
- /package/dist/{parse-worker-v2-F5NXYBU6.js.map → parse-worker-v2-WH2ZU73A.js.map} +0 -0
- /package/dist/{pdf-ocr-TNW6YOPX.js.map → pdf-ocr-HUQ2RFMY.js.map} +0 -0
- /package/dist/{pdf-ocr-U3I74Q4O.js.map → pdf-ocr-NPFRBGWJ.js.map} +0 -0
- /package/dist/{profile-io-5YZCFK7B.js.map → profile-io-MVJHVB5K.js.map} +0 -0
- /package/dist/{rasterize-7VRHPOQX.js.map → rasterize-MBQRUDTT.js.map} +0 -0
- /package/dist/{redact-doc-VK6VGBK3.js.map → redact-doc-Y6DPTTVM.js.map} +0 -0
- /package/dist/{render-Y7J6DPRL.js.map → render-CSVVMX6Y.js.map} +0 -0
- /package/dist/{seal-4QIZ3ZNI.js.map → seal-Y7I5CXGZ.js.map} +0 -0
- /package/dist/{setup-4XTUDU4X.js.map → setup-BU2VPWG4.js.map} +0 -0
- /package/dist/{visual-VEMQJ52W.js.map → visual-OAJU373I.js.map} +0 -0
- /package/dist/{watch-SPZRLTKG.js.map → watch-RLLW3NTH.js.map} +0 -0
package/README.md
CHANGED
|
@@ -108,7 +108,7 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
|
|
|
108
108
|
|
|
109
109
|
## 검증 결과
|
|
110
110
|
|
|
111
|
-
**4.22.14 · 2026-10-19 검증**(렌더 배치·PDF
|
|
111
|
+
**4.22.14 · 2026-10-19 검증**(렌더 배치·PDF 글·표·별표·OCR 은 4.24.23 · 2026-10-30). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
|
|
112
112
|
|
|
113
113
|
| 대상 | 규모 | 결과 |
|
|
114
114
|
| --- | --- | --- |
|
|
@@ -118,25 +118,25 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
|
|
|
118
118
|
| PDF 표 | 708쌍 · 2,331표 | 표 탐지 **99.83%** · 구조 일치 **98.24%** · 칸 F1 **0.9919** |
|
|
119
119
|
| HWPX 재조판 | 다중줄 25,187문단 (12개 폴더) | 모든 줄 시작 일치 **24,941/25,187 · 99.02%** |
|
|
120
120
|
| PDF 중첩표 (텍스트층) | 29문서 · 101표 | 구조·칸 내용 **101/101 · 100%** |
|
|
121
|
-
| 법령 별표 | 272건 · 346표 | HWP **346/346**, PDF **
|
|
121
|
+
| 법령 별표 | 272건 · 346표 | HWP **346/346**, PDF **343/346 · 99.13%** |
|
|
122
122
|
| PDF 전체 | 1,911문서 중 1,729건 채점 | 글 커버리지 **99.80%** |
|
|
123
|
-
| OCR | 53문서 · 102쪽 · 67표 | CER **0.0244** · 글자 재현율 **99.32%** · 표 구조 일치 **
|
|
123
|
+
| OCR | 53문서 · 102쪽 · 67표 | CER **0.0244** · 글자 재현율 **99.32%** · 표 구조 일치 **33/67** |
|
|
124
124
|
| opendataloader-bench | PDF 200문서 | 종합 기본값 **0.964** · OCR 끔 **0.939** |
|
|
125
|
-
| HWPX 렌더 배치 | 한컴 PDF 짝 1,565문서(쪽 수 일치 1,507) · 글 조각 111,
|
|
125
|
+
| HWPX 렌더 배치 | 한컴 PDF 짝 1,565문서(쪽 수 일치 1,507) · 글 조각 111,423 · 그림 4,259 | 글 위치(±1.5pt) **106,818 · 95.9%** · 그림 위치(±2pt) **4,169 · 97.9%** |
|
|
126
126
|
|
|
127
127
|
표 구조 점수와 셀 내용·화면 재현은 별도 지표입니다. 중첩표 100%는 위 101표에 한정하며 전체 PDF·조판의 완전 일치를 뜻하지 않습니다. 채점 범위·제외 기준·옵션별 수치·재현 방법은 [벤치마크 상세](docs/benchmarks.md)에 있습니다.
|
|
128
128
|
|
|
129
129
|
## 최근 업데이트
|
|
130
130
|
|
|
131
|
-
최신 배포: **[4.24.
|
|
131
|
+
최신 배포: **[4.24.23](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.23)** · 2026-10-30
|
|
132
132
|
|
|
133
133
|
| 버전 | 주요 변경 | 수치 변화 |
|
|
134
134
|
| --- | --- | --- |
|
|
135
|
+
| 4.24.23 | PDF 표: 쪽에서 갈린 행의 띠를 앞 행에 합침, 표 위 단위 표기 줄을 머리행으로 붙이지 않음 · 렌더: 문단 기준 개체 가로 위치 | 법령 별표 PDF 표 342 → **343**/346(**99.13%**) · OCR 표 구조 일치 31 → **33**/67 · 렌더 글 위치 106,790 → **106,818** · 그림 4,167 → **4,169**(하락 0) · 나머지 지표 그대로 |
|
|
136
|
+
| 4.24.22 | OCR·PDF 표: 흰 행 배경 윤곽이 들여쓰기 빈 열까지 늘인 괘선 · 렌더: 넘친 캐시 줄 뒤 문단, 글자 크기와 안 맞는 칸 캐시, 표 sz 첫 쪽 조각의 행 경계, 갈린 병합 칸 이음 조각, 쪽을 넘는 표의 병합 칸 높이 | OCR 표 구조 일치 26 → **31**/67 · 칸 F1 0.576 → **0.585** · 렌더 글 위치 106,570 → **106,790**(5문서 상승·하락 0) · 나머지 지표 그대로 |
|
|
135
137
|
| 4.24.21 | 렌더: 쪽에 걸친 문단의 각주 쪽, 나누지 않는 표의 쪽 넘김과 뒤 문단, 세로 오프셋으로 띄운 표 위 문단, 바탕쪽 단 끝 빈 구역, 쪽을 넘는 표의 넘친 여러 행 칸 | 렌더 쪽 수 일치 1,505 → **1,507**문서 · 글 위치 100,019 → **106,570**(기존 문서 4건 상승·하락 0, 쪽 수가 맞아져 새로 잰 문서 3건) · 측정 예외 1건(변경 이력) · 나머지 지표 그대로 |
|
|
136
138
|
| 4.24.20 | 렌더: 칸 안 여러 쪽 떠 있는 표 뒤 문단의 쪽, 줄이 나아가지 않게 저장된 칸 캐시, 쪽마다 되돌아가지 않는 캐시(쪽 밖 글) | 렌더 쪽 수 일치 1,504 → **1,505**문서 · 글 위치 100,015 → **100,019** · 규제영향분석서 116쪽 → 66쪽(PDF 64) · 나머지 지표 그대로 |
|
|
137
139
|
| 4.24.19 | 렌더: 쪽 나눔으로 저장한 칸·병합 칸의 쪽 넘김(겹쳐 그리기·빈 쪽 하나 더), 쪽 바닥에서 갈리는 행의 첫 줄 간격, BOM 붙은 HWPX 렌더 실패 | 렌더 쪽 수 일치 1,492 → **1,504**문서 · 렌더 실패 17 → **14** · 글 위치 97,156 → **100,015**(기존 문서 3건 상승·하락 0, 새로 잰 문서 8건) · 나머지 지표 그대로 |
|
|
138
|
-
| 4.24.18 | 렌더: 칸 내용을 지운 표의 낡은 높이, 한 줄에 나란한 인라인 표의 기준선, 쪽 바닥에서 갈린 표 행의 남는 높이, 같은 문단에 함께 앵커한 표의 다음 쪽 넘김, 줄 정보 없는 문단 뒤 저장 위치 | 렌더 글 위치 96,993 → **97,156**(한컴 PDF 짝 1,565문서, 12문서 상승·하락 0) · 그림 위치 4,148 → **4,149** · 나머지 지표 그대로 |
|
|
139
|
-
| 4.24.17 | OCR: 검출기가 놓친 목차 줄 머리 장 번호·리더 뒤 쪽 번호, 두 줄로 잡혀 버려진 표 칸, 기울인 판의 그림자 글머리 ❐·○와 목차 ◎, 괄호 짝·거북등 괄호 〔〕·평행 기호 ∥, 리더가 끊겨 갈린 목차 줄 · 선택 검출 모델 `ocrDet: "medium"`(#176) | OCR CER 0.0250 → **0.0244** · 글자 재현율 99.27% → **99.32%** · 정밀도 99.54% → **99.56%** · 열화 입력 9종 모두 개선(원본 0.0394 → **0.0386**, 흐림 0.0550 → **0.0522**, 스캔 0.0693 → **0.0668**) |
|
|
140
140
|
|
|
141
141
|
이전 버전과 상세 내용은 [변경 이력](CHANGELOG.md)에 있습니다.
|
|
142
142
|
|
|
@@ -64,10 +64,10 @@ import {
|
|
|
64
64
|
usesGaejosikMunche,
|
|
65
65
|
usesLogicStructure,
|
|
66
66
|
validateHwpx
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-2Q4ZLQQJ.js";
|
|
68
68
|
import {
|
|
69
69
|
blocksToChunks
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-QMAWEM4N.js";
|
|
71
71
|
import {
|
|
72
72
|
SPACE_EM_FIXED,
|
|
73
73
|
SPACE_EM_FONT,
|
|
@@ -92,20 +92,20 @@ import {
|
|
|
92
92
|
renderSceneToHtml,
|
|
93
93
|
simulateWrap,
|
|
94
94
|
simulateWrapKeepWord
|
|
95
|
-
} from "./chunk-
|
|
96
|
-
import "./chunk-
|
|
95
|
+
} from "./chunk-6OG6WPA3.js";
|
|
96
|
+
import "./chunk-7JFJPFME.js";
|
|
97
97
|
import {
|
|
98
98
|
blocksToPages
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-SYJZYHBB.js";
|
|
100
100
|
import "./chunk-VKVDMH7X.js";
|
|
101
101
|
import "./chunk-VQFA55IC.js";
|
|
102
102
|
import "./chunk-IQJKLIJV.js";
|
|
103
|
-
import "./chunk-
|
|
103
|
+
import "./chunk-3QWZCQI6.js";
|
|
104
104
|
import {
|
|
105
105
|
blocksToMarkdown,
|
|
106
106
|
flattenLayoutTables,
|
|
107
107
|
hasStructuredCellContent
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-JDDKQD7W.js";
|
|
109
109
|
import {
|
|
110
110
|
ValueCursor,
|
|
111
111
|
applySplices,
|
|
@@ -119,11 +119,11 @@ import {
|
|
|
119
119
|
isLabelCell,
|
|
120
120
|
placeSealHwpx,
|
|
121
121
|
scanSectionXml
|
|
122
|
-
} from "./chunk-
|
|
123
|
-
import "./chunk-
|
|
122
|
+
} from "./chunk-VK6S3WGD.js";
|
|
123
|
+
import "./chunk-NBETHWJH.js";
|
|
124
124
|
import {
|
|
125
125
|
VERSION
|
|
126
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-WTFXQGND.js";
|
|
127
127
|
import {
|
|
128
128
|
DEFAULT_REDACT_RULES,
|
|
129
129
|
redactMarkdown,
|
|
@@ -239,4 +239,4 @@ export {
|
|
|
239
239
|
usesLogicStructure,
|
|
240
240
|
validateHwpx
|
|
241
241
|
};
|
|
242
|
-
//# sourceMappingURL=-
|
|
242
|
+
//# sourceMappingURL=-POV3PVKW.js.map
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
splitRowBands,
|
|
32
32
|
starRun,
|
|
33
33
|
tallInkCount
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-NWNL5YYK.js";
|
|
35
35
|
import {
|
|
36
36
|
validateOcrOptions
|
|
37
37
|
} from "./chunk-IQJKLIJV.js";
|
|
@@ -42,11 +42,11 @@ import {
|
|
|
42
42
|
ocrSourcePath,
|
|
43
43
|
parseCharacterDict,
|
|
44
44
|
resolveOcrModels
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-5L32QFLQ.js";
|
|
46
46
|
import {
|
|
47
47
|
KordocError,
|
|
48
48
|
OPTIONAL_DEP_INSTALL_HINT
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-WTFXQGND.js";
|
|
50
50
|
|
|
51
51
|
// src/ocr/ruling-lines.ts
|
|
52
52
|
var INK_LUMA_MAX = 205;
|
|
@@ -2259,4 +2259,4 @@ export {
|
|
|
2259
2259
|
groupOcrLines,
|
|
2260
2260
|
ocrItemsToBlocks
|
|
2261
2261
|
};
|
|
2262
|
-
//# sourceMappingURL=chunk-
|
|
2262
|
+
//# sourceMappingURL=chunk-2NINEUJ5.js.map
|
|
@@ -51,10 +51,10 @@ import {
|
|
|
51
51
|
resolveParaHeading,
|
|
52
52
|
simulateWrap,
|
|
53
53
|
takeTocLeaders
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-6OG6WPA3.js";
|
|
55
55
|
import {
|
|
56
56
|
blocksToPages
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-SYJZYHBB.js";
|
|
58
58
|
import {
|
|
59
59
|
bmpToPng,
|
|
60
60
|
inlineImagesIntoMarkdown
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
tidyScriptTags,
|
|
77
77
|
unframeLayoutTables,
|
|
78
78
|
wrapScript
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-3QWZCQI6.js";
|
|
80
80
|
import {
|
|
81
81
|
MAX_COLS,
|
|
82
82
|
MAX_ROWS,
|
|
@@ -100,7 +100,7 @@ import {
|
|
|
100
100
|
noteTableHtml,
|
|
101
101
|
sanitizeText,
|
|
102
102
|
visibleText
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-JDDKQD7W.js";
|
|
104
104
|
import {
|
|
105
105
|
ANNOTATION_BLANK_RE,
|
|
106
106
|
ValueCursor,
|
|
@@ -133,7 +133,7 @@ import {
|
|
|
133
133
|
resolveUnmatched,
|
|
134
134
|
scanInlineSegments,
|
|
135
135
|
scanSectionXml
|
|
136
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-VK6S3WGD.js";
|
|
137
137
|
import {
|
|
138
138
|
MAX_DECOMPRESS_SIZE,
|
|
139
139
|
MAX_XML_DEPTH,
|
|
@@ -150,7 +150,7 @@ import {
|
|
|
150
150
|
localName,
|
|
151
151
|
rawTextContent,
|
|
152
152
|
readZipEntry
|
|
153
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-NBETHWJH.js";
|
|
154
154
|
import {
|
|
155
155
|
KordocError,
|
|
156
156
|
VERSION,
|
|
@@ -167,7 +167,7 @@ import {
|
|
|
167
167
|
toArrayBuffer,
|
|
168
168
|
unescapeHtml,
|
|
169
169
|
unzipLimitBytes
|
|
170
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-WTFXQGND.js";
|
|
171
171
|
|
|
172
172
|
// src/table/visual.ts
|
|
173
173
|
import { readFile as readFile2 } from "fs/promises";
|
|
@@ -19351,7 +19351,7 @@ var MIN_SIDE = 24;
|
|
|
19351
19351
|
async function ocrEmbeddedImages(blocks, options, warnings) {
|
|
19352
19352
|
const ocr = options?.ocr;
|
|
19353
19353
|
if (ocr !== true && ocr !== "force" && typeof ocr !== "function") return false;
|
|
19354
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
19354
|
+
const { parseImageDocument } = await import("./image-ocr-JQ65V7NG.js");
|
|
19355
19355
|
let inserted = false, unreadable = 0;
|
|
19356
19356
|
let failed = null;
|
|
19357
19357
|
const walk = async (list, depth) => {
|
|
@@ -34072,7 +34072,7 @@ function scriptsOff(r, off) {
|
|
|
34072
34072
|
}
|
|
34073
34073
|
async function parseImage(buffer, options) {
|
|
34074
34074
|
try {
|
|
34075
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
34075
|
+
const { parseImageDocument } = await import("./image-ocr-JQ65V7NG.js");
|
|
34076
34076
|
const { blocks, warnings, lines } = await parseImageDocument(buffer, options);
|
|
34077
34077
|
stripScriptTags({ blocks });
|
|
34078
34078
|
return {
|
|
@@ -34136,7 +34136,7 @@ async function parseHwp(buffer, options) {
|
|
|
34136
34136
|
async function parsePdf(buffer, options) {
|
|
34137
34137
|
let parsePdfDocument;
|
|
34138
34138
|
try {
|
|
34139
|
-
const mod = await import("./parser-
|
|
34139
|
+
const mod = await import("./parser-U2WRX53G.js");
|
|
34140
34140
|
parsePdfDocument = mod.parsePdfDocument;
|
|
34141
34141
|
} catch {
|
|
34142
34142
|
return {
|
|
@@ -34375,4 +34375,4 @@ export {
|
|
|
34375
34375
|
parseHwpml,
|
|
34376
34376
|
fillForm
|
|
34377
34377
|
};
|
|
34378
|
-
//# sourceMappingURL=chunk-
|
|
34378
|
+
//# sourceMappingURL=chunk-2Q4ZLQQJ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
KordocError
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WTFXQGND.js";
|
|
5
5
|
|
|
6
6
|
// src/shared/offline.ts
|
|
7
7
|
import { realpathSync } from "fs";
|
|
@@ -49,4 +49,4 @@ export {
|
|
|
49
49
|
getAccessRoot,
|
|
50
50
|
assertWithinRoot
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=chunk-
|
|
52
|
+
//# sourceMappingURL=chunk-2S4WERRK.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
escapeHtml,
|
|
3
3
|
sanitizeHref
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XLVQUVL4.js";
|
|
5
5
|
|
|
6
6
|
// src/script-tags.ts
|
|
7
7
|
var LITERAL_TAG = /<(?=\/?(?:u|sup|sub)>)/g;
|
|
@@ -1551,4 +1551,4 @@ export {
|
|
|
1551
1551
|
HEADING_RATIO_H3,
|
|
1552
1552
|
validateOcrOptions
|
|
1553
1553
|
};
|
|
1554
|
-
//# sourceMappingURL=chunk-
|
|
1554
|
+
//# sourceMappingURL=chunk-2UNY7AKC.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
visibleText
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JDDKQD7W.js";
|
|
5
5
|
|
|
6
6
|
// src/script-tags.ts
|
|
7
7
|
var LITERAL_TAG = /<(?=\/?(?:u|sup|sub)>)/g;
|
|
@@ -336,4 +336,4 @@ export {
|
|
|
336
336
|
HEADING_RATIO_H2,
|
|
337
337
|
HEADING_RATIO_H3
|
|
338
338
|
};
|
|
339
|
-
//# sourceMappingURL=chunk-
|
|
339
|
+
//# sourceMappingURL=chunk-3QWZCQI6.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
ensureModelsIn,
|
|
4
4
|
getModelStatusIn,
|
|
5
5
|
getModelsDir
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AXBEO5NB.js";
|
|
7
7
|
|
|
8
8
|
// src/ocr/models.ts
|
|
9
9
|
import { join } from "path";
|
|
@@ -171,4 +171,4 @@ export {
|
|
|
171
171
|
parseCharacterDict,
|
|
172
172
|
ocrModelPath
|
|
173
173
|
};
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
174
|
+
//# sourceMappingURL=chunk-5L32QFLQ.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
loadSharp,
|
|
4
4
|
rasterizePageSvg
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7JFJPFME.js";
|
|
6
6
|
import {
|
|
7
7
|
inlineImagesIntoMarkdown
|
|
8
8
|
} from "./chunk-VKVDMH7X.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
HEADING_RATIO_H3,
|
|
17
17
|
tidyScriptTags,
|
|
18
18
|
unframeLayoutTables
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3QWZCQI6.js";
|
|
20
20
|
import {
|
|
21
21
|
MAX_COLS,
|
|
22
22
|
MAX_ROWS,
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
mapPuaText,
|
|
34
34
|
markNonLayoutTable,
|
|
35
35
|
romanNumeral
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-JDDKQD7W.js";
|
|
37
37
|
import {
|
|
38
38
|
DEFAULT_CHAR,
|
|
39
39
|
DEFAULT_PARA_GEOM,
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
hwpxAppMajor,
|
|
48
48
|
parseRenderStyles,
|
|
49
49
|
readZipEntry
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-NBETHWJH.js";
|
|
51
51
|
import {
|
|
52
52
|
KordocError,
|
|
53
53
|
compareSectionPaths,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
sanitizeHref,
|
|
57
57
|
stripDtd,
|
|
58
58
|
toArrayBuffer
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-WTFXQGND.js";
|
|
60
60
|
|
|
61
61
|
// src/render/svg-render.ts
|
|
62
62
|
import JSZip from "jszip";
|
|
@@ -159,6 +159,7 @@ function solveRowHeights(cells, rowCount, maxTotal = Number.POSITIVE_INFINITY, s
|
|
|
159
159
|
return false;
|
|
160
160
|
}
|
|
161
161
|
if (evenOnly && missing.length !== 1) return false;
|
|
162
|
+
if (evenOnly && c.height > maxTotal) return false;
|
|
162
163
|
done.add(k);
|
|
163
164
|
if (c.height <= known) return false;
|
|
164
165
|
const each = (c.height - known) / missing.length;
|
|
@@ -168,7 +169,7 @@ function solveRowHeights(cells, rowCount, maxTotal = Number.POSITIVE_INFINITY, s
|
|
|
168
169
|
for (let r = 0; r < rowCount; r++) {
|
|
169
170
|
if (h[r] !== 0) continue;
|
|
170
171
|
let need = 0;
|
|
171
|
-
for (const { c, rows } of spans) if (rows[rows.length - 1] === r && rows.slice(0, -1).every((q) => h[q] > 0)) need = Math.max(need, c.height - rows.slice(0, -1).reduce((t, q) => t + h[q], 0));
|
|
172
|
+
for (const { c, rows } of spans) if (rows[rows.length - 1] === r && rows.slice(0, -1).every((q) => h[q] > 0) && c.height <= maxTotal) need = Math.max(need, c.height - rows.slice(0, -1).reduce((t, q) => t + h[q], 0));
|
|
172
173
|
if (need > 0) h[r] = need;
|
|
173
174
|
}
|
|
174
175
|
for (let again = true; again; ) {
|
|
@@ -180,7 +181,7 @@ function solveRowHeights(cells, rowCount, maxTotal = Number.POSITIVE_INFINITY, s
|
|
|
180
181
|
const overSz = total > maxTotal;
|
|
181
182
|
for (const { c, rows } of [...spans].sort((a, b) => a.rows[a.rows.length - 1] - b.rows[b.rows.length - 1] || b.rows[0] - a.rows[0])) {
|
|
182
183
|
const known = rows.reduce((s, r) => s + h[r], 0);
|
|
183
|
-
const add = Math.min(c.height - known, overSz && c.contentH != null && c.contentH >= c.height ? Number.POSITIVE_INFINITY : maxTotal - total);
|
|
184
|
+
const add = Math.min(c.height - known, overSz && (c.contentH != null && c.contentH >= c.height || c.height <= maxTotal / 2) ? Number.POSITIVE_INFINITY : maxTotal - total);
|
|
184
185
|
if (rows.length && add > 0) {
|
|
185
186
|
h[rows[rows.length - 1]] += add;
|
|
186
187
|
total += add;
|
|
@@ -12824,6 +12825,11 @@ function reflowBlockFlow(container, doc, styles, areaW, mode, counter, bodyH) {
|
|
|
12824
12825
|
if (Number.isFinite(bottom)) {
|
|
12825
12826
|
cursorV = bottom;
|
|
12826
12827
|
prevSpaceAfter = g?.spaceAfter ?? 0;
|
|
12828
|
+
const segsL = elements2(lsa).filter((e) => ln2(e) === "lineseg"), lastL = segsL[segsL.length - 1];
|
|
12829
|
+
if (bodyFlow && lastL && num2(lastL, "vertpos") + num2(lastL, "vertsize") > bodyH) {
|
|
12830
|
+
cursorV = num2(lastL, "vertsize") + num2(lastL, "spacing");
|
|
12831
|
+
prevSpaceAfter = 0;
|
|
12832
|
+
}
|
|
12827
12833
|
}
|
|
12828
12834
|
}
|
|
12829
12835
|
continue;
|
|
@@ -13505,8 +13511,15 @@ function planTableRows(tbl, cells, rowH, ty, MT, BODY_H, slack = 0, floatSpan, n
|
|
|
13505
13511
|
if (outT + rowY[nRows] + outB <= BODY_H) return rowH.map((h, r) => [{ page: 1, y: contMT + outT + rowY[r], h }]);
|
|
13506
13512
|
}
|
|
13507
13513
|
const spanStarts = cellSplit ? spanPartRows(cells, rowY, BODY_H) : /* @__PURE__ */ new Set();
|
|
13514
|
+
const declaredH = num(findChildByLocalName(tbl, "sz"), "height");
|
|
13515
|
+
const cutRow = declaredH > 0 && declaredH < rowY[nRows] - 1e3 ? rowY.findIndex((v, k) => k > hdrRows && k < nRows && Math.abs(v - declaredH) <= 20 && ty + v <= pageBottom) : -1;
|
|
13508
13516
|
for (let r = 0; r < nRows; r++) {
|
|
13509
13517
|
let h = rowH[r];
|
|
13518
|
+
if (r === cutRow && page === 0 && !first) {
|
|
13519
|
+
page++;
|
|
13520
|
+
y = contTop;
|
|
13521
|
+
first = true;
|
|
13522
|
+
}
|
|
13510
13523
|
const pieces = [];
|
|
13511
13524
|
if (!first && r >= hdrRows && spanStarts.has(r) && !cells.some((c) => c.rs > 1 && c.ra < r && c.ra + c.rs > r && (out[c.ra]?.[0]?.page ?? page) < page)) {
|
|
13512
13525
|
page++;
|
|
@@ -13590,6 +13603,11 @@ function planTableRows(tbl, cells, rowH, ty, MT, BODY_H, slack = 0, floatSpan, n
|
|
|
13590
13603
|
}
|
|
13591
13604
|
if (inK.length && next) toNext = Math.max(toNext, next.top - from + c.marginT + c.marginB);
|
|
13592
13605
|
}
|
|
13606
|
+
if (k > 0) for (const c of cells) {
|
|
13607
|
+
if (c.rs < 2 || c.ra + c.rs - 1 !== r) continue;
|
|
13608
|
+
const inK = cellLineBoxes(c, BODY_H).filter((b) => b.part === k);
|
|
13609
|
+
if (inK.length) ext = Math.max(ext, inK[inK.length - 1].bottom - inK[0].origin + c.marginT + c.marginB);
|
|
13610
|
+
}
|
|
13593
13611
|
const last = k === hParts;
|
|
13594
13612
|
const cellH = Math.max(0, ...rowCells.map((c) => num(findChildByLocalName(c.el, "cellSz"), "height")));
|
|
13595
13613
|
const firstH = Math.min(declared > 0 && ty + declared - y >= ext ? Math.min(pageBottom - y, ty + declared - y) : pageBottom - y, Math.max(ext, cellH));
|
|
@@ -15057,6 +15075,13 @@ function drawPara(p, ox, oy, areaW, ctx, depth, segPages) {
|
|
|
15057
15075
|
ax = ox + col * (ctx.cols.w + ctx.cols.gap);
|
|
15058
15076
|
aw = ctx.cols.w;
|
|
15059
15077
|
}
|
|
15078
|
+
if (findChildByLocalName(o.el, "pos")?.getAttribute("horzRelTo") === "PARA" && m.paraPrId != null) {
|
|
15079
|
+
const g = ctx.styles.paraGeom.get(m.paraPrId);
|
|
15080
|
+
if (g) {
|
|
15081
|
+
ax += g.marginLeft;
|
|
15082
|
+
aw -= g.marginLeft + g.marginRight;
|
|
15083
|
+
}
|
|
15084
|
+
}
|
|
15060
15085
|
let anchorLineV;
|
|
15061
15086
|
let anchorLineH = 0;
|
|
15062
15087
|
let anchorSeg;
|
|
@@ -15657,6 +15682,16 @@ function renderSectionToPages(root, geom, ctxBase, doReflow, reflowMode, masters
|
|
|
15657
15682
|
const lsa = findChildByLocalName(q, "linesegarray");
|
|
15658
15683
|
if (lsa) q.removeChild(lsa);
|
|
15659
15684
|
}
|
|
15685
|
+
else if (paras.some((q) => {
|
|
15686
|
+
const runs = elements(q).filter((r) => ln(r) === "run");
|
|
15687
|
+
if (!runs.length || runs.some((r) => elements(r).some((c) => ln(c) !== "t"))) return false;
|
|
15688
|
+
const ch = Math.max(...runs.map((r) => (ctxBase.styles.charPr.get(r.getAttribute("charPrIDRef") ?? "") ?? DEFAULT_CHAR).height));
|
|
15689
|
+
const lsa = findChildByLocalName(q, "linesegarray");
|
|
15690
|
+
return (lsa ? elements(lsa) : []).some((sg) => ln(sg) === "lineseg" && num(sg, "textheight") > ch * 1.5);
|
|
15691
|
+
})) for (const q of paras) {
|
|
15692
|
+
const lsa = findChildByLocalName(q, "linesegarray");
|
|
15693
|
+
if (lsa) q.removeChild(lsa);
|
|
15694
|
+
}
|
|
15660
15695
|
}
|
|
15661
15696
|
const absolute = !degenerate && absoluteTopCache(root, ML, BODY_W);
|
|
15662
15697
|
if (absolute) {
|
|
@@ -20331,4 +20366,4 @@ export {
|
|
|
20331
20366
|
cropRect,
|
|
20332
20367
|
extractRenderedRegions
|
|
20333
20368
|
};
|
|
20334
|
-
//# sourceMappingURL=chunk-
|
|
20369
|
+
//# sourceMappingURL=chunk-6OG6WPA3.js.map
|