fabric.js calcTextWidth () не работает правильно - PullRequest
0 голосов
/ 11 января 2019

Я вижу, что приведенный выше метод дает неправильную ширину. например,

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();

приводит к enter image description here. Как видите, текст не помещается в поле, как должно. Есть идеи как это исправить? Кажется, только с курсивом для некоторых шрифтов. Я знаю, что, похоже, существует похожая проблема с простым JS-кодом Canvas, например ctx.measureText(txt).width, но я не уверен, как лучше это исправить в fabric.js. Идеи?

Спасибо, Том

...