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;