|
支持 Unicode/CJK 的多行自动换行文本框输出(v2.217.0)
Delphi 语法:
function WideTextOutBox ( X, Y, LineSpacing, BoxWidth, BoxHeight: Integer; Text: WideString; Align: THPDFJustificationType ): Integer;
说明
WideTextOutBox 是 TextOutBox 的 Unicode 版本,采用 GetWideTextWidth 进行宽度测量,并按 WideChar 索引拆分 WideString,使 CJK / 代理对 / 多字节文本能正确换行。返回值为实际放入框内的 WideChar 数
换行规则
- CJK 字符(汉字 / 假名 / 韩文 / CJK 标点 / 全角字符)在任意两个字形之间断行
- 拉丁文及其他文字在框边缘前的最后一个空格 / 制表符处断行;若无空格,宽于框的字形序列将被强制截断
- 硬换行(CR / LF / CRLF)按原样处理
参数
| 名前 | 说明 |
X, Y | 文本框左上角坐标(用户空间单位) |
LineSpacing | 行间距(用户空间单位) |
BoxWidth | 文本框宽度(用户空间单位) |
BoxHeight | 文本框高度(用户空间单位) |
Text | 要输出的 Unicode 文本 |
Align | 对齐方式(jtLeft、jtCenter、jtRight、jtJustified) |
返回值
实际放入文本框内的 WideChar 数;可与原始文本长度比较以确认是否全部输出
代码示例
// 在 200×300 的文本框内左对齐输出中文段落
var
Placed: Integer;
begin
Placed := HPDF.CurrentPage.WideTextOutBox(
30, 700, 16, 200, 300,
WideString('这是一段中文测试文字,将在文本框内自动换行并正确处理 CJK 字符间距。'),
jtLeft);
end;
另请参阅: TextOutBox GetWideTextWidth GetWideTextRowCount
|