Javascript Fabric js从url加载svg缺少属性
我正在尝试使用Javascript Fabric js从url加载svg缺少属性,javascript,svg,fabricjs,Javascript,Svg,Fabricjs,我正在尝试使用loadSVGfromURL并且一切都很好,但是我在文本方面有一些问题 如果我试图加载一些属性,如font-family,fill,等等。。。没有加载。文本已加载,但具有默认属性:黑色颜色,以及Times new roman字体 这是我的密码: fabric.loadSVGFromURL(img.src, function(objects, options) { var tmpobj = fabric.util.groupSVGElements(objects, optio
loadSVGfromURL
并且一切都很好,但是我在文本方面有一些问题
如果我试图加载一些属性,如font-family
,fill
,等等。。。没有加载。文本已加载,但具有默认属性:黑色颜色
,以及Times new roman字体
这是我的密码:
fabric.loadSVGFromURL(img.src, function(objects, options) {
var tmpobj = fabric.util.groupSVGElements(objects, options);
canvas.setDimensions({
width : tmpobj.width,
height : tmpobj.height
});
//canvas.clear();
canvas.forEachObject(function(obj) {
//var obj = new fabric.Object({ padding: 0 });
var obj = objects[i];
if (obj.get('type') == 'text') {
var text = new fabric.IText('Tap and Type', {
fontFamily : obj.get('fontFamily'),
left : obj.get('left'),
top : obj.get('top'),
text : obj.get('text'),
oCoords : obj.get('oCoords'),
fontSize : obj.get('fontSize'),
height : obj.get('height'),
width : obj.get('width'),
fill : obj.get('fill')
});
obj = text;
}
obj.padding = 0;
obj.setCoords();
canvas.add(obj);
canvas.renderAll();
});
})
问题在于fabricjs中缺少TSPAN支持 svg如下所示:
<text x="32" y="40" class="cls-1"><tspan class="cls-2">riev</tspan></text>
<text x="158" y="211" class="cls-1"><tspan class="cls-3">0999989878</tspan></text>
<text x="96" y="120" class="cls-1"><tspan class="cls-2">Platon</tspan></text>
<text x="32" y="40" class="cls-1 cls-2"><tspan >riev</tspan></text>
<text x="158" y="211" class="cls-1 cls-3"><tspan >0999989878</tspan></text>
<text x="96" y="120" class="cls-1 cls-2"><tspan >Platon</tspan></text>
riev
0999989878
泼拉顿
信息class=“cls-2”和class=“cls-3”不会被解析,因为tspan被丢弃
您可以这样修改svg:
<text x="32" y="40" class="cls-1"><tspan class="cls-2">riev</tspan></text>
<text x="158" y="211" class="cls-1"><tspan class="cls-3">0999989878</tspan></text>
<text x="96" y="120" class="cls-1"><tspan class="cls-2">Platon</tspan></text>
<text x="32" y="40" class="cls-1 cls-2"><tspan >riev</tspan></text>
<text x="158" y="211" class="cls-1 cls-3"><tspan >0999989878</tspan></text>
<text x="96" y="120" class="cls-1 cls-2"><tspan >Platon</tspan></text>
riev
0999989878
泼拉顿
我已经添加了这个
var svg=doc对于(var i=0;i
函数将我的tspan样式添加到文本样式中你能提供一些实例吗?JSFIDLE?这是我用来测试的svg文件。如果你在浏览器中打开它,一个字符串的颜色将不同于其他字符串,但是如果你用FIDLE加载,每个字符串的颜色都将相同。我如何自动修改每个svg?我可以只编写简单的scipt吗替换它?