procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);
| ObjectIndex | Integer. Nollbaserat index för textobjektet vars teckenpositioner ska ställas in (0 till ObjectCount - 1) |
| Positions | TPdfSingleArray. Array med förskjutningar per tecken i punkter, relativt textobjektets origo. Positions[0] ställer in positionen för det andra tecknet, Positions[1] för det tredje och så vidare. Det första tecknet ligger alltid på position 0 |
SetTextPositions åsidosätter ett textobjekts standardteckenavstånd genom att ange en explicit horisontell förskjutning för varje tecken. Detta möjliggör finkornig kerning-kontroll, marginalutjämnad textlayout eller återgivning av den exakta teckenplacering som finns i en befintlig PDF
Arrayen Positions innehåller en post per mellanrum mellan tecknen, med start från mellanrummet mellan det första och det andra tecknet. Konkret är Positions[0] positionen för det andra tecknet, Positions[1] positionen för det tredje tecknet och så vidare — samtliga mätta i punkter från textobjektets origo längs textbaslinjen. Det första tecknet placeras alltid vid förskjutningen 0. Arrayens längd ska vara en mindre än antalet tecken i textobjektet; överskjutande poster ignoreras och saknade poster lämnar motsvarande tecken på sina standardpositioner
Metoden används typiskt tillsammans med SetText när textobjekt vars ursprungliga teckenavstånd måste bevaras exakt rekonstrueras eller redigeras
// Add text, then apply custom per-character positions
Pdf1.NewPage(595, 842);
Pdf1.AddText('HELLO', 'Arial', 24, 72, 700);
var
Idx: Integer;
Pos: TPdfSingleArray;
begin
Idx := Pdf1.ObjectCount - 1;
// 'H' at 0 (implicit), 'E' at 20, 'L' at 38, 'L' at 56, 'O' at 74
SetLength(Pos, 4);
Pos[0] := 20; Pos[1] := 38; Pos[2] := 56; Pos[3] := 74;
Pdf1.SetTextPositions(Idx, Pos);
end;