和
window.print()
效果一样,调出打印窗口,只是当前使用的插件是vue-print-nb
官网地址:vue-print-nb
npm install vue-print-nb --save
import Print from 'vue-print-nb'
// 全局使用
Vue.use(Print);
//or
// 单个文件中引入指令
import print from 'vue-print-nb'
directives: {
print
}
npm install vue3-print-nb --save
// 全局
import { createApp } from 'vue'
import App from './App.vue'
import print from 'vue3-print-nb'
const app = createApp(App)
app.use(print)
app.mount('#app')
//or
// 局部
import print from 'vue3-print-nb'
directives: {
print
}
<template>
<div>
<el-button v-print="printObj">打印</el-button>
</div>
<div id="printContainer">
打印内容区域,在指定打印区域内容的标签上绑定id
</div>
</template>
<script>
export default {
data() {
return {
printObj: {
id: "printContainer", // 这里是要打印元素的id
popTitle: "卡", // 打印的标题
extraCss: "", // 打印可引入外部的一个 css 文件
extraHead: "", // 打印头部文字
beforeOpenCallback (vue) {
vue.printLoading = true
console.log('打开之前')
},
openCallback (vue) {
vue.printLoading = false
console.log('执行了打印')
},
closeCallback (vue) {
console.log('关闭了打印工具')
}
}
},
};
}
}
}
</script>
<style scoped>
@page {
/* 打印A4大小,不需要删除即可 */
size: auto A4 landscape;
margin: 3mm;}
</style>