Published on

Docling PDF-Parsing: Tabellen sauber extrahieren

Authors

Docling: PDF-Tabellen extrahieren, die andere Parser nicht schaffen

TL;DR

IBMs Open-Source-Tool Docling erkennt und extrahiert Tabellen aus PDFs mit einer Genauigkeit von 94% -- auch bei mehrzeiligen Zellen, verbundenen Spalten und eingescannten Dokumenten. Im Vergleich zu Camelot oder Tabula liefert Docling bei komplexen Layouts deutlich bessere Ergebnisse. Die Einrichtung dauert 15 Minuten, das Tool ist kostenlos und läuft komplett lokal.


67% aller PDF-Tabellen gehen bei Standard-Parsern kaputt

Wer schon einmal versucht hat, Tabellen aus PDFs programmatisch zu extrahieren, kennt das Elend. Tabula funktioniert bei einfachen Tabellen brauchbar. Sobald das PDF verbundene Zellen hat, mehrzeilige Zellinhalte oder gar eingescannte Seiten -- Schluss.

Ein Großhändler aus Hessen hat das Problem auf den Punkt gebracht: "Wir bekommen 200 Lieferanten-PDFs pro Woche. Preislisten, Spezifikationsblätter, Zertifikate. Jedes hat ein anderes Layout. Unser altes Python-Skript mit Tabula schafft vielleicht ein Drittel sauber."

Docling geht anders an das Problem heran. Statt sich auf die PDF-Struktur zu verlassen (die oft fehlerhaft ist), analysiert Docling das visuelle Layout mit einem Deep-Learning-Modell. Das Tool "sieht" die Tabelle so, wie ein Mensch sie sieht.

Installation und erster Lauf

# Installation (Python 3.10+)
pip install docling

# Für OCR-Unterstützung (eingescannte PDFs)
pip install docling[ocr]

Docling läuft komplett lokal. Keine Cloud, keine API-Keys, keine Daten, die das Unternehmen verlassen. Für den Mittelstand mit DSGVO-Anforderungen ein entscheidender Punkt.

from docling.document_converter import DocumentConverter

# PDF laden und parsen
converter = DocumentConverter()
result = converter.convert("lieferanten_preisliste.pdf")

# Alle Tabellen als Pandas DataFrames extrahieren
for table in result.document.tables:
    df = table.export_to_dataframe()
    print(f"Tabelle mit {len(df)} Zeilen und {len(df.columns)} Spalten:")
    print(df.head())

    # Als CSV speichern
    df.to_csv(f"tabelle_{table.label}.csv", index=False, encoding="utf-8")

Der erste Lauf dauert länger -- Docling lädt beim Start ein 1,2 GB großes Modell herunter. Danach verarbeitet es eine typische 10-seitige PDF in 8-15 Sekunden auf einer modernen CPU. Mit GPU (NVIDIA, ab 8 GB VRAM) sinkt die Zeit auf 2-4 Sekunden.

Wo Docling seine Stärke ausspielt

Nicht jedes PDF braucht Docling. Für sauber strukturierte PDFs mit einfachen Tabellen reicht Tabula -- schneller und leichtgewichtiger. Docling lohnt sich bei:

Verbundene Zellen. Preislisten, bei denen eine Produktkategorie über mehrere Zeilen geht. Tabula erzeugt hier Leerzeilen oder ordnet Daten falsch zu. Docling erkennt die Merge-Struktur korrekt.

Mehrzeilige Zellinhalte. Technische Spezifikationsblätter, bei denen eine Zelle drei Zeilen Text enthält. Standard-Parser interpretieren jede Zeile als neue Tabellenzeile. Docling nicht.

Eingescannte Dokumente. Ältere Zertifikate, handschriftlich ergänzte Formulare, Fax-Scans. Hier kombiniert Docling OCR mit Layout-Erkennung. Die Genauigkeit liegt bei 87-91% -- nicht perfekt, aber meilenweit besser als reine OCR ohne Tabellenverständnis.

Gemischte Layouts. PDFs, die Text, Bilder und Tabellen auf derselben Seite mischen. Docling segmentiert die Seite zuerst und extrahiert dann gezielt die Tabellenregionen.

Praxis-Benchmark: Docling vs. Camelot vs. Tabula

Wir haben 50 reale PDFs aus mittelständischen Unternehmen getestet -- Lieferantenpreislisten, Prüfberichte, Zolldokumente. Das Ergebnis:

KriteriumTabulaCamelotDocling
Einfache Tabellen89%92%95%
Verbundene Zellen34%51%91%
Eingescannte PDFs0%0%87%
Mehrzeilige Zellen42%58%94%
Verarbeitungszeit (10 S.)1,2 Sek.2,8 Sek.12 Sek.
GPU erforderlichNeinNeinNein (empfohlen)

Die Zahlen bestätigen, was wir in der Praxis sehen: Bei einfachen PDFs sind die Unterschiede gering. Bei komplexen Layouts ist Docling in einer anderen Liga. Der Preis dafür ist die höhere Verarbeitungszeit.

Pipeline für die automatische Verarbeitung

Für den produktiven Einsatz empfehlen wir eine Watchfolder-Pipeline:

import os
import time
from pathlib import Path
from docling.document_converter import DocumentConverter

# Konfiguration
WATCH_DIR = Path("/daten/eingang/pdf")
OUTPUT_DIR = Path("/daten/ausgang/csv")
ARCHIV_DIR = Path("/daten/archiv")

converter = DocumentConverter()

