jsbarcode是一个不依赖任何库/框架的条形码生成库,使用原生JavaScript写成。
npm安装
npm i jsbarcode
页面/组件
<template>
<!-- 条形码容器,可选svg、canvas,或img标签 -->
<svg id="barcode"></svg>
<!-- or -->
<canvas id="barcode"></canvas>
<!-- or -->
<img id="barcode"/>
</template
<script>
import jsbarcode from 'jsbarcode'
export default {
created() {
console.clear()
// 不要在create时调用jsbarcode库,此时相关DOM还未加载。
},
mounted() {
// 生成条形码
jsbarcode(
'#barcode',
'9787544291170',
{
displayValue: true // 是否在条形码下方显示文字
}
)
}
}
</script>
我使用了父容器传过来的值渲染,所以加载了watch()中
props: {
confirmForm: {
type: Object,
default: () => {},
}
},
created() {
},
watch:{
confirmForm(val, oldVal){//普通的watch监听
this.confirmForm.code=this.confirmForm.code
jsbarcode(
'#barcode',
this.confirmForm.code,
{
displayValue: true // 是否在条形码下方显示文字
}
)
// this.generateQRCode();
// console.log("a: "+val, oldVal);
},
},
JsBarcode相应参数
format: "CODE39",//选择要使用的条形码类型
width:3,//设置条之间的宽度
height:100,//高度
displayValue:true,//是否在条形码下方显示文字
text:"456",//覆盖显示的文本
fontOptions:"bold italic",//使文字加粗体或变斜体
font:"fantasy",//设置文本的字体
textAlign:"left",//设置文本的水平对齐方式
textPosition:"top",//设置文本的垂直位置
textMargin:5,//设置条形码和文本之间的间距
fontSize:15,//设置文本的大小
background:"#eee",//设置条形码的背景
lineColor:"#2196f3",//设置条和文本的颜色。
margin:15//设置条形码周围的空白边距