kordoc 4.21.19 → 4.21.20

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 (128) hide show
  1. package/README.md +6 -5
  2. package/dist/{-FLYHAUQ6.js → -QHQ2QKM7.js} +11 -11
  3. package/dist/{chunk-KLKV47XO.cjs → chunk-2FALZL3E.cjs} +13 -13
  4. package/dist/{chunk-KLKV47XO.cjs.map → chunk-2FALZL3E.cjs.map} +1 -1
  5. package/dist/{chunk-SM42XSI3.js → chunk-42XYVZ2B.js} +2 -2
  6. package/dist/{chunk-CLAIAXMX.js → chunk-6HIDMA5O.js} +2 -2
  7. package/dist/{chunk-OON4IJU2.js → chunk-75INFYVC.js} +2 -2
  8. package/dist/{chunk-Z2OOYQ4I.js → chunk-7ITWGPNB.js} +2 -2
  9. package/dist/{chunk-INZGI6PI.js → chunk-AINZICPE.js} +2 -2
  10. package/dist/{chunk-QWOZRYUA.js → chunk-BLKAJD2G.js} +450 -110
  11. package/dist/chunk-BLKAJD2G.js.map +1 -0
  12. package/dist/{chunk-JGGYLUGD.cjs → chunk-CKEO54YN.cjs} +3 -3
  13. package/dist/{chunk-JGGYLUGD.cjs.map → chunk-CKEO54YN.cjs.map} +1 -1
  14. package/dist/{chunk-3O4YC67B.js → chunk-DBFAQJCX.js} +3 -3
  15. package/dist/{chunk-F6N7CDB7.js → chunk-E5L6DUOE.js} +3 -3
  16. package/dist/{chunk-DQ2YGTRS.js → chunk-F5KWC7I3.js} +68 -41
  17. package/dist/chunk-F5KWC7I3.js.map +1 -0
  18. package/dist/{chunk-UDODNSDU.js → chunk-F5PISJEI.js} +2 -2
  19. package/dist/{chunk-TC6DQLYN.js → chunk-FU3SCGE7.js} +2 -2
  20. package/dist/{chunk-AQ5GIBBH.js → chunk-G6G25HUO.js} +2 -2
  21. package/dist/{chunk-VIFY6DJZ.js → chunk-I4HF4UCA.js} +4 -4
  22. package/dist/{chunk-YDIVY65W.js → chunk-JDVOYDIA.js} +2 -2
  23. package/dist/{chunk-3PCAJWGK.js → chunk-KBL24ZCP.js} +42 -3
  24. package/dist/{chunk-3PCAJWGK.js.map → chunk-KBL24ZCP.js.map} +1 -1
  25. package/dist/{chunk-DZVZVZAD.cjs → chunk-KS2SASZH.cjs} +6 -6
  26. package/dist/{chunk-DZVZVZAD.cjs.map → chunk-KS2SASZH.cjs.map} +1 -1
  27. package/dist/{chunk-RYRUQ73F.js → chunk-LO5A36FU.js} +2 -2
  28. package/dist/{chunk-AMXIYV73.js → chunk-LQSF4JSV.js} +2 -2
  29. package/dist/{chunk-Y5OSPKBU.js → chunk-LY4ITNAL.js} +67 -40
  30. package/dist/chunk-LY4ITNAL.js.map +1 -0
  31. package/dist/{chunk-3KW2Q655.cjs → chunk-M37GOXT5.cjs} +2 -2
  32. package/dist/{chunk-3KW2Q655.cjs.map → chunk-M37GOXT5.cjs.map} +1 -1
  33. package/dist/{chunk-EYLEVRHT.cjs → chunk-MOT7WOP5.cjs} +197 -170
  34. package/dist/chunk-MOT7WOP5.cjs.map +1 -0
  35. package/dist/{chunk-46PYORID.js → chunk-N47I6OS7.js} +6 -6
  36. package/dist/{chunk-GK4QLKNT.js → chunk-PALYDA3M.js} +2 -2
  37. package/dist/{chunk-4VM6BT4W.js → chunk-TYYKK5DX.js} +2 -2
  38. package/dist/{chunk-OWLDTF5Q.js → chunk-WINHSKFD.js} +2 -2
  39. package/dist/{chunk-2DNJW2HO.cjs → chunk-WWMHVDRG.cjs} +3 -3
  40. package/dist/{chunk-2DNJW2HO.cjs.map → chunk-WWMHVDRG.cjs.map} +1 -1
  41. package/dist/{chunk-X6WXU4LA.js → chunk-ZMGWKGSC.js} +2 -2
  42. package/dist/chunks-BJRBKGKZ.js +10 -0
  43. package/dist/cli.js +30 -30
  44. package/dist/{formula-EKXCURKO.cjs → formula-G5LTBMGC.cjs} +9 -9
  45. package/dist/{formula-EKXCURKO.cjs.map → formula-G5LTBMGC.cjs.map} +1 -1
  46. package/dist/{formula-Z5UPXBQM.js → formula-KHPAZKOK.js} +4 -4
  47. package/dist/{formula-2YYGN7UE.js → formula-XAPMN6HX.js} +3 -3
  48. package/dist/{image-ocr-TE76KKNV.cjs → image-ocr-MHPVAYOB.cjs} +15 -15
  49. package/dist/{image-ocr-TE76KKNV.cjs.map → image-ocr-MHPVAYOB.cjs.map} +1 -1
  50. package/dist/{image-ocr-IMLFZ2JC.js → image-ocr-N5LAIHRV.js} +9 -9
  51. package/dist/{image-ocr-23R7RVHP.js → image-ocr-RNPHQ4C2.js} +6 -6
  52. package/dist/index.cjs +1064 -687
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.d.cts +1 -1
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.js +482 -105
  57. package/dist/index.js.map +1 -1
  58. package/dist/mcp.js +22 -22
  59. package/dist/{model-bundle-GTSRH2DY.js → model-bundle-XP4AHFLT.js} +5 -5
  60. package/dist/{models-2J3NS7G2.js → models-AD2KAUNC.js} +5 -5
  61. package/dist/{parse-worker-v2-VO5UY3MP.js → parse-worker-v2-7UHOQ2TK.js} +12 -12
  62. package/dist/{parser-JVUZ7EEV.js → parser-2RN5WNPJ.js} +11 -11
  63. package/dist/{parser-FXGAKPUI.js → parser-5WGRQKPI.js} +8 -8
  64. package/dist/{parser-D5VMCDLG.cjs → parser-ZPCCXCVO.cjs} +134 -134
  65. package/dist/{parser-D5VMCDLG.cjs.map → parser-ZPCCXCVO.cjs.map} +1 -1
  66. package/dist/pdf-ocr-KHY3P4EP.js +18 -0
  67. package/dist/pdf-ocr-LFDH6DFD.js +22 -0
  68. package/dist/pdf-ocr-SFIWMJQL.cjs +19 -0
  69. package/dist/{pdf-ocr-YFNUYBYJ.cjs.map → pdf-ocr-SFIWMJQL.cjs.map} +1 -1
  70. package/dist/{profile-io-ULK73H2G.js → profile-io-UP7H2J6I.js} +3 -3
  71. package/dist/{rasterize-FG3NX3GA.js → rasterize-XBCDG4MD.js} +3 -3
  72. package/dist/{redact-doc-NMKTKG24.js → redact-doc-CJ6W6YNR.js} +11 -11
  73. package/dist/{render-GQUUGPOJ.js → render-K5UDHXRI.js} +7 -7
  74. package/dist/seal-YCK6TM5I.js +10 -0
  75. package/dist/{setup-PRBHD7JI.js → setup-S66RLBBM.js} +3 -3
  76. package/dist/visual-S5ZNFWFH.js +20 -0
  77. package/dist/{watch-LFSXNO2B.js → watch-PB7IOD73.js} +12 -12
  78. package/package.json +1 -1
  79. package/dist/chunk-DQ2YGTRS.js.map +0 -1
  80. package/dist/chunk-EYLEVRHT.cjs.map +0 -1
  81. package/dist/chunk-QWOZRYUA.js.map +0 -1
  82. package/dist/chunk-Y5OSPKBU.js.map +0 -1
  83. package/dist/chunks-J46DCTUC.js +0 -10
  84. package/dist/pdf-ocr-364WQ5TY.js +0 -18
  85. package/dist/pdf-ocr-4MZELYCR.js +0 -22
  86. package/dist/pdf-ocr-YFNUYBYJ.cjs +0 -19
  87. package/dist/seal-EVHTG5GH.js +0 -10
  88. package/dist/visual-TCIR6MOG.js +0 -20
  89. /package/dist/{-FLYHAUQ6.js.map → -QHQ2QKM7.js.map} +0 -0
  90. /package/dist/{chunk-SM42XSI3.js.map → chunk-42XYVZ2B.js.map} +0 -0
  91. /package/dist/{chunk-CLAIAXMX.js.map → chunk-6HIDMA5O.js.map} +0 -0
  92. /package/dist/{chunk-OON4IJU2.js.map → chunk-75INFYVC.js.map} +0 -0
  93. /package/dist/{chunk-Z2OOYQ4I.js.map → chunk-7ITWGPNB.js.map} +0 -0
  94. /package/dist/{chunk-INZGI6PI.js.map → chunk-AINZICPE.js.map} +0 -0
  95. /package/dist/{chunk-3O4YC67B.js.map → chunk-DBFAQJCX.js.map} +0 -0
  96. /package/dist/{chunk-F6N7CDB7.js.map → chunk-E5L6DUOE.js.map} +0 -0
  97. /package/dist/{chunk-UDODNSDU.js.map → chunk-F5PISJEI.js.map} +0 -0
  98. /package/dist/{chunk-TC6DQLYN.js.map → chunk-FU3SCGE7.js.map} +0 -0
  99. /package/dist/{chunk-AQ5GIBBH.js.map → chunk-G6G25HUO.js.map} +0 -0
  100. /package/dist/{chunk-VIFY6DJZ.js.map → chunk-I4HF4UCA.js.map} +0 -0
  101. /package/dist/{chunk-YDIVY65W.js.map → chunk-JDVOYDIA.js.map} +0 -0
  102. /package/dist/{chunk-RYRUQ73F.js.map → chunk-LO5A36FU.js.map} +0 -0
  103. /package/dist/{chunk-AMXIYV73.js.map → chunk-LQSF4JSV.js.map} +0 -0
  104. /package/dist/{chunk-46PYORID.js.map → chunk-N47I6OS7.js.map} +0 -0
  105. /package/dist/{chunk-GK4QLKNT.js.map → chunk-PALYDA3M.js.map} +0 -0
  106. /package/dist/{chunk-4VM6BT4W.js.map → chunk-TYYKK5DX.js.map} +0 -0
  107. /package/dist/{chunk-OWLDTF5Q.js.map → chunk-WINHSKFD.js.map} +0 -0
  108. /package/dist/{chunk-X6WXU4LA.js.map → chunk-ZMGWKGSC.js.map} +0 -0
  109. /package/dist/{chunks-J46DCTUC.js.map → chunks-BJRBKGKZ.js.map} +0 -0
  110. /package/dist/{formula-Z5UPXBQM.js.map → formula-KHPAZKOK.js.map} +0 -0
  111. /package/dist/{formula-2YYGN7UE.js.map → formula-XAPMN6HX.js.map} +0 -0
  112. /package/dist/{image-ocr-IMLFZ2JC.js.map → image-ocr-N5LAIHRV.js.map} +0 -0
  113. /package/dist/{image-ocr-23R7RVHP.js.map → image-ocr-RNPHQ4C2.js.map} +0 -0
  114. /package/dist/{model-bundle-GTSRH2DY.js.map → model-bundle-XP4AHFLT.js.map} +0 -0
  115. /package/dist/{models-2J3NS7G2.js.map → models-AD2KAUNC.js.map} +0 -0
  116. /package/dist/{parse-worker-v2-VO5UY3MP.js.map → parse-worker-v2-7UHOQ2TK.js.map} +0 -0
  117. /package/dist/{parser-JVUZ7EEV.js.map → parser-2RN5WNPJ.js.map} +0 -0
  118. /package/dist/{parser-FXGAKPUI.js.map → parser-5WGRQKPI.js.map} +0 -0
  119. /package/dist/{pdf-ocr-364WQ5TY.js.map → pdf-ocr-KHY3P4EP.js.map} +0 -0
  120. /package/dist/{pdf-ocr-4MZELYCR.js.map → pdf-ocr-LFDH6DFD.js.map} +0 -0
  121. /package/dist/{profile-io-ULK73H2G.js.map → profile-io-UP7H2J6I.js.map} +0 -0
  122. /package/dist/{rasterize-FG3NX3GA.js.map → rasterize-XBCDG4MD.js.map} +0 -0
  123. /package/dist/{redact-doc-NMKTKG24.js.map → redact-doc-CJ6W6YNR.js.map} +0 -0
  124. /package/dist/{render-GQUUGPOJ.js.map → render-K5UDHXRI.js.map} +0 -0
  125. /package/dist/{seal-EVHTG5GH.js.map → seal-YCK6TM5I.js.map} +0 -0
  126. /package/dist/{setup-PRBHD7JI.js.map → setup-S66RLBBM.js.map} +0 -0
  127. /package/dist/{visual-TCIR6MOG.js.map → visual-S5ZNFWFH.js.map} +0 -0
  128. /package/dist/{watch-LFSXNO2B.js.map → watch-PB7IOD73.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.19 검증](docs/benchmarks.md)
