SearchAndReplaceTextInContent
Wyodrębnianie, Unicode, edycja treści
Opis
Zastępuje każde nienachodzące na siebie wystąpienie zapytania w obsługiwanym tekście strony, używając dokładnych zakresów bajtów źródła i zweryfikowanego mapowania czcionek
Metoda zachowuje otaczający tekst, istniejące numeryczne korekty TJ i oryginalną kotwicę następującego tekstu; puste zastąpienie usuwa wyłącznie dopasowane znaki
Wszystkie wybrane trafienia są planowane i przepisywane przed zatwierdzeniem treści strony; tekst niereprezentowalny, niekompletne mapowania czcionek albo nieobsługiwana lokalizacja źródłowa odrzucają żądanie bez zastąpienia czegokolwiek w wybranym tekście strony
Składnia
Delphi
Function TPDFlib.SearchAndReplaceTextInContent(Const Query, Replacement: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString): Integer;Parametry
Query musi być niepuste; Replacement może być puste; PageRange używa istniejącej składni zakresu stron, a pusty zakres wybiera wszystkie strony
Ten wpis deleguje do SearchAndReplaceTextInContentEx z ReplacementFontID 0, więc zastąpienie używa zweryfikowanej czcionki oryginalnej
Wartości zwracane
Zwraca liczbę zastąpionych trafień albo 0 przy braku trafień lub odrzuconym żądaniu; aby je rozróżnić, obejrzyj GetLastUnicodeReplacementDiagnostics
LastErrorCode 535 zgłasza nieprawidłowe wejście lub limity przechwytywania; 537 zgłasza nieobsługiwaną edycję lub kodowanie; poprawne wyszukiwanie bez trafień raportuje completed z replacedHits 0
Uwagi
Mapowania pochodzą z w pełni obsługiwanej CMapy ToUnicode albo ze zweryfikowanego kodowania prostej czcionki, łącznie z obsługiwanymi nazwami glifów w Differences; konwersja przez systemową stronę kodową ani zgadywane kodowanie glifów nie są używane
Dziedziczenie przez nazwany UseCMap, nierozwiązane mapowania, postępy czcionek Type3, pismo pionowe, tekst w zagnieżdżonych Form, znaki syntetyczne, zastąpienia ActualText, transkodowane ciągi, trafienia między warstwami i częściowe klastry ligatur są raportowane jako nieobsługiwane
Kompletny klaster ligatury może zostać zastąpiony, gdy jego oryginalne bajty i mapowanie Unicode są zweryfikowane; prefiksy i sufiksy pozostają w oryginalnej czcionce
Opcje wyszukiwania zachowują dotychczasowe znaczenie, łącznie z ograniczeniami wielkości liter, całych słów, symboli wieloznacznych, diakrytyków, równoważności kanonicznej i grafemów; soAcrossLines oraz wywołania w trakcie otwartego zakresu API są odrzucane
Planowanie obsługuje do 4096 trafień; przechwycone migawki źródła są limitowane do 64 MiB na strumień i 512 MiB łącznie, wraz z 64 MiB zapisów lokalizacji źródłowych; parser mapowania czcionek stosuje też ograniczone limity tokenów i przestrzeni kodowej, z sumami transakcji 262144 mapowań i 8 Mi jednostek docelowych UTF-16
Te limity dotyczą przechowywanych danych przechwytywania i planowania; istniejące wczytywanie i renderowanie stron mają własne alokacje, więc nie gwarantują absolutnego szczytowego zużycia pamięci
Współdzielone strumienie treści i słowniki zasobów są kopiowane dla wybranych stron; wybór dokumentu jest przywracany, a nieaktualne listy bloków tekstu trzeba po udanej edycji wyodrębnić ponownie
Ta operacja zmienia aktywną treść strony i nie jest API bezpiecznego wymazywania: odłączone obiekty lub wcześniejsze rewizje przyrostowe mogą zachować oryginalne bajty
Zobacz również
SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText