ReplaceTag

Manipulácia so stránkami

Opis

Vykoná doslovné nájdi-a-nahraď nad textovým obsahom aktuálne vybranej strany. Každý výskyt Tag v text-zobrazujúcich operátoroch strany sa nahradí NewValue a stream operátorov sa prepíše na mieste. Vracia počet vykonaných substitúcií.

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.

Syntax

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

TagDoslovný reťazec, ktorý sa má hľadať v textovom obsahu strany. Hľadanie rozlišuje veľkosť písmen a týka sa iba aktuálne vybranej strany — pri spracovaní viacstranového templateu volajte raz na stranu.
NewValueNáhradný reťazec. Môže byť dlhší alebo kratší než Tag; okolité rozloženie sa neprelomí znovu, takže veľmi veľké substitúcie môžu presiahnuť pôvodný stĺpec.

Návratová hodnota

Koľkokrát sa Tag na vybranej strane našiel a nahradil. Nula znamená, že sa nenašli žiadne výskyty (alebo nie je vybraná žiadna strana).

Poznámky

Hľadá sa iba text vo vnútri operátorov zobrazujúcich text (Tj, TJ, ', "). Placeholdery, ktoré prešli kerningom alebo boli rozdelené medzi viac operátorov, sa nemusia nájsť — placeholdery v template držte krátke a kreslite ich ako jeden reťazec. Funkcia nehľadá v obsahoch anotácií, hodnotách formulárových polí ani vo vložených súboroch.

Choose placeholder syntax that is unlikely to occur in real content, such as {{name}}, <<Customer>>, or ~~SKU~~.

Prí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;

Pozri tiež

ReplaceImage, SelectPage, PageCount