procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);
| ObjectIndex | Integer. Índice basado en cero del objeto de texto cuyas posiciones de carácter se van a establecer (0 a ObjectCount - 1) |
| Positions | TPdfSingleArray. Matriz de desplazamientos por carácter en puntos, relativos al origen del objeto de texto. Positions[0] establece la posición del segundo carácter, Positions[1] la del tercero, y así sucesivamente. El primer carácter siempre está en la posición 0 |
SetTextPositions anula el espaciado de caracteres predeterminado de un objeto de texto suministrando un desplazamiento horizontal explícito para cada carácter. Esto permite un control fino de kerning, diseño de texto justificado o la reproducción de la colocación exacta de caracteres encontrada en un PDF existente
La matriz Positions contiene una entrada por hueco entre caracteres, empezando desde el hueco entre el primer y el segundo carácter. Concretamente, Positions[0] es la posición del segundo carácter, Positions[1] es la posición del tercer carácter, y así sucesivamente — todo medido en puntos desde el origen del objeto de texto a lo largo de la línea base. El primer carácter siempre se coloca en el desplazamiento 0. La longitud de la matriz debe ser uno menos que el número de caracteres en el objeto de texto; las entradas sobrantes se ignoran y las entradas faltantes dejan los caracteres correspondientes en sus posiciones predeterminadas
Este método se usa típicamente junto con SetText al reconstruir o editar objetos de texto cuyo espaciado de caracteres original debe preservarse exactamente
// Añadir texto y luego aplicar posiciones personalizadas por carácter
Pdf1.NewPage(595, 842);
Pdf1.AddText('HELLO', 'Arial', 24, 72, 700);
var
Idx: Integer;
Pos: TPdfSingleArray;
begin
Idx := Pdf1.ObjectCount - 1;
// 'H' en 0 (implícito), 'E' en 20, 'L' en 38, 'L' en 56, 'O' en 74
SetLength(Pos, 4);
Pos[0] := 20; Pos[1] := 38; Pos[2] := 56; Pos[3] := 74;
Pdf1.SetTextPositions(Idx, Pos);
end;