SearchAndReplaceTextInContentEx
Extrahering, Unicode, innehållsredigering
Beskrivning
Ersätter varje icke-överlappande förekomst av sökfrågan i sidtext som stöds, med exakta källbyte-intervall och en verifierad teckensnittsmappning
Metoden bevarar omgivande text, befintliga TJ-numeriska justeringar och det ursprungliga efterföljande textankaret; en tom ersättning tar bara bort de matchade tecknen
Alla valda träffar planeras och skrivs om innan sidinnehållet skrivs; text som inte kan representeras, ofullständiga teckensnittsmappningar eller en källplats som inte stöds avvisar begäran utan att ersätta någon vald sidtext
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;Parametrar
ReplacementFontID 0 använder det ursprungliga teckensnittet; ett positivt värde måste identifiera ett teckensnitt i det valda dokumentet med en komplett verifierad kodning
Ett ersättningsteckensnitt väljs bara för ersättningskörningar och det ursprungliga teckensnittet återställs före orörda suffix; den här metoden väljer och installerar inte automatiskt något teckensnitt
DLL och ActiveX använder sökflaggorna som bitar 1, 2, 4, 8, 16, 32, 64 och 128 i enumordning; soAcrossLines är bit 16 och stöds inte här; okända bitar avvisas av dessa fasader
DLL A-indatasträngar använder instansens ANSI-till-wide-konverteringskonfiguration; använd wide-ingångspunkten för att skicka Unicode oberoende av den konfigurationen
Returvärden
Returnerar antalet ersatta träffar, eller 0 för inga träffar eller en avvisad begäran; granska GetLastUnicodeReplacementDiagnostics för att skilja dessa utfall åt
LastErrorCode 535 rapporterar ogiltig indata eller fångstgränser 537 rapporterar redigering eller kodning som inte stöds; en giltig sökning utan träffar rapporteras som slutförd med replacedHits 0
Anmärkningar
Mappningar kommer från en fullt stödd ToUnicode-CMap eller en verifierad enkel teckensnittskodning, inklusive stödda Differences-glyfnamn; ingen konvertering via systemkodsidan eller gissad glyfkodning används
Enkla teckensnitt måste lämna giltiga PDF-Widths, FirstChar och LastChar, eller använda ett exakt Standard 14 Type1-teckensnittsnamn utan Widths; systemteckensnitts-fallback och lös namnmatchning ger inte tillstånd till exakt framåtskridande
Namngiven UseCMap-arv, olösta mappningar, Type3-teckensnittsans framåtskridande, vertikal skrift, nästlad Form-text, syntetiska tecken, ActualText-ersättningar, transkodade strängar, korslagsmatchningar och partiella ligaturkluster rapporteras som ostödda
Ett komplett ligaturkluster kan ersättas när dess ursprungliga byte och Unicode-mappning är verifierade; prefix och suffix lämnas kvar i sitt ursprungliga teckensnitt
Sökalternativen behåller sin befintliga betydelse, inklusive versalkänslighet, hela ord, jokertecken, diakritik, kanonisk ekvivalens och grafembegränsningar; soAcrossLines och anrop under en öppen API-scope avvisas
Planeringen stöder upp till 4096 träffar; fångade källsnapshotser begränsas till 64 MiB per ström och 512 MiB totalt, med 64 MiB fångade källplatsposter; parsern för teckensnittsmappningen tillämpar också avgränsade token- och kodrymdsgränser, med transaktionstotaler på 262144 mappningar och 8 Mi UTF-16-målenheter
Dessa gränser begränsar kvarhållen fångst- och planeringsdata; befintlig sidinläsning och rendering har egna allokeringar, så de är ingen garanti för absolut toppminnesanvändning
Delade innehållsströmmar och resursordlistor kopieras för valda sidor; dokumentvalet återställs och inaktuella textblocklistor måste extraheras igen efter en lyckad redigering
Åtgärden ändrar aktivt sidinnehåll och är inget API för säker radering: friställda objekt eller tidigare inkrementella revisioner kan behålla ursprungliga byte
Se även
SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText