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
| Page | A página alvo, de base um |
|---|---|
| ResultJSON | O schema versão 1 descrito por ApplyOCRTextLayer, opcionalmente com endpoints de baseline verificados e IDs de hierarquia |
| FontName | Uma fonte TrueType incorporável ou uma string vazia para seleção de fallback entre as fontes instaladas |
| MinConfidence | O limite inclusivo de confiança de palavra, de 0 a 1 |
| Options | Uma 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_TEXT | Retorna 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_LAYER | Substitui todas as camadas existentes com o marcador exato de OCR da biblioteca; anexa se não houver uma camada de OCR própria |
| 3 | Pula páginas com texto não próprio, ao mesmo tempo em que permite substituir páginas de OCR somente próprias |
Valores retornados
| 1 | Uma camada foi confirmada, a política de texto existente pulou a página, ou nenhuma palavra atingiu o limite de confiança |
|---|---|
| 0 | A 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