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