html2canvas插件对整个网页或者网页某一部分截图并保存为图片
html2canvas能够实现在用户浏览器端直接对整个或部分页面进行截屏。这个脚本将当前页面渲染成一个canvas图片,通过读取DOM并将不同的样式应用到这些元素上实现。它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建。当浏览器不支持Canvas时,将采用Flashcanvas或ExplorerCanvas技术代替实现。以下浏览器能够很好的支持该脚本:Firefox 3.5+, Google Chrome, Opera新的版本, IE9以上的浏览器。
如果你想将网页的某一部分或者全部进行截图从而来生成图片保存,那么html2canvas将会是一个很好的选择!
以下是html2canvas的使用教程:
1.使用jquery插件html2canvas对网页的某一部分截图(根据元素节点,比如id什么的)。
2.将截图到的canvas标签通过toDataURL()方法转成可以传输的base64编码post给后台服务器处理。
3.在后台服务器对传递过来的base64编码处理得到图像并保存。
代码:
1.引用jquery插件
1 <script src="/js/html2canvas.js" type="text/javascript">script>
2.截图通过ajax传输
1 <script type="text/javascript">
function howuse(){
html2canvas(document.getElementById('email_content'), {
onrendered: function(canvas){
6 var html_canvas = canvas.toDataURL(); 7 $.post('/report/send_rep_submit', {html_canvas:html_canvas}, function(json){
8 }, 'json'); 9 } 10 });
}
script>
3.后台服务器处理
1 public function send_rep_submit() { 2 $html_canvas = $this->input->post('html_canvas'); 4 $image = base64_decode(substr($html_canvas, 22));
5 header('Content-Type: image/png'); 6 $filename = "images/report/" . $id . ".png"; 7 $fp = fopen($filename, 'w'); 8 fwrite($fp, $image); 9 fclose($fp); 10 }