kordoc 4.24.13 → 4.24.14

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 (127) hide show
  1. package/README.md +5 -5
  2. package/dist/{-NBCZTPBD.js → -MG25ST6Y.js} +11 -11
  3. package/dist/{chunk-UVQOPGOA.js → chunk-3LFNTOL7.js} +14 -9
  4. package/dist/chunk-3LFNTOL7.js.map +1 -0
  5. package/dist/{chunk-BC4LVU4D.js → chunk-7VNYQHJV.js} +2 -2
  6. package/dist/{chunk-CKOCIQU6.js → chunk-AM6TECXD.js} +2 -2
  7. package/dist/{chunk-X2E5QCKO.js → chunk-AULD3QAB.js} +2 -2
  8. package/dist/{chunk-XGESPSWE.cjs → chunk-BUGXM2H5.cjs} +3 -3
  9. package/dist/{chunk-XGESPSWE.cjs.map → chunk-BUGXM2H5.cjs.map} +1 -1
  10. package/dist/{chunk-ZUMOEVMV.js → chunk-DIFJPJGN.js} +3 -3
  11. package/dist/{chunk-XWWQGSEP.js → chunk-ERYRF3EA.js} +2 -2
  12. package/dist/{chunk-QAGPSWGH.js → chunk-FGERVDQZ.js} +2 -2
  13. package/dist/{chunk-ZSCDH3NU.js → chunk-FUC3V2FR.js} +2 -2
  14. package/dist/{chunk-U2VAABMK.cjs → chunk-GV7ECKOK.cjs} +44 -27
  15. package/dist/chunk-GV7ECKOK.cjs.map +1 -0
  16. package/dist/{chunk-2H2VYPM2.cjs → chunk-HVILFVAT.cjs} +2 -2
  17. package/dist/{chunk-2H2VYPM2.cjs.map → chunk-HVILFVAT.cjs.map} +1 -1
  18. package/dist/{chunk-OVQWOOS3.js → chunk-J3OJWUON.js} +2 -2
  19. package/dist/{chunk-QVEAR6IR.js → chunk-LMQT2JFS.js} +22 -5
  20. package/dist/chunk-LMQT2JFS.js.map +1 -0
  21. package/dist/{chunk-37MTSMUF.js → chunk-LSFVBS2I.js} +2 -2
  22. package/dist/{chunk-IQGXY63Y.js → chunk-MACV3MZF.js} +23 -6
  23. package/dist/chunk-MACV3MZF.js.map +1 -0
  24. package/dist/{chunk-QW2H2HHS.js → chunk-MIJYCKJA.js} +115 -6
  25. package/dist/chunk-MIJYCKJA.js.map +1 -0
  26. package/dist/{chunk-DMPX4KLC.js → chunk-NIPFEMJJ.js} +2 -2
  27. package/dist/{chunk-WOVJRXIA.js → chunk-NVD24SLL.js} +2 -2
  28. package/dist/{chunk-A232MW5F.js → chunk-PVAJ4DBW.js} +2 -2
  29. package/dist/{chunk-BJBPBU5B.js → chunk-SSDHVKLM.js} +2 -2
  30. package/dist/{chunk-4I2CKMKU.js → chunk-TPZPICDM.js} +3 -3
  31. package/dist/{chunk-KTXDK5A6.js → chunk-UTLHDVC5.js} +2 -2
  32. package/dist/{chunk-PUHBCAXI.js → chunk-UUNCLJB7.js} +11 -11
  33. package/dist/{chunk-W52B6GOE.cjs → chunk-V26UPU2L.cjs} +3 -3
  34. package/dist/{chunk-W52B6GOE.cjs.map → chunk-V26UPU2L.cjs.map} +1 -1
  35. package/dist/{chunk-A4CYMI55.js → chunk-VBOFP27O.js} +2 -2
  36. package/dist/{chunk-FJ3IKKDV.js → chunk-WFOPOJHN.js} +115 -6
  37. package/dist/chunk-WFOPOJHN.js.map +1 -0
  38. package/dist/{chunk-VPKZB6Y7.cjs → chunk-ZBHS7KLW.cjs} +6 -6
  39. package/dist/{chunk-VPKZB6Y7.cjs.map → chunk-ZBHS7KLW.cjs.map} +1 -1
  40. package/dist/{chunk-WAWREGAC.js → chunk-ZIGWQ3IS.js} +2 -2
  41. package/dist/{chunk-QZ2H4ZTO.cjs → chunk-ZX66BXB5.cjs} +190 -81
  42. package/dist/chunk-ZX66BXB5.cjs.map +1 -0
  43. package/dist/chunks-JGSWNVLF.js +10 -0
  44. package/dist/cli.js +30 -30
  45. package/dist/{formula-M4FM364X.js → formula-4KFXQSEG.js} +4 -4
  46. package/dist/{formula-ZKZGV6JV.cjs → formula-N6GWFPHK.cjs} +9 -9
  47. package/dist/{formula-ZKZGV6JV.cjs.map → formula-N6GWFPHK.cjs.map} +1 -1
  48. package/dist/{formula-WFL6JRCR.js → formula-WAYIKS54.js} +3 -3
  49. package/dist/{image-ocr-2V3M3ZEA.cjs → image-ocr-GY7SZAHN.cjs} +17 -17
  50. package/dist/{image-ocr-2V3M3ZEA.cjs.map → image-ocr-GY7SZAHN.cjs.map} +1 -1
  51. package/dist/{image-ocr-YJISJPKE.js → image-ocr-P5S2QDKW.js} +6 -6
  52. package/dist/{image-ocr-47CBNIS5.js → image-ocr-QBCR7ZD6.js} +9 -9
  53. package/dist/index.cjs +368 -363
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.js +14 -9
  56. package/dist/index.js.map +1 -1
  57. package/dist/mcp.js +23 -23
  58. package/dist/{model-bundle-7W344HDI.js → model-bundle-QAM24SYG.js} +5 -5
  59. package/dist/{models-TBHMNI7M.js → models-YHC236MP.js} +5 -5
  60. package/dist/{parse-worker-v2-JUYUEXCY.js → parse-worker-v2-LP7NKQBP.js} +12 -12
  61. package/dist/{parser-EKQCZLML.js → parser-26YUZU55.js} +12 -12
  62. package/dist/{parser-RNJ4KSDF.js → parser-DFJZ3CCE.js} +9 -9
  63. package/dist/{parser-R44KTBZX.cjs → parser-JWU6HYZZ.cjs} +159 -159
  64. package/dist/{parser-R44KTBZX.cjs.map → parser-JWU6HYZZ.cjs.map} +1 -1
  65. package/dist/{pdf-ocr-EE5KGFVX.js → pdf-ocr-BO6ACAGL.js} +9 -9
  66. package/dist/{pdf-ocr-ZAF4P74R.js → pdf-ocr-EEWQFS7P.js} +6 -6
  67. package/dist/pdf-ocr-Z4PBLB75.cjs +35 -0
  68. package/dist/{pdf-ocr-74BOCXAT.cjs.map → pdf-ocr-Z4PBLB75.cjs.map} +1 -1
  69. package/dist/{profile-io-RU3RVIYV.js → profile-io-PQXYWUBL.js} +3 -3
  70. package/dist/{rasterize-UNCPM26D.js → rasterize-CS7WZUGF.js} +3 -3
  71. package/dist/{redact-doc-BFE4UZCY.js → redact-doc-PI4JNHV6.js} +11 -11
  72. package/dist/{render-3DXTLKIA.js → render-M2CIEOF4.js} +7 -7
  73. package/dist/seal-4755WLFB.js +10 -0
  74. package/dist/{setup-7POQAKDG.js → setup-HGPUR27M.js} +3 -3
  75. package/dist/visual-JWWGGTKQ.js +21 -0
  76. package/dist/{watch-37YCXJWW.js → watch-B5ISBY3N.js} +12 -12
  77. package/package.json +1 -1
  78. package/dist/chunk-FJ3IKKDV.js.map +0 -1
  79. package/dist/chunk-IQGXY63Y.js.map +0 -1
  80. package/dist/chunk-QVEAR6IR.js.map +0 -1
  81. package/dist/chunk-QW2H2HHS.js.map +0 -1
  82. package/dist/chunk-QZ2H4ZTO.cjs.map +0 -1
  83. package/dist/chunk-U2VAABMK.cjs.map +0 -1
  84. package/dist/chunk-UVQOPGOA.js.map +0 -1
  85. package/dist/chunks-IXFBIZPW.js +0 -10
  86. package/dist/pdf-ocr-74BOCXAT.cjs +0 -35
  87. package/dist/seal-3LBTETDG.js +0 -10
  88. package/dist/visual-7SVIGIJC.js +0 -21
  89. /package/dist/{-NBCZTPBD.js.map → -MG25ST6Y.js.map} +0 -0
  90. /package/dist/{chunk-BC4LVU4D.js.map → chunk-7VNYQHJV.js.map} +0 -0
  91. /package/dist/{chunk-CKOCIQU6.js.map → chunk-AM6TECXD.js.map} +0 -0
  92. /package/dist/{chunk-X2E5QCKO.js.map → chunk-AULD3QAB.js.map} +0 -0
  93. /package/dist/{chunk-ZUMOEVMV.js.map → chunk-DIFJPJGN.js.map} +0 -0
  94. /package/dist/{chunk-XWWQGSEP.js.map → chunk-ERYRF3EA.js.map} +0 -0
  95. /package/dist/{chunk-QAGPSWGH.js.map → chunk-FGERVDQZ.js.map} +0 -0
  96. /package/dist/{chunk-ZSCDH3NU.js.map → chunk-FUC3V2FR.js.map} +0 -0
  97. /package/dist/{chunk-OVQWOOS3.js.map → chunk-J3OJWUON.js.map} +0 -0
  98. /package/dist/{chunk-37MTSMUF.js.map → chunk-LSFVBS2I.js.map} +0 -0
  99. /package/dist/{chunk-DMPX4KLC.js.map → chunk-NIPFEMJJ.js.map} +0 -0
  100. /package/dist/{chunk-WOVJRXIA.js.map → chunk-NVD24SLL.js.map} +0 -0
  101. /package/dist/{chunk-A232MW5F.js.map → chunk-PVAJ4DBW.js.map} +0 -0
  102. /package/dist/{chunk-BJBPBU5B.js.map → chunk-SSDHVKLM.js.map} +0 -0
  103. /package/dist/{chunk-4I2CKMKU.js.map → chunk-TPZPICDM.js.map} +0 -0
  104. /package/dist/{chunk-KTXDK5A6.js.map → chunk-UTLHDVC5.js.map} +0 -0
  105. /package/dist/{chunk-PUHBCAXI.js.map → chunk-UUNCLJB7.js.map} +0 -0
  106. /package/dist/{chunk-A4CYMI55.js.map → chunk-VBOFP27O.js.map} +0 -0
  107. /package/dist/{chunk-WAWREGAC.js.map → chunk-ZIGWQ3IS.js.map} +0 -0
  108. /package/dist/{chunks-IXFBIZPW.js.map → chunks-JGSWNVLF.js.map} +0 -0
  109. /package/dist/{formula-M4FM364X.js.map → formula-4KFXQSEG.js.map} +0 -0
  110. /package/dist/{formula-WFL6JRCR.js.map → formula-WAYIKS54.js.map} +0 -0
  111. /package/dist/{image-ocr-YJISJPKE.js.map → image-ocr-P5S2QDKW.js.map} +0 -0
  112. /package/dist/{image-ocr-47CBNIS5.js.map → image-ocr-QBCR7ZD6.js.map} +0 -0
  113. /package/dist/{model-bundle-7W344HDI.js.map → model-bundle-QAM24SYG.js.map} +0 -0
  114. /package/dist/{models-TBHMNI7M.js.map → models-YHC236MP.js.map} +0 -0
  115. /package/dist/{parse-worker-v2-JUYUEXCY.js.map → parse-worker-v2-LP7NKQBP.js.map} +0 -0
  116. /package/dist/{parser-EKQCZLML.js.map → parser-26YUZU55.js.map} +0 -0
  117. /package/dist/{parser-RNJ4KSDF.js.map → parser-DFJZ3CCE.js.map} +0 -0
  118. /package/dist/{pdf-ocr-EE5KGFVX.js.map → pdf-ocr-BO6ACAGL.js.map} +0 -0
  119. /package/dist/{pdf-ocr-ZAF4P74R.js.map → pdf-ocr-EEWQFS7P.js.map} +0 -0
  120. /package/dist/{profile-io-RU3RVIYV.js.map → profile-io-PQXYWUBL.js.map} +0 -0
  121. /package/dist/{rasterize-UNCPM26D.js.map → rasterize-CS7WZUGF.js.map} +0 -0
  122. /package/dist/{redact-doc-BFE4UZCY.js.map → redact-doc-PI4JNHV6.js.map} +0 -0
  123. /package/dist/{render-3DXTLKIA.js.map → render-M2CIEOF4.js.map} +0 -0
  124. /package/dist/{seal-3LBTETDG.js.map → seal-4755WLFB.js.map} +0 -0
  125. /package/dist/{setup-7POQAKDG.js.map → setup-HGPUR27M.js.map} +0 -0
  126. /package/dist/{visual-7SVIGIJC.js.map → visual-JWWGGTKQ.js.map} +0 -0
  127. /package/dist/{watch-37YCXJWW.js.map → watch-B5ISBY3N.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 글·표·OCR 은 4.24.13 · 2026-10-27). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
