SearchAndReplaceTextInContentEx
Estrazione, Unicode, modifica del contenuto
Descrizione
Sostituisce ogni occorrenza non sovrapposta della query nel testo di pagina supportato, usando intervalli di byte sorgente esatti e una mappatura di font verificata
Il metodo preserva il testo circostante, le regolazioni numeriche TJ esistenti e l'originale ancoraggio del testo seguente; una sostituzione vuota elimina solo i caratteri trovati
Tutti i risultati selezionati vengono pianificati e riscritti prima che il contenuto di pagina venga registrato; testo non rappresentabile, mappature di font incomplete o una posizione sorgente non supportata rifiutano la richiesta senza sostituire alcun testo selezionato della pagina
Sintassi
Delphi
Function TPDFlib.SearchAndReplaceTextInContentEx(Const Query, Replacement: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString; ReplacementFontID: Integer): Integer;DLL
Function DLSearchAndReplaceTextInContentEx(InstanceID: Integer; Query: PWideChar; Replacement: PWideChar; Options: Integer; PageRange: PWideChar; ReplacementFontID: Integer): Integer; Stdcall;
Function DLSearchAndReplaceTextInContentExA(InstanceID: Integer; Query: PAnsiChar; Replacement: PAnsiChar; Options: Integer; PageRange: PAnsiChar; ReplacementFontID: Integer): Integer; Stdcall;ActiveX
Function PDFlib::SearchAndReplaceTextInContentEx(Query: WideString; Replacement: WideString; Options: Integer; PageRange: WideString; ReplacementFontID: Integer): Integer;Parametri
ReplacementFontID 0 usa il font originale; un valore positivo deve identificare un font nel documento selezionato con una codifica completa e verificata
Un font di sostituzione viene selezionato solo per le sequenze di sostituzione e il font originale viene ripristinato prima dei suffissi intatti; questo metodo non sceglie né installa automaticamente un font
Le Options di DLL e ActiveX usano i flag di ricerca come bit 1, 2, 4, 8, 16, 32, 64 e 128 nell'ordine dell'enum; soAcrossLines è il bit 16 e non è supportato qui; i bit sconosciuti vengono rifiutati da questi facades
Le stringhe di input della DLL A usano la configurazione di conversione da ANSI a wide dell'istanza; usa il punto di ingresso wide per passare Unicode indipendentemente da quella configurazione
Valori restituiti
Restituisce il numero di corrispondenze sostituite, oppure 0 per nessuna corrispondenza o una richiesta rifiutata; esamina GetLastUnicodeReplacementDiagnostics per distinguere i due casi
LastErrorCode 535 segnala input non valido o limiti di cattura; 537 segnala modifica o codifica non supportata; una ricerca valida senza corrispondenze riporta completed con replacedHits 0
Note
Le mappature provengono da una CMap ToUnicode pienamente supportata o da una codifica di simple font verificata, inclusi i nomi di glifi Differences supportati; non viene usata alcuna conversione da code page di sistema né codifiche di glifo indovinate
I simple font devono fornire Widths, FirstChar e LastChar PDF validi, oppure usare un nome esatto di font Type1 tra i quattordici standard senza Widths; il fallback ai font di sistema e l'abbinamento lasco dei nomi non autorizzano un avanzamento esatto
L'ereditarietà con UseCMap nominata, le mappature non risolte, gli avanzamenti dei font Type3, la scrittura verticale, il testo annidato nei Form, i caratteri sintetici, le sostituzioni ActualText, le stringhe transcodificate, le corrispondenze tra livelli e i cluster parziali di legature vengono segnalati come non supportati
Un cluster completo di legature può essere sostituito quando i suoi byte originali e la mappatura Unicode sono verificati; prefissi e suffissi restano nel loro font originale
Le opzioni di ricerca conservano il loro significato attuale, inclusi maiuscole/minuscole, parola intera, wildcard, diacritici, equivalenza canonica e vincoli sui grafemi; soAcrossLines e le chiamate durante uno scope API aperto vengono rifiutate
La pianificazione supporta fino a 4096 corrispondenze; le istantanee sorgente catturate sono limitate a 64 MiB per stream e 512 MiB in totale, con 64 MiB di record delle posizioni sorgente catturate; il parser delle mappature dei font applica anche limiti delimitati su token e code space, con totali per transazione di 262144 mappature e 8 Mi di unità target UTF-16
Questi limiti vincolano i dati di cattura e pianificazione mantenuti; il caricamento e il rendering delle pagine esistenti hanno le proprie allocazioni, quindi non sono una garanzia sul picco assoluto di uso di memoria
Gli stream di contenuto condivisi e i dizionari delle risorse vengono copiati per le pagine selezionate; la selezione del documento viene ripristinata e gli elenchi di blocchi di testo non aggiornati devono essere estratti di nuovo dopo una modifica riuscita
Questa operazione modifica il contenuto attivo della pagina e non è un'API di cancellazione sicura: oggetti scollegati o revisioni incrementali precedenti possono conservare i byte originali
Vedere anche
SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText