一、使用到的插件:vue-barcode(vue条形码插件),Lodop打印控件(我这里使用windows64版,所以以此进行举例说明。)。

详述:前者(指vue-barcode)针对在前端界面上观察到的效果。

   使用:

    1.安装:npm install @xkeshi/vue-barcode vue

    2.main.js中引入注册组件:import VueBarcode from '@xkeshi/vue-barcode';   Vue.component('barcode', VueBarcode);

    3.相应界面中使用:(注:这里仅提供简单使用的流程,具体有关barcode使用中的其它属性的设置请自行百度查询。)

        <barcode
                                value="1234567890"
                                :options="{ widht:100,height:50, background:'rgba(255,255,255,.0)'}"
                                style="width: 100%;height: 100%;">
                            </barcode>

      后者(指Lodop)在打印时需要使用到其专用的打印代码。(决定最终打印出来的条码)

   说明: 

     1.Lodop官网:http://www.lodop.net/

     2.Lodop官网下载中心(下载自己所需的相应版本):http://www.lodop.net/download.html

     3.Lodop在线样例:http://www.lodop.net/LodopDemo.html

    使用:

    1.先去下载中心下载Lodop打印组件发行包。如图所示:

      

    2.项目中创建LodopFun.js文件,该文件内容就是上一步中下载的安装包中的LodopFuncs.js文件。

     注意:记得在该文件的最后 导出getLodop函数。例如:export default getLodop

    3.在相应文件引入getLodop。如:import getLodop from '@/utils/LodopFuncs';

    4.代码举例:

      

         
            <div class="dayinID" v-for="(item,index) in goodCodeList" :key="item.uid" :id="'dayinID_'+index">
                        <div class="row5"> 品牌:{{ item.brandName }}</div>
                        <div class="row1">{{ item.goodName }}</div>
                        <div class="row2">{{ item.skuName }}</div>
                        <div class="row3">
                            价格:¥{{ item.price }}  
                        </div>
                        <div class="row4">
                            <barcode
                                :value="item.code"
                                :options="{ widht:100,height:50, background:'rgba(255,255,255,.0)'}"
                                style="width: 100%;height: 100%;">
                            </barcode>
                        </div>
                        <div class="tiaoma-space"></div>
                    </div>
                    <el-button class="btnClass" type="primary" plain @click="toClick" >打印</el-button>
