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写的模仿iPhone中的返回按钮
Apr 04 HTML / CSS
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
Mar 16 HTML / CSS
css3 矩阵的使用详解
Mar 20 HTML / CSS
CSS3中引入多种自定义字体font-face
Jun 12 HTML / CSS
CSS3 实现倒计时效果
Nov 25 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
Jun 28 HTML / CSS
24个canvas基础知识小结
Dec 17 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
Feb 18 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
Oct 08 HTML / CSS
Web前端:CSS最强总结 附详细代码
Mar 31 HTML / CSS
纯CSS实现一个简单步骤条的示例代码
Jul 15 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代码
2010/08/08 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
js实现密码强度检验
2017/01/15 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python虚拟环境完美部署教程
2019/08/06 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
python定时截屏实现
2020/11/02 Python
python 模拟登录B站的示例代码
2020/12/15 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
家具厂厂长岗位职责
2014/01/01 职场文书
主题党日活动总结
2014/07/08 职场文书
大学辅导员述职报告
2015/01/10 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
导游词之台湾阿里山
2019/10/23 职场文书