PDFium Component Docs

SetTextPositions Yöntem

Bu API girdisi tanımlayıcıları, imzaları, kod bloklarını ve PDF terimlerini özgün biçiminde korur.
Bileşen: TPdf  ·  Birim: 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

Söz dizimi

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

ObjectIndexTamsayı. Konumları ayarlanacak text object'in 0 tabanlı dizini (0 ile ObjectCount - 1 arası)
PositionsTPdfSingleArray. Text object origin'e göre points cinsinden karakter başına ofset dizisi. Positions[0] ikinci karakterin konumunu, Positions[1] üçüncü karakterin konumunu ve devamını ayarlar. İlk karakter her zaman 0 konumundadır

Açıklama

SetTextPositions, her karakter için açık bir yatay ofset vererek text object'in varsayılan karakter aralığını aşar. Bu, ayrıntılı kerning denetimi, hizalanmış metin yerleşimi ya da mevcut bir PDF'de bulunan tam karakter yerleşimini yeniden üretme olanağı sağlar

Positions dizisi, ilk ve ikinci karakter arasındaki boşluktan başlayarak karakterler arası her boşluk için bir giriş içerir. Daha açık söylemek gerekirse Positions[0] ikinci karakterin, Positions[1] üçüncü karakterin konumudur ve devam eder; hepsi text object's origin'inden text baseline boyunca points cinsinden ölçülür. İlk karakter her zaman 0 ofsetinde yer alır. Dizi uzunluğu, text object'teki karakter sayısından bir eksik olmalıdır; fazla girişler yok sayılır, eksik girişler ise karşılık gelen karakterleri varsayılan konumlarında bırakır

Bu yöntem genellikle SetText ile birlikte, özgün karakter aralığı tam olarak korunması gereken text object'leri yeniden oluştururken ya da düzenlerken kullanılır

Örnek

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

Ayrıca bkz.

SetText, ObjectCount