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— einList<RecognitionResult.LinesResult>, ein Eintrag pro erkannter Textzeile, jeweils mitTextInLine(dem Text der Zeile) undLine(einSystem.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:
| Condition | Exception |
|---|---|
input ist null | ArgumentNullException |
Der InputType von input ist nicht SingleImage oder PDF | NotSupportedException |
Ein Pfad, der über OcrInput.Add() hinzugefügt wurde, existiert nicht auf dem Datenträger | FileNotFoundException |
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
OcrOutputist leer (Count == 0), wennOcrInputkeine Dateien hinzugefügt hat — prüfen SieCountvor dem Indexieren.RecognitionResult.LinesResultist innerhalb vonRecognitionResultverschachtelt; der TypnameLinesResultauf oberster Ebene ist außerhalb dieser Verschachtelung kein auflösbarer Typ.
Häufige Probleme
| Problem | Ursache | Korrektur |
|---|---|---|
ArgumentNullException auf Recognize() | null wurde übergeben anstelle eines OcrInput | Erstelle immer ein OcrInput, bevor du Recognize() aufrufst |
NotSupportedException auf Recognize() | OcrInput wurde mit einem Eingabetyp konstruiert, der nicht SingleImage/PDF ist | Nur InputType.SingleImage und InputType.PDF sind gültig |
FileNotFoundException auf Recognize() | Ein in der Warteschlange befindlicher Pfad existiert nicht | Validieren 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/Methode | Beschreibung |
|---|---|
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) |
OcrOutput | List<RecognitionResult> zurückgegeben von Recognize() |
RecognitionResult.RecognitionText | Vollständiger erkannter Text für ein Bild/eine Seite |
RecognitionResult.RecognitionLinesResult | List<RecognitionResult.LinesResult> |
RecognitionResult.LinesResult.TextInLine | Erkannter Text für eine Zeile |
RecognitionResult.LinesResult.Line | System.Drawing.Rectangle Bounding-Box für eine Zeile |