SearchAndReplaceTextInContentEx
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.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;Parametry
ReplacementFontID 0 używa oryginalnej czcionki; wartość dodatnia musi wskazywać czcionkę w wybranym dokumencie z kompletnym, zweryfikowanym kodowaniem
Czcionka zamienna jest wybierana tylko dla przebiegów zastępowania, a przed nietkniętymi sufiksami przywracana jest czcionka oryginalna; ta metoda nie wybiera ani nie instaluje czcionki automatycznie
Options w DLL i ActiveX używa flag wyszukiwania jako bitów 1, 2, 4, 8, 16, 32, 64 i 128 w kolejności enum; soAcrossLines to bit 16 i nie jest tu obsługiwany; nieznane bity są odrzucane przez te fasady
Ciągi wejściowe DLL A używają konfiguracji konwersji ANSI na ciągi szerokie instancji; aby przekazać Unicode niezależnie od tej konfiguracji, użyj punktu wejścia używającego ciągów szerokich
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
Proste czcionki muszą podać poprawne PDF-owe Widths, FirstChar i LastChar albo użyć dokładnej nazwy jednej ze standardowej czternastki Type1 bez Widths; zapasowe czcionki systemowe i luźne dopasowanie nazw nie uprawniają do dokładnego postępu
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