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