Интерфейс 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 выводит горизонтальную базовую линию рядом с нижней стороной рамки