Font
Note:
Currently in the beta phase.
Registration information for custom fonts.
Note:
The following APIs require first obtaining a Font instance using the getFont() method from UIContext, then calling corresponding methods through this instance.
Import Module
import kit.ArkUI.*
class Font
public class Font {}
Functionality: Font class, providing font registration, system font list retrieval, and font information retrieval by name.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
func getFontByName(String)
public func getFontByName(fontName: String): ?FontInfo
Functionality: Retrieves detailed font information by font name.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| fontName | String | Yes | - | Font name. |
Return Value:
| Type | Description |
|---|---|
| ?FontInfo | Returns font information, or None if the font is not found. |
func getSystemFontList()
public func getSystemFontList(): Array<String>
Functionality: Retrieves the list of fonts supported by the system.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Return Value:
| Type | Description |
|---|---|
| Array<String> | List of system font names. |
func registerFont(ResourceStr, ResourceStr)
public func registerFont(familyName!: ResourceStr, familySrc!: ResourceStr): Unit
Functionality: Registers a custom font in font management.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| familyName | ResourceStr | Yes | - | Named parameter. Font name. |
| familySrc | ResourceStr | Yes | - | Named parameter. Font resource path. |
Exceptions:
-
BusinessException: Error codes as shown below, refer to Universal Error Codes.
Error Code Description 401 Invalid input parameter 100001 Internal error.
Example:
class FontInfo
public class FontInfo {
public var path: String
public var postScriptName: String
public var fullName: String
public var family: String
public var subfamily: String
public var weight: UInt32
public var width: UInt32
public var italic: Bool
public var monoSpace: Bool
public var symbolic: Bool
}
Functionality: Detailed information about a font.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var family
public var family: String
Functionality: Font family.
Type: String
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var fullName
public var fullName: String
Functionality: Full font name.
Type: String
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var italic
public var italic: Bool
Functionality: Whether the font is italic.
Type: Bool
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var monoSpace
public var monoSpace: Bool
Functionality: Whether the font is monospace.
Type: Bool
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var path
public var path: String
Functionality: Font file path.
Type: String
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var postScriptName
public var postScriptName: String
Functionality: PostScript name.
Type: String
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var subfamily
public var subfamily: String
Functionality: Font subfamily name.
Type: String
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var symbolic
public var symbolic: Bool
Functionality: Whether the font supports symbolic characters.
Type: Bool
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var weight
public var weight: UInt32
Functionality: Font weight.
Type: UInt32
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
var width
public var width: UInt32
Functionality: Font width.
Type: UInt32
Read/Write: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Example Code
Example 1 (Register Custom Font)
package ohos_app_cangjie_entry
import kit.ArkUI.*
import ohos.arkui.state_macro_manage.*
import ohos.i18n.*
import ohos.resource_manager.*
@Entry
@Component
class EntryView {
protected func onAppear() {
getUIContext().getFont().registerFont(
familyName: "Deyihei",
familySrc: "/resources/rawfile/SmileySans-Oblique.ttf"
)
}
func build() {
Row {
Column {
Text("HelloWorld").fontFamily("Deyihei")
Text("HelloWorld")
}.width(100.percent)
}.height(100.percent)
}
}

Example 2 (Get System Font List)
package ohos_app_cangjie_entry
import kit.ArkUI.*
import ohos.arkui.state_macro_manage.*
import ohos.hilog.*
@Entry
@Component
class EntryView {
func build() {
Row {
Column {
Button("HelloWorld")
.onClick({evt =>
let list = getUIContext().getFont().getSystemFontList()
Hilog.info(0, "AppLogCj", "${list.size}")
})
}.width(100.percent)
}.height(100.percent)
}
}
Example 3 (Get Font Details)
package ohos_app_cangjie_entry
import kit.ArkUI.*
import ohos.arkui.state_macro_manage.*
import ohos.hilog.*
@Entry
@Component
class EntryView {
func build() {
Row {
Column {
Button("HelloWorld")
.onClick({evt =>
let info = getUIContext().getFont().getFontByName("HarmonyOS Sans Italic")
match (info) {
case Some(v) =>
Hilog.info(0, "AppLogCj", "${v.path}")
Hilog.info(0, "AppLogCj", "${v.postScriptName}")
Hilog.info(0, "AppLogCj", "${v.fullName}")
Hilog.info(0, "AppLogCj", "${v.family}")
Hilog.info(0, "AppLogCj", "${v.subfamily}")
Hilog.info(0, "AppLogCj", "${v.weight}")
Hilog.info(0, "AppLogCj", "${v.width}")
Hilog.info(0, "AppLogCj", "${v.italic}")
Hilog.info(0, "AppLogCj", "${v.monoSpace}")
Hilog.info(0, "AppLogCj", "${v.symbolic}")
case None => Hilog.error(0, "AppLogCj", "None")
}
})
}.width(100.percent)
}.height(100.percent)
}
}
