.NET使用ZXing.Net生成带有识别符的EAN-13条码

根据百度百科,EAN-13 商品条码的标准尺寸是 37.29mm x 26.26 mm ,按照 300 DPI 换算像素大小是 440 x 310 。

如果想在 Windows 平台生成符合上述要求的 EAN-13 条码可以使用组件:ZXing.Net.Bindings.Windows.Compatibility ,其 NuGet 地址为:.

https://www.nuget.org/packages/ZXing.Net.Bindings.Windows.Compatibility/

如果按照实例代码,使用 ZXing.Windows.Compatibility.BitmapRenderer 渲染图片,就会发现生成的结果不包含识别符:

.NET使用ZXing.Net生成带有识别符的EAN-13条码

.NET使用ZXing.Net生成带有识别符的EAN-13条码

即上图中的 lead , separater 和 trailer 。

如果要生成带识别分隔符的 EAN-13 条码,可以使用另一个渲染器:AlternateBitmapRenderer 。同时,默认的字体设置让条码上的文字看上去很小,所以可以使用稍大一些的字体:

var w = new EAN13Writer();
var render = new AlternateBitmapRenderer();
render.TextFont = new Font("Segoe UI",25);
var ean = "1234567890128";
var data = w.encode(ean);
var m = w.encode(ean, ZXing.BarcodeFormat.EAN_13, 440, 310);
//渲染得到的图片
var bmp = render.Render(m, ZXing.BarcodeFormat.EAN_13, ean, new EncodingOptions {  Width = 440 ,Height = 310});

需要引入以下命名空间:

using System.Drawing;
using ZXing.Common;
using ZXing.OneD;
using ZXing.Rendering;
using ZXing.Windows.Compatibility;

渲染结果如下:

.NET使用ZXing.Net生成带有识别符的EAN-13条码