前言:
主要是来源于一个需求,我需要将页面生成pdf然后下载,鉴于此页面的特殊性,最后决定的方案是我对后端难以生成的部分进行html截图上传到后端,然后后端将图片以及一些其它的部分根据itext生成pdf,然后返回给我。页面的实现效果是我点击按钮,然后pdf被下载。
参考:
第一章 在前端截图下载
值得注意的是html2canvas要用document.querySelector()来获取元素,如果使用$("#xxx")或者document.getElementById()我这里会提示Element is not attached to a Document(后面再次测试时发现只是$("#xxx")不行,document.getElementById()又可以了)
function downloadStudentData(){
console.log("下载学生数据")
//打印雷达图
html2canvas(document.querySelector("#screenDiv"),{
width: 1000,
height:1000,
}).then(canvas => {
document.body.appendChild(canvas)
var dataUrl = canvas.toDataURL("image/png");
console.log(dataUrl);
let aLink = document.createElement('a');
//取出图片中的base64数据
var bstr = atob(dataUrl.split(',')[1]