Kärna API
Kärn-API
Den här sidan täcker objektets livscykel och undantagsbeteende för de fyra kärntyperna: AsposeOcr, OcrInput, OcrOutput och RecognitionResult.
OcrInput livscykel
OcrInput implementerar IDisposable och bör skapas i ett using-uttalande. Dess konstruktor tar emot en InputType (InputType.SingleImage eller InputType.PDF), och OcrInput.Add(string) köar en filväg åt gången — samma OcrInput-instans kan innehålla flera filer av samma inmatningstyp.
using Aspose.OCR;
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Identifiera och läsa OcrOutput
AsposeOcr.Recognize(OcrInput) returnerar en OcrOutput, vilket är en List<RecognitionResult> — indexerbar som en vanlig lista, med ett RecognitionResult per bild (för InputType.SingleImage, ett per tillagd fil) eller per PDF-sida (för InputType.PDF).
var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];RecognitionResult och den nästlade LinesResult-typen
RecognitionResult.LinesResult är en nästlad klass — referera till den som RecognitionResult.LinesResult, inte som en fristående typ. Varje RecognitionResult exponerar:
RecognitionText— den kompletta igenkända texten för den bilden eller sidan, med rader sammanfogade med radbrytningar.RecognitionLinesResult— enList<RecognitionResult.LinesResult>, ett objekt per upptäckt textrad, var och en medTextInLine(radens text) ochLine(enSystem.Drawing.Rectanglesom ger radens pixelkoordinater i källbilden).
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}");
}Undantag
AsposeOcr.Recognize(OcrInput) validerar sin indata innan igenkänning körs:
| Condition | Exception |
|---|---|
input är null | ArgumentNullException |
input’s InputType är inte SingleImage eller PDF | NotSupportedException |
En sökväg som lagts till via OcrInput.Add() finns inte på disken | FileNotFoundException |
Dessa kontroller körs innan någon modellinferens, så en felaktig indata misslyckas omedelbart istället för efter ett partiellt igenkänningspass.
Tips och bästa praxis
OcrOutputär tom (Count == 0) omOcrInputinte har några filer tillagda — kontrolleraCountinnan indexering.RecognitionResult.LinesResultär inbäddad iRecognitionResult; top-nivå typnamnetLinesResultensam är inte en lösbar typ utanför den inbäddningen.
Vanliga problem
| Problem | Orsak | Fixa |
|---|---|---|
ArgumentNullException på Recognize() | null skickades istället för en OcrInput | Konstruera alltid ett OcrInput innan du anropar Recognize() |
NotSupportedException på Recognize() | OcrInput konstruerades med en indatatyp som inte var SingleImage/PDF | Endast InputType.SingleImage och InputType.PDF är giltiga |
FileNotFoundException på Recognize() | En köad sökväg existerar inte | Validera filsökvägar innan du anropar OcrInput.Add() |
FAQ
Är RecognitionResult.LinesResult sin egen topnivåklass?
Nej — den är inbäddad i RecognitionResult. Referera till den som RecognitionResult.LinesResult.
Garantiar OcrOutput sidordning för PDF-filer?
Ja — för InputType.PDF returnerar OcrOutput en RecognitionResult per sida i källordning.
Vad händer om jag anropar Recognize() med en tom OcrInput?
Den returnerar ett OcrOutput med Count == 0 snarare än att kasta ett undantag.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
AsposeOcr.Recognize(OcrInput) | Validerar och känner igen; kastar ArgumentNullException, NotSupportedException eller FileNotFoundException vid ogiltig inmatning |
OcrInput.OcrInput(InputType) | Skapar en inmatningsbehållare för en inmatningstyp |
OcrInput.Add(string) | Köar en filsökväg |
OcrInput.Dispose() | Frigör resurser (via IDisposable) |
OcrOutput | List<RecognitionResult> returnerad av Recognize() |
RecognitionResult.RecognitionText | Fullständig igenkänd text för en bild/sida |
RecognitionResult.RecognitionLinesResult | List<RecognitionResult.LinesResult> |
RecognitionResult.LinesResult.TextInLine | Känd text för en rad |
RecognitionResult.LinesResult.Line | System.Drawing.Rectangle bounding box för en rad |