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;