opendataloader-project/opendataloader-pdf

PDF Parser for AI-ready data. Automate PDF accessibility. Open-source.

GitHub에서 열기 ↗ a11yaccessibilityaibounding-boxdocument-parsingeaahtmljsonmarkdownocrocr-recognitionpdfpdf-accessibilitypdf-converterpdf-extractionpdf-parserpdf-uaragtablestagged-pdf
26,887
GitHub 스타
2,551
포크
Java
언어
Apache-2.0
라이선스
2026.07.10
최근 푸시
2026.03.23
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
RAG/LLM 파이프라인을 구축하거나 PDF 접근성 자동화가 필요한 프로젝트에 매우 적합합니다. 특히 높은 정확도의 PDF 데이터 추출이 중요하거나, 대규모 PDF 접근성 개선 작업이 필요한 경우 강력히 추천합니다.

강점

  • 벤치마크에서 전체 정확도 0.907로 1위를 기록하며, 특히 표 추출(0.928)에서 뛰어난 성능을 보입니다.
  • Apache 2.0 라이선스의 완전한 오픈소스로, PDF 접근성 자동화(자동 태깅)를 무료로 제공하는 최초의 엔드투엔드 도구입니다.
  • Python, Node.js, Java SDK를 모두 지원하며, LangChain 통합이 가능해 RAG 파이프라인에 쉽게 적용할 수 있습니다.
  • 결정론적 로컬 모드와 AI 하이브리드 모드를 모두 제공하여 사용자가 문서 복잡도에 따라 선택할 수 있습니다.

약점

  • Word/Excel/PPT 파일은 처리할 수 없어 PDF 전용 도구라는 한계가 있습니다.
  • 하이브리드 모드 사용 시 별도의 AI 백엔드 서버를 실행해야 하므로 인프라 구성이 필요합니다.
  • PDF/UA 완전 준수 내보내기는 엔터프라이즈 애드온으로만 제공되어 무료 사용자는 제한적입니다.

주의사항

  • 각 convert() 호출 시 JVM 프로세스가 새로 생성되므로 반복 호출 시 성능 저하가 발생할 수 있습니다. 배치 처리를 권장합니다.
  • Java 11+가 필수이며, 설치 전 java -version으로 확인해야 합니다.
  • 하이브리드 모드는 추가 설치(pip install "opendataloader-pdf[hybrid]")와 서버 실행이 필요합니다.

시작 가이드

  • Java 11+와 Python 3.10+ 환경을 준비하고 pip install opendataloader-pdf로 설치합니다.
  • 간단한 PDF로 빠른 시작 예제를 실행하여 기본 추출을 테스트합니다.
  • 복잡한 PDF가 있다면 하이브리드 모드 설치 및 서버 설정을 진행합니다.
  • 접근성 자동화가 필요하면 --format tagged-pdf 옵션을 사용해 Tagged PDF 생성을 시도합니다.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

OpenDataLoader PDF

AI 데이터를 위한 PDF 파서. PDF 접근성을 자동화하세요. 오픈소스.

🔍 AI 데이터 추출을 위한 PDF 파서 — 모든 PDF에서 Markdown, JSON(바운딩 박스 포함), HTML을 추출합니다. 벤치마크 1위(전체 0.907). 결정론적 로컬 모드 + 복잡한 페이지를 위한 AI 하이브리드 모드.

  • 정확도는 얼마나 되나요? — 벤치마크 1위: 전체 0.907, 표 정확도 0.928(다중 컬럼 및 과학 논문을 포함한 200개의 실제 PDF 대상). 결정론적 로컬 모드 + 복잡한 페이지를 위한 AI 하이브리드 모드 (벤치마크)
  • 스캔된 PDF와 OCR은요? — 네. 하이브리드 모드에서 내장 OCR(80개 이상 언어)을 지원합니다. 300 DPI 이상의 저품질 스캔에서도 작동합니다 (하이브리드 모드)
  • 표, 수식, 이미지, 차트는요? — 네. 복잡한/테두리 없는 표, LaTeX 수식, AI 생성 그림/차트 설명 모두 하이브리드 모드를 통해 지원합니다 (하이브리드 모드)
  • RAG에 어떻게 사용하나요?pip install opendataloader-pdf, 3줄로 변환합니다. 청킹을 위한 구조화된 Markdown, 소스 인용을 위한 바운딩 박스가 포함된 JSON, HTML을 출력합니다. LangChain 통합 가능. Python, Node.js, Java SDK 제공 (빠른 시작 | LangChain)

