我发现将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,
})
我使用漂亮的hacky解决方案让它以理想的方式出现。
从fabric.js网站引用:
textAlign设置
使用多行文字时,文字对齐非常有用。 W 第一行文本,边界框的宽度始终与该行的宽度完全匹配,因此无需对齐。 允许的值为"左","中"和"右"。
有谁知道怎么解决这个问题?
答案 0 :(得分:1)
不确定你是否在你第一次提出问题后的两年内找到答案,但我遇到了同样的问题,并且能够通过将文本对象添加到画布然后设置它的宽度来找到解决方案。然后在画布上发射一个renderAll()。
var text = new fabric.Text('sample text', {fill: '#fff', textAlign: 'center'});
canvas.add(text);
text.width = 180;
canvas.renderAll();