Я использовал значки svg в своем приложении и использовал svg для рисования диаграмм. Когда я генерирую изображение с помощью html2canvas, все svgs игнорируются, а изображение генерируется без всех svgs.
Я использую функцию ниже для создания изображения.
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);
}
});
}
Эта функция называется так svgToCanvas($("#app-container"));
Заранее спасибо.