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教程(2):网页边框半径和网页圆角
Apr 02 HTML / CSS
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
Apr 01 HTML / CSS
CSS3之背景尺寸Background-size使用介绍
Oct 14 HTML / CSS
CSS中几个与换行有关的属性简明总结
Apr 15 HTML / CSS
css3实现动画的三种方式
Aug 24 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
Jan 31 HTML / CSS
html5弹跳球示例代码
Jul 23 HTML / CSS
HTML5实现音频和视频嵌入的方法
Aug 22 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
Mar 30 HTML / CSS
详解CSS不受控制的position fixed
May 25 HTML / CSS
html+css实现文字折叠特效实例
Jun 02 HTML / CSS
div与span之间的区别与使用介绍
Dec 06 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和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
php中session与cookie的比较
2015/01/27 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
PHP 图片处理
2020/09/16 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
vue实现搜索功能
2019/05/28 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
Windows和Linux动态库应用异同
2016/04/17 面试题
企业治理工作自我评价
2013/09/26 职场文书
清洁工表扬信
2014/01/08 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
国庆促销活动总结
2014/08/29 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
js实现模拟购物商城案例
2021/05/18 Javascript
Python 中的Sympy详细使用
2021/08/07 Python