PDFium Delphi Component Docs

SetTextPositions Método

Componente: TPdf  ·  Unidad: PDFium
Define posiciones por carácter para el objeto de texto especificado. La primera posición de carácter se asume como 0; Positions[0] define 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 definir (de 0 a ObjectCount - 1)
PositionsTPdfSingleArray. Arreglo de desplazamientos por carácter en puntos, relativos al origen del objeto de texto. Positions[0] define 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 predeterminado entre caracteres de un objeto de texto al suministrar un desplazamiento horizontal explícito para cada carácter. Esto permite un control fino del kerning, una disposición de texto justificado o la reproducción de la ubicación exacta de los caracteres presente en un PDF existente

El arreglo Positions contiene una entrada por cada hueco entre caracteres, comenzando por el hueco entre el primer y el segundo carácter. En concreto, Positions[0] es la posición del segundo carácter, Positions[1] es la posición del tercero, y así sucesivamente — todas medidas en puntos desde el origen del objeto de texto a lo largo de la línea base del texto. El primer carácter siempre se coloca en el desplazamiento 0. La longitud del arreglo debe ser una unidad menor que la cantidad de caracteres del 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 habitualmente junto con SetText al reconstruir o editar objetos de texto cuyo espaciado original entre caracteres debe conservarse con exactitud

Example

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

See Also

SetText, ObjectCount