SearchAndReplaceTextInContentEx

Extractie, Unicode, contentbewerking

Beschrijving

Vervangt elke niet-overlappende zoektreffer in ondersteunde paginatext, met exacte bronbytebereiken en een geverifieerde lettertypetoewijzing

De methode behoudt omliggende tekst, bestaande numerieke TJ-aanpassingen en het originele volgende tekstanker; een lege vervanging verwijdert alleen de gevonden tekens

Alle geselecteerde treffers worden gepland en herschreven voordat de paginacontent wordt weggeschreven; niet-representeerbare tekst, onvolledige lettertypetoewijzingen of een niet-ondersteunde bronlocatie wijzen het verzoek af zonder ook maar iets van de geselecteerde paginatext te vervangen

Syntaxis

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;

Parameters

ReplacementFontID 0 gebruikt het originele lettertype; een positieve waarde moet een lettertype in het geselecteerde document aanduiden met een complete geverifieerde codering

Een vervangingslettertype wordt alleen gekozen voor vervangingsruns en het originele lettertype wordt hersteld vóór de onaangeroerde suffixen; deze methode kiest of installeert zelf geen lettertype

DLL- en ActiveX-Options gebruiken de zoekvlaggen als bits 1, 2, 4, 8, 16, 32, 64 en 128 in enumvolgorde; soAcrossLines is bit 16 en wordt hier niet ondersteund; onbekende bits worden door deze facades geweigerd

DLL A-invoerstrings gebruiken de conversieconfiguratie van de instantie van ANSI naar wide; gebruik het wide-toegangspunt om Unicode onafhankelijk van die configuratie door te geven

Retourwaarden

Geeft het aantal vervangen treffers terug, of 0 bij geen treffers of een geweigerd verzoek; bekijk GetLastUnicodeReplacementDiagnostics om die uitkomsten te onderscheiden

LastErrorCode 535 meldt ongeldige invoer of vastleggingslimieten; 537 meldt niet-ondersteunde bewerking of codering; een geldige zoekopdracht zonder treffers meldt completed met replacedHits 0

Opmerkingen

Toewijzingen komen uit een volledig ondersteunde ToUnicode CMap of een geverifieerde simple-font-codering, inclusief ondersteunde Differences-glyphnamen; er wordt geen systeemcodepaginaconversie of gegokte glyphcodering gebruikt

Simple fonts moeten geldige PDF Widths, FirstChar en LastChar meeleveren, of een exacte standaard Type1-fontnaam uit de beroemde veertien gebruiken zonder Widths; systeemlettertype-fallback en losse naammatching geven geen recht op exacte opschuiving

Benoemde UseCMap-overerving, onopgeloste toewijzingen, Type3-lettertype-opschuivingen, verticaal schrijven, geneste Form-tekst, synthetische tekens, ActualText-vervangingen, getranscodeerde strings, treffers over lagen heen en gedeeltelijke ligatuurclusters worden als niet-ondersteund gemeld

Een complete ligatuurcluster kan worden vervangen wanneer zijn originele bytes en Unicode-toewijzing geverifieerd zijn; prefixen en suffixen blijven in hun originele lettertype

Zoekopties behouden hun bestaande betekenis, inclusief hoofdlettergevoeligheid, hele woorden, wildcards, diakrieten, canonieke gelijkwaardigheid en grapheme-beperkingen; soAcrossLines en aanroepen binnen een open API-scope worden geweigerd

Planning ondersteunt tot 4096 treffers; vastgelegde bronsnapshots zijn beperkt tot 64 MiB per stream en 512 MiB in totaal, met 64 MiB aan vastgelegde bronlocatieregistraties; de lettertypetoewijzingsparser hanteert ook begrensde token- en code-space-limieten, met transactietotalen van 262144 toewijzingen en 8 Mi UTF-16-doelunits

Deze limieten beperken vastgehouden vastleggings- en planningsdata; het bestaande laden en renderen van pagina's heeft eigen allocaties, dus dit is geen garantie voor absoluut piekgeheugengebruik

Gedeelde contentstreams en resource dictionaries worden gekopieerd voor geselecteerde pagina's; de documentselectie wordt hersteld en verouderde tekstbloklijsten moeten na een geslaagde bewerking opnieuw worden geëxtraheerd

Deze bewerking verandert actieve paginacontent en is geen API voor veilig wissen: losgekoppelde objecten of eerdere incrementele revisies kunnen originele bytes behouden

Zie ook

SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText