AI 서비스를 만들거나 RAG 파이프라인을 구축할 때 PDF 처리를 마크다운으로할 수 있는 방법이다. OpenDataLoader PDF는 이 문제를 오픈소스로 해결한 라이브러리다.
이게 왜 좋은가 (Why It’s Worth Using)
① 벤치마크 1위 200개 실제 PDF 대상 테스트에서 전체 정확도 0.90으로 1위를 기록했다. 특히 표 추출 정확도는 0.93으로, Docling(0.89) 등 경쟁 도구보다 높다.
② GPU 없이 로컬 실행 가능 기본 모드는 로컬에서 페이지당 0.05초로 동작한다. 복잡한 페이지만 AI 백엔드로 라우팅하는 하이브리드 모드도 지원한다. 비용 없이 시작할 수 있다.
③ AI에 바로 넣을 수 있는 출력
- Markdown — LLM 컨텍스트, RAG 청킹용
- JSON — 요소마다 바운딩 박스 + 의미 유형 포함
- HTML — 웹 표시용
- LangChain 통합도 기본 지원
④ 80개 이상 언어 OCR + 수식 인식 스캔 PDF도 처리하고, LaTeX 수식 변환, 워터마크 필터링, 프롬프트 인젝션 공격 차단 필터도 내장되어 있다.
⑤ Apache 2.0 라이선스 상업적 사용 가능. Python, Node.js, Java 모두 지원한다.
설치 및 기본 사용법 (Installation & Basic Usage)
설치 (Install) — 터미널에서 한 번만
| 언어 | 명령어 | 패키지 |
|---|---|---|
| Python | pip install opendataloader-pdf |
PyPI |
| Node.js | npm install @opendataloader/pdf |
npm |
| Java | Maven Central 의존성 추가 (아래 참고) | Maven Central |
Java — Java 11 이상 필요
<dependency>
<groupId>org.opendataloader</groupId>
<artifactId>opendataloader-pdf-core</artifactId>
<version>최신버전 확인 후 입력</version>
</dependency>
사용 (Usage) — 코드에서 import 후 호출
Python
💡 초보자 가이드: 코딩 환경이 없다면 VS Code 또는 Positron을 설치하자. 설치 후 새 파일을 만들 때 확장자를
.ipynb로 지정하면 Jupyter Notebook 환경이 열린다. 셀 단위로 코드를 작성하고Shift + Enter로 실행하면 된다. 터미널에서의 pip 설치도 VS Code / Positron 내부 터미널(Ctrl + ``“`)에서 그대로 실행 가능하다.
from opendataloader_pdf import convert
result = convert("파일.pdf")
print(result.markdown) # Markdown 출력
print(result.json) # JSON 출력 (바운딩 박스 포함)
Node.js
💡 초보자 가이드: Node.js가 없다면 nodejs.org에서 LTS 버전을 설치한다. 이후 VS Code에서 작업 폴더를 열고, 내부 터미널에서
npm install로 패키지를 설치한다. 코드는.ts또는.js파일을 만들어 붙여넣은 뒤 터미널에서node 파일명.js로 실행하면 된다. TypeScript(.ts)를 쓴다면ts-node패키지도 함께 설치해야 한다(npm install -g ts-node).
import { convert } from '@opendataloader/pdf';
await convert(['file1.pdf', 'folder/'], {
outputDir: 'output/',
format: 'markdown,json'
});
유의할 점 (Things to Watch Out For)
1. PDF 전용 Word, Excel, PowerPoint는 지원하지 않는다. PDF로 변환 후 사용해야 한다.
2. 호출마다 JVM 프로세스가 생성
convert()를 파일 하나씩 반복 호출하면 느려진다. 배치로 묶어서 처리하는 것이 좋다.
3. 하이브리드 모드는 인터넷 연결 필요 로컬 모드만 쓰면 완전 오프라인 가능하지만, 정확도는 하이브리드 대비 낮다. 민감한 문서는 로컬 모드를 선택하자.
4. 접근성(Tagged PDF) 자동 생성은 아직 PDF/UA 변환은 엔터프라이즈 옵션이고, 완전 오픈소스 자동 태깅은 2026년 Q2 예정이다.
정리 (Summary)
| 항목 | 내용 |
|---|---|
| 라이선스 | Apache 2.0 (상업적 사용 가능) |
| 지원 언어 | Python, Node.js, Java |
| 주요 출력 | Markdown, JSON, HTML |
| 강점 | 표 추출 정확도, 로컬 실행, 바운딩 박스 |
| 주의 | PDF 전용, 배치 처리 권장, 하이브리드 모드는 유료 API 사용 |
PDF를 LLM에 넣어야 하는 상황이라면 일단 써볼 만한 도구다. 로컬 무료 모드만으로도 충분한 수준의 추출 품질이 나온다.
GitHub: https://github.com/opendataloader-project/opendataloader-pdf