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