SearchAndReplaceTextInContentEx
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.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;Parameter
ReplacementFontID 0 verwendet die ursprüngliche Schrift; ein positiver Wert muss eine Schrift im ausgewählten Dokument mit einer vollständigen verifizierten Kodierung bezeichnen
Eine Ersatzschrift wird nur für Ersetzungsläufe ausgewählt, und die ursprüngliche Schrift wird vor unberührten Suffixen wiederhergestellt; diese Methode wählt oder installiert keine Schrift automatisch
DLL und ActiveX verwenden die Suchflags als Bits 1, 2, 4, 8, 16, 32, 64 und 128 in Enum-Reihenfolge; soAcrossLines ist Bit 16 und wird hier nicht unterstützt; unbekannte Bits werden von diesen Fassaden abgelehnt
DLL-A-Eingabezeichenfolgen verwenden die Konvertierungskonfiguration der Instanz von ANSI in breite Zeichenfolgen; verwenden Sie den Einstiegspunkt für breite Zeichenfolgen, um Unicode unabhängig von dieser Konfiguration zu übergeben
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
Simple Fonts müssen gültige PDF-Widths, FirstChar und LastChar angeben oder einen exakten Standardnamen der vierzehn Type1-Schriftarten ohne Widths verwenden; Systemschrift-Ausweichwahl und grobe Namenszuordnung autorisieren keinen exakten Vorschub
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