Qraft

批量生成二维码的方法 - 工具、CSV 工作流与质量验证

需要批量生成的典型场景

为产品标签赋予序列号、给活动门票加上个别识别、为个性化营销准备活动码,这些商业场景都需要批量生成二维码。靠手工一个一个做,数十件已经是极限,一旦超过数百件,自动化就是绕不开的前提。

库存管理物流的追溯场景中,每一件商品都要分配一个唯一的二维码,因此数千到数万件的生成量是日常状况。规模一大,人力操作不仅慢,出错的概率也会随件数线性上升。

工具与库的选择

可用于批量生成的工具大致分为三类。第一类是编程语言的库,例如 Python 的 qrcode 库、JavaScript 的 qrcode-generator。这类方案需要自己写代码,但灵活性最高,与既有系统的对接也最容易。

第二类是把 Google 表格与二维码生成API 组合起来使用,非工程师也能上手,适合营销一侧自己动手的小规模批次。第三类是商用平台(Scanova、QR Tiger 等),在浏览器上传一个 CSV 就能完成大量生成。

选择时的判断标准,是这批码今后是否还要反复生成。一次性的活动用第二、第三类更省事;需要长期定期产出的,早点接进自己的系统更划算。

以 CSV 为核心的工作流

通用性最高的批量生成流程,是先把数据整理进 CSV 文件,再让生成器读取这个文件。CSV 的每一行写入要嵌进二维码的链接或文本、输出的文件名,可选地再加上尺寸和纠错等级。

用表格来管理数据有一个额外的好处:销售或市场人员负责填写内容,工程师负责执行生成脚本,分工自然成立,双方都不必进入对方的工作区域。

重复数据的检查与链接格式的校验,务必在生成之前完成。生成之后再发现问题,等于要把整批文件重做一遍。

文件命名与整理的规则

生成了大量二维码图片之后,文件的命名规则和整理方式会明显影响后续的运维效率。推荐采用「序号_识别符.png」这样的形式(例如 001_SKU12345.png),让排序结果与内容一眼对得上。

按用途分开目录,并把生成日期或批次编号写进文件夹名,日后的追踪会轻松很多。生成日志(哪一行产出了哪一个文件)同样建议用 CSV 留存,一旦出现问题,定位原因的速度会快上一个量级。

防止重复与输入错误

批量生成有一个特点:源数据的质量会原封不动地反映到结果里。因此在开始生成之前,先把 CSV 的内容检查一遍很重要。

要确认的项目包括:是否存在相同链接的重复行;输入栏里是否混进了多余的空格或换行;链接的写法本身有没有笔误。字符编码如果没有统一成 UTF-8,含中文或日文的数据就会乱码,最后产出一批根本扫不出来的码。

生成了数百件之后才发现错误,重新印刷的代价相当高。把源数据先理干净,结果上反而是最稳、最快的做法。

静态码与动态码的取舍

如果这批码的内容今后不会再变,直接把链接嵌进去的静态码就足够了。相反,若之后有可能更换跳转目标,那就值得考虑经过一次转发的动态码。

动态码的优点是不必重新印刷,只替换跳转目标即可,因此在大量分发之后仍然改得动。代价是会产生对提供转发机制的服务的依赖,那家服务停止运营时,全部码会同时失效。

把分发的数量与内容变更的可能性放在一起衡量,在生成之前就把采用哪种方式定下来。

抽样验证的要点

把大量生成的码一张一张确认并不现实,这时抽样验证就很有效。从开头、中间、结尾各取几个,另外必须把数据最长的那一个也纳进来检查。

之所以少量抽查就有意义,是因为生成机制若存在共通的错误,其影响会波及全部码;只要仔细看几张,就足以判断有没有问题。反过来,只有个别行的数据错了的情况,才需要依赖后面讲的全量比对。

用实际印刷的介质和尺寸试扫,并在多个机型上确认,能够大幅减少分发之后的麻烦。

生成之后的质量验证

批量生成的二维码,理想状态是全数验证;但到了数千件的规模,抽样验证更为现实。最可靠的做法是在生成结束的当下就用脚本把全部码解码一遍,自动核对结果与源数据是否一致。

使用 Python 的 pyzbar 库,读取图片文件并比对解码结果的处理只需几行代码,把它接在生成脚本的末尾即可自动运行。

印刷之前,还要用真实的手机实际扫描几件,确认跳转的页面正常显示。解码通过只证明数据写对了,页面本身是否可访问是另一件事。