Startseite / Docs / Technisches Handbuch

Vollständige Technische Dokumentation zu Docling

Kurzzusammenfassung (TL;DR)
  • Docling ist eine 100% kostenlose Open-Source-Engine (MIT), die PDFs, DOCX, PPTX, XLSX, gescannte Bilder und Audio in strukturiertes Markdown, HTML und JSON umwandelt.
  • Enthält Layout-Analyse, Lesereihenfolge-Erkennung und das TableFormer v2 Modell für komplexe Tabellen.
  • Unterstützt mehrsprachiges OCR mit RapidOCR, Tesseract (tesserocr), EasyOCR und OcrMac.
  • Läuft 100% lokal ohne Telemetrie, unterstützt Air-Gapped-Deployments, REST API (docling-serve) und MCP (docling-mcp).

1. Übersicht & Architektur

Docling ist eine Open-Source-Engine zur Dokumentenkonvertierung von IBM Research. Im Gegensatz zu einfachen Textextraktoren verarbeitet Docling Dokumente über modulare Pipelines, analysiert die Seitengeometrie, erkennt Bounding Boxes, rekonstruiert komplexe Tabellen und stellt die logische Lesereihenfolge für LLMs und RAG sicher.

2. Installation & Umgebungseinrichtung

Docling wird unter Python 3.9 bis 3.14 (64-Bit) auf Windows, macOS und Linux via pip oder uv installiert:

bash — Standard-Installation
$pip install docling

2.1 Windows 10/11 Installation & Visual C++ Setup

Unter Windows ist 64-Bit-Python erforderlich. Für pip-Builds mit C++-Erweiterungen (wie tesserocr) wird Microsoft Visual C++ 14.0+ benötigt:

Installation von Visual C++ Build Tools
Führen Sie in PowerShell als Administrator aus:
PS>winget install Microsoft.VisualStudio.2022.BuildTools --override "--passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"

Empfohlene Alternative (Ohne C++-Compiler): Nutzen Sie Astral uv zur Installation vorkompilierter Binärdateien:

powershell — astral uv
PS>uv add docling

3. Quickstart-Anleitung

python — Basis-Konvertierung
from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("https://arxiv.org/pdf/2408.09869")
print(result.document.export_to_markdown()[:500])
              

4. Das DoclingDocument Datenmodell

Das Kernmodell DoclingDocument verwaltet einen strukturierten Baum aus Abschnitten, Tabellen, Codeblöcken und Abbildungen mit Bounding-Box-Koordinaten, exportierbar via export_to_json().

5. Verarbeitungs-Pipelines & Granite Docling VLM

5.1 Granite Docling VLM Setup

python — granite docling vlm
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import VlmPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption

vlm_options = VlmPipelineOptions()
vlm_options.vlm_model = "granite_docling"

converter = DocumentConverter(
    format_options={InputFormat.PDF: PdfFormatOption(pipeline_options=vlm_options)}
)
result = converter.convert("dokument.pdf")
              

6. OCR-Engines & Performance-Optimierung

6.1 OCR Deaktivieren für digitale PDFs (10x schneller)

python — ocr deaktivieren
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import PdfPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption

pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = False  # 10x schneller für digitale PDFs

converter = DocumentConverter(
    format_options={InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)}
)
result = converter.convert("bericht.pdf")
              

7. Multiformat-Extraktion (Excel XLSX, PowerPoint PPTX, CAD & Audio)

python — excel und powerpoint parsen
from docling.document_converter import DocumentConverter

converter = DocumentConverter()
excel_res = converter.convert("finanzen.xlsx")
print(excel_res.document.export_to_markdown())
              

8. RAG-Chunking mit `HybridChunker`

python — hybridchunker für RAG
from docling.document_converter import DocumentConverter
from docling.chunking import HybridChunker

converter = DocumentConverter()
result = converter.convert("artikel.pdf")

chunker = HybridChunker(max_tokens=512, merge_peers=True)
for chunk in chunker.chunk(result.document):
    print(chunk.meta.headings, chunk.text[:80])
              

9. GPU-Batch-Beschleunigung

python — gpu beschleunigung
from docling.datamodel.accelerator_options import AcceleratorDevice, AcceleratorOptions
from docling.datamodel.pipeline_options import ThreadedPdfPipelineOptions

accel = AcceleratorOptions(device=AcceleratorDevice.CUDA)
pipe_opts = ThreadedPdfPipelineOptions(accelerator_options=accel, page_batch_size=8)
              

10. Framework-Integrationen (LangChain & LlamaIndex)

python — langchain docling
from langchain_docling import DoclingLoader

loader = DoclingLoader(file_path="bericht.pdf")
docs = loader.load()
              

11. VLM Vision Modell-Katalog

Modell Anbieter Einsatzbereich CLI-Parameter
granite_docling IBM Research Präzise visuelle PDF-Layout-Extraktion --vlm-model granite_docling
smoldocling Hugging Face / IBM Leichtgewichtiges VLM für CPU --vlm-model smoldocling

12. FastAPI Server (`docling-serve`) & MCP-Server

bash — docker docling-serve
$docker run -p 5001:5001 ghcr.io/docling-project/docling-serve:latest

12.1 MCP-Integration für Claude Desktop

json — claude_desktop_config.json
{
  "mcpServers": {
    "docling": {
      "command": "uvx",
      "args": ["--from=docling-mcp", "docling-mcp-server"]
    }
  }
}
              

13. Unternehmenssicherheit & Air-Gapped Deployment

bash — air-gapped setup
export DOCLING_CACHE_DIR="/opt/docling_models"
docling-tools models download --all

export HF_HUB_OFFLINE=1
export DOCLING_CACHE_DIR="/opt/docling_models"
docling dokument.pdf --to md
              

14. Entwickler-Diagnose & Fehlerbehebung

Fehlermeldung Ursache Lösung
cannot import name 'BoundingBox' Schema-Migration in Docling v2. Importieren von from docling_core.types.doc import BoundingBox.
RapidOCR: text detection result is empty Niedrige Scan-Auflösung. pipeline_options.images_scale = 2.0 setzen.
Docling Version prüfen CLI / Python Überprüfung. docling --version im Terminal ausführen.

15. Vollständige CLI-Parameter-Referenz

Option / Flag Typ Standard Beschreibung
--to md, json, html, doctags md Ausgabeformat des Dokuments.
--no-ocr Boolean - Deaktiviert OCR für schnellere digitale PDF-Konvertierung.
--version Flag - Zeigt die installierte Docling-Version an.