Я пытаюсь экспортировать русалка в png. В некоторой степени я был успешным, но я застрял при экспорте шрифтов в svg. Они вызываются просто через класс fa
, и обычный экспорт холста не учитывает их при экспорте. В приведенном ниже MWE вы можете увидеть, что в выводе PNG отсутствует значок автомобиля. Пожалуйста, помогите.
Насколько я понимаю, в svg все должно быть встроено, чтобы экспорт холста работал, но я не мог найти способ, как это сделать, потому что в русалку можно вставить любой шрифт, отличный значок, как ему нужно для графиков.
MWE
function drawInlineSVG(svgElement, ctx, callback)
{
var svgURL = new XMLSerializer().serializeToString(svgElement);
console.log(svgElement);
// console.log(svgURL);
var img = new Image();
img.onload = function ()
{
ctx.drawImage(this,0,0);
callback(this);
}
// img.src = 'data:image/svg+xml; charset=utf8, ' + encodeURIComponent(svgURL);
img.setAttribute( "src", "data:image/svg+xml;base64," + btoa( svgURL ) );
}
Выход:
Для краткости я включил только функцию экспорта из svg в png. Полный код доступен в Jsfiddle: https://jsfiddle.net/parthi2929/r6wb9ka5/6/
- Обратите внимание, что автомобиль отсутствует над выводом (часть png). Также обратите внимание на изменение шрифта. Я хочу экспортировать PNG точно так же, как видно из SVG.
- Можно также заметить, что в jsfiddle я пробовал еще несколько методов, включая использование canvg , rasterizeHTML , но первый даже не отображает никаких шрифтов, в то время как последний дает тот же результат при отсутствии машины ,
Я не мог воспроизвести в собственной области фрагментов SO, поскольку она выдавала ошибку, поэтому прошу прощения за это.