docling-project/docling-parse
Simple package to extract text with coordinates from programmatic PDFs
Docling Parse – 빠르고 구성 가능한 PDF 추출
무엇인가요 – C++ 코어를 가진 Python 패키지로, PDF 파일을 분석하여 구조화된 텍스트, 단어 및 줄 수준의 셀, 벡터 형태, 비트맵 이미지와 함께 좌표를 반환합니다. 이는 더 넓은 Docling PDF에서 구조화된 데이터로 변환하는 파이프라인의 저수준 엔진입니다.
왜 중요한가요 – 현대의 LLM 기반 워크플로우는 연구 논문, 계약서, 매뉴얼 등 PDF에서 깨끗하고 위치 정보가 포함된 텍스트와 임베디드 그래픽이 필요합니다. Docling Parse는 고성능이고 스레드 세이프한 방식으로 이러한 데이터를 제공하여, 하류 AI 모델이 원시 문자열이 아닌 정확한 레이아웃 정보를 사용할 수 있도록 합니다.
주요 기능
- 이중 단계 구성 –
DecodeConfig(페이지 디코딩 방식)는 열 때 고정되며,ContentConfig(계산/물리화할 내용)는 페이지별로 변경 가능하여 초기 로드는 저비용이고 필요 시 고급 재분석이 가능합니다. - 세부 출력 수준 – 문자, 단어, 줄, 벡터 형태, 비트맵 이미지의 스킵, 계산, 물리화를 선택할 수 있습니다.
- 순차적 및 멀티스레드 파서 –
DoclingPdfParser(싱글스레드 사용용);DoclingThreadedPdfParser(백프레셔어 제어를 갖춘 병렬 처리용). - pybind11를 통한 C++ 코어 – 빠른 분석 및 렌더링; 순수 Python API로 노출.
- 렌더링 지원 – Blend2D/FreeType를 통해 페이지를 이미지로 렌더링 가능하며, 환경 변수를 통해 재현 가능한 폰트 백업을 설정할 수 있습니다.
- CLI 도구 –
docling-parse로 빠른 명령줄 추출이 가능합니다. - 벤치마크 – 다른 PDF 라이브러리와의 속도/품질 비교를 위한 스크립트와 보고서 포함.
일반적인 워크플로우
from docling_parse.pdf_parser import (
DoclingPdfParser, DecodeConfig, ContentConfig, ContentLevel
)
parser = DoclingPdfParser(loglevel="fatal")
pdf = parser.load(
path_or_stream="mydoc.pdf",
decode_config=DecodeConfig(do_sanitization=True, keep_glyphs=False),
content_config=ContentConfig(
char_cells_content_level=ContentLevel.SKIP,
word_cells_content_level=ContentLevel.COMPUTE_AND_MATERIALIZE,
line_cells_content_level=ContentLevel.COMPUTE_AND_MATERIALIZE,
),
)
for page_no, page in pdf.iterate_pages():
for word in page.iterate_cells(unit_type=TextCellUnit.WORD):
print(page_no, word.rect, word.text)
# 선택적 이미지 렌더링
img = page.render_as_image(cell_unit=TextCellUnit.WORD)
img.show()
더 풍부한 데이터가 필요할 경우, pdf.get_page(page_no, content_config=…)를 호출하면 라이브러리가 해당 페이지를 자동으로 재디코딩합니다.
설치
pip install docling-parse # 사전 빌드된 웨일 (C++ 바이너리) 다운로드
개발용으로는 CMake로 C++ 부분을 빌드하거나, README에 설명된 uv 툴체인을 사용할 수 있습니다.
사용 시기
- 표, 다중 열 텍스트, 그림이 중요한 LLM 인풋을 위한 PDF 준비.
- 하류 비전 모델용 이미지 또는 벡터 그래픽 추출.
- 대량 문서 컬렉션의 고처리량 배치 처리 (멀티스레드 파서 덕분).
- 여러 머신 간 결정론적 렌더링이 필요한 경우 –
DOCLING_PARSE_*_FALLBACK_FONT환경 변수 설정.
링크
- PyPI: https://pypi.org/project/docling-parse/
- 소스: https://github.com/docling-project/docling-parse
- 관련 프로젝트 (고수준 변환): https://github.com/docling-project/docling
- LF AI & Data Foundation 페이지: https://lfaidata.foundation/projects/
Docling Parse는 MIT 라이선스, IBM에서 시작된 오픈소스 라이브러리로, 모델 학습이나 추론보다 PDF 파싱에 초점을 맞추고 있지만, 구조화된 문서 데이터가 필요한 AI 파이프라인에서 핵심적인 역할을 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트