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过渡_动力节点Java学院整理
Jul 11 HTML / CSS
CSS3教程(2):网页边框半径和网页圆角
Apr 02 HTML / CSS
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
Dec 31 HTML / CSS
关于css兼容性问题及一些常见问题汇总
May 03 HTML / CSS
css3实现六边形边框的实例代码
May 24 HTML / CSS
CSS3中animation实现流光按钮效果
Dec 21 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
Aug 01 HTML / CSS
html5 标签
Jul 16 HTML / CSS
使用HTML5做个画图板的方法介绍
May 03 HTML / CSS
Html5实现用户注册自动校验功能实例代码
May 24 HTML / CSS
canvas与html5实现视频截图功能示例
Dec 15 HTML / CSS
利用html+css实现菜单栏缓慢下拉效果的示例代码
Mar 30 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分页显示制作详细讲解
2006/12/05 PHP
PHP中设置时区方法小结
2012/06/03 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Series和DataFrame使用简单入门
2019/11/13 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
django 模型字段设置默认值代码
2020/07/15 Python
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
优秀毕业生自我鉴定
2014/01/19 职场文书
大三学习计划书范文
2014/05/02 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
2015初中团委工作总结
2015/07/28 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python