111
+ **4.22.14 · 2026-10-19 검증**(렌더 배치·PDF 글·표·OCR 은 4.24.14 · 2026-10-28). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
112
112
 
113
113
  | 대상 | 규모 | 결과 |
114
114
  | --- | --- | --- |
@@ -120,23 +120,23 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
120
120
  | PDF 중첩표 (텍스트층) | 29문서 · 101표 | 구조·칸 내용 **101/101 · 100%** |
121
121
  | 법령 별표 | 272건 · 346표 | HWP **346/346**, PDF **342/346 · 98.84%** |
122
122
  | PDF 전체 | 1,911문서 중 1,729건 채점 | 글 커버리지 **99.80%** |
123
- | OCR | 53문서 · 102쪽 · 67표 | CER **0.0263** · 글자 재현율 **99.16%** · 표 구조 일치 **26/67** |
123
+ | OCR | 53문서 · 102쪽 · 67표 | CER **0.0260** · 글자 재현율 **99.19%** · 표 구조 일치 **26/67** |
124
124
  | opendataloader-bench | PDF 200문서 | 종합 기본값 **0.964** · OCR 끔 **0.939** |
125
- | HWPX 렌더 배치 (4.24.11) | 한컴 PDF 짝 · 글 조각 90,840 · 그림 4,107 | 글 위치(±1.5pt) **87,577 · 96.4%** · 그림 위치(±2pt) **4,019 · 97.9%** |
125
+ | HWPX 렌더 배치 (4.24.14) | 한컴 PDF 짝 · 글 조각 90,840 · 그림 4,107 | 글 위치(±1.5pt) **87,643 · 96.5%** · 그림 위치(±2pt) **4,019 · 97.9%** |
126
126
 
