PDFium Delphi Component Docs

SetTextPositions Yöntem

Component: TPdf  ·  Unit: PDFium
Belirtilen text object için karakter başına konumları ayarlar. İlk karakter konumu 0 olarak kabul edilir; Positions[0] ikinci karakter konumunu, Positions[1] üçüncü karakter konumunu ve devamını ayarlar. Değerler points cinsindendir ve text object origin'e göredir

Syntax

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

ObjectIndexInteger. Karakter konumları ayarlanacak metin nesnesinin sıfır tabanlı indeksi (0 ile ObjectCount - 1 arası)
PositionsTPdfSingleArray. Array of per-character offsets in points, relative to the text object origin. Positions[0] sets the position of the second character, Positions[1] the third, and so on. The first character is always at position 0.

Description

SetTextPositions, her karakter için açık bir yatay konum vererek bir metin nesnesinin varsayılan karakter aralığını geçersiz kılar. Bu; ince taneli kerning denetimi, iki yana yaslı metin düzeni veya mevcut bir PDF'teki tam karakter yerleşiminin yeniden üretilmesi sağlar

Positions dizisi, ilk ve ikinci karakter arasındaki boşluktan başlayarak karakterler arası her boşluk için bir girdi içerir. Özellikle Positions[0] ikinci karakterin konumudur, Positions[1] üçüncü karakterin konumu ve böyle gider — tümü, metin nesnesinin başlangıcından metin baseline'ı boyunca point cinsinden ölçülür. İlk karakter daima 0 konumuna yerleştirilir. Dizi uzunluğu, metin nesnesindeki karakter sayısından bir eksik olmalıdır; artan girdiler yok sayılır, eksik girdiler ise ilgili karakterleri varsayılan konumlarında bırakır

Bu metot, özgün karakter aralığı tam olarak korunması gereken metin nesnelerini yeniden kurarken veya düzenlerken tipik olarak SetText ile birlikte kullanılır

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