ReplaceTagA

页面操作

描述

末尾的 A 表示 ANSI(char)DLL 入口点,ActiveX/COM 接口仅公开 Unicode 形式。其行为与 ReplaceTag 相同,字符串参数会按照当前的 SetAnsiMode 代码页进行解释

对当前选定页面的文本内容执行字面查找和替换 页面文本显示运算符中的每个 Tag 都会替换为 NewValue,并就地重写运算符流 返回执行的替换次数

这是内容流级别操作,与带标记 PDF(结构树)标记无关 — 请为此使用 BeginTag/EndTag ReplaceTag 适用于套用信函式模板,其中占位标记(例如 {{customer-name}})会预先绘制到模板 PDF 中,再由代码填入

语法

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、'、")内的文本。经过字距调整或被拆分到多个运算符中的占位符可能无法匹配——请保持模板占位符简短,并将其作为单个字符串绘制。该函数不搜索注释内容、表单字段值或嵌入文件

选择不太可能在真实内容中出现的占位符语法,例如 {{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;

另请参阅

ReplaceImage、SelectPage、PageCount