pdf파일을 텍스트로 변환하는 작업을 진행하다가 이런것도 있다는 것을 이제야 알았네요
python만 사용하다보니 pdfplumber를 사용해서 이리저리 헤매고 있었는데 opendataloader-pdf라는 무시무시한 녀석을 만나버렸네요
pdf파일을 다양한 포맷으로 저장해줘서 이리저리 사용해보고 있습니다.
perplexity에게 이거 어떻게 사용하는지 한번 물어보고 파이썬 코드도 작성해달라고 했는데, 역시 기대를 저버리지 않네요 :)
※ 물론 집에서 사용하는 PC 설치된 java 버전이 낮아서 java를 버전 업 해서 설치했다는 것 제외하고는 아무런 문제없이 작동하고 있습니다.
---
기존의 `pdfplumber`, `PyMuPDF(fitz)`, `pdfminer.six`처럼 텍스트만 추출하는 것이 아니라, **PDF → AI(RAG)가 바로 사용할 수 있는 Markdown / JSON / HTML / Tagged PDF로 변환하는 것을 목표로 만든 프로젝트**입니다. 특히 논문, 보고서, 특허처럼 레이아웃이 복잡한 PDF를 LLM이 이해하기 좋은 형태로 변환하는 데 초점이 맞춰져 있습니다. ([GitHub][1])
---
전체 구조(동작 원리)
OpenDataLoader는 크게 두 가지 모드가 있습니다.
│
┌─────────┴─────────┐
│ │
│
Layout Analysis
│
Reading Order(XY-Cut++)
│
│
Heading/Table/Image/List
│
```
또는
```
│
│
│ │
│
최종 결과 생성
```
이것을 **Hybrid Mode**라고 합니다. ([GitHub][2])
기본모드은 Local Mode는 AI를 사용하지 않고 Java엔진이 알아서 처리합니다. 두번째 언급한 Hybrid Mode에서는 java가 처리할 수 있는 페이지는 기본모드처럼 java가 처리하기 어려운 복잡한 페이지는 AI가 처리한다고 하네요 ㅎㅎ (아직 Hybrid는 사용하지 못해봐서... API key를 요청하는지는 모르겠네요. 설치할때 에러났어요 Orz)
---
설치 방법
## 기본 설치
필수 조건
```
Python >=3.10
Java >=11
```
먼저 Java 확인
```bash
java -version
```
설치
```bash
pip install -U opendataloader-pdf
```
CLI 설치도 같이 됩니다. ([OpenDataLoader][3])
---
## Hybrid 설치
```bash
pip install "opendataloader-pdf[hybrid]"
```
AI Backend 포함 설치입니다. ([GitHub][2])
Java는 설치할 때 확인하지 않습니다. java11이 설치되지 않았다면 opendataloader-pdf 라이브러리를 사용해서 pdf 파일을 파싱할때 에러가 납니다. 그 후에 java 11 버전 설치해도 괜찮습니다.
---
Python 사용법
```python
import opendataloader_pdf
opendataloader_pdf.convert(
input_path="paper.pdf",
output_dir="output",
format="markdown"
)
```
---
다른 PDF라이브러리와의 차이점
§Hybrid
OpenDataLoader의 가장 큰 장점은 **Markdown(LLM 입력용), JSON(정밀 제어용), Bounding Box(출처 추적용), OCR 및 AI 기반 복잡한 표/수식 처리(Hybrid 모드)**를 하나의 도구에서 제공한다는 점입니다. 그래서 특히 **논문, 특허, 매뉴얼, 기술 문서**를 RAG 파이프라인에 넣기 위한 전처리 도구로 설계되어 있습니다. ([GitHub][1])








