ReplaceTagA

Манипуляция страницами

Описание

Завершающая A обозначает точку входа DLL типа ANSI (char); интерфейс ActiveX/COM предоставляет только форму Unicode. Поведение идентично ReplaceTag, а строковые аргументы интерпретируются с использованием текущей кодовой страницы SetAnsiMode

Выполняет буквальный поиск и замену в текстовом содержимом выбранной страницы: каждое вхождение Tag в текстопоказывающих операторах страницы заменяется на NewValue, поток операторов перезаписывается на месте. Возвращает число выполненных замен

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.

Синтаксис

Delphi

Function DLReplaceTagA(InstanceID: Integer; Tag, NewValue: PAnsiChar): Integer;

DLL

int DLReplaceTagA(int InstanceID, const char * Tag, const char * NewValue);

Параметры

TagБуквальная строка для поиска в текстовом содержимом страницы. Поиск ведётся с учетом регистра и затрагивает только текущую выбранную страницу — при обработке многостраничного шаблона вызывайте по одному разу на страницу.
NewValueСтрока замены; длиннее или короче Tag. Окружающая вёрстка не перестраивается, поэтому очень большие подстановки могут вылезти за исходную колонку

Возвращаемое значение

Сколько раз Tag найден и заменён на выбранной странице; ноль — вхождений нет (или страница не выбрана)

Примечания

Ищется только текст внутри операторов показа текста (Tj, TJ, ', "). Заполнители, прошедшие кернинг или разбитые между несколькими операторами, могут не найтись — держите заполнители шаблона короткими и рисуйте их одной строкой. Функция не ищет в содержимом аннотаций, значениях полей форм и встроенных файлах.

Choose placeholder syntax that is unlikely to occur in real content, such as {{name}}, <<Customer>>, or ~~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;

См. также

ReplaceImage, SelectPage, PageCount