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