html2canvas将HTML内容写入Canvas生成图片

print.js  打印插件

第一种方法: 原生js

  printDeal(val) {var printBox = document.getElementById(val);//拿到打印的区域的html内容var newContent = printBox.innerHTML;//将旧的页面储存起来,当打印完成后返给给页面。var oldContent = document.body.innerHTML;//赋值给bodydocument.body.innerHTML = newContent;//执行window.print打印功能window.print();// 重新加载页面,以刷新数据。以防打印完之后,页面不能操作的问题window.location.reload();document.body.innerHTML = oldContent;return false;},

注:这个方法打印完会刷新页面

第二种方法:使用插件 print-js

下方代码逻辑:先通过 html2canvas生成图片,再打印

注:最下边注释掉的代码 是导出下载图片功能

//生成图片saveImg(val) {window.pageYoffset = 0;document.documentElement.scrollTop = 0;document.body.scrollTop = 0;// 先获取你要转换为img的dom节点var node = document.getElementById(val); //传入的id名称// console.log("node", node);var width = node.offsetWidth; //dom宽var height = node.offsetHeight; //dom高var scale = 2; //放大倍数 这个相当于清晰度 调大一点更清晰一点html2canvas(node, {width: width,heigth: height,backgroundColor: "#ffffff", //背景颜色 为null是透明dpi: window.devicePixelRatio * 2, //按屏幕像素比增加像素scale: scale,X: 0,Y: 0,scrollX: 0, //如果左边多个白边 设置该偏移-3 或者更多scrollY: 0,useCORS: true, //是否使用CORS从服务器加载图像 !!!allowTaint: true //是否允许跨域图像污染画布  !!!}).then(canvas => {// console.log("canvas", canvas);var url = canvas.toDataURL(); //这里上面不设值cors会报错this.imgurl = urlconsole.log(url)setTimeout(() => {// this.printDeal(val)print({printable: url,type: 'image',base64: true,header: '',headerStyle: 'text-align:center;color:#f00;width:100%;border:1px #000 solid;',// targetStyles: ['border', 'padding: 15px'],scanStyles: false,style: '' // 表格样式})}, 100)// var a = document.createElement("a"); //创建一个a标签 用来下载// a.download = "1"; //设置下载的图片名称// var event = new MouseEvent("click"); //增加一个点击事件// a.href = url; //此处的url为base64格式的图片资源// a.dispatchEvent(event); //触发a的单击事件 即可完成下载});},

vue js 前端导出 下载 打印 图片 pdf html 局部打印相关推荐

  1. vue:前端导出word 加图片:前端

    导出word word模板 放在vue的 static 里面 return中的数据 引入的包 npm i jszip@^2.6.1 npm i file-saver@^2.0.2 npm i docx ...

  2. vue后端返回数据流 前端导出下载xls文件

    后端返回数据流, 前端导出下载xls文件 export function exportMethod() {axios({method:'get',url: url+'params',responseT ...

  3. vue.js php,vue.js去哪下载

    vue.js可以去vue官网下载,其下载链接为"vuejs.org/v2/guide/installation.html",然后用" 本教程操作环境:Windows7系统 ...

  4. vue和php网站下载,vue.js去哪下载

    vue.js可以去vue官网下载,其下载链接为"vuejs.org/v2/guide/installation.html",然后用" 本教程操作环境:Windows7系统 ...

  5. VUE纯前端导出excel表格功能《转载》

    插件:使用vue-json-excel插件实现Vue纯前端导出简单的Excel表格功能. 使用方法 1. 安装依赖 npm install vue-json-excel 2. 引入组件 a. 全局引入 ...

  6. Vue导出word附表部分横向显示(承接上一篇Vue纯前端导出word)

    Vue纯前端导出word直通车 1. 引入js import htmlDocx from "@/utils/html-docx"; 2. page-break-before:alw ...

  7. 3.Vue.js前端框架:条件判断与列表渲染

    3.1 条件判断 在视图中,经常需要控制某些DOM元素的显示或隐藏.Vue.js提供了多个指令来实现条件的判断,包括 v-if.v-else.v-else-if.v-show指令.下面分别进行介绍. ...

  8. uni-app 系统打印、AirPrint、支持ipad、打印图片 pdf webView文档

    地址:系统打印.AirPrint.支持ipad.打印图片 pdf webView文档 - DCloud 插件市场 系统打印.AirPrint.支持ipad.打印图片 pdf webView文档(ios ...

  9. 10.Vue.js前端框架:过渡

    1.过渡的作用 Vue.js 内置了一套过渡系统,该系统是 Vue.js 为 DOM 动画效果提供的一个特性.在插入.更新或者移除 DOM 时可以触发 CSS 过渡和动画,从而产生过渡效果. 2.单元 ...

最新文章

  1. python 中主线程结束 子线程还在运行么_python 线程之一:线程的创建、启动及运行方式
  2. rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能
  3. Django中html里的分页显示
  4. ubuntu宽带拨号linux,Ubuntu 通过无线进行ADSL拨号
  5. EIGRP Metric计算
  6. mysql order by 中文 排序
  7. 高级数据分析1代码_用Python进行数据分析,让你一看就会
  8. AN EMPIRICAL STUDY OF EXAMPLE FORGETTING DURING DEEP NEURAL NETWORK LEARNING 论文笔记
  9. 每日一乐,健康多滋味~~
  10. redis各种数据结构在项目中的应用场景
  11. Atitit.iso格式蓝光 BDMV 结构说明
  12. 附加属性来控制控件中,要扩展模块的visibility
  13. 数据库,万能密码与密码解析
  14. (已更新)短视频去水印解析客户端小程序源代码
  15. 一区希尔盖服务器找不到,魔兽世界怀旧服:服务器第一成就达成!分享一下心得...
  16. 算法设计——有 2*n 的一个长方形方格,用一个1*2 的骨牌铺满方格。
  17. 探访地面通数据中心:绿色、智能、安全
  18. ImgURL一款简单纯粹的图床程序源码
  19. %02d得意思是什么?
  20. ConcurrentHashMap源码深度解析(一)(java8)——不可不知的基本概念(助你拿下源码事半功倍)

热门文章

  1. 雪花算法的原理和实现
  2. Buaa_OO_一单元总结
  3. 鸿蒙系统荣耀畅玩8A,首发骁龙778G!荣耀50真机照曝光:新配色抢眼
  4. 添加页面填写完必填字段报错
  5. 隐藏video下载按钮
  6. c语言基本字符集ppt,C语言程序设计-字符集.ppt
  7. Linux:常用性能检查命令(内存、CPU 、网络、磁盘、Java应用)
  8. 升达经贸管理学院计算机专业英语四级,关于2018年12月全国大学英语四六级考试郑州升达经贸管理学院考点工作安排的通知...
  9. mysql怎么约束指定默认值_mysql 默认值约束
  10. 如何查看计算机的活动记录表,怎么巧妙的查看电脑使用痕迹