写在前面

条码生成是一个经常需要处理的功能,本文介绍一个条码处理类库,ZXing用Java实现的多种格式的一维二维条码图像处理库,而ZXing.Net是其.Net版本的实现。

在WinForm下使用该类库需要从NuGet安装两个组件:

C# 使用ZXing.Net生成二维码和条码-LMLPHP

C# 使用ZXing.Net生成二维码和条码-LMLPHP

代码实现

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 310
            var 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商品标识代码的条码符号,由左侧空白区、起始符、左侧数据符、中间分隔符、右侧数据符、校验符、终止符、右侧空白区及供人识别字符组成。

调用示例

C# 使用ZXing.Net生成二维码和条码-LMLPHP

01-03 08:26