QRCode二维码标签批量生成系统设计与实现


摘要:二维码技术应用广泛,但是针对大批量、标签式的二维码应用场景,仍缺乏简单易用、方便快捷的设计与生成系统。文章分析了常用二维码标签生成系统的不足,设计并实现了一套QR Code二维码标签批量生成系统。该系统采用VBA实现标签批量生成功能、采用动态链接库作为二维码生成的编程接口。实验验证结果表明,该系统能够满足生产、经营、管理活动中对大批量、标签式二维码的需求,并具有灵活、便捷、高效等优点。


在当今移动互联网时代,二维码技术在各类生产经营、日常生活中得到了空前广泛的应用,智能手机的扫一扫功能使得二维码应用更加普遍[1-2]。二维码具有信息量大、可靠性高、使用成本低廉等优点[3-4]。QR Code是目前应用最为广泛的二维码类型之一[5]。

当前,二维码主要有两大类应用场景。


第一类是在日常生活中作为特定信息标识、供个人使用的各类单个式二维码应用场景。在该类场景中,二维码一般由特定的应用软件进行生成、识别、解析,同时由于是单个式二维码,一些在线式的二维码生成系统也能简便、快捷地满足个人使用需求。例如,微信、支付宝的收款码、付款码均可分别由微信、支付宝APP进行生成、识别。


第二类是在生产、经营、管理等活动中作为设备、物资标签的大批量、标签式二维码应用场景[6,7]。在该类场景中,标签具有样式设计的需求,二维码一般只是作为标签中的一项组成元素;同时还具有大批量生成的需求,一般需要针对具有相同数据格式的不同数据内容,生成大批量的标签。


针对第二类应用场景,本文通过分析当前常用二维码标签生成系统现状,发现目前仍缺乏简单易用、方便快捷、適用性强的二维码标签设计与生成系统。


为此,本文采用Excel作为标签样式设计器、采用VBA(Visual Basic for Applications)实现批量生成功能,设计并实现了一套二维码标签生成系统。通过测试验证,该系统能够满足大批量、样式灵活的二维码标签设计与生成需求。


1、二维码标签生成系统现状


当前常见的二维码标签生成系统主要分为在线式和离线式两大类。


在线式二维码标签生成系统,以Web网页形式提供二维码标签生成服务,其主要优点在于可以直接使用浏览器进行操作,无需安装额外的平台或工具,使用简便。一些网络应用软件也具有生成二维码的功能(例如在微信中生成收款码),但它们是针对特定信息内容生成特定样式的二维码,并不能作为一般的二维码标签生成系统。


常见的离线式二维码标签生成系统有两种形式:一种是独立的应用软件形式(如exe、apk程序),另一种是Office应用软件的加载项形式(如OCX控件等)。这两种形式一般均需进行安装部署。


以上两类二维码标签生成系统,根据具体系统设计与实现的不同,在功能灵活性、使用便捷性等方面均有差异,但针对前述的第二类二维码应用场景(大批量、标签式),总体上均存在以下几项缺点:

⑴功能灵活性不足。一些二维码标签生成系统对个别二维码参数进行了缺省设置,使得功能灵活性受到限制。


⑵批量生成功能不足。大部分二维码标签生成系统没有批量生成功能;个别虽然具有批量生成功能,但数据接口不灵活,或是存在其他问题。如当前常用的草料网二维码生成器,虽然可以批量生成二维码,但其内容只是该网站的一个网址,需要该网站在线支持才能解析出原始数据内容。


⑶二维码标签样式单一。二维码只是二维码标签的一个组成元素,对于二维码标签的设计,重点在于标签样式设计而不是二维码的生成。一般的二维码标签生成系统最多只是内置几类基本的标签样式模板,很难满足灵活多样的二维码标签设计需求。如Microsoft条形码控件MSBCODE9.OCX,只提供了在二维码下方显示编码文本信息这种简单样式。


各类二维码生成系统功能对比详见表1。


2设计思路与实现


2.1设计目标


针对常见二维码标签生成系统存在的上述不足,本文以目前应用最广泛的QR Code二维码为例,设计一套二维码标签生成系统,以满足用户对标签式二维码的设计与批量生成需求。


具体目标要求如下:


⑴轻量级,安装部署便捷;


⑵对QR二维码的纠错等级、符号版本、掩膜方案、模块样式等参数均可灵活地自定义设置;


⑶具有比较灵活多样的标签样式设计功能;


⑷具有批量生成功能,批量生成功能的数据接口需简单易用。


2.2设计思路


针对上述要求,计划采用如下设计思路。


⑴基于VBA,以Microsoft Office Excel作为二维码标签设计与生成环境。


Excel是一种广泛使用的办公软件;VBA是一种宏语言,内嵌于Office中,提供了面向对象的程序设计方法[8],为用户提供了Office二次开发功能,大大提高了工作效率[9]。


使用Excel+VBA作为二维码标签设计与生成环境,有以下优点。


①既能满足轻量级、安装部署便捷的目标要求,又能满足常见标签样式的设计需求。


②数据接口便捷高效。由于Excel本身就是日常广泛使用的数据处理工具,所以不需要设计另外的数据接口。


