Vue3使用hiprint——批次打印条码

例图:打印编号

一、安装Vue-Plugin-HiPrint

要开始使用 Vue-Plugin-HiPrint,首先需要安装它。可以使用 npm

npm install vue-plugin-hiprint --save

二、在main.js中引入 Vue-Plugin-HiPrint

在您的 main.js 或任何其他入口文件中,您可以按以下方式引入它:

1、main.js中引入

//打印hiprint
import {VuePluginHiPrint,disAutoConnect} from 'vue-plugin-hiprint';

Vue.use(VuePluginHiPrint)
  .mount('#app').$nextTick(() => {
    disAutoConnect();
  })

这会将 Vue-Plugin-HiPrint 注册为 Vue 插件,使其可用于您的整个应用程序。

2、组件中引入

import {hiPrintPlugin } from 'vue-plugin-hiprint'

三、创建打印模板

网址:hiprint.io

建议:将json保存到数据库中,或者保存在字典数据中

四、引入样式

创建了打印模板后,可以在Vue 组件中使用 Vue-Plugin-HiPrint 来触发打印操作。首先,先要在项目的index.html文件中引入print-lock.css样式文件,这个文件在node_modules/vue-plugin-hiprint/dist/目录。

注意:需复制一份print-lock.css样式文件放到与index.html同级目录下,否则打印样式有问题(我复制在public文件夹中)。在index.html文件中添加

<!--    * 以处理打印所需css, 当然你也可以自行处理-->
<!--    * 比如: index.html目录下放一个print-lock.css, 然后在index.html添加:-->
<link rel="stylesheet" type="text/css" media="print" href="/public/print-lock.css">

不加会出现样式问题,例如批次打印都堆叠在第一页

五、组件中使用打印

使用按钮触发打印事件

 <el-col :span="1.5">
        <el-button type="warning"  v-hasPermi="['hm-cell-info:edit']" plain icon="edit" @click="handleBatchPrint">
          打印库位条形码
        </el-button>
      </el-col>



//打印按钮
function handleBatchPrint(){
  hiPrintPlugin.disAutoConnect();  //取消自动打印直接连接客户端
  hiprint.init();//初始化
  let hiprintTemplate= new hiprint.PrintTemplate({
    template: JSON.parse(printTemplate.value),
  });//printTemplate是打印模板json
  let printData= selectData.value;//选中数据数组
  console.log("打印数据",printData)
  hiprintTemplate.print(printData)//触发打印

}

六、问题处理

错误一:报错webSocket

解决方式:在main.js中添加disAutoConnect方法

错误二:条码重叠

解决方式:index.html中导入print-lock.css样式

参考网址:

【vue-plugin-hiprint】常见问题汇总① (qq.com)

使用vue-hiprint完成标签打印功能,可以按照以下步骤进行操作: 1. 安装vue-hiprint插件 可以通过npm安装vue-hiprint插件,命令如下: ```npm install vue-hiprint``` 2. 引入vue-hiprint插件 在Vue项目的main.js中引入vue-hiprint插件,代码如下: ``` import Vue from 'vue' import HiPrint from 'vue-hiprint' Vue.use(HiPrint) ``` 3. 编写标签模板 创建标签模板,可以使用HTML和CSS编写模板。例如,以下是一个2×4的标签模板: ``` <div class="label-wrapper"> <div class="label"> <div class="name">Name 1</div> <div class="address">Address 1</div> </div> <div class="label"> <div class="name">Name 2</div> <div class="address">Address 2</div> </div> <div class="label"> <div class="name">Name 3</div> <div class="address">Address 3</div> </div> <div class="label"> <div class="name">Name 4</div> <div class="address">Address 4</div> </div> </div> <style> .label-wrapper { display: flex; flex-wrap: wrap; } .label { width: 50%; height: 50%; border: 1px solid #000; padding: 10px; } .name { font-weight: bold; } .address { margin-top: 10px; } </style> ``` 4. 使用vue-hiprint组件 在Vue组件中使用vue-hiprint组件,并传入标签模板,代码如下: ``` <template> <hi-print ref="print" :debug="true"> <div class="label-wrapper"> <div class="label"> <div class="name">Name 1</div> <div class="address">Address 1</div> </div> <div class="label"> <div class="name">Name 2</div> <div class="address">Address 2</div> </div> <div class="label"> <div class="name">Name 3</div> <div class="address">Address 3</div> </div> <div class="label"> <div class="name">Name 4</div> <div class="address">Address 4</div> </div> </div> </hi-print> </template> ``` 5. 调用打印方法 在Vue组件中调用vue-hiprint打印方法,并指定打印的标签大小和数量,代码如下: ``` this.$refs.print.print({ mediaSize: { width: '2.5in', height: '1.5in' }, copies: 8 }) ``` 这样就可以完成使用vue-hiprint插件实现标签打印功能了。在调用打印方法时,可以根据需要自定义标签大小和打印的数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值