127
127
  표 구조 점수와 셀 내용·화면 재현은 별도 지표입니다. 중첩표 100%는 위 101표에 한정하며 전체 PDF·조판의 완전 일치를 뜻하지 않습니다. 채점 범위·제외 기준·옵션별 수치·재현 방법은 [벤치마크 상세](docs/benchmarks.md)에 있습니다.
128
128
 
129
129
  ## 최근 업데이트
130
130
 
131
- 최신 배포: **[4.24.13](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.13)** · 2026-10-27
131
+ 최신 배포: **[4.24.14](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.14)** · 2026-10-28
132
132
 
133
133
  | 버전 | 주요 변경 | 수치 변화 |
134
134
  | --- | --- | --- |
135
+ | 4.24.14 | 렌더: 칸 간격(`cellSpacing`) 표의 칸 자리 · OCR: 공백·따옴표로 읽은 홑낫표 「, 검출기가 놓친 쪽 번호, 라틴 약어 앞·C 로 읽은 줄 머리 ○, 고리만 든 칸 ○, 마름모 글머리 ◆·◇·◈, 서식 칸 끝 닫는 괄호 | 렌더 글 위치 87,577 → **87,643** · OCR CER 0.0263 → **0.0260** · 열화 입력 9종 모두 개선(원본 0.0409 → **0.0405**) |
135
136
  | 4.24.13 | 기관팩(`.kpack`): 기관 문서 몇 건으로 서식 묶음을 만들어 그 서식대로 새 문서 · OCR: 선 없는 표 칸 순서·넓게 벌린 균등배분, 글자 상자 안 획 조각, 줄 머리 □, 기간 날짜 끝점, 전화 기호 ☎ · PDF·HWP: 한컴 소프트 하이픈 붙임표(증감 칸 음수 부호) · patch 추가 문단 강조 서식·렌더 자란 표 겹침(#175) | 기관팩 처음 보는 문서 재현 서울 68.3% → **74.3%** · 광양 77.1% → **94.5%** · OCR CER 0.0281 → **0.0263** · 열화 입력 9종 모두 개선(원본 0.0429 → **0.0409**) |
136
137
  | 4.24.12 | OCR: 조직도 상자 연결선을 괘선으로(과·팀 상자 열 단위 읽기), 요일 앞 날짜 마침표, 목차 리더 잡티, 화살표 모양 ⇨·➔·▶, 쉼표로 읽은 」 | OCR CER 0.0306 → **0.0281** · 글자 재현율 99.12% → **99.14%** · 열화 입력 9종 모두 개선(원본 0.0475 → **0.0429**) |
137
138
  | 4.24.11 | OCR: 표 칸·행 경계를 가로지른 검출 박스 가르기, 날짜 쉼표, 직함 앞 전(前)·현(現) · 렌더: 쪽 번호 글자 크기 · 생성: 서울 방침서 제목 줄간격·요약 정렬 | OCR CER 0.0310 → **0.0306** · 글자 재현율 99.10% → **99.12%** · 렌더 글 위치 87,546 → **87,577** · 생성 재현 0.806 → **0.807** |
138
139
  | 4.24.10 | 보안: 데모 lockfile 의 zod·fast-uri, 정부 GitLab 미러 복구(Java SDK `kordoc-pom.xml`) · OCR: 줄 머리 ▣·❐·‣, `\|` 로 읽은 로마 숫자, 날짜 끝 마침표 · PDF: 세로쓰기 、。, 그러데이션 배경 괘선, 중·일문 자동 간격 | OCR CER 0.0313 → **0.0310** · 글자 재현율 99.06% → **99.10%** · 열화 입력 9종 모두 개선(스캔 0.0734 → **0.0730**) · PDF 어절 F1 99.064% → **99.066%** |
139
- | 4.24.9 | 견본 서식·patch 행 추가 표의 행마다 이중선 · OCR: 통째로 빠진 줄 머리 ○ · PDF: 쪽을 넘는 표가 다음 쪽 첫 행을 삼키던 것 | OCR CER 0.0314 → **0.0313** · 흐린 입력 OCR CER 0.0638 → **0.0635** · PDF 표 구조 98.20% → **98.24%** |
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-PUHBCAXI.js";
67
+ } from "./chunk-UUNCLJB7.js";
68
68
  import {
69
69
  blocksToChunks
70
- } from "./chunk-WOVJRXIA.js";
70
+ } from "./chunk-NVD24SLL.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-UVQOPGOA.js";
96
- import "./chunk-KTXDK5A6.js";
95
+ } from "./chunk-3LFNTOL7.js";
96
+ import "./chunk-UTLHDVC5.js";
97
97
  import {
98
98
  blocksToPages
99
- } from "./chunk-37MTSMUF.js";
99
+ } from "./chunk-LSFVBS2I.js";
100
100
  import "./chunk-VKVDMH7X.js";
