在this tutorial之后,我想使用一些自定义字体来更改文本的字体系列。这些字体是使用this library
加载的选择字体后,将触发此方法:
setFont = (font) => {
const myfont = new FontFaceObserver(font.family)
myfont.load()
.then(() => {
// when font is loaded, use it.
const canvas = document
.getElementById(`${this.props.printingZone}-canvas`)
.fabric
setTimeout(() => {
canvas.getActiveObject().set('fontFamily', font.family)
canvas.requestRenderAll()
}, 500)
}).catch((e) => {
console.log(e)
})
}
不幸的是,这不能按预期工作。
在这里,一旦我选择了一种新字体(在这里是Animatic SC)
如您所见,新字体仅应用于某些字符,而其他字符现在使用默认字体。
让我印象深刻的是,它在某种程度上类似于fabric.js示例中所描述的内容,关于不使用字体预加载器(“不这样做可能会导致文本 导入到画布上以使用错误的(默认)字体进行渲染。“)
但是正如您在代码中看到的那样,我正在使用预加载器。
我做错什么了吗?