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