style:
   .dayinID{width: 237px;height: 155px;border: 1px solid #000;margin-top: 10px;}
    .row5,.row1{ width: 100%;height: 20px;line-height: 20px;color: #000;text-align: center;font-weight: 700;font-size: 0.8rem;}
    .row2{ width: 100%;height: 25px;text-align: center;color: #000;font-weight: 700;font-size: 1.2rem;line-height: 25px;}
    .row3{ width: 100%;height: 20px;line-height: 20px;text-align: center;font-size: 0.8rem;}
    .row4{ width: 100%;height: 60px;}
    .tiaoma-space{width: 100%;height: 10px;margin-top: 20px;}
 
data中:
  

         goodCodeList:[  
            {uid: 1, brandName: '苹果',goodName: 'iphone13 Pro',code: '11112222333',price: 900, unit:'个', skuName: '8+526G', num: 3},
                ],
methods中:
      
      toClick() {        // 商品条码
                const LODOP = getLodop()
                if (LODOP) {
                    this.goodCodeList.forEach( (item,index) => {  // 这里为打印的商品条码
                          // 反之,则以商品的数量作为打印份数依据。(注:这里是该商品条码打印的份数)
                            for( let i=0; i<item.num; i++) {
                                var strBodyStyle = '<style>'
                                strBodyStyle += '.dayinID { width: 200px;height: 155px;border: 1px solid #000;margin-top: 10px;}'
                                strBodyStyle += '.row5,.row1 { width: 100%;height: 20px;line-height: 20px;color: #000;text-align: center;font-weight: 700;font-size: 0.8rem;}'
                                // strBodyStyle += '.row1>span { width: 50%;height: 100%;text-align: center;line-height: 30px;color: #000;float: left;}'
                                strBodyStyle += '.row2 { width: 100%;height: 25px;text-align: center;color: #000;font-weight: 700;font-size: 1.2rem;line-height: 25px;}'
                                strBodyStyle += '.row3 { width: 100%;height: 20px;line-height: 20px;text-align: center;font-size: 0.8rem;}'
                                strBodyStyle += '.row4 { width: 100%;height: 60px;}'
                                strBodyStyle += '.tiaoma-space{width: 100%;height: 10px;margin-top: 20px;}'
                                strBodyStyle += '</style>' // 设置打印样式
                                var strFormHtml = strBodyStyle + '<body>' + document.getElementById('dayinID_'+index).innerHTML + '</body>'   // 获取打印内容
                           
                                LODOP.PRINT_INIT('')  //初始化
                                LODOP.SET_PRINT_PAGESIZE(3, 790, 0, '')  // 设置横向(四个参数:打印方向及纸张类型(0(或其它):打印方向由操作者自行选择或按打印机缺省设置;1:纵向打印,固定纸张;2:横向打印,固定纸张;3:纵向打印,宽度固定,高度按打印内容的高度自适应。),纸张宽(mm),纸张高(mm),纸张名(必须纸张宽等于零时本参数才有效。))
                           
                                LODOP.ADD_PRINT_HTM('1%', '1%', '98%', '98%', strFormHtml)        // 设置打印内容
                                // LODOP.ADD_PRINT_TEXT('1%', '1%', '98%', '98%', strFormHtml)    // 设置打印内容
                                LODOP.ADD_PRINT_BARCODE( 85, 55, 230, 60, '128Auto', item.code);   // 条码(六个参数:Top,Left,Width,Height,BarCodeType,BarCodeValue)
                                // LODOP.SET_PREVIEW_WINDOW(2, 0, 0, 800, 600, '')  // 设置预览窗口模式和大小
                                // LODOP.PREVIEW()  // 预览。(这里可以进行预览,注意这里打开时记得把下面的print先注释。)另外,这里的预览只显示单个商品 打印出来的效果即该预览效果。
                                LODOP.PRINT();  // 打印
                            }
                    });
                }
            },  

  5.注:

    1.我这里的代码没有默认设置打印机相关的代码。有需要的可自行去百度。当然我这里没有的情况下就需要去控制面板的设备和打印机中 将相应的打印机设为默认。

    2.在设备和打印机中 右键打印机(设为默认的打印机)--->>>打印首选项。在其中设置自己相应的信息。

    例如(我的:)

      

     

   END:如果最后打印出来的出现样式不一致问题,请自己参考官网案例调整自己的代码。

      如果打印机出现连续走纸情况,首先可以先进行虚拟打印(举例:可使用windows的导出为 WPS PDF查看),要是没问题则就需要对打印机进行相关设置,即上面两个图中的信息。

      最后,以上信息仅供参考,具体问题具体分析。最终还是需要自己进行相应的分析。

    

Vue 使用Lodop进行标签(条码)打印的更多相关文章

  1. C# 标签(条码)的打印与设计(一)

    C# 标签(条码)的打印与设计(一) C# 标签(条码)的打印与设计(二) 总结:自定义设计条码器.

  2. [原创]Lodop打印, 以及Lodop引用css文件控制打印样式的问题.

    最近在做Lodop打印功能: 思路是:  用MasterPage搭个打印页面的框架, 然后在具体的页面中填入数据, 打印的样式由母版页和CSS来控制. 困扰了一天的问题是:  在打印的JS文件中, 引 ...

  3. C# 标签(条码)

    C# 标签(条码) 上一篇说到条码的打印,主要是通过读取模板定义文件(XML文件),然后结合从数据库中读取的动态数据结合而产生条码.下面主要说一下如何设计这个条码模板.设计过程也很简单,只需要简单的拖 ...

  4. AX 条码打印

    AX 条码打印集成在BarCode类及其之类barcode*. 由子类的defaultFont方法指定字体属性. eg, BarcodeCode39 指定条码字体"BC C39 3 to 1 ...

  5. vue之给a标签赋值

    <li v-for="(bp,index) in bpLists"> <a class="bidPublicityTitle" :href=& ...

  6. BarTender SDK 实现调用模板条码打印

    Demo:MyZebraPrint 基于BatTender .Net SDK 实现调用模板进行条码打印 有需要的朋友可以拿去研究下 在已经安装了BatTender10.1的电脑里测试通过. 下载地址: ...

  7. PowerBuilder -- 条码打印

    # 使用ocx控件 使用微软的MSBCODE9.OCX,但是注册老不成功,需要安装office之后才能注册成功,不知道有没有好的处理方法?? # 使用字体 字体下载:http://download.c ...

  8. smartforms 条码打印

    转自:http://blog.csdn.net/zhongguomao/article/details/6759642 SAP 条码打印有 新旧 两种技术方法:1.传统的(旧):将数据发送到打印机上, ...

  9. vue文件中style标签的几个标识符

    .vue文件中style标签的几个标识符 在人生就要绝望的时候, 被编辑器所提示的一个scopedSlots所拯救. 卧槽, 写到最后才发现这个属性的具体卵用. 详情见最后解决办法. 问题背景 问题由 ...

  10. sublime text 3插件改造之AutoFileName去掉.vue文件中img标签后面的width和height,完全去掉!!

    在.vue文件中img标签使用autofilename提示引入文件时,会在文件后面插入宽度高度,如下图: 文件后面会自动插入height和width,其实这两玩意儿在大多数时候并没卵用,然后就开始了百 ...

随机推荐

  1. python压缩解压文件

    转载CSDN坏菠萝:https://blog.csdn.net/abcwanglinyong/article/details/80840813

  2. [BSR文摘] 如何解释CRP正常而多普勒超声显示关节炎活动的RA亚型

    如何解释CRP正常而多普勒超声显示关节炎活动的RA亚型 Braford CM, et al.Rheumatology 2016. Present ID: 72. 背景:临床门诊越来越多地利用肌肉骨骼超 ...

  3. 代码随想录算法训练营day08 | leetcode 344.反转字符串/541. 反转字符串II / 剑指Offer05.替换空格/151.翻转字符串里的单词/剑指Offer58-II.左旋转字符串

    基础知识 // String -> char[] char[] string=s.toCharArray(); // char[] -> String String.valueOf(str ...

  4. 地理探测器简介(R语言)

    地理探测器 1. 地理探测器原理 空间分异性是地理现象的基本特点之一.地理探测器是探测和利用空间分异性的工具.地理探测器包括4个探测器. 分异及因子探测:探测Y的空间分异性:以及探测某因子X多大程度上 ...

  5. LeetCode-1001 网格照明

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/grid-illumination 题目描述 在大小为 n x n 的网格 grid 上,每个单元 ...

  6. vscode注释插件

    VSCODE注释插件:koro1FileHeader 按koroFileHeader 插件,配置默认注释 1.在扩展中搜索koroFileHeader,安装 2.安装完成后,在设置中搜索,koro1F ...

  7. Visual Studio 2022 不支持 .NET Framework 老版本 项目解决办法

    Visual Studio 2022 不支持 .NET Framework老版本 (4.5) 项目解决办法 新电脑安装的是Visual Studio 2022,打开老项目的时候发现没有.net fra ...

  8. 恢复Gitee删除的文件

    在Gitee仓库中删除了某文件,发现idea里面的该文件也没有了,恢复方法: 1.在diea中找到被删掉文件所在的文件夹右键. 2.点击Local History再点击Show History. 3. ...

  9. vue 数据没更新/dom没更新/样式没更新的各种解决方式

    1.用 $forceUpdate() 强制更新 2.用 this.$set(obj, key, value)/vue.set(obj, key, value) 向响应式对象中添加一个 property ...

  10. virtualenv指定使用本地某个版本python

    virtualenv -p D:\env\py37_1\Scripts\python3.exe time01 红色的地方是 你本地python解释器的安装路径,后面黄色部分是创建的虚拟环境的名称. 另 ...