我有一个关于将 HTML 转换为图像的过程的问题。
我一直在使用类似于此处找到的代码片段的代码。
一切似乎都很好,除了我得到的图像将一些单词变成了破折号。因此,页面上可能会显示“提交”的内容现在会在图像中显示“-”。同样,可能会说“有建议吗?” 页面上的图像现在会显示“---”。否则,所有比例、格式和颜色都是正确的。我只是对某些文本有问题。我在 textarea 标签内的文本没有问题。
function createImage() {
var canvas = $('<canvas/>');
var ctx = canvas[0].getContext("2d");
var data = "<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='1000'>" +
"<foreignObject width='100%' height='100%'>" +
"<div xmlns='http://www.w3.org/1999/xhtml'>" +
$("body").html() +
"</div>" +
"</foreignObject>" +
"</svg>";
var DOMURL = self.URL || self.webkitURL || self;
var img = new Image();
var svg = new Blob([data], { type: "image/svg+xml;charset=utf-8" });
var url = DOMURL.createObjectURL(svg);
img.onload = function () {
ctx.drawImage(img, 0, 0);
DOMURL.revokeObjectURL(url);
};
img.src = url;
return img;
}
有没有人有任何想法?