扩展库 / barcode
barcode
EAN-13 与 UPC-A 条码。
校验位自动补全、95 模块编码、ASCII 和 SVG 渲染。
2026-10-28:四条公开文本返回链移交原生结果,不再复制成功结果;完整夹具仅保留一处失败消息快照。固定样例的 C/XLang 各八组预算、NUL/非法输入/恢复、双平台默认门禁与双语 JIT/AOT 通过,Linux 含 ASan/UBSan。返回长度扫描、异常作用域与失败消息成本仍保留,不宣称整条桥接零开销。额外 ZXing 扫码复验因本轮环境缺依赖未运行,不作为本轮证据。
API
| 接口 | 用途 |
|---|---|
ean13 / upcA | 生成 95 个条码模块 |
checksumEan / validateEan | 计算或校验 EAN-13 校验位 |
ean13Ascii / upcAAscii | 文本条码 |
ean13Svg / upcASvg | 带标准静区的独立 SVG 文本 |
范例
import barcode
var modules = barcode.upcA("12345678901")
println(modules.length) // 95
println(barcode.upcAAscii("12345678901"))
仅支持 EAN-13 与 UPC-A。95 位编码模块不含静区;SVG 另留 EAN-13 左 11X/右 7X、UPC-A 左右各 9X 的白色静区,画布宽 113X。合法输入下的分配失败报内存错误,失败后可重试;C 公开入口成功或正常查询后不残留上次错误。C 测试用独立加权和参照覆盖全部十种校验位与 256 组固定数据。2026-10-26 重建发布物后,Windows/Linux x64 默认包门禁均通过严格 C、Linux ASan/UBSan、XLang JIT、双语固定输出及核心、XLang/C 单文件范例独立 EXE AOT。旧 VFS 缺头和 AOT 缺符号阻断不再复现;此为短时包级验收,不代表扫码识别、印刷质量认证、其他架构或全产品准入。输入、C 所有权和验证命令见包内 README。