Ihr eigenes deutsches KI-Büro — 3 Tage kostenlos testen
Zurück zum Blog
Tutorial
2026-03-19
15 Min Lesezeit

OCR in Python: Dokumente in 5 Zeilen Code digitalisieren

Python OCR Tutorial: Dokumente digitalisieren mit der German-OCR API. Setup, Code-Beispiele, Batch-Verarbeitung und Error Handling.

OCR in Python: Dokumente in 5 Zeilen Code digitalisieren

Python ist die beliebteste Sprache für Automatisierung und Datenverarbeitung. Dieser Artikel zeigt, wie Sie mit der German-OCR API in 5 Zeilen Code Ihr erstes Dokument digitalisieren.

Voraussetzungen

  • Python 3.8 oder höher
  • requests-Bibliothek (oder das German-OCR SDK)
  • Ein German-OCR API-Key (kostenlos registrieren)
pip install requests

Ihr erstes Dokument: 5 Zeilen Code

import requests

response = requests.post(
    "https://api.german-ocr.de/v1/extract",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    files={"file": open("dokument.pdf", "rb")},
)
print(response.json()["text"])

Das ist alles. Sie laden eine Datei hoch, die API gibt den erkannten Text zurück. Kein Setup, keine lokale Modellinstallation, keine GPU nötig.

Modell auswählen

# German-OCR: spezialisierte deutsche Texterkennung (~3–5s)
data = {"model": "german-ocr"}

# Privacy Shield: PII-Anonymisierung
data = {"model": "privacy-shield"}

Rechnungsfelder gezielt extrahieren

import requests
import os

API_KEY = os.environ["GERMAN_OCR_API_KEY"]
API_URL = "https://api.german-ocr.de/v1/extract"

def extract_invoice(file_path):
    with open(file_path, "rb") as f:
        response = requests.post(
            API_URL,
            headers={"Authorization": f"Bearer {API_KEY}"},
            files={"file": f},
            data={"model": "german-ocr", "document_type": "invoice"}
        )
    response.raise_for_status()
    return response.json()

result = extract_invoice("rechnung.pdf")
fields = result["fields"]
print(f"Rechnungsnr: {fields['invoice_number']}")
print(f"Brutto:      {fields['total']} EUR")

Batch-Verarbeitung: Mehrere Dokumente auf einmal

from pathlib import Path
from concurrent.futures import ThreadPoolExecutor, as_completed

def batch_process(input_dir, max_workers=5):
    pdf_files = list(Path(input_dir).glob("*.pdf"))
    print(f"Gefunden: {len(pdf_files)} PDFs")

    with ThreadPoolExecutor(max_workers=max_workers) as executor:
        futures = {
            executor.submit(process_document, pdf): pdf
            for pdf in pdf_files
        }
        for future in as_completed(futures):
            pdf = futures[future]
            result = future.result()
            print(f"  [{result['status'].upper()}] {pdf.name}")

batch_process("./rechnungen/", max_workers=5)

Error Handling: Robust in Produktion

def extract_with_retry(file_path, model="german-ocr",
                       max_retries=3, initial_delay=1.0):
    delay = initial_delay
    for attempt in range(max_retries):
        try:
            with open(file_path, "rb") as f:
                response = requests.post(
                    API_URL,
                    headers={"Authorization": f"Bearer {API_KEY}"},
                    files={"file": f},
                    data={"model": model},
                    timeout=30
                )
            if response.status_code == 200:
                return response.json()
            elif response.status_code == 429:
                time.sleep(delay)
                delay *= 2
                continue
        except RequestException as e:
            if attempt < max_retries - 1:
                time.sleep(delay)
                delay *= 2
                continue
            raise

Privacy Shield: PII-Anonymisierung

def extract_anonymized(file_path):
    with open(file_path, "rb") as f:
        response = requests.post(
            API_URL,
            headers={"Authorization": f"Bearer {API_KEY}"},
            files={"file": f},
            data={"model": "privacy-shield"}
        )
    return response.json()

result = extract_anonymized("personalausweis.pdf")
# Name: [NACHNAME], Adresse: [ADRESSE], etc.

Nächste Schritte

Sie haben jetzt alles, um OCR in Python produktiv einzusetzen: einfache Extraktion, Batch-Verarbeitung, Error Handling und PII-Anonymisierung. Testen Sie German-OCR 3 Tage kostenlos, ohne Kreditkarte.

API-Key holen auf german-ocr.de

Schlagwörter
OCR PythonPython TexterkennungPython DokumentenerkennungOCR API PythonDokumente digitalisieren Python

German-OCR kostenlos testen

3 Tage unverbindlich testen. DSGVO-konform auf Servern in Falkenstein, Deutschland.

Jetzt starten