SearchAndReplaceTextInContent
Extraktion, Unicode, Inhaltsbearbeitung
Beschreibung
Ersetzt jede nicht überlappende Trefferstelle in unterstütztem Seitentext, mit exakten Quell-Bytebereichen und einer verifizierten Schriftzuordnung
Die Methode bewahrt umgebenden Text, vorhandene TJ-Zahlenanpassungen und den ursprünglichen nachfolgenden Textanker; ein leerer Ersatz löscht nur die übereinstimmenden Zeichen
Alle ausgewählten Treffer werden geplant und neu geschrieben, bevor Seiteninhalt festgeschrieben wird; nicht darstellbarer Text, unvollständige Schriftzuordnungen oder eine nicht unterstützte Quellposition weisen die Anforderung zurück, ohne ausgewählten Seitentext zu ersetzen
Syntax
Delphi
Function TPDFlib.SearchAndReplaceTextInContent(Const Query, Replacement: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString): Integer;Parameter
Query darf nicht leer sein; Replacement darf leer sein; PageRange verwendet die vorhandene Seitenbereichssyntax, und ein leerer Bereich wählt alle Seiten
Dieser Einstiegspunkt delegiert an SearchAndReplaceTextInContentEx mit ReplacementFontID 0, sodass der Ersatz die verifizierte ursprüngliche Schrift verwendet
Rückgabewerte
Liefert die Anzahl ersetzter Treffer oder 0 bei keinen Treffern oder einer zurückgewiesenen Anforderung; prüfen Sie GetLastUnicodeReplacementDiagnostics, um diese Ausgänge zu unterscheiden
LastErrorCode 535 meldet ungültige Eingabe oder Erfassungsgrenzen; 537 meldet nicht unterstützte Bearbeitung oder Kodierung; eine gültige Suche ohne Treffer meldet completed mit replacedHits 0
Anmerkungen
Zuordnungen stammen aus einer vollständig unterstützten ToUnicode-CMap oder einer verifizierten Simple-Font-Kodierung, einschließlich unterstützter Differences-Glyphennamen; keine Konvertierung über Systemcodepages und keine geratene Glyphenkodierung
Benannte UseCMap-Vererbung, ungelöste Zuordnungen, Type3-Schriftvorschübe, vertikale Schrift, verschachtelter Form-Text, synthetische Zeichen, ActualText-Ersätze, transkodierte Zeichenfolgen, Treffer über Ebenen hinweg und teilweise Ligatur-Cluster werden als nicht unterstützt gemeldet
Ein vollständiger Ligatur-Cluster kann ersetzt werden, wenn seine ursprünglichen Bytes und die Unicode-Zuordnung verifiziert sind; Präfixe und Suffixe bleiben in ihrer ursprünglichen Schrift
Suchoptionen behalten ihre vorhandene Bedeutung, einschließlich Groß-/Kleinschreibung, ganzem Wort, Platzhaltern, Diakritika, kanonischer Äquivalenz und Graphem-Beschränkungen; soAcrossLines und Aufrufe innerhalb eines offenen API-Bereichs werden abgelehnt
Die Planung unterstützt bis zu 4096 Treffer; erfasste Quell-Snapshots sind auf 64 MiB pro Strom und insgesamt 512 MiB begrenzt, mit 64 MiB erfasster Quellpositions-Datensätze; der Schriftzuordnungs-Parser setzt ebenfalls begrenzte Token- und Code-Space-Grenzen durch, mit Transaktionssummen von 262144 Zuordnungen und 8 Mio. UTF-16-Zieleinheiten
Diese Grenzen betreffen vorgehaltene Erfassungs- und Planungsdaten; vorhandenes Seitenladen und -rendern haben eigene Zuweisungen, daher garantieren sie keine absolute Spitzenauslastung des Speichers
Gemeinsame Inhaltsströme und Ressourcenverzeichnisse werden für ausgewählte Seiten kopiert; die Dokumentauswahl wird wiederhergestellt, und veraltete Textblock-Listen müssen nach einer erfolgreichen Bearbeitung erneut extrahiert werden
Diese Operation ändert aktiven Seiteninhalt und ist keine API zur sicheren Löschung: losgelöste Objekte oder frühere inkrementelle Revisionen können ursprüngliche Bytes behalten
Siehe auch
SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText