ReplaceTag

دستکاری صفحه

توضیحات

جست‌وجو-و-جایگزینی literal روی محتوای متنی صفحهٔ فعلاً انتخاب‌شده انجام می‌دهد. هر رخداد 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 TPDFlib.ReplaceTag(Const Tag, NewValue: WideString): Integer;

ActiveX

Function PDFlib::ReplaceTag(Tag As String, NewValue As String) As Long

DLL

int DLReplaceTag(int InstanceID, const wchar_t * Tag, const wchar_t * NewValue);

پارامترها

Tagرشتهٔ تحت‌اللفظی برای جست‌وجو در محتوای متنی صفحه. تطبیق به بزرگی و کوچکی حروف حساس است و فقط روی صفحهٔ انتخاب‌شدهٔ فعلی اعمال می‌شود — هنگام پردازش قالب چندصفحه‌ای، هر صفحه یک بار فراخوانی کنید
NewValueرشتهٔ جایگزین. می‌تواند از Tag طولانی‌تر یا کوتاه‌تر باشد؛ layout اطراف دوباره جریان نمی‌یابد، پس جایگزینی‌های بسیار بزرگ می‌توانند از ستون اصلی عبور کنند

مقدار بازگشتی

تعداد دفعاتی که Tag روی صفحهٔ انتخاب‌شده پیدا و جایگزین شد. صفر یعنی هیچ رخدادی پیدا نشد (یا صفحه‌ای انتخاب نشده است)

ملاحظات

فقط متن داخل عملگرهای نمایش متن (Tj، TJ، '، ") جست‌وجو می‌شود. Placeholderهایی که kerning شده‌اند یا میان چند عملگر شکسته شده‌اند ممکن است تطبیق نکنند — placeholderهای قالب را کوتاه نگه دارید و به‌صورت یک رشتهٔ واحد ترسیمشان کنید. تابع در محتوای حاشیه‌نویسی‌ها، مقادیر فیلدهای فرم یا فایل‌های جاسازی‌شده جست‌وجو نمی‌کند

syntax مربوط به 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