15
+ - 🇰🇷 **한국 공문서 표 구조 100%** — 원본 HWPX 2,424문서의 보이는 표 **10,342개 전부 구조 일치**. [4.21.20 검증](docs/benchmarks.md)
16
16
 
17
17
  쓸모 있었다면 GitHub ⭐ 하나 눌러주세요. 다른 사람이 이 도구를 찾는 데 도움이 됩니다.
18
18
 
@@ -100,27 +100,28 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
100
100
 
101
101
  ## 검증 결과
102
102
 
103
- **4.21.19 · 2026-10-11 배포 검증**. 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
103
+ **4.21.20 · 2026-10-11 배포 검증**. 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
104
104
 
105
105
  | 대상 | 규모 | 결과 |
106
106
  | --- | --- | --- |
107
107
  | HWPX | 2,424문서 · 10,342표 | 표 구조 일치 **10,342/10,342 · 100%** |
108
108
  | HWP 5.x ↔ HWPX | 1,130쌍 · 4,315표 | 짝 문서의 표 구조 일치 **100%** |
109
- | PDF 글 | 744쌍 | 글자 재현율 **99.84%** · 정확도 **99.64%** · 읽기 순서 **99.23%** · 어절 F1 **98.99%** |
109
+ | PDF 글 | 744쌍 | 글자 재현율 **99.85%** · 정확도 **99.64%** · 읽기 순서 **99.23%** · 어절 F1 **99.00%** |
110
110
  | PDF 표 | 708쌍 · 2,331표 | 표 탐지 **99.83%** · 구조 일치 **97.98%** · 칸 F1 **0.991** |