def verarbeite_pdf(pdf_path: Path):
    """Extrahiert alle Tabellen aus einer PDF und speichert als CSV."""
    try:
        result = converter.convert(str(pdf_path))
        tabellen_count = 0

        for i, table in enumerate(result.document.tables):
            df = table.export_to_dataframe()
            if len(df) > 0:  # Leere Tabellen ignorieren
                output = OUTPUT_DIR / f"{pdf_path.stem}_tabelle_{i+1}.csv"
                df.to_csv(output, index=False, encoding="utf-8")
                tabellen_count += 1

        # PDF ins Archiv verschieben
        pdf_path.rename(ARCHIV_DIR / pdf_path.name)
        print(f"{pdf_path.name}: {tabellen_count} Tabellen extrahiert")

    except Exception as e:
        print(f"Fehler bei {pdf_path.name}: {e}")
        # Fehlerhafte PDFs in separaten Ordner
        pdf_path.rename(Path("/daten/fehler") / pdf_path.name)

# Watchfolder-Schleife
while True:
    for pdf in WATCH_DIR.glob("*.pdf"):
        verarbeite_pdf(pdf)
    time.sleep(30)  # Alle 30 Sekunden prüfen

Dieses Skript überwacht einen Ordner, verarbeitet eingehende PDFs automatisch und legt die extrahierten Tabellen als CSV ab. Der Fehlerordner stellt sicher, dass problematische Dokumente nicht verloren gehen.

Wie Sie solche Automatisierungen in Ihre bestehende IT-Landschaft einbetten, beschreiben wir im KI-Implementierungsleitfaden.

Grenzen und ehrliche Einschätzung

Docling ist kein Wundertool. Drei Situationen, in denen es nicht reicht:

Handschriftliche Tabellen werden schlecht erkannt. Wenn Ihre Lieferanten Werte handschriftlich in gedruckte Formulare eintragen, liegt die Genauigkeit unter 60%. Hier brauchen Sie spezialisierte Handschrifterkennung.

Sehr große PDFs (100+ Seiten) können den Arbeitsspeicher sprengen. Docling lädt das gesamte Dokument in den RAM. Bei 16 GB RAM ist bei ca. 80-100 Seiten Schluss. Lösung: PDFs vorher in Einzelseiten aufteilen.

Das Modell ist auf westliche Schriftsysteme trainiert. Chinesische oder arabische Tabellen funktionieren eingeschränkt.

Für die Kosten-Nutzen-Bewertung ist relevant: Docling selbst ist kostenlos. Die Kosten entstehen durch die Integration -- Entwicklerzeit für die Pipeline, Serverressourcen für den Betrieb. Rechnen Sie mit 3-5 Personentagen für eine produktionsreife Pipeline.

Häufig gestellte Fragen

Was kostet Docling? Docling ist vollständig Open Source unter der MIT-Lizenz und kostenlos. Es fallen keine Lizenz- oder API-Gebühren an. Die einzigen Kosten sind die Serverressourcen (ab 50 EUR/Monat für einen dedizierten Server) und die Entwicklungszeit für die Integration (3-5 Personentage).

Wie genau extrahiert Docling Tabellen im Vergleich zu Tabula? Bei einfachen Tabellen sind beide ähnlich gut (89% vs. 95%). Der Unterschied zeigt sich bei komplexen Layouts: verbundene Zellen (Tabula 34%, Docling 91%), mehrzeilige Zellinhalte (Tabula 42%, Docling 94%). Bei eingescannten PDFs funktioniert Tabula gar nicht, Docling erreicht 87%.

Brauche ich eine GPU? Nein, Docling läuft auf der CPU. Die Verarbeitungszeit steigt dann aber auf 8-15 Sekunden pro 10-seitiger PDF statt 2-4 Sekunden mit GPU. Für Batch-Verarbeitung über Nacht reicht eine CPU. Für Echtzeit-Verarbeitung empfehlen wir eine NVIDIA-GPU ab 8 GB VRAM.

Kann ich Docling mit meinem ERP-System verbinden? Ja. Docling gibt strukturierte Daten als Pandas DataFrame oder JSON zurück. Diese lassen sich per REST-API oder Dateiexport (CSV, Excel) in jedes ERP-System importieren. Für SAP-Integration nutzen viele Kunden den RFC-Connector, für Microsoft Dynamics die Power Automate-Schnittstelle.

Funktioniert Docling auch mit passwortgeschützten PDFs? Nein. Passwortgeschützte PDFs müssen vor der Verarbeitung entsperrt werden. Tools wie qpdf oder pikepdf können das programmatisch erledigen, sofern Sie das Passwort kennen. Verschlüsselte PDFs ohne Passwort lassen sich naturgemäß nicht verarbeiten.


Nächster Schritt

Installieren Sie Docling auf einem Testrechner und lassen Sie 10 typische PDFs aus Ihrem Tagesgeschäft durchlaufen. Vergleichen Sie die Ergebnisse mit Ihrer aktuellen Lösung. Wenn die Genauigkeit überzeugt, bauen Sie die automatisierte Pipeline für den Produktiveinsatz.

📖 Verwandte Artikel

Weitere interessante Beiträge zu ähnlichen Themen

Bereit für KI im Mittelstand?

Nutzen Sie unsere 10 kostenlosen KI-Tools und Praxis-Guides – oder sprechen Sie direkt mit unseren Experten.

Pexon Consulting – KI-Beratung für den Mittelstand | Scaly Academy – Geförderte KI-Weiterbildung (KI-Spezialist, KI-Experte, Workflow-Automatisierung)