ReplaceTag
Sivujen käsittely
Kuvaus
Suorittaa kirjaimellisen etsi ja korvaa -toiminnon nykyisen valitun sivun tekstisisältöön. Jokainen sivun tekstinäyttöoperaattoreiden Tag-esiintymä korvataan arvolla NewValue ja operaattorivirta kirjoitetaan uudelleen paikalleen. Palauttaa suoritettujen korvausten määrän
Tämä on sisältövirtatason operaatio, joka ei liity tagatun PDF:n (rakennepuun) tagaukseen — siihen käytä funktioita BeginTag/EndTag. ReplaceTag on tarkoitettu kirjemallityyppisiin mallipohjiin, joihin paikkamerkitokenit (esimerkiksi {{customer-name}}) on esipiirretty mallipohja-PDF:ään ja jotka koodi täyttää sen jälkeen
Syntaksi
Delphi
Function TPDFlib.ReplaceTag(Const Tag, NewValue: WideString): Integer;
ActiveX
Function PDFlib::ReplaceTag(Tag As String, NewValue As String) As Long
DLL
int DLReplaceTag(int InstanceID, const wchar_t * Tag, const wchar_t * NewValue);
Parametrit
| Tag | Kirjaimellinen merkkijono, joka etsitään sivun tekstisisällöstä. Täsmäytys on kirjainkokoa erotteleva, ja se koskee vain parhaillaan valittua sivua — kutsu kerran per sivu käsiteltäessä monisivuista mallipohjaa |
|---|---|
| NewValue | Korvausmerkkijono. Se voi olla pidempi tai lyhyempi kuin Tag; ympäröivää asettelua ei uudelleenrivitetä, joten erittäin suuret korvaukset voivat ajaa alkuperäisen palstan yli |
Paluuarvo
Monta kertaa Tag löytyi ja korvattiin valitulta sivulta. Nolla tarkoittaa, että esiintymiä ei löytynyt (tai sivua ei ole valittu)
Huomautukset
Etsitään vain tekstinäyttöoperaattorien (Tj, TJ, ', ") sisällä oleva teksti. Kernatut tai useisiin operaattoreihin jaetut paikkamerkit eivät välttämättä täsmää — pidä mallipohjien paikkamerkit lyhyinä ja piirrä ne yhtenä merkkijonona. Funktio ei etsi merkintöjen sisällöstä, lomakekenttien arvoista eikä upotetuista tiedostoista
Choose placeholder syntax that is unlikely to occur in real content, such as {{name}}, <<Customer>>, or ~~SKU~~.
Esimerkki
// Fill in a single-page invoice template
PDF.LoadFromFile('invoice-template.pdf', '');
PDF.SelectPage(1);
PDF.ReplaceTag('{{customer-name}}', 'Alice Smith');
PDF.ReplaceTag('{{invoice-no}}', 'INV-2026-0042');
PDF.ReplaceTag('{{total}}', '$1,234.56');
PDF.SaveToFile('invoice-INV-2026-0042.pdf');
// Multi-page template: iterate over pages
for I := 1 to PDF.GetPageCount do
begin
PDF.SelectPage(I);
PDF.ReplaceTag('{{customer-name}}', CustomerName);
end;