目前有这个表的所有数据,目的是要打印出有数据的这种表。
请问有什么方法可以实现么
已知用canvas可以实现,但感觉好麻烦
html2canvas库 能够将html元素,直接转成canvas
html2canvas(document.querySelector("#table")).then(canvas => {
//通过canvas能够直接获取base64
});
用html2Canvas demo例子你可以看看
<body tabindex="1" class="loadingInProgress" id="contbox">
<div class="btn" id="btn">截取屏幕</div>
<div><a id="down1" class="down" href="" download="downImg" >截图下载</a></div>
<div>断剑重铸之日</div>
</body>
**js部分:**
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdn.bootcss.com/html2canvas/0.4.1/html2canvas.js"></script>
<script>
//以下是截图代码
$(function(){
$("#btn").click(function(){
html2canvas($("#contbox"), {
height: $("#contbox").outerHeight() + 20,
width: $("#contbox").outerWidth() + 20 ,
onrendered: function(canvas) {
//将canvas画布放大若干倍,然后盛放在较小的容器内,就显得不模糊了
var timestamp = Date.parse(new Date());
//把截取到的图片替换到a标签的路径下载
$("#down1").attr('href',canvas.toDataURL());
//下载下来的图片名字
$("#down1").attr('download',timestamp + '.png') ;
//document.body.appendChild(canvas);
}
//可以带上宽高截取你所需要的部分内容
});
});
});
</script>
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答4.8k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
答案上面的大佬已经说啦,你只要把这个作为背景图,往里面填div span 等放文字的标签,最后用 html2canvas 生成一张图片,再保存这张图片就行~
具体网址:html2canvas传送门