kordoc 4.21.12 → 4.21.13

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.
Files changed (124) hide show
  1. package/README.md +19 -4
  2. package/dist/{-RX7XZ3YG.js → -4UPN43UD.js} +11 -11
  3. package/dist/{chunk-73GNY7ZX.js → chunk-3YD3SAQW.js} +3 -3
  4. package/dist/{chunk-JILWW4LO.cjs → chunk-57EOUEB4.cjs} +13 -13
  5. package/dist/{chunk-JILWW4LO.cjs.map → chunk-57EOUEB4.cjs.map} +1 -1
  6. package/dist/{chunk-GTNCTRNQ.js → chunk-6EB77P5L.js} +2 -2
  7. package/dist/{chunk-OOTAJZXG.js → chunk-B7CZZBKZ.js} +2 -2
  8. package/dist/{chunk-UB55GFHD.js → chunk-C7OK4MBX.js} +3 -3
  9. package/dist/{chunk-7BHPPEWK.js → chunk-DAR2TMBL.js} +10 -10
  10. package/dist/{chunk-4OQ3JGNI.js → chunk-DI7WHDXG.js} +2 -2
  11. package/dist/{chunk-ZUFZNZHO.cjs → chunk-DU2HC36X.cjs} +22 -22
  12. package/dist/{chunk-ZUFZNZHO.cjs.map → chunk-DU2HC36X.cjs.map} +1 -1
  13. package/dist/{chunk-UJARPT2G.js → chunk-FFBZG5MK.js} +2 -2
  14. package/dist/{chunk-2SOILEGV.js → chunk-FW7QWLBL.js} +3 -3
  15. package/dist/{chunk-FM33S6NN.js → chunk-HCCQTNDS.js} +2 -2
  16. package/dist/{chunk-D37FRGQT.js → chunk-HIUHLJQD.js} +2 -2
  17. package/dist/{chunk-XER4EWKZ.cjs → chunk-IS2EXA5D.cjs} +6 -6
  18. package/dist/{chunk-XER4EWKZ.cjs.map → chunk-IS2EXA5D.cjs.map} +1 -1
  19. package/dist/{chunk-SBHOOTMT.js → chunk-JGAY3BHY.js} +3 -3
  20. package/dist/{chunk-R6MRWKSL.js → chunk-JQBUWC6W.js} +2 -2
  21. package/dist/{chunk-YGQBX5D3.js → chunk-K23A2CP7.js} +2 -2
  22. package/dist/{chunk-IUHBMZT2.cjs → chunk-LOO3UV25.cjs} +3 -3
  23. package/dist/{chunk-IUHBMZT2.cjs.map → chunk-LOO3UV25.cjs.map} +1 -1
  24. package/dist/{chunk-4BGPR423.js → chunk-LXYM2EST.js} +2 -2
  25. package/dist/{chunk-AQBOKFSW.js → chunk-N4UL5NEO.js} +4 -4
  26. package/dist/{chunk-A6CQXV52.js → chunk-NX5A22B6.js} +2 -2
  27. package/dist/{chunk-QVMQ2NDS.js → chunk-QOIZF57S.js} +2 -2
  28. package/dist/{chunk-4QVMW26U.js → chunk-RMMMNE2V.js} +4 -4
  29. package/dist/{chunk-4PNWGIFX.js → chunk-UAEY6VPV.js} +6 -6
  30. package/dist/{chunk-5JNM2FTX.cjs → chunk-V7LTELVS.cjs} +3 -3
  31. package/dist/{chunk-5JNM2FTX.cjs.map → chunk-V7LTELVS.cjs.map} +1 -1
  32. package/dist/{chunk-OAU5DO2L.js → chunk-VC2SS3OH.js} +2 -2
  33. package/dist/{chunk-Y27V3EBB.js → chunk-VXNR2JYB.js} +2 -2
  34. package/dist/{chunk-W5EQNSO6.cjs → chunk-WPZOIIM2.cjs} +2 -2
  35. package/dist/{chunk-W5EQNSO6.cjs.map → chunk-WPZOIIM2.cjs.map} +1 -1
  36. package/dist/{chunk-W5MRFI5K.js → chunk-YJ4J6EG5.js} +2 -2
  37. package/dist/{chunk-PBNL6TOS.js → chunk-YM4AEOS4.js} +2 -2
  38. package/dist/chunks-A67IJS56.js +10 -0
  39. package/dist/cli.js +30 -30
  40. package/dist/{formula-E3BHMBU7.cjs → formula-BCWYXJPE.cjs} +9 -9
  41. package/dist/{formula-E3BHMBU7.cjs.map → formula-BCWYXJPE.cjs.map} +1 -1
  42. package/dist/{formula-AT252TKF.js → formula-N4TZPWWU.js} +4 -4
  43. package/dist/{formula-VUABWUUV.js → formula-ZFB6JGOW.js} +3 -3
  44. package/dist/{image-ocr-JYUWUJVP.js → image-ocr-4Y23NCW4.js} +9 -9
  45. package/dist/{image-ocr-RXNTLXZ4.js → image-ocr-7YHK7Q4C.js} +6 -6
  46. package/dist/{image-ocr-24253ZWW.cjs → image-ocr-RE7BFBGV.cjs} +15 -15
  47. package/dist/{image-ocr-24253ZWW.cjs.map → image-ocr-RE7BFBGV.cjs.map} +1 -1
  48. package/dist/index.cjs +276 -276
  49. package/dist/index.js +5 -5
  50. package/dist/mcp.js +22 -22
  51. package/dist/{model-bundle-KPTPEAK5.js → model-bundle-WISSN6YF.js} +5 -5
  52. package/dist/{models-34A4VIVW.js → models-SG4VHU65.js} +5 -5
  53. package/dist/{parse-worker-v2-HYLWPIVX.js → parse-worker-v2-VNLAK2VC.js} +33 -16
  54. package/dist/parse-worker-v2-VNLAK2VC.js.map +1 -0
  55. package/dist/{parser-JRVDYJJ6.cjs → parser-KYZD3NNB.cjs} +257 -234
  56. package/dist/parser-KYZD3NNB.cjs.map +1 -0
  57. package/dist/{parser-FQLPABMD.js → parser-V3R7TKU5.js} +37 -14
  58. package/dist/parser-V3R7TKU5.js.map +1 -0
  59. package/dist/{parser-OJAOIUTR.js → parser-VPVVJDB3.js} +34 -11
  60. package/dist/parser-VPVVJDB3.js.map +1 -0
  61. package/dist/pdf-ocr-G2SX5FKB.cjs +19 -0
  62. package/dist/{pdf-ocr-TLUFBJKD.cjs.map → pdf-ocr-G2SX5FKB.cjs.map} +1 -1
  63. package/dist/pdf-ocr-KNNBYXVO.js +22 -0
  64. package/dist/pdf-ocr-PP2GGLS3.js +18 -0
  65. package/dist/{profile-io-SFW2AOCN.js → profile-io-72YURUWT.js} +3 -3
  66. package/dist/{rasterize-S4X4E2CH.js → rasterize-UPE2IZLP.js} +3 -3
  67. package/dist/{redact-doc-ZYUGJ7BI.js → redact-doc-GW6ILR52.js} +11 -11
  68. package/dist/{render-I7CNQ2H7.js → render-2XLPO3ZA.js} +7 -7
  69. package/dist/seal-VLJCGOP7.js +10 -0
  70. package/dist/{setup-H6A2OJMU.js → setup-GE4JKPHY.js} +3 -3
  71. package/dist/visual-7NPMIPSC.js +20 -0
  72. package/dist/{watch-GFZYBGKG.js → watch-XBVNOG6B.js} +12 -12
  73. package/package.json +7 -2
  74. package/dist/chunks-DNAX75UI.js +0 -10
  75. package/dist/parse-worker-v2-HYLWPIVX.js.map +0 -1
  76. package/dist/parser-FQLPABMD.js.map +0 -1
  77. package/dist/parser-JRVDYJJ6.cjs.map +0 -1
  78. package/dist/parser-OJAOIUTR.js.map +0 -1
  79. package/dist/pdf-ocr-KIQBC3N7.js +0 -22
  80. package/dist/pdf-ocr-TLUFBJKD.cjs +0 -19
  81. package/dist/pdf-ocr-ZYCLPDS4.js +0 -18
  82. package/dist/seal-ZHGMRUHX.js +0 -10
  83. package/dist/visual-NOQSOXZ5.js +0 -20
  84. /package/dist/{-RX7XZ3YG.js.map → -4UPN43UD.js.map} +0 -0
  85. /package/dist/{chunk-73GNY7ZX.js.map → chunk-3YD3SAQW.js.map} +0 -0
  86. /package/dist/{chunk-GTNCTRNQ.js.map → chunk-6EB77P5L.js.map} +0 -0
  87. /package/dist/{chunk-OOTAJZXG.js.map → chunk-B7CZZBKZ.js.map} +0 -0
  88. /package/dist/{chunk-UB55GFHD.js.map → chunk-C7OK4MBX.js.map} +0 -0
  89. /package/dist/{chunk-7BHPPEWK.js.map → chunk-DAR2TMBL.js.map} +0 -0
  90. /package/dist/{chunk-4OQ3JGNI.js.map → chunk-DI7WHDXG.js.map} +0 -0
  91. /package/dist/{chunk-UJARPT2G.js.map → chunk-FFBZG5MK.js.map} +0 -0
  92. /package/dist/{chunk-2SOILEGV.js.map → chunk-FW7QWLBL.js.map} +0 -0
  93. /package/dist/{chunk-FM33S6NN.js.map → chunk-HCCQTNDS.js.map} +0 -0
  94. /package/dist/{chunk-D37FRGQT.js.map → chunk-HIUHLJQD.js.map} +0 -0
  95. /package/dist/{chunk-SBHOOTMT.js.map → chunk-JGAY3BHY.js.map} +0 -0
  96. /package/dist/{chunk-R6MRWKSL.js.map → chunk-JQBUWC6W.js.map} +0 -0
  97. /package/dist/{chunk-YGQBX5D3.js.map → chunk-K23A2CP7.js.map} +0 -0
  98. /package/dist/{chunk-4BGPR423.js.map → chunk-LXYM2EST.js.map} +0 -0
  99. /package/dist/{chunk-AQBOKFSW.js.map → chunk-N4UL5NEO.js.map} +0 -0
  100. /package/dist/{chunk-A6CQXV52.js.map → chunk-NX5A22B6.js.map} +0 -0
  101. /package/dist/{chunk-QVMQ2NDS.js.map → chunk-QOIZF57S.js.map} +0 -0
  102. /package/dist/{chunk-4QVMW26U.js.map → chunk-RMMMNE2V.js.map} +0 -0
  103. /package/dist/{chunk-4PNWGIFX.js.map → chunk-UAEY6VPV.js.map} +0 -0
  104. /package/dist/{chunk-OAU5DO2L.js.map → chunk-VC2SS3OH.js.map} +0 -0
  105. /package/dist/{chunk-Y27V3EBB.js.map → chunk-VXNR2JYB.js.map} +0 -0
  106. /package/dist/{chunk-W5MRFI5K.js.map → chunk-YJ4J6EG5.js.map} +0 -0
  107. /package/dist/{chunk-PBNL6TOS.js.map → chunk-YM4AEOS4.js.map} +0 -0
  108. /package/dist/{chunks-DNAX75UI.js.map → chunks-A67IJS56.js.map} +0 -0
  109. /package/dist/{formula-AT252TKF.js.map → formula-N4TZPWWU.js.map} +0 -0
  110. /package/dist/{formula-VUABWUUV.js.map → formula-ZFB6JGOW.js.map} +0 -0
  111. /package/dist/{image-ocr-JYUWUJVP.js.map → image-ocr-4Y23NCW4.js.map} +0 -0
  112. /package/dist/{image-ocr-RXNTLXZ4.js.map → image-ocr-7YHK7Q4C.js.map} +0 -0
  113. /package/dist/{model-bundle-KPTPEAK5.js.map → model-bundle-WISSN6YF.js.map} +0 -0
  114. /package/dist/{models-34A4VIVW.js.map → models-SG4VHU65.js.map} +0 -0
  115. /package/dist/{pdf-ocr-KIQBC3N7.js.map → pdf-ocr-KNNBYXVO.js.map} +0 -0
  116. /package/dist/{pdf-ocr-ZYCLPDS4.js.map → pdf-ocr-PP2GGLS3.js.map} +0 -0
  117. /package/dist/{profile-io-SFW2AOCN.js.map → profile-io-72YURUWT.js.map} +0 -0
  118. /package/dist/{rasterize-S4X4E2CH.js.map → rasterize-UPE2IZLP.js.map} +0 -0
  119. /package/dist/{redact-doc-ZYUGJ7BI.js.map → redact-doc-GW6ILR52.js.map} +0 -0
  120. /package/dist/{render-I7CNQ2H7.js.map → render-2XLPO3ZA.js.map} +0 -0
  121. /package/dist/{seal-ZHGMRUHX.js.map → seal-VLJCGOP7.js.map} +0 -0
  122. /package/dist/{setup-H6A2OJMU.js.map → setup-GE4JKPHY.js.map} +0 -0
  123. /package/dist/{visual-NOQSOXZ5.js.map → visual-7NPMIPSC.js.map} +0 -0
  124. /package/dist/{watch-GFZYBGKG.js.map → watch-XBVNOG6B.js.map} +0 -0
