📑

PDF 특화 OCR — 복잡한 레이아웃·표·수식을 Markdown으로 변환하는 도구들

Marker, Docling, MinerU, Nougat, olmOCR — PDF를 LLM이 읽을 수 있는 형태로

왜 일반 OCR로는 부족한가

PDF에 Tesseract를 돌리면 텍스트는 나온다. 근데:

  • 2단 레이아웃이면 왼쪽·오른쪽이 섞인다

  • 표의 셀 구분이 사라진다

  • 수식이 깨진다

  • 머리글/바닥글이 본문에 섞인다

  • 이미지 캡션이 본문으로 들어간다

PDF 특화 도구는 레이아웃을 이해하고 올바른 읽기 순서로 Markdown을 생성한다.

도구별 비교

도구 개발 특징 CJK 설치
Marker Datalab 가장 범용. PDF/DOCX/PPTX → Markdown pip install marker-pdf
Docling IBM Research 엔터프라이즈급. LlamaIndex/LangChain 통합 pip install docling
MinerU Shanghai AI Lab CJK 최강. PaddleOCR 내장 uv pip install "mineru[all]"
Nougat Meta 학술 논문 전용. 수식 LaTeX 변환 pip install nougat-ocr
olmOCR Allen AI 자연스러운 읽기 순서. $200/100만 페이지 pip install olmocr
Unstructured Unstructured.io ETL용. 다양한 포맷 지원 pip install "unstructured[all-docs]"
PyMuPDF4LLM PyMuPDF 가장 빠름. 네이티브 텍스트 우선, OCR 폴백 pip install pymupdf4llm

각 도구 코드

Marker — 가장 범용:

pip install marker-pdf
marker_single document.pdf --output_dir ./output
# → output/document.md (Markdown)

Python에서:

from marker.converters.pdf import PdfConverter
converter = PdfConverter()
result = converter("document.pdf")
print(result.markdown)  # Markdown 텍스트

Docling — 엔터프라이즈:

pip install docling

from docling.document_converter import DocumentConverter
converter = DocumentConverter()
result = converter.convert("document.pdf")
print(result.document.export_to_markdown())

MinerU — CJK 최강:

uv pip install -U "mineru[all]"
mineru document.pdf -o ./output
# → output/document.md

Nougat — 학술 논문:

pip install nougat-ocr
nougat paper.pdf -o ./output
# → output/paper.mmd (Markdown + LaTeX 수식)

PyMuPDF4LLM — 가장 빠름:

import pymupdf4llm
md = pymupdf4llm.to_markdown("document.pdf")
print(md)  # 네이티브 텍스트 추출 (OCR 불필요한 PDF면 즉시)

용도별 추천

용도 추천
한국어/일본어/중국어 PDF MinerU
학술 논문 (수식 포함) Nougat
범용 (가장 많은 포맷) Marker
RAG 파이프라인 Docling (LlamaIndex 통합)
속도 우선 PyMuPDF4LLM
복잡한 레이아웃 olmOCR

핵심 개념

1

Marker — pip install marker-pdf → marker_single doc.pdf で Markdown 변환

2

MinerU — CJK 문서면 이것. PaddleOCR 내장으로 한중일 레이아웃 최강

3

Nougat — 학술 논문 전용. 수식을 LaTeX로, 참조를 자동 처리

4

Docling — RAG 파이프라인에 바로 연결 (LlamaIndex/LangChain)

사용 사례

RAG 전처리 — PDF를 Markdown으로 변환 → 벡터 DB에 청킹·저장 논문 분석 — 학술 PDF에서 수식·표·참조를 구조화된 텍스트로 다국어 문서 — CJK 레이아웃(세로쓰기, 루비 등)이 있는 PDF 처리