ApplyOCRTextLayerEx
OCR, текст, редактирование документов
Описание
Валидирует не зависящий от провайдера OCR JSON, готовит невидимый текст в отдельном буфере и фиксирует на странице искомый текстовый слой, принадлежащий библиотеке
Синтаксис
Delphi
Function TPDFlib.ApplyOCRTextLayerEx(Page: Integer; Const ResultJSON,
FontName: WideString; MinConfidence: Double; Options: Integer): Integer;
ActiveX
Function PDFlib::ApplyOCRTextLayerEx(Page As Long, ResultJSON As String,
FontName As String, MinConfidence As Double, Options As Long) As Long
DLL
int DLApplyOCRTextLayerEx(int InstanceID, int Page, const wchar_t* ResultJSON,
const wchar_t* FontName, double MinConfidence, int Options);
int DLApplyOCRTextLayerExA(int InstanceID, int Page, const char* ResultJSON,
const char* FontName, double MinConfidence, int Options);
Параметры
| Page | Целевая страница, начиная с 1 |
|---|---|
| ResultJSON | Схема версии 1, описанная в ApplyOCRTextLayer, опционально с проверенными конечными точками базовых линий и идентификаторами иерархии |
| FontName | Внедряемый шрифт TrueType или пустая строка для выбора установленного резервного шрифта |
| MinConfidence | Порог уверенности слова от 0 до 1 включительно |
| Options | Побитовое сочетание приведённых ниже политик слоя; ноль добавляет новый слой, принадлежащий библиотеке |
Опции
| 1 — PDF_OCR_SKIP_EXISTING_TEXT | Завершается успехом без применения OCR, когда удерживаемый поток содержимого, не принадлежащий библиотеке, или вызываемый Form XObject содержит текст, включая невидимый |
|---|---|
| 2 — PDF_OCR_REPLACE_OWNED_LAYER | Заменяет каждый существующий слой с точным маркером OCR библиотеки; добавляет слой, если слой OCR, принадлежащий библиотеке, ещё не существует |
| 3 | Пропускает страницы с чужим текстом, но разрешает замену на страницах, где есть только слои OCR, принадлежащие библиотеке |
Возвращаемые значения
| 1 | Слой зафиксирован, политика существующего текста пропустила страницу или ни одно слово не прошло порог уверенности |
|---|---|
| 0 | Сбой входных данных, геометрии, опций, кодировки шрифта или записи слоя |
Примечания
Неизвестные биты опций отклоняются
Исходные координаты используют левый верхний угол отрисованного изображения и выбранный бокс рендеринга; поворот страницы и ненулевые смещения бокса отображаются обратно в исходное пользовательское пространство PDF
Опциональный массив baseline содержит [x1, y1, x2, y2] в исходных единицах и задаёт направление текста и продвижение; полная базовая линия не должна сочетаться с ненулевым textAngle
Каждая граница слова и базовая линия проверяются до фильтрации по уверенности; некорректное слово с низкой уверенностью всё равно приводит к сбою операции
Подгонка шрифта и обработка отсутствующих глифов завершаются до фиксации нового слоя содержимого; старый слой не замещается частично нарисованными словами OCR
Слоями OCR, принадлежащими библиотеке, считаются только потоки со всеми тремя точными полями: /PDFlibOCROwner /PDFlibPas, /PDFlibOCRType /InvisibleText и /PDFlibOCRVersion 1
Замена создаёт новый массив contents и новый поток, сохраняя чужое содержимое и потоки, используемые соседними страницами
Слой OCR использует режим рендеринга 3 и изолированное графическое состояние; размещение отменяет текущую матрицу трансформации удерживаемого содержимого перед применением матрицы слова
Пустой принятый результат оставляет старые слои нетронутыми; используйте GetOCRDiagnosticsJSON, чтобы различить empty, skipped, appended и replaced
Ищемость и неизменность видимых пикселей проверяются после сохранения и повторной загрузки документа
См. также
OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError