ReplaceTag
Sidemanipulation
Beskrivelse
Udfører en ordret søgning og erstatning i tekstindholdet på den aktuelt valgte side. Hver forekomst af Tag i sidens tekstvisningsoperatorer erstattes med NewValue, og operatorstrømmen omskrives på stedet. Returnerer antallet af udførte erstatninger.
Dette er en handling på indholdsstrømsniveau, der ikke vedrører tagging af tagget PDF (strukturtræ) – brug BeginTag/EndTag til dette. ReplaceTag er beregnet til skabeloner i brevfletningsstil, hvor pladsholdertokens (for eksempel {{customer-name}}) er tegnet på forhånd i en PDF-skabelon og derefter udfyldes af 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);
Parametre
| Tag | Den bogstavelige streng, der skal søges efter i sidens tekstindhold. Matchningen skelner mellem store og små bogstaver og gælder kun for den aktuelt valgte side — kald én gang pr. side ved behandling af en flersidet skabelon |
|---|---|
| NewValue | Erstatningsstrengen. Kan være længere eller kortere end Tag; det omgivende layout ombrydes ikke igen, så meget store erstatninger kan løbe ud over den oprindelige kolonne. |
Returværdi
Antallet af gange Tag blev fundet og erstattet på den valgte side. Nul betyder, at der ikke blev fundet nogen forekomster (eller at ingen side er valgt).
Bemærkninger
Der søges kun i tekst inde i tekstvisningsoperatorer (Tj, TJ, ', "). Pladsholdere, der er blevet knebet eller opdelt på tværs af flere operatorer, matcher muligvis ikke — hold skabelonpladsholdere korte, og tegn dem som én streng. Funktionen søger ikke i annoteringsindhold, formularfeltværdier eller integrerede filer
Vælg en pladsholdersyntaks, som sandsynligvis ikke forekommer i reelt indhold, f.eks. {{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;