前段时间公司有这样一个需求:由于疫情影响,单位食堂没有开放,过来参加招聘会的企业无法就餐,替代的解决方案是给他们提供附近一家餐饮店的抵用券。饭店给我提供若干个可以使用的编号,但是我们需要以二维码的形式发放下去,所以就有了这个课题。
支持批量生成二维码的库其实还蛮多的,最终选择QRCoder来做,由于只有不到半天的时间,所以一切就都从简,对我们来说是一次性的东西。下面我简单分享一下我的思路和代码,供大家参考。
简单的做了一个界面,支持两种输入编码的方式,第一种直接在文本框输入,用逗号分割;第二种是用excel导入进去,列名必须为“code”。其本质就是将输入的东西转换成一个字符串数组,然后遍历数组,逐个用QRCoder生成二维码,为了支持excel导入,加入了npoi,不了解的同学自己去补一下。以下是生成二维码的代码:
其中最核心的方法是:qrcode.GetGraphic(10, Color.Black, Color.White, null, 15, 20, true);
这个方法有多个重载,根据你的需要选择合适的一个即可,这边这个它接收的参数分别是:
1、二维码单个像素点的大小
2、像素颜色
3、背景颜色
4、接收一个 Bitmap,用来设置二维码中间那个图标
5、图标大小百分比
6、图标边框宽度,
7、边缘留白
根据以上的介绍,我们做一点改变,重新绘制一个二维码:
qrcode.GetGraphic(20, Color.Red, Color.Black, null, 15, 20, false);
以上两个二维码分别对应上面出现的两次调用,可以看出其中的区别。