我的页面上有一个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/
滚动时问题似乎变得更糟!
答案 0 :(得分:2)
试试这个:
canvg(c, str, {ignoreMouse:true, ignoreDimensions:true});
编辑:
看起来您不需要ignoreMouse
:
canvg(c, str, {ignoreDimensions:true});
应该可以解决问题。