Laravel 8中使用milon/barcode生成CODABAR条码扫描前后多出A字符问题求助
解决Laravel 8中milon/barcode生成CODABAR条码扫描结果带起始/终止符的问题
问题原因
你使用的CODABAR码制本身需要起始和终止字符(通常为A、B、C、D)标记条码的起止,milon/barcode包生成CODABAR条码时,会自动为你的内容12345678添加起始/终止符A,因此扫描器识别后会输出A12345678A。
解决方案
方案1:更换为无需额外起始/终止符的码制
如果业务允许,推荐更换为CODE128这类通用码制,它不需要额外起止符,扫描结果就是你输入的纯内容:
<center class="mb-2"> {!! DNS1D::getBarcodeSVG($barcode->barcode, 'CODE128', 2, 32, 'black', true) !!}</center>
方案2:业务逻辑中过滤扫描结果
如果必须保留CODABAR码制,可以在接收扫描结果的业务代码里,去除前后的A字符:
$scannedResult = 'A12345678A'; $actualCode = trim($scannedResult, 'A'); // 得到12345678
方案3:调整扫描器配置(硬件层面)
部分条码扫描器支持配置忽略CODABAR的起始/终止符,你可以查看扫描器说明书,找到对应设置选项关闭该功能。
内容的提问来源于stack exchange,提问作者pratik tilekar
相关产品推荐
相关产品推荐

