Nucleo API
API principale
Questa pagina descrive il ciclo di vita degli oggetti e il comportamento delle eccezioni dei quattro tipi principali: AsposeOcr, OcrInput, OcrOutput e RecognitionResult.
Ciclo di vita di OcrInput
OcrInput implementa IDisposable e dovrebbe essere creato in una dichiarazione using. Il suo costruttore accetta un InputType (InputType.SingleImage o InputType.PDF), e OcrInput.Add(string) accoda un percorso file alla volta — la stessa istanza di OcrInput può contenere più file di quel medesimo tipo di input.
using Aspose.OCR;
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Riconoscere e leggere OcrOutput
AsposeOcr.Recognize(OcrInput) restituisce un OcrOutput, che è un List<RecognitionResult> — indicizzabile come qualsiasi lista, con un RecognitionResult per immagine (per InputType.SingleImage, uno per file aggiunto) o per pagina PDF (per InputType.PDF).
var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];RecognitionResult e il tipo nidificato LinesResult
RecognitionResult.LinesResult è una classe nidificata — fai riferimento a essa come RecognitionResult.LinesResult, non come un tipo autonomo. Ogni RecognitionResult espone:
RecognitionText— il testo riconosciuto completo per quell’immagine o pagina, con le righe unite da interruzioni di linea.RecognitionLinesResult— unList<RecognitionResult.LinesResult>, una voce per ogni riga di testo rilevata, ciascuna conTextInLine(il testo della riga) eLine(unSystem.Drawing.Rectangleche fornisce le coordinate pixel di quella riga nell’immagine di origine).
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}");
}Eccezioni
AsposeOcr.Recognize(OcrInput) convalida il suo input prima di eseguire il riconoscimento:
| Condition | Exception |
|---|---|
input è null | ArgumentNullException |
input InputType non è SingleImage né PDF | NotSupportedException |
Un percorso aggiunto tramite OcrInput.Add() non esiste sul disco | FileNotFoundException |
Questi controlli vengono eseguiti prima di qualsiasi inferenza del modello, quindi un input errato fallisce immediatamente anziché dopo un passaggio di riconoscimento parziale.
Suggerimenti e migliori pratiche
OcrOutputè vuoto (Count == 0) seOcrInputnon ha file aggiunti — controllaCountprima dell’indicizzazione.RecognitionResult.LinesResultè nidificato all’interno diRecognitionResult; il nome del tipo di livello superioreLinesResultda solo non è un tipo risolvibile al di fuori di tale nidificazione.
Problemi comuni
| Problema | Causa | Correggi |
|---|---|---|
ArgumentNullException su Recognize() | È stato passato null invece di un OcrInput | Costruisci sempre un OcrInput prima di chiamare Recognize() |
NotSupportedException su Recognize() | OcrInput è stato costruito con un tipo di input diverso da SingleImage/PDF | Solo InputType.SingleImage e InputType.PDF sono validi |
FileNotFoundException su Recognize() | Il percorso in coda non esiste | Convalida i percorsi dei file prima di chiamare OcrInput.Add() |
FAQ
È RecognitionResult.LinesResult una propria classe di livello superiore?
No — è annidato all’interno di RecognitionResult. Riferisciti ad esso come RecognitionResult.LinesResult.
OcrOutput garantisce l’ordine delle pagine per i PDF?
Sì — per InputType.PDF, OcrOutput restituisce un RecognitionResult per pagina nell’ordine di origine.
Cosa succede se chiamo Recognize() con un OcrInput vuoto?
Restituisce un OcrOutput con Count == 0 anziché lanciare.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
AsposeOcr.Recognize(OcrInput) | Valida e riconosce; lancia ArgumentNullException, NotSupportedException o FileNotFoundException in caso di input non valido |
OcrInput.OcrInput(InputType) | Costruisce un contenitore di input per un tipo di input |
OcrInput.Add(string) | Accoda un percorso di file |
OcrInput.Dispose() | Rilascia le risorse (tramite IDisposable) |
OcrOutput | List<RecognitionResult> restituito da Recognize() |
RecognitionResult.RecognitionText | Testo riconosciuto completo per un’immagine/pagina |
RecognitionResult.RecognitionLinesResult | List<RecognitionResult.LinesResult> |
RecognitionResult.LinesResult.TextInLine | Testo riconosciuto per una riga |
RecognitionResult.LinesResult.Line | System.Drawing.Rectangle rettangolo di delimitazione per una riga |