ReplaceTag
Puslapių tvarkymas
Aprašymas
Atlieka tikrąją paiešką ir pakeitimą šiuo metu pasirinktojo puslapio teksto turinyje. Kiekvienas Tag pasirodymas puslapio teksto rodymo operatoriuose pakeičiamas NewValue, o operatorių srautas perrašomas vietoje. Grąžina atliktųjų pakeitimų skaičių
Tai turinio srauto lygio operacija, nesusijusi su pažymėtojo PDF (struktūros medžio) žymėjimu – tam naudokite BeginTag/EndTag. ReplaceTag skirtas šablonams su žetonais (pvz., {{customer-name}}), iš anksto nupieštiems į šablono PDF ir vėliau užpildomus kodu.
Sintaksė
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);
Parametrai
| Tag | Ieškoma literal eilutė puslapio teksto turinyje. Atitiktis jautri raidžių registrui ir taikoma tik šiuo metu pasirinktam puslapiui – apdorojant kelių puslapių šabloną, iškvieskite po kartą kiekvienam puslapiui. |
|---|---|
| NewValue | Pakeičiamoji eilutė. Gali būti ilgesnė arba trumpesnė už Tag; aplinkinis išdėstymas neperformuojamas, todėl labai didelieji pakeitimai gali nubėgti už originaliosios stulpelio ribų |
Grąžinama reikšmė
Kartų, kiek Tag rastas ir pakeistas pasirinktajame puslapyje, skaičius. Nulis reiškia, kad nerasta jokių pasirodymų (arba nepasirinktas joks puslapis)
Pastabos
Ieškoma tik teksto tekstą rodančiuose operatoriuose (Tj, TJ, ', ") Vietos laikikliai, kurie buvo keminguoti arba padalyti keliuose operatoriuose, gali neatitikti — laikykite šablono vietos laikiklius trumpus ir pieškite juos kaip vieną eilutę Funkcija neieško anotacijų turinyje, formų laukų reikšmių arba įterptųjų failų
Pasirinkite vietos ženklo sintaksę, kurios tikroje turinyje greičiausiai nebus, tokią kaip {{name}}, <<Customer>> arba ~~SKU~~
Pavyzdys
// 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;