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

TagDoslovný ř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.
NewValueNá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;

Viz také

ReplaceImage, SelectPage, PageCount