ApplyOCRTextLayerEx

OCR, texto, edição de documentos

Descrição

Valida o JSON de OCR independente de provider, prepara texto invisível em um buffer separado e confirma uma camada de texto pesquisável própria em uma página

Sintaxe

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);

Parâmetros

PageA página alvo, de base um
ResultJSONO schema versão 1 descrito por ApplyOCRTextLayer, opcionalmente com endpoints de baseline verificados e IDs de hierarquia
FontNameUma fonte TrueType incorporável ou uma string vazia para seleção de fallback entre as fontes instaladas
MinConfidenceO limite inclusivo de confiança de palavra, de 0 a 1
OptionsUma combinação bit a bit das políticas de camada abaixo; zero anexa uma nova camada própria

Opções

1 — PDF_OCR_SKIP_EXISTING_TEXTRetorna sucesso sem aplicar OCR quando um fluxo de conteúdo retido que não é próprio ou um Form XObject invocado contém texto, incluindo texto invisível
2 — PDF_OCR_REPLACE_OWNED_LAYERSubstitui todas as camadas existentes com o marcador exato de OCR da biblioteca; anexa se não houver uma camada de OCR própria
3Pula páginas com texto não próprio, ao mesmo tempo em que permite substituir páginas de OCR somente próprias

Valores retornados

1Uma camada foi confirmada, a política de texto existente pulou a página, ou nenhuma palavra atingiu o limite de confiança
0A entrada, a geometria, as opções, a codificação da fonte ou a gravação da camada falharam

Observações

Bits de opção desconhecidos são rejeitados

As coordenadas de origem usam a origem no canto superior esquerdo da imagem renderizada e a caixa de renderização selecionada; a rotação da página e deslocamentos de caixa diferentes de zero são mapeados de volta para o espaço de usuário bruto do PDF

Um array opcional baseline contém [x1, y1, x2, y2] em unidades de origem e define a direção do texto e o avanço; uma baseline completa não pode também carregar um textAngle diferente de zero

Toda fronteira de palavra e baseline é verificada antes da filtragem por confiança; uma palavra inválida de baixa confiança ainda faz a operação falhar

O ajuste da fonte e o tratamento de glifos ausentes terminam antes de a nova camada de conteúdo ser confirmada; nenhuma palavra de OCR parcialmente desenhada substitui a camada antiga

Somente streams com os três campos exatos /PDFlibOCROwner /PDFlibPas, /PDFlibOCRType /InvisibleText e /PDFlibOCRVersion 1 são camadas de OCR próprias

A substituição cria um novo array de contents e um novo stream, preservando o conteúdo não próprio e os streams usados pelas páginas irmãs

A camada de OCR usa o modo de renderização 3 e um estado gráfico isolado; o posicionamento cancela a matriz de transformação atual do conteúdo retido antes de aplicar a matriz da palavra

Um resultado aceito vazio deixa as camadas antigas intactas; use GetOCRDiagnosticsJSON para distinguir empty, skipped, appended e replaced

A pesquisabilidade e os pixels visíveis inalterados são verificados depois de salvar e recarregar o documento

Veja também

OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError