ReplaceTag
Manipulace se stránkou
Popis
Provede doslovné hledání a nahrazení v textovém obsahu aktuálně vybrané stránky. Každý výskyt Tag v operátorech stránky zobrazujících text se nahradí hodnotou NewValue a stream operátorů se přepíše na místě. Vrací počet provedených náhrad
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.
Syntaxe
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);
Parametry
| Tag | Doslovný řetězec, který se má hledat v textovém obsahu stránky. Hledání rozlišuje velikost písmen a týká se jen aktuálně vybrané stránky — při zpracování vícestránkového template volejte jednou na stránku. |
|---|---|
| NewValue | Náhradní řetězec. Může být delší nebo kratší než Tag; okolní rozvržení se znovu neformátuje, takže velmi velké náhrady mohou přesáhnout původní sloupec |
Návratová hodnota
Kolikrát se Tag na vybrané stránce našel a nahradil. Nula znamená, že se nenašel žádný výskyt (nebo není vybrána žádná stránka)
Poznámky
Hledá se jen text uvnitř operátorů zobrazujících text (Tj, TJ, ', "). Placeholdery, které prošly kerningem nebo byly rozdělené mezi víc operátorů, se nemusí najít — placeholdery v template držte krátké a kreslete je jako jeden řetězec. Funkce nehledá v obsazích anotací, hodnotách formulářových polí ani ve vložených souborech.
Choose placeholder syntax that is unlikely to occur in real content, such as {{name}}, <<Customer>>, or ~~SKU~~.
Příklad
// 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;