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实现任意图片lowpoly动画效果实例
May 11 HTML / CSS
CSS3 box-sizing属性
Apr 17 HTML / CSS
css3中transition属性详解
Sep 02 HTML / CSS
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
May 09 HTML / CSS
css3实现wifi信号逐渐增强效果实例
Aug 09 HTML / CSS
css3中flex布局宽度不生效的解决
Dec 09 HTML / CSS
HTML5新增的表单元素和属性实例解析
Jul 07 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
Aug 18 HTML / CSS
canvas拼图功能实现代码示例
Nov 21 HTML / CSS
HTML5中的Web Notification桌面通知功能的实现方法
Jul 29 HTML / CSS
CSS 制作波浪效果的思路
May 18 HTML / CSS
纯html+css实现奥运五环的示例代码
Aug 02 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/10/09 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
php 浮点数比较方法详解
2017/05/05 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
js使用cookie记录用户名的方法
2015/11/26 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
python选择排序算法实例总结
2015/07/01 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
python 读取、写入txt文件的示例
2020/09/27 Python
商务日语毕业生自荐信
2013/11/23 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
迟到检讨书300字
2014/02/14 职场文书
我的长征观后感
2015/06/09 职场文书
治庸问责工作总结
2015/08/11 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL