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 و' و"). وقد لا تتطابق العناصر النائبة التي خضعت لتقنين الأحرف أو انقسمت عبر عوامل متعددة — أبقِ عناصر القالب النائبة قصيرة وارسمها كسلسلة واحدة. ولا تبحث الدالة في محتويات التعليقات التوضيحية أو قيم حقول النماذج أو الملفات المضمّنة
يغير خصائص طابعة مخصصة أُنشئت بالدالة NewCustomPrinter
مثال
// 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;