JsBarcode简单生成条形码,打印表格

1、下载、使用
// 下载
npm install jsbarcode --save


// 在需要使用的文件处引入
import JsBarcode from 'jsbarcode';
2、生成、打印
<template>
  <div>
    <canvas ref="barcodeCanvas" style="display: none;"></canvas>
  </div>
</template>
<script>
import JsBarcode from 'jsbarcode';
export default {
    data() {
      return {}
    },
    methods: {
      // 打印函数
      print(val) {
         let newArray = {
          '物品名称': val.name || '-',
          '规格/型号': val.specification || '-',
          '主单位': val.mainUnit
        }
         // val 为需要转化成条形码的数据
         this.$nextTick(() => {
            // 生成条形码
            JsBarcode(this.$refs.barcodeCanvas , val.id , {
               format: 'CODE128',
               displayValue: true,
               height: 60,
               font: "STSong-Light, STHeiti, FangSong_GB2312"
            })
            // 创建打印窗口
            const printWindow = window.open('', '_blank');
            const barcodeImage = new Image();
            barcodeImage.src = this.$refs.barcodeCanvas.toDataURL();
            barcodeImage.onload = () => {
               let _html = `<html><head><title>头部</title><style>
                    body {
                      text-align: center;
                    }
                    table {
                      margin: 0 auto;
                      text-align: left;
                      border-collapse: collapse;
                      width: 80%;
                    }
                    th, td {
                      padding: 8px;
                      border: 1px solid black;
                    }
                    img {
                      display: block;
                      max-width: 100%;
                      height: auto;
                      margin: 0 auto;
                    }
                    .trCenter {
                      text-align: center !important;
                    }
                  </style>
                </head><body>
                  <div>
                    <table border="1px solid #ccc" cellspacing="0" cellpadding="0" style="width: 600px;">
                    <tbody>
                      ${Array.from(Object.entries(newArray), ([key, value]) => {
                        return `<tr><td>${key}</td><td>${value}</td> </tr>`
                      }).join('')}
                      <tr class="trCenter">
                        <td colspan="${Object.keys(newArray).length}">
                          <img src="${barcodeImage.src}" alt="图片">
                        </td>
                      </tr>
                    </tbody>
                    </table>
                  </div>
                </body>
              </html>`

              printWindow.document.write(_html)
              printWindow.document.close();
              printWindow.print();
            }
         })
      }
    }
  }
</script>
3、展示

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JsBarcode是一个用于生成条形码JavaScript库。它可以通过调用相应的函数来生成条形码,并将其输出为图片。在引用\[1\]中的代码示例中,通过调用creatBarCode函数,传入条形码数据和打印数据,生成一个canvas元素,并使用JsBarcode库将条形码绘制在canvas上,最后将canvas转换为图片的DataURL并返回。在引用\[2\]中的代码示例中,通过调用JsBarcode函数,传入条形码数据和选项,将条形码绘制在指定的svg元素和img元素上。在引用\[3\]中的代码示例中,通过调用creatBarCode过滤器,传入条形码数据,将条形码生成为img元素的src属性值,从而实现条形码打印。 #### 引用[.reference_title] - *1* [Vue + JsBarcode 批量打印标签](https://blog.csdn.net/u012835032/article/details/124725739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JS打印一维条形码,Layui打印一维条形码。](https://blog.csdn.net/zc1713648120/article/details/127443164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [jsBarCode生成条码并且打印的问题](https://blog.csdn.net/zhjyyw/article/details/125393116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值