vue2.x 如何实现打印功能 打印功能实现详解
dearweb
发布:2022-07-12 08:17:07阅读:
本文主要针对近期不少小伙伴私信我,想了解一下vue2.x如何实现打印,本文将主要介绍结合使用插件 vue-print-nb 来实现打印功能。
安装插件
npm install vue-print-nb --save
使用插件前的准备
import Print from 'vue-print-nb'
// Global instruction
Vue.use(Print);
//or
// Local instruction
import print from 'vue-print-nb'
directives: {
print
}vue3.下使用
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
// Local instruction
import print from 'vue3-print-nb'
directives: {
print
}基本使用
1. 直接打印页面HTML
1)方法
① 给要打印的部分设置一个 id
② 在打印按钮中添加 v-print="'#id名'"
2)代码(以表格为例)
<template>
<div>
<a-button v-print="'#printMe'">打印</a-button>
<a-table :columns="columns" :data-source="data" bordered id="printMe">
</a-table>
</div>
</template>
<script>
const columns = [
{
title: 'Name',
dataIndex: 'name',
},
{
title: 'Cash Assets',
className: 'column-money',
dataIndex: 'money',
},
{
title: 'Address',
dataIndex: 'address',
},
];
const data = [
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
];
export default {
data() {
return {
data,
columns,
};
},
};
</script>个性化设置
1)方法
打印按钮的 v-print 绑定一个对象
2)代码
<template>
<div class="box">
<a-table :columns="columns" :data-source="data" bordered id="printMe"></a-table>
<a-button v-print="printContent" class="btn no-print">打印</a-button>
</div>
</template>
<script>
const columns = [
{
title: 'Name',
dataIndex: 'name',
},
{
title: 'Cash Assets',
className: 'column-money',
dataIndex: 'money',
},
{
title: 'Address',
dataIndex: 'address',
},
];
const data = [
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
];
export default {
data() {
return {
data,
columns,
tableHead: '测试表格',
printContent: {
id: "printMe", // 打印的区域
preview: false, // 预览工具是否启用
previewTitle: '这是预览标题', // 预览页面的标题
popTitle: '', // 打印页面的页眉
extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
previewBeforeOpenCallback() {
console.log('正在加载预览窗口')
},
previewOpenCallback() {
console.log('已经加载完预览窗口')
},
beforeOpenCallback(vue) {
vue.printLoading = true
console.log('打开之前')
},
openCallback(vue) {
vue.printLoading = false
console.log('执行了打印')
},
closeCallback() {
console.log('关闭了打印工具')
},
clickMounted(vue){
console.log('点击了打印按钮');
vue.printContent.popTitle = vue.tableHead // 动态设置页眉
}
}
}
}
};
</script>3)效果展示
① 预览工具
3. 打印URL
1)方法
① 给 打印按钮的 v-print 绑定一个对象
② 对象添加 url 属性
2)代码
<template>
<div class="box">
<a-table :columns="columns" :data-source="data" bordered></a-table>
<a-button v-print="printContent" class="btn no-print" >打印</a-button>
</div>
</template>
<script>
const columns = [
{
title: 'Name',
dataIndex: 'name',
},
{
title: 'Cash Assets',
className: 'column-money',
dataIndex: 'money',
},
{
title: 'Address',
dataIndex: 'address',
},
];
const data = [
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
];
export default {
data() {
return {
data,
columns,
tableHead: '测试表格',
printContent: {
url: 'http://localhost:8081/', // 打印的url
preview: false, // 预览工具是否启用
previewTitle: '这是预览标题',
popTitle: '', // 打印页面的页眉
extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
}
}
},
};
</script>API介绍

上面就是关于打印工具的介绍,希望可以帮助到各位小伙伴喔!!!!!
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧
