从fabric.js上加载的svg获取文本是否可编辑?

时间:2018-05-28 15:02:46

标签: fabricjs

我想将svg加载到fabric.js,并能够编辑(更改)属于svg的文本。

但是,通过使用fabric.loadSVGFromURL()方法,我得到一个单独的对象(类型为" group"),包含所有类型的元素,包括文本。

我不知道以下解决方案是否是最佳方法,但我尝试用reviver函数解决问题:

fabric.loadSVGFromURL(
    url,
    function() {},
    function(svgElement, fabricObject) {
        if (fabricObject.type === "text") {
            var text = fabricObject.text;
            var optionsopt = fabricObject.toObject();
            var newEditableText = new fabric.Itext(text, optionsopt);
            canvas.add(newEditableText);
        else {
            canvas.add(fabricObject);
     }
);

但是我在加载的svg

中遇到了tspan标签的问题

1 个答案:

答案 0 :(得分:0)

fabric.js SVG解析器不支持tspan。这仍然是一个悬而未决的问题:https://github.com/fabricjs/fabric.js/issues/1280

在上述问题页面上,您的问题可能有解决方法,但如果不知道您的tspans的具体行为,我就无法指出您的具体解决方法。