【Vue3+Vite+bwip-js库】 生成DataMatrix码

news2024/11/25 4:42:33

前提条件

  • 已存在的vue3+vite架构前端项目
  • 对二维码分类有一定的了解

生成的码的样式如下(DataMatrix)

在这里插入图片描述

该二维码容量如下

详情见:DataMatrix介绍

在这里插入图片描述

Vue3+Vite 导入 bwip-js生成DataMatrix

1. 安装

npm install bwip-js --save

2. 引入使用

<template>
	<canvas id="barcode" style="width: 100%;height: 100%;"></canvas>
</template>


<script setup lang="ts">
import { reactive, ref, watch, onMounted, nextTick } from 'vue'
import * as bwipjs from 'bwip-js'

onMounted(() => {
    nextTick(() => {
    		// 因为我的代码没有贴全,我的Canvas是动态生成的,在页面加载完成之后再添加到页面的元素,
    		// 因此就在这个nextTick方法里面用才会生效,不然会报ID不存在的错误
    		// 如果是页面加载就生成的常规组件, 就直接调用,去掉nextTick这一层
           handleCanvasDataMatrix('barcode', "01069367337124121724080810FT202207073", 12, 12)
     })
})

// 组件ID,二维码内容,宽度,高度
const handleCanvasDataMatrix = (canvasId: string, content: string, width: number, height: number) => {

    let options = {
        bcid: 'datamatrix',       // Barcode type
        text: content,    // Text to encode
        scale: 3,               // 3x scaling factor
        height: height,
        width: width,              // Bar height, in millimeters
        includetext: false,            // Show human-readable text
        textxalign: 'center',        // Always good to set this
    }
    let canvas = bwipjs.toCanvas(canvasId, options);
}
</script>

异常处理

我这里在build的过程中会编译不通过,报下面的错

在这里插入图片描述

解决,在项目根目录下新建declaration.d.ts文件,加上下面的一句代码,即可编译通过

declare module 'bwip-js'

bwip-js库github代码地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「视频编码软件」Media Encoder(Me) 2024 Mac/win中文版下载安装

Adobe Media Encoder(Me) 2024是一款专业的视频编码工具&#xff0c;它可以将各种视频格式进行转换、压缩和编码&#xff0c;以满足不同媒体平台和设备的需求。 以下是 Media Encoder 2023 的主要功能和新增功能&#xff1a; 视频编码和转换&#xff1a;支持将各种视频格式进…

代码随想录算法训练营第四十三天丨 动态规划part06

518.零钱兑换II 思路 这是一道典型的背包问题&#xff0c;一看到钱币数量不限&#xff0c;就知道这是一个完全背包。 对完全背包还不了解的同学&#xff0c;可以看这篇&#xff1a;动态规划&#xff1a;关于完全背包&#xff0c;你该了解这些&#xff01;(opens new window)…

苹果IOS系统webglcontextlost问题-解决方案

问题描述 在IOS手机 解码视频流的时候&#xff0c;第一次可以正常播放&#xff0c;但只要IOS手机熄屏&#xff0c;再重新唤醒&#xff0c;就会一直播放失败&#xff0c;无论换哪个浏览器都不行。安卓手机则一切正常。 经过排查&#xff0c;发现 IOS手机 的浏览器会无故 webGL…

大聪明教你学Java | Win10 环境下安装部署 RocketMQ

前言 &#x1f34a;作者简介&#xff1a; 不肯过江东丶&#xff0c;一个来自二线城市的程序员&#xff0c;致力于用“猥琐”办法解决繁琐问题&#xff0c;让复杂的问题变得通俗易懂。 &#x1f34a;支持作者&#xff1a; 点赞&#x1f44d;、关注&#x1f496;、留言&#x1f4…

Word里MathType插件符号表消失了

场景再现 在word里面编辑数学公式&#xff0c;结果符号表跑到屏幕外面了&#xff0c;找不到&#xff1b; 解决办法 在其中找到视图->工具栏&#xff0c;点击即可&#xff1a; 还嫌弃它跑到外边了&#xff0c;那就可以点击符号表的边框&#xff1a; 双击左边边框&#x…

YOLO目标检测——夜间车辆检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;智能交通监控系统、自动驾驶系统、夜间行车安全辅助系统等数据集说明&#xff1a;夜间车辆检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富标签说明&#xff1a;使用lableimg标注软件标注&#xff0c;标注框质量高&#xff0…

如何进行性能测试?

性能测试是软件测试中的一个重要环节&#xff0c;其目的是评估系统在不同负荷下的性能表现&#xff0c;包括响应时间、吞吐量、并发数等指标。通常可以通过以下几种方法进行性能测试&#xff1a; 1、负载测试 负载测试是模拟多用户同时访问系统&#xff0c;测试系统在高并发、…

云产品FC免费试用获取奖励步骤