③批量生成功能容易实现。可以使用VBA方便快捷地对Excel进行操作,通过简单的代码就能实现批量生成功能。


⑵生成的二维码符号数据采用数组形式,而不是直接采用形式。采用数组形式便于在Excel中利用VBA进行编程操作,使二维码标签样式设计功能更加灵活。


⑶生成二维码符号的编程接口采用动态链接库实现,避免直接采用VBA编程在编码简易性和运行速度方面的劣势,同时能直接参考一些开源二维码生成程序的源代码。


2.3系统实现


按照以上思路,本文设计并实现了一个二维码标签生成系统进行示例演示,其功能结构如图1所示。


系统设计简要说明:


⑴以Excel作为标签样式设计器以及数据接口,进行标签样式设计和标签数据内容的传递。


⑵通过采用VBA设计的用户窗体与用户进行功能交互,进行标签参数设置、调用批量生成功能。


⑶根据QR Code二维码编码与符号生成规则(参照GB/T 18284—2000《快速响应矩阵码》),本文使用C++语言编写了用于生成二维码符号的动态链接库QRCben.dll。该动态链接库输出的二维码数据为数组形式,数组元素为字节类型,每个元素对应于二维码的一个模块,具体包含了模块类型(深模块、浅模块)和模块所处区域(寻像图形、分隔符、定位图形、校正图形、格式信息区、版本信息区、码字区)等信息。


⑷VBA程序通过调用生成二维码符号的动态链接库(QRCben.dll),获得数组形式的二维码符号数据;根据获得的二维码符号各个模块的类型与所处区域信息,自定义不同区域模块的图案、生成二维码符号图形,并添加到Excel设计的标签样式的相应位置处。

3使用流程与功能验证


下面以某单位装备运维系统中所需的装备管理标签为例,简要说明本文设计并实现的二维码标签生成系统的使用流程,并对使用效果进行验证。


3.1设计二维码标签样式


在该二维码标签生成系统的Excel文件中利用工作表进行标签的样式设计。主要涉及单元格文字与样式、背景色填充、边框设置、插入等功能。图2是设计完成的标签样式示例。


在该示例中,对于标签中的可变字段,采用大括号“{}”进行标识。在后续的标签生成中,VBA程序將自动把可变字段替换为相应的每个标签的具体内容,从而进行标签的自动批量生成。


3.2导入数据内容


由于Excel本身就是日常办公中最常用的数据处理工具,因而这里假设数据内容已经导入到了该系统的Excel文件的工作表中,然后只需按照格式要求对数据内容进行简单调整即可。图3是调整后的数据内容示例。


图3中,粗线框中的“装备名称”、“所属单位”等栏与标签样式中采用大括号“{}”标识的可变字段相对应,在具体生成每个标签时,会自动将对应栏的数据内容替换到标签中的相应字段处。


3.3设置参数


使用VBA生成的用户窗体作为用户与系统进行功能交互的界面,进行参数设置,图4为设计的功能交互界面示例。


功能交互界面中,参数设置包括源数据、二维码、标签以及输出共四块参数区域。


源数据参数区域中可以设置源数据段数、连接符以及标签数量。图4中的参数设置表示:将数据内容中的前四个源数据段用换行符连接,作为二维码的源数据,分别生成100个标签。


二维码参数区域中可以设置二维码的纠错等级、掩膜方案、符号版本以及模块图案。


标签参数区域用于设置工作表中标签的区域范围以及标签中二维码的区域范围。


输出参数区域用于设置生成标签的格式、大小等。


3.4批量生成及功能验证


按照上述流程完成标签设计、数据导入以及参数设置后,就可以批量生成二维码标签了。具体测试验证方法见表2。


首先点击用户窗体中的“逐个生成”按钮,生成第一个标签,检查是否存在错误。图5为生成的第一个标签。


经检查,生成的第一个标签信息内容正确,二维码能正确识别。


接下来点击用户窗体中的“批量生成”按钮,生成全部的100个标签。经测试,程序运行总用时约36s,即平均生成一个标签用时约为0.36s。对生成的二维码标签进行检查、识别,100个标签均信息正确、二维码识别内容无误,如图6所示。


4结束語


以上使用流程、操作方法示例及功能验证结果表明,本文采用设计并实现的二维码标签生成系统,能满足前述第二类二维码应用场景即生产、经营、管理活动中大批量、标签式二维码设计与生成的需求,并具有以下优点:


⑴使用Excel作为设计与生成环境,不需要另外安装部署,方便快捷;


⑵使用Excel作为标签样式设计器,基本无使用操作门槛,设计功能灵活多样,能够满足常用的标签样式设计需求;


⑶使用Excel作为数据接口,数据导入简单便捷;


⑷用户自定义设置功能灵活,可以对二维码的纠错等级、掩膜方案、符号版本以及模块图案等进行自定义设置;


⑸批量生成功能强大,可以灵活设置可变字段;


⑹标签生成速度快,平均生成一个标签用时约为0.36s。


来源:计算机时代张江鹏 杨文 张利军 卢玉

文章内容来自网络,如有侵权,联系删除、联系电话:023-85238885

参与评论

请回复有价值的信息,无意义的评论将很快被删除,账号将被禁止发言。

评论区