ReplaceTag

Sidmanipulering

Beskrivning

Utför en bokstavlig sök-och-ersätt på den för tillfället valda sidans textinnehåll. Varje förekomst av Tag i sidans textvisande operatorer ersätts med NewValue och operatorströmmen skrivs om på plats. Returnerar antalet gjorda substitutioner

Detta är en operation på innehållsströmsnivå som inte har med taggad PDF-(strukturträds)taggning att göra — använd BeginTag/EndTag för det. ReplaceTag är tänkt för cirkulärmallar där platshållartoken (till exempel {{customer-name}}) förritats in i en mall-PDF och sedan fylls i av kod

Syntax

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

Parametrar

TagDen bokstavliga sträng som ska sökas i sidans textinnehåll. Matchen är skiftlägeskänslig och gäller bara den för tillfället valda sidan — anropa en gång per sida när du bearbetar en flersidig mall
NewValueErsättningssträngen. Kan vara längre eller kortare än Tag; den omgivande layouten flödas inte om, så mycket stora substitutioner kan löpa förbi den ursprungliga kolumnen

Returvärde

Antalet gånger Tag hittades och ersattes på den valda sidan. Noll betyder att inga förekomster hittades (eller att ingen sida är vald)

Anmärkningar

Bara text inne i textvisande operatorer (Tj, TJ, ', ") söks. Platshållare som kernats eller delats över flera operatorer kanske inte matchar — håll mallplatshållare korta och rita dem som en enda sträng. Funktionen söker inte i annoteringsinnehåll, formulärfältvärden eller inbäddade filer

Välj platshållarsyntax som sannolikt inte förekommer i verkligt innehåll, till exempel {{name}}, <<Customer>> eller ~~SKU~~.

Exempel

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

Se även

ReplaceImage, SelectPage, PageCount