Kern API

Kern-API

Diese Seite behandelt den Objektlebenszyklus und das Ausnahmeverhalten der vier Kerntypen: AsposeOcr, OcrInput, OcrOutput und RecognitionResult.


OcrInput Lebenszyklus

OcrInput implementiert IDisposable und sollte in einer using-Anweisung erstellt werden. Sein Konstruktor nimmt ein InputType (InputType.SingleImage oder InputType.PDF) entgegen, und OcrInput.Add(string) legt jeweils einen Dateipfad in die Warteschlange — dieselbe OcrInput-Instanz kann mehrere Dateien desselben Eingabetyps enthalten.

using Aspose.OCR;

using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");

Erkennen und Lesen von OcrOutput

AsposeOcr.Recognize(OcrInput) gibt ein OcrOutput zurück, das ein List<RecognitionResult> ist — indizierbar wie jede Liste, mit einem RecognitionResult pro Bild (für InputType.SingleImage, ein pro hinzugefügter Datei) oder pro PDF-Seite (für InputType.PDF).

var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];

RecognitionResult und der verschachtelte LinesResult-Typ

RecognitionResult.LinesResult ist eine verschachtelte Klasse — referenzieren Sie sie als RecognitionResult.LinesResult, nicht als eigenständigen Typ. Jede RecognitionResult stellt bereit:

  • RecognitionText — der vollständige erkannte Text für dieses Bild oder diese Seite, wobei die Zeilen durch Zeilenumbrüche verbunden werden.
  • RecognitionLinesResult — ein List<RecognitionResult.LinesResult>, ein Eintrag pro erkannter Textzeile, jeweils mit TextInLine (dem Text der Zeile) und Line (ein System.Drawing.Rectangle, das die Pixelkoordinaten dieser Zeile im Quellbild angibt).
RecognitionResult result = output[0];
Console.WriteLine(result.RecognitionText);

foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
    System.Drawing.Rectangle bounds = line.Line;
    Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}

Ausnahmen

AsposeOcr.Recognize(OcrInput) validiert seine Eingabe, bevor die Erkennung ausgeführt wird:

ConditionException
input ist nullArgumentNullException
Der InputType von input ist nicht SingleImage oder PDFNotSupportedException
Ein Pfad, der über OcrInput.Add() hinzugefügt wurde, existiert nicht auf dem DatenträgerFileNotFoundException

Diese Prüfungen laufen vor jeder Modellinferenz, sodass eine fehlerhafte Eingabe sofort fehlschlägt und nicht erst nach einem teilweisen Erkennungsdurchlauf.


Tipps und bewährte Methoden

  • OcrOutput ist leer (Count == 0), wenn OcrInput keine Dateien hinzugefügt hat — prüfen Sie Count vor dem Indexieren.
  • RecognitionResult.LinesResult ist innerhalb von RecognitionResult verschachtelt; der Typname LinesResult auf oberster Ebene ist außerhalb dieser Verschachtelung kein auflösbarer Typ.

Häufige Probleme

ProblemUrsacheKorrektur
ArgumentNullException auf Recognize()null wurde übergeben anstelle eines OcrInputErstelle immer ein OcrInput, bevor du Recognize() aufrufst
NotSupportedException auf Recognize()OcrInput wurde mit einem Eingabetyp konstruiert, der nicht SingleImage/PDF istNur InputType.SingleImage und InputType.PDF sind gültig
FileNotFoundException auf Recognize()Ein in der Warteschlange befindlicher Pfad existiert nichtValidieren Sie Dateipfade, bevor Sie OcrInput.Add() aufrufen

FAQ

Ist RecognitionResult.LinesResult seine eigene Top-Level-Klasse?

Nein — es ist in RecognitionResult verschachtelt. Verweisen Sie darauf als RecognitionResult.LinesResult.

Garantiert OcrOutput die Seitenreihenfolge für PDFs?

Ja — für InputType.PDF gibt OcrOutput pro Seite in Quellreihenfolge ein RecognitionResult zurück.

Was passiert, wenn ich Recognize() mit einem leeren OcrInput aufrufe?

Es gibt ein OcrOutput mit Count == 0 zurück, anstatt eine Ausnahme zu werfen.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
AsposeOcr.Recognize(OcrInput)Validiert und erkennt; wirft ArgumentNullException, NotSupportedException oder FileNotFoundException bei ungültiger Eingabe
OcrInput.OcrInput(InputType)Erstellt einen Eingabekontainer für einen Eingabetyp
OcrInput.Add(string)Fügt einen Dateipfad zur Warteschlange hinzu
OcrInput.Dispose()Gibt Ressourcen frei (über IDisposable)
OcrOutputList<RecognitionResult> zurückgegeben von Recognize()
RecognitionResult.RecognitionTextVollständiger erkannter Text für ein Bild/eine Seite
RecognitionResult.RecognitionLinesResultList<RecognitionResult.LinesResult>
RecognitionResult.LinesResult.TextInLineErkannter Text für eine Zeile
RecognitionResult.LinesResult.LineSystem.Drawing.Rectangle Bounding-Box für eine Zeile

Siehe auch

 Deutsch