ReplaceTag
Manipulacija stranicom
Opis
Vrši doslovno find-and-replace nad tekstualnim sadržajem trenutno izabrane stranice. Svako pojavljivanje Tag u operatorima za prikaz teksta stranice zamenjuje se sa NewValue, a tok operatora se prepisuje na mestu. Vraća broj izvršenih zamena
This is a content-stream level operation that does not relate to tagged PDF (structure tree) tagging — use BeginTag/EndTag for that. ReplaceTag is intended for form-letter style templates where placeholder tokens (for example {{customer-name}}) are pre-drawn into a template PDF and then filled in by code.
Sintaksa
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);
Parametri
| Tag | Literalni string koji se traži u tekstualnom sadržaju stranice. Poklapanje razlikuje velika i mala slova i odnosi se samo na trenutno izabranu stranicu — pozovite jednom po stranici kada obrađujete višestranični šablon. |
|---|---|
| NewValue | Zamenski string. Može biti duži ili kraći od Tag-a; okolni raspored se ponovo ne prelama, pa vrlo velike zamene mogu preći prvobitnu kolonu |
Povratna vrednost
Broj puta koliko je Tag nađen i zamenjen na izabranoj stranici. Nula znači da nije nađeno nijedno pojavljivanje (ili nije izabrana nijedna stranica)
Napomene
Pretražuje se samo tekst unutar operatora prikaza teksta (Tj, TJ, ', "). Placeholder-i koji su kernovani ili podeljeni na više operatora možda neće biti pronađeni — držite placeholder-e šablona kratkima i iscrtajte ih kao jedan string. Funkcija ne pretražuje sadržaj anotacija, vrednosti polja obrazaca ni ugrađene datoteke.
Izaberite sintaksu placeholder-a koja se retko javlja u stvarnom sadržaju, poput {{name}}, <<Customer>> ili ~~SKU~~
Primer
// 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;