package/README.md CHANGED
@@ -12,7 +12,7 @@ HWP 3.x·5.x, HWPX, HWPML, PDF, XLS·XLSX, DOCX, PPTX, PNG·JPG·WebP를 Markdow
12
12
  [English](README-EN.md) · [상세 사용법](docs/usage.md) · [벤치마크](docs/benchmarks.md) · [변경 이력](CHANGELOG.md)
13
13
 
14
14
  - 📊 **PDF 공개 벤치 종합 0.963** — opendataloader-bench 200문서. 공개 12개 파서 비교 1위(2026-09-29 기록). [측정 조건](docs/benchmarks.md)
15
- - 🇰🇷 **한국 공문서 표 구조 100%** — 원본 HWPX 2,424문서의 보이는 표 **10,342개 전부 구조 일치**. [4.21.12 검증](docs/benchmarks.md)
15
+ - 🇰🇷 **한국 공문서 표 구조 100%** — 원본 HWPX 2,424문서의 보이는 표 **10,342개 전부 구조 일치**. [4.21.13 검증](docs/benchmarks.md)
16
16
 
17
17
  [![Kordoc 활용하기 — 영상 보기](./docs/video-demo.jpg)](https://youtu.be/Q13GmgDcIw0)
18
18
 
@@ -98,7 +98,7 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
98
98
 
99
99
  ## 검증 결과
100
100
 
101
- **4.21.12 · 2026-10-10 배포 검증**. 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
101
+ **4.21.13 · 2026-10-10 배포 검증**. 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
102
102
 
103
103
  | 대상 | 규모 | 결과 |
104
104
  | --- | --- | --- |
@@ -111,14 +111,15 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
111
111
 
112
112
  표 구조 점수와 셀 내용·화면 재현은 별도 지표입니다. 채점 범위·제외 기준·전 벤치 문서별 비교는 [벤치마크 상세](docs/benchmarks.md)에 있습니다.
113
113
 
114
- 외부 PDF 벤치 **opendataloader-bench 200문서**는 4.21.12 배포 측정에서 기본값 종합 **0.963**, OCR 끔 **0.939**입니다. [옵션별 결과와 재현 방법](docs/benchmarks.md#pdf--markdown--opendataloader-bench)
114
+ 외부 PDF 벤치 **opendataloader-bench 200문서**는 4.21.13 배포 측정에서 기본값 종합 **0.963**, OCR 끔 **0.939**입니다. [옵션별 결과와 재현 방법](docs/benchmarks.md#pdf--markdown--opendataloader-bench)
115
115
 
116
116
  ## 최근 업데이트
117
117
 
118
- 최신 배포: **[4.21.12](https://github.com/chrisryugj/kordoc/releases/tag/v4.21.12)** · 2026-10-10
118
+ 최신 배포: **[4.21.13](https://github.com/chrisryugj/kordoc/releases/tag/v4.21.13)** · 2026-10-10
119
119
 
120
120
  | 버전 | 주요 변경 |
121
121
  | --- | --- |
122
+ | 4.21.13 | PDF 법령 별표 쪽 넘김 행 — 번호 열이 다음 차례면 새 행, "가)" 항목도 다음 항목 머리로, 쪽을 넘는 긴 칸은 두 행을 덮는 한 칸으로; parse-worker 가 닫힌 stdout 에서 조용히 끝남(#142) (법령 별표 PDF 표 구조 일치 96.82 → 97.40%, 문서별 하락 0) |
122
123
  | 4.21.12 | PDF 칸 숫자 줄·걸친 글상자·배분 이름표·첨자 겹침 — 칸을 채운 숫자 줄만 잇기, 서로 걸친 글상자는 글로, 숫자 행 배분 두 음절 붙이기, 붙은 첨자 겹침 허용 0.25em (PDF 어절 F1 98.86 → 98.87%·ODL 표 TEDS 0.9799 → 0.9802, 문서별 하락 0) |
123
124
  | 4.21.11 | PDF 목차·라벨탭 상자·칸 첨자 — 목차 리더 걷기, 제목 칩 상자를 글로, 목차 칸 제목·쪽 번호 짝짓기, 서식 칸 붙은 첨자 흡수 (PDF 글 정확도 99.58 → 99.64%·OCR CER 0.0421 → 0.0412, 문서별 하락 0 — 열화 OCR 은 표본 쪽 셋 이동) |
124
125
  | 4.21.10 | PDF 흐름도 표·괄호 풀이 — 선 격자 표를 품은 클러스터 후보 거름, 짧은 괄호 풀이 앞 줄 꺾임 이음 (PDF 어절 F1 98.84 → 98.85%·OCR CER 0.0443 → 0.0421, 문서별 하락 0) |
@@ -147,6 +148,20 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
147
148
 
148
149
  4.18.8 셀 편집은 같은 수의 비어 있지 않은 줄에 한정됩니다. 빈 줄·줄 추가/삭제·리터럴 `<br>`·모호한 매핑은 계속 건너뜁니다. [전체 변경 이력](CHANGELOG.md)
149
150
 
151
+ ## 자주 묻는 질문
152
+
153
+ **Q. HWP·HWPX 파일을 Markdown으로 바꾸려면?**
154
+ `npx kordoc 문서.hwp -o 문서.md` 한 줄입니다. 한컴오피스 없이 파일을 직접 읽으며, 여러 파일은 `npx kordoc *.hwpx -d ./output`으로 한 번에 바꿉니다.
155
+
156
+ **Q. Claude·Cursor 같은 AI가 한글 문서를 읽게 하려면?**
157
+ `npx -y kordoc setup`으로 MCP를 등록하면 AI가 파일 경로만 받아 HWP·PDF·엑셀을 읽고, 비교하고, 양식을 채웁니다.
158
+
159
+ **Q. 인터넷이 막힌 폐쇄망에서도 되나요?**
160
+ 됩니다. `KORDOC_OFFLINE=1`이 외부 통신을 모두 막고, OCR도 API 키 없이 로컬 CPU에서 돕니다. [폐쇄망 설치](docs/offline-deployment.md)
161
+
162
+ **Q. RAG 색인용으로 쓸 수 있나요?**
163
+ `--format chunks`가 제목 경로를 붙인 구조 청크와 독립 표 청크를 냅니다. 표를 HTML 없이 받으려면 `--table-format gfm`(API는 `tableFormat: "gfm"`)을 씁니다. Python·Java에서는 [Python SDK](sdk/python/README.md)·[Java SDK](sdk/java/README.md)로 부릅니다.
164
+
150
165
  ## 문서·보안
151
166
 
152
167
  - [상세 사용법](docs/usage.md): 전체 CLI·MCP 도구·API·지원 포맷
@@ -54,17 +54,17 @@ import {
54
54
  unknownFontWarnings,
55
55
  usesGaejosikMunche,
56
56
  validateHwpx
57
- } from "./chunk-7BHPPEWK.js";
57
+ } from "./chunk-DAR2TMBL.js";
58
58
  import {
59
59
  blocksToPages
60
- } from "./chunk-UJARPT2G.js";
60
+ } from "./chunk-FFBZG5MK.js";
61
61
  import {
62
62
  applySplices,
63
63
  buildParagraphSplices,
64
64
  buildRangeSplices,
65
65
  placeSealHwpx,
66
66
  scanSectionXml
67
- } from "./chunk-SBHOOTMT.js";
67
+ } from "./chunk-JGAY3BHY.js";
68
68
  import {
69
69
  DEFAULT_REDACT_RULES,
70
70
  redactMarkdown,
@@ -72,7 +72,7 @@ import {
72
72
  } from "./chunk-3WSNLH4B.js";
73
73
  import {
74
74
  blocksToChunks
75
- } from "./chunk-OAU5DO2L.js";
75
+ } from "./chunk-VC2SS3OH.js";
76
76
  import {
77
77
  SPACE_EM_FIXED,
78
78
  SPACE_EM_FONT,
@@ -97,20 +97,20 @@ import {
97
97
  renderSceneToHtml,
98
98
  simulateWrap,
99
99
  simulateWrapKeepWord
100
- } from "./chunk-4PNWGIFX.js";
100
+ } from "./chunk-UAEY6VPV.js";
101
101
  import "./chunk-7FCNOKOR.js";
102
- import "./chunk-PBNL6TOS.js";
102
+ import "./chunk-YM4AEOS4.js";
103
103
  import "./chunk-VQFA55IC.js";
104
- import "./chunk-W5MRFI5K.js";
104
+ import "./chunk-YJ4J6EG5.js";
105
105
  import {
106
106
  blocksToMarkdown,
107
107
  flattenLayoutTables,
108
108
  hasStructuredCellContent
109
- } from "./chunk-QVMQ2NDS.js";
110
- import "./chunk-Y27V3EBB.js";
109
+ } from "./chunk-QOIZF57S.js";
110
+ import "./chunk-VXNR2JYB.js";
111
111
  import {
112
112
  VERSION
113
- } from "./chunk-4BGPR423.js";
113
+ } from "./chunk-LXYM2EST.js";
114
114
  export {
115
115
  AGENCY_COMMON_NAME,
116
116
  BUILTIN_TEMPLATES,
@@ -204,4 +204,4 @@ export {
204
204
  usesGaejosikMunche,
205
205
  validateHwpx
206
206
  };
207
- //# sourceMappingURL=-RX7XZ3YG.js.map
207
+ //# sourceMappingURL=-4UPN43UD.js.map
@@ -5,11 +5,11 @@ import {
5
5
  HEADING_RATIO_H2,
6
6
  HEADING_RATIO_H3,
7
7
  tidyScriptTags
8
- } from "./chunk-PBNL6TOS.js";
8
+ } from "./chunk-YM4AEOS4.js";
9
9
  import {
10
10
  safeMax,
11
11
  safeMin
12
- } from "./chunk-4BGPR423.js";
12
+ } from "./chunk-LXYM2EST.js";
13
13
 
