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截取字符串实例代码【推荐】
Jun 07 HTML / CSS
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
Nov 13 HTML / CSS
CSS3关于z-index不生效问题的解决
Feb 19 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
Jul 05 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
Mar 24 HTML / CSS
常用的HTML5列表标签
Jun 20 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
Jan 22 HTML / CSS
Canvas实现保存图片到本地的示例代码
Jun 28 HTML / CSS
Html5 video标签视频的最佳实践
Feb 26 HTML / CSS
css3 实现文字闪烁效果的三种方式示例代码
Apr 25 HTML / CSS
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
May 25 HTML / CSS
CSS+HTML 实现顶部导航栏功能
Aug 30 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面试题附答案
2009/01/07 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
简单介绍Ruby中的CGI编程
2015/04/10 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
python计算二维矩形IOU实例
2020/01/18 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
大学学习生活感言
2014/01/18 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
追悼会答谢词
2015/01/05 职场文书
六一活动主持词
2015/06/30 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js