kordoc 4.7.3 → 4.8.0
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 +19 -1
- package/dist/{-WYNJOQ6P.js → -URO5XBEB.js} +11 -9
- package/dist/{chunk-TXQQ7URG.js → chunk-2ANLGAUG.js} +2 -2
- package/dist/{chunk-LMHVMGEC.js → chunk-37SAM3LH.js} +3 -3
- package/dist/{chunk-W5NZYPRQ.js → chunk-3CBHCDYD.js} +41 -9
- package/dist/chunk-3CBHCDYD.js.map +1 -0
- package/dist/{chunk-QETZP25M.cjs → chunk-5IRX3TQP.cjs} +3 -3
- package/dist/{chunk-QETZP25M.cjs.map → chunk-5IRX3TQP.cjs.map} +1 -1
- package/dist/{chunk-3P5YCJQE.js → chunk-7OHDTS5Q.js} +2 -2
- package/dist/{chunk-KSATSTC5.js → chunk-BN33O25L.js} +1 -1
- package/dist/{chunk-4KGGVCYX.js.map → chunk-BN33O25L.js.map} +1 -1
- package/dist/{chunk-KE6DLZAW.cjs → chunk-CX2LRBC5.cjs} +11 -11
- package/dist/{chunk-KE6DLZAW.cjs.map → chunk-CX2LRBC5.cjs.map} +1 -1
- package/dist/{chunk-HJV4BVQI.js → chunk-E6OJKTYS.js} +2 -2
- package/dist/{chunk-NYLYIN55.js → chunk-F7RZZI5P.js} +3 -3
- package/dist/{chunk-R4LXZRYP.cjs → chunk-GGZ5PSJO.cjs} +4 -4
- package/dist/{chunk-R4LXZRYP.cjs.map → chunk-GGZ5PSJO.cjs.map} +1 -1
- package/dist/{chunk-JKJEBDP7.js → chunk-HFVMCUXF.js} +3 -3
- package/dist/{chunk-RQVFFSAO.js → chunk-HS4762CD.js} +2 -2
- package/dist/{chunk-E6DONLTM.cjs → chunk-J7DBL77B.cjs} +2 -2
- package/dist/{chunk-E6DONLTM.cjs.map → chunk-J7DBL77B.cjs.map} +1 -1
- package/dist/{chunk-IMFIACHP.js → chunk-L2Q3NLHX.js} +2 -2
- package/dist/{chunk-EV53YE3W.cjs → chunk-L5CDTOC3.cjs} +1 -1
- package/dist/chunk-L5CDTOC3.cjs.map +1 -0
- package/dist/{chunk-P663PYWV.js → chunk-NFCQ5XNT.js} +2 -2
- package/dist/{chunk-KEGAEHWO.js → chunk-OKE6G67G.js} +2 -2
- package/dist/{chunk-QGATKC4R.cjs → chunk-OKISH2NK.cjs} +6 -6
- package/dist/{chunk-QGATKC4R.cjs.map → chunk-OKISH2NK.cjs.map} +1 -1
- package/dist/{chunk-46F5RMU7.js → chunk-S4SMUQAT.js} +2 -2
- package/dist/{chunk-CGJDCZA3.js → chunk-TXRTH5BV.js} +2 -2
- package/dist/{chunk-XOO6YEZE.js → chunk-VPAYFTMH.js} +3 -3
- package/dist/{chunk-4HZN7EZZ.js → chunk-WG473BIB.js} +2 -2
- package/dist/{chunk-Y7T5Z4DC.js → chunk-WXC4HKSD.js} +3 -3
- package/dist/{chunk-4KGGVCYX.js → chunk-XINP35F4.js} +1 -1
- package/dist/{chunk-KSATSTC5.js.map → chunk-XINP35F4.js.map} +1 -1
- package/dist/{chunk-3NKSSL44.js → chunk-YB2TYOYY.js} +3 -3
- package/dist/{chunk-VZ3AQVBN.js → chunk-ZEQPTIWN.js} +2 -2
- package/dist/chunks-M64IY7AK.js +10 -0
- package/dist/cli.js +21 -21
- package/dist/{formula-PDMZMBIP.cjs → formula-3K5KC3VV.cjs} +9 -9
- package/dist/{formula-PDMZMBIP.cjs.map → formula-3K5KC3VV.cjs.map} +1 -1
- package/dist/{formula-V6EAYHMF.js → formula-7BNCJ55B.js} +3 -3
- package/dist/{formula-IFKZZPD2.js → formula-YRMQ7BTI.js} +4 -4
- package/dist/{image-ocr-75WGMVU6.cjs → image-ocr-CBMJIJTQ.cjs} +12 -12
- package/dist/{image-ocr-75WGMVU6.cjs.map → image-ocr-CBMJIJTQ.cjs.map} +1 -1
- package/dist/{image-ocr-B7TMIG3F.js → image-ocr-O7TKPDTY.js} +8 -8
- package/dist/{image-ocr-XHBZONFZ.js → image-ocr-XRVXVYKO.js} +6 -6
- package/dist/index.cjs +396 -364
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -1
- package/dist/index.d.ts +42 -1
- package/dist/index.js +37 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +16 -16
- package/dist/{model-bundle-Q4HQXJQG.js → model-bundle-GNDUKNME.js} +5 -5
- package/dist/{models-QQA7OQHY.js → models-TJ45RB2Z.js} +5 -5
- package/dist/{parser-Z36MZUHS.js → parser-5MLJHSRX.js} +7 -7
- package/dist/{parser-4CBOPTVY.cjs → parser-GIVQWVKJ.cjs} +27 -27
- package/dist/{parser-4CBOPTVY.cjs.map → parser-GIVQWVKJ.cjs.map} +1 -1
- package/dist/{parser-HT7GZOF2.js → parser-U3SMCGRK.js} +7 -7
- package/dist/pdf-ocr-BUBZA4EE.cjs +14 -0
- package/dist/{pdf-ocr-6ZNGDVC6.cjs.map → pdf-ocr-BUBZA4EE.cjs.map} +1 -1
- package/dist/pdf-ocr-HITVPJLV.js +13 -0
- package/dist/pdf-ocr-K4WOCJGJ.js +16 -0
- package/dist/{profile-io-ACYRLCSR.js → profile-io-VATWYLZX.js} +3 -3
- package/dist/{rasterize-QYCLEH2J.js → rasterize-PNRXMSL2.js} +2 -2
- package/dist/render-YY5RKZEB.js +10 -0
- package/dist/seal-5ZNJXOOQ.js +10 -0
- package/dist/{setup-MG3YYKXU.js → setup-OEUDZ4BT.js} +3 -3
- package/dist/{watch-AZIY6AWC.js → watch-USNQJXQC.js} +10 -10
- package/package.json +2 -2
- package/dist/chunk-EV53YE3W.cjs.map +0 -1
- package/dist/chunk-W5NZYPRQ.js.map +0 -1
- package/dist/chunks-LWAOHTK2.js +0 -10
- package/dist/pdf-ocr-6ZNGDVC6.cjs +0 -14
- package/dist/pdf-ocr-NTXRJI4T.js +0 -13
- package/dist/pdf-ocr-TYMCEUPH.js +0 -16
- package/dist/render-5Y2US4IM.js +0 -10
- package/dist/seal-VU6JS2QD.js +0 -10
- /package/dist/{-WYNJOQ6P.js.map → -URO5XBEB.js.map} +0 -0
- /package/dist/{chunk-TXQQ7URG.js.map → chunk-2ANLGAUG.js.map} +0 -0
- /package/dist/{chunk-LMHVMGEC.js.map → chunk-37SAM3LH.js.map} +0 -0
- /package/dist/{chunk-3P5YCJQE.js.map → chunk-7OHDTS5Q.js.map} +0 -0
- /package/dist/{chunk-HJV4BVQI.js.map → chunk-E6OJKTYS.js.map} +0 -0
- /package/dist/{chunk-NYLYIN55.js.map → chunk-F7RZZI5P.js.map} +0 -0
- /package/dist/{chunk-JKJEBDP7.js.map → chunk-HFVMCUXF.js.map} +0 -0
- /package/dist/{chunk-RQVFFSAO.js.map → chunk-HS4762CD.js.map} +0 -0
- /package/dist/{chunk-IMFIACHP.js.map → chunk-L2Q3NLHX.js.map} +0 -0
- /package/dist/{chunk-P663PYWV.js.map → chunk-NFCQ5XNT.js.map} +0 -0
- /package/dist/{chunk-KEGAEHWO.js.map → chunk-OKE6G67G.js.map} +0 -0
- /package/dist/{chunk-46F5RMU7.js.map → chunk-S4SMUQAT.js.map} +0 -0
- /package/dist/{chunk-CGJDCZA3.js.map → chunk-TXRTH5BV.js.map} +0 -0
- /package/dist/{chunk-XOO6YEZE.js.map → chunk-VPAYFTMH.js.map} +0 -0
- /package/dist/{chunk-4HZN7EZZ.js.map → chunk-WG473BIB.js.map} +0 -0
- /package/dist/{chunk-Y7T5Z4DC.js.map → chunk-WXC4HKSD.js.map} +0 -0
- /package/dist/{chunk-3NKSSL44.js.map → chunk-YB2TYOYY.js.map} +0 -0
- /package/dist/{chunk-VZ3AQVBN.js.map → chunk-ZEQPTIWN.js.map} +0 -0
- /package/dist/{chunks-LWAOHTK2.js.map → chunks-M64IY7AK.js.map} +0 -0
- /package/dist/{formula-V6EAYHMF.js.map → formula-7BNCJ55B.js.map} +0 -0
- /package/dist/{formula-IFKZZPD2.js.map → formula-YRMQ7BTI.js.map} +0 -0
- /package/dist/{image-ocr-B7TMIG3F.js.map → image-ocr-O7TKPDTY.js.map} +0 -0
- /package/dist/{image-ocr-XHBZONFZ.js.map → image-ocr-XRVXVYKO.js.map} +0 -0
- /package/dist/{model-bundle-Q4HQXJQG.js.map → model-bundle-GNDUKNME.js.map} +0 -0
- /package/dist/{models-QQA7OQHY.js.map → models-TJ45RB2Z.js.map} +0 -0
- /package/dist/{parser-Z36MZUHS.js.map → parser-5MLJHSRX.js.map} +0 -0
- /package/dist/{parser-HT7GZOF2.js.map → parser-U3SMCGRK.js.map} +0 -0
- /package/dist/{pdf-ocr-NTXRJI4T.js.map → pdf-ocr-HITVPJLV.js.map} +0 -0
- /package/dist/{pdf-ocr-TYMCEUPH.js.map → pdf-ocr-K4WOCJGJ.js.map} +0 -0
- /package/dist/{profile-io-ACYRLCSR.js.map → profile-io-VATWYLZX.js.map} +0 -0
- /package/dist/{rasterize-QYCLEH2J.js.map → rasterize-PNRXMSL2.js.map} +0 -0
- /package/dist/{render-5Y2US4IM.js.map → render-YY5RKZEB.js.map} +0 -0
- /package/dist/{seal-VU6JS2QD.js.map → seal-5ZNJXOOQ.js.map} +0 -0
- /package/dist/{setup-MG3YYKXU.js.map → setup-OEUDZ4BT.js.map} +0 -0
- /package/dist/{watch-AZIY6AWC.js.map → watch-USNQJXQC.js.map} +0 -0
package/README.md
CHANGED
|
@@ -86,6 +86,24 @@ MCP 등록 대신 스킬(SKILL.md) 형태로 쓰려면:
|
|
|
86
86
|
|
|
87
87
|
---
|
|
88
88
|
|
|
89
|
+
## v4.8.0 변경사항
|
|
90
|
+
|
|
91
|
+
- **📑 `--format json` 에 페이지별 마크다운 (#68)**: JSON 결과에 `pages: [{ pageNumber, markdown }]` 이 기본으로 들어갑니다. v4.7.3 의 실제 페이지 경계(`pageMode: "layout"`)를 그대로 써서, RAG 인용 각주나 뷰어 페이지 동기화에 쪽 단위 본문을 바로 쓸 수 있습니다. 문서를 다시 파싱하지 않고 이미 만든 블록의 `pageNumber` 로 가르기 때문에 비용은 파싱 시간의 1% 미만입니다(24쪽 PDF 기준 parse 399ms / pages 2.5ms). `--pages 3-5` 를 쓰면 `pages` 에도 3~5쪽만 담기고, 페이지 번호를 매기지 않는 포맷(DOCX 등)에서는 `pages` 자체가 없습니다. 라이브러리에서는 `blocksToPages(blocks)` 로도 같은 값을 얻습니다. (@sorbetsharkroundhand 제안)
|
|
92
|
+
|
|
93
|
+
```jsonc
|
|
94
|
+
{
|
|
95
|
+
"markdown": "# 전체 문서…",
|
|
96
|
+
"pages": [
|
|
97
|
+
{ "pageNumber": 1, "markdown": "# 1페이지…" },
|
|
98
|
+
{ "pageNumber": 2, "markdown": "2페이지…" }
|
|
99
|
+
],
|
|
100
|
+
"blocks": [/* … */],
|
|
101
|
+
"metadata": { "pageCount": 2, "pageMode": "layout" }
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
여러 페이지에 걸친 표는 현 IR 구조상 시작 페이지의 한 블록이라, 표가 이어지는 중간 페이지의 `markdown` 은 빈 문자열입니다(항목 자체는 남깁니다 — 배열 길이 = 쪽수).
|
|
106
|
+
|
|
89
107
|
## v4.7.3 변경사항
|
|
90
108
|
|
|
91
109
|
- **📄 HWP/HWPX 실제 페이지 경계 복원 (#66)**: 한컴 저장본의 조판 캐시(HWPX `linesegarray` / HWP5 `PARA_LINE_SEG`)로 실제 페이지를 복원합니다 — `pageCount`·블록별 `pageNumber` 가 섹션 근사가 아닌 **실제 쪽 번호**가 되고, `parse(buffer, { pages: "3-5" })` 가 실제 3~5쪽을 반환합니다. 신호 4종(vertpos 역행·명시 쪽나눔·분할 표의 셀 흐름 리셋·분할 직후 이중 카운트 억제)을 결합해 실코퍼스 hwp↔hwpx↔pdf 쌍 대조에서 페이지 수 전수 일치. 조판 캐시가 없는 생성 파일은 종전대로 섹션 근사로 동작하며, 새 메타데이터 **`pageMode: "layout" | "section"`** 으로 구분됩니다(근사 상태에서 `pages` 필터 사용 시 `PAGE_BOUNDARY_APPROXIMATE` 경고). RAG 페이지 인용·뷰어 동기화용. (@sorbetsharkroundhand 제안)
|
|
@@ -800,7 +818,7 @@ for (const p of r.pageQuality ?? []) {
|
|
|
800
818
|
npx kordoc 사업계획서.hwpx # 터미널 출력
|
|
801
819
|
npx kordoc 보고서.hwp -o 보고서.md # 파일 저장
|
|
802
820
|
npx kordoc *.pdf -d ./변환결과/ # 일괄 변환
|
|
803
|
-
npx kordoc 검토서.hwpx --format json # JSON (blocks + metadata 포함)
|
|
821
|
+
npx kordoc 검토서.hwpx --format json # JSON (blocks + pages + metadata 포함)
|
|
804
822
|
npx kordoc 보고서.hwpx --pages 1-3 # 페이지 범위
|
|
805
823
|
npx kordoc fill 신청서.hwpx -f '성명=홍길동,주소=서울' -o 결과.hwpx # 양식 채우기
|
|
806
824
|
npx kordoc fill 신청서.hwpx -j values.json -o 결과.hwpx # JSON 파일로 채우기
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
HwpxSession,
|
|
5
5
|
PRESET_ALIAS,
|
|
6
6
|
ValueCursor,
|
|
7
|
+
blocksToPages,
|
|
7
8
|
blocksToPdf,
|
|
8
9
|
compare,
|
|
9
10
|
detectFormat,
|
|
@@ -52,9 +53,9 @@ import {
|
|
|
52
53
|
resolveBuiltinTemplate,
|
|
53
54
|
unknownFontWarnings,
|
|
54
55
|
validateHwpx
|
|
55
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-3CBHCDYD.js";
|
|
56
57
|
import "./chunk-7FCNOKOR.js";
|
|
57
|
-
import "./chunk-
|
|
58
|
+
import "./chunk-XINP35F4.js";
|
|
58
59
|
import "./chunk-MOL7MDBG.js";
|
|
59
60
|
import {
|
|
60
61
|
applySplices,
|
|
@@ -62,7 +63,7 @@ import {
|
|
|
62
63
|
buildRangeSplices,
|
|
63
64
|
placeSealHwpx,
|
|
64
65
|
scanSectionXml
|
|
65
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-F7RZZI5P.js";
|
|
66
67
|
import {
|
|
67
68
|
DEFAULT_REDACT_RULES,
|
|
68
69
|
redactMarkdown,
|
|
@@ -70,10 +71,10 @@ import {
|
|
|
70
71
|
} from "./chunk-DZIXKL7E.js";
|
|
71
72
|
import {
|
|
72
73
|
blocksToChunks
|
|
73
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-TXRTH5BV.js";
|
|
74
75
|
import {
|
|
75
76
|
blocksToMarkdown
|
|
76
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-OKE6G67G.js";
|
|
77
78
|
import {
|
|
78
79
|
SPACE_EM_FIXED,
|
|
79
80
|
SPACE_EM_FONT,
|
|
@@ -83,11 +84,11 @@ import {
|
|
|
83
84
|
renderHwpxToSvg,
|
|
84
85
|
simulateWrap,
|
|
85
86
|
simulateWrapKeepWord
|
|
86
|
-
} from "./chunk-
|
|
87
|
-
import "./chunk-
|
|
87
|
+
} from "./chunk-VPAYFTMH.js";
|
|
88
|
+
import "./chunk-ZEQPTIWN.js";
|
|
88
89
|
import {
|
|
89
90
|
VERSION
|
|
90
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-L2Q3NLHX.js";
|
|
91
92
|
export {
|
|
92
93
|
BUILTIN_TEMPLATES,
|
|
93
94
|
DEFAULT_REDACT_RULES,
|
|
@@ -100,6 +101,7 @@ export {
|
|
|
100
101
|
applySplices,
|
|
101
102
|
blocksToChunks,
|
|
102
103
|
blocksToMarkdown,
|
|
104
|
+
blocksToPages,
|
|
103
105
|
blocksToPdf,
|
|
104
106
|
buildParagraphSplices,
|
|
105
107
|
buildRangeSplices,
|
|
@@ -161,4 +163,4 @@ export {
|
|
|
161
163
|
unknownFontWarnings,
|
|
162
164
|
validateHwpx
|
|
163
165
|
};
|
|
164
|
-
//# sourceMappingURL=-
|
|
166
|
+
//# sourceMappingURL=-URO5XBEB.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
ensureModelsIn,
|
|
4
4
|
getModelStatusIn,
|
|
5
5
|
getModelsDir
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WG473BIB.js";
|
|
7
7
|
|
|
8
8
|
// src/ocr/models.ts
|
|
9
9
|
import { join } from "path";
|
|
@@ -80,4 +80,4 @@ export {
|
|
|
80
80
|
parseCharacterDict,
|
|
81
81
|
ocrModelPath
|
|
82
82
|
};
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
83
|
+
//# sourceMappingURL=chunk-2ANLGAUG.js.map
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
HEADING_RATIO_H1,
|
|
3
3
|
HEADING_RATIO_H2,
|
|
4
4
|
HEADING_RATIO_H3
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BN33O25L.js";
|
|
6
6
|
import {
|
|
7
7
|
safeMax,
|
|
8
8
|
safeMin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-S4SMUQAT.js";
|
|
10
10
|
|
|
11
11
|
// src/pdf/image-regions.ts
|
|
12
12
|
import { OPS } from "pdfjs-dist/legacy/build/pdf.mjs";
|
|
@@ -3686,4 +3686,4 @@ export {
|
|
|
3686
3686
|
extractPageBlocksWithLines,
|
|
3687
3687
|
mergeCrossPageTables
|
|
3688
3688
|
};
|
|
3689
|
-
//# sourceMappingURL=chunk-
|
|
3689
|
+
//# sourceMappingURL=chunk-37SAM3LH.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
HEADING_RATIO_H1,
|
|
7
7
|
HEADING_RATIO_H2,
|
|
8
8
|
HEADING_RATIO_H3
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XINP35F4.js";
|
|
10
10
|
import {
|
|
11
11
|
parsePageRange
|
|
12
12
|
} from "./chunk-MOL7MDBG.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
paraTextPureT,
|
|
23
23
|
patchZipEntries,
|
|
24
24
|
scanSectionXml
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-F7RZZI5P.js";
|
|
26
26
|
import {
|
|
27
27
|
MAX_COLS,
|
|
28
28
|
MAX_ROWS,
|
|
@@ -32,14 +32,14 @@ import {
|
|
|
32
32
|
dedupeRunningHeaders,
|
|
33
33
|
flattenLayoutTables,
|
|
34
34
|
mapPuaText
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-OKE6G67G.js";
|
|
36
36
|
import {
|
|
37
37
|
SPACE_EM_FIXED,
|
|
38
38
|
charWidthEm1000,
|
|
39
39
|
fitRatioForFewerLines,
|
|
40
40
|
measureTextWidth,
|
|
41
41
|
simulateWrap
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-VPAYFTMH.js";
|
|
43
43
|
import {
|
|
44
44
|
MAX_DECOMPRESS_SIZE,
|
|
45
45
|
MAX_XML_DEPTH,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
findChildByLocalName,
|
|
56
56
|
localName,
|
|
57
57
|
rawTextContent
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-ZEQPTIWN.js";
|
|
59
59
|
import {
|
|
60
60
|
KordocError,
|
|
61
61
|
classifyError,
|
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
sanitizeHref,
|
|
68
68
|
stripDtd,
|
|
69
69
|
toArrayBuffer
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-L2Q3NLHX.js";
|
|
71
71
|
|
|
72
72
|
// src/index.ts
|
|
73
73
|
import { readFile } from "fs/promises";
|
|
@@ -21434,6 +21434,29 @@ async function fillHwpx(hwpxBuffer, values, blockedLabels) {
|
|
|
21434
21434
|
};
|
|
21435
21435
|
}
|
|
21436
21436
|
|
|
21437
|
+
// src/page-markdown.ts
|
|
21438
|
+
function blocksToPages(blocks) {
|
|
21439
|
+
const firstNumbered = blocks.find((b) => typeof b.pageNumber === "number")?.pageNumber;
|
|
21440
|
+
if (firstNumbered === void 0) return void 0;
|
|
21441
|
+
const byPage = /* @__PURE__ */ new Map();
|
|
21442
|
+
let current = firstNumbered;
|
|
21443
|
+
for (const block of blocks) {
|
|
21444
|
+
if (typeof block.pageNumber === "number") current = block.pageNumber;
|
|
21445
|
+
const bucket = byPage.get(current);
|
|
21446
|
+
if (bucket) bucket.push(block);
|
|
21447
|
+
else byPage.set(current, [block]);
|
|
21448
|
+
}
|
|
21449
|
+
const numbers = [...byPage.keys()];
|
|
21450
|
+
const min = Math.min(...numbers);
|
|
21451
|
+
const max = Math.max(...numbers);
|
|
21452
|
+
const pages = [];
|
|
21453
|
+
for (let pageNumber = min; pageNumber <= max; pageNumber++) {
|
|
21454
|
+
const pageBlocks = byPage.get(pageNumber);
|
|
21455
|
+
pages.push({ pageNumber, markdown: pageBlocks ? blocksToMarkdown(pageBlocks) : "" });
|
|
21456
|
+
}
|
|
21457
|
+
return pages;
|
|
21458
|
+
}
|
|
21459
|
+
|
|
21437
21460
|
// src/hwpx/generator.ts
|
|
21438
21461
|
import JSZip8 from "jszip";
|
|
21439
21462
|
|
|
@@ -28869,6 +28892,14 @@ async function parse(input, options) {
|
|
|
28869
28892
|
return { success: false, fileType: "unknown", error: "\uBE48 \uBC84\uD37C\uC774\uAC70\uB098 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uC785\uB825\uC785\uB2C8\uB2E4.", code: "EMPTY_INPUT" };
|
|
28870
28893
|
}
|
|
28871
28894
|
const format = detectFormat(buffer);
|
|
28895
|
+
const result = await dispatch(format, buffer, opts);
|
|
28896
|
+
if (result.success && !result.pages) {
|
|
28897
|
+
const pages = blocksToPages(result.blocks);
|
|
28898
|
+
if (pages) return { ...result, pages };
|
|
28899
|
+
}
|
|
28900
|
+
return result;
|
|
28901
|
+
}
|
|
28902
|
+
async function dispatch(format, buffer, opts) {
|
|
28872
28903
|
switch (format) {
|
|
28873
28904
|
case "hwpx": {
|
|
28874
28905
|
const zipFormat = await detectZipFormat(buffer);
|
|
@@ -28895,7 +28926,7 @@ async function parse(input, options) {
|
|
|
28895
28926
|
}
|
|
28896
28927
|
async function parseImage(buffer, options) {
|
|
28897
28928
|
try {
|
|
28898
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
28929
|
+
const { parseImageDocument } = await import("./image-ocr-O7TKPDTY.js");
|
|
28899
28930
|
const { blocks, warnings } = await parseImageDocument(buffer, options);
|
|
28900
28931
|
return {
|
|
28901
28932
|
success: true,
|
|
@@ -28954,7 +28985,7 @@ async function parseHwp(buffer, options) {
|
|
|
28954
28985
|
async function parsePdf(buffer, options) {
|
|
28955
28986
|
let parsePdfDocument;
|
|
28956
28987
|
try {
|
|
28957
|
-
const mod = await import("./parser-
|
|
28988
|
+
const mod = await import("./parser-U3SMCGRK.js");
|
|
28958
28989
|
parsePdfDocument = mod.parsePdfDocument;
|
|
28959
28990
|
} catch {
|
|
28960
28991
|
return {
|
|
@@ -29064,6 +29095,7 @@ export {
|
|
|
29064
29095
|
fillFormFields,
|
|
29065
29096
|
extractClickHereFields,
|
|
29066
29097
|
fillHwpx,
|
|
29098
|
+
blocksToPages,
|
|
29067
29099
|
PRESET_ALIAS,
|
|
29068
29100
|
normalizeGongmunPreset,
|
|
29069
29101
|
incompatibleGongmunWarnings,
|
|
@@ -29100,4 +29132,4 @@ export {
|
|
|
29100
29132
|
parseHwpml,
|
|
29101
29133
|
fillForm
|
|
29102
29134
|
};
|
|
29103
|
-
//# sourceMappingURL=chunk-
|
|
29135
|
+
//# sourceMappingURL=chunk-3CBHCDYD.js.map
|