自定义字体列表

字体结构定义

在 Univer 中,字体使用 IFontConfig 接口进行定义:

属性类型说明
valuestring字体的唯一标识符,通常也是 CSS font-family 的首选值。
labelstring用于国际化的翻译键,如果在 Univer 实例创建时没有指定该键值时,则直接显示传入值。
category'sans-serif' | 'serif' | 'monospace' | 'display' | 'handwriting'字体类别,用于 UI 分组(可选)。

Univer 不会阻止用户选择未安装的字体,如果客户端没有安装某个字体,浏览器会直接使用默认字体进行替代显示。

使用自定义字体

你可以通过配置 UniverUIPlugincustomFontFamily 参数来定义字体下拉菜单中的选项。

TypeScript
univer.registerPlugin(UniverUIPlugin, {  container: 'app',  customFontFamily: {    list: [      {        value: 'PingFang SC',        label: '苹方(简)',        category: 'sans-serif',      },      {        value: 'Helvetica Neue',        label: 'Helvetica Neue',        category: 'sans-serif',      },    ],    // 是否覆盖默认字体列表,默认为 false    override: true,  },})

Facade API

除了在初始化时配置,你还可以通过 Facade API 在运行时动态注册新的字体。这在需要异步加载字体资源的场景下非常有用。

TypeScript
univerAPI.addFonts([{  value: 'PingFang SC',  label: '苹方(简)',  category: 'sans-serif',}, {  value: 'Helvetica Neue',  label: 'Helvetica Neue',  category: 'sans-serif',}])

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.