ReplaceTag
Sidemanipulering
Beskrivelse
Utfører en literal finn-og-erstatt på tekstinnholdet på den for tiden valgte siden. Hver forekomst av Tag i sidens tekstvisende operatorer erstattes med NewValue, og operatorstrømmen omskrives på stedet Returnerer antall utførte erstatninger
Dette er en operasjon på content stream-nivå som ikke har med tagget PDF (strukturtre)-tagging å gjøre — bruk BeginTag/EndTag til det. ReplaceTag er ment for brevmal-maler der plassholdertoken (for eksempel {{customer-name}}) er forhåndstegnet inn i en mal-PDF og deretter fylles ut av kode
Syntaks
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);
Parametere
| Tag | Den bokavelige strengen som skal søkes etter i sidens tekstinnhold. Treffet skiller store/små bokstaver og gjelder bare den valgte siden — kall én gang per side når du behandler en flersidig mal |
|---|---|
| NewValue | Erstatningsstrengen. Kan være lengre eller kortere enn Tag; den omgivende layouten flytes ikke på nytt, så svært store erstatninger kan løpe forbi den opprinnelige kolonnen |
Returverdi
Antall ganger Tag ble funnet og erstattet på den valgte siden. Null betyr at ingen forekomster ble funnet (eller ingen side er valgt)
Merknader
Bare tekst inne i tekstvisningsoperatorer (Tj, TJ, ', ") søkes. Plassholdere som er kernete eller splittet over flere operatorer treffer kanskje ikke — hold malplassholdere korte og tegn dem som én enkelt streng. Funksjonen søker ikke i annotasjonsinnhold, skjemafeltverdier eller innebygde filer
Velg plassholdersyntaks som lite sannsynlig forekommer i ekte innhold, slik som {{name}}, <<Customer>> eller ~~SKU~~
Eksempel
// 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;