vue插件(vue-print-nb)实现打印功能

news/2024/10/27 22:27:43/

vue插件vue-print-nb实现打印功能

  • 1、安装vue-print-nb
  • 2、引入Vue项目
  • 3、在组件中使用
  • 4、vue-print-nb插件优化

1、安装vue-print-nb

Vue2.0版本安装方法:
npm install vue-print-nb --saveVue3.0版本安装方法:
npm install vue3-print-nb --save

2、引入Vue项目

Vue2.0引入方式:

// 1. 全局挂载
import Print from 'vue-print-nb'
Vue.use(Print)// or// 2. 自定义指令
import print from 'vue-print-nb'
directives: {print
}

Vue3.0引入方式:

// 1. 全局挂载
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 // 2. 自定义指令
import print from 'vue3-print-nb'directives: {print   
}

3、在组件中使用

注意:一定要给需要打印的容器加一个id,点击打印按钮的时候调用传入的id

<!--//通过按钮来调用--><el-button type="primary" round v-print="printContent">打印 </el-button>
<!--//需要打印的页面-->
<div id="printDiv" class="table-box"><div class="client-name">客户名称: XXX</div><tablev-for="(item, index) of tableData"class="table-item":key="index"border="1px solid #ccc"cellspacing="0"cellpadding="0"><tbody><tr><td class="head" rowspan="3">客户地址</td><td rowspan="3" colspan="5">XXX</td><td>本次抄表时间</td><td>202311</td></tr><tr><td>上次抄表时间</td><td>202211</td></tr><tr><td>互感器倍率</td><td>1.5</td></tr><tr><td class="head" rowspan="2">电表编号</td><td class="head" rowspan="2">类型</td><td class="head" colspan="3">正向有功(充电数据)</td><td class="head" colspan="3">反向有功(放电数据)</td></tr><tr><td class="head">上次示数(kWh)</td><td class="head">本次示数(kWh)</td><td class="head">本次充电(kWh)</td><td class="head">上次示数(kWh)</td><td class="head">本次示数(kWh)</td><td class="head">本次放电(kWh)</td></tr><tr><td class="head" rowspan="5">并网表</td><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td class="head">总电量</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td class="head" colspan="8">结算明细</td></tr><tr><td class="head">类型</td><td class="head">电价③</td><td class="head">客户效益费率④</td><td class="head">结算数量(kWh)<br />-</td><td class="head">本期节约电费()<br />=(-)*</td><td class="head">本期客户电费收益()<br />=*</td><td class="head" colspan="2">本期应结算电费()<br />-</td></tr><tr><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td colspan="2">0</td></tr><tr><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td colspan="2">0</td></tr><tr><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td colspan="2">0</td></tr><tr><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td colspan="2">0</td></tr><tr><td class="head">合计</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td colspan="2">0</td></tr><tr><td colspan="3">本期节约电费() a</td><td colspan="5">2000</td></tr><tr><td colspan="3">本期客户电费收益() b</td><td colspan="5">1000</td></tr><tr><td colspan="3">本期应结算电费() c = a - b</td><td colspan="2">1000</td><td colspan="3">1000</td></tr></tbody></table><div class="bottom-box"><div>附页: 浙江省5月份电价、收款通知</div><div>客户经办人</div><div class="unit"><span>收款单位(签章): XXXXXXXXXXXXXXXXXX</span><span>经办人: XXX</span></div></div></div><!--//data的return中--> data() {return {printContent: {id: 'printDiv',// preview: true, // 预览工具是否启用// 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 = trueconsole.log('打开之前')},openCallback (vue) {vue.printLoading = falseconsole.log('执行了打印')},closeCallback () {console.log('关闭了打印工具')},clickMounted (vue) {console.log('点击了打印按钮')// vue.printSet.popTitle = vue.tableHead // 动态设置页眉}};},

4、vue-print-nb插件优化

1.去掉页眉页脚

<style lang="scss" scoped>
@page {size: auto;margin: 0mm;}
</style>

2.打印內容不自动换行问题
只需要给不自动换行的标签加上 word-wrap:break-word; 即可。

<style lang="scss" scoped>.procedure{word-wrap:break-word;}
</style>

http://www.ppmy.cn/news/702068.html

相关文章

利用auto_explain查看sql、procedure、function实时执行计划

文章目录 1.简介1.1 实时的执行计划1.2 查看procedure、function的执行计划 2.load auto_explain3.相关参数设定4.创建测试表5.测试用的function6.运行测试function7.查看执行过程8.关闭auto_explain 1.简介 postgresql中&#xff0c;利用explain 结合一些选项&#xff0c;如a…

耳机插入电脑插孔后只有一边有声音

耳机插入电脑插孔后只有一边有声音&#xff0c; 解决方法&#xff1a; 搜索并打开音频管理器&#xff1a; Realtek HD Audio Manager 检查立体声道是否正常&#xff0c;如果正常&#xff0c;问题可能出在音频播放软件。可以再软件声音设置中修复。

Windows10主机插入耳机只有一边有声音

Windows10主机插入耳机只有一边有声音 在网上看了好几个版本&#xff0c;排除了主机插孔和耳机本身的问题&#xff0c;根据一篇文章在声音设置中找到了答案&#xff0c;原文章不是windows10&#xff0c;所以我找了好一会才找到&#xff0c;所以特地写出来供其他windows10用户参…

小米air2se耳机只有一边有声音怎么办_小米Air2 se评测,对比有线,无线,真无线,到底哪个更适合你...

本文主要从连接&#xff0c;佩戴&#xff0c;音质以及续航四个方面对比小米AIr2 se&#xff0c;小米项圈降噪蓝牙耳机&#xff0c;小米圈铁pro 连接 1&#xff0c;速度&#xff1a;圈铁pro&#xff1e;2se&#xff1e;降噪有限肯定是最快的&#xff0c;air2se支持弹窗&#xff…

【C#】并行编程实战:实现数据并行(4)

本章继续学习实现数据并行&#xff0c;本文主要介绍并行循环中的线程存储。这也是本章节的最后一篇。 本教程对应学习工程&#xff1a;魔术师Dix / HandsOnParallelProgramming GitCode 5、了解并行循环中的线程存储 默认情况下&#xff0c;所有并行循环都可以访问全局…

Kingbase人大金仓数据库安装

1.进入人大金仓官网进项下载安装包和授权文件 2.运行下载的安装包进行安装 3.授权文件时&#xff0c;添加下载的授权文件 4.安装目录可根据自己情况修改 5.初始化数据库&#xff0c;账号密码按自己爱好输入&#xff0c;数据库兼容按照自己项目进行兼容 6.完成安装&#xff0…

百度账号 不用手机号注册

百度云 不用手机号注册 CreateTime--2018年5月2日08:50:22 Author:Marydon 1.说明&#xff1a; 间接实现&#xff1a;现在注册时必须使用手机号注册&#xff0c;但是&#xff0c;我们可以注册成功后&#xff0c;绑定邮箱后再解绑手机号。 2.实现 如果已经有一个账号并且已经绑定…

注册邮箱为什么都要手机号?

这里写自定义目录标题 想注册一个邮箱使用&#xff0c;找了新浪&#xff0c;网易&#xff0c;搜狐三大邮箱网站&#xff0c;发现都需要手机号才可以注册&#xff0c;我就很奇怪了&#xff0c;注册邮箱&#xff0c;为什么要我的手机号呢&#xff1f; 难道是我免费用你的邮箱&…