ReplaceTagA

頁面操作

描述

結尾的 A 表示 ANSI(char)DLL 進入點,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要在頁面文字內容中搜尋的字面字串。比對區分大小寫,且只適用於目前選取的頁面 — 處理多頁 template 時,每頁呼叫一次。
NewValue替換字串。可以比 Tag 長或短;周圍版面不會重排,因此過大的替換內容可能超出原本的欄寬。

傳回值

Tag 在所選頁面上被找到並取代的次數。零表示沒有找到任何出現處(或未選取頁面)。

備註

只搜尋文字顯示運算子(Tj、TJ、'、")內的文字。經過 kerning 或被拆到多個運算子的 placeholder 可能比對不到 — template 的 placeholder 請保持簡短,並畫成單一字串。此函式不搜尋註解內容、表單欄位值或內嵌檔案。

挑選不太可能出現在真實內容中的佔位符語法,例如 {{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