vue 网页打印(vue打印功能实现的两种方法总结)
类别:编程学习 浏览量:143
时间:2021-10-26 11:56:50 vue 网页打印
vue打印功能实现的两种方法总结第一种方法:通过npm 安装插件
1,安装 npm install vue-print-nb --save
2,引入 安装好以后在main.js文件中引入
import Print from 'vue-print-nb' Vue.use(Print); //注册
3,现在就可以使用了
<li id="printTest" > <p>明月照于山间</p> <p>清风来于江上 </p> </li> <button v-print="'#printTest'">打印</button>
4.如需通过链接地址打印:window.location.href = airway_bill; airway_bill 为链接地址。
5.如果内容打印不全,在打印操作时点击更多设置,然后设置缩放。
第二种方法:手动下载插件到本地
插件地址:
https://github.com/xyl66/vuePlugs_printjs
1.在src下新建文件夹plugs,将下载好的print.js放入plugs文件夹下,然后操作如下
import Print from '@/plugs/print' Vue.use(Print) // 注册 <template> <section ref="print"> 打印内容 <li class="no-print">不要打印我</li> </section> </template> this.$print(this.$refs.print) // 使用
2.注意事项 需使用ref获取dom节点,若直接通过id或class获取则webpack打包部署后打印内容为空
3.指定不打印区域
方法1. 添加no-print样式类
<li class="no-print">不要打印我</li>
方法2. 自定义类名
<li class="do-not-print-me-xxx">不要打印我</li>this.$print(this.$refs.print,{'no-print':'.do-not-print-me-xxx'}) // 使用
批量打印
批量打印这里用的其实就是纯js的写法,直接上代码吧:
<template> <li> <ul class="print-ul"> <li v-for="(item,index) of tableData" :key="index" :id="'printli' + index" style="page-break-after:always;"> <li> <p>{{item.date}}</p> <p>{{item.name}}</p> <p>{{item.province}}</p> <p>{{item.city}}</p> <p>{{item.address}}</p> <p>{{item.zip}}</p> </li> </li> </ul> <li @click="handlePrint">打印</li> </li> </template> <script> export default { data() { return { tableData: [{ date: '2016-05-03', name: '王小虎', province: '上海', city: '普陀区', address: '上海市普陀区金沙江路 1518 弄', zip: 200333 }, { date: '2016-05-02', name: '王小虎', province: '上海', city: '普陀区', address: '上海市普陀区金沙江路 1518 弄', zip: 200333 }, { date: '2016-05-04', name: '王小虎', province: '上海', city: '普陀区', address: '上海市普陀区金沙江路 1518 弄', zip: 200333 }, { date: '2016-05-01', name: '王小虎', province: '上海', city: '普陀区', address: '上海市普陀区金沙江路 1518 弄', zip: 200333 }, { date: '2016-05-08', name: '王小虎', province: '上海', city: '普陀区', address: '上海市普陀区金沙江路 1518 弄', zip: 200333 }, { date: '2016-05-06', name: '王小虎', province: '上海', city: '普陀区', address: '上海市普陀区金沙江路 1518 弄', zip: 200333 }, { date: '2016-05-07', name: '王小虎', province: '上海', city: '普陀区', address: '上海市普陀区金沙江路 1518 弄', zip: 200333 }] } }, methods: { handlePrint() { var newWin = window.open(""); //新打开一个空窗口 for (var i = 0; i < this.tableData.length; i++) { var imageToPrint = document.getElementById("printli" + i); //获取需要打印的内容 newWin.document.write(imageToPrint.outerHTML); //将需要打印的内容添加进新的窗口 } const styleSheet = `<style>li{list-style:none}</style>`; newWin.document.head.innerHTML = styleSheet; //给打印的内容加上样式 newWin.document.close(); //在IE浏览器中使用必须添加这一句 newWin.focus(); //在IE浏览器中使用必须添加这一句 setTimeout(function() { newWin.print(); //打印 newWin.close(); //关闭窗口 }, 100); } } } </script> <style> .print-ul { width: 600px; list-style: none; border: 1px solid #e8e8e8; } </style>
总结
到此这篇关于vue打印功能实现的文章就介绍到这了,更多相关vue打印功能内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- vue 选中背景高亮(vue 如何设置背景颜色及透明度)
- vue开发的购物车0.1加0.2(vue实现可改变购物数量的购物车)
- vue手动清除keepalive缓存(vue中keep-alive组件的用法示例)
- vue 父组件向子组件传值几种方法(Vue中父组件向子组件传递数据的几种方法)
- vue设置div大小(Vue实现div滚轮放大缩小)
- vue的弹框怎么用(vue自定义弹框效果确认框、提示框)
- vue3.0 自定义组件(Vue 3.0自定义指令的使用入门)
- springbootvue项目代码(Vue+SpringBoot实现支付宝沙箱支付的示例代码)
- vue浏览pdf文件(如何在vue中使用pdfjs预览pdf文件)
- vue路由有几种实现模式(Vue实现路由过渡动效的4种方法)
- vue滚动条滚动事件(vue实现一个滚动条样式)
- vue离线地图有哪些(vue 集成腾讯地图实现api附DEMO)
- elementui和vue详解(Vue+Element UI实现概要小弹窗的全过程)
- vue router用法(如何在Vue 3中扩展Vue Router链接详解)
- vue怎么使用element(Vue Element前端应用开发之图标的维护和使用)
- vue插槽的分类(vue具名插槽的基本使用实例)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
- 读卖乐园的彩灯(读卖乐园的彩灯)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
热门推荐
- dedecms搜索功能怎么设置详细(取消dedecms 留言簿的验证码的方法)
- phpstudy修改为什么进不去(phpstudy2018升级后站点及phpmyadmin打开404解决方案)
- php生成安全随机数(PHP随机数函数rand与mt_rand的讲解)
- smarty模板的使用方法实例分析(smarty模板的使用方法实例分析)
- 面试怎么谈工资
- mysql怎么删除用户操作(解决mysql删除用户 bug的问题)
- html和js代码结合(JS、CSS和HTML实现注册页面)
- iis安全包括哪些方面(使用华盾IIS备份还原工具备份还原IIS站点图解)
- linuxcrontab怎么不执行(Linux crontab 命令的使用)
- css快速开发(纯 CSS 撸一个漂亮的加载)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9