PDFium Delphi Component Docs

SetTextPositions Método

Componente: TPdf  ·  Unidad: PDFium
Establece posiciones por carácter para el objeto de texto especificado. La posición del primer carácter se sobreentiende como 0; Positions[0] establece la posición del segundo carácter, Positions[1] la del tercero, y así sucesivamente. Los valores están en puntos y son relativos al origen del objeto de texto

Syntax

procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);

ObjectIndexInteger. Índice basado en cero del objeto de texto cuyas posiciones de carácter se van a establecer (0 a ObjectCount - 1)
PositionsTPdfSingleArray. 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

Description

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

Example

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

See Also

SetText, ObjectCount