我正在尝试将mermaid导出为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/
我无法在SO的摘要区域中进行复制,因为它引发了错误,因此请原谅。