Zum Inhalt

OCR Text-Extraktion

Der Service Task „OCR Text-Extraktion" erkennt automatisch alle Textinhalte in einem PDF-Dokument oder Bild und gibt sie als strukturierten Text zurück. Die Erkennung basiert auf einer leistungsfähigen OCR-Engine (PaddleOCR) und unterstützt sowohl gedruckten Text als auch Handschrift.

So können eingehende Dokumente wie Lieferscheine, Rechnungen oder Formulare automatisiert ausgelesen und in Folgeprozessen weiterverarbeitet werden – beispielsweise für eine KI-gestützte Klassifizierung oder Datenextraktion.


Input-Parameter

Die folgenden Felder werden als Eingabe für den Task benötigt:

{
  "pdf": {
    "referenceId": "...",
    "filename": "lieferschein.pdf"
  },
  "enableHandwriting": true,
  "outputFormat": "json"
}

Erläuterung:

  • pdf.referenceId: Referenz auf die hochgeladene Datei (PDF oder Bild). Die Datei muss als fileReference vorliegen, z. B. aus einem vorherigen Upload-Schritt.
  • pdf.filename: Der Dateiname inkl. Endung. Unterstützte Formate: PDF, JPG, PNG, BMP, TIFF.
  • enableHandwriting: Optional (true/false, Standard: true). Aktiviert die Handschrift-Erkennung und automatische Dokumenten-Entzerrung. Bei rein gedruckten Dokumenten kann dies auf false gesetzt werden, um die Verarbeitung zu beschleunigen.
  • outputFormat: Optional (json oder markdown, Standard: json). Bestimmt das Ausgabeformat.

Output

Der Task gibt die erkannten Texte seitenweise zurück:

{
  "metadata": {
    "source_file": "lieferschein.pdf",
    "total_pages": 1,
    "total_text_blocks": 49,
    "total_tables": 0
  },
  "pages": [
    {
      "page_number": 0,
      "text": "Lieferschein Nr. 7208166\nDatum: 19.03.2025\nKunde: Muster GmbH",
      "text_blocks": [
        {
          "text": "Lieferschein Nr. 7208166",
          "confidence": 0.98,
          "bbox": { "x_min": 50, "y_min": 30, "x_max": 400, "y_max": 60 }
        }
      ]
    }
  ],
  "full_text": "Lieferschein Nr. 7208166\nDatum: 19.03.2025\nKunde: Muster GmbH"
}

Erläuterung:

  • metadata: Zusammenfassung mit Quelldatei, Seitenanzahl und Gesamtzahl erkannter Textblöcke.
  • pages: Array mit einer Seite pro erkannter Dokumentseite.
    • text: Der vollständige erkannte Text der Seite als Fließtext.
    • text_blocks: Einzelne Textblöcke mit Position (bbox) und Konfidenzwert (confidence, 0–1).
  • full_text: Der gesamte Text aller Seiten zusammengefügt — ideal als Eingabe für nachfolgende KI-Services.

JSONata-Beispiele

// Datei aus einem vorherigen Upload-Schritt referenzieren
{
  "pdf": {
    "referenceId": fileUploadStep.referenceId,
    "filename": fileUploadStep.filename
  },
  "enableHandwriting": true
}
// Den extrahierten Volltext an einen KI-Service weiterleiten
{
  "text": ocrResult.full_text,
  "categories": ["Rechnung", "Lieferschein", "Angebot", "Sonstiges"]
}

Hinweise

  • Die Verarbeitungszeit beträgt je nach Dokumentgröße und -komplexität ca. 10–90 Sekunden.
  • Bei aktivierter Handschrift-Erkennung (enableHandwriting: true) wird das Dokument automatisch entzerrt, was die Erkennung bei schräg gescannten oder fotografierten Dokumenten verbessert.
  • Mehrseitige PDFs werden vollständig verarbeitet – jede Seite erscheint als eigenes Element im pages-Array.
  • Der confidence-Wert jedes Textblocks eignet sich gut zur Qualitätsbewertung — Werte unter 0.7 deuten auf unsichere Erkennung hin.

Tipp

Die Kombination mit dem Service Task „KI: Dokument klassifizieren" oder „KI: Strukturierte Daten extrahieren" ist besonders effektiv: Zuerst wird der Text per OCR erkannt und anschließend automatisch klassifiziert oder in strukturierte Datenfelder überführt.