Search code examples
fabricjs

How to apply a fabric.Text object property to a fabric.CurvedText object?


I am using fabric.js 4.5.0 version
I am converting fabric.Text object to fabric.CurvedText object.
problem is that The fabric.Text object property is not applied after it has been transferred to fabric.CurvedText object


Solution

  • first create fabric.Text object

    var text = new fabric.Text('Testing,{
            strokeWidth: 0,
            stroke:"#ffffff",
            paintFirst: "stroke",
            fill: defaultTextColor,
            fontFamily: fontFamily,
            fontSize: defaultFontSize,
            typeOfObject: "text",
            charSpacing:0
    });
    activeCanvas.add(text);
    activeCanvas.setActiveObject(text);
    activeCanvas.renderAll();
    

    now apply the shadow property to fabric.Text object

    activeCanvas.getActiveObject().set('shadow',{
        color: 'black',
        blur: 10,
        offsetX: 10,
        offsetY: 0
    });
    activeCanvas.renderAll();  
    

    then convert fabric.Text ot fabric.TextCurved

    activeCanvas.getActiveObject().set(new fabric.TextCurved(activeCanvas.getActiveObject().text, {
        type: 'text-curved',
        diameter: 360,
        kerning: 0,
        fontFamily: 'Arial'
        fontSize: 32,
        top: 395,
        left:405,
        strokeStyle: null,
        strokeWidth: 0,
        shadow:{
                color: activeCanvas.getActiveObject().shadow.color,
                blur: activeCanvas.getActiveObject().shadow.blur,
                offsetX: activeCanvas.getActiveObject().shadow.offsetX,
                offsetY: activeCanvas.getActiveObject().shadow.offsetY,
                opacity: activeCanvas.getActiveObject().shadow.opacity
       }
    }));
    activeCanvas.renderAll();