Ядро 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) перевіряє вхідні дані перед запуском розпізнавання:

ConditionException
input є nullArgumentNullException
У input InputType не є SingleImage або PDFNotSupportedException
Шлях, доданий через 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)
OcrOutputList<RecognitionResult> повернуто Recognize()
RecognitionResult.RecognitionTextПовний розпізнаний текст для одного зображення/сторінки
RecognitionResult.RecognitionLinesResultList<RecognitionResult.LinesResult>
RecognitionResult.LinesResult.TextInLineРозпізнаний текст для одного рядка
RecognitionResult.LinesResult.LineSystem.Drawing.Rectangle обмежувальна рамка для одного рядка

Дивіться також

 Українська