ReplaceTag

Thao tác trang

Mô tả

Thực hiện tìm-và-thay thế literal trên nội dung chữ của trang đang chọn. Mọi chỗ xuất hiện Tag trong các toán tử hiển thị chữ của trang được thay bằng NewValue và stream toán tử được ghi lại ngay tại chỗ. Trả về số lần thay thế đã thực hiện

Đây là thao tác mức luồng nội dung, không liên quan đến việc gắn thẻ PDF gắn thẻ (cây cấu trúc) – việc đó hãy dùng BeginTag/EndTag. ReplaceTag dành cho các mẫu kiểu thư hàng loạt, nơi các token placeholder (ví dụ {{customer-name}}) được vẽ sẵn trong tệp PDF mẫu rồi được code điền vào.

Cú pháp

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);

Tham số

TagChuỗi literal cần tìm trong nội dung văn bản của trang. Việc khớp phân biệt chữ hoa chữ thường và chỉ áp dụng cho trang đang chọn – khi xử lý mẫu nhiều trang, hãy gọi mỗi trang một lần.
NewValueChuỗi thay thế. Có thể dài hơn hoặc ngắn hơn Tag; bố cục xung quanh không được reflow, nên thay thế quá lớn có thể chạy tràn cột gốc

Giá trị trả về

Số lần Tag được tìm thấy và thay thế trên trang đang chọn. Bằng 0 nghĩa là không tìm thấy chỗ nào (hoặc không có trang nào đang chọn)

Ghi chú

Chỉ văn bản nằm trong các toán tử hiển thị văn bản (Tj, TJ, ', ") được tìm kiếm. Placeholder đã bị kern hoặc tách qua nhiều toán tử có thể không khớp — hãy giứ placeholder mẫu ngắn và vẽ chúng như một chuỗi duy nhất. Hàm không tìm trong nội dung annotation, giá trị trường biểu mẫu hay file nhúng.

Hãy chọn cú pháp placeholder khó xảy ra trong nội dung thật, như {{name}}, <<Customer>> hay ~~SKU~~

Ví dụ

// 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;

Xem thêm

ReplaceImage, SelectPage, PageCount