ApplyOCRTextLayerEx

OCR, testo, modifica dei documenti

Descrizione

Convalida il JSON OCR indipendente dal provider, prepara il testo invisibile in un buffer separato e registra su una pagina un livello di testo ricercabile di proprietà della libreria

Sintassi

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

Parametri

PageLa pagina di destinazione a base 1
ResultJSONLo schema con versione 1 descritto da ApplyOCRTextLayer, che opzionalmente include endpoint di baseline verificati e ID di gerarchia
FontNameUn font TrueType incorporabile oppure una stringa vuota per selezionare un fallback installato
MinConfidenceLa soglia inclusiva di confidenza delle parole da 0 a 1
OptionsUna combinazione bitwise delle politiche sui livelli mostrate sotto; zero aggiunge in coda un nuovo livello di proprietà della libreria

Opzioni

1 — PDF_OCR_SKIP_EXISTING_TEXTRestituisce successo senza applicare l'OCR quando uno stream di contenuto mantenuto ma non di proprietà della libreria oppure uno Form XObject invocato contiene testo, incluso il testo invisibile
2 — PDF_OCR_REPLACE_OWNED_LAYERSostituisce ogni livello esistente con l'esatto marcatore OCR della libreria; aggiunge in coda se non esiste un livello OCR di proprietà della libreria
3Salta le pagine con testo non di proprietà della libreria, consentendo comunque di sostituire le pagine OCR con soli livelli di proprietà della libreria

Valori restituiti

1Un livello è stato aggiunto, la politica sul testo esistente ha saltato la pagina oppure nessuna parola ha raggiunto la soglia di confidenza
0Input, geometria, opzioni, codifica del font o scrittura del livello non riusciti

Note

I bit di opzione sconosciuti vengono rifiutati

Le coordinate sorgente usano l'origine in alto a sinistra dell'immagine renderizzata e il box di rendering selezionato; la rotazione di pagina e gli offset del box diversi da zero vengono riportati allo spazio utente PDF originale

Un array baseline opzionale contiene [x1, y1, x2, y2] in unità sorgente e definisce la direzione del testo e l'avanzamento; una baseline completa non deve anche portare un textAngle diverso da zero

Ogni confine di parola e ogni baseline viene controllato prima del filtro sulla confidenza; una parola non valida a bassa confidenza fa comunque fallire l'operazione

L'adattamento al font e la gestione dei glifi mancanti terminano prima che il nuovo livello di contenuto venga registrato; nessuna parola OCR parzialmente disegnata sostituisce il vecchio livello

Sono livelli OCR di proprietà della libreria soltanto gli stream con tutti e tre i campi esatti /PDFlibOCROwner /PDFlibPas, /PDFlibOCRType /InvisibleText e /PDFlibOCRVersion 1

La sostituzione crea un nuovo array contents e un nuovo stream, preservando il contenuto non di proprietà della libreria e gli stream usati dalle pagine sorelle

Il livello OCR usa la modalità di rendering 3 e uno stato grafico isolato; il piazzamento annulla la matrice di trasformazione corrente del contenuto mantenuto prima di applicare la matrice della parola

Un risultato accettato vuoto lascia intatti i vecchi livelli; usa GetOCRDiagnosticsJSON per distinguere empty, skipped, appended e replaced

Ricercabilità e pixel visibili invariati vengono verificati dopo il salvataggio e il ricaricamento del documento

Vedere anche

OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError