Интерфейс IHPDFOCREngine

Абстрагирует OCR-провайдера, тогда как HotPDF сам отвечает за рендеринг страниц, валидацию, геометрию PDF, отображение Unicode, лимиты ресурсов и транзакционную публикацию

Объявление

IHPDFOCREngine = interface(IInterface)
  function GetName: AnsiString;
  function Recognize(const Request: THPDFOCRRequest;
    out Words: THPDFOCRWords;
    out Diagnostic: AnsiString): boolean;
  property Name: AnsiString read GetName;
end;

Контракт

Recognize возвращает True, выдав ноль или больше слов, и False с диагностикой, если распознавание не удалось завершить

Bitmap и cancellation token передаются в вызов по заимствованию, а реализации обязаны соблюдать MaxWords и MaxTextCodeUnits

Реализации могут сообщать рамки слов без базовых линий — тогда HotPDF выводит горизонтальную базовую линию рядом с нижней стороной рамки

Запись THPDFOCRRequest · Запись THPDFOCRWord