111
111
  | PDF 전체 | 1,911문서 중 1,729건 채점 | 글 커버리지 **99.80%** |
112
112
  | OCR | 53문서 · 102쪽 | CER **0.0412** · 글자 재현율 **99.02%** |
113
113
 
114
114
  표 구조 점수와 셀 내용·화면 재현은 별도 지표입니다. 채점 범위·제외 기준·전 벤치 문서별 비교는 [벤치마크 상세](docs/benchmarks.md)에 있습니다.
115
115
 
116
- 외부 PDF 벤치 **opendataloader-bench 200문서**는 4.21.19 배포 측정에서 기본값 종합 **0.963**, OCR 끔 **0.939**입니다. [옵션별 결과와 재현 방법](docs/benchmarks.md#pdf--markdown--opendataloader-bench)
116
+ 외부 PDF 벤치 **opendataloader-bench 200문서**는 4.21.20 배포 측정에서 기본값 종합 **0.963**, OCR 끔 **0.939**입니다. [옵션별 결과와 재현 방법](docs/benchmarks.md#pdf--markdown--opendataloader-bench)
117
117
 
118
118
  ## 최근 업데이트
119
119
 
120
- 최신 배포: **[4.21.19](https://github.com/chrisryugj/kordoc/releases/tag/v4.21.19)** · 2026-10-11
120
+ 최신 배포: **[4.21.20](https://github.com/chrisryugj/kordoc/releases/tag/v4.21.20)** · 2026-10-11
121
121
 
122
122
  | 버전 | 주요 변경 |
123
123
  | --- | --- |
124
+ | 4.21.20 | PDF 괘선 없는 표 칸의 어절 가운데 꺾임을 붙여 씀("남⏎편이") · 채우기·패치 서식 보존(바뀐 문단만 줄 배치 캐시 삭제·강조 표지·균등 띄어쓰기·라벨 칸 방향) (PDF 어절 F1 98.987 → 98.998%) |
124
125
  | 4.21.19 | PDF 위아래로 쌓인 표와 사이 글줄을 한 표로 묶던 괘선 격자 버리기 — 지역 머리·각주가 제 표와 떨어지던 것 (PDF 읽기 순서 99.16 → 99.23%) |
125
126
  | 4.21.18 | 쪽 넘김 문단 잇기도 줄 끝 공백 글리프를 어절 경계로 — "지원⏎활동이"·"계정⏎정보를" 을 띄워 씀 (PDF 어절 F1 98.986 → 98.987%, 5문서 상승) |
126
127
  | 4.21.17 | PDF 공백 없는 꽉 찬 줄 끝 + 영문 괄호 — "공적개발원조⏎(ODA)"·"하네스⏎(safety …)" 를 붙여 씀 (PDF 어절 F1 98.98 → 98.99%) |
@@ -54,17 +54,17 @@ import {
54
54
  unknownFontWarnings,
55
55
  usesGaejosikMunche,
56
56
  validateHwpx
57
- } from "./chunk-QWOZRYUA.js";
57
+ } from "./chunk-BLKAJD2G.js";
58
58
  import {
59
59
  blocksToPages
60
- } from "./chunk-TC6DQLYN.js";
60
+ } from "./chunk-FU3SCGE7.js";
61
61
  import {
62
62
  applySplices,
63
63
  buildParagraphSplices,
64
64
  buildRangeSplices,
65
65
  placeSealHwpx,
66
66
  scanSectionXml
67
- } from "./chunk-3PCAJWGK.js";
67
+ } from "./chunk-KBL24ZCP.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-AQ5GIBBH.js";
75
+ } from "./chunk-G6G25HUO.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-46PYORID.js";
100
+ } from "./chunk-N47I6OS7.js";
101
101
  import "./chunk-7FCNOKOR.js";
