| disable-model-invocation | true |
| name | pdf |
| description | Extracts text, tables, and structure from PDF files using opendataloader-pdf. Use when reading PDFs, converting PDF to markdown/JSON/HTML, extracting tables from PDF, processing scanned PDFs with OCR, or analyzing PDF content for RAG pipelines. Do NOT use for creating/editing PDFs, Word/Excel/PPT files (use xlsx2md for Excel), or viewing PDFs (use Read tool for simple PDF viewing). |
| argument-hint | <file.pdf> [--format markdown|json|html] [--pages 1,3,5-7] |
| user-invocable | true |
| allowed-tools | Bash(opendataloader-pdf*), Bash(pip*), Bash(python3*), Bash(java*), Read, Grep, Glob |
pdf โ opendataloader-pdf
PDF๋ฅผ Markdown, JSON (bounding boxes ํฌํจ), HTML๋ก ๋ณํํฉ๋๋ค.
๋ฒค์น๋งํฌ #1 (0.90 overall accuracy). Java 11+ ํ์.
Prerequisites
- Java 11+ (
java -version์ผ๋ก ํ์ธ)
- Python 3.10+
pip install -U opendataloader-pdf
pip install -U "opendataloader-pdf[hybrid]"
Phase 1: ์
๋ ฅ ๋ถ์
์ฌ์ฉ์ ์์ฒญ์์ ํ์
:
- PDF ๊ฒฝ๋ก โ
$ARGUMENTS์์ ์ถ์ถ ๋๋ ์ฌ์ฉ์์๊ฒ ํ์ธ
- ์ถ๋ ฅ ํฌ๋งท โ markdown (์ถ์ฒ), json (์ขํ ํ์ ์), html, text (CLI ๊ธฐ๋ณธ๊ฐ์ json)
- ๋ณต์ก๋ โ ๋จ์ ํ
์คํธ PDF vs ๋ณต์กํ ํ
์ด๋ธ/์ค์บ/์์
Phase 2: ๋ณํ ์คํ
๊ธฐ๋ณธ ๋ณํ (Fast mode)
opendataloader-pdf <file.pdf> -o <output-dir> -f markdown
Python API
import opendataloader_pdf
opendataloader_pdf.convert(
input_path=["file.pdf"],
output_dir="output/",
format="markdown,json"
)
์ฃผ์ ์ต์
| ์ต์
| ์ค๋ช
| ๊ธฐ๋ณธ๊ฐ |
|---|
-f, --format | ์ถ๋ ฅ ํฌ๋งท (json, text, html, markdown, markdown-with-html, markdown-with-images) | json |
-o, --output-dir | ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ | ์
๋ ฅ ํ์ผ ๋๋ ํ ๋ฆฌ |
--pages | ์ถ์ถ ํ์ด์ง (์: "1,3,5-7") | ์ ์ฒด |
-p, --password | ์ํธํ๋ PDF ๋น๋ฐ๋ฒํธ | - |
--use-struct-tree | Tagged PDF ๊ตฌ์กฐ ํธ๋ฆฌ ์ฌ์ฉ | false |
--table-method | ํ
์ด๋ธ ๊ฐ์ง (default, cluster) | default |
--image-output | ์ด๋ฏธ์ง ์ฒ๋ฆฌ (off, embedded, external) | external |
--image-format | ์ด๋ฏธ์ง ํฌ๋งท (png, jpeg) | png |
--keep-line-breaks | ์๋ณธ ์ค๋ฐ๊ฟ ๋ณด์กด | false |
--sanitize | ๋ฏผ๊ฐ ๋ฐ์ดํฐ ๋ง์คํน (์ด๋ฉ์ผ, ์ ํ๋ฒํธ, IP ๋ฑ) | false |
--include-header-footer | ๋จธ๋ฆฌ๊ธ/๋ฐ๋ฅ๊ธ ํฌํจ | false |
--markdown-page-separator | ํ์ด์ง ๊ตฌ๋ถ์ (%page-number% ์ฌ์ฉ ๊ฐ๋ฅ) | ์์ |
์ ์ฒด ์ต์
: resources/options-reference.md
Phase 3: Hybrid Mode (๋ณต์กํ PDF)
๋ณต์กํ ํ
์ด๋ธ, ์ค์บ PDF, ์์, ์ฐจํธ๊ฐ ์์ ๋ ์ฌ์ฉ.
๋จ์ ํ์ด์ง๋ ๋ก์ปฌ(0.05s), ๋ณต์กํ ํ์ด์ง๋ง AI ๋ฐฑ์๋๋ก ๋ผ์ฐํ
.
opendataloader-pdf-hybrid --port 5002
opendataloader-pdf --hybrid docling-fast <file.pdf>
| ๋ฌธ์ ์ ํ | ์๋ฒ ์ต์
| ํด๋ผ์ด์ธํธ ์ต์
|
|---|
| ๋ณต์กํ ํ
์ด๋ธ | --port 5002 | --hybrid docling-fast |
| ์ค์บ/์ด๋ฏธ์ง PDF | --port 5002 --force-ocr | --hybrid docling-fast |
| ๋น์์ด ์ค์บ | --port 5002 --force-ocr --ocr-lang "ko,en" | --hybrid docling-fast |
| ์์ ํฌํจ | --enrich-formula | --hybrid docling-fast --hybrid-mode full |
| ์ฐจํธ ์ค๋ช
ํ์ | --enrich-picture-description | --hybrid docling-fast --hybrid-mode full |
--enrich-formula/--enrich-picture-description ์ฌ์ฉ ์ ํด๋ผ์ด์ธํธ์์ ๋ฐ๋์ --hybrid-mode full ์ง์ .
๊ทธ๋ ์ง ์์ผ๋ฉด enrichment๊ฐ ์กฐ์ฉํ ๋ฌด์๋จ.
Phase 4: ๊ฒฐ๊ณผ ์ฒ๋ฆฌ
๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์ ๋ชฉ์ ์ ๋ง๊ฒ ๊ฐ๊ณต:
- RAG ํ์ดํ๋ผ์ธ โ markdown ํฌ๋งท, ํ์ด์ง ๊ตฌ๋ถ์ ์ถ๊ฐ (
--markdown-page-separator "--- page %page-number% ---")
- ๋ฐ์ดํฐ ์ถ์ถ โ json ํฌ๋งท (bounding boxes๋ก ์์ค ์์น ์ถ์ )
- ์น ํ์ โ html ํฌ๋งท
- ์ด๋ฏธ์ง ํฌํจ ๋ฌธ์ โ markdown-with-images ํฌ๋งท
MCP Server
Claude Code์์ MCP ์๋ฒ๋ก ์ง์ ์ฌ์ฉ ๊ฐ๋ฅ:
claude mcp add opendataloader-pdf -- uvx opendataloader-pdf-mcp
์ค์ ์์น
- ๋ฐฐ์น ์ฐ์ :
convert() ํธ์ถ๋ง๋ค JVM์ด ์์ฑ๋๋ฏ๋ก, ์ฌ๋ฌ ํ์ผ์ ํ ๋ฒ์ ์ ๋ฌ
- Fast mode ๋จผ์ : ๋จ์ PDF๋ hybrid ์์ด ์๋. ํ
์ด๋ธ์ด ๊นจ์ง๋ฉด hybrid๋ก ์ ํ
- ํฌ๋งท ์ ํ: ํ
์คํธ๋ง ํ์ โ markdown, ์ขํ ํ์ โ json, ์น ํ์ โ html
- Tagged PDF ํ์ฉ: ์ด๋ฏธ ํ๊ทธ๋ PDF๋
--use-struct-tree๋ก ๊ตฌ์กฐ ํ์ฉ
- ๋ฏผ๊ฐ ๋ฐ์ดํฐ ์ฃผ์: ๊ฐ์ธ์ ๋ณด ํฌํจ PDF๋
--sanitize ์ต์
์๋ด