fabric.js - Как установить ширину текста?

Я считаю, что установка 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:

textAlign

Выравнивание текста полезно при работе с многострочным текстом. W При однострочном тексте ширина ограничивающей рамки всегда точно соответствует ширине этой линии, поэтому выравнивать нечего. Допустимые значения: «слева», «по центру» и «справа». < / em>

Кто-нибудь знает, как это обойти?


person user3262713    schedule 15.07.2015    source источник


Ответы (1)


Не уверен, что вы когда-нибудь нашли ответ за два года с того момента, когда вы впервые спросили, но у меня была такая же проблема, и я смог найти решение, добавив текстовый объект на холст, затем установив его ширину, а затем запустив renderAll () на холст.

var text = new fabric.Text('sample text', {fill: '#fff', textAlign: 'center'});
canvas.add(text);
text.width = 180;
canvas.renderAll();
person jagomez8    schedule 15.02.2017
comment
Вы также должны установить text.width = 180 после каждого изменения текста текста ... text.set (text: fred); text.width = 180; canvas.renderAll (); - person Sparfy; 16.11.2018