101
101
  import "./chunk-VQFA55IC.js";
102
102
  import "./chunk-BYMPPVT3.js";
103
- import "./chunk-CKOCIQU6.js";
103
+ import "./chunk-AM6TECXD.js";
104
104
  import {
105
105
  blocksToMarkdown,
106
106
  flattenLayoutTables,
107
107
  hasStructuredCellContent
108
- } from "./chunk-DMPX4KLC.js";
108
+ } from "./chunk-NIPFEMJJ.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-ZUMOEVMV.js";
123
- import "./chunk-XWWQGSEP.js";
122
+ } from "./chunk-DIFJPJGN.js";
123
+ import "./chunk-ERYRF3EA.js";
124
124
  import {
125
125
  VERSION
126
- } from "./chunk-WAWREGAC.js";
126
+ } from "./chunk-ZIGWQ3IS.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=-NBCZTPBD.js.map
242
+ //# sourceMappingURL=-MG25ST6Y.js.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  loadSharp,
4
4
  rasterizePageSvg
5
- } from "./chunk-KTXDK5A6.js";
5
+ } from "./chunk-UTLHDVC5.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-CKOCIQU6.js";
19
+ } from "./chunk-AM6TECXD.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-DMPX4KLC.js";
36
+ } from "./chunk-NIPFEMJJ.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-XWWQGSEP.js";
50
+ } from "./chunk-ERYRF3EA.js";
51
51
  import {
52
52
  KordocError,
53
53
  compareSectionPaths,
@@ -55,7 +55,7 @@ import {
55
55
  precheckZipSize,
56
56
  sanitizeHref,
57
57
  toArrayBuffer
58
- } from "./chunk-WAWREGAC.js";
58
+ } from "./chunk-ZIGWQ3IS.js";
59
59
 