102
- import "./chunk-X6WXU4LA.js";
102
+ import "./chunk-ZMGWKGSC.js";
103
103
  import "./chunk-VQFA55IC.js";
104
- import "./chunk-GK4QLKNT.js";
104
+ import "./chunk-PALYDA3M.js";
105
105
  import {
106
106
  blocksToMarkdown,
107
107
  flattenLayoutTables,
108
108
  hasStructuredCellContent
109
- } from "./chunk-RYRUQ73F.js";
110
- import "./chunk-AMXIYV73.js";
109
+ } from "./chunk-LO5A36FU.js";
110
+ import "./chunk-LQSF4JSV.js";
111
111
  import {
112
112
  VERSION
113
- } from "./chunk-Z2OOYQ4I.js";
113
+ } from "./chunk-7ITWGPNB.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=-FLYHAUQ6.js.map
207
+ //# sourceMappingURL=-QHQ2QKM7.js.map
@@ -10,10 +10,10 @@ var _chunkTK3FDAEEcjs = require('./chunk-TK3FDAEE.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkEYLEVRHTcjs = require('./chunk-EYLEVRHT.cjs');
13
+ var _chunkMOT7WOP5cjs = require('./chunk-MOT7WOP5.cjs');
14
14
 
15
15
 
16
- var _chunk3KW2Q655cjs = require('./chunk-3KW2Q655.cjs');
16
+ var _chunkM37GOXT5cjs = require('./chunk-M37GOXT5.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 = _chunkEYLEVRHTcjs.getOcrModelsDir.call(void 0, );
1418
+ const dir = _chunkMOT7WOP5cjs.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, _chunkEYLEVRHTcjs.OCR_DET_MODEL.filename), sessionOpts),
1427
- ortMod.InferenceSession.create(_path.join.call(void 0, dir, _chunkEYLEVRHTcjs.OCR_REC_MODEL.filename), sessionOpts),
1428
- _promises.readFile.call(void 0, _path.join.call(void 0, dir, _chunkEYLEVRHTcjs.OCR_REC_DICT.filename), "utf-8")
1426
+ ortMod.InferenceSession.create(_path.join.call(void 0, dir, _chunkMOT7WOP5cjs.OCR_DET_MODEL.filename), sessionOpts),
1427
+ ortMod.InferenceSession.create(_path.join.call(void 0, dir, _chunkMOT7WOP5cjs.OCR_REC_MODEL.filename), sessionOpts),
1428
+ _promises.readFile.call(void 0, _path.join.call(void 0, dir, _chunkMOT7WOP5cjs.OCR_REC_DICT.filename), "utf-8")
1429
1429
  ]);
1430
- const dict = _chunkEYLEVRHTcjs.parseCharacterDict.call(void 0, dictYml);
1430
+ const dict = _chunkMOT7WOP5cjs.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.${_chunk3KW2Q655cjs.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.${_chunkM37GOXT5cjs.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 _chunkEYLEVRHTcjs.ensureOcrModels.call(void 0, (p) => {
1872
+ await _chunkMOT7WOP5cjs.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") _chunkEYLEVRHTcjs.UNRULED_REGION_TABLES.add(b);
1953
+ for (const b of blocks) if (b.type === "table") _chunkMOT7WOP5cjs.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 _chunkEYLEVRHTcjs.extractPageBlocksWithLines.call(void 0, norm, pageNumber, opList, pdfW, pdfH, extraLines, detectTables);
2086
+ return _chunkMOT7WOP5cjs.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.${_chunk3KW2Q655cjs.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.${_chunkM37GOXT5cjs.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-KLKV47XO.cjs.map
2133
+ //# sourceMappingURL=chunk-2FALZL3E.cjs.map