文章目录 1、获取活动链接2、报名参加3、试用产品领取产品试用权限部署生成小说提交作品 4、提交任务获取奖励 1、获取活动链接 活动时间2023.11.1&#xff5e;2023.11.30 名额有限&#xff0c;先到先得 进群群主获取活动链接 2、报名参加 直接点击链接进入小程序进行登录授…

备份doris数据到minio

1、MINIO 设置 创建服务账户&#xff0c;记住ACCESS_KEY和SECRET_KEY 创建Buckets doris 设置region 在首页查看服务ip和端口号 2、创建S3备份库 因为minio是兼容S3协议的&#xff0c;所以可以通过s3协议链接minio。 CREATE REPOSITORY minio WITH S3 ON LOCATION "s3://…

表格冻结第二行

在网上找了一圈也没找到说明白的。 像这样的表格下面会有很多行&#xff0c;往下翻的时候会忘记第二行显示的什么内容。 需求&#xff1a;将第二行进行冻结 实现&#xff1a; 1&#xff0c;选中第一和第二行&#xff0c;下拉&#xff0c;点击冻结 2&#xff0c;会显示冻结至…

UI设计感大型数据管理仪表盘后台模板源码

大型数据管理仪表盘后台模板是一款适合数据统计管理后台网站模板下载。提示&#xff1a;本模板调用到谷歌字体库&#xff0c;可能会出现页面打开比较缓慢。 演示下载 qnziyw点cn/wysc/qdmb/20838点html

5+非肿瘤+细胞凋亡相关生信思路,请自行查阅

今天给同学们分享一篇生信文章“Genome-wide identification and functional analysis of dysregulated alternative splicing profiles in sepsis”&#xff0c;这篇文章发表在J Inflamm (Lond)期刊上&#xff0c;影响因子为5.1。 结果解读&#xff1a; 脓毒症患者和健康对照…

Python爬虫实战-批量爬取下载网易云音乐

大家好&#xff0c;我是python222小锋老师。前段时间卷了一套 Python3零基础7天入门实战https://blog.csdn.net/caoli201314/article/details/1328828131小时掌握Python操作Mysql数据库之pymysql模块技术https://blog.csdn.net/caoli201314/article/details/133199207一天掌握p…

New Maven Project

下面两个目录丢失了&#xff1a; src/main/java(missing) src/test/java(missing) 换个JRE就可以跑出来了 变更目录

jmeter接口自动化测试通过csv文件读取用例并执行测试

最近在公司测试中经常使用jmeter这个工具进行接口自动化&#xff0c;简单记录下~ 一、在csv文件中编写好用例 首先在csv文件首行填写相关参数&#xff08;可根据具体情况而定&#xff09;并编写测试用例。脚本可通过优先级参数控制执行哪些接口&#xff0c;通过端口参数同时执…

后端接口接收对象和文件集合,formdata传递数组对象

0 问题 后端接口需要接收前端传递过来的对象和文件集合&#xff1b;对象中存在数组对象 1 前端和后端 前端只能使用formdata来传递参数&#xff0c;后端不使用RequestBody注解 2 formdata传递数组对象 2.1 多个参数对象数组 addForm: {contactInfo: [{contactPerson: ,…

FLASH语音芯片和MP3音乐芯片的不同之处

语音芯片除了不可重复擦写的otp语音芯片之外还有内置flash可重复擦写的语音芯片&#xff0c;还有音质相对来说更好的mp3音乐芯片&#xff0c;接下来让我们就flash芯片和MP3芯片来展开讨论&#xff0c;看看两者之间究竟有哪些不同之处。 flash语音芯片 Flash语音芯片是可以进行…

视频转序列图片:掌握技巧,轻松转换

随着社交媒体和视频平台的日益普及&#xff0c;视频已成为我们生活中不可或缺的一部分。有时&#xff0c;我们需要将视频转换为图片序列&#xff0c;例如制作GIF动图或提取视频中的特定画面。现在一起来看云炫AI智剪如何将视频转换为序列图片&#xff0c;并轻松实现转换。 操作…

【GEE】1、Google 地球引擎简介

1简介 在本模块中&#xff0c;我们将讨论以下概念&#xff1a; 定义 Google 地球引擎中的主要数据类型以及如何使用它们。 如何探索数据集并限制特定研究站点的输出。 如何可视化火灾前后景观之间光合活动的差异。 2背景 遥感可以成为生态学家在更大空间尺度上了解研究系统…

如何用维格云搭建和一键训练你的钧瓷AI机器人?

大禹智库 第69期(总第400期) 2023年11月4日 如何用维格云搭建和一键训练你的钧瓷AI机器人? 钧瓷私有数据聊天机器人是一种能够根据预设的数据集进行智能对话的机器人。通过维格云,我们可以轻松地搭建自己的钧瓷私有数据聊天机器人。本文将以钧道机器人为例,详细介绍如何…