SearchAndReplaceTextInContent
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.SearchAndReplaceTextInContent(Const Query, Replacement: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString): Integer;Parametri
Query deve essere non vuota; Replacement può essere vuota; PageRange usa la consueta sintassi degli intervalli di pagine e un intervallo vuoto seleziona tutte le pagine
Questo punto di ingresso delega a SearchAndReplaceTextInContentEx con ReplacementFontID 0, quindi la sostituzione usa il font originale verificato
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
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