Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用html2canvas.js将带有@font-face的SVG文本元素转换为画布?_Javascript_Canvas_Svg_Font Face_Html2canvas - Fatal编程技术网

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}
您能否提供有关此选项如何回答原始问题的更多详细信息。您能否提供有关此选项如何回答原始问题的更多详细信息。