将SVG复制到画布后神秘增长

时间:2012-10-23 12:09:13

标签: javascript html5 svg html5-canvas canvg

我的页面上有一个svg我需要导出到png,所以按照建议here,我使用了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/

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

1 个答案:

答案 0 :(得分:2)

试试这个:

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

编辑:

看起来您不需要ignoreMouse

canvg(c, str, {ignoreDimensions:true});应该可以解决问题。