所以我正试图找到一种在客户端完全将html转换为pdf的方法,我在某个地方读到过,您可以在客户端上将base64转换为pdf,然后我记得您可以从html和Canvas的Base 64创建画布。因此,我把所有东西都弄好了,直到将base64转换为pdf。 我似乎无法使最后一部分工作。 这是我的代码:
var element = document.getElementById('canvas1');
console.log(element);
if (typeof(element) == 'undefined' || element == null)
{
html2canvas(document.body, {
onrendered: function(canvas) {
document.body.appendChild(canvas);
$('canvas').attr( 'id', 'canvas1' );
}
});
}
setTimeout(function() {
canvas = document.getElementById("canvas1");
var jpegUrl = canvas.toDataURL("image/jpeg");
var pngUrl = canvas.toDataURL(); // PNG is the default
console.log("jp"+jpegUrl);
console.log("png"+pngUrl);
window.open("data:application/pdf;base64," + pngUrl);
console.log('new');
},500);
我正在使用html2canvas库将HTML转换为画布并附加到页面上,目前这一步非常顺利。但是,我无法将base64编码转换为PDF格式。它只会打开一个空白页面,URL为"data:",好像没有加载base64字符串。如果有帮助,将不胜感激。也许我想太多了,肯定有更简单的方法。这里是问题的jsfiddle链接。