Javascript fabric.js-如何设置文本宽度?

Javascript fabric.js-如何设置文本宽度?,javascript,jquery,html,fabricjs,text-alignment,Javascript,Jquery,Html,Fabricjs,Text Alignment,我发现将textAlign设置为fabric.jsText对象是没有用的,因为文本字段的宽度会自动指定为完全适合文本的宽度 我在API中找不到允许我设置其他宽度的任何内容。我尝试了scaleToWidth,但也没有成功 this.text = new fabric.Text(this.name, { fontFamily: 'Calibri Light', fontSize: 17, backgroundColor: 'blue', // usi

我发现将
textAlign
设置为fabric.js
Text
对象是没有用的,因为文本字段的宽度会自动指定为完全适合文本的宽度

我在API中找不到允许我设置其他宽度的任何内容。我尝试了
scaleToWidth
,但也没有成功

this.text = new fabric.Text(this.name, 
{
        fontFamily: 'Calibri Light',
        fontSize: 17,
        backgroundColor: 'blue', // using this to confirm that the width is actually just set to the text width
        textAlign: 'center',
        top: 15,
        scaleToWidth: 1.1,
})
我使用了一个相当粗糙的解决方案,以期望的方式显示了它

从fabric.js网站上引用:

文本对齐

使用多行文字时,文字对齐非常有用。W对于单行文本,边界框的宽度始终与该行的宽度完全匹配,因此无需对齐。 允许的值为“左”、“中”和“右”


有人知道如何解决这个问题吗?

不确定从你第一次问起的两年内你是否找到了答案,但我也遇到了同样的问题,通过将文本对象添加到画布中,然后设置其宽度,然后在画布上触发renderAll(),我找到了解决方法

var text = new fabric.Text('sample text', {fill: '#fff', textAlign: 'center'});
canvas.add(text);
text.width = 180;
canvas.renderAll();

每次更改文本的文本后,还必须将text.width设置为180。。。text.set(文本:“fred”);text.width=180;canvas.renderAll();