vue-print-nb打印插件的应用

项目需求

将学生的二维码,姓名,班级 打印成贴纸,效果如图
在这里插入图片描述
打印后的效果
在这里插入图片描述

技术点

vue使用vue-print-nb进行打印# 使用步骤

使用步骤

1. 安装依赖:npm install vue-print-nb --save

2. 在main.js中引入

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

3. 在组件的打印区域标签上加 id=“printArea”

<div id="printArea"> 打印区域 <div>

4.在组件的打印按钮标签上使用指令 v-print=“print”,print是配置对象

<el-button v-print="print" type="primary">打印</el-button>

5.在组件的data中定义print配置对象

print: {
        id: 'printArea',
        popTitle: '', // 打印配置页上方标题
        extraHead: '', //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
        preview: false, // 是否启动预览模式,默认是false(开启预览模式,可以先预览后打印)
        previewTitle: '', // 打印预览的标题(开启预览模式后出现),
        previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
        zIndex: '', // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
        previewBeforeOpenCallback() {}, //预览窗口打开之前的callback(开启预览模式调用)
        previewOpenCallback() {}, // 预览窗口打开之后的callback(开启预览模式调用)
        beforeOpenCallback() {}, // 开启打印前的回调事件
        openCallback() {}, // 调用打印之后的回调事件
        closeCallback() {}, //关闭打印的回调事件(无法确定点击的是确认还是取消)
        url: '',
        standard: '',
        extraCss: '',
      },

6.配置打印的样式

打印的样式只针对打印,@media print{}不会影响页面的显示样式,本文章中,页面中显示的样式为上下结构,打印的样式为左右结构,

<style lang="scss" scoped>
#printArea{
  text-align: center;
  padding-top: 30px;
}
@media print{
  @page{
  /* 去除页眉 */ 
   /* margin-top: 0; */ 
   /* 去除页脚 */ 
   /* margin-bottom: 0; */ 
   /* 去掉页眉和页脚
   margin: 0; */
   /* 纵向 
   size: portrait;*/
   /* 横向 A4
   size:A4 landscape; */
    size: auto;
    margin: 2mm;
  }
  #printArea{
    padding-top: 0mm;
    // width:45mm;
    // height:63mm;
  }
  #printArea .ewmz{
    position: absolute;
    top: 2mm;
    left: 42mm;
    p{
      width: 40mm;
      font-size: 16px;
    }
    // text-align: center;
    // width: 40mm;
    // font-size: 14px;
    // top: 35mm;
  }
  #printArea .ewm {
    // position: absolute;
    // top: 2mm;
    // left: 2mm;
    // width:100px !important;
    // height: 100px !important;
  }
}
</style>

7.打印区域完整代码

<el-dialog title="学生二维码" :visible.sync="QRCodeVisible" width="380px">
      <div id="printArea">
        <!-- <div > -->
          <canvas ref="qrcodeCanvas" width="150" height="150"></canvas>
          <h1 class="ewmz">{{ QRCodeName }} <p>{{QRCodeClass}}</p></h1>
        </div>
      <!-- </div> -->
      <div slot="footer" class="dialog-footer">
        <!-- @click="print" -->
         <el-button type="primary"  v-print="print">打印</el-button>
        <el-button type="primary" @click="QRCodeVisible = false">关闭</el-button>
      </div>
    </el-dialog>

8.打印机的配置

应用的是得力的打印机: 得力DL-720C(NEW)条码标签打印机(白)(台),以下为配置的图
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Vue.js中的分页打印,你可以使用vue-print-nb插件来实现。vue-print-nb是一个基于Vue.js打印插件,可以方便地实现网页的分页打印功能。 首先,你需要在你的Vue项目中安装vue-print-nb插件。可以使用npm或yarn来进行安装: ``` npm install vue-print-nb --save ``` 或者 ``` yarn add vue-print-nb ``` 安装完成后,在你的Vue项目的入口文件(如main.js)中导入vue-print-nb,并将其注册为全局组件: ```javascript import Vue from 'vue' import VuePrintNB from 'vue-print-nb' Vue.use(VuePrintNB) ``` 然后,在你需要进行打印的组件中,使用vue-print-nb组件包裹需要打印的内容: ```html <template> <div> <!-- 打印按钮 --> <button @click="print">打印</button> <!-- 需要打印的内容 --> <vue-print-nb ref="printContent"> <div> <!-- ... --> </div> </vue-print-nb> </div> </template> <script> export default { methods: { print() { // 调用vue-print-nb插件打印方法 this.$refs.printContent.print() } } } </script> ``` 以上代码中,我们在需要打印的内容外部包裹了一个vue-print-nb组件,并给它添加了一个ref属性,用于获取组件的实例。然后,在打印按钮的点击事件中,调用print方法即可触发打印。 请注意,vue-print-nb插件提供了一些配置项,你可以根据需要进行设置。具体的配置信息和更多用法,请参考vue-print-nb的文档。 希望以上信息对你有帮助!如果你还有其他问题,请继续提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值