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