PDFium Delphi Component 文件

SetTextPositions 鏂规硶

组件: TPdf  ·  单元: PDFium
涓烘寚瀹氭枃鏈璞¤缃€愬瓧绗︿綅缃€傜涓€涓瓧绗︿綅缃粯璁よ涓?0锛汸ositions[0] 璁剧疆绗簩涓瓧绗︿綅缃紝Positions[1] 璁剧疆绗笁涓紝渚濇绫绘帹銆傛暟鍊煎崟浣嶄负鐐癸紝涓旂浉瀵逛簬鏂囨湰瀵硅薄鍘熺偣

Syntax

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

ObjectIndexInteger。要设置其字符位置的文本对象的基于 0 的索引(0 到 ObjectCount - 1)
PositionsTPdfSingleArray。以点计的逐字符偏移数组,相对于文本对象原点。Positions[0] 设置第二个字符的位置,Positions[1] 第三个,依此类推。第一个字符始终在位置 0

Description

SetTextPositions 通过为每个字符提供显式水平偏移来覆盖文本对象的默认字符间距。这实现了细粒度字距控制、两端对齐文本布局,或重现现有 PDF 中的精确字符放置

Positions 数组为每个字符间间隙包含一个条目,从第一个和第二个字符之间的间隙开始。具体来说,Positions[0] 是第二个字符的位置,Positions[1] 是第三个字符的位置,依此类推 — 全部从文本对象原点沿文本基线以点计。第一个字符始终放置在偏移 0。数组长度应比文本对象中的字符数少一;多余的条目被忽略,缺失的条目使相应字符保留在其默认位置

此方法通常与 SetText 一起使用,用于重建或编辑必须精确保留原始字符间距的文本对象

Example

// 添加文本,然后应用自定义逐字符位置
Pdf1.NewPage(595, 842);
Pdf1.AddText('HELLO', 'Arial', 24, 72, 700);

var
  Idx: Integer;
  Pos: TPdfSingleArray;
begin
  Idx := Pdf1.ObjectCount - 1;
  // 'H' 在 0(隐式),'E' 在 20,'L' 在 38,'L' 在 56,'O' 在 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