html2 canvas svg不能识别的解决方案


Posted in HTML / CSS onJune 03, 2021

  最新有个功能需要截取网页成图片,于是用到比较流行的html2canvas,本来以为能顺顺利利的搞定,后来发现网页上的流程图连接线不在截图中。于是各种百度、bing,也搜到好多,但是感觉没有一个完整的代码,现在自己解决了,分享下代码。

  首先需要下载canvg.js,github地址:https://github.com/canvg/canvg

function showQRCode() {
                scrollTo(0, 0);
               
                if (typeof html2canvas !== 'undefined') {
                    //以下是对svg的处理
                    var nodesToRecover = [];
                    var nodesToRemove = [];
                    var svgElem = $("#divReport").find('svg');//divReport为需要截取成图片的dom的id
                    svgElem.each(function (index, node) {
                        var parentNode = node.parentNode;
                        var svg = node.outerHTML.trim();

                        var canvas = document.createElement('canvas');
                        canvg(canvas, svg); 
                        if (node.style.position) {
                            canvas.style.position += node.style.position;
                            canvas.style.left += node.style.left;
                            canvas.style.top += node.style.top;
                        }

                        nodesToRecover.push({
                            parent: parentNode,
                            child: node
                        });
                        parentNode.removeChild(node);

                        nodesToRemove.push({
                            parent: parentNode,
                            child: canvas
                        });

                        parentNode.appendChild(canvas);
                    });
                    html2canvas(document.querySelector("#divReport"), {
                        onrendered: function(canvas) {
                            var base64Str =canvas.toDataURL();//base64码,可以转图片

                            //...

                            $('<img>',{src:base64Str}).appendTo($('body'));//直接在原网页显示
                         }                     });                }            }

到此这篇关于html2+canvas svg不能识别的解决方案的文章就介绍到这了,更多相关html2 canvas svg不能识别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3 border-image详解、应用及jQuery插件
Aug 29 HTML / CSS
纯css3实现的动画按钮的实例教程
Nov 17 HTML / CSS
css3的transform造成z-index无效解决方案
Dec 04 HTML / CSS
纯css3实现图片翻牌特效
Mar 10 HTML / CSS
使用CSS3来匹配横屏竖屏的简单方法
Aug 04 HTML / CSS
css3实现的多级渐变下拉菜单导航效果代码
Aug 31 HTML / CSS
CSS3绘制不规则图形的一些方法示例
Nov 07 HTML / CSS
html5+css3之制作header实例与更新
Dec 21 HTML / CSS
html5基础教程常用技巧整理
Aug 20 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
Jul 07 HTML / CSS
针对HTML5的Web Worker使用攻略
Jul 12 HTML / CSS
Html5插件教程之添加浏览器放大镜效果的商品橱窗
Jan 07 HTML / CSS
HTML+CSS 实现顶部导航栏菜单制作
Jun 03 #HTML / CSS
CSS极坐标的实例代码
css height属性中的calc方法详解
Jun 03 #HTML / CSS
html+css实现文字折叠特效实例
html+css实现分层金字塔的实例
html+css实现赛博朋克风格按钮
HTML+CSS制作心跳特效的实现
You might like
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
Vue请求java服务端并返回数据代码实例
2019/11/28 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
python的正则表达式re模块的常用方法
2013/03/09 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
Python文件操作的面试题
2013/06/22 面试题
给医务人员表扬信
2014/01/12 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
大学生求职意向书
2015/05/11 职场文书