60
60
  // src/render/svg-render.ts
61
61
  import JSZip from "jszip";
@@ -15239,13 +15239,14 @@ function drawTable(tbl, tx, ty, ctx, depth) {
15239
15239
  rowSum.set(c.ra, r);
15240
15240
  }
15241
15241
  const noExactRow = ![...rowSum.values()].some((r) => r.cover === nCols && Math.abs(r.w - tblW) <= 2);
15242
- const colX = tableColumnBoundaries(colCons, nCols, tblW || void 0, noExactRow);
15242
+ const sp = num(tbl, "cellSpacing");
15243
+ const colX = tableColumnBoundaries(colCons, nCols, (tblW && sp > 0 ? tblW - sp * (nCols + 1) : tblW) || void 0, noExactRow);
15243
15244
  const rowH = measureTableRowHeights(tbl, ctx.extentMemo);
15244
15245
  const rowY = [0];
15245
15246
  for (let r = 0; r < nRows; r++) rowY.push(rowY[r] + rowH[r]);
15246
15247
  const tblH = rowY[nRows];
15247
15248
  if (ty + tblH > ctx.pageH + 100) warnOnce(ctx, "table-split", "\uD398\uC774\uC9C0\uC5D0 \uAC78\uCE5C \uD45C \u2014 \uBD84\uD560 \uC9C0\uC624\uBA54\uD2B8\uB9AC\uAC00 \uC5C6\uC5B4 \uC2DC\uC791 \uD398\uC774\uC9C0 \uC601\uC5ED\uB9CC region \uC73C\uB85C \uAE30\uB85D");
