ReplaceTag
Manipulasi halaman
Deskripsi
Melakukan find-and-replace literal pada konten teks halaman yang sedang dipilih. Setiap kemunculan Tag di operator penampil teks halaman digantikan NewValue dan stream operator ditulis ulang secara in-place. Mengembalikan jumlah substitusi yang dilakukan
Ini operasi level content-stream yang tidak berhubungan dengan pen-tag-an tagged PDF (structure tree) — gunakan BeginTag/EndTag untuk itu. ReplaceTag ditujukan untuk template bergaya form-letter di mana token placeholder (misalnya {{customer-name}}) sudah digambar sebelumnya ke PDF template lalu diisi oleh kode
Sintaks
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);
Parameter
| Tag | String literal yang dicari di konten teks halaman. Pencocokannya case sensitive dan hanya berlaku pada halaman yang sedang dipilih — panggil sekali per halaman saat memproses template multi-halaman |
|---|---|
| NewValue | String penggantinya. Boleh lebih panjang atau lebih pendek dari Tag; layout di sekitarnya tidak di-reflow, jadi substitusi yang sangat besar bisa meluber melewati kolom aslinya |
Nilai kembali
Jumlah kali Tag ditemukan dan digantikan di halaman terpilih. Nol berarti tidak ada kemunculan yang ditemukan (atau tidak ada halaman terpilih)
Catatan
Hanya teks di dalam operator penampil teks (Tj, TJ, ', ") yang dicari. Placeholder yang terkena kerning atau terpecah ke beberapa operator mungkin tidak cocok — jaga placeholder template tetap pendek dan gambar sebagai satu string. Fungsi ini tidak mencari isi anotasi, nilai form field, atau embedded file
Pilih sintaks placeholder yang kecil kemungkinannya muncul di konten nyata, seperti {{name}}, <<Customer>>, atau ~~SKU~~
Contoh
// 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;