SearchText
Text, Textextraktion
Beschreibung
Durchsucht Textblöcke im angeforderten Seitenbereich und kopiert Treffer in das vom Aufrufer bereitgestellte Array, wobei die Gesamtzahl der Übereinstimmungen auch dann zurückgegeben wird, wenn das Array kleiner ist
Die Methode meldet den Seitenfortschritt über OnProgress, berücksichtigt Abort zwischen Seiten und Blöcken und stellt die vor der Suche ausgewählte Seite wieder her
Seit v3.430.0 akzeptiert TPDFlibSearchOption außerdem soDiacriticInsensitive (1:1-Unicode-Faltung, sodass einfache Buchstaben mit akzentuierten lateinischen, griechischen und kyrillischen Entsprechungen übereinstimmen), soWildcards (* und ? in der Abfrage, am weitesten links und längste Übereinstimmung, mit ganzen Wörtern kompatibel) sowie soAcrossLines (Ausdrücke dürfen durch eine seitenübergreifend zusammengesetzte Übereinstimmung Zeilen- und Blockumbrüche überspannen)
Seit v3.452.0 findet soCanonicalEquivalent kanonisch äquivalenten NFC- und NFD-Text und bewahrt dabei die ursprünglichen Trefferkoordinaten, während soGraphemeClusters verhindert, dass Übereinstimmungen und Ersetzungen Surrogatpaare, Kombinationssequenzen, Emoji-ZWJ-Sequenzen, Flaggen oder indische Konjunkte aufteilen. In Kombination mit soWildcards verbraucht ein ? ein vollständiges Graphemcluster
Treffer enthalten zusätzlich die Positionen MatchStart und MatchLength im Blocktext sowie die Ausschnitte ContextBefore und ContextAfter, wenn SearchContextChars größer als null ist
Verwenden Sie SearchTextEach, wenn Treffer sofort verarbeitet werden sollen, ohne eine Kapazität für das Ergebnisarray festzulegen
Syntax
Delphi
Function TPDFlib.SearchText(Const Query: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString; Var Hits: Array Of TPDFlibSearchHit): Integer;
Parameter
Detaillierte Parameterbeschreibungen finden Sie im PDF Library for Delphi-Entwicklerhandbuch und in den Header-Kommentaren.
Rückgabewert
Die genaue Bedeutung der Rückgabewerte finden Sie im Entwicklerhandbuch zu PDF Library for Delphi.
Hinweise
Weitere relevante Informationen finden Sie in der entsprechenden Bibliotheksdokumentation oder in den Demo-Projekten