纯血鸿蒙端侧条码工具实测:码匣的二维码纠错分级、七类条形码校验位与批量生成
最近做资产标签整理,需要批量生成一批条形码和二维码。同事照旧发来了一个在线生成器链接,我盯着输入框想了想:WiFi 二维码里写着共享密码、商品条码对应库存数据、设备标签上还有内网编号,这些内容贴到陌生网站上,生成完有没有留底,谁也说不好。最后还是在手机本地解决的,工具是一款纯血鸿蒙上的条码工具箱——「码匣」,二维码与条形码的生成、批量、扫描、记录全流程都在本机完成,不联网、不上传,目前免费。下面按模块记录实测过程,顺便梳理几类条码制式的编码约束。
功能全貌:四个模块一条流水线
码匣首页是四张功能卡片:二维码生成(生成/批量生成/扫描/记录)、条形码扫码(单次/连续/扫码记录)、条形码生成(单条/批量/生成记录)以及通用的「扫一扫」入口,底部 Tab 在首页、配置、我的之间切换。

实际工作流基本是一条直线:在配置页定好默认参数,单条或批量生成,保存到手机,需要核对时用扫一扫回收结果,历史记录统一归档。
二维码生成:纠错级别、静默区与输出尺寸
二维码不是简单的黑白矩阵,配置页里三个参数直接对应标准里的概念。纠错级别默认 3(M),对应 QR 规范的 L/M/Q/H 四档,背后是 Reed-Solomon 纠错:等级越高,码面被污损后仍可正确识读的面积比例越大(M 约 15%、H 约 30%),代价是码点更密。打印资产标签我一般选 M,贴在可能磨损的设备外壳上才提到 Q。
边距模块数就是静默区(quiet zone),默认 2 个模块。扫码器需要靠这圈白边定位码的边界,留白不够时廉价扫码枪会频繁识别失败。默认输出尺寸 512px,足够屏幕展示和普通打印。

参数模型在端侧大致就是一个配置接口,调整后写入本地,生成页直接读取:
interface QrOptions {
errorLevel: 0 | 1 | 2 | 3 // L M Q H
margin: number // 静默区模块数
size: number // 输出边长 px
content: string // 文本/WiFi/URL 等
}
内容类型上,文本、WiFi、联系方式、URL 走同一套编码管线;WiFi 码本质是约定格式的字符串(WIFI:T:WPA;S:SSID;P:密码;;),本地拼接后直接绘制,不经过任何网络请求,这也是这类工具可以放心离线使用的前提。
条形码:七类制式的编码约束与校验位
码匣的条形码生成统一支持 7 种格式:Code128、Code39、EAN-13、EAN-8、UPC-A、ITF、Codabar。制式不是随便选的,每种都有字符集和位数约束,批量页把约束直接写在了按钮上。
- Code128:数字加字母,覆盖 ASCII 常用字符,末尾带模 103 校验符;
- Code39:工业场景常用,字符集自带自校验特性;
- EAN-13/EAN-8/UPC-A:零售商品码,12 位、7 位、11 位数据位加 1 位校验码,App 自动补算;
- ITF(交叉 25 码):只编数字且必须偶数位,常用于物流箱码;
- Codabar:数字加少量符号,首尾用 A 到 D 包络字符,图书馆、血袋标签常见。

EAN-13 的校验位是经典的模 10 加权,端侧实现就几行代码,UPC-A 只是权重起始位置不同:
function ean13Check(digits: string): number {
// digits 为前 12 位
let sum = 0
for (let i = 0; i < 12; i++) {
const n = digits.charCodeAt(i) - 48
sum += i % 2 === 0 ? n : n * 3 // 奇数位乘1 偶数位乘3
}
return (10 - (sum % 10)) % 10
}
批量生成:每行一条,失败行单独标注
批量页一次粘贴多行内容,每行一条,统一选制式后「刷新生成」。实测 7 条样本混合了字母编号(ITEM-0001)、13 位商品码和短数字,选 Code128 后一次生成,按钮直接显示「保存到手机 (7)」。有个细节体验不错:某一行不满足制式约束时,比如给 EAN-13 塞了字母,失败原因会直接标在对应的预览卡上,而不是整批报错回滚,修正单条后刷新即可。
扫码识别与历史归档
「扫一扫」是通用入口,条形码和二维码无需切换页面自动识别;条形码扫码另有单次和连续两种模式,连续模式适合盘点时连续扫入。识读走系统原生识别能力,暗光和贴在曲面外壳上的标签响应都比较稳,结果直接带出码类型和原文。生成记录和扫码记录各自独立,扫码结果支持收藏和「再次生成」,配置中心可以一键恢复默认参数。

小结
整轮实测下来,码匣把一件看似简单的事做完整了:二维码侧有纠错分级和静默区控制,条形码侧七类制式齐全且校验位自动补,批量生成对失败行有明确反馈,扫码与历史形成闭环。关键是所有内容——WiFi 密码、库存编号、资产标签——都只在手机本地编码,不经过任何服务器,也不申请联网权限,应用目前免费。临时整理标签、仓储盘点、小店自制价签都够用。
仅个人实测,功能收费以实际为准。
更多推荐



所有评论(0)