15248
- const tblId = ctx.regions.add("table", bboxOf(ctx, tx, ty, colX[nCols], tblH), { sourceId: tbl.getAttribute("id") ?? void 0, parentId: parentId(ctx) });
15249
+ const tblId = ctx.regions.add("table", bboxOf(ctx, tx, ty, colX[nCols] + (sp > 0 ? sp * (nCols + 1) : 0), tblH), { sourceId: tbl.getAttribute("id") ?? void 0, parentId: parentId(ctx) });
15249
15250
  emit(ctx, regionOpenTag(tblId, "table", pageNo(ctx)));
15250
15251
  ctx.parentStack.push(tblId);
15251
15252
  const startPage = ctx.page;
@@ -15259,7 +15260,7 @@ function drawTable(tbl, tx, ty, ctx, depth) {
15259
15260
  for (const pc of plan.flat()) for (const [el, py] of pc.place ?? []) (ctx.objPlace ??= /* @__PURE__ */ new Map()).set(el, { page: startPage + pc.page, y: py });
15260
15261
  const contPages = [...new Set(plan.flat().map((pc) => pc.page).filter((pg) => pg > 0))].map((pg) => startPage + pg);
15261
15262
  while (ctx.pages.length <= Math.max(startPage, ...contPages)) ctx.pages.push([]);
15262
- const xw = (c) => ({ x: tx + colX[c.ca], w: colX[Math.min(c.ca + c.cs, nCols)] - colX[c.ca] });
15263
+ const xw = (c) => ({ x: tx + colX[c.ca] + sp * c.ca, w: colX[Math.min(c.ca + c.cs, nCols)] - colX[c.ca] + sp * (c.cs - 1) });
15263
15264
  const geom = [];
15264
15265
  for (const c of cells) {
15265
15266
  const pcs = plan[c.ra];
@@ -15289,6 +15290,10 @@ function drawTable(tbl, tx, ty, ctx, depth) {
15289
15290
  }
15290
15291
  const contBase = depth !== 1 && ctx.splitContMT !== void 0 ? ctx.splitContMT : ctx.geom.MT;
15291
15292
  for (const page of contPages) for (const c of cells) if (c.ra < hdrRows) geom.push({ c, page, ...xw(c), y: contBase + num(findChildByLocalName(tbl, "outMargin"), "top") + rowY[c.ra], h: rowY[Math.min(c.ra + c.rs, nRows)] - rowY[c.ra] });
15293
+ if (sp > 0) for (const g of geom) {
15294
+ g.y += sp;
15295
+ g.h -= sp + (g.c.ra + g.c.rs >= nRows ? sp : 0);
15296
+ }
15292
15297
  for (const g of geom) {
15293
15298
  ctx.page = g.page;
15294
15299
  const bf = g.c.bfId != null ? ctx.styles.borderFill.get(g.c.bfId) : void 0;
@@ -20200,4 +20205,4 @@ export {
20200
20205
  cropRect,
20201
20206
  extractRenderedRegions
20202
20207
  };
20203
- //# sourceMappingURL=chunk-UVQOPGOA.js.map
20208
+ //# sourceMappingURL=chunk-3LFNTOL7.js.map