Я вижу, что приведенный выше метод дает неправильную ширину. например,
var canvas = new fabric.Canvas('canvas',{
backgroundColor: "#fff000",
width: 1200,
height: 600
});
var itext = new fabric.IText('Hello World', {
left: 10,
top: 140,
fontSize: 172,
fontFamily: 'Comic Sans MS',
stroke: "#D81B60",
fontStyle: 'italic',
fontWeight: 'bold',
});
var rect = new fabric.Rect({
left: 10,
top: 150,
width: itext.calcTextWidth()+4,// adjust for border
height: 182,
fill: 'rgba(0,0,0,0)',
strokeWidth: 2,
stroke: "#D81B60",
});
canvas.add(rect);
canvas.add(itext);
canvas.renderAll();
приводит к . Как видите, текст не помещается в поле, как должно. Есть идеи как это исправить? Кажется, только с курсивом для некоторых шрифтов. Я знаю, что, похоже, существует похожая проблема с простым JS-кодом Canvas, например ctx.measureText(txt).width
, но я не уверен, как лучше это исправить в fabric.js. Идеи?
Спасибо, Том