I have used svg icons in my app & used svg to draw charts too.When I generate image using html2canvas all the svgs are ignored & image is generated without all svgs.
I am using below function to generate image.
function svgToCanvas (targetElem) {
        var nodesToRecover = [];
        var nodesToRemove = [];
        var svgElem = targetElem.find('svg');
        svgElem.each(function(index, node) {
            var parentNode = node.parentNode;
            var svg = parentNode.innerHTML;
            var canvas = document.createElement('canvas');
            canvg(canvas, svg);
            nodesToRecover.push({
                parent: parentNode,
                child: node
            });
            parentNode.removeChild(node);
            nodesToRemove.push({
                parent: parentNode,
                child: canvas
            });
            parentNode.appendChild(canvas);
        });
        html2canvas(targetElem, {
            allowTaint: true,
            onrendered: function(canvas) {
                // var ctx = canvas.getContext('2d');
                // ctx.webkitImageSmoothingEnabled = false;
                // ctx.mozImageSmoothingEnabled = false;
                // ctx.imageSmoothingEnabled = false;
                var img_PNG = Canvas2Image.saveAsPNG(canvas);
            }
        });
    }
This function is called like this svgToCanvas($("#app-container"));
Thanks in advance.
 
     
    