14
14
  // src/pdf/line-extract.ts
15
15
  import { OPS } from "pdfjs-dist/legacy/build/pdf.mjs";
@@ -8746,4 +8746,4 @@ export {
8746
8746
  UNRULED_REGION_TABLES,
8747
8747
  mergeOcrImageRegions
8748
8748
  };
8749
- //# sourceMappingURL=chunk-73GNY7ZX.js.map
8749
+ //# sourceMappingURL=chunk-3YD3SAQW.js.map
@@ -10,10 +10,10 @@ var _chunkTK3FDAEEcjs = require('./chunk-TK3FDAEE.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkZUFZNZHOcjs = require('./chunk-ZUFZNZHO.cjs');
13
+ var _chunkDU2HC36Xcjs = require('./chunk-DU2HC36X.cjs');
14
14
 
15
15
 
16
- var _chunkW5EQNSO6cjs = require('./chunk-W5EQNSO6.cjs');
16
+ var _chunkWPZOIIM2cjs = require('./chunk-WPZOIIM2.cjs');
17
17
 
18
18
  // src/ocr/ruling-lines.ts
19
19
  var INK_LUMA_MAX = 205;
@@ -1415,7 +1415,7 @@ var OcrEngine = class _OcrEngine {
1415
1415
  ]);
1416
1416
  const sharpAny = sharpModRaw;
1417
1417
  const sharpMod = typeof sharpAny === "function" ? sharpAny : _nullishCoalesce(sharpAny.default, () => ( sharpAny));
1418
- const dir = _chunkZUFZNZHOcjs.getOcrModelsDir.call(void 0, );
1418
+ const dir = _chunkDU2HC36Xcjs.getOcrModelsDir.call(void 0, );
1419
1419
  const sessionOpts = {
1420
1420
  graphOptimizationLevel: "all",
1421
1421
  executionProviders: ["cpu"],
@@ -1423,11 +1423,11 @@ var OcrEngine = class _OcrEngine {
1423
1423
  // paddle2onnx 변환 잔여물 W 로그 폭주 억제
1424
1424
  };
1425
1425
  const [det, rec, dictYml] = await Promise.all([
1426
- ortMod.InferenceSession.create(_path.join.call(void 0, dir, _chunkZUFZNZHOcjs.OCR_DET_MODEL.filename), sessionOpts),
1427
- ortMod.InferenceSession.create(_path.join.call(void 0, dir, _chunkZUFZNZHOcjs.OCR_REC_MODEL.filename), sessionOpts),
1428
- _promises.readFile.call(void 0, _path.join.call(void 0, dir, _chunkZUFZNZHOcjs.OCR_REC_DICT.filename), "utf-8")
1426
+ ortMod.InferenceSession.create(_path.join.call(void 0, dir, _chunkDU2HC36Xcjs.OCR_DET_MODEL.filename), sessionOpts),
1427
+ ortMod.InferenceSession.create(_path.join.call(void 0, dir, _chunkDU2HC36Xcjs.OCR_REC_MODEL.filename), sessionOpts),
1428
+ _promises.readFile.call(void 0, _path.join.call(void 0, dir, _chunkDU2HC36Xcjs.OCR_REC_DICT.filename), "utf-8")
1429
1429
  ]);
1430
- const dict = _chunkZUFZNZHOcjs.parseCharacterDict.call(void 0, dictYml);
1430
+ const dict = _chunkDU2HC36Xcjs.parseCharacterDict.call(void 0, dictYml);
1431
1431
  if (dict.length === 0) throw new Error("OCR \uC0AC\uC804 \uD30C\uC2F1 \uC2E4\uD328 \u2014 \uBAA8\uB378 \uCE90\uC2DC\uB97C \uC0AD\uC81C \uD6C4 \uC7AC\uB2E4\uC6B4\uB85C\uB4DC\uD558\uC138\uC694");
1432
1432
  return new _OcrEngine({ det, rec, dict, ort: ortMod, sharp: sharpMod });
1433
1433
  }
