vue实现打印功能

一、vue-print-nb

1.安装依赖 vue-print-nb

cnpm i vue-print-nb -S

2.在mian.js中引入

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

3.在页面中使用

<div  >
    <p>test1</p>
    <p>test1</p>
</div>
<button v-print="'#printTest'">打印</button>

缺点:

只能打印可见区域,不能分页打印

二、print.js

1. 下载源码

https://github.com/xyl66/vuePlugs_printjs

2. 在mian.js中引入

import Print from '@/plugins/print'
Vue.use(Print)

3. 在页面中使用

<template>
    <div ref="print">
    打印内容
    <div class="no-print">不要打印我</div>
    </div>
    <a-button @click="prints">打印</a-button>
</template>
<script>
export default {
  data () {
    return {}
  },
  methods: {
    prints () {
      this.$print(this.$refs.print)
    }
  }
}
</script>

注意事项 需使用ref获取dom节点,若直接通过id或class获取则webpack打包部署后打印内容为空 指定不打印区域 方法一. 添加no-print样式类

<div class="no-print">不要打印我</div>

方法二. 自定义类名

<div class="do-not-print-me-xxx">不要打印我</div>
this.$print(this.$refs.print,{'no-print':'.do-not-print-me-xxx'}) // 使用