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+jQuery实现的在线答题功能
Apr 25 HTML / CSS
利用css3-animation实现逐帧动画效果
Mar 10 HTML / CSS
CSS3实现莲花绽放的动画效果
Nov 06 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
Jul 17 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
Jul 20 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
Jan 07 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
Jan 14 HTML / CSS
html5桌面通知(Web Notifications)实例解析
Jul 07 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
Jan 01 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
Jul 25 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
Apr 08 HTML / CSS
html原生table实现合并单元格以及合并表头的示例代码
May 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
模仿OSO的论坛(五)
2006/10/09 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
discuz目录文件资料汇总
2014/12/30 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
javascript类型转换示例
2014/04/29 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
python判断设备是否联网的方法
2018/06/29 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
python反编译学习之字节码详解
2019/05/19 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
广告语设计及教案
2014/03/21 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
新闻通讯稿范文
2015/07/22 职场文书
认识实习感想
2015/08/10 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android