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 相关文章推荐
详解CSS的border边框属性及其在CSS3中的新特性
May 10 HTML / CSS
css3教程之倾斜页面
Jan 27 HTML / CSS
css3实现文字扫光渐变动画效果的示例
Nov 07 HTML / CSS
Css3实现无缝滚动防抖
Sep 14 HTML / CSS
详解HTML5中的标签
Jun 19 HTML / CSS
HTML5中div、article、section的区别及使用介绍
Aug 14 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
May 09 HTML / CSS
HTML5中drawImage用法分析
Dec 01 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
Sep 21 HTML / CSS
HTML5拖拉上传文件的简单实例
Jan 11 HTML / CSS
浅析HTML5页面元素及属性
Jan 20 HTML / CSS
Html5获取用户当前位置的几种方式
Jan 18 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
一个经典的PHP文件上传类分享
2014/11/18 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
jquery中文乱码的多种解决方法
2013/06/21 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
python 实现识别图片上的数字
2019/07/30 Python
python中reload重载实例用法
2020/12/15 Python
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
成人继续教育实施方案
2014/03/01 职场文书
商业项目策划方案
2014/06/05 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL