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