ReplaceTag
Manipulare pagini
Descriere
Efectuează o căutare-înlocuire literală pe conținutul de text al paginii selectate curent. Fiecare apariție a lui Tag în operatorii show-text ai paginii este înlocuită cu NewValue, iar stream-ul de operatori este rescris pe loc. Returnează numărul de substituții efectuate
Este o operație la nivel de flux de conținut care nu se leagă de etichetarea PDF etichetat (arbore de structură) — pentru asta folosiți BeginTag/EndTag. ReplaceTag este gândit pentru șabloane de tip form-letter, în care tokenuri de placeholder (de exemplu {{customer-name}}) sunt pre-desenate într-un PDF șablon și apoi completate de cod
Sintaxă
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);
Parametri
| Tag | Șirul literal de căutat în conținutul de text al paginii. Potrivirea face distincție între majuscule și minuscule și se aplică doar paginii selectate curent — apelați o dată per pagină când procesați un șablon multipagină |
|---|---|
| NewValue | Șirul de înlocuire. Poate fi mai lung sau mai scurt decât Tag; layout-ul din jur nu este re-fluxat, deci substituțiile foarte mari pot depăși coloana originală |
Valoare returnată
Numărul de ori când Tag a fost găsit și înlocuit pe pagina selectată. Zero înseamnă că nu s-au găsit apariții (sau nicio pagină nu este selectată)
Observații
Este căutat doar textul din interiorul operatorilor de afișare a textului (Tj, TJ, ', "). Placeholderele care au fost kernate sau împărțite pe mai mulți operatori s-ar putea să nu se potrivească — țineți placeholderele șablon scurte și desenați-le ca un singur șir. Funcția nu caută în conținutul adnotărilor, în valorile câmpurilor de formular sau în fișierele încorporate
Choose placeholder syntax that is unlikely to occur in real content, such as {{name}}, <<Customer>>, or ~~SKU~~.
Exemplu
// 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;