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 환경 변수 설정.

링크


Docling Parse는 MIT 라이선스, IBM에서 시작된 오픈소스 라이브러리로, 모델 학습이나 추론보다 PDF 파싱에 초점을 맞추고 있지만, 구조화된 문서 데이터가 필요한 AI 파이프라인에서 핵심적인 역할을 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트