1# styled_string.h 2<!--Kit: ArkUI--> 3<!--Subsystem: ArkUI--> 4<!--Owner: @hddgzw--> 5<!--Designer: @pssea--> 6<!--Tester: @jiaoaozihao--> 7<!--Adviser: @HelloCrease--> 8 9## 概述 10 11在Native侧定义ArkUIText组件的文本样式。 12 13**引用文件:** <arkui/styled_string.h> 14 15**库:** libace_ndk.z.so 16 17**系统能力:** SystemCapability.ArkUI.ArkUI.Full 18 19**起始版本:** 12 20 21**相关模块:** [ArkUI_NativeModule](capi-arkui-nativemodule.md) 22 23**相关示例:** <!--RP1-->[StyledStringNDK](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/DocsSample/ArkUISample/StyledStringNDK)<!--RP1End--> 24 25## 汇总 26 27### 结构体 28 29| 名称 | typedef关键字 | 描述 | 30| -- | -- | -- | 31| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md) | ArkUI_StyledString | 定义文本组件支持的格式化字符串数据对象。 | 32 33### 函数 34 35| 名称 | 描述 | 36| -- | -- | 37| [ArkUI_StyledString* OH_ArkUI_StyledString_Create(OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collection)](#oh_arkui_styledstring_create) | 创建指向ArkUI_StyledString对象的指针。 | 38| [void OH_ArkUI_StyledString_Destroy(ArkUI_StyledString* handle)](#oh_arkui_styledstring_destroy) | 释放被ArkUI_StyledString对象占据的内存。 | 39| [void OH_ArkUI_StyledString_PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_TextStyle* style)](#oh_arkui_styledstring_pushtextstyle) | 将新的排版风格设置到当前格式化字符串样式栈顶。 | 40| [void OH_ArkUI_StyledString_AddText(ArkUI_StyledString* handle, const char* content)](#oh_arkui_styledstring_addtext) | 基于当前格式化字符串样式设置对应的文本内容。 | 41| [void OH_ArkUI_StyledString_PopTextStyle(ArkUI_StyledString* handle)](#oh_arkui_styledstring_poptextstyle) | 将当前格式化字符串对象中栈顶样式出栈。 | 42| [OH_Drawing_Typography* OH_ArkUI_StyledString_CreateTypography(ArkUI_StyledString* handle)](#oh_arkui_styledstring_createtypography) | 基于格式字符串对象创建指向OH_Drawing_Typography对象的指针,用于提前进行文本测算排版。 | 43| [void OH_ArkUI_StyledString_AddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placeholder)](#oh_arkui_styledstring_addplaceholder) | 设置占位符。 | 44| [ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_Create(void)](#oh_arkui_styledstring_descriptor_create) | 创建属性字符串数据对象。 | 45| [void OH_ArkUI_StyledString_Descriptor_Destroy(ArkUI_StyledString_Descriptor* descriptor)](#oh_arkui_styledstring_descriptor_destroy) | 释放被ArkUI_StyledString_Descriptor对象占据的内存。 | 46| [int32_t OH_ArkUI_UnmarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor)](#oh_arkui_unmarshallstyledstringdescriptor) | 将包含属性字符串信息的字节数组反序列化为属性字符串。 | 47| [int32_t OH_ArkUI_MarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor, size_t* resultSize)](#oh_arkui_marshallstyledstringdescriptor) | 将属性字符串信息序列化为字节数组。 | 48| [const char* OH_ArkUI_ConvertToHtml(ArkUI_StyledString_Descriptor* descriptor)](#oh_arkui_converttohtml) | 将属性字符串信息转化成html。 | 49 50## 函数说明 51 52### OH_ArkUI_StyledString_Create() 53 54``` 55ArkUI_StyledString* OH_ArkUI_StyledString_Create(OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collection) 56``` 57 58**描述:** 59 60创建指向ArkUI_StyledString对象的指针。 61 62**起始版本:** 12 63 64**参数:** 65 66| 参数项 | 描述 | 67| -- |------------------------------------------------------------------------------------------------------------------------------------------------------------------| 68| [OH_Drawing_TypographyStyle](../apis-arkgraphics2d/capi-drawing-oh-drawing-typographystyle.md)* style | 指向OH_Drawing_TypographyStyle的指针,由[OH_Drawing_CreateTypographyStyle](../apis-arkgraphics2d/capi-drawing-text-typography-h.md#oh_drawing_createtypographystyle)获取。 | 69| [OH_Drawing_FontCollection](../apis-arkgraphics2d/capi-drawing-oh-drawing-fontcollection.md)* collection | 指向OH_Drawing_FontCollection的指针,由[OH_Drawing_CreateFontCollection](../apis-arkgraphics2d/capi-drawing-font-collection-h.md)获取。 | 70 71**返回:** 72 73| 类型 | 说明 | 74|-------------------------| -- | 75| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* | 创建指向ArkUI_StyledString对象的指针。如果对象返回空指针,表示创建失败,失败的原因是地址空间已满,或者是style,collection参数异常如空指针。 | 76 77### OH_ArkUI_StyledString_Destroy() 78 79``` 80void OH_ArkUI_StyledString_Destroy(ArkUI_StyledString* handle) 81``` 82 83**描述:** 84 85释放被ArkUI_StyledString对象占据的内存。 86 87**起始版本:** 12 88 89**参数:** 90 91| 参数项 | 描述 | 92| -- | -- | 93| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 | 94 95### OH_ArkUI_StyledString_PushTextStyle() 96 97``` 98void OH_ArkUI_StyledString_PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_TextStyle* style) 99``` 100 101**描述:** 102 103将新的排版风格设置到当前格式化字符串样式栈顶。 104 105**起始版本:** 12 106 107**参数:** 108 109| 参数项 | 描述 | 110| -- | -- | 111| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 | 112| [OH_Drawing_TextStyle](../apis-arkgraphics2d/capi-drawing-oh-drawing-textstyle.md)* style | 指向OH_Drawing_TextStyle对象的指针。 | 113 114### OH_ArkUI_StyledString_AddText() 115 116``` 117void OH_ArkUI_StyledString_AddText(ArkUI_StyledString* handle, const char* content) 118``` 119 120**描述:** 121 122基于当前格式化字符串样式设置对应的文本内容。 123 124**起始版本:** 12 125 126**参数:** 127 128| 参数项 | 描述 | 129| -- | -- | 130| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 | 131| const char* content | 指向文本内容的指针。 | 132 133### OH_ArkUI_StyledString_PopTextStyle() 134 135``` 136void OH_ArkUI_StyledString_PopTextStyle(ArkUI_StyledString* handle) 137``` 138 139**描述:** 140 141将当前格式化字符串对象中栈顶样式出栈。 142 143**起始版本:** 12 144 145**参数:** 146 147| 参数项 | 描述 | 148| -- | -- | 149| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 | 150 151### OH_ArkUI_StyledString_CreateTypography() 152 153``` 154OH_Drawing_Typography* OH_ArkUI_StyledString_CreateTypography(ArkUI_StyledString* handle) 155``` 156 157**描述:** 158 159基于格式字符串对象创建指向OH_Drawing_Typography对象的指针,用于提前进行文本测算排版。 160 161**起始版本:** 12 162 163**参数:** 164 165| 参数项 | 描述 | 166| -- | -- | 167| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 | 168 169**返回:** 170 171| 类型 | 说明 | 172|----------------------------| -- | 173| [OH_Drawing_Typography](../apis-arkgraphics2d/capi-drawing-oh-drawing-typography.md)* | 指向OH_Drawing_Typography对象的指针。如果对象返回空指针,表示创建失败,失败的原因可能是handle参数异常如空指针。 | 174 175### OH_ArkUI_StyledString_AddPlaceholder() 176 177``` 178void OH_ArkUI_StyledString_AddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placeholder) 179``` 180 181**描述:** 182 183设置占位符。 184 185**起始版本:** 12 186 187**参数:** 188 189| 参数项 | 描述 | 190| -- | -- | 191| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 | 192| [OH_Drawing_PlaceholderSpan](../apis-arkgraphics2d/capi-drawing-oh-drawing-placeholderspan.md)* placeholder | 指向OH_Drawing_PlaceholderSpan对象的指针。 | 193 194### OH_ArkUI_StyledString_Descriptor_Create() 195 196``` 197ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_Create(void) 198``` 199 200**描述:** 201 202创建属性字符串数据对象。 203 204**起始版本:** 14 205 206**返回:** 207 208| 类型 | 说明 | 209|------------------------------------| -- | 210| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* | 指向ArkUI_StyledString_Descriptor对象的指针。 | 211 212### OH_ArkUI_StyledString_Descriptor_Destroy() 213 214``` 215void OH_ArkUI_StyledString_Descriptor_Destroy(ArkUI_StyledString_Descriptor* descriptor) 216``` 217 218**描述:** 219 220释放被ArkUI_StyledString_Descriptor对象占据的内存。 221 222**起始版本:** 14 223 224**参数:** 225 226| 参数项 | 描述 | 227| -- | -- | 228| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 | 229 230### OH_ArkUI_UnmarshallStyledStringDescriptor() 231 232``` 233int32_t OH_ArkUI_UnmarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor) 234``` 235 236**描述:** 237 238将包含属性字符串信息的字节数组反序列化为属性字符串。 239 240**起始版本:** 14 241 242**参数:** 243 244| 参数项 | 描述 | 245| -- | -- | 246| uint8_t* buffer | 待反序列化的字节数组。 | 247| size_t bufferSize | 字节数组长度。 | 248| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 | 249 250**返回:** 251 252| 类型 | 说明 | 253| -- | -- | 254| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 255 256### OH_ArkUI_MarshallStyledStringDescriptor() 257 258``` 259int32_t OH_ArkUI_MarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor, size_t* resultSize) 260``` 261 262**描述:** 263 264将属性字符串信息序列化为字节数组。 265 266**起始版本:** 14 267 268**参数:** 269 270| 参数项 | 描述 | 271| -- | -- | 272| uint8_t* buffer | 字节数组,用于存储属性字符串序列化后的数据。 | 273| size_t bufferSize | 字节数组长度。 | 274| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 | 275| size_t* resultSize | 属性字符串转换后的字节数组实际长度。 | 276 277**返回:** 278 279| 类型 | 说明 | 280| -- | -- | 281| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br> [ARKUI_ERROR_CODE_INVALID_STYLED_STRING](capi-native-type-h.md#arkui_errorcode) 无效的属性字符串。 | 282 283### OH_ArkUI_ConvertToHtml() 284 285``` 286const char* OH_ArkUI_ConvertToHtml(ArkUI_StyledString_Descriptor* descriptor) 287``` 288 289**描述:** 290 291将属性字符串信息转化成html。 292 293**起始版本:** 14 294 295**参数:** 296 297| 参数项 | 描述 | 298| -- | -- | 299| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 | 300 301**返回:** 302 303| 类型 | 说明 | 304| -- | -- | 305| const char* | html。该指针由内部管理,在OH_ArkUI_StyledString_Descriptor_Destroy()时释放。 |