procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);
| ObjectIndex | Integer. Zero-based index van het tekstobject waarvan de tekenposities worden ingesteld (0 tot ObjectCount - 1) |
| Positions | TPdfSingleArray. Array met offsets per teken in punten, relatief aan de oorsprong van het tekstobject. Positions[0] stelt de positie van het tweede teken in, Positions[1] het derde, enzovoort. Het eerste teken staat altijd op positie 0 |
SetTextPositions overschrijft de standaardtekenspatiëring van een tekstobject door voor elk teken een expliciete horizontale offset mee te geven. Daarmee regelt u fijnmazige kerning, justification van tekstlayout of een exacte reproductie van de tekenplaatsing uit een bestaande PDF
De array Positions bevat één invoer per tussenruimte tussen tekens, beginnend bij de ruimte tussen het eerste en het tweede teken. Concreet: Positions[0] is de positie van het tweede teken, Positions[1] die van het derde, enzovoort — allemaal gemeten in punten vanaf de oorsprong van het tekstobject langs de tekstbaseline. Het eerste teken staat altijd op offset 0. De arraylengte hoort één minder te zijn dan het aantal tekens in het tekstobject; overtollige invoeren worden genegeerd en ontbrekende invoeren laten de bijbehorende tekens op hun standaardpositie staan
Deze methode wordt doorgaans samen met SetText gebruikt bij het reconstrueren of bewerken van tekstobjecten waarvan de oorspronkelijke tekenspatiëring exact behouden moet blijven
// Voeg tekst toe en pas daarna eigen per-tekenposities toe
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;