본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 06. 04. 14:56

opendataloader-pdf

요약

opendataloader-pdf는 AI 학습 및 RAG를 위해 PDF에서 Markdown, JSON, HTML을 추출하는 오픈 소스 파서입니다. 결정론적 로컬 모드와 AI 하이브리드 모드를 결합하여 복잡한 표, 수식, 이미지를 높은 정확도로 처리하며 PDF 접근성 자동화 기능도 제공합니다.

핵심 포인트

  • 벤치마크 1위의 높은 데이터 추출 정확도 기록
  • RAG 최적화를 위한 구조화된 Markdown 및 JSON 출력 지원
  • OCR 및 하이브리드 모드를 통한 저품질 스캔본 처리 가능
  • 태그 없는 PDF를 스크린 리더용 태그 지정 PDF로 자동 변환
  • Python, Node.js, Java SDK 및 LangChain 연동 지원

AI 준비 완료된 데이터를 위한 PDF 파서 (Parser). PDF 접근성 자동화. 오픈 소스 (Open-source).

🔍 AI 데이터 추출을 위한 PDF 파서 (Parser) — 모든 PDF에서 Markdown, JSON (경계 상자 (bounding boxes) 포함), 그리고 HTML을 추출합니다. 벤치마크 1위 (전체 0.907). 복잡한 페이지를 위해 결정론적 로컬 모드 (Deterministic local mode) + AI 하이브리드 모드 (AI hybrid mode)를 제공합니다.

얼마나 정확한가요? — 벤치마크 1위: 전체 0.907, 다단 구성 및 과학 논문을 포함한 200개의 실제 PDF에 대해 표 (table) 정확도 0.928을 기록했습니다. 복잡한 페이지를 위해 결정론적 로컬 모드 (Deterministic local mode) + AI 하이브리드 모드 (AI hybrid mode)를 제공합니다 (벤치마크).

스캔된 PDF와 OCR은 가능한가요? — 네. 하이브리드 모드 (hybrid mode)에서 내장된 OCR (80개 이상의 언어)을 지원합니다. 300 DPI 이상의 저품질 스캔본에서도 작동합니다 (하이브리드 모드 (hybrid mode)).

표, 수식, 이미지, 차트는 가능한가요? — 네. 복잡하거나 테두리가 없는 표, LaTeX 수식, 그리고 AI가 생성한 사진/차트 설명을 모두 하이브리드 모드 (hybrid mode)를 통해 지원합니다 (하이브리드 모드 (hybrid mode)).

RAG를 위해 어떻게 사용하나요?pip install opendataloader-pdf를 통해 3줄 이내로 변환할 수 있습니다. 청킹 (chunking)을 위한 구조화된 Markdown, 출처 인용을 위한 경계 상자 (bounding boxes)가 포함된 JSON, 그리고 HTML을 출력합니다. LangChain 연동이 가능합니다. Python, Node.js, Java SDK를 지원합니다 (빠른 시작 (quick start) | LangChain).

PDF 접근성 (accessibility) 자동화 — 태그가 지정되지 않은 PDF를 스크린 리더 (screen-reader)가 읽을 수 있는 태그 지정된 PDF (Tagged PDFs)로 대규모 자동 태깅합니다. 엔드 투 엔드 (end-to-end)로 태그 지정된 PDF를 생성하는 최초의 오픈 소스 도구입니다.

문제는 무엇인가요?— 접근성 규정(Accessibility regulations)이 전 세계적으로 시행되고 있습니다. 수동 PDF 수정(remediation)은 문서당 50~200달러의 비용이 들며 확장성이 떨어집니다(regulations)

무엇이 무료인가요?— 레이아웃 분석(Layout analysis) + 자동 태깅(auto-tagging) (Apache 2.0). 태그가 없는 PDF 입력 → 태그가 있는 PDF 출력. 독점적인 SDK 의존성 없음(auto-tagging)

PDF/UA 준수(compliance)는 어떤가요?— 태그가 있는 PDF(Tagged PDF)를 PDF/UA-1 또는 PDF/UA-2로 변환하는 것은 엔터프라이즈 부가 기능(enterprise add-on)입니다. 자동 태깅은 태그가 있는 PDF를 생성하며, PDF/UA 내보내기(export)는 마지막 단계입니다(pipeline)

왜 신뢰할 수 있나요?— PDF Association의 사양, 모범 사례 가이드 및 PDF 커뮤니티의 전문 지식을 기반으로 Dual Lab(veraPDF 개발자)과 협력하여 구축되었습니다. 자동 태깅은 Well-Tagged PDF 사양을 따르며, veraPDF(협업)를 통해 검증되었습니다.

