vue2如何区域打印

首先安装vue-print-nb
	npm i vue-print-nb -s

在main.js 中全局引入

import Print from 'vue-print-nb'
Vue.use(Print)

在需要打印的标签上给个id,
在需要触发打印的地方写上触发方法

<div id="printThis">
	打印这里
</div>
<button v-print='print'>点我打印</button>

在data里设置打印参数

data(){
	return{
		print:{
			// 常用参数就两个
			id:'printThis',//需要打印的标签id
			extraCss:'./print.css',//新建一个print.css放在public里面,

			//其他没啥用的参数-时态
			beforeOpenCallback:()=>{},//打开打印窗口前
			openCallback:()=>{},//打开打印窗口时
			closeCallback:()=>{},//打开打印窗口后
			

			/*
				其他没啥用的参数--预览
				这个预览不是window自带的预览而是一个覆盖全局的div
				带样式显示你要打印的东西
			*/
			 preview: false, // 是否开启预览,默认false
			 previewTitle:'打印一下',//预览页面的标题
			 previewPrintBtnLabel:'打印',//预览页面的打印按钮文字,
			 zIndex:20002,//预览页面的z轴
			 previewBeforeOpenCallback:()=>{},//打开预览窗口前
			 previewOpenCallback :()=>{},//已经打开预览窗口
			 
			 //其他没啥用的类型---是真没啥用
			 standard:'HTML5',//打印的文本类型,可以不设置,可选 HTML5/loose/strict
			 extraHead:'',//打印头部,可以在window自带的打印预览中取消显示这个
			 clickMounted:()=>{},//点了v-print之后除了打印还能干点别的
			 url:'',//打印别的页面,不同源打不开,没有测试过和id放一起会出现什么问题
			 asyncUrl:''//异步打印别的页面,同上
			 
		}
	}
}

踩坑注意

1.打印总是多一个空白页

在带id的标签上加一个透明边框

border:1px soild transparent;
2.页面上有需要隐藏的东西

在public/index.html中写入一个样式

	@media print {
        .noprint{
          display: none;
        }
      }

虽然插件本身就自带这个样式,但不知道为什么没有生效,需要自己写一个

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值