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制作动态进度条以及附加jQuery百分比数字显示
Dec 13 HTML / CSS
CSS3之多背景background使用示例
Oct 18 HTML / CSS
使用CSS3来代替JS实现交互
Aug 10 HTML / CSS
css3 transform导致子元素固定定位变成绝对定位的方法
Mar 06 HTML / CSS
CSS3 实现时间轴动画
Nov 25 HTML / CSS
HTML5 本地存储和内容按需加载的思路和方法
Apr 07 HTML / CSS
html5 canvas-1.canvas介绍(hello canvas)
Jan 07 HTML / CSS
html5画布旋转效果示例
Jan 27 HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
Sep 02 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
Jan 20 HTML / CSS
webView加载html图片遇到的问题解决
Oct 08 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
Apr 08 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
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
jquery的live使用注意事项
2014/02/18 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
javascript中this关键字详解
2016/12/12 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python中自定义函数的教程
2015/04/27 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
建筑专业自荐信
2013/10/18 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
2019个人半年工作总结
2019/06/21 职场文书
Python中requests做接口测试的方法
2021/05/30 Python
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js