PDF 접근성 자동화 — 태그가 없는 PDF를 스크린 리더가 읽을 수 있는 Tagged PDF로 대규모 자동 태깅합니다. 엔드투엔드로 Tagged PDF를 생성하는 최초의 오픈소스 도구입니다.

  • 문제가 무엇인가요? — 접근성 규정이 전 세계적으로 시행되고 있습니다. 수동 PDF 수정은 문서당 $50–200의 비용이 들며 확장이 어렵습니다 (규정)
  • 무료로 제공되는 것은 무엇인가요? — 레이아웃 분석 + 자동 태깅(Apache 2.0). 태그가 없는 PDF 입력 → Tagged PDF 출력. 독점 SDK 의존성 없음 (자동 태깅)
  • PDF/UA 준수는요? — Tagged PDF를 PDF/UA-1 또는 PDF/UA-2로 변환하는 것은 엔터프라이즈 애드온입니다. 자동 태깅은 Tagged PDF를 생성하고, PDF/UA 내보내기가 최종 단계입니다 (파이프라인)
  • 왜 신뢰할 수 있나요?Dual Lab(veraPDF 개발자)과의 협력, PDF Association 사양, 모범 사례 가이드 및 PDF Community의 전문 지식을 기반으로 구축되었습니다. 자동 태깅은 Well-Tagged PDF 사양을 따르며, veraPDF로 검증됩니다 (협력)

30초 만에 시작하기

요구 사항: 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(
    input_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    format="markdown,json"
)

!OpenDataLoader PDF 레이아웃 분석 — 제목, 표, 이미지가 바운딩 박스로 감지됨

주석이 달린 PDF 출력 — 각 요소(제목, 단락, 표, 이미지)가 바운딩 박스와 의미 유형으로 감지됩니다.

이 도구는 어떤 문제를 해결하나요?

문제 해결책 상태
파싱 중 PDF 구조 손실 — 잘못된 읽기 순서, 깨진 표, 요소 좌표 없음 결정론적 로컬 PDF를 바운딩 박스가 있는 Markdown/JSON으로 변환, XY-Cut++ 읽기 순서 출시됨
복잡한 표, 스캔된 PDF, 수식, 차트에 AI 수준의 이해 필요 하이브리드 모드가 복잡한 페이지를 AI 백엔드로 라우팅(벤치마크 1위) 출시됨
수동 PDF 수정 비용 — 접근성 규정(EAA, ADA, Section 508)이 Tagged PDF를 요구함. 수동 수정 비용 $50–200/문서 태그가 없는 PDF를 Tagged PDF로 자동 태깅(무료, Apache 2.0). PDF/UA 워크플로의 기반; 전체 PDF/UA-1/2 내보내기는 엔터프라이즈 애드온 자동 태깅: 출시됨. PDF/UA 내보내기: 엔터프라이즈

기능 매트릭스

기능 지원 등급
데이터 추출
올바른 읽기 순서로 텍스트 추출 무료
모든 요소에 대한 바운딩 박스 무료
표 추출(단순 테두리) 무료
표 추출(복잡/테두리 없음) 무료(하이브리드)
제목 계층 감지 무료
목록 감지(번호, 글머리 기호, 중첩) 무료
좌표와 함께 이미지 추출 무료
AI 차트/이미지 설명 무료(하이브리드)
스캔된 PDF용 OCR 무료(하이브리드)
수식 추출(LaTeX) 무료(하이브리드)
Tagged PDF 구조 추출 무료
AI 안전(프롬프트 인젝션 필터링) 무료
머리글/바닥글/워터마크 필터링 무료
접근성
태그가 없는 PDF → Tagged PDF 자동 태깅 무료(Apache 2.0)
PDF/UA-1, PDF/UA-2 내보내기 💼 가능 엔터프라이즈
접근성 스튜디오(시각 편집기) 💼 가능 엔터프라이즈
제한 사항
Word/Excel/PPT 처리 아니요
GPU 필요 아니요

추출 벤치마크