요구 사항: Java 11 이상 및 Python 3.10 이상 (Node.js | Java도 사용 가능)

시작하기 전에: java -version을 실행하세요. 찾을 수 없는 경우, Adoptium에서 JDK 11 이상을 설치하세요.

pip install -U opendataloader-pdf

import opendataloader_pdf
# 한 번의 호출로 모든 파일을 배치 처리합니다 — 각 convert()는 JVM 프로세스를 생성하므로 반복적인 호출은 느립니다
opendataloader_pdf.convert(
...

주석이 달린 PDF 출력 — 각 요소(제목, 단락, 표, 이미지)가 경계 상자(bounding boxes) 및 의미론적 유형(semantic type)과 함께 감지됩니다.

문제솔루션상태
파싱 중 PDF 구조 손실 — 잘못된 읽기 순서, 깨진 표, 요소 좌표 없음경계 상자(bounding boxes) 및 XY-Cut++ 읽기 순서를 포함한 결정론적(Deterministic) 로컬 PDF to Markdown/JSON 변환출시됨 (Shipped)
복잡한 표, 스캔된 PDF, 공식, 차트는 AI 수준의 이해가 필요함하이브리드 모드가 복잡한 페이지를 AI 백엔드로 라우팅함 (벤치마크 1위)출시됨 (Shipped)
수동 PDF 수정 비용 — 접근성 규정(EAA, ADA, Section 508)은 태그가 있는 PDF(Tagged PDFs)를 요구합니다. 수동 수정 비용은 문서당 50~200달러입니다태그가 없는 PDF를 태그가 있는 PDF로 자동 태깅 (무료, Apache 2.0). PDF/UA 워크플로우의 기반이 되며, 전체 PDF/UA-1/2 내보내기는 엔터프라이즈 부가 기능입니다자동 태깅: 출시됨 (Shipped). PDF/UA 내보내기: 엔터프라이즈 (Enterprise)
기능지원 여부티어 (Tier)
데이터 추출 (Data extraction)
올바른 읽기 순서로 텍스트 추출무료 (Free)
모든 요소에 대한 경계 상자 (Bounding boxes)무료 (Free)
표 추출 (단순 테두리)무료 (Free)
...접근성 (Accessibility)
자동 태깅 (Auto-tagging) → 태그가 없는 PDF를 태그된 PDF로 변환무료 (Free) (Apache 2.0)
PDF/UA-1, PDF/UA-2 내보내기💼 사용 가능엔터프라이즈 (Enterprise)
접근성 스튜디오 (Accessibility studio, 시각적 에디터)💼 사용 가능엔터프라이즈 (Enterprise)
제한 사항 (Limitations)
Word/Excel/PPT 처리아니요
GPU 필요 여부아니요

**opendataloader-pdf [hybrid]**는 읽기 순서, 표, 제목 추출 정확도 전반에서 **1위(0.907)**를 차지했습니다.

엔진 (Engine)종합 (Overall)읽기 순서 (Reading Order)표 (Table)제목 (Heading)속도 (초/페이지)라이선스 (License)
opendataloader [hybrid]0.9070.9340.9280.8210.463Apache-2.0
nutrient0.8850.9250.7080.8190.008상용 (Commercial)
docling0.8820.8980.8870.8240.762MIT
marker0.8610.8900.8080.79653.932GPL-3.0
unstructured [hi_res]0.8410.9040.5880.7493.008Apache-2.0
...

점수는 [0, 1]로 정규화되었습니다. 정확도는 높을수록 좋으며, 속도는 낮을수록 좋습니다.

굵게 표시된 항목 = 최고 성능. 전체 벤치마크 상세 정보

문서 유형모드 (Mode)설치 (Install)서버 명령 (Server Command)클라이언트 명령 (Client Command)
표준 디지털 PDF (Standard digital PDF)Fast (기본값)pip install opendataloader-pdf필요 없음opendataloader-pdf file1.pdf file2.pdf folder/
복잡하거나 중첩된 표 (Complex or nested tables)Hybridpip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --port 5002opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
스캔된 / 이미지 기반 PDF (Scanned / image-based PDF)Hybrid + OCRpip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --port 5002 --force-ocropendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
비영어권 스캔 PDF (Non-English scanned PDF)Hybrid + OCRpip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "ko,en"opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
수학 공식 (Mathematical formulas)Hybrid + formulapip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --enrich-formulaopendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
설명이 필요한 차트 (Charts needing description)Hybrid + picturepip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --enrich-picture-descriptionopendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
접근성을 위한 태그가 없는 PDF (Untagged PDFs needing accessibility)Auto-tagging → Tagged PDFpip install opendataloader-pdf필요 없음opendataloader-pdf --format tagged-pdf file1.pdf file2.pdf folder/

pip install -U opendataloader-pdf

import opendataloader_pdf
# 한 번의 호출로 모든 파일을 배치 처리하세요 — 각 convert()는 JVM 프로세스를 생성하므로 반복적인 호출은 느립니다.
opendataloader_pdf.convert(
...

npm install @opendataloader/pdf

import { convert } from '@opendataloader/pdf';
await convert(['file1.pdf', 'file2.pdf', 'folder/'], {
outputDir: 'output/',
...
<dependency> <groupId>org.opendataloader</groupId> <artifactId>opendataloader-pdf-core</artifactId> ...

Python Quick Start | Node.js Quick Start | Java Quick Start

하이브리드 모드 (Hybrid mode)는 빠른 로컬 Java 처리와 AI 백엔드 (AI backends)를 결합합니다. 단순한 페이지는 로컬에서 처리되어 (0.02초) 빠르며, 복잡한 페이지는 AI로 라우팅되어 표 (table) 정확도를 90% 이상 높입니다.

`pip install -U "opendataloader-pdf[hybrid]"`

**터미널 1 (Terminal 1)** — 백엔드 서버 시작:

`opendataloader-pdf-hybrid --port 5002`

**터미널 2 (Terminal 2)** — PDF 처리:

한 번의 호출로 모든 파일을 배치 (Batch) 처리합니다 — 각 호출마다 JVM 프로세스가 생성되므로, 반복적인 호출은 느려질 수 있습니다.

opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/


**Python:**

한 번의 호출로 모든 파일을 배치 (Batch) 처리합니다 — 각 convert() 호출마다 JVM 프로세스가 생성되므로, 반복적인 호출은 느려질 수 있습니다.

opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
...


선택 가능한 텍스트가 없는 이미지 기반 PDF의 경우, `--force-ocr`로 백엔드를 시작하세요:

`opendataloader-pdf-hybrid --port 5002 --force-ocr`

영어가 아닌 문서의 경우, 언어를 지정하세요:

`opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "ko,en"`

지원되는 언어: `en`, `ko`, `ja`, `ch_sim`, `ch_tra`, `de`, `fr`, `ar` 및 기타.

과학 기술 PDF에서 수학 공식 (mathematical formulas)을 LaTeX 형식으로 추출하세요:

서버: 공식 강화 (formula enrichment) 활성화

opendataloader-pdf-hybrid --enrich-formula

한 번의 호출로 모든 파일을 배치 (Batch) 처리합니다 — 각 호출마다 JVM 프로세스가 생성되므로, 반복적인 호출은 느려질 수 있습니다.

...


JSON 출력:

{
"type": "formula",
"page number": 1,
...


참고: 공식 (Formula) 및 그림 설명 (picture description) 강화 기능을 사용하려면 클라이언트 측에서 `--hybrid-mode full` 설정이 필요합니다.

차트 및 이미지에 대한 AI 설명을 생성하세요 — RAG 검색 및 접근성을 위한 대체 텍스트 (alt text)에 유용합니다:

서버

opendataloader-pdf-hybrid --enrich-picture-description

한 번의 호출로 모든 파일을 배치 (Batch) 처리합니다 — 각 호출마다 JVM 프로세스가 생성되므로, 반복적인 호출은 느려질 수 있습니다.

...


JSON 출력:

{
"type": "picture",
"page number": 1,
...


경량 비전 모델 (Vision Model)인 SmolVLM (256M)을 사용합니다. `--picture-description-prompt`를 통해 사용자 정의 프롬프트 (Custom prompts)를 지원합니다.

Hancom Data Loader를 통한 엔터프라이즈급 AI 문서 분석 — 고객의 도메인 특화 문서로 학습된 고객 맞춤형 모델을 제공합니다. 30개 이상의 요소 유형 (표, 차트, 수식, 캡션, 각주 등), VLM 기반의 이미지/차트 이해, 복잡한 표 추출 (병합된 셀, 중첩된 표), 스캔된 문서를 위한 SLA 보장 OCR, 그리고 네이티브 HWP/HWPX 지원을 포함합니다. PDF, DOCX, XLSX, PPTX, HWP, PNG, JPG를 지원합니다. 라이브 데모

| 형식 (Format) | 사용 사례 (Use Case) |
|---|---|
| JSON | 경계 상자 (Bounding boxes) 및 의미론적 유형 (Semantic types)을 포함한 구조화된 데이터 |
| Markdown | LLM 컨텍스트 및 RAG 청크 (Chunks)를 위한 깔끔한 텍스트 |
| HTML | 스타일링이 적용된 웹 디스플레이 |
| Annotated PDF | 시각적 디버깅 — 감지된 구조 확인 (샘플) |
| Text | 일반 텍스트 추출 |

형식 결합: `format="json,markdown"`

| 필드 (Field) | 설명 (Description) |
|---|---|
| `type` | 요소 유형: 제목 (heading), 단락 (paragraph), 표 (table), 목록 (list), 이미지 (image), 캡션 (caption), 수식 (formula) |
| `id` | 상호 참조를 위한 고유 식별자 |
| `page number` | 1부터 시작하는 페이지 참조 |
| `bounding box` | PDF 포인트 단위의 `[left, bottom, right, top]` (72pt = 1인치) |
| `heading level` | 제목 깊이 (1 이상) |
| `content` | 추출된 텍스트 |

PDF에 구조 태그 (Structure tags)가 있는 경우, OpenDataLoader는 저자가 의도한 **정확한 레이아웃 (Exact layout)**을 추출합니다 — 추측이나 휴리스틱 (Heuristics)을 사용하지 않습니다. 제목, 목록, 표 및 읽기 순서가 소스에서 그대로 보존됩니다.

출력 품질은 태그 품질에 따라 달라집니다. 모든 태그가 지정된 PDF가 잘 태그되어 있는 것은 아닙니다. 태그가 부족하거나 잘못된 PDF의 경우, 기본 휴리스틱 모드 또는 `--hybrid docling-fast`가 종종 더 나은 결과를 생성합니다.

한 번의 호출로 모든 파일을 배치 처리하세요 — 각 convert()는 JVM 프로세스를 생성하므로 반복적인 호출은 느립니다.

opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
...


대부분의 PDF 파서 (Parsers)는 구조 태그를 완전히 무시합니다. 자세히 알아보기

PDF에는 숨겨진 프롬프트 인젝션 (Prompt injection) 공격이 포함될 수 있습니다. OpenDataLoader는 자동으로 필터링합니다:

- 숨겨진 텍스트 (투명 텍스트, 크기가 0인 글꼴)
- 페이지 외 콘텐츠 (Off-page content)
- 의심스러운 보이지 않는 레이어 (Suspicious invisible layers)

민감한 데이터(이메일, URL, 전화번호 → 플레이스홀더(placeholders))를 정화(sanitize)하려면, 명시적으로 활성화하십시오:

한 번의 호출로 모든 파일을 배치 처리합니다 — 각 호출마다 JVM 프로세스가 생성되므로, 반복적인 호출은 느립니다.

opendataloader-pdf file1.pdf file2.pdf folder/ --sanitize


`pip install -U langchain-opendataloader-pdf`

from langchain_opendataloader_pdf import OpenDataLoaderPDFLoader
loader = OpenDataLoaderPDFLoader(
file_path=["file1.pdf", "file2.pdf", "folder/"],
...


LangChain Docs | GitHub | PyPI

한 번의 호출로 모든 파일을 배치 처리합니다 — 각 convert()는 JVM 프로세스를 생성하므로, 반복적인 호출은 느립니다.

opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
...


**문제점**: 수백만 개의 기존 PDF에는 구조 태그(structure tags)가 없어 접근성 규정(EAA, ADA/Section 508, 한국 디지털 포용법)을 준수하지 못하고 있습니다. 수동 수정 비용은 문서당 $50–200에 달하며 확장성이 떨어집니다.

**OpenDataLoader의 접근 방식**: PDF Association 및 Dual Lab(업계 표준 오픈 소스 PDF/A 및 PDF/UA 검증기인 veraPDF의 개발사)과의 협업을 통해 구축되었습니다. 자동 태깅(Auto-tagging)은 Well-Tagged PDF 사양을 따르며, veraPDF를 사용하여 프로그래밍 방식으로 검증됩니다. 이는 수동 검토가 아닌, PDF 접근성 표준에 대한 자동화된 적합성 검사(conformance checks)입니다. 기존의 어떤 오픈 소스 도구도 엔드 투 엔드(end-to-end)로 태그가 지정된 PDF(Tagged PDFs)를 생성하지 못하며, 대부분은 태그 작성 단계에서 독점 SDK에 의존합니다. OpenDataLoader는 이 모든 과정을 Apache 2.0 라이선스 하에 수행합니다. (협업 세부 사항)

| 규정 | 마감일 | 요구 사항 |
|---|---|---|
| 유럽 접근성 법안 (EAA) | 2025년 6월 28일 | EU 전역의 접근 가능한 디지털 제품 |
| ADA & Section 508 | 시행 중 | 미국 연방 기관 및 공공 숙박 시설 |
| 디지털 포용법 | 시행 중 | 대한민국 디지털 서비스 접근성 |

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending All (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0