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
| Page | La pagina di destinazione a base 1 |
|---|---|
| ResultJSON | Lo schema con versione 1 descritto da ApplyOCRTextLayer, che opzionalmente include endpoint di baseline verificati e ID di gerarchia |
| FontName | Un font TrueType incorporabile oppure una stringa vuota per selezionare un fallback installato |
| MinConfidence | La soglia inclusiva di confidenza delle parole da 0 a 1 |
| Options | Una 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_TEXT | Restituisce 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_LAYER | Sostituisce ogni livello esistente con l'esatto marcatore OCR della libreria; aggiunge in coda se non esiste un livello OCR di proprietà della libreria |
| 3 | Salta 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
| 1 | Un livello è stato aggiunto, la politica sul testo esistente ha saltato la pagina oppure nessuna parola ha raggiunto la soglia di confidenza |
|---|---|
| 0 | Input, 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