1e41f4b71Sopenharmony_ci# @ohos.graphics.text (文本模块) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci本模块允许开发者创建复杂的文本段落,包括多样的文本样式、段落样式、换行规则等,并最终将这些信息转换为能在屏幕上高效渲染的布局数据,本模块采用屏幕物理像素单位px。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci该模块提供以下创建复杂的文本段落的常用功能: 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci- [TextStyle](#textstyle):文本样式,控制文本的字体类型、大小、间距等属性。 8e41f4b71Sopenharmony_ci- [FontCollection](#fontcollection):字体管理器,控制各种不同的字体。 9e41f4b71Sopenharmony_ci- [ParagraphStyle](#paragraphstyle):段落样式,控制整个段落的显示样式。 10e41f4b71Sopenharmony_ci- [Paragraph](#paragraph):段落,由ParagraphBuilder类调用[build()](#build)接口构建而成。 11e41f4b71Sopenharmony_ci- [ParagraphBuilder](#paragraphbuilder):段落生成器,控制生成不同的段落对象。 12e41f4b71Sopenharmony_ci- [TextLine](#textline):以行为单位的段落文本的载体,由段落类调用[getTextLines()](#gettextlines)接口获取。 13e41f4b71Sopenharmony_ci- [Run](#run):文本排版的渲染单元,由行文本类调用[getGlyphRuns()](#getglyphruns)接口获取。 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci> **说明:** 16e41f4b71Sopenharmony_ci> 17e41f4b71Sopenharmony_ci> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci## 导入模块 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci```ts 22e41f4b71Sopenharmony_ciimport { text } from '@kit.ArkGraphics2D'; 23e41f4b71Sopenharmony_ci``` 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci## TextAlign 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci文本对齐方式枚举。 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 32e41f4b71Sopenharmony_ci| --------- | ---- | ---------------------------------------------- | 33e41f4b71Sopenharmony_ci| LEFT | 0 | 文本靠左对齐。 | 34e41f4b71Sopenharmony_ci| RIGHT | 1 | 文本靠右对齐。 | 35e41f4b71Sopenharmony_ci| CENTER | 2 | 文本居中对齐。 | 36e41f4b71Sopenharmony_ci| JUSTIFY | 3 | 文本两侧对齐,对最后一行无效。 | 37e41f4b71Sopenharmony_ci| START | 4 | 基于文本的方向[TextDirection](#textdirection),文本靠开头方向对齐。 | 38e41f4b71Sopenharmony_ci| END | 5 | 基于文本的方向[TextDirection](#textdirection),文本以结束方向对齐。 | 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci## TextDirection 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci文本排版方向枚举。 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 47e41f4b71Sopenharmony_ci| -------- | ---- | ---------------- | 48e41f4b71Sopenharmony_ci| RTL | 0 | 文本从右到左排版。 | 49e41f4b71Sopenharmony_ci| LTR | 1 | 文本从左到右排版。 | 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci## BreakStrategy 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci断行策略枚举。 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 58e41f4b71Sopenharmony_ci| ------------- | ---- | ---------------------------------------------- | 59e41f4b71Sopenharmony_ci| GREEDY | 0 | 尽可能将当前行填满,不会自动添加连词符。 | 60e41f4b71Sopenharmony_ci| HIGH_QUALITY | 1 | 布局优化,必要时会自动添加连词符。 | 61e41f4b71Sopenharmony_ci| BALANCED | 2 | 保证一个段落的每一行的宽度相同,必要时会添加连词符。| 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci## WordBreak 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci断词策略枚举。 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 70e41f4b71Sopenharmony_ci| ----------- | ---- | -------------------------------------------------------------------------------------------------------------------- | 71e41f4b71Sopenharmony_ci| NORMAL | 0 | 默认的换行规则。依据各自语言的规则,允许在字间发生换行。 | 72e41f4b71Sopenharmony_ci| BREAK_ALL | 1 | 对于 Non-CJK(非中文,日文,韩文)文本允许在任意字符内发生换行。该值适合包含一些非亚洲文本的亚洲文本,比如使连续的英文字符断行。| 73e41f4b71Sopenharmony_ci| BREAK_WORD | 2 | 与`BREAK_ALL`基本相同,不同的地方在于它要求一个没有断行破发点的词必须保持为一个整体单位。 | 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci## Decoration 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci文本装饰线。 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 82e41f4b71Sopenharmony_ci| ------------------------- | --------------------------------------------------- | ---- | ---- | -------------------------------------------- | 83e41f4b71Sopenharmony_ci| textDecoration | [TextDecorationType](#textdecorationtype) | 是 | 是 | 装饰线类型,默认为NONE。 | 84e41f4b71Sopenharmony_ci| color | [common2D.Color](js-apis-graphics-common2D.md#color)| 是 | 是 | 装饰线颜色,默认为透明。 | 85e41f4b71Sopenharmony_ci| decorationStyle | [TextDecorationStyle](#textdecorationstyle) | 是 | 是 | 装饰线样式,默认为SOLID。 | 86e41f4b71Sopenharmony_ci| decorationThicknessScale | number | 是 | 是 | 装饰线粗细相对于默认值的比例,浮点数,默认为1.0。| 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci## TextDecorationType 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci装饰线类型枚举。 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 95e41f4b71Sopenharmony_ci| -------------- | - | ----------- | 96e41f4b71Sopenharmony_ci| NONE | 0 | 装饰线不生效。| 97e41f4b71Sopenharmony_ci| UNDERLINE | 1 | 下划线。 | 98e41f4b71Sopenharmony_ci| OVERLINE | 2 | 上划线。 | 99e41f4b71Sopenharmony_ci| LINE_THROUGH | 3 | 删除线。 | 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci## TextDecorationStyle 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci装饰线样式枚举。 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 108e41f4b71Sopenharmony_ci| ------ | - | ------ | 109e41f4b71Sopenharmony_ci| SOLID | 0 | 实线。 | 110e41f4b71Sopenharmony_ci| DOUBLE | 1 | 双层线。| 111e41f4b71Sopenharmony_ci| DOTTED | 2 | 点状线。| 112e41f4b71Sopenharmony_ci| DASHED | 3 | 虚线。 | 113e41f4b71Sopenharmony_ci| WAVY | 4 | 波浪线。| 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci## FontWeight 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci字重枚举。 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 122e41f4b71Sopenharmony_ci| ----- | - | ------- | 123e41f4b71Sopenharmony_ci| W100 | 0 | 100字重。| 124e41f4b71Sopenharmony_ci| W200 | 1 | 200字重。| 125e41f4b71Sopenharmony_ci| W300 | 2 | 300字重。| 126e41f4b71Sopenharmony_ci| W400 | 3 | 400字重。| 127e41f4b71Sopenharmony_ci| W500 | 4 | 500字重。| 128e41f4b71Sopenharmony_ci| W600 | 5 | 600字重。| 129e41f4b71Sopenharmony_ci| W700 | 6 | 700字重。| 130e41f4b71Sopenharmony_ci| W800 | 7 | 800字重。| 131e41f4b71Sopenharmony_ci| W900 | 8 | 900字重。| 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci## FontWidth 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci字体宽度的枚举。 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 140e41f4b71Sopenharmony_ci| ---------------- | - | ---------- | 141e41f4b71Sopenharmony_ci| ULTRA_CONDENSED | 1 | 超窄字宽。 | 142e41f4b71Sopenharmony_ci| EXTRA_CONDENSED | 2 | 特窄字宽。 | 143e41f4b71Sopenharmony_ci| CONDENSED | 3 | 窄的字宽。 | 144e41f4b71Sopenharmony_ci| SEMI_CONDENSED | 4 | 半窄字宽。 | 145e41f4b71Sopenharmony_ci| NORMAL | 5 | 常规字宽。 | 146e41f4b71Sopenharmony_ci| SEMI_EXPANDED | 6 | 半宽字宽。 | 147e41f4b71Sopenharmony_ci| EXPANDED | 7 | 宽的字宽。 | 148e41f4b71Sopenharmony_ci| EXTRA_EXPANDED | 8 | 特宽字宽。 | 149e41f4b71Sopenharmony_ci| ULTRA_EXPANDED | 9 | 超宽的字宽。| 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci## FontStyle 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci字体样式枚举。 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 158e41f4b71Sopenharmony_ci| ------- | - | ---------------------------------------------------- | 159e41f4b71Sopenharmony_ci| NORMAL | 0 | 常规样式。 | 160e41f4b71Sopenharmony_ci| ITALIC | 1 | 斜体,如果当前字体没有可用的斜体版本,会选用倾斜体替代。 | 161e41f4b71Sopenharmony_ci| OBLIQUE | 2 | 倾斜体,如果当前字体没有可用的倾斜体版本,会选用斜体替代。| 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci## TextHeightBehavior 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci文本高度修饰符模式枚举。 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 170e41f4b71Sopenharmony_ci| --------------------- | --- | ---------------------------------------------------- | 171e41f4b71Sopenharmony_ci| ALL | 0x0 | 高度修饰符设置为段落中第一行和最后一行都上升。 | 172e41f4b71Sopenharmony_ci| DISABLE_FIRST_ASCENT | 0x1 | 高度修饰符设置为禁止段落中第一行上升。 | 173e41f4b71Sopenharmony_ci| DISABLE_LAST_ASCENT | 0x2 | 高度修饰符设置为禁止段落中最后一行上升。 | 174e41f4b71Sopenharmony_ci| DISABLE_ALL | 0x3 | 高度修饰符设置为段落中第一行和最后一行都不上升。 | 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci## TextBaseline 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci文本基线类型枚举。 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 183e41f4b71Sopenharmony_ci| ----------- | - | ---- | 184e41f4b71Sopenharmony_ci| ALPHABETIC | 0 | 通常用于拉丁字母的文本基线对齐。| 185e41f4b71Sopenharmony_ci| IDEOGRAPHIC | 1 | 通常用于CJK(中文,日文,韩文)的文本基线对齐。| 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci## EllipsisMode 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_ci省略号类型枚举。 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ciEllipsisMode.START和EllipsisMode.MIDDLE仅在单行超长文本生效。 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 196e41f4b71Sopenharmony_ci| ------ | - | --------- | 197e41f4b71Sopenharmony_ci| START | 0 | 开头省略号。| 198e41f4b71Sopenharmony_ci| MIDDLE | 1 | 中间省略号。| 199e41f4b71Sopenharmony_ci| END | 2 | 末尾省略号。| 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci## TextShadow 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci字体阴影。 204e41f4b71Sopenharmony_ci 205e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 208e41f4b71Sopenharmony_ci| ------------- | ---------------------------------------------------- | -- | --- | --------------------------------- | 209e41f4b71Sopenharmony_ci| color | [common2D.Color](js-apis-graphics-common2D.md#color) | 是 | 是 | 字体阴影的颜色,默认为黑色Color(255, 0, 0, 0)。 | 210e41f4b71Sopenharmony_ci| point | [common2D.Point](js-apis-graphics-common2D.md#point12) | 是 | 是 | 字体阴影基于当前文本的偏移位置,横、纵坐标要大于等于零。 | 211e41f4b71Sopenharmony_ci| blurRadius | number | 是 | 是 | 模糊半径,浮点数,默认为0.0px。 | 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci## RectStyle 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci矩形框样式。 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 220e41f4b71Sopenharmony_ci| ----------------- | ---------------------------------------------------- | -- | --- | ---------------------------------------- | 221e41f4b71Sopenharmony_ci| color | [common2D.Color](js-apis-graphics-common2D.md#color) | 是 | 否 | 矩形框的颜色。 | 222e41f4b71Sopenharmony_ci| leftTopRadius | number | 是 | 否 | 矩形框的左上半径。 | 223e41f4b71Sopenharmony_ci| rightTopRadius | number | 是 | 否 | 矩形框的右上半径。 | 224e41f4b71Sopenharmony_ci| rightBottomRadius | number | 是 | 否 | 矩形框的右下半径。 | 225e41f4b71Sopenharmony_ci| leftBottomRadius | number | 是 | 否 | 矩形框的左下半径。 | 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci## FontFeature 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci文本字体特征。 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 234e41f4b71Sopenharmony_ci| --------- | ---------------------------------------------------- | -- | --- | ----------------------------------------- | 235e41f4b71Sopenharmony_ci| name | string | 是 | 否 | 字体特征键值对中关键字所标识的字符串。 | 236e41f4b71Sopenharmony_ci| value | number | 是 | 否 | 字体特征键值对的值。 | 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ci## FontVariation 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci可变字体属性。 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 245e41f4b71Sopenharmony_ci| --------- | ---------------------------------------------------- | -- | --- | ----------------------------------------- | 246e41f4b71Sopenharmony_ci| axis | string | 是 | 否 | 可变字体属性键值对中关键字所标识的字符串。 | 247e41f4b71Sopenharmony_ci| value | number | 是 | 否 | 可变字体属性键值对的值。 | 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_ci## TextStyle 250e41f4b71Sopenharmony_ci 251e41f4b71Sopenharmony_ci文本样式。 252e41f4b71Sopenharmony_ci 253e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 256e41f4b71Sopenharmony_ci| ------------- | ---------------------------------------------------- | -- | -- | --------------------------------------------------------- | 257e41f4b71Sopenharmony_ci| decoration | [Decoration](#decoration) | 是 | 是 | 装饰线置,默认初始的Decoration。 | 258e41f4b71Sopenharmony_ci| color | [common2D.Color](js-apis-graphics-common2D.md#color) | 是 | 是 | 字体色,默认为白色。 | 259e41f4b71Sopenharmony_ci| fontWeight | [FontWeight](#fontweight) | 是 | 是 | 字重,默认为W400。 | 260e41f4b71Sopenharmony_ci| fontStyle | [FontStyle](#fontstyle) | 是 | 是 | 字体样式,默认为常规样式。 | 261e41f4b71Sopenharmony_ci| baseline | [TextBaseline](#textbaseline) | 是 | 是 | 文本基线型,默认为ALPHABETIC。 | 262e41f4b71Sopenharmony_ci| fontFamilies | Array\<string> | 是 | 是 | 字体族名称列表,默认为系统字体。 | 263e41f4b71Sopenharmony_ci| fontSize | number | 是 | 是 | 字体大小,浮点数,默认为14.0,单位为px。 | 264e41f4b71Sopenharmony_ci| letterSpacing | number | 是 | 是 | 字符间距,正数拉开字符距离,若是负数则拉近字符距离,浮点数,默认为0.0,单位为物理像素px。| 265e41f4b71Sopenharmony_ci| wordSpacing | number | 是 | 是 | 单词间距,浮点数,默认为0.0,单位为px。 | 266e41f4b71Sopenharmony_ci| heightScale | number | 是 | 是 | 行高缩放倍数,浮点数,默认为1.0,heightOnly为true时生效。 | 267e41f4b71Sopenharmony_ci| heightOnly | boolean | 是 | 是 | true表示根据字体大小和heightScale设置文本框的高度,false表示根据行高和行距,默认为false。| 268e41f4b71Sopenharmony_ci| halfLeading | boolean | 是 | 是 | true表示将行间距平分至行的顶部与底部,false则不平分,默认为false。| 269e41f4b71Sopenharmony_ci| ellipsis | string | 是 | 是 | 省略号样式,表示省略号生效后使用该字段值替换省略号部分。 | 270e41f4b71Sopenharmony_ci| ellipsisMode | [EllipsisMode](#ellipsismode) | 是 | 是 | 省略号类型,默认为END,行尾省略号。 | 271e41f4b71Sopenharmony_ci| locale | string | 是 | 是 | 语言类型,如字段为'en'代表英文,'zh-Hans'代表简体中文,'zh-Hant'代表繁体中文。具体请参照ISO 639-1规范,默认为空字符串。| 272e41f4b71Sopenharmony_ci| baselineShift | number | 是 | 是 | 文本下划线的偏移距离,浮点数,默认为0.0px。 | 273e41f4b71Sopenharmony_ci| fontFeatures | Array\<[FontFeature](#fontfeature)> | 是 | 是 | 文本字体特征数组。| 274e41f4b71Sopenharmony_ci| fontVariations| Array\<[FontVariation](#fontvariation)> | 是 | 是 | 可变字体属性数组。| 275e41f4b71Sopenharmony_ci| textShadows | Array\<[TextShadow](#textshadow)> | 是 | 是 | 文本字体阴影数组。| 276e41f4b71Sopenharmony_ci| backgroundRect| [RectStyle](#rectstyle) | 是 | 是 | 文本矩形框样式。| 277e41f4b71Sopenharmony_ci 278e41f4b71Sopenharmony_ci## StrutStyle 279e41f4b71Sopenharmony_ci 280e41f4b71Sopenharmony_ci支柱样式,用于控制绘制文本的行间距、基线对齐方式以及其他与行高相关的属性,默认不开启。 281e41f4b71Sopenharmony_ci 282e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 283e41f4b71Sopenharmony_ci 284e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 285e41f4b71Sopenharmony_ci| ------------- | ---------------------------------------------------- | ---- | -- | --------------------------------------------------------------------- | 286e41f4b71Sopenharmony_ci| fontFamilies | Array\<string> | 是 | 是 | 字体类型,默认为系统字体。 | 287e41f4b71Sopenharmony_ci| fontStyle | [FontStyle](#fontstyle) | 是 | 是 | 字体样式,默认为常规样式。 | 288e41f4b71Sopenharmony_ci| fontWidth | [FontWidth](#fontwidth) | 是 | 是 | 字体宽度,默认为NORMAL。 | 289e41f4b71Sopenharmony_ci| fontWeight | [FontWeight](#fontweight) | 是 | 是 | 字重,默认为W400。 | 290e41f4b71Sopenharmony_ci| fontSize | number | 是 | 是 | 字体大小,浮点数,默认为14.0,单位为物理像素px。 | 291e41f4b71Sopenharmony_ci| height | number | 是 | 是 | 行高缩放倍数,浮点数,默认为1.0。 | 292e41f4b71Sopenharmony_ci| leading | number | 是 | 是 | 以自定义行距应用于支柱的行距,浮点数,默认为-1.0。 | 293e41f4b71Sopenharmony_ci| forceHeight | boolean | 是 | 是 | 是否所有行都将使用支柱的高度,true表示使用,false表示不使用,默认为false。 | 294e41f4b71Sopenharmony_ci| enabled | boolean | 是 | 是 | 是否启用支柱样式,true表示使用,false表示不使用,默认为false。 | 295e41f4b71Sopenharmony_ci| heightOverride | boolean | 是 | 是 | 是否覆盖高度,true表示覆盖,false表示不覆盖,默认为false。 | 296e41f4b71Sopenharmony_ci| halfLeading | boolean | 是 | 是 | true表示将行间距平分至行的顶部与底部,false则不平分,默认为false。 | 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci## FontCollection 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci字体管理器。 301e41f4b71Sopenharmony_ci 302e41f4b71Sopenharmony_ci### getGlobalInstance 303e41f4b71Sopenharmony_ci 304e41f4b71Sopenharmony_cistatic getGlobalInstance(): FontCollection 305e41f4b71Sopenharmony_ci 306e41f4b71Sopenharmony_ci获取应用全局FontCollection的实例。 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 309e41f4b71Sopenharmony_ci 310e41f4b71Sopenharmony_ci**返回值:** 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci| 类型 | 说明 | 313e41f4b71Sopenharmony_ci| ------ | ------------------ | 314e41f4b71Sopenharmony_ci| [FontCollection](#fontcollection) | FontCollection对象。| 315e41f4b71Sopenharmony_ci 316e41f4b71Sopenharmony_ci**示例:** 317e41f4b71Sopenharmony_ci 318e41f4b71Sopenharmony_ci```ts 319e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_cifunction textFunc() { 322e41f4b71Sopenharmony_ci let fontCollection = text.FontCollection.getGlobalInstance(); 323e41f4b71Sopenharmony_ci} 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci@Entry 326e41f4b71Sopenharmony_ci@Component 327e41f4b71Sopenharmony_cistruct Index { 328e41f4b71Sopenharmony_ci fun: Function = textFunc; 329e41f4b71Sopenharmony_ci build() { 330e41f4b71Sopenharmony_ci Column() { 331e41f4b71Sopenharmony_ci Button().onClick(() => { 332e41f4b71Sopenharmony_ci this.fun(); 333e41f4b71Sopenharmony_ci }) 334e41f4b71Sopenharmony_ci } 335e41f4b71Sopenharmony_ci } 336e41f4b71Sopenharmony_ci} 337e41f4b71Sopenharmony_ci``` 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci### loadFontSync 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ciloadFontSync(name: string, path: string | Resource): void 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_ci同步接口,将路径对应的文件,以name作为使用的别名,加载成自定义字体。其中参数name对应的值需要在[TextStyle](#textstyle)中的fontFamilies属性配置,才能显示自定义的字体效果。支持的字体文件格式包含:ttf、otf。 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci**参数:** 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 350e41f4b71Sopenharmony_ci| ----- | ------------------ | ---- | --------------------------------------------------------------------------------- | 351e41f4b71Sopenharmony_ci| name | string | 是 | 加载成字体后,调用该字体所使用的命名。 | 352e41f4b71Sopenharmony_ci| path | string \| [Resource](../apis-arkui/arkui-ts/ts-types.md#resource) | 是 | 需要导入的字体文件的路径,应为 "file:// + 字体文件绝对路径" 或 "rawfile/目录or文件名"。 | 353e41f4b71Sopenharmony_ci 354e41f4b71Sopenharmony_ci**示例:** 355e41f4b71Sopenharmony_ci 356e41f4b71Sopenharmony_ci```ts 357e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 358e41f4b71Sopenharmony_ci 359e41f4b71Sopenharmony_cilet fontCollection: text.FontCollection = new text.FontCollection(); 360e41f4b71Sopenharmony_ci 361e41f4b71Sopenharmony_ci@Entry 362e41f4b71Sopenharmony_ci@Component 363e41f4b71Sopenharmony_cistruct RenderTest { 364e41f4b71Sopenharmony_ci LoadFontSyncTest() { 365e41f4b71Sopenharmony_ci fontCollection.loadFontSync('Clock_01', 'file:///system/fonts/HarmonyClock_01.ttf') 366e41f4b71Sopenharmony_ci let fontFamilies: Array<string> = ["Clock_01"] 367e41f4b71Sopenharmony_ci let myTextStyle: text.TextStyle = { 368e41f4b71Sopenharmony_ci fontFamilies: fontFamilies 369e41f4b71Sopenharmony_ci }; 370e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 371e41f4b71Sopenharmony_ci textStyle: myTextStyle, 372e41f4b71Sopenharmony_ci } 373e41f4b71Sopenharmony_ci let paragraphBuilder: text.ParagraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 374e41f4b71Sopenharmony_ci 375e41f4b71Sopenharmony_ci let textData = "测试 loadFontSync 加载字体HarmonyClock_01.ttf"; 376e41f4b71Sopenharmony_ci paragraphBuilder.addText(textData); 377e41f4b71Sopenharmony_ci let paragraph: text.Paragraph = paragraphBuilder.build(); 378e41f4b71Sopenharmony_ci paragraph.layoutSync(600); 379e41f4b71Sopenharmony_ci } 380e41f4b71Sopenharmony_ci 381e41f4b71Sopenharmony_ci aboutToAppear() { 382e41f4b71Sopenharmony_ci this.LoadFontSyncTest(); 383e41f4b71Sopenharmony_ci } 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_ci build() { 386e41f4b71Sopenharmony_ci } 387e41f4b71Sopenharmony_ci} 388e41f4b71Sopenharmony_ci``` 389e41f4b71Sopenharmony_ci 390e41f4b71Sopenharmony_ci### clearCaches 391e41f4b71Sopenharmony_ci 392e41f4b71Sopenharmony_ciclearCaches(): void 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci清理字体排版缓存(字体排版缓存本身设有内存上限和清理机制,所占内存有限,如无内存要求,不建议清理)。 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 397e41f4b71Sopenharmony_ci 398e41f4b71Sopenharmony_ci**示例:** 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ci```ts 401e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 402e41f4b71Sopenharmony_ci 403e41f4b71Sopenharmony_ci@Entry 404e41f4b71Sopenharmony_ci@Component 405e41f4b71Sopenharmony_cistruct Index { 406e41f4b71Sopenharmony_ci build() { 407e41f4b71Sopenharmony_ci Column() { 408e41f4b71Sopenharmony_ci Button().onClick(() => { 409e41f4b71Sopenharmony_ci text.FontCollection.getGlobalInstance().clearCaches(); 410e41f4b71Sopenharmony_ci }) 411e41f4b71Sopenharmony_ci } 412e41f4b71Sopenharmony_ci } 413e41f4b71Sopenharmony_ci} 414e41f4b71Sopenharmony_ci``` 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ci## ParagraphStyle 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_ci段落样式。 419e41f4b71Sopenharmony_ci 420e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 421e41f4b71Sopenharmony_ci 422e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 423e41f4b71Sopenharmony_ci| -------------------- | ------------------------------------------ | ---- | ---- | -------------------------------------------- | 424e41f4b71Sopenharmony_ci| textStyle | [TextStyle](#textstyle) | 是 | 是 | 作用于整个段落的文本样式,默认为初始的TextStyle。| 425e41f4b71Sopenharmony_ci| textDirection | [TextDirection](#textdirection) | 是 | 是 | 文本方向,默认为LTR。 | 426e41f4b71Sopenharmony_ci| align | [TextAlign](#textalign) | 是 | 是 | 文本对齐方式,默认为START。 | 427e41f4b71Sopenharmony_ci| wordBreak | [WordBreak](#wordbreak) | 是 | 是 | 断词类型,默认为BREAK_WORD。 | 428e41f4b71Sopenharmony_ci| maxLines | number | 是 | 是 | 最大行数限制,整数,默认为1e9。 | 429e41f4b71Sopenharmony_ci| breakStrategy | [BreakStrategy](#breakstrategy) | 是 | 是 | 断行策略,默认为GREEDY。 | 430e41f4b71Sopenharmony_ci| strutStyle | [StrutStyle](#strutstyle) | 是 | 是 | 支柱样式,默认为初始的StrutStyle。 | 431e41f4b71Sopenharmony_ci| textHeightBehavior | [TextHeightBehavior](#textheightbehavior) | 是 | 是 | 文本高度修饰符模式,默认为ALL。 | 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci## PlaceholderAlignment 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ci占位符相对于周围文本的纵向的对齐方式。 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 439e41f4b71Sopenharmony_ci 440e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 441e41f4b71Sopenharmony_ci| ------------------- | - | ---------------------- | 442e41f4b71Sopenharmony_ci| OFFSET_AT_BASELINE | 0 | 基线与文本基线对齐。 | 443e41f4b71Sopenharmony_ci| ABOVE_BASELINE | 1 | 将底部与文本基线对齐。 | 444e41f4b71Sopenharmony_ci| BELOW_BASELINE | 2 | 将顶部与文本基线对齐。 | 445e41f4b71Sopenharmony_ci| TOP_OF_ROW_BOX | 3 | 将顶部与文本顶部对齐。 | 446e41f4b71Sopenharmony_ci| BOTTOM_OF_ROW_BOX | 4 | 将底部与文本底部对齐。 | 447e41f4b71Sopenharmony_ci| CENTER_OF_ROW_BOX | 5 | 中线与文本的中线位置对齐。| 448e41f4b71Sopenharmony_ci 449e41f4b71Sopenharmony_ci 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_ci> **说明:** 452e41f4b71Sopenharmony_ci> 453e41f4b71Sopenharmony_ci> 示意图只展示了后三种,前三种与其类似,只不过比较位置变成了文本基线位置,即绿色线条部分。 454e41f4b71Sopenharmony_ci> 455e41f4b71Sopenharmony_ci> 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci## PlaceholderSpan 458e41f4b71Sopenharmony_ci 459e41f4b71Sopenharmony_ci描述占位符样式的载体。 460e41f4b71Sopenharmony_ci 461e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 462e41f4b71Sopenharmony_ci 463e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 464e41f4b71Sopenharmony_ci| -------------- | --------------------------------------------- | ---- | --- | --------------------------- | 465e41f4b71Sopenharmony_ci| width | number | 是 | 否 | 占位符的宽度,浮点数,单位为物理像素px。| 466e41f4b71Sopenharmony_ci| height | number | 是 | 否 | 占位符的高度,浮点数,单位为物理像素px。| 467e41f4b71Sopenharmony_ci| align | [PlaceholderAlignment](#placeholderalignment) | 是 | 否 | 相对于周围文本的纵向的对齐方式。| 468e41f4b71Sopenharmony_ci| baseline | [TextBaseline](#textbaseline) | 是 | 否 | 基线类型。 | 469e41f4b71Sopenharmony_ci| baselineOffset | number | 是 | 否 | 基线偏移量,浮点数,单位为物理像素px。 | 470e41f4b71Sopenharmony_ci 471e41f4b71Sopenharmony_ci## Range 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci描述一个左闭右开的区间。 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 478e41f4b71Sopenharmony_ci| ----- | ------ | ---- | --- | --------------- | 479e41f4b71Sopenharmony_ci| start | number | 是 | 否 | 区间左侧端点索引,整数。| 480e41f4b71Sopenharmony_ci| end | number | 是 | 否 | 区间右侧端点索引,整数。| 481e41f4b71Sopenharmony_ci 482e41f4b71Sopenharmony_ci## Paragraph 483e41f4b71Sopenharmony_ci 484e41f4b71Sopenharmony_ci保存着文本内容以及样式的载体,可以进行排版绘制等操作。 485e41f4b71Sopenharmony_ci 486e41f4b71Sopenharmony_ci下列API示例中都需先使用[ParagraphBuilder](#paragraphbuilder)类的[build()](#build)接口获取到Paragraph对象实例,再通过此实例调用对应方法。 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_ci### layoutSync 489e41f4b71Sopenharmony_ci 490e41f4b71Sopenharmony_cilayoutSync(width: number): void 491e41f4b71Sopenharmony_ci 492e41f4b71Sopenharmony_ci进行排版,计算所有字形的位置。 493e41f4b71Sopenharmony_ci 494e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 495e41f4b71Sopenharmony_ci 496e41f4b71Sopenharmony_ci**参数:** 497e41f4b71Sopenharmony_ci 498e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 499e41f4b71Sopenharmony_ci| ----- | ------ | ---- | -------------- | 500e41f4b71Sopenharmony_ci| width | number | 是 | 单行的最大宽度,浮点数,单位为物理像素px。| 501e41f4b71Sopenharmony_ci 502e41f4b71Sopenharmony_ci**示例:** 503e41f4b71Sopenharmony_ci 504e41f4b71Sopenharmony_ci```ts 505e41f4b71Sopenharmony_ciparagraph.layoutSync(100); 506e41f4b71Sopenharmony_ci``` 507e41f4b71Sopenharmony_ci 508e41f4b71Sopenharmony_ci### paint 509e41f4b71Sopenharmony_ci 510e41f4b71Sopenharmony_cipaint(canvas: drawing.Canvas, x: number, y: number): void 511e41f4b71Sopenharmony_ci 512e41f4b71Sopenharmony_ci在画布上以坐标点 (x, y) 为左上角位置绘制文本。 513e41f4b71Sopenharmony_ci 514e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 515e41f4b71Sopenharmony_ci 516e41f4b71Sopenharmony_ci**参数:** 517e41f4b71Sopenharmony_ci 518e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 519e41f4b71Sopenharmony_ci| ------ | ---------------------------------------------------- | ---- | ---------------------- | 520e41f4b71Sopenharmony_ci| canvas | [drawing.Canvas](js-apis-graphics-drawing.md#canvas) | 是 | 绘制的目标画布。 | 521e41f4b71Sopenharmony_ci| x | number | 是 | 绘制的左上角位置的横坐标,浮点数。| 522e41f4b71Sopenharmony_ci| y | number | 是 | 绘制的左上角位置的纵坐标,浮点数。| 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci**示例:** 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ci```ts 527e41f4b71Sopenharmony_ciconst color: ArrayBuffer = new ArrayBuffer(160000); 528e41f4b71Sopenharmony_cilet opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 } } 529e41f4b71Sopenharmony_cilet pixelMap: image.PixelMap = image.createPixelMapSync(color, opts); 530e41f4b71Sopenharmony_cilet canvas = new drawing.Canvas(pixelMap); 531e41f4b71Sopenharmony_ciparagraph.paint(canvas, 0, 0); 532e41f4b71Sopenharmony_ci``` 533e41f4b71Sopenharmony_ci 534e41f4b71Sopenharmony_ci### paintOnPath 535e41f4b71Sopenharmony_ci 536e41f4b71Sopenharmony_cipaintOnPath(canvas: drawing.Canvas, path: drawing.Path, hOffset: number, vOffset: number): void 537e41f4b71Sopenharmony_ci 538e41f4b71Sopenharmony_ci在画布上沿路径绘制文本。 539e41f4b71Sopenharmony_ci 540e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 541e41f4b71Sopenharmony_ci 542e41f4b71Sopenharmony_ci**参数:** 543e41f4b71Sopenharmony_ci 544e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 545e41f4b71Sopenharmony_ci| ------ | ---------------------------------------------------- | ---- | ---------------------- | 546e41f4b71Sopenharmony_ci| canvas | [drawing.Canvas](js-apis-graphics-drawing.md#canvas) | 是 | 绘制的目标画布。 | 547e41f4b71Sopenharmony_ci| path | [drawing.Path](js-apis-graphics-drawing.md#path) | 是 | 确认文字位置的路径。 | 548e41f4b71Sopenharmony_ci| hOffset | number | 是 | 沿路径方向偏置,从路径起点向前为正,向后为负。| 549e41f4b71Sopenharmony_ci| vOffset | number | 是 | 沿路径垂直方向偏置,沿路径方向左侧为负,右侧为正。| 550e41f4b71Sopenharmony_ci 551e41f4b71Sopenharmony_ci**示例:** 552e41f4b71Sopenharmony_ci 553e41f4b71Sopenharmony_ci```ts 554e41f4b71Sopenharmony_ciconst color: ArrayBuffer = new ArrayBuffer(160000); 555e41f4b71Sopenharmony_cilet opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 } } 556e41f4b71Sopenharmony_cilet pixelMap: image.PixelMap = image.createPixelMapSync(color, opts); 557e41f4b71Sopenharmony_cilet canvas = new drawing.Canvas(pixelMap); 558e41f4b71Sopenharmony_cilet path = new drawing.Path(); 559e41f4b71Sopenharmony_cipath.arcTo(20, 20, 180, 180, 180, 90); 560e41f4b71Sopenharmony_ciparagraph.paintOnPath(canvas, path, 0, 0); 561e41f4b71Sopenharmony_ci``` 562e41f4b71Sopenharmony_ci 563e41f4b71Sopenharmony_ci### getMaxWidth 564e41f4b71Sopenharmony_ci 565e41f4b71Sopenharmony_cigetMaxWidth(): number 566e41f4b71Sopenharmony_ci 567e41f4b71Sopenharmony_ci获取文本最大的行宽。 568e41f4b71Sopenharmony_ci 569e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 570e41f4b71Sopenharmony_ci 571e41f4b71Sopenharmony_ci**返回值:** 572e41f4b71Sopenharmony_ci 573e41f4b71Sopenharmony_ci| 类型 | 说明 | 574e41f4b71Sopenharmony_ci| ------ | --------- | 575e41f4b71Sopenharmony_ci| number | 最大的行宽,浮点数,单位为物理像素px。| 576e41f4b71Sopenharmony_ci 577e41f4b71Sopenharmony_ci**示例:** 578e41f4b71Sopenharmony_ci 579e41f4b71Sopenharmony_ci```ts 580e41f4b71Sopenharmony_cilet maxWidth = paragraph.getMaxWidth(); 581e41f4b71Sopenharmony_ci``` 582e41f4b71Sopenharmony_ci 583e41f4b71Sopenharmony_ci### getHeight 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_cigetHeight(): number 586e41f4b71Sopenharmony_ci 587e41f4b71Sopenharmony_ci获取文本总高度。 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 590e41f4b71Sopenharmony_ci 591e41f4b71Sopenharmony_ci**返回值:** 592e41f4b71Sopenharmony_ci 593e41f4b71Sopenharmony_ci| 类型 | 说明 | 594e41f4b71Sopenharmony_ci| ------ | ----- | 595e41f4b71Sopenharmony_ci| number | 总高度,浮点数,单位为物理像素px。| 596e41f4b71Sopenharmony_ci 597e41f4b71Sopenharmony_ci**示例:** 598e41f4b71Sopenharmony_ci 599e41f4b71Sopenharmony_ci```ts 600e41f4b71Sopenharmony_cilet height = paragraph.getHeight(); 601e41f4b71Sopenharmony_ci``` 602e41f4b71Sopenharmony_ci 603e41f4b71Sopenharmony_ci### getLongestLine 604e41f4b71Sopenharmony_ci 605e41f4b71Sopenharmony_cigetLongestLine(): number 606e41f4b71Sopenharmony_ci 607e41f4b71Sopenharmony_ci获取文本最长一行的宽度。 608e41f4b71Sopenharmony_ci 609e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 610e41f4b71Sopenharmony_ci 611e41f4b71Sopenharmony_ci**返回值:** 612e41f4b71Sopenharmony_ci 613e41f4b71Sopenharmony_ci| 类型 | 说明 | 614e41f4b71Sopenharmony_ci| ------ | ------------- | 615e41f4b71Sopenharmony_ci| number | 最长一行的宽度,浮点数,单位为物理像素px。| 616e41f4b71Sopenharmony_ci 617e41f4b71Sopenharmony_ci**示例:** 618e41f4b71Sopenharmony_ci 619e41f4b71Sopenharmony_ci```ts 620e41f4b71Sopenharmony_cilet longestLine = paragraph.getLongestLine(); 621e41f4b71Sopenharmony_ci``` 622e41f4b71Sopenharmony_ci 623e41f4b71Sopenharmony_ci### getLongestLineWithIndent<sup>13+</sup> 624e41f4b71Sopenharmony_ci 625e41f4b71Sopenharmony_cigetLongestLineWithIndent(): number 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_ci获取文本最长一行的宽度(该宽度包含当前行缩进的宽度),建议实际使用时将返回值向上取整。当文本内容为空时,返回0。 628e41f4b71Sopenharmony_ci 629e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 630e41f4b71Sopenharmony_ci 631e41f4b71Sopenharmony_ci**返回值:** 632e41f4b71Sopenharmony_ci 633e41f4b71Sopenharmony_ci| 类型 | 说明 | 634e41f4b71Sopenharmony_ci| ------ | ------------- | 635e41f4b71Sopenharmony_ci| number | 最长一行的宽度(该宽度包含当前行缩进的宽度),浮点数,单位为物理像素px。| 636e41f4b71Sopenharmony_ci 637e41f4b71Sopenharmony_ci**示例:** 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci```ts 640e41f4b71Sopenharmony_cilet longestLineWithIndent = paragraph.getLongestLineWithIndent(); 641e41f4b71Sopenharmony_ci``` 642e41f4b71Sopenharmony_ci 643e41f4b71Sopenharmony_ci### getMinIntrinsicWidth 644e41f4b71Sopenharmony_ci 645e41f4b71Sopenharmony_cigetMinIntrinsicWidth(): number 646e41f4b71Sopenharmony_ci 647e41f4b71Sopenharmony_ci获取该段落所占水平空间的最小固有宽度。 648e41f4b71Sopenharmony_ci 649e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 650e41f4b71Sopenharmony_ci 651e41f4b71Sopenharmony_ci**返回值:** 652e41f4b71Sopenharmony_ci 653e41f4b71Sopenharmony_ci| 类型 | 说明 | 654e41f4b71Sopenharmony_ci| ------ | ----------------------------- | 655e41f4b71Sopenharmony_ci| number | 该段落所占水平空间的最小固有宽度,浮点数,单位为物理像素px。| 656e41f4b71Sopenharmony_ci 657e41f4b71Sopenharmony_ci**示例:** 658e41f4b71Sopenharmony_ci 659e41f4b71Sopenharmony_ci```ts 660e41f4b71Sopenharmony_cilet minIntrinsicWidth = paragraph.getMinIntrinsicWidth(); 661e41f4b71Sopenharmony_ci``` 662e41f4b71Sopenharmony_ci 663e41f4b71Sopenharmony_ci### getMaxIntrinsicWidth 664e41f4b71Sopenharmony_ci 665e41f4b71Sopenharmony_cigetMaxIntrinsicWidth(): number 666e41f4b71Sopenharmony_ci 667e41f4b71Sopenharmony_ci获取该段落所占水平空间的最大固有宽度。 668e41f4b71Sopenharmony_ci 669e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ci**返回值:** 672e41f4b71Sopenharmony_ci 673e41f4b71Sopenharmony_ci| 类型 | 说明 | 674e41f4b71Sopenharmony_ci| ------ | ----------------------------- | 675e41f4b71Sopenharmony_ci| number | 该段落所占水平空间的最大固有宽度,浮点数,单位为物理像素px。| 676e41f4b71Sopenharmony_ci 677e41f4b71Sopenharmony_ci**示例:** 678e41f4b71Sopenharmony_ci 679e41f4b71Sopenharmony_ci```ts 680e41f4b71Sopenharmony_cilet maxIntrinsicWidth = paragraph.getMaxIntrinsicWidth(); 681e41f4b71Sopenharmony_ci``` 682e41f4b71Sopenharmony_ci 683e41f4b71Sopenharmony_ci### getAlphabeticBaseline 684e41f4b71Sopenharmony_ci 685e41f4b71Sopenharmony_cigetAlphabeticBaseline(): number 686e41f4b71Sopenharmony_ci 687e41f4b71Sopenharmony_ci获取拉丁字母下的基线位置。 688e41f4b71Sopenharmony_ci 689e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 690e41f4b71Sopenharmony_ci 691e41f4b71Sopenharmony_ci**返回值:** 692e41f4b71Sopenharmony_ci 693e41f4b71Sopenharmony_ci| 类型 | 说明 | 694e41f4b71Sopenharmony_ci| ------ | ------------------ | 695e41f4b71Sopenharmony_ci| number | 拉丁字母下的基线位置,浮点数,单位为物理像素px。| 696e41f4b71Sopenharmony_ci 697e41f4b71Sopenharmony_ci**示例:** 698e41f4b71Sopenharmony_ci 699e41f4b71Sopenharmony_ci```ts 700e41f4b71Sopenharmony_cilet alphabeticBaseline = paragraph.getAlphabeticBaseline(); 701e41f4b71Sopenharmony_ci``` 702e41f4b71Sopenharmony_ci 703e41f4b71Sopenharmony_ci### getIdeographicBaseline 704e41f4b71Sopenharmony_ci 705e41f4b71Sopenharmony_cigetIdeographicBaseline(): number 706e41f4b71Sopenharmony_ci 707e41f4b71Sopenharmony_ci获取表意字(如CJK(中文,日文,韩文))下的基线位置。 708e41f4b71Sopenharmony_ci 709e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 710e41f4b71Sopenharmony_ci 711e41f4b71Sopenharmony_ci**返回值:** 712e41f4b71Sopenharmony_ci 713e41f4b71Sopenharmony_ci| 类型 | 说明 | 714e41f4b71Sopenharmony_ci| ------ | -------------------- | 715e41f4b71Sopenharmony_ci| number | 获取表意字下的基线位置,浮点数,单位为物理像素px。| 716e41f4b71Sopenharmony_ci 717e41f4b71Sopenharmony_ci**示例:** 718e41f4b71Sopenharmony_ci 719e41f4b71Sopenharmony_ci```ts 720e41f4b71Sopenharmony_cilet ideographicBaseline = paragraph.getIdeographicBaseline(); 721e41f4b71Sopenharmony_ci``` 722e41f4b71Sopenharmony_ci 723e41f4b71Sopenharmony_ci### getRectsForRange 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_cigetRectsForRange(range: Range, widthStyle: RectWidthStyle, heightStyle: RectHeightStyle): Array\<TextBox> 726e41f4b71Sopenharmony_ci 727e41f4b71Sopenharmony_ci获取给定的矩形区域宽度以及矩形区域高度的规格下,文本中该区间范围内的字符的所占的矩形区域。 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 730e41f4b71Sopenharmony_ci 731e41f4b71Sopenharmony_ci**参数:** 732e41f4b71Sopenharmony_ci 733e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 734e41f4b71Sopenharmony_ci| ----------- | ----------------------------------- | ---- | ------------------------ | 735e41f4b71Sopenharmony_ci| range | [Range](#range) | 是 | 需要获取的区域的文本区间。 | 736e41f4b71Sopenharmony_ci| widthStyle | [RectWidthStyle](#rectwidthstyle) | 是 | 返回的矩形区域的宽度的规格。| 737e41f4b71Sopenharmony_ci| heightStyle | [RectHeightStyle](#rectheightstyle) | 是 | 返回的矩形区域的高度的规格。| 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci**返回值:** 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ci| 类型 | 说明 | 742e41f4b71Sopenharmony_ci| --------------------------- | ----------- | 743e41f4b71Sopenharmony_ci| Array\<[TextBox](#textbox)> | 矩形区域数组。| 744e41f4b71Sopenharmony_ci 745e41f4b71Sopenharmony_ci**示例:** 746e41f4b71Sopenharmony_ci 747e41f4b71Sopenharmony_ci```ts 748e41f4b71Sopenharmony_cilet range: text.Range = { start: 0, end: 1}; 749e41f4b71Sopenharmony_cilet rects = paragraph.getRectsForRange(range, text.RectWidthStyle.TIGHT, text.RectHeightStyle.TIGHT); 750e41f4b71Sopenharmony_ci``` 751e41f4b71Sopenharmony_ci 752e41f4b71Sopenharmony_ci### getRectsForPlaceholders 753e41f4b71Sopenharmony_ci 754e41f4b71Sopenharmony_cigetRectsForPlaceholders(): Array\<TextBox> 755e41f4b71Sopenharmony_ci 756e41f4b71Sopenharmony_ci获取文本中所有占位符所占的矩形区域。 757e41f4b71Sopenharmony_ci 758e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 759e41f4b71Sopenharmony_ci 760e41f4b71Sopenharmony_ci**返回值:** 761e41f4b71Sopenharmony_ci 762e41f4b71Sopenharmony_ci| 类型 | 说明 | 763e41f4b71Sopenharmony_ci| --------------------------- | ----------- | 764e41f4b71Sopenharmony_ci| Array\<[TextBox](#textbox)> | 矩形区域数组。| 765e41f4b71Sopenharmony_ci 766e41f4b71Sopenharmony_ci**示例:** 767e41f4b71Sopenharmony_ci 768e41f4b71Sopenharmony_ci```ts 769e41f4b71Sopenharmony_cilet placeholderRects = paragraph.getRectsForPlaceholders(); 770e41f4b71Sopenharmony_ci``` 771e41f4b71Sopenharmony_ci 772e41f4b71Sopenharmony_ci### getGlyphPositionAtCoordinate 773e41f4b71Sopenharmony_ci 774e41f4b71Sopenharmony_cigetGlyphPositionAtCoordinate(x: number, y: number): PositionWithAffinity 775e41f4b71Sopenharmony_ci 776e41f4b71Sopenharmony_ci获取较为接近给定坐标的字形的位置信息。 777e41f4b71Sopenharmony_ci 778e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 779e41f4b71Sopenharmony_ci 780e41f4b71Sopenharmony_ci**参数:** 781e41f4b71Sopenharmony_ci 782e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 783e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ------ | 784e41f4b71Sopenharmony_ci| x | number | 是 | 横坐标,浮点数。| 785e41f4b71Sopenharmony_ci| y | number | 是 | 纵坐标,浮点数。| 786e41f4b71Sopenharmony_ci 787e41f4b71Sopenharmony_ci**返回值:** 788e41f4b71Sopenharmony_ci 789e41f4b71Sopenharmony_ci| 类型 | 说明 | 790e41f4b71Sopenharmony_ci| --------------------------------------------- | ----------- | 791e41f4b71Sopenharmony_ci| [PositionWithAffinity](#positionwithaffinity) | 字形位置信息。| 792e41f4b71Sopenharmony_ci 793e41f4b71Sopenharmony_ci**示例:** 794e41f4b71Sopenharmony_ci 795e41f4b71Sopenharmony_ci```ts 796e41f4b71Sopenharmony_cilet positionWithAffinity = paragraph.getGlyphPositionAtCoordinate(0, 0); 797e41f4b71Sopenharmony_ci``` 798e41f4b71Sopenharmony_ci 799e41f4b71Sopenharmony_ci### getWordBoundary 800e41f4b71Sopenharmony_ci 801e41f4b71Sopenharmony_cigetWordBoundary(offset: number): Range 802e41f4b71Sopenharmony_ci 803e41f4b71Sopenharmony_ci返回给定的 offset 的字形所处的单词的索引区间。 804e41f4b71Sopenharmony_ci 805e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 806e41f4b71Sopenharmony_ci 807e41f4b71Sopenharmony_ci**参数:** 808e41f4b71Sopenharmony_ci 809e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 810e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------- | 811e41f4b71Sopenharmony_ci| offset | number | 是 | 字形的偏移量,整数。| 812e41f4b71Sopenharmony_ci 813e41f4b71Sopenharmony_ci**返回值:** 814e41f4b71Sopenharmony_ci 815e41f4b71Sopenharmony_ci| 类型 | 说明 | 816e41f4b71Sopenharmony_ci| --------------- | -------------- | 817e41f4b71Sopenharmony_ci| [Range](#range) | 单词的索引区间。| 818e41f4b71Sopenharmony_ci 819e41f4b71Sopenharmony_ci**示例:** 820e41f4b71Sopenharmony_ci 821e41f4b71Sopenharmony_ci```ts 822e41f4b71Sopenharmony_cilet wordRange = paragraph.getWordBoundary(0); 823e41f4b71Sopenharmony_ci``` 824e41f4b71Sopenharmony_ci 825e41f4b71Sopenharmony_ci### getLineCount 826e41f4b71Sopenharmony_ci 827e41f4b71Sopenharmony_cigetLineCount(): number 828e41f4b71Sopenharmony_ci 829e41f4b71Sopenharmony_ci返回文本行数量。 830e41f4b71Sopenharmony_ci 831e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 832e41f4b71Sopenharmony_ci 833e41f4b71Sopenharmony_ci**返回值:** 834e41f4b71Sopenharmony_ci 835e41f4b71Sopenharmony_ci| 类型 | 说明 | 836e41f4b71Sopenharmony_ci| ------ | --------- | 837e41f4b71Sopenharmony_ci| number | 文本行数量,整数。| 838e41f4b71Sopenharmony_ci 839e41f4b71Sopenharmony_ci**示例:** 840e41f4b71Sopenharmony_ci 841e41f4b71Sopenharmony_ci```ts 842e41f4b71Sopenharmony_cilet lineCount = paragraph.getLineCount(); 843e41f4b71Sopenharmony_ci``` 844e41f4b71Sopenharmony_ci 845e41f4b71Sopenharmony_ci### getLineHeight 846e41f4b71Sopenharmony_ci 847e41f4b71Sopenharmony_cigetLineHeight(line: number): number 848e41f4b71Sopenharmony_ci 849e41f4b71Sopenharmony_ci返回指定行索引的行高。 850e41f4b71Sopenharmony_ci 851e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 852e41f4b71Sopenharmony_ci 853e41f4b71Sopenharmony_ci**参数:** 854e41f4b71Sopenharmony_ci 855e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 856e41f4b71Sopenharmony_ci| ----- | ------ | ---- | --------- | 857e41f4b71Sopenharmony_ci| line | number | 是 | 文本行索引,整数。| 858e41f4b71Sopenharmony_ci 859e41f4b71Sopenharmony_ci**返回值:** 860e41f4b71Sopenharmony_ci 861e41f4b71Sopenharmony_ci| 类型 | 说明 | 862e41f4b71Sopenharmony_ci| ------ | ---- | 863e41f4b71Sopenharmony_ci| number | 行高。| 864e41f4b71Sopenharmony_ci 865e41f4b71Sopenharmony_ci**示例:** 866e41f4b71Sopenharmony_ci 867e41f4b71Sopenharmony_ci```ts 868e41f4b71Sopenharmony_cilet lineHeight = paragraph.getLineHeight(0); 869e41f4b71Sopenharmony_ci``` 870e41f4b71Sopenharmony_ci 871e41f4b71Sopenharmony_ci### getLineWidth 872e41f4b71Sopenharmony_ci 873e41f4b71Sopenharmony_cigetLineWidth(line: number): number 874e41f4b71Sopenharmony_ci 875e41f4b71Sopenharmony_ci返回指定行索引的行宽。 876e41f4b71Sopenharmony_ci 877e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 878e41f4b71Sopenharmony_ci 879e41f4b71Sopenharmony_ci**参数:** 880e41f4b71Sopenharmony_ci 881e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 882e41f4b71Sopenharmony_ci| ----- | ------ | ---- | --------- | 883e41f4b71Sopenharmony_ci| line | number | 是 | 文本行索引,整数。| 884e41f4b71Sopenharmony_ci 885e41f4b71Sopenharmony_ci**返回值:** 886e41f4b71Sopenharmony_ci 887e41f4b71Sopenharmony_ci| 类型 | 说明 | 888e41f4b71Sopenharmony_ci| ------ | ---- | 889e41f4b71Sopenharmony_ci| number | 行宽。| 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ci**示例:** 892e41f4b71Sopenharmony_ci 893e41f4b71Sopenharmony_ci```ts 894e41f4b71Sopenharmony_cilet lineWidth = paragraph.getLineWidth(0); 895e41f4b71Sopenharmony_ci``` 896e41f4b71Sopenharmony_ci 897e41f4b71Sopenharmony_ci### didExceedMaxLines 898e41f4b71Sopenharmony_ci 899e41f4b71Sopenharmony_cididExceedMaxLines(): boolean 900e41f4b71Sopenharmony_ci 901e41f4b71Sopenharmony_ci返回段落是否超过最大行限制。 902e41f4b71Sopenharmony_ci 903e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 904e41f4b71Sopenharmony_ci 905e41f4b71Sopenharmony_ci**返回值:** 906e41f4b71Sopenharmony_ci 907e41f4b71Sopenharmony_ci| 类型 | 说明 | 908e41f4b71Sopenharmony_ci| ------- | -------------------------------------------------------- | 909e41f4b71Sopenharmony_ci| boolean | true表示段落超出了最大行限制,false则表示没有超出最大行限制。 | 910e41f4b71Sopenharmony_ci 911e41f4b71Sopenharmony_ci**示例:** 912e41f4b71Sopenharmony_ci 913e41f4b71Sopenharmony_ci```ts 914e41f4b71Sopenharmony_cilet didExceed = paragraph.didExceedMaxLines(); 915e41f4b71Sopenharmony_ci``` 916e41f4b71Sopenharmony_ci 917e41f4b71Sopenharmony_ci### getTextLines 918e41f4b71Sopenharmony_ci 919e41f4b71Sopenharmony_cigetTextLines(): Array\<TextLine> 920e41f4b71Sopenharmony_ci 921e41f4b71Sopenharmony_ci返回所有的文本行载体。 922e41f4b71Sopenharmony_ci 923e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 924e41f4b71Sopenharmony_ci 925e41f4b71Sopenharmony_ci**返回值:** 926e41f4b71Sopenharmony_ci 927e41f4b71Sopenharmony_ci| 类型 | 说明 | 928e41f4b71Sopenharmony_ci| ----------------------------- | ------------- | 929e41f4b71Sopenharmony_ci| Array\<[TextLine](#textline)> | 文本行载体数组。| 930e41f4b71Sopenharmony_ci 931e41f4b71Sopenharmony_ci**示例:** 932e41f4b71Sopenharmony_ci 933e41f4b71Sopenharmony_ci```ts 934e41f4b71Sopenharmony_cilet lines = paragraph.getTextLines(); 935e41f4b71Sopenharmony_ci``` 936e41f4b71Sopenharmony_ci 937e41f4b71Sopenharmony_ci### getActualTextRange 938e41f4b71Sopenharmony_ci 939e41f4b71Sopenharmony_cigetActualTextRange(lineNumber: number, includeSpaces: boolean): Range 940e41f4b71Sopenharmony_ci 941e41f4b71Sopenharmony_ci获取指定行号上的实际可见文本范围,这不包括由于文本溢出而显示的省略号。 942e41f4b71Sopenharmony_ci 943e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 944e41f4b71Sopenharmony_ci 945e41f4b71Sopenharmony_ci**参数:** 946e41f4b71Sopenharmony_ci 947e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 948e41f4b71Sopenharmony_ci| ----- | ------ | ---- | --------- | 949e41f4b71Sopenharmony_ci| lineNumber | number | 是 | 要获取文本范围的行号,行号从0开始。| 950e41f4b71Sopenharmony_ci| includeSpaces | boolean | 是 | 指示是否应包含空白字符。true表示包含空白字符,false表示不包含空白字符。| 951e41f4b71Sopenharmony_ci 952e41f4b71Sopenharmony_ci**返回值:** 953e41f4b71Sopenharmony_ci 954e41f4b71Sopenharmony_ci| 类型 | 说明 | 955e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------ | 956e41f4b71Sopenharmony_ci| [Range](#range) | 表明了对应行数的实际文本范围。 | 957e41f4b71Sopenharmony_ci 958e41f4b71Sopenharmony_ci**示例:** 959e41f4b71Sopenharmony_ci 960e41f4b71Sopenharmony_ci```ts 961e41f4b71Sopenharmony_cilet rang = paragraph.getActualTextRange(0, true); 962e41f4b71Sopenharmony_ci``` 963e41f4b71Sopenharmony_ci 964e41f4b71Sopenharmony_ci 965e41f4b71Sopenharmony_ci### getLineMetrics 966e41f4b71Sopenharmony_ci 967e41f4b71Sopenharmony_cigetLineMetrics(): Array\<LineMetrics> 968e41f4b71Sopenharmony_ci 969e41f4b71Sopenharmony_ci获取文本行的行度量数组。 970e41f4b71Sopenharmony_ci 971e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 972e41f4b71Sopenharmony_ci 973e41f4b71Sopenharmony_ci**返回值:** 974e41f4b71Sopenharmony_ci 975e41f4b71Sopenharmony_ci| 类型 | 说明 | 976e41f4b71Sopenharmony_ci| ----------------------------- | ------------- | 977e41f4b71Sopenharmony_ci| Array\<[LineMetrics](#linemetrics)> | 文本行的行度量数组。| 978e41f4b71Sopenharmony_ci 979e41f4b71Sopenharmony_ci**示例:** 980e41f4b71Sopenharmony_ci 981e41f4b71Sopenharmony_ci```ts 982e41f4b71Sopenharmony_cilet arrLineMetrc = paragraph.getLineMetrics(); 983e41f4b71Sopenharmony_ci``` 984e41f4b71Sopenharmony_ci 985e41f4b71Sopenharmony_ci### getLineMetrics 986e41f4b71Sopenharmony_ci 987e41f4b71Sopenharmony_cigetLineMetrics(lineNumber: number): LineMetrics | undefined 988e41f4b71Sopenharmony_ci 989e41f4b71Sopenharmony_ci获取特定行号的行度量信息。 990e41f4b71Sopenharmony_ci 991e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 992e41f4b71Sopenharmony_ci 993e41f4b71Sopenharmony_ci**参数:** 994e41f4b71Sopenharmony_ci 995e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 996e41f4b71Sopenharmony_ci| ----- | ------ | ---- | --------- | 997e41f4b71Sopenharmony_ci| lineNumber | number | 是 | 要查询度量信息的行的编号, 行号从0开始。| 998e41f4b71Sopenharmony_ci 999e41f4b71Sopenharmony_ci**返回值:** 1000e41f4b71Sopenharmony_ci 1001e41f4b71Sopenharmony_ci| 类型 | 说明 | 1002e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------ | 1003e41f4b71Sopenharmony_ci| [LineMetrics](#linemetrics) | 如果指定的行号有效且度量信息存在,则返回一个包含该行度量数据的LineMetrics对象;如果行号无效或无法获取度量信息,则返回undefined。 | 1004e41f4b71Sopenharmony_ci 1005e41f4b71Sopenharmony_ci**示例:** 1006e41f4b71Sopenharmony_ci 1007e41f4b71Sopenharmony_ci```ts 1008e41f4b71Sopenharmony_cilet lineMetrics = paragraph.getLineMetrics(0); 1009e41f4b71Sopenharmony_ci``` 1010e41f4b71Sopenharmony_ci 1011e41f4b71Sopenharmony_ci## RunMetrics 1012e41f4b71Sopenharmony_ci 1013e41f4b71Sopenharmony_ci描述文本行中连续文本块的布局信息和度量数据。 1014e41f4b71Sopenharmony_ci 1015e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 1016e41f4b71Sopenharmony_ci 1017e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 1018e41f4b71Sopenharmony_ci| --------- | -------------------------------------------------- | ---- | ---- | ----------- | 1019e41f4b71Sopenharmony_ci| textStyle | [TextStyle](#textstyle) | 是 | 否 | 字体的样式信息。| 1020e41f4b71Sopenharmony_ci| fontMetrics | [drawing.FontMetrics](js-apis-graphics-drawing.md#fontmetrics)| 是 | 否 | 字体度量信息。 | 1021e41f4b71Sopenharmony_ci 1022e41f4b71Sopenharmony_ci## LineMetrics 1023e41f4b71Sopenharmony_ci 1024e41f4b71Sopenharmony_ci用于描述文本布局中单行文字的度量信息。 1025e41f4b71Sopenharmony_ci 1026e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 1027e41f4b71Sopenharmony_ci 1028e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 1029e41f4b71Sopenharmony_ci| --------- | -------------------------------------------------- | ---- | ---- | ----------- | 1030e41f4b71Sopenharmony_ci| startIndex | number | 是 | 否 | 文本缓冲区中该行开始的索引位置。| 1031e41f4b71Sopenharmony_ci| endIndex | number | 是 | 否 | 文本缓冲区中该行结束的索引位置。| 1032e41f4b71Sopenharmony_ci| ascent | number | 是 | 否 | 文字上升高度,即从基线到字符顶部的距离。| 1033e41f4b71Sopenharmony_ci| descent | number | 是 | 否 | 文字下降高度,即从基线到字符底部的距离。| 1034e41f4b71Sopenharmony_ci| height | number | 是 | 否 | 当前行的高度,计算方式为 `Math.round(ascent + descent)`| 1035e41f4b71Sopenharmony_ci| width | number | 是 | 否 | 行的宽度。 | 1036e41f4b71Sopenharmony_ci| left | number | 是 | 否 | 行的左边缘位置。右边缘可通过 `left+width` 计算得出。| 1037e41f4b71Sopenharmony_ci| baseline | number | 是 | 否 | 该行基线相对于段落顶部的 Y 坐标位置。| 1038e41f4b71Sopenharmony_ci| lineNumber | number | 是 | 否 | 行号,从0开始计数。| 1039e41f4b71Sopenharmony_ci| topHeight | number | 是 | 否 | 从顶部到当前行的高度。| 1040e41f4b71Sopenharmony_ci| runMetrics | Map<number, [RunMetrics](#runmetrics)> | 是 | 否 | 文本索引范围与关联的字体度量信息之间的映射。| 1041e41f4b71Sopenharmony_ci 1042e41f4b71Sopenharmony_ci## TextBox 1043e41f4b71Sopenharmony_ci 1044e41f4b71Sopenharmony_ci文本矩形区域。 1045e41f4b71Sopenharmony_ci 1046e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 1047e41f4b71Sopenharmony_ci 1048e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 1049e41f4b71Sopenharmony_ci| --------- | -------------------------------------------------- | ---- | ---- | ----------- | 1050e41f4b71Sopenharmony_ci| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 否 | 矩形区域信息。| 1051e41f4b71Sopenharmony_ci| direction | [TextDirection](#textdirection) | 是 | 否 | 文本方向。 | 1052e41f4b71Sopenharmony_ci 1053e41f4b71Sopenharmony_ci## PositionWithAffinity 1054e41f4b71Sopenharmony_ci 1055e41f4b71Sopenharmony_ci位置以及亲和度。 1056e41f4b71Sopenharmony_ci 1057e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 1058e41f4b71Sopenharmony_ci 1059e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 1060e41f4b71Sopenharmony_ci| --------- | --------------------- | ---- | ---- | ------------------------ | 1061e41f4b71Sopenharmony_ci| position | number | 是 | 否 | 字形相对于段落的索引,整数。 | 1062e41f4b71Sopenharmony_ci| affinity | [Affinity](#affinity) | 是 | 否 | 位置亲和度。 | 1063e41f4b71Sopenharmony_ci 1064e41f4b71Sopenharmony_ci## RectWidthStyle 1065e41f4b71Sopenharmony_ci 1066e41f4b71Sopenharmony_ci矩形区域宽度规格枚举。 1067e41f4b71Sopenharmony_ci 1068e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 1069e41f4b71Sopenharmony_ci 1070e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1071e41f4b71Sopenharmony_ci| ----- | - | -------------------------------------- | 1072e41f4b71Sopenharmony_ci| TIGHT | 0 | 不设置letterSpacing时,与字形紧贴,否则包含letterSpacing。 | 1073e41f4b71Sopenharmony_ci| MAX | 1 | 扩展宽度,以匹配所有行上最宽矩形的位置。 | 1074e41f4b71Sopenharmony_ci 1075e41f4b71Sopenharmony_ci## RectHeightStyle 1076e41f4b71Sopenharmony_ci 1077e41f4b71Sopenharmony_ci矩形区域高度规格枚举。 1078e41f4b71Sopenharmony_ci 1079e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 1080e41f4b71Sopenharmony_ci 1081e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1082e41f4b71Sopenharmony_ci| ------------------------- | - | ---------------------------------------------- | 1083e41f4b71Sopenharmony_ci| TIGHT | 0 | 与字形紧贴。 | 1084e41f4b71Sopenharmony_ci| MAX | 1 | 扩展高度,以匹配所有行上最高矩形的位置。 | 1085e41f4b71Sopenharmony_ci| INCLUDE_LINE_SPACE_MIDDLE | 2 | 每个矩形的顶部和底部将覆盖行上方和行下方的一半空间。| 1086e41f4b71Sopenharmony_ci| INCLUDE_LINE_SPACE_TOP | 3 | 行间距将被添加到矩形的顶部。 | 1087e41f4b71Sopenharmony_ci| INCLUDE_LINE_SPACE_BOTTOM | 4 | 行间距将被添加到矩形的底部。 | 1088e41f4b71Sopenharmony_ci| STRUT | 5 | 高度按照文本的样式设置。 | 1089e41f4b71Sopenharmony_ci 1090e41f4b71Sopenharmony_ci## Affinity 1091e41f4b71Sopenharmony_ci 1092e41f4b71Sopenharmony_ci位置亲和度枚举。 1093e41f4b71Sopenharmony_ci 1094e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphics.Drawing 1095e41f4b71Sopenharmony_ci 1096e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1097e41f4b71Sopenharmony_ci| ---------- | - | ----------------------------- | 1098e41f4b71Sopenharmony_ci| UPSTREAM | 0 | 该位置与文本位置的前一位有关联。 | 1099e41f4b71Sopenharmony_ci| DOWNSTREAM | 1 | 该位置与文本位置的后一位有关联。 | 1100e41f4b71Sopenharmony_ci 1101e41f4b71Sopenharmony_ci## ParagraphBuilder 1102e41f4b71Sopenharmony_ci 1103e41f4b71Sopenharmony_ci段落生成器。 1104e41f4b71Sopenharmony_ci 1105e41f4b71Sopenharmony_ci### constructor 1106e41f4b71Sopenharmony_ci 1107e41f4b71Sopenharmony_ciconstructor(paragraphStyle: ParagraphStyle, fontCollection: FontCollection) 1108e41f4b71Sopenharmony_ci 1109e41f4b71Sopenharmony_ciParagraphBuilder对象的构造函数。 1110e41f4b71Sopenharmony_ci 1111e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1112e41f4b71Sopenharmony_ci 1113e41f4b71Sopenharmony_ci**参数:** 1114e41f4b71Sopenharmony_ci 1115e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1116e41f4b71Sopenharmony_ci| -------------- | --------------------------------- | ---- | ----------- | 1117e41f4b71Sopenharmony_ci| paragraphStyle | [ParagraphStyle](#paragraphstyle) | 是 | 段落样式。 | 1118e41f4b71Sopenharmony_ci| fontCollection | [FontCollection](#fontcollection) | 是 | 字体管理器。 | 1119e41f4b71Sopenharmony_ci 1120e41f4b71Sopenharmony_ci**示例:** 1121e41f4b71Sopenharmony_ci 1122e41f4b71Sopenharmony_ci```ts 1123e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D"; 1124e41f4b71Sopenharmony_ci 1125e41f4b71Sopenharmony_cifunction textFunc() { 1126e41f4b71Sopenharmony_ci let myTextStyle: text.TextStyle = { 1127e41f4b71Sopenharmony_ci color: { alpha: 255, red: 255, green: 0, blue: 0 }, 1128e41f4b71Sopenharmony_ci fontSize: 33, 1129e41f4b71Sopenharmony_ci }; 1130e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 1131e41f4b71Sopenharmony_ci textStyle: myTextStyle, 1132e41f4b71Sopenharmony_ci align: text.TextAlign.END, 1133e41f4b71Sopenharmony_ci }; 1134e41f4b71Sopenharmony_ci let fontCollection = new text.FontCollection(); 1135e41f4b71Sopenharmony_ci let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 1136e41f4b71Sopenharmony_ci} 1137e41f4b71Sopenharmony_ci 1138e41f4b71Sopenharmony_ci@Entry 1139e41f4b71Sopenharmony_ci@Component 1140e41f4b71Sopenharmony_cistruct Index { 1141e41f4b71Sopenharmony_ci fun: Function = textFunc; 1142e41f4b71Sopenharmony_ci build() { 1143e41f4b71Sopenharmony_ci Column() { 1144e41f4b71Sopenharmony_ci Button().onClick(() => { 1145e41f4b71Sopenharmony_ci this.fun(); 1146e41f4b71Sopenharmony_ci }) 1147e41f4b71Sopenharmony_ci } 1148e41f4b71Sopenharmony_ci } 1149e41f4b71Sopenharmony_ci} 1150e41f4b71Sopenharmony_ci``` 1151e41f4b71Sopenharmony_ci 1152e41f4b71Sopenharmony_ci### pushStyle 1153e41f4b71Sopenharmony_ci 1154e41f4b71Sopenharmony_ci pushStyle(textStyle: TextStyle): void 1155e41f4b71Sopenharmony_ci 1156e41f4b71Sopenharmony_ci更新文本样式。 1157e41f4b71Sopenharmony_ci 1158e41f4b71Sopenharmony_ci> **说明:** 1159e41f4b71Sopenharmony_ci> 1160e41f4b71Sopenharmony_ci> 更新当前文本块的样式 ,直到对应的 [popStyle](#popstyle) 操作被执行,会还原到上一个文本样式。 1161e41f4b71Sopenharmony_ci 1162e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1163e41f4b71Sopenharmony_ci 1164e41f4b71Sopenharmony_ci**参数:** 1165e41f4b71Sopenharmony_ci 1166e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1167e41f4b71Sopenharmony_ci| --------- | --------- | ---- | ------------------------------------------------------------------------------------------------------ | 1168e41f4b71Sopenharmony_ci| textStyle | [TextStyle](#textstyle) | 是 | 包含了对文本的各种视觉属性的定义,如字体、字号、颜色、字重、字间距、行距、装饰(如下划线、删除线)、文本阴影等。 | 1169e41f4b71Sopenharmony_ci 1170e41f4b71Sopenharmony_ci**示例:** 1171e41f4b71Sopenharmony_ci 1172e41f4b71Sopenharmony_ci```ts 1173e41f4b71Sopenharmony_ciimport { drawing } from '@kit.ArkGraphics2D' 1174e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1175e41f4b71Sopenharmony_ciimport { common2D } from "@kit.ArkGraphics2D" 1176e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1177e41f4b71Sopenharmony_ci 1178e41f4b71Sopenharmony_cifunction textFunc() { 1179e41f4b71Sopenharmony_ci let myTextStyle: text.TextStyle = { 1180e41f4b71Sopenharmony_ci color: { alpha: 255, red: 255, green: 0, blue: 0 }, 1181e41f4b71Sopenharmony_ci fontSize: 33, 1182e41f4b71Sopenharmony_ci }; 1183e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 1184e41f4b71Sopenharmony_ci textStyle: myTextStyle, 1185e41f4b71Sopenharmony_ci align: text.TextAlign.CENTER, 1186e41f4b71Sopenharmony_ci }; 1187e41f4b71Sopenharmony_ci let fontCollection = new text.FontCollection(); 1188e41f4b71Sopenharmony_ci let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 1189e41f4b71Sopenharmony_ci ParagraphGraphBuilder.pushStyle(myTextStyle); 1190e41f4b71Sopenharmony_ci} 1191e41f4b71Sopenharmony_ci 1192e41f4b71Sopenharmony_ci@Entry 1193e41f4b71Sopenharmony_ci@Component 1194e41f4b71Sopenharmony_cistruct Index { 1195e41f4b71Sopenharmony_ci fun: Function = textFunc; 1196e41f4b71Sopenharmony_ci build() { 1197e41f4b71Sopenharmony_ci Column() { 1198e41f4b71Sopenharmony_ci Button().onClick(() => { 1199e41f4b71Sopenharmony_ci this.fun(); 1200e41f4b71Sopenharmony_ci }) 1201e41f4b71Sopenharmony_ci } 1202e41f4b71Sopenharmony_ci } 1203e41f4b71Sopenharmony_ci} 1204e41f4b71Sopenharmony_ci``` 1205e41f4b71Sopenharmony_ci 1206e41f4b71Sopenharmony_ci### popStyle 1207e41f4b71Sopenharmony_ci 1208e41f4b71Sopenharmony_cipopStyle(): void 1209e41f4b71Sopenharmony_ci 1210e41f4b71Sopenharmony_ci还原至上一个文本样式。 1211e41f4b71Sopenharmony_ci 1212e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1213e41f4b71Sopenharmony_ci 1214e41f4b71Sopenharmony_ci**示例:** 1215e41f4b71Sopenharmony_ci 1216e41f4b71Sopenharmony_ci```ts 1217e41f4b71Sopenharmony_ciimport { drawing } from '@kit.ArkGraphics2D' 1218e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1219e41f4b71Sopenharmony_ciimport { common2D } from "@kit.ArkGraphics2D" 1220e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1221e41f4b71Sopenharmony_ci 1222e41f4b71Sopenharmony_cifunction textFunc() { 1223e41f4b71Sopenharmony_ci let myTextStyle: text.TextStyle = { 1224e41f4b71Sopenharmony_ci color: { alpha: 255, red: 255, green: 0, blue: 0 }, 1225e41f4b71Sopenharmony_ci fontSize: 33, 1226e41f4b71Sopenharmony_ci }; 1227e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 1228e41f4b71Sopenharmony_ci textStyle: myTextStyle, 1229e41f4b71Sopenharmony_ci align: text.TextAlign.END, 1230e41f4b71Sopenharmony_ci }; 1231e41f4b71Sopenharmony_ci let fontCollection = new text.FontCollection(); 1232e41f4b71Sopenharmony_ci let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 1233e41f4b71Sopenharmony_ci ParagraphGraphBuilder.pushStyle(myTextStyle); 1234e41f4b71Sopenharmony_ci ParagraphGraphBuilder.popStyle(); 1235e41f4b71Sopenharmony_ci} 1236e41f4b71Sopenharmony_ci 1237e41f4b71Sopenharmony_ci@Entry 1238e41f4b71Sopenharmony_ci@Component 1239e41f4b71Sopenharmony_cistruct Index { 1240e41f4b71Sopenharmony_ci fun: Function = textFunc; 1241e41f4b71Sopenharmony_ci build() { 1242e41f4b71Sopenharmony_ci Column() { 1243e41f4b71Sopenharmony_ci Button().onClick(() => { 1244e41f4b71Sopenharmony_ci this.fun(); 1245e41f4b71Sopenharmony_ci }) 1246e41f4b71Sopenharmony_ci } 1247e41f4b71Sopenharmony_ci } 1248e41f4b71Sopenharmony_ci} 1249e41f4b71Sopenharmony_ci``` 1250e41f4b71Sopenharmony_ci 1251e41f4b71Sopenharmony_ci### addText 1252e41f4b71Sopenharmony_ci 1253e41f4b71Sopenharmony_ciaddText(text: string): void 1254e41f4b71Sopenharmony_ci 1255e41f4b71Sopenharmony_ci用于向正在构建的文本段落中插入具体的文本字符串。 1256e41f4b71Sopenharmony_ci 1257e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1258e41f4b71Sopenharmony_ci 1259e41f4b71Sopenharmony_ci**参数:** 1260e41f4b71Sopenharmony_ci 1261e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1262e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 1263e41f4b71Sopenharmony_ci| text | string | 是 | 段落中插入的具体文本字符串。 | 1264e41f4b71Sopenharmony_ci 1265e41f4b71Sopenharmony_ci**示例:** 1266e41f4b71Sopenharmony_ci 1267e41f4b71Sopenharmony_ci```ts 1268e41f4b71Sopenharmony_ciimport { drawing } from '@kit.ArkGraphics2D' 1269e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1270e41f4b71Sopenharmony_ciimport { common2D } from "@kit.ArkGraphics2D" 1271e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1272e41f4b71Sopenharmony_ci 1273e41f4b71Sopenharmony_cifunction textFunc() { 1274e41f4b71Sopenharmony_ci let myTextStyle: text.TextStyle = { 1275e41f4b71Sopenharmony_ci color: { alpha: 255, red: 255, green: 0, blue: 0 }, 1276e41f4b71Sopenharmony_ci fontSize: 33, 1277e41f4b71Sopenharmony_ci }; 1278e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 1279e41f4b71Sopenharmony_ci textStyle: myTextStyle, 1280e41f4b71Sopenharmony_ci align: text.TextAlign.END, 1281e41f4b71Sopenharmony_ci }; 1282e41f4b71Sopenharmony_ci let fontCollection = new text.FontCollection(); 1283e41f4b71Sopenharmony_ci let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 1284e41f4b71Sopenharmony_ci ParagraphGraphBuilder.addText("123666"); 1285e41f4b71Sopenharmony_ci} 1286e41f4b71Sopenharmony_ci 1287e41f4b71Sopenharmony_ci@Entry 1288e41f4b71Sopenharmony_ci@Component 1289e41f4b71Sopenharmony_cistruct Index { 1290e41f4b71Sopenharmony_ci fun: Function = textFunc; 1291e41f4b71Sopenharmony_ci build() { 1292e41f4b71Sopenharmony_ci Column() { 1293e41f4b71Sopenharmony_ci Button().onClick(() => { 1294e41f4b71Sopenharmony_ci this.fun(); 1295e41f4b71Sopenharmony_ci }) 1296e41f4b71Sopenharmony_ci } 1297e41f4b71Sopenharmony_ci } 1298e41f4b71Sopenharmony_ci} 1299e41f4b71Sopenharmony_ci``` 1300e41f4b71Sopenharmony_ci 1301e41f4b71Sopenharmony_ci### addPlaceholder 1302e41f4b71Sopenharmony_ci 1303e41f4b71Sopenharmony_ciaddPlaceholder(placeholderSpan: PlaceholderSpan): void 1304e41f4b71Sopenharmony_ci 1305e41f4b71Sopenharmony_ci用于在构建文本段落时插入占位符。 1306e41f4b71Sopenharmony_ci 1307e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1308e41f4b71Sopenharmony_ci 1309e41f4b71Sopenharmony_ci**参数:** 1310e41f4b71Sopenharmony_ci 1311e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1312e41f4b71Sopenharmony_ci| --------------- | ----------------------------------- | ---- | --------------------------------------------------- | 1313e41f4b71Sopenharmony_ci| placeholderSpan | [PlaceholderSpan](#placeholderspan) | 是 | 定义了占位符的尺寸、对齐方式、基线类型以及基线偏移量。 | 1314e41f4b71Sopenharmony_ci 1315e41f4b71Sopenharmony_ci**示例:** 1316e41f4b71Sopenharmony_ci 1317e41f4b71Sopenharmony_ci```ts 1318e41f4b71Sopenharmony_ciimport { drawing } from '@kit.ArkGraphics2D' 1319e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1320e41f4b71Sopenharmony_ciimport { common2D } from "@kit.ArkGraphics2D" 1321e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1322e41f4b71Sopenharmony_ci 1323e41f4b71Sopenharmony_cifunction textFunc() { 1324e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 1325e41f4b71Sopenharmony_ci align: text.TextAlign.END, 1326e41f4b71Sopenharmony_ci }; 1327e41f4b71Sopenharmony_ci let myPlaceholderSpan: text.PlaceholderSpan = { 1328e41f4b71Sopenharmony_ci width: 10000, 1329e41f4b71Sopenharmony_ci height: 10000000, 1330e41f4b71Sopenharmony_ci align: text.PlaceholderAlignment.ABOVE_BASELINE, 1331e41f4b71Sopenharmony_ci baseline: text.TextBaseline.ALPHABETIC, 1332e41f4b71Sopenharmony_ci baselineOffset: 100000 1333e41f4b71Sopenharmony_ci }; 1334e41f4b71Sopenharmony_ci let fontCollection = new text.FontCollection(); 1335e41f4b71Sopenharmony_ci let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 1336e41f4b71Sopenharmony_ci ParagraphGraphBuilder.addPlaceholder(myPlaceholderSpan); 1337e41f4b71Sopenharmony_ci} 1338e41f4b71Sopenharmony_ci 1339e41f4b71Sopenharmony_ci@Entry 1340e41f4b71Sopenharmony_ci@Component 1341e41f4b71Sopenharmony_cistruct Index { 1342e41f4b71Sopenharmony_ci fun: Function = textFunc; 1343e41f4b71Sopenharmony_ci build() { 1344e41f4b71Sopenharmony_ci Column() { 1345e41f4b71Sopenharmony_ci Button().onClick(() => { 1346e41f4b71Sopenharmony_ci this.fun(); 1347e41f4b71Sopenharmony_ci }) 1348e41f4b71Sopenharmony_ci } 1349e41f4b71Sopenharmony_ci } 1350e41f4b71Sopenharmony_ci} 1351e41f4b71Sopenharmony_ci``` 1352e41f4b71Sopenharmony_ci 1353e41f4b71Sopenharmony_ci### build 1354e41f4b71Sopenharmony_ci 1355e41f4b71Sopenharmony_cibuild(): Paragraph 1356e41f4b71Sopenharmony_ci 1357e41f4b71Sopenharmony_ci用于完成段落的构建过程,生成一个可用于后续排版渲染的段落对象。 1358e41f4b71Sopenharmony_ci 1359e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1360e41f4b71Sopenharmony_ci 1361e41f4b71Sopenharmony_ci**返回值:** 1362e41f4b71Sopenharmony_ci 1363e41f4b71Sopenharmony_ci| 类型 | 说明 | 1364e41f4b71Sopenharmony_ci| ------------------------ | ------------------------------ | 1365e41f4b71Sopenharmony_ci| [Paragraph](#paragraph) | 可用于后续渲染的 Paragraph 对象。| 1366e41f4b71Sopenharmony_ci 1367e41f4b71Sopenharmony_ci**示例:** 1368e41f4b71Sopenharmony_ci 1369e41f4b71Sopenharmony_ci```ts 1370e41f4b71Sopenharmony_ciimport { drawing, text, common2D } from '@kit.ArkGraphics2D' 1371e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1372e41f4b71Sopenharmony_ci 1373e41f4b71Sopenharmony_cifunction textFunc() { 1374e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 1375e41f4b71Sopenharmony_ci align: text.TextAlign.END, 1376e41f4b71Sopenharmony_ci }; 1377e41f4b71Sopenharmony_ci let fontCollection = new text.FontCollection(); 1378e41f4b71Sopenharmony_ci let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 1379e41f4b71Sopenharmony_ci let paragraph = ParagraphGraphBuilder.build(); 1380e41f4b71Sopenharmony_ci} 1381e41f4b71Sopenharmony_ci 1382e41f4b71Sopenharmony_ci@Entry 1383e41f4b71Sopenharmony_ci@Component 1384e41f4b71Sopenharmony_cistruct Index { 1385e41f4b71Sopenharmony_ci fun: Function = textFunc; 1386e41f4b71Sopenharmony_ci build() { 1387e41f4b71Sopenharmony_ci Column() { 1388e41f4b71Sopenharmony_ci Button().onClick(() => { 1389e41f4b71Sopenharmony_ci this.fun(); 1390e41f4b71Sopenharmony_ci }) 1391e41f4b71Sopenharmony_ci } 1392e41f4b71Sopenharmony_ci } 1393e41f4b71Sopenharmony_ci} 1394e41f4b71Sopenharmony_ci``` 1395e41f4b71Sopenharmony_ci 1396e41f4b71Sopenharmony_ci### addSymbol 1397e41f4b71Sopenharmony_ci 1398e41f4b71Sopenharmony_ciaddSymbol(symbolId: number): void 1399e41f4b71Sopenharmony_ci 1400e41f4b71Sopenharmony_ci用于向正在构建的文本段落中插入具体的符号。 1401e41f4b71Sopenharmony_ci 1402e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ci**参数:** 1405e41f4b71Sopenharmony_ci 1406e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1407e41f4b71Sopenharmony_ci| -------- | ------- | ---- | ----------------------------------------------------------- | 1408e41f4b71Sopenharmony_ci| symbolId | number | 是 | 要设置的symbol码位,十六进制,当前支持的取值范围为:0xF0000-0xF0C97。可设置的symbol码位及其对应的symbol名称请参阅以下链接中 JSON 文件的 value 字段和 name 字段: [https://gitee.com/openharmony/global_system_resources/blob/master/systemres/main/resources/base/element/symbol.json](https://gitee.com/openharmony/global_system_resources/blob/master/systemres/main/resources/base/element/symbol.json)| 1409e41f4b71Sopenharmony_ci 1410e41f4b71Sopenharmony_ci**示例:** 1411e41f4b71Sopenharmony_ci 1412e41f4b71Sopenharmony_ci```ts 1413e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D"; 1414e41f4b71Sopenharmony_ci 1415e41f4b71Sopenharmony_cifunction textFunc() { 1416e41f4b71Sopenharmony_ci let myTextStyle: text.TextStyle = { 1417e41f4b71Sopenharmony_ci color: { alpha: 255, red: 255, green: 0, blue: 0 }, 1418e41f4b71Sopenharmony_ci fontSize: 33, 1419e41f4b71Sopenharmony_ci }; 1420e41f4b71Sopenharmony_ci let myParagraphStyle: text.ParagraphStyle = { 1421e41f4b71Sopenharmony_ci textStyle: myTextStyle, 1422e41f4b71Sopenharmony_ci align: text.TextAlign.END, 1423e41f4b71Sopenharmony_ci }; 1424e41f4b71Sopenharmony_ci let fontCollection = new text.FontCollection(); 1425e41f4b71Sopenharmony_ci let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, fontCollection); 1426e41f4b71Sopenharmony_ci ParagraphGraphBuilder.addSymbol(0xF0000); 1427e41f4b71Sopenharmony_ci let paragraph = ParagraphGraphBuilder.build(); 1428e41f4b71Sopenharmony_ci} 1429e41f4b71Sopenharmony_ci 1430e41f4b71Sopenharmony_ci@Entry 1431e41f4b71Sopenharmony_ci@Component 1432e41f4b71Sopenharmony_cistruct Index { 1433e41f4b71Sopenharmony_ci fun: Function = textFunc; 1434e41f4b71Sopenharmony_ci build() { 1435e41f4b71Sopenharmony_ci Column() { 1436e41f4b71Sopenharmony_ci Button().onClick(() => { 1437e41f4b71Sopenharmony_ci this.fun(); 1438e41f4b71Sopenharmony_ci }) 1439e41f4b71Sopenharmony_ci } 1440e41f4b71Sopenharmony_ci } 1441e41f4b71Sopenharmony_ci} 1442e41f4b71Sopenharmony_ci``` 1443e41f4b71Sopenharmony_ci 1444e41f4b71Sopenharmony_ci## TextLine 1445e41f4b71Sopenharmony_ci 1446e41f4b71Sopenharmony_ci描述段落基础文本行结构的载体。 1447e41f4b71Sopenharmony_ci 1448e41f4b71Sopenharmony_ci下列API示例中都需先使用[Paragraph](#paragraph)类的[getTextLines()](#gettextlines)接口获取到TextLine对象实例,再通过此实例调用对应方法。 1449e41f4b71Sopenharmony_ci 1450e41f4b71Sopenharmony_ci### getGlyphCount 1451e41f4b71Sopenharmony_ci 1452e41f4b71Sopenharmony_cigetGlyphCount(): number 1453e41f4b71Sopenharmony_ci 1454e41f4b71Sopenharmony_ci获取该文本行中字形的数量。 1455e41f4b71Sopenharmony_ci 1456e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1457e41f4b71Sopenharmony_ci 1458e41f4b71Sopenharmony_ci**返回值:** 1459e41f4b71Sopenharmony_ci 1460e41f4b71Sopenharmony_ci| 类型 | 说明 | 1461e41f4b71Sopenharmony_ci| ------- | ------------------ | 1462e41f4b71Sopenharmony_ci| number | 该文本行中字形数量,整数。 | 1463e41f4b71Sopenharmony_ci 1464e41f4b71Sopenharmony_ci**示例:** 1465e41f4b71Sopenharmony_ci 1466e41f4b71Sopenharmony_ci```ts 1467e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1468e41f4b71Sopenharmony_ci 1469e41f4b71Sopenharmony_cifunction textFunc() { 1470e41f4b71Sopenharmony_ci let GlyphCount = lines[0].getGlyphCount(); 1471e41f4b71Sopenharmony_ci} 1472e41f4b71Sopenharmony_ci 1473e41f4b71Sopenharmony_ci@Entry 1474e41f4b71Sopenharmony_ci@Component 1475e41f4b71Sopenharmony_cistruct Index { 1476e41f4b71Sopenharmony_ci fun: Function = textFunc; 1477e41f4b71Sopenharmony_ci build() { 1478e41f4b71Sopenharmony_ci Column() { 1479e41f4b71Sopenharmony_ci Button().onClick(() => { 1480e41f4b71Sopenharmony_ci this.fun(); 1481e41f4b71Sopenharmony_ci }) 1482e41f4b71Sopenharmony_ci } 1483e41f4b71Sopenharmony_ci } 1484e41f4b71Sopenharmony_ci} 1485e41f4b71Sopenharmony_ci``` 1486e41f4b71Sopenharmony_ci 1487e41f4b71Sopenharmony_ci### getTextRange 1488e41f4b71Sopenharmony_ci 1489e41f4b71Sopenharmony_cigetTextRange(): Range 1490e41f4b71Sopenharmony_ci 1491e41f4b71Sopenharmony_ci获取该文本行中的文本在整个段落文本中的索引区间。 1492e41f4b71Sopenharmony_ci 1493e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1494e41f4b71Sopenharmony_ci 1495e41f4b71Sopenharmony_ci**返回值:** 1496e41f4b71Sopenharmony_ci 1497e41f4b71Sopenharmony_ci| 类型 | 说明 | 1498e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------ | 1499e41f4b71Sopenharmony_ci| [Range](#range) | 该文本行中的文本在整个段落文本中的索引区间。| 1500e41f4b71Sopenharmony_ci 1501e41f4b71Sopenharmony_ci**示例:** 1502e41f4b71Sopenharmony_ci 1503e41f4b71Sopenharmony_ci```ts 1504e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1505e41f4b71Sopenharmony_ci 1506e41f4b71Sopenharmony_cifunction textFunc() { 1507e41f4b71Sopenharmony_ci let textRange = lines[0].getTextRange(); 1508e41f4b71Sopenharmony_ci} 1509e41f4b71Sopenharmony_ci 1510e41f4b71Sopenharmony_ci@Entry 1511e41f4b71Sopenharmony_ci@Component 1512e41f4b71Sopenharmony_cistruct Index { 1513e41f4b71Sopenharmony_ci fun: Function = textFunc; 1514e41f4b71Sopenharmony_ci build() { 1515e41f4b71Sopenharmony_ci Column() { 1516e41f4b71Sopenharmony_ci Button().onClick(() => { 1517e41f4b71Sopenharmony_ci this.fun(); 1518e41f4b71Sopenharmony_ci }) 1519e41f4b71Sopenharmony_ci } 1520e41f4b71Sopenharmony_ci } 1521e41f4b71Sopenharmony_ci} 1522e41f4b71Sopenharmony_ci``` 1523e41f4b71Sopenharmony_ci 1524e41f4b71Sopenharmony_ci### getGlyphRuns 1525e41f4b71Sopenharmony_ci 1526e41f4b71Sopenharmony_cigetGlyphRuns(): Array\<Run> 1527e41f4b71Sopenharmony_ci 1528e41f4b71Sopenharmony_ci获取该文本行中的文本渲染单位数组。 1529e41f4b71Sopenharmony_ci 1530e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1531e41f4b71Sopenharmony_ci 1532e41f4b71Sopenharmony_ci**返回值:** 1533e41f4b71Sopenharmony_ci 1534e41f4b71Sopenharmony_ci| 类型 | 说明 | 1535e41f4b71Sopenharmony_ci| ------------ | --------------------------- | 1536e41f4b71Sopenharmony_ci| Array\<[Run](#run)> | 该文本行中的文本渲染单位数组。| 1537e41f4b71Sopenharmony_ci 1538e41f4b71Sopenharmony_ci**示例:** 1539e41f4b71Sopenharmony_ci 1540e41f4b71Sopenharmony_ci```ts 1541e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1542e41f4b71Sopenharmony_ci 1543e41f4b71Sopenharmony_cifunction textFunc() { 1544e41f4b71Sopenharmony_ci let runs = lines[0].getGlyphRuns(); 1545e41f4b71Sopenharmony_ci} 1546e41f4b71Sopenharmony_ci 1547e41f4b71Sopenharmony_ci@Entry 1548e41f4b71Sopenharmony_ci@Component 1549e41f4b71Sopenharmony_cistruct Index { 1550e41f4b71Sopenharmony_ci fun: Function = textFunc; 1551e41f4b71Sopenharmony_ci build() { 1552e41f4b71Sopenharmony_ci Column() { 1553e41f4b71Sopenharmony_ci Button().onClick(() => { 1554e41f4b71Sopenharmony_ci this.fun(); 1555e41f4b71Sopenharmony_ci }) 1556e41f4b71Sopenharmony_ci } 1557e41f4b71Sopenharmony_ci } 1558e41f4b71Sopenharmony_ci} 1559e41f4b71Sopenharmony_ci``` 1560e41f4b71Sopenharmony_ci 1561e41f4b71Sopenharmony_ci### paint 1562e41f4b71Sopenharmony_ci 1563e41f4b71Sopenharmony_cipaint(canvas: drawing.Canvas, x: number, y: number): void 1564e41f4b71Sopenharmony_ci 1565e41f4b71Sopenharmony_ci在画布上以坐标点 (x, y) 为左上角位置绘制该文本行。 1566e41f4b71Sopenharmony_ci 1567e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1568e41f4b71Sopenharmony_ci 1569e41f4b71Sopenharmony_ci**参数:** 1570e41f4b71Sopenharmony_ci 1571e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1572e41f4b71Sopenharmony_ci| ------ | ---------------------------------------------------- | ---- | ---------------------- | 1573e41f4b71Sopenharmony_ci| canvas | [drawing.Canvas](js-apis-graphics-drawing.md#canvas) | 是 | 绘制的目标 canvas。 | 1574e41f4b71Sopenharmony_ci| x | number | 是 | 绘制的左上角位置的横坐标,浮点数。| 1575e41f4b71Sopenharmony_ci| y | number | 是 | 绘制的左上角位置的纵坐标,浮点数。| 1576e41f4b71Sopenharmony_ci 1577e41f4b71Sopenharmony_ci**示例:** 1578e41f4b71Sopenharmony_ci 1579e41f4b71Sopenharmony_ci```ts 1580e41f4b71Sopenharmony_ciimport { drawing } from '@kit.ArkGraphics2D' 1581e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1582e41f4b71Sopenharmony_ciimport { common2D } from "@kit.ArkGraphics2D" 1583e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1584e41f4b71Sopenharmony_ci 1585e41f4b71Sopenharmony_cifunction textFunc() { 1586e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(160000); 1587e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 } } 1588e41f4b71Sopenharmony_ci let pixelMap: image.PixelMap = image.createPixelMapSync(color, opts); 1589e41f4b71Sopenharmony_ci let canvas = new drawing.Canvas(pixelMap); 1590e41f4b71Sopenharmony_ci lines[0].paint(canvas, 0, 0); 1591e41f4b71Sopenharmony_ci} 1592e41f4b71Sopenharmony_ci 1593e41f4b71Sopenharmony_ci@Entry 1594e41f4b71Sopenharmony_ci@Component 1595e41f4b71Sopenharmony_cistruct Index { 1596e41f4b71Sopenharmony_ci fun: Function = textFunc; 1597e41f4b71Sopenharmony_ci build() { 1598e41f4b71Sopenharmony_ci Column() { 1599e41f4b71Sopenharmony_ci Button().onClick(() => { 1600e41f4b71Sopenharmony_ci this.fun(); 1601e41f4b71Sopenharmony_ci }) 1602e41f4b71Sopenharmony_ci } 1603e41f4b71Sopenharmony_ci } 1604e41f4b71Sopenharmony_ci} 1605e41f4b71Sopenharmony_ci``` 1606e41f4b71Sopenharmony_ci 1607e41f4b71Sopenharmony_ci## Run 1608e41f4b71Sopenharmony_ci 1609e41f4b71Sopenharmony_ci文本排版的渲染单元。 1610e41f4b71Sopenharmony_ci 1611e41f4b71Sopenharmony_ci下列API示例中都需先使用[TextLine](#textline)类的[getGlyphRuns()](#getglyphruns)接口获取到Run对象实例,再通过此实例调用对应方法。 1612e41f4b71Sopenharmony_ci 1613e41f4b71Sopenharmony_ci### getGlyphCount 1614e41f4b71Sopenharmony_ci 1615e41f4b71Sopenharmony_cigetGlyphCount(): number 1616e41f4b71Sopenharmony_ci 1617e41f4b71Sopenharmony_ci获取该渲染单元中字形的数量。 1618e41f4b71Sopenharmony_ci 1619e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1620e41f4b71Sopenharmony_ci 1621e41f4b71Sopenharmony_ci**返回值:** 1622e41f4b71Sopenharmony_ci 1623e41f4b71Sopenharmony_ci| 类型 | 说明 | 1624e41f4b71Sopenharmony_ci| ------- | -------------------- | 1625e41f4b71Sopenharmony_ci| number | 该渲染单元中字形数量,整数。 | 1626e41f4b71Sopenharmony_ci 1627e41f4b71Sopenharmony_ci**示例:** 1628e41f4b71Sopenharmony_ci 1629e41f4b71Sopenharmony_ci```ts 1630e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1631e41f4b71Sopenharmony_ci 1632e41f4b71Sopenharmony_cifunction textFunc() { 1633e41f4b71Sopenharmony_ci let glyphs = runs[0].getGlyphCount(); 1634e41f4b71Sopenharmony_ci} 1635e41f4b71Sopenharmony_ci 1636e41f4b71Sopenharmony_ci@Entry 1637e41f4b71Sopenharmony_ci@Component 1638e41f4b71Sopenharmony_cistruct Index { 1639e41f4b71Sopenharmony_ci fun: Function = textFunc; 1640e41f4b71Sopenharmony_ci build() { 1641e41f4b71Sopenharmony_ci Column() { 1642e41f4b71Sopenharmony_ci Button().onClick(() => { 1643e41f4b71Sopenharmony_ci this.fun(); 1644e41f4b71Sopenharmony_ci }) 1645e41f4b71Sopenharmony_ci } 1646e41f4b71Sopenharmony_ci } 1647e41f4b71Sopenharmony_ci} 1648e41f4b71Sopenharmony_ci``` 1649e41f4b71Sopenharmony_ci 1650e41f4b71Sopenharmony_ci### getGlyphs 1651e41f4b71Sopenharmony_ci 1652e41f4b71Sopenharmony_cigetGlyphs(): Array\<number> 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci获取该渲染单元中每个字符对应的字形序号。 1655e41f4b71Sopenharmony_ci 1656e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1657e41f4b71Sopenharmony_ci 1658e41f4b71Sopenharmony_ci**返回值:** 1659e41f4b71Sopenharmony_ci 1660e41f4b71Sopenharmony_ci| 类型 | 说明 | 1661e41f4b71Sopenharmony_ci| --------------- | -------------------------------- | 1662e41f4b71Sopenharmony_ci| Array\<number> | 该渲染单元中每个字符对应的字形序号。| 1663e41f4b71Sopenharmony_ci 1664e41f4b71Sopenharmony_ci**示例:** 1665e41f4b71Sopenharmony_ci 1666e41f4b71Sopenharmony_ci```ts 1667e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1668e41f4b71Sopenharmony_ci 1669e41f4b71Sopenharmony_cifunction textFunc() { 1670e41f4b71Sopenharmony_ci let glyph = runs[0].getGlyphs(); 1671e41f4b71Sopenharmony_ci} 1672e41f4b71Sopenharmony_ci 1673e41f4b71Sopenharmony_ci@Entry 1674e41f4b71Sopenharmony_ci@Component 1675e41f4b71Sopenharmony_cistruct Index { 1676e41f4b71Sopenharmony_ci fun: Function = textFunc; 1677e41f4b71Sopenharmony_ci build() { 1678e41f4b71Sopenharmony_ci Column() { 1679e41f4b71Sopenharmony_ci Button().onClick(() => { 1680e41f4b71Sopenharmony_ci this.fun(); 1681e41f4b71Sopenharmony_ci }) 1682e41f4b71Sopenharmony_ci } 1683e41f4b71Sopenharmony_ci } 1684e41f4b71Sopenharmony_ci} 1685e41f4b71Sopenharmony_ci``` 1686e41f4b71Sopenharmony_ci 1687e41f4b71Sopenharmony_ci### getPositions 1688e41f4b71Sopenharmony_ci 1689e41f4b71Sopenharmony_cigetPositions(): Array<common2D.Point> 1690e41f4b71Sopenharmony_ci 1691e41f4b71Sopenharmony_ci获取该渲染单元中每个字形相对于每行的索引。 1692e41f4b71Sopenharmony_ci 1693e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1694e41f4b71Sopenharmony_ci 1695e41f4b71Sopenharmony_ci**返回值:** 1696e41f4b71Sopenharmony_ci 1697e41f4b71Sopenharmony_ci| 类型 | 说明 | 1698e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------- | 1699e41f4b71Sopenharmony_ci| Array<[common2D.Point](js-apis-graphics-common2D.md#point12)> | 该渲染单元中每个字形相对于每行的索引。 | 1700e41f4b71Sopenharmony_ci 1701e41f4b71Sopenharmony_ci**示例:** 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci```ts 1704e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D"; 1705e41f4b71Sopenharmony_ci 1706e41f4b71Sopenharmony_cifunction textFunc() { 1707e41f4b71Sopenharmony_ci let positions = runs[0].getPositions(); 1708e41f4b71Sopenharmony_ci} 1709e41f4b71Sopenharmony_ci 1710e41f4b71Sopenharmony_ci@Entry 1711e41f4b71Sopenharmony_ci@Component 1712e41f4b71Sopenharmony_cistruct Index { 1713e41f4b71Sopenharmony_ci fun: Function = textFunc; 1714e41f4b71Sopenharmony_ci build() { 1715e41f4b71Sopenharmony_ci Column() { 1716e41f4b71Sopenharmony_ci Button().onClick(() => { 1717e41f4b71Sopenharmony_ci this.fun(); 1718e41f4b71Sopenharmony_ci }) 1719e41f4b71Sopenharmony_ci } 1720e41f4b71Sopenharmony_ci } 1721e41f4b71Sopenharmony_ci} 1722e41f4b71Sopenharmony_ci``` 1723e41f4b71Sopenharmony_ci 1724e41f4b71Sopenharmony_ci### getOffsets 1725e41f4b71Sopenharmony_ci 1726e41f4b71Sopenharmony_cigetOffsets(): Array<common2D.Point> 1727e41f4b71Sopenharmony_ci 1728e41f4b71Sopenharmony_ci获取该渲染单元中每个字形相对于其索引的偏移量。 1729e41f4b71Sopenharmony_ci 1730e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1731e41f4b71Sopenharmony_ci 1732e41f4b71Sopenharmony_ci**返回值:** 1733e41f4b71Sopenharmony_ci 1734e41f4b71Sopenharmony_ci| 类型 | 说明 | 1735e41f4b71Sopenharmony_ci| ---------------------- | -------------- | 1736e41f4b71Sopenharmony_ci| Array<[common2D.Point](js-apis-graphics-common2D.md#point12)> | 该渲染单元中每个字形相对于其索引的偏移量。| 1737e41f4b71Sopenharmony_ci 1738e41f4b71Sopenharmony_ci**示例:** 1739e41f4b71Sopenharmony_ci 1740e41f4b71Sopenharmony_ci```ts 1741e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D"; 1742e41f4b71Sopenharmony_ci 1743e41f4b71Sopenharmony_cifunction textFunc() { 1744e41f4b71Sopenharmony_ci let offsets = runs[0].getOffsets(); 1745e41f4b71Sopenharmony_ci} 1746e41f4b71Sopenharmony_ci 1747e41f4b71Sopenharmony_ci@Entry 1748e41f4b71Sopenharmony_ci@Component 1749e41f4b71Sopenharmony_cistruct Index { 1750e41f4b71Sopenharmony_ci fun: Function = textFunc; 1751e41f4b71Sopenharmony_ci build() { 1752e41f4b71Sopenharmony_ci Column() { 1753e41f4b71Sopenharmony_ci Button().onClick(() => { 1754e41f4b71Sopenharmony_ci this.fun(); 1755e41f4b71Sopenharmony_ci }) 1756e41f4b71Sopenharmony_ci } 1757e41f4b71Sopenharmony_ci } 1758e41f4b71Sopenharmony_ci} 1759e41f4b71Sopenharmony_ci``` 1760e41f4b71Sopenharmony_ci 1761e41f4b71Sopenharmony_ci### getFont 1762e41f4b71Sopenharmony_ci 1763e41f4b71Sopenharmony_cigetFont(): drawing.Font 1764e41f4b71Sopenharmony_ci 1765e41f4b71Sopenharmony_ci获取该渲染单元的字体属性对象实例。 1766e41f4b71Sopenharmony_ci 1767e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1768e41f4b71Sopenharmony_ci 1769e41f4b71Sopenharmony_ci**返回值:** 1770e41f4b71Sopenharmony_ci 1771e41f4b71Sopenharmony_ci| 类型 | 说明 | 1772e41f4b71Sopenharmony_ci| ------------------------------------------------- | -------------------------- | 1773e41f4b71Sopenharmony_ci| [drawing.Font](js-apis-graphics-drawing.md#font) | 该渲染单元的字体属性对象实例。| 1774e41f4b71Sopenharmony_ci 1775e41f4b71Sopenharmony_ci**示例:** 1776e41f4b71Sopenharmony_ci 1777e41f4b71Sopenharmony_ci```ts 1778e41f4b71Sopenharmony_ciimport { drawing } from '@kit.ArkGraphics2D' 1779e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D"; 1780e41f4b71Sopenharmony_ci 1781e41f4b71Sopenharmony_cifunction textFunc() { 1782e41f4b71Sopenharmony_ci let font = runs[0].getFont(); 1783e41f4b71Sopenharmony_ci} 1784e41f4b71Sopenharmony_ci 1785e41f4b71Sopenharmony_ci@Entry 1786e41f4b71Sopenharmony_ci@Component 1787e41f4b71Sopenharmony_cistruct Index { 1788e41f4b71Sopenharmony_ci fun: Function = textFunc; 1789e41f4b71Sopenharmony_ci build() { 1790e41f4b71Sopenharmony_ci Column() { 1791e41f4b71Sopenharmony_ci Button().onClick(() => { 1792e41f4b71Sopenharmony_ci this.fun(); 1793e41f4b71Sopenharmony_ci }) 1794e41f4b71Sopenharmony_ci } 1795e41f4b71Sopenharmony_ci } 1796e41f4b71Sopenharmony_ci} 1797e41f4b71Sopenharmony_ci``` 1798e41f4b71Sopenharmony_ci 1799e41f4b71Sopenharmony_ci### paint 1800e41f4b71Sopenharmony_ci 1801e41f4b71Sopenharmony_cipaint(canvas: drawing.Canvas, x: number, y: number): void 1802e41f4b71Sopenharmony_ci 1803e41f4b71Sopenharmony_ci在画布上以坐标点 (x, y) 为左上角位置绘制该渲染单元。 1804e41f4b71Sopenharmony_ci 1805e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Graphics.Drawing 1806e41f4b71Sopenharmony_ci 1807e41f4b71Sopenharmony_ci**参数:** 1808e41f4b71Sopenharmony_ci 1809e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1810e41f4b71Sopenharmony_ci| ------ | ---------------------------------------------------- | ---- | ---------------------- | 1811e41f4b71Sopenharmony_ci| canvas | [drawing.Canvas](js-apis-graphics-drawing.md#canvas) | 是 | 绘制的目标 canvas。 | 1812e41f4b71Sopenharmony_ci| x | number | 是 | 绘制的左上角位置的横坐标,浮点数。| 1813e41f4b71Sopenharmony_ci| y | number | 是 | 绘制的左上角位置的纵坐标。浮点数。| 1814e41f4b71Sopenharmony_ci 1815e41f4b71Sopenharmony_ci**示例:** 1816e41f4b71Sopenharmony_ci 1817e41f4b71Sopenharmony_ci```ts 1818e41f4b71Sopenharmony_ciimport { drawing } from '@kit.ArkGraphics2D' 1819e41f4b71Sopenharmony_ciimport { text } from "@kit.ArkGraphics2D" 1820e41f4b71Sopenharmony_ciimport { common2D } from "@kit.ArkGraphics2D" 1821e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1822e41f4b71Sopenharmony_ci 1823e41f4b71Sopenharmony_cifunction textFunc() { 1824e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(160000); 1825e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 } } 1826e41f4b71Sopenharmony_ci let pixelMap: image.PixelMap = image.createPixelMapSync(color, opts); 1827e41f4b71Sopenharmony_ci let canvas = new drawing.Canvas(pixelMap); 1828e41f4b71Sopenharmony_ci runs[0].paint(canvas, 0, 0); 1829e41f4b71Sopenharmony_ci} 1830e41f4b71Sopenharmony_ci 1831e41f4b71Sopenharmony_ci@Entry 1832e41f4b71Sopenharmony_ci@Component 1833e41f4b71Sopenharmony_cistruct Index { 1834e41f4b71Sopenharmony_ci fun: Function = textFunc; 1835e41f4b71Sopenharmony_ci build() { 1836e41f4b71Sopenharmony_ci Column() { 1837e41f4b71Sopenharmony_ci Button().onClick(() => { 1838e41f4b71Sopenharmony_ci this.fun(); 1839e41f4b71Sopenharmony_ci }) 1840e41f4b71Sopenharmony_ci } 1841e41f4b71Sopenharmony_ci } 1842e41f4b71Sopenharmony_ci} 1843e41f4b71Sopenharmony_ci``` 1844