@clazic/kordoc 2.1.6 → 2.2.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 +67 -4
- package/dist/chunk-JJMA5HGQ.js +9617 -0
- package/dist/chunk-JJMA5HGQ.js.map +1 -0
- package/dist/{chunk-TFYOEQE2.js → chunk-XWET7ONC.js} +2 -2
- package/dist/chunk-ZWE3DS7E.js +39 -0
- package/dist/cli.js +114 -11
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +3000 -179
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +36 -4
- package/dist/index.d.ts +36 -4
- package/dist/index.js +3024 -178
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +100 -7
- package/dist/mcp.js.map +1 -1
- package/dist/{page-range-737B4EZW.js → page-range-ALIRXAL5.js} +2 -1
- package/dist/provider-XVKP5OGI.js +167 -0
- package/dist/provider-XVKP5OGI.js.map +1 -0
- package/dist/resolve-Y3KMGD3R.js +187 -0
- package/dist/resolve-Y3KMGD3R.js.map +1 -0
- package/dist/tesseract-provider-MZ37ZKQW.js +31 -0
- package/dist/tesseract-provider-MZ37ZKQW.js.map +1 -0
- package/dist/{utils-7JE5SKSL.js → utils-4NP2VUFW.js} +3 -2
- package/dist/utils-4NP2VUFW.js.map +1 -0
- package/dist/{watch-XALC6VOR.js → watch-4VVWG2WC.js} +4 -3
- package/dist/{watch-XALC6VOR.js.map → watch-4VVWG2WC.js.map} +1 -1
- package/package.json +4 -2
- package/dist/chunk-H7HMKSLX.js +0 -5494
- package/dist/chunk-H7HMKSLX.js.map +0 -1
- package/dist/provider-A4FHJSID.js +0 -38
- package/dist/provider-A4FHJSID.js.map +0 -1
- /package/dist/{chunk-TFYOEQE2.js.map → chunk-XWET7ONC.js.map} +0 -0
- /package/dist/{page-range-737B4EZW.js.map → chunk-ZWE3DS7E.js.map} +0 -0
- /package/dist/{utils-7JE5SKSL.js.map → page-range-ALIRXAL5.js.map} +0 -0
package/README.md
CHANGED
|
@@ -160,6 +160,17 @@ const hwpxBuffer = await markdownToHwpx("# 제목\n\n본문 텍스트\n\n| 이
|
|
|
160
160
|
writeFileSync("출력.hwpx", Buffer.from(hwpxBuffer))
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
+
### XLSX 생성 (역변환)
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
import { markdownToXlsx } from "@clazic/kordoc"
|
|
167
|
+
|
|
168
|
+
const xlsxBuffer = await markdownToXlsx("# 보고서\n\n| 항목 | 값 |\n| --- | --- |\n| 매출 | 1억 |")
|
|
169
|
+
writeFileSync("출력.xlsx", Buffer.from(xlsxBuffer))
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
테이블은 별도 시트로, 헤딩·코드블록·인용구 스타일이 자동 적용됩니다.
|
|
173
|
+
|
|
163
174
|
### 페이지 범위 지정
|
|
164
175
|
|
|
165
176
|
```typescript
|
|
@@ -167,14 +178,44 @@ const result = await parse(buffer, { pages: "1-3" }) // 1~3 페이지만
|
|
|
167
178
|
const result = await parse(buffer, { pages: [1, 5, 10] }) // 특정 페이지
|
|
168
179
|
```
|
|
169
180
|
|
|
170
|
-
### OCR (이미지 PDF)
|
|
181
|
+
### OCR (이미지 스캔 PDF)
|
|
182
|
+
|
|
183
|
+
이미지 기반 PDF는 자동으로 감지되며, 설치된 AI CLI를 자동 탐색하여 OCR을 수행합니다.
|
|
184
|
+
|
|
185
|
+
**CLI — 자동 탐색 (권장)**
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
kordoc scan.pdf # 자동: gemini → claude → codex → ollama → tesseract 순으로 탐색
|
|
189
|
+
kordoc scan.pdf --ocr gemini # gemini CLI 강제 지정
|
|
190
|
+
kordoc scan.pdf --ocr claude # claude CLI 강제 지정
|
|
191
|
+
kordoc scan.pdf --ocr codex # codex CLI 강제 지정
|
|
192
|
+
kordoc scan.pdf --ocr ollama # Ollama REST API 사용 (기본 모델: gemma4:27b)
|
|
193
|
+
kordoc scan.pdf --ocr tesseract # tesseract.js 사용 (npm install tesseract.js 필요)
|
|
194
|
+
kordoc scan.pdf --ocr off # OCR 비활성화
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
> 이미 구독 중인 gemini / claude / codex CLI가 있다면 API 키 설정 없이 바로 동작합니다.
|
|
198
|
+
|
|
199
|
+
**라이브러리 API — 커스텀 프로바이더**
|
|
171
200
|
|
|
172
201
|
```typescript
|
|
202
|
+
// 단순 텍스트 반환
|
|
173
203
|
const result = await parse(buffer, {
|
|
174
204
|
ocr: async (pageImage, pageNumber, mimeType) => {
|
|
175
205
|
return await myOcrService.recognize(pageImage)
|
|
176
206
|
}
|
|
177
207
|
})
|
|
208
|
+
|
|
209
|
+
// 구조화된 Markdown 반환 (테이블/헤딩 보존)
|
|
210
|
+
const result = await parse(buffer, {
|
|
211
|
+
ocr: async (pageImage, pageNumber, mimeType) => {
|
|
212
|
+
const md = await myVisionLLM.extractMarkdown(pageImage)
|
|
213
|
+
return { markdown: md }
|
|
214
|
+
}
|
|
215
|
+
})
|
|
216
|
+
|
|
217
|
+
// 자동 탐색 활성화 (CLI 동작과 동일)
|
|
218
|
+
const result = await parse(buffer, { ocrMode: "auto" })
|
|
178
219
|
```
|
|
179
220
|
|
|
180
221
|
## CLI
|
|
@@ -183,11 +224,30 @@ const result = await parse(buffer, {
|
|
|
183
224
|
# 전역 설치 (권장)
|
|
184
225
|
npm install -g @clazic/kordoc
|
|
185
226
|
|
|
227
|
+
# 문서 → Markdown 파싱
|
|
186
228
|
kordoc 사업계획서.hwpx # 터미널 출력
|
|
187
229
|
kordoc 보고서.hwp -o 보고서.md # 파일 저장
|
|
188
230
|
kordoc *.pdf -d ./변환결과/ # 일괄 변환
|
|
189
231
|
kordoc 검토서.hwpx --format json # JSON (blocks + metadata 포함)
|
|
190
232
|
kordoc 보고서.hwpx --pages 1-3 # 페이지 범위
|
|
233
|
+
kordoc 문서.hwpx --image-dir ./이미지 # 이미지 저장 폴더 지정
|
|
234
|
+
|
|
235
|
+
# 이미지 스캔 PDF → Markdown (자동 OCR)
|
|
236
|
+
kordoc scan.pdf # 자동: 설치된 AI CLI 탐색
|
|
237
|
+
kordoc scan.pdf --ocr gemini # gemini CLI 지정
|
|
238
|
+
kordoc scan.pdf --ocr claude # claude CLI 지정
|
|
239
|
+
kordoc scan.pdf --ocr codex # codex CLI 지정
|
|
240
|
+
kordoc scan.pdf --ocr ollama # Ollama (KORDOC_OLLAMA_MODEL 환경변수로 모델 지정)
|
|
241
|
+
kordoc scan.pdf --ocr tesseract # tesseract.js (npm install tesseract.js 필요)
|
|
242
|
+
|
|
243
|
+
# Markdown → 문서 변환
|
|
244
|
+
kordoc convert 보고서.md # → 보고서.hwpx (기본)
|
|
245
|
+
kordoc convert 보고서.md -f xlsx # → 보고서.xlsx
|
|
246
|
+
kordoc convert 보고서.md -o 최종보고서.hwpx # 출력 경로 지정
|
|
247
|
+
kordoc convert 보고서.md --image-dir ./이미지 # 이미지 폴더 지정
|
|
248
|
+
kordoc convert 보고서.md --template 기본.hwpx # HWPX 템플릿 적용
|
|
249
|
+
|
|
250
|
+
# 폴더 감시 모드
|
|
191
251
|
kordoc watch ./수신함 -d ./변환결과 # 폴더 감시 모드
|
|
192
252
|
kordoc watch ./문서 --webhook https://api/hook # 웹훅 알림
|
|
193
253
|
```
|
|
@@ -296,11 +356,12 @@ HWP 5.x를 제외한 모든 포맷 지원. 설치 없이 바로 연결 가능합
|
|
|
296
356
|
}
|
|
297
357
|
```
|
|
298
358
|
|
|
299
|
-
**
|
|
359
|
+
**8개 도구:**
|
|
300
360
|
|
|
301
361
|
| 도구 | 설명 |
|
|
302
362
|
|------|------|
|
|
303
|
-
| `parse_document` | HWP/HWPX/PDF/XLSX/DOCX → 마크다운 (
|
|
363
|
+
| `parse_document` | HWP/HWPX/PDF/XLSX/DOCX → 마크다운 (메타데이터·이미지 포함, `image_dir` 지원) |
|
|
364
|
+
| `convert_document` | Markdown → HWPX 또는 XLSX 변환 (이미지 폴더·템플릿 지원) |
|
|
304
365
|
| `detect_format` | 매직 바이트로 포맷 감지 |
|
|
305
366
|
| `parse_metadata` | 메타데이터만 빠르게 추출 |
|
|
306
367
|
| `parse_pages` | 특정 페이지 범위만 파싱 |
|
|
@@ -328,7 +389,8 @@ HWP 5.x를 제외한 모든 포맷 지원. 설치 없이 바로 연결 가능합
|
|
|
328
389
|
|------|------|
|
|
329
390
|
| `compare(bufferA, bufferB, options?)` | IR 레벨 문서 비교 |
|
|
330
391
|
| `extractFormFields(blocks)` | IRBlock[]에서 양식 필드 인식 |
|
|
331
|
-
| `markdownToHwpx(markdown)` | Markdown → HWPX 역변환 |
|
|
392
|
+
| `markdownToHwpx(markdown, options?)` | Markdown → HWPX 역변환 (이미지·템플릿 지원) |
|
|
393
|
+
| `markdownToXlsx(markdown, options?)` | Markdown → XLSX 역변환 (테이블 별도 시트) |
|
|
332
394
|
| `blocksToMarkdown(blocks)` | IRBlock[] → Markdown 문자열 |
|
|
333
395
|
|
|
334
396
|
### 타입
|
|
@@ -341,6 +403,7 @@ import type {
|
|
|
341
403
|
DiffResult, BlockDiff, CellDiff, DiffChangeType,
|
|
342
404
|
FormField, FormResult,
|
|
343
405
|
OcrProvider, WatchOptions,
|
|
406
|
+
MarkdownToXlsxOptions,
|
|
344
407
|
} from "@clazic/kordoc"
|
|
345
408
|
```
|
|
346
409
|
|