Ядро API
Основне API
На цій сторінці розглядаються життєвий цикл об’єктів та поведінка виключень чотирьох основних типів: AsposeOcr, OcrInput, OcrOutput та RecognitionResult.
OcrInput Життєвий цикл
OcrInput реалізує IDisposable і має створюватися у using операторі. Його конструктор приймає InputType (InputType.SingleImage або InputType.PDF), а OcrInput.Add(string) додає в чергу один шлях до файлу за раз — той самий екземпляр OcrInput може містити кілька файлів того ж типу вводу.
using Aspose.OCR;
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Розпізнавання та читання OcrOutput
AsposeOcr.Recognize(OcrInput) повертає OcrOutput, який є List<RecognitionResult> — індексованим, як будь-який список, з одним RecognitionResult на зображення (для InputType.SingleImage — один на доданий файл) або на сторінку PDF (для InputType.PDF).
var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];RecognitionResult та вкладений тип LinesResult
RecognitionResult.LinesResult — це вбудований клас — посилайтеся на нього як RecognitionResult.LinesResult, а не як окремий тип. Кожен RecognitionResult надає:
RecognitionText— повний розпізнаний текст для цього зображення або сторінки, з рядками, об’єднаними переносами рядка.RecognitionLinesResult— цеList<RecognitionResult.LinesResult>, один запис на кожен виявлений рядок тексту, кожен зTextInLine(текст рядка) іLine(System.Drawing.Rectangle, що надає піксельні координати цього рядка у вихідному зображенні).
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}");
}Винятки
AsposeOcr.Recognize(OcrInput) перевіряє вхідні дані перед запуском розпізнавання:
| Condition | Exception |
|---|---|
input є null | ArgumentNullException |
У input InputType не є SingleImage або PDF | NotSupportedException |
Шлях, доданий через OcrInput.Add(), не існує на диску | FileNotFoundException |
Ці перевірки виконуються до будь-якого виведення моделі, тому неправильний ввід відхиляється негайно, а не після часткової спроби розпізнавання.
Поради та найкращі практики
OcrOutputпорожній (Count == 0), якщоOcrInputне має доданих файлів — перевіртеCountперед індексацією.RecognitionResult.LinesResultвкладений уRecognitionResult; назва типу верхнього рівняLinesResultсама по собі не є розв’язуваним типом поза цим вкладенням.
Типові проблеми
| Проблема | Причина | Виправити |
|---|---|---|
ArgumentNullException на Recognize() | null було передано замість OcrInput | Завжди створюйте OcrInput перед викликом Recognize() |
NotSupportedException на Recognize() | OcrInput був створений з типом вводу, відмінним від SingleImage/PDF | Лише InputType.SingleImage і InputType.PDF є допустимими |
FileNotFoundException на Recognize() | Шлях у черзі не існує | Перевірте шляхи до файлів перед викликом OcrInput.Add() |
FAQ
Чи є RecognitionResult.LinesResult власним класом верхнього рівня?
Ні — він вкладений у RecognitionResult. Посилайтеся на нього як RecognitionResult.LinesResult.
Чи гарантує OcrOutput порядок сторінок у PDF?
Так — для InputType.PDF, OcrOutput повертає один RecognitionResult на сторінку у порядку джерела.
Що станеться, якщо я викличу Recognize() з порожнім OcrInput?
Він повертає OcrOutput з Count == 0, а не генерує виключення.
API Reference Резюме
| Клас/Метод | Опис |
|---|---|
AsposeOcr.Recognize(OcrInput) | Перевіряє та розпізнає; викидає ArgumentNullException, NotSupportedException або FileNotFoundException при недійсному вводі |
OcrInput.OcrInput(InputType) | Створює контейнер вводу для одного типу |
OcrInput.Add(string) | Додає шлях до файлу у чергу |
OcrInput.Dispose() | Звільняє ресурси (через IDisposable) |
OcrOutput | List<RecognitionResult> повернуто Recognize() |
RecognitionResult.RecognitionText | Повний розпізнаний текст для одного зображення/сторінки |
RecognitionResult.RecognitionLinesResult | List<RecognitionResult.LinesResult> |
RecognitionResult.LinesResult.TextInLine | Розпізнаний текст для одного рядка |
RecognitionResult.LinesResult.Line | System.Drawing.Rectangle обмежувальна рамка для одного рядка |