写在前面
条码生成是一个经常需要处理的功能,本文介绍一个条码处理类库,ZXing用Java实现的多种格式的一维二维条码图像处理库,而ZXing.Net是其.Net版本的实现。
在WinForm下使用该类库需要从NuGet安装两个组件:
ZXing.Net
ZXing.Net.Bindings.Windows.Compatibility
代码实现
using ZXing;
using ZXing.Common;
using ZXing.OneD;
using ZXing.QrCode;
using ZXing.Windows.Compatibility;namespace QrCodeGen
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){var writer = new BarcodeWriter<Bitmap>();writer.Format = BarcodeFormat.QR_CODE;QrCodeEncodingOptions options = new QrCodeEncodingOptions(){DisableECI = true, //设置内容编码CharacterSet = "UTF-8", //设置二维码的宽度和高度Width = 200,Height = 200,Margin = 1 //设置二维码的边距,单位不是固定像素};var render = new AlternateBitmapRenderer();writer.Renderer = render;writer.Options = options;Bitmap map = writer.Write("Hello world");pictureBox1.Image = map;}private void button2_Click(object sender, EventArgs e){var w = new EAN13Writer();var render = new AlternateBitmapRenderer();render.TextFont = new Font("Segoe UI", 25);var content = "1234567890123";// EAN-13 商品条码的标准尺寸是 37.29mm x 26.26 mm ,按照 300 DPI 换算像素大小是 440 x 310var m = w.encode(content, BarcodeFormat.EAN_13, 440, 310);//渲染得到的图片var bmp = render.Render(m, BarcodeFormat.EAN_13, content, new EncodingOptions { Width = 440, Height = 310 });pictureBox2.Image = bmp;}}
}
EAN-13商品条码是表示EAN/UCC-13商品标识代码的条码符号,由左侧空白区、起始符、左侧数据符、中间分隔符、右侧数据符、校验符、终止符、右侧空白区及供人识别字符组成。