ReplaceTag
מניפולציה של עמודים
תיאור
מבצע חיפוש-והחלפה מילולי על תוכן הטקסט של העמוד הנבחר כרגע. כל הופעה של 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; את הפריסה הסובבת לא ממחזרים, ולכן החלפות גדולות מאוד עשויות לגלוש מעבר לעמודה המקורית |
ערך מוחזר
מספר הפעמים ש-Tag נמצא והוחלף בעמוד הנבחר. אפס משמעו שלא נמצאו הופעות (או שלא נבחר עמוד)
הערות
רק טקסט בתוך אופרטורים מציגי-טקסט (Tj, TJ, ', ") נחפש. Placeholders שמוקפו או פוצלו על פני כמה אופרטורים עשויים שלא להימצא — השאירו את placeholder התבנית קצר וציירו אותו כמחרוזת אחת. הפונקציה אינה מחפשת תוכן annotations, ערכי שדות טופס או קבצים מוטמעים.
בחרו תחביר 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;