@@ -1755,7 +1755,7 @@ async function tryImport(name, loader) {
1755
1755
  return await loader();
1756
1756
  } catch (e) {
1757
1757
  throw new Error(
1758
- `\uB0B4\uC7A5 OCR \uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 optional dependency '${name}' \uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \`npm install ${name}\` \uD6C4 \uB2E4\uC2DC \uC2E4\uD589\uD558\uC138\uC694.${_chunkW5EQNSO6cjs.OPTIONAL_DEP_INSTALL_HINT} \uC6D0\uC778: ${e.message}`
1758
+ `\uB0B4\uC7A5 OCR \uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 optional dependency '${name}' \uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \`npm install ${name}\` \uD6C4 \uB2E4\uC2DC \uC2E4\uD589\uD558\uC138\uC694.${_chunkWPZOIIM2cjs.OPTIONAL_DEP_INSTALL_HINT} \uC6D0\uC778: ${e.message}`
1759
1759
  );
1760
1760
  }
1761
1761
  }
@@ -1869,7 +1869,7 @@ async function runPdfOcr(buffer, targets, mode, warnings, onProgress, detectTabl
1869
1869
  () => Promise.resolve().then(() => _interopRequireWildcard(require("@hyzyla/pdfium")))
1870
1870
  );
1871
1871
  if (mode === "builtin") {
1872
- await _chunkZUFZNZHOcjs.ensureOcrModels.call(void 0, (p) => {
1872
+ await _chunkDU2HC36Xcjs.ensureOcrModels.call(void 0, (p) => {
1873
1873
  if (p.phase === "download" && p.downloaded === 0) {
1874
1874
  process.stderr.write(`[kordoc-ocr] ${p.spec.name} \uB2E4\uC6B4\uB85C\uB4DC \uC911 (~${p.spec.sizeMb}MB)...
1875
1875
  `);
@@ -1950,7 +1950,7 @@ async function ocrOnePage(page, pageNo, mode, engine, warnings, detectTables, ve
1950
1950
  const x1 = r.x1 * scale - 2, x2 = r.x2 * scale + 2, y1 = (pdfH - r.y2) * scale - 2, y2 = (pdfH - r.y1) * scale + 2;
1951
1951
  const columnRules = _nullishCoalesce(_optionalChain([ruling, 'optionalAccess', _21 => _21.verticals, 'access', _22 => _22.filter, 'call', _23 => _23((s) => Math.min(s.x1, s.x2) >= x1 && Math.max(s.x1, s.x2) <= x2 && Math.min(s.y1, s.y2) >= y1 && Math.max(s.y1, s.y2) <= y2), 'access', _24 => _24.length]), () => ( 0));
1952
1952
  if (columnRules < 2) {
1953
- for (const b of blocks) if (b.type === "table") _chunkZUFZNZHOcjs.UNRULED_REGION_TABLES.add(b);
1953
+ for (const b of blocks) if (b.type === "table") _chunkDU2HC36Xcjs.UNRULED_REGION_TABLES.add(b);
1954
1954
  }
1955
1955
  return blocks;
1956
1956
  });
@@ -2083,14 +2083,14 @@ function ocrItemsToBlocks(items, pageNumber, pdfW, pdfH, scale, extraLines, dete
2083
2083
  ...xs[i].space ? { hasSpaceBefore: true } : {}
2084
2084
  };
2085
2085
  });
2086
- return _chunkZUFZNZHOcjs.extractPageBlocksWithLines.call(void 0, norm, pageNumber, opList, pdfW, pdfH, extraLines, detectTables);
2086
+ return _chunkDU2HC36Xcjs.extractPageBlocksWithLines.call(void 0, norm, pageNumber, opList, pdfW, pdfH, extraLines, detectTables);
2087
2087
  }
2088
2088
  async function tryImport2(name, loader) {
2089
2089
  try {
2090
2090
  return await loader();
2091
2091
  } catch (e) {
2092
2092
  throw new Error(
2093
- `OCR \uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 optional dependency '${name}' \uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \`npm install ${name}\` \uD6C4 \uB2E4\uC2DC \uC2E4\uD589\uD558\uC138\uC694.${_chunkW5EQNSO6cjs.OPTIONAL_DEP_INSTALL_HINT} \uC6D0\uC778: ${e.message}`
2093
+ `OCR \uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 optional dependency '${name}' \uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \`npm install ${name}\` \uD6C4 \uB2E4\uC2DC \uC2E4\uD589\uD558\uC138\uC694.${_chunkWPZOIIM2cjs.OPTIONAL_DEP_INSTALL_HINT} \uC6D0\uC778: ${e.message}`
2094
2094
  );
2095
2095
  }
2096
2096
  }
@@ -2130,4 +2130,4 @@ function bgraToRgba(bgra) {
2130
2130
 
2131
2131
 
2132
2132
  exports.getOcrEngine = getOcrEngine; exports.detectRulingLines = detectRulingLines; exports.rulingToPdfLines = rulingToPdfLines; exports.deskewPage = deskewPage; exports.MAX_OCR_PIXELS = MAX_OCR_PIXELS; exports.runPdfOcr = runPdfOcr; exports.groupOcrLines = groupOcrLines; exports.ocrItemsToBlocks = ocrItemsToBlocks;
2133
- //# sourceMappingURL=chunk-JILWW4LO.cjs.map
2133
+ //# sourceMappingURL=chunk-57EOUEB4.cjs.map