ReplaceTag
Маніпулювання сторінками
Опис
Виконує буквальний пошук-і-заміну в текстовому вмісті вибраної сторінки. Кожне входження Tag в операторах показу тексту сторінки замінюється на NewValue, а потік операторів переписується на місці. Повертає кількість виконаних замін
Це операція рівня потоку вмісту, яка не стосується тегування тегованого PDF (дерева структури) — для цього використовуйте 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;