THPDFPage.GetWideTextWidth

THPDFPage

 

顶部  上一页  下一页

使用当前字体测量 Unicode 字符串的显示宽度(v2.216.0)

 

Delphi 语法:

function GetWideTextWidth ( Text: WideString ): Single;

 

说明

 

GetWideTextWidth 是 TextWidth 的 Unicode 版本,通过 GDI GetTextExtentPoint32W(以 lfHeight = -1000 调用)测量 WideString 的宽度,结果与 TextWidth 单位相同(用户空间点,再除以 DocScale)。修复了 TextWidth(AnsiString) 对 CJK / 代理对 / 多字节文本导致的逐字节误测量 —— TextWidth 先将 WideString 窄化后再索引 0..255 的 ABC 字宽表,对 Latin-1 以外字符毫无意义。在布局或换行任何非拉丁文本前必须使用本方法,也是 WideTextOutBox 的测量基础

 

参数

Név说明
Text要测量的 Unicode 文本

 

返回值

文本在当前字体和大小下的用户空间宽度(点)

 

代码示例

// 测量中文字符串宽度并据此居中输出
var
  W: Single;
  PageW: Single;
  Text: WideString;
begin
  Text := '你好,世界';
  W := HPDF.CurrentPage.GetWideTextWidth(Text);
  PageW := HPDF.CurrentPage.Width;
  HPDF.CurrentPage.TextOut((PageW - W) / 2, 400, 0, Text);
end;

另请参阅: GetWideTextRowCount GetWideCharAdvances WideTextOutBox TextWidth