通过html2canvas插件将HTML页面生成图片

最近在学习中接触到了一个将HTML页面渲染成一张图片的功能,那就是html2canvas这个脚本,html2canvas它可以实现在客户端浏览器上面对整个页面或者部分页面进行截图。
html2canvas它只是一个插件,它可以通过纯粹的JavaScript对页面进行渲染,从而生成一张Canvas图片。
这个插件里面的方法在调用的时候,它不需要任何来自于服务器的渲染,它的图片都是在客户端浏览器上面进行生成创建的,所以它不需要任何来自控制器的渲染,只需要在页面上引用,再在HTML页面上进行渲染就可以了。
下面介绍一下他的使用:
需要先引用html2canvas插件;
然后调用它里面的方法,下面是它再HTML页面的写法:
先添加一个触发图片生成的事件,再再那个事件里面进行方法的调用,我用我最近在学习的一个项目进行详解:
html2canvas(("div"),onrendered:function(canvas)vardata=canvas.toDataURL();varprintWindow=window.open();printWindow.document.write(<imgsrc="+data+"/>);)html2canvas(("div名称"), { onrendered: function (canvas) { var data = canvas.toDataURL(); var printWindow = window.open(); printWindow.document.write('<img src="' + data + '"/>'); } }) 上面代码就是一个生成图片的效果的正确代码,下面拆开进行分析 首先是第一句html2canvas((“div名称”),它是代表获取到需要生成图片的部分的元素标签的名称或者ID;
第二句就是onrendered: function (canvas),这句里面除了参数都是固定的写法,function括号里的参数是可以随意的
第三句就是var data = canvas.toDataURL(),前面的var是一个声明变量的语法,后面跟着的data是声明的变量,这里的=号不是相等的=,而是赋值,给前面声明的变量赋值,canvas.toDataURL()这句代表的是页面获取到需要截取图片部分生成传过来的参数,转化成一个路径,整句代码的意思就是通过var定义一个变量data来获取页面需要生成图片部分的参数路径;
第四句var printWindow = window.open();就是通过JQuer的open()的方法,在window页面上打开一个新的页面,然后通过var定义一个变量接收这个方法
第五句就是printWindow.document.write(’通过html2canvas插件将HTML页面生成图片’); 它呢就是在打开的新页面上直接输出一个img标签,然后拼接字符串:将页面需要截图部分的图片路径拼接在新页面输出的img标签的src=的后面从而在新的页面上把页面生成图片部分的图片显示出来;下面是效果图:我通过一个点击事件触发生成图片的这个方法,通过ID将某一个部分生成图片,在新的页面上输出截下来的图片:第一个图片圈住部分是需要截图下来的部分,第二张就是通过html2canvas插件生成的一张图片
通过html2canvas插件将HTML页面生成图片
通过html2canvas插件将HTML页面生成图片