opendataloader-pdf [하이브리드]가 전체 1위(0.907)를 기록했습니다(읽기 순서, 표, 제목 추출 정확도 기준).

엔진 전체 읽기 순서 제목 속도(초/페이지) 라이선스
opendataloader [하이브리드] 0.907 0.934 0.928 0.821 0.463 Apache-2.0
nutrient 0.885 0.925 0.708 0.819 0.008 상용
docling 0.882 0.898 0.887 0.824 0.762 MIT
marker 0.861 0.890 0.808 0.796 53.932 GPL-3.0
unstructured [hi_res] 0.841 0.904 0.588 0.749 3.008 Apache-2.0
edgeparse 0.837 0.894 0.717 0.706 0.036 Apache-2.0
opendataloader 0.831 0.902 0.489 0.739 0.015 Apache-2.0
mineru 0.831 0.857 0.873 0.743 5.962 AGPL-3.0
pymupdf4llm 0.732 0.885 0.401 0.412 0.091 AGPL-3.0
unstructured 0.686 0.882 0.000 0.388 0.077 Apache-2.0
markitdown 0.589 0.844 0.273 0.000 0.114 MIT
liteparse 0.576 0.866 0.000 0.000 1.061 Apache-2.0

점수는 [0, 1]로 정규화됨. 정확도는 높을수록 좋고, 속도는 낮을수록 좋음. 굵게 = 최고. 전체 벤치마크 상세

!벤치마크

!품질 분석

어떤 모드를 사용해야 하나요?

문서 유형 모드 설치 서버 명령어 클라이언트 명령어
표준 디지털 PDF 빠름(기본값) pip install opendataloader-pdf 필요 없음 opendataloader-pdf file1.pdf file2.pdf folder/
복잡하거나 중첩된 표 하이브리드 pip install "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid --port 5002 opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
스캔/이미지 기반 PDF 하이브리드 + OCR pip install "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid --port 5002 --force-ocr opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
비영어 스캔 PDF 하이브리드 + OCR pip 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/
수학 수식 하이브리드 + 수식 pip install "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid --enrich-formula opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
설명이 필요한 차트 하이브리드 + 그림 pip install "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid --enrich-picture-description opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
접근성이 필요한 태그 없는 PDF 자동 태깅 → Tagged PDF pip install opendataloader-pdf 필요 없음 opendataloader-pdf --format tagged-pdf file1.pdf file2.pdf folder/

빠른 시작

Python

pip install -U opendataloader-pdf
import opendataloader_pdf

# 모든 파일을 한 번에 배치 처리 — 각 convert()는 JVM 프로세스를 생성하므로 반복 호출은 느립니다
opendataloader_pdf.convert(
    input_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    format="markdown,json"
)

Node.js

npm install @opendataloader/pdf
import { convert } from '@opendataloader/pdf';

await convert(['file1.pdf', 'file2.pdf', 'folder/'], {
  outputDir: 'output/',
  format: 'markdown,json'
});

Java

<dependency>
  <groupId>org.opendataloader</groupId>
  <artifactId>opendataloader-pdf-core</artifactId>
</dependency>

Python 빠른 시작 | Node.js 빠른 시작 | Java 빠른 시작

하이브리드 모드: 복잡한 PDF를 위한 1위 정확도

하이브리드 모드는 빠른 로컬 Java 처리와 AI 백엔드를 결합합니다. 간단한 페이지는 로컬에서 처리(0.02초)되고, 복잡한 페이지는 AI로 라우팅되어 90% 이상의 표 정확도를 제공합니다.

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

터미널 1 — 백엔드 서버 시작:

opendataloader-pdf-hybrid --port 5002

터미널 2 — PDF 처리:

# 모든 파일을 한 번에 배치 처리 — 각 호출은 JVM 프로세스를 생성하므로 반복 호출은 느립니다
opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/

Python:

# 모든 파일을 한 번에 배치 처리 — 각 convert()는 JVM 프로세스를 생성하므로 반복 호출은 느립니다
opendataloader_pdf.convert(
    input_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    hybrid="docling-fast"
)

스캔된 PDF용 OCR

[...truncated...]

원본 저장소: opendataloader-project/opendataloader-pdf

라이선스: Apache-2.0

게재 제외를 원하시면 삭제 요청을 보내주세요.