Jak pracować z Aspose.OCR FOSS Core API w .NET
Aspose.OCR FOSS dla .NET rozpoznaje tekst w obrazach rastrowych i dokumentach PDF za pomocą małego core API: AsposeOcr, OcrInput, OcrOutput i RecognitionResult. Ten przewodnik prowadzi przez instalację pakietu i użycie tego core API od początku do końca.
Przewodnik krok po kroku
Krok 1: Zainstaluj pakiet
dotnet add package Aspose.OCR.FOSSKrok 2: Zaimportuj przestrzeń nazw
Dodaj przestrzeń nazw Aspose.OCR do dowolnego pliku źródłowego, który wywołuje AsposeOcr, OcrInput lub RecognitionResult:
using Aspose.OCR;Ta pojedyncza przestrzeń nazw udostępnia AsposeOcr, OcrInput, OcrOutput, InputType i RecognitionResult.
Krok 3: Zbuduj OcrInput i Rozpoznaj obraz
Utwórz AsposeOcr, zbuduj OcrInput z użyciem InputType.SingleImage, umieść plik w kolejce za pomocą OcrInput.Add() i wywołaj AsposeOcr.Recognize().
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("scan.png");
RecognitionResult result = api.Recognize(input)[0];
Console.WriteLine(result.RecognitionText);Krok 4: Odczytaj pojedyncze wiersze i ramki ograniczające
Każdy wpis RecognitionResult.LinesResult w RecognitionLinesResult zawiera tekst jednej linii (TextInLine) oraz jej ramkę ograniczającą w współrzędnych pikseli (Line).
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
System.Drawing.Rectangle bounds = line.Line;
Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}Krok 5: Rozpoznaj wielostronicowy PDF
Dla InputType.PDF, AsposeOcr.Recognize() zwraca jeden RecognitionResult na stronę, w kolejności źródłowej.
using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("document.pdf");
OcrOutput output = api.Recognize(pdfInput);
foreach (RecognitionResult page in output)
{
Console.WriteLine(page.RecognitionText);
}Typowe problemy i rozwiązania
NotSupportedException przy wywoływaniu Recognize(). Ten OcrInput został skonstruowany z typem wejścia innym niż InputType.SingleImage or InputType.PDF. Obsługiwane są jedynie te dwa typy wejścia.
FileNotFoundException przy wywoływaniu Recognize(). Ścieżka dodana za pomocą OcrInput.Add() nie istnieje na dysku. Zweryfikuj ścieżkę przed wywołaniem Add().
ArgumentNullException przy wywoływaniu Recognize(). null został przekazany zamiast OcrInput instancji. Zawsze twórz OcrInput najpierw.
Empty RecognitionLinesResult. Nie wykryto linii tekstu — potwierdź, że obraz źródłowy zawiera czytelny, nieobrócony tekst w alfabecie łacińskim.
Najczęściej zadawane pytania
Czy OcrOutput zachowuje kolejność plików?
Tak. OcrOutput jest listą RecognitionResult, po jednej na obraz (lub na stronę PDF), w kolejności, w jakiej pliki zostały dodane przez OcrInput.Add().
Czy muszę zwolnić OcrInput?
Tak — OcrInput implementuje IDisposable. Użyj instrukcji using lub wywołaj Dispose() wyraźnie po zakończeniu rozpoznawania.
Czy mogę przetwarzać zarówno obrazy, jak i PDF-y w tym samym OcrInput?
Nie — każdy OcrInput jest tworzony z pojedynczym InputType (SingleImage lub PDF) i akceptuje tylko pliki tego typu.