ReplaceTag
Манипулиране на страници
Описание
Извършва буквално търсене и замяна върху текстовото съдържание на текущо избраната страница. Всяко срещане на Tag в операторите за показване на текст на страницата се заменя с NewValue и потокът от оператори се пренаписва на място. Връща броя на извършените замени
Това е операция на ниво content stream, която не е свързана с маркиран PDF (structure tree) маркиране — използвайте BeginTag/EndTag за това. ReplaceTag е предназначена за шаблони от тип формулярно писмо, където заместителни токени, например {{customer-name}}, са предварително изрисувани в шаблонен PDF и след това се попълват от код
Синтаксис
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);
Параметри
| Tag | Буквалният низ, който трябва да се търси в текстовото съдържание на страницата. Съвпадението е чувствително към главни и малки букви и се отнася само за текущо избраната страница — извиквайте функцията веднъж на страница при обработка на многостраничен шаблон |
|---|---|
| NewValue | Низът за замяна. Може да е по-дълъг или по-къс от Tag; околната подредба не се прелива отново, така че много големи заместители могат да излязат извън първоначалната колона |
Върната стойност
Броят пъти, в които Tag е намерен и заменен на избраната страница. Нула означава, че не са намерени съвпадения или не е избрана страница
Забележки
Търсят се само текстове вътре в оператори за показване на текст (Tj, TJ, ', "). Заместители, които са кернирани или разделени между няколко оператора, може да не съвпаднат — дръжте заместителите в шаблона кратки и ги изрисувайте като един низ. Функцията не търси в съдържание на анотации, стойности на полета на формуляри или вградени файлове
Избирайте синтаксис за заместители, който е малко вероятно да се срещне в реалното съдържание, например {{name}}, <<Customer>> или ~~SKU~~
Пример
// 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;