Zum Inhalt

OCR Struktur-Analyse

Der Service Task „OCR Struktur-Analyse" erkennt automatisch die Layoutstruktur eines Dokuments – einschließlich Tabellen, Überschriften, Textbereiche und anderer visueller Elemente. Im Gegensatz zur reinen Text-Extraktion wird hier die räumliche Anordnung des Dokuments analysiert.

So können tabellarische Inhalte wie Positionslisten auf Lieferscheinen, Rechnungspositionen oder strukturierte Formulare automatisch erfasst und weiterverarbeitet werden.


Input-Parameter

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

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

Erläuterung:

  • pdf.referenceId: Referenz auf die hochgeladene Datei (PDF oder Bild). Die Datei muss als fileReference vorliegen.
  • 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.
  • outputFormat: Optional (json oder markdown, Standard: json). Bei markdown wird die erkannte Struktur als Markdown-Text zurückgegeben — besonders geeignet für die Weiterverarbeitung durch KI-Services.

Output

JSON-Format (Standard)

Bei outputFormat: "json" wird die erkannte Struktur seitenweise zurückgegeben:

{
  "metadata": {
    "source_file": "rechnung.pdf",
    "total_pages": 1,
    "total_text_blocks": 0,
    "total_tables": 1
  },
  "pages": [
    {
      "page_number": 0,
      "text": "Pos | Menge | Artikel | Preis",
      "tables": [
        {
          "index": 0,
          "html": "<table><tr><td>Pos</td><td>Menge</td><td>Artikel</td><td>Preis</td></tr><tr><td>1</td><td>50</td><td>Schraube M8</td><td>0,12 €</td></tr></table>"
        }
      ]
    }
  ],
  "full_text": "Pos | Menge | Artikel | Preis"
}

Markdown-Format

Bei outputFormat: "markdown" wird das Ergebnis als Markdown zurückgegeben:

{
  "markdown": "## Rechnung\n\n| Pos | Menge | Artikel | Preis |\n|-----|-------|---------|-------|\n| 1 | 50 | Schraube M8 | 0,12 € |",
  "ocr_text": "Rechnung\nPos Menge Artikel Preis\n1 50 Schraube M8 0,12 €"
}

Erläuterung:

  • tables: Erkannte Tabellen als HTML-Darstellung — können direkt in nachfolgenden Schritten geparst werden.
  • markdown: Strukturierter Markdown-Text, der Tabellen, Überschriften und Absätze beibehält.
  • ocr_text: Zusätzlich extrahierter Fließtext (im Markdown-Format enthalten), der auch Textbereiche außerhalb von Tabellen erfasst.

JSONata-Beispiele

// Datei aus einem vorherigen Schritt referenzieren
{
  "pdf": {
    "referenceId": uploadResult.referenceId,
    "filename": uploadResult.filename
  },
  "outputFormat": "markdown"
}
// Anzahl erkannter Tabellen als Gateway-Bedingung
$count(ocrResult.pages[0].tables) > 0

Hinweise

  • Die Verarbeitungszeit beträgt je nach Dokumentgröße ca. 20–120 Sekunden und ist damit etwas länger als die reine Text-Extraktion.
  • Das Markdown-Format eignet sich besonders gut als Eingabe für KI-Services wie „KI: Strukturierte Daten extrahieren" oder „KI: JSON-Inhalt abfragen".
  • Tabellen werden als HTML zurückgegeben, was die programmatische Weiterverarbeitung erleichtert.

Tipp

Für Dokumente, bei denen sowohl der Fließtext als auch die Tabellenstruktur benötigt wird, bietet sich der Service Task „OCR Vollanalyse" an — dieser kombiniert Text-Extraktion und Strukturanalyse in einem Durchlauf.