zhubenshuli

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 }

 

posted on 2013-12-02 10:13  zhubenshuli  阅读(6118)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-12-28
  • 2022-02-27
  • 2021-11-28
  • 2021-11-29
  • 2021-11-29
  • 2022-12-23
  • 2021-12-28
猜你喜欢
  • 2021-12-28
  • 2021-12-29
  • 2021-12-24
  • 2021-12-28
  • 2022-12-23
相关资源
相似解决方案