2

我的页面上有一个 svg,需要导出为 png,因此按照此处的建议,我正在使用 canvg。

副本起初似乎工作正常,但随后画布高度开始神秘地增加。

我在做一些明显错误的事情吗?我试过为画布设置各种尺寸,但没有运气。在 IE 和 Chrome 中失败。

这是我的导出功能:

function copytocanvas()
{
    var c = document.getElementById('canvas');
    c.width = $('#svgChart').width();
    c.height = c.width;
    c.getContext = document.getElementById('canvas').getContext;


    var svg = document.getElementById('svgChart'); // or whatever you call it
    var serializer = new XMLSerializer();
    var str = serializer.serializeToString(svg);

    canvg(c, str);  
}

这是一个显示问题的 jsfiddle:http: //jsfiddle.net/LkqTU/4772/

滚动时问题似乎变得更糟!

4

1 回答 1

2

试试这个:

canvg(c, str, {ignoreMouse:true, ignoreDimensions:true});

编辑:

看起来你不需要ignoreMouse

canvg(c, str, {ignoreDimensions:true});应该做的伎俩。

于 2012-10-24T21:54:21.800 回答