怎么把数据放到图片上并打印出来?

图片描述

目前有这个表的所有数据,目的是要打印出有数据的这种表。
请问有什么方法可以实现么
已知用canvas可以实现,但感觉好麻烦

阅读 3.1k
4 个回答

答案上面的大佬已经说啦,你只要把这个作为背景图,往里面填div span 等放文字的标签,最后用 html2canvas 生成一张图片,再保存这张图片就行~
具体网址:html2canvas传送门

html2canvas库 能够将html元素,直接转成canvas

html2canvas(document.querySelector("#table")).then(canvas => {
    //通过canvas能够直接获取base64
});

html2canvas

用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>

window.print 打印更容易

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题