Javascript 如何使用html2canvas.js将带有@font-face的SVG文本元素转换为画布?
我正在尝试使用Javascript 如何使用html2canvas.js将带有@font-face的SVG文本元素转换为画布?,javascript,canvas,svg,font-face,html2canvas,Javascript,Canvas,Svg,Font Face,Html2canvas,我正在尝试使用html2canvas.js()用JavaScript截图。但是,当页面包含SVG文本元素时,我遇到了一个问题 正如您在下面的屏幕截图上看到的,文本元素是重复的(并且只有一个副本保留了正确的字体系列) 原始正文 画布复制 这是我的密码 HTML 你好,世界 创建画布! CSS 导入url(//fonts.googleapis.com/css?family=Oswald); JS $('createCanvasButton')。在('click',function()上{
html2canvas.js
()用JavaScript截图。但是,当页面包含SVG文本元素时,我遇到了一个问题
正如您在下面的屏幕截图上看到的,文本元素是重复的(并且只有一个副本保留了正确的字体系列)
原始正文
画布复制
这是我的密码
HTML
你好,世界
创建画布!
CSS
导入url(//fonts.googleapis.com/css?family=Oswald);
JS
$('createCanvasButton')。在('click',function()上{
html2canvas(document.body).then(函数(canvas){
document.body.appendChild(画布);
});
});
jsFiddle注意
我一直在寻找一个类似的问题,我发现了这个问题:。
但是,
NodeParser.prototype.getChildren
上的补丁对我不起作用:剩下的文本元素的字体系列不正确
非常感谢 注
我更新了你的代码。请在svg中添加字体base64。也许我回答得太晚了:),这是我使用stackoverflow的第一个答案
字体需要在SVG中更改dataURI insert
JS
const-request=new-XMLHttpRequest();
打开(“get”,“./xxx/demo.woff”);
request.responseType=“blob”;
request.onloadend=()=>{let fontdemodematauri=reader.result}
注意
我更新了你的代码。请在svg中添加字体base64。也许我回答得太晚了:),这是我使用stackoverflow的第一个答案
字体需要在SVG中更改dataURI insert
JS
const-request=new-XMLHttpRequest();
打开(“get”,“./xxx/demo.woff”);
request.responseType=“blob”;
request.onloadend=()=>{let fontdemodematauri=reader.result}
您能否提供有关此选项如何回答原始问题的更多详细信息。您能否提供有关此选项如何回答原始问题的更多详细信息。