kordoc 4.14.0 → 4.14.2
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 +18 -2
- package/dist/{-SLX6IB6Y.js → -AQKXLFIM.js} +10 -10
- package/dist/{chunk-WAPKUYGP.cjs → chunk-247ANM72.cjs} +11 -11
- package/dist/chunk-247ANM72.cjs.map +1 -0
- package/dist/{chunk-EOTAPX2M.js → chunk-3DUADAY2.js} +3 -3
- package/dist/{chunk-B7MOYHVR.cjs → chunk-422427XJ.cjs} +6 -6
- package/dist/chunk-422427XJ.cjs.map +1 -0
- package/dist/{chunk-HG5LXXCC.js → chunk-7IAQ4HOK.js} +1 -1
- package/dist/{chunk-XVIJLHCW.js.map → chunk-7IAQ4HOK.js.map} +1 -1
- package/dist/{chunk-JIQWI7S2.js → chunk-A7QC2ZVP.js} +3 -3
- package/dist/{chunk-HCHA3Y2T.js → chunk-C7FQBSON.js} +2 -2
- package/dist/chunk-DCZVOIEO.cjs.map +1 -1
- package/dist/{chunk-7VUHZFGQ.js → chunk-DOGPOY4B.js} +2 -2
- package/dist/{chunk-6T6MB5ON.js → chunk-EDNJLUSE.js} +2 -2
- package/dist/{chunk-EMQZX5QQ.js → chunk-EISO3POT.js} +301 -124
- package/dist/chunk-EISO3POT.js.map +1 -0
- package/dist/{chunk-LCGAO5LF.js → chunk-EP7KOI2V.js} +3 -3
- package/dist/{chunk-WRIHDGGY.cjs → chunk-EQZI77PP.cjs} +3 -3
- package/dist/chunk-EQZI77PP.cjs.map +1 -0
- package/dist/{chunk-XVIJLHCW.js → chunk-FOJZNMMK.js} +1 -1
- package/dist/{chunk-HG5LXXCC.js.map → chunk-FOJZNMMK.js.map} +1 -1
- package/dist/{chunk-PLXNW3J4.js → chunk-GDW4YP7K.js} +2 -2
- package/dist/chunk-GS7T56RP.cjs.map +1 -1
- package/dist/{chunk-ANKDK5DF.cjs → chunk-HR2XNERB.cjs} +2 -2
- package/dist/chunk-HR2XNERB.cjs.map +1 -0
- package/dist/{chunk-3U3PJGVO.js → chunk-ILU76UF3.js} +13 -2
- package/dist/chunk-ILU76UF3.js.map +1 -0
- package/dist/{chunk-J3SM7VLM.js → chunk-JQEFP45L.js} +2 -2
- package/dist/{chunk-M5NRJMA4.js → chunk-KVWV4ULP.js} +3 -3
- package/dist/{chunk-COUGOFT3.cjs → chunk-L7DMSMAG.cjs} +1 -1
- package/dist/chunk-L7DMSMAG.cjs.map +1 -0
- package/dist/{chunk-GMX6EKCY.js → chunk-NS55SM7A.js} +2 -2
- package/dist/{chunk-XH34WJKB.js → chunk-QC5T6D4J.js} +2 -2
- package/dist/{chunk-STLNL53H.cjs → chunk-QOMNEWCQ.cjs} +4 -4
- package/dist/chunk-QOMNEWCQ.cjs.map +1 -0
- package/dist/{chunk-CDQJKMZ5.js → chunk-TNCKOL2O.js} +2 -2
- package/dist/{chunk-HH7T6SMB.js → chunk-TSFS5VKD.js} +3072 -1721
- package/dist/chunk-TSFS5VKD.js.map +1 -0
- package/dist/{chunk-RCTWZYAM.js → chunk-UET462HB.js} +2 -2
- package/dist/{chunk-A2JDWBKG.js → chunk-VQ5W4MYO.js} +2 -2
- package/dist/{chunk-ZWTEE63A.js → chunk-ZWD734EY.js} +2 -2
- package/dist/{chunk-UBNJXMYX.js → chunk-ZWOFQRIB.js} +14 -6
- package/dist/chunk-ZWOFQRIB.js.map +1 -0
- package/dist/chunks-SX77P5CV.js +10 -0
- package/dist/cli.js +1066 -1038
- package/dist/cli.js.map +1 -1
- package/dist/{formula-VSZIJZXP.js → formula-5S7WWXGH.js} +4 -4
- package/dist/{formula-VYDTA27M.js → formula-JGFTXWYT.js} +3 -3
- package/dist/{formula-TAYYDV73.cjs → formula-PJJ6S3Z2.cjs} +9 -9
- package/dist/formula-PJJ6S3Z2.cjs.map +1 -0
- package/dist/{image-ocr-5WBAIBPQ.js → image-ocr-FLIL7MGN.js} +6 -6
- package/dist/{image-ocr-N6IBZJAK.js → image-ocr-WCAYXLOA.js} +8 -8
- package/dist/{image-ocr-ZX4W2RBS.cjs → image-ocr-ZTYAGV3W.cjs} +12 -12
- package/dist/image-ocr-ZTYAGV3W.cjs.map +1 -0
- package/dist/index.cjs +3010 -1465
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -6
- package/dist/index.d.ts +11 -6
- package/dist/index.js +2547 -1002
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +973 -932
- package/dist/mcp.js.map +1 -1
- package/dist/{model-bundle-5CBFVIXA.js → model-bundle-FSPZZ2EM.js} +5 -5
- package/dist/{models-L74RBKK3.js → models-CJPAQK5R.js} +5 -5
- package/dist/page-range-P7SDW6LR.cjs.map +1 -1
- package/dist/{parser-66NMJUOG.js → parser-A4TMPJAM.js} +7 -7
- package/dist/{parser-BK66Y5JD.js → parser-SCUTZAIJ.js} +7 -7
- package/dist/{parser-WM2DMVLY.cjs → parser-VCXE4I5A.cjs} +27 -27
- package/dist/parser-VCXE4I5A.cjs.map +1 -0
- package/dist/pdf-ocr-76SAUXMZ.js +13 -0
- package/dist/pdf-ocr-CPU55CVF.js +16 -0
- package/dist/pdf-ocr-MBZZ57LD.cjs +14 -0
- package/dist/pdf-ocr-MBZZ57LD.cjs.map +1 -0
- package/dist/{profile-io-JZ3FDHDK.js → profile-io-LBM263K7.js} +3 -3
- package/dist/{rasterize-33WOOVSM.js → rasterize-46RG4ZF6.js} +3 -3
- package/dist/{render-MLN4ZLVD.js → render-NGP5T24S.js} +7 -7
- package/dist/seal-RGUPOLXD.js +10 -0
- package/dist/{setup-G6AEN4J7.js → setup-AU4OCHNH.js} +3 -3
- package/dist/visual-NZLYIYEM.js +19 -0
- package/dist/{watch-OY6XKGC5.js → watch-MKPUCPXM.js} +11 -11
- package/package.json +2 -2
- package/dist/chunk-3U3PJGVO.js.map +0 -1
- package/dist/chunk-ANKDK5DF.cjs.map +0 -1
- package/dist/chunk-B7MOYHVR.cjs.map +0 -1
- package/dist/chunk-COUGOFT3.cjs.map +0 -1
- package/dist/chunk-EMQZX5QQ.js.map +0 -1
- package/dist/chunk-HH7T6SMB.js.map +0 -1
- package/dist/chunk-STLNL53H.cjs.map +0 -1
- package/dist/chunk-UBNJXMYX.js.map +0 -1
- package/dist/chunk-WAPKUYGP.cjs.map +0 -1
- package/dist/chunk-WRIHDGGY.cjs.map +0 -1
- package/dist/chunks-PEHRXW2P.js +0 -10
- package/dist/formula-TAYYDV73.cjs.map +0 -1
- package/dist/image-ocr-ZX4W2RBS.cjs.map +0 -1
- package/dist/parser-WM2DMVLY.cjs.map +0 -1
- package/dist/pdf-ocr-322MBLDK.js +0 -16
- package/dist/pdf-ocr-A4UBXLM2.js +0 -13
- package/dist/pdf-ocr-G4TBDUYL.cjs +0 -14
- package/dist/pdf-ocr-G4TBDUYL.cjs.map +0 -1
- package/dist/seal-JQWSNHRG.js +0 -10
- package/dist/visual-VZ7QGAUC.js +0 -19
- /package/dist/{-SLX6IB6Y.js.map → -AQKXLFIM.js.map} +0 -0
- /package/dist/{chunk-EOTAPX2M.js.map → chunk-3DUADAY2.js.map} +0 -0
- /package/dist/{chunk-JIQWI7S2.js.map → chunk-A7QC2ZVP.js.map} +0 -0
- /package/dist/{chunk-HCHA3Y2T.js.map → chunk-C7FQBSON.js.map} +0 -0
- /package/dist/{chunk-7VUHZFGQ.js.map → chunk-DOGPOY4B.js.map} +0 -0
- /package/dist/{chunk-6T6MB5ON.js.map → chunk-EDNJLUSE.js.map} +0 -0
- /package/dist/{chunk-LCGAO5LF.js.map → chunk-EP7KOI2V.js.map} +0 -0
- /package/dist/{chunk-PLXNW3J4.js.map → chunk-GDW4YP7K.js.map} +0 -0
- /package/dist/{chunk-J3SM7VLM.js.map → chunk-JQEFP45L.js.map} +0 -0
- /package/dist/{chunk-M5NRJMA4.js.map → chunk-KVWV4ULP.js.map} +0 -0
- /package/dist/{chunk-GMX6EKCY.js.map → chunk-NS55SM7A.js.map} +0 -0
- /package/dist/{chunk-XH34WJKB.js.map → chunk-QC5T6D4J.js.map} +0 -0
- /package/dist/{chunk-CDQJKMZ5.js.map → chunk-TNCKOL2O.js.map} +0 -0
- /package/dist/{chunk-RCTWZYAM.js.map → chunk-UET462HB.js.map} +0 -0
- /package/dist/{chunk-A2JDWBKG.js.map → chunk-VQ5W4MYO.js.map} +0 -0
- /package/dist/{chunk-ZWTEE63A.js.map → chunk-ZWD734EY.js.map} +0 -0
- /package/dist/{chunks-PEHRXW2P.js.map → chunks-SX77P5CV.js.map} +0 -0
- /package/dist/{formula-VSZIJZXP.js.map → formula-5S7WWXGH.js.map} +0 -0
- /package/dist/{formula-VYDTA27M.js.map → formula-JGFTXWYT.js.map} +0 -0
- /package/dist/{image-ocr-5WBAIBPQ.js.map → image-ocr-FLIL7MGN.js.map} +0 -0
- /package/dist/{image-ocr-N6IBZJAK.js.map → image-ocr-WCAYXLOA.js.map} +0 -0
- /package/dist/{model-bundle-5CBFVIXA.js.map → model-bundle-FSPZZ2EM.js.map} +0 -0
- /package/dist/{models-L74RBKK3.js.map → models-CJPAQK5R.js.map} +0 -0
- /package/dist/{parser-66NMJUOG.js.map → parser-A4TMPJAM.js.map} +0 -0
- /package/dist/{parser-BK66Y5JD.js.map → parser-SCUTZAIJ.js.map} +0 -0
- /package/dist/{pdf-ocr-322MBLDK.js.map → pdf-ocr-76SAUXMZ.js.map} +0 -0
- /package/dist/{pdf-ocr-A4UBXLM2.js.map → pdf-ocr-CPU55CVF.js.map} +0 -0
- /package/dist/{profile-io-JZ3FDHDK.js.map → profile-io-LBM263K7.js.map} +0 -0
- /package/dist/{rasterize-33WOOVSM.js.map → rasterize-46RG4ZF6.js.map} +0 -0
- /package/dist/{render-MLN4ZLVD.js.map → render-NGP5T24S.js.map} +0 -0
- /package/dist/{seal-JQWSNHRG.js.map → seal-RGUPOLXD.js.map} +0 -0
- /package/dist/{setup-G6AEN4J7.js.map → setup-AU4OCHNH.js.map} +0 -0
- /package/dist/{visual-VZ7QGAUC.js.map → visual-NZLYIYEM.js.map} +0 -0
- /package/dist/{watch-OY6XKGC5.js.map → watch-MKPUCPXM.js.map} +0 -0
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ HWP 3.x/5.x, HWPX, HWPML, PDF, XLS, XLSX, DOCX, 이미지(PNG/JPG/WebP) — 관
|
|
|
19
19
|
|
|
20
20
|
## ⚡ 30초 설치 (AI 에이전트 연동)
|
|
21
21
|
|
|
22
|
-
**macOS / Linux / Windows 공용**. Node.js
|
|
22
|
+
**macOS / Linux / Windows 공용**. Node.js 20+ 만 있으면 됩니다.
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
npx -y kordoc setup
|
|
@@ -89,6 +89,16 @@ MCP 등록 대신 스킬(SKILL.md) 형태로 쓰려면:
|
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
92
|
+
## v4.14.2 변경사항
|
|
93
|
+
|
|
94
|
+
공문서 출력을 한글 2024 실렌더 PDF로 다시 대조해 "진짜 공문처럼" 다듬었습니다.
|
|
95
|
+
|
|
96
|
+
- **📐 항목 둘째 줄이 첫 줄 내용과 정확히 맞습니다**: 부호(□ ○ - ※ 1. 가.) 뒤를 공백이 아니라 탭으로 두고, 한글의 "내어쓰기용 자동 탭"을 씁니다. 양쪽 정렬이 부호 뒤 공백을 늘려 첫 줄 내용이 밀리던 것, 자간을 줄인 줄에서 내용이 당겨지던 것이 구조적으로 없어졌습니다. 기안문·보고서·계획서·통지·회의록·업무보고·개조식·보도자료 전부.
|
|
97
|
+
- **✂️ 낱말이 줄 끝에서 쪼개지지 않습니다**: 본문을 어절 단위 줄바꿈으로 바꾸고("동대/문" → "동대문") 외톨이줄 보호를 켰습니다. 날짜·금액은 묶음 빈칸으로 묶어 "2026. 1. / 22." 처럼 갈라지지 않습니다. 곧은따옴표는 ‘ ’ “ ”로 바꿉니다.
|
|
98
|
+
- **📏 한글 글꼴 실폭으로 조판을 재현합니다**: 한컴돋움·HY견고딕·휴먼명조 등 8종의 실제 글자 폭으로 줄바꿈을 계산해(한글 2024 PDF 154줄 전부 일치), 짧은 꼬리 줄은 자간으로 올리고 긴 어절이 넘어가 공백이 크게 벌어지는 줄은 자간을 살짝 줄여 메웁니다. 종전처럼 한 줄을 과하게 눌러 옆 줄과 밀도가 달라 보이는 일이 줄었습니다.
|
|
99
|
+
- **🧩 PPTX 감지** (#80, PR #81 @LimePencil): PPTX 를 넣으면 "HWPX 섹션 없음" 대신 지원하지 않는 형식이라고 알려 줍니다.
|
|
100
|
+
- **🧹 기술부채**: 1,200줄 넘던 `mcp.ts`·`cli.ts`·`hwp5/parser.ts`·`svg-render.ts` 를 기능별 모듈로 나눴고, 파서가 묶음 빈칸을 버리던 것과 `kordoc render` 미리보기의 탭 폭·줄 끝 공백 정렬을 고쳤습니다.
|
|
101
|
+
|
|
92
102
|
## v4.14.0 변경사항
|
|
93
103
|
|
|
94
104
|
- **🏛️ 중앙부처 업무보고 프리셋 `업무보고`**: 재정경제부 「2차 업무보고 서면보고자료」(2026. 7. 15., 17쪽)를 글꼴·크기·색·도형 좌표까지 전수 실측해 국회 서면보고형 골격을 그대로 냅니다 — 표지(대외주의 박스 `--cover-label`, 파란 바 두 줄), 목차 박스, `##` Ⅰ. 장 띠(그라데이션+파랑 이중선, 장마다 새 쪽), `###` 파란 숫자칸 절, `####` 남색 소제목 박스, `#####` ① 하늘색 항목 띠, `> ▪ …` 연노랑 성과 요약박스, `## 별첨 …` 별첨 띠. 본문 함초롬바탕 15·각주 맑은 고딕 12·표 맑은 고딕 12, **□ 뒤 `(키워드)`·`[키워드]` 는 파랑 굵게**(ㅇ 뒤는 검정 굵게), ❶⇒↳ 부호 보존. `kordoc generate 보고.md --preset 업무보고 --date "2026. 7. 15." --cover-label 대외주의`. 한글 COM 실렌더로 원본과 대조했습니다.
|
|
@@ -1102,7 +1112,13 @@ codex mcp add kordoc -- npx -y kordoc mcp
|
|
|
1102
1112
|
| `parseDocx(buffer, options?)` | DOCX 전용 |
|
|
1103
1113
|
| `parseHwpml(buffer, options?)` | HWPML (XML 기반 HWP) 전용 |
|
|
1104
1114
|
| `parseImage(buffer, options?)` | 이미지(PNG/JPG/WebP) 전용 — 내장 OCR 상시 적용 (v4.2.1) |
|
|
1105
|
-
| `detectFormat(buffer)` |
|
|
1115
|
+
| `detectFormat(buffer)` | 동기 매직 바이트 감지 — 하위 호환을 위해 ZIP은 `hwpx`, OLE2는 `hwp` 반환 |
|
|
1116
|
+
| `await detectZipFormat(buffer)` | ZIP 내부 구조로 `hwpx`, `xlsx`, `docx`, `pptx`, `unknown` 구분 |
|
|
1117
|
+
| `detectOle2Format(buffer)` | OLE2 내부 스트림으로 `hwp`, `xls`, `unknown` 구분 |
|
|
1118
|
+
|
|
1119
|
+
PPTX는 감지만 지원합니다. `parse()`는 PPTX 입력에 `success: false`, `fileType: "pptx"`,
|
|
1120
|
+
`code: "UNSUPPORTED_FORMAT"`을 반환합니다. ZIP을 구분해 라우팅하는 래퍼/API는
|
|
1121
|
+
`detectFormat()` 결과가 `hwpx`일 때 `await detectZipFormat(buffer)`로 세분화하세요.
|
|
1106
1122
|
|
|
1107
1123
|
### 고급 함수
|
|
1108
1124
|
|
|
@@ -51,14 +51,14 @@ import {
|
|
|
51
51
|
unknownFontWarnings,
|
|
52
52
|
usesGaejosikMunche,
|
|
53
53
|
validateHwpx
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-EISO3POT.js";
|
|
55
55
|
import {
|
|
56
56
|
applySplices,
|
|
57
57
|
buildParagraphSplices,
|
|
58
58
|
buildRangeSplices,
|
|
59
59
|
placeSealHwpx,
|
|
60
60
|
scanSectionXml
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-ZWOFQRIB.js";
|
|
62
62
|
import {
|
|
63
63
|
DEFAULT_REDACT_RULES,
|
|
64
64
|
redactMarkdown,
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
} from "./chunk-DZIXKL7E.js";
|
|
67
67
|
import {
|
|
68
68
|
blocksToChunks
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-EDNJLUSE.js";
|
|
70
70
|
import {
|
|
71
71
|
SPACE_EM_FIXED,
|
|
72
72
|
SPACE_EM_FONT,
|
|
@@ -91,19 +91,19 @@ import {
|
|
|
91
91
|
renderSceneToHtml,
|
|
92
92
|
simulateWrap,
|
|
93
93
|
simulateWrapKeepWord
|
|
94
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-TSFS5VKD.js";
|
|
95
95
|
import "./chunk-7FCNOKOR.js";
|
|
96
|
-
import "./chunk-
|
|
96
|
+
import "./chunk-7IAQ4HOK.js";
|
|
97
97
|
import "./chunk-MOL7MDBG.js";
|
|
98
|
-
import "./chunk-
|
|
98
|
+
import "./chunk-ILU76UF3.js";
|
|
99
99
|
import {
|
|
100
100
|
blocksToMarkdown,
|
|
101
101
|
hasStructuredCellContent
|
|
102
|
-
} from "./chunk-
|
|
103
|
-
import "./chunk-
|
|
102
|
+
} from "./chunk-QC5T6D4J.js";
|
|
103
|
+
import "./chunk-C7FQBSON.js";
|
|
104
104
|
import {
|
|
105
105
|
VERSION
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-UET462HB.js";
|
|
107
107
|
export {
|
|
108
108
|
BUILTIN_TEMPLATES,
|
|
109
109
|
DEFAULT_REDACT_RULES,
|
|
@@ -192,4 +192,4 @@ export {
|
|
|
192
192
|
usesGaejosikMunche,
|
|
193
193
|
validateHwpx
|
|
194
194
|
};
|
|
195
|
-
//# sourceMappingURL=-
|
|
195
|
+
//# sourceMappingURL=-AQKXLFIM.js.map
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkL7DMSMAGcjs = require('./chunk-L7DMSMAG.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkHR2XNERBcjs = require('./chunk-HR2XNERB.cjs');
|
|
10
10
|
|
|
11
11
|
// src/pdf/image-regions.ts
|
|
12
12
|
var _pdfmjs = require('pdfjs-dist/legacy/build/pdf.mjs');
|
|
@@ -1781,9 +1781,9 @@ function detectHeadings(blocks, medianFontSize) {
|
|
|
1781
1781
|
if (/^\d+$/.test(text)) continue;
|
|
1782
1782
|
const ratio = block.style.fontSize / medianFontSize;
|
|
1783
1783
|
let level = 0;
|
|
1784
|
-
if (ratio >=
|
|
1785
|
-
else if (ratio >=
|
|
1786
|
-
else if (ratio >=
|
|
1784
|
+
if (ratio >= _chunkL7DMSMAGcjs.HEADING_RATIO_H1) level = 1;
|
|
1785
|
+
else if (ratio >= _chunkL7DMSMAGcjs.HEADING_RATIO_H2) level = 2;
|
|
1786
|
+
else if (ratio >= _chunkL7DMSMAGcjs.HEADING_RATIO_H3) level = 3;
|
|
1787
1787
|
if (level > 0) {
|
|
1788
1788
|
block.type = "heading";
|
|
1789
1789
|
block.level = level;
|
|
@@ -3046,14 +3046,14 @@ function isProseSpread(items) {
|
|
|
3046
3046
|
for (let i = 1; i < sorted.length; i++) {
|
|
3047
3047
|
gaps.push(sorted[i].x - (sorted[i - 1].x + sorted[i - 1].w));
|
|
3048
3048
|
}
|
|
3049
|
-
const maxGap =
|
|
3049
|
+
const maxGap = _chunkHR2XNERBcjs.safeMax.call(void 0, gaps);
|
|
3050
3050
|
const avgLen = items.reduce((s, i) => s + i.text.length, 0) / items.length;
|
|
3051
3051
|
return maxGap < 40 && avgLen < 5;
|
|
3052
3052
|
}
|
|
3053
3053
|
function detectColumns(yLines) {
|
|
3054
3054
|
const allItems = yLines.flat();
|
|
3055
3055
|
if (allItems.length === 0) return null;
|
|
3056
|
-
const pageWidth =
|
|
3056
|
+
const pageWidth = _chunkHR2XNERBcjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunkHR2XNERBcjs.safeMin.call(void 0, allItems.map((i) => i.x));
|
|
3057
3057
|
if (pageWidth < 100) return null;
|
|
3058
3058
|
let bigoLineIdx = -1;
|
|
3059
3059
|
for (let i = 0; i < yLines.length; i++) {
|
|
@@ -3678,7 +3678,7 @@ function extractBlocksWithGrids(items, pageNum, grids, horizontals, verticals) {
|
|
|
3678
3678
|
if (gutterX !== null) {
|
|
3679
3679
|
const gx = gutterX;
|
|
3680
3680
|
const allY = remaining.map((i) => i.y);
|
|
3681
|
-
const pageH =
|
|
3681
|
+
const pageH = _chunkHR2XNERBcjs.safeMax.call(void 0, allY) - _chunkHR2XNERBcjs.safeMin.call(void 0, allY);
|
|
3682
3682
|
const gapThreshold = Math.max(15, pageH * 0.03);
|
|
3683
3683
|
const sides = [
|
|
3684
3684
|
remaining.filter((i) => i.x + i.w <= gx),
|
|
@@ -3698,7 +3698,7 @@ function extractBlocksWithGrids(items, pageNum, grids, horizontals, verticals) {
|
|
|
3698
3698
|
finalTextBlocks = detectListBlocks(textBlocks);
|
|
3699
3699
|
} else {
|
|
3700
3700
|
const allY = remaining.map((i) => i.y);
|
|
3701
|
-
const pageH =
|
|
3701
|
+
const pageH = _chunkHR2XNERBcjs.safeMax.call(void 0, allY) - _chunkHR2XNERBcjs.safeMin.call(void 0, allY);
|
|
3702
3702
|
const groups = xyCutOrder(remaining, Math.max(15, pageH * 0.03));
|
|
3703
3703
|
const textBlocks = [];
|
|
3704
3704
|
for (const group of groups) {
|
|
@@ -3906,7 +3906,7 @@ function extractPageBlocksFallback(items, pageNum, fullPage = false, detectTable
|
|
|
3906
3906
|
blocks.push({ type: "paragraph", text: tableText, pageNumber: pageNum, bbox, style: dominantStyle(items) });
|
|
3907
3907
|
} else {
|
|
3908
3908
|
const allY = items.map((i) => i.y);
|
|
3909
|
-
const pageHeight =
|
|
3909
|
+
const pageHeight = _chunkHR2XNERBcjs.safeMax.call(void 0, allY) - _chunkHR2XNERBcjs.safeMin.call(void 0, allY);
|
|
3910
3910
|
const gapThreshold = Math.max(15, pageHeight * 0.03);
|
|
3911
3911
|
const orderedGroups = proseCutX !== null ? splitTwoColumnProse(items, proseCutX) : xyCutOrder(items, gapThreshold);
|
|
3912
3912
|
for (const group of orderedGroups) {
|
|
@@ -3945,4 +3945,4 @@ function extractPageBlocksFallback(items, pageNum, fullPage = false, detectTable
|
|
|
3945
3945
|
|
|
3946
3946
|
|
|
3947
3947
|
exports.extractImageRegions = extractImageRegions; exports.filterHiddenText = filterHiddenText; exports.collapseEvenSpacing = collapseEvenSpacing; exports.normalizeItems = normalizeItems; exports.computeMedianFontSizeFromFreq = computeMedianFontSizeFromFreq; exports.detectHeadings = detectHeadings; exports.detectMarkerHeadings = detectMarkerHeadings; exports.detectTableCaptions = detectTableCaptions; exports.detectKoreanListBlocks = detectKoreanListBlocks; exports.removeHeaderFooterBlocks = removeHeaderFooterBlocks; exports.extractPageBlocksWithLines = extractPageBlocksWithLines; exports.mergeCrossPageTables = mergeCrossPageTables;
|
|
3948
|
-
//# sourceMappingURL=chunk-
|
|
3948
|
+
//# sourceMappingURL=chunk-247ANM72.cjs.map
|