博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
本文主要介绍.NET Core(C#)中,使用BarcodeLib生成图片格式的条码(Barcode)的方法,以及相关的示例代码。

 

1、通过Nuget安装引用BarcodeLib

1)使用Nuget界面管理器

搜索“BarcodeLib”,在列表中分别找到它,点击"安装"

相关文档:VS(Visual Studio)中Nuget的使用

2)使用Package Manager命令安装

PM> Install-Package BarcodeLib

3)使用.NET CLI命令安装

> dotnet add package BarcodeLib

2、使用BarcodeLib生成条码图片

命名空间:

using System;
using System.IO;
using System.DrawingCore.Imaging;
using BarcodeLib;

1)保存成图片

public static void GetBarCode(string Code, string path, TYPE type = TYPE.CODE128, int Length = 1000, int Height = 200, int FontSize = 40)
{
    try
    {
        using (Barcode barcode = new Barcode())
        {
            using (MemoryStream ms = new MemoryStream())
            {
                barcode.IncludeLabel = true;
                barcode.Alignment = AlignmentPositions.CENTER;
                barcode.LabelFont = new System.Drawing.Font(System.Drawing.FontFamily.GenericMonospace, FontSize, System.Drawing.FontStyle.Regular);
                var barcodeImage = barcode.Encode(type, Code, System.Drawing.Color.Black, System.Drawing.Color.White, Length, Height);
                barcodeImage.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

2)返回图片的字节数据

public static byte[] GetBarCode(string Code, TYPE type = TYPE.CODE128, int Length = 1000, int Height = 200, int FontSize = 40)
{
    try
    {
        using (Barcode barcode = new Barcode())
        {
            using (MemoryStream ms = new MemoryStream())
            {
                barcode.IncludeLabel = true;
                barcode.Alignment = AlignmentPositions.CENTER;
                barcode.LabelFont = new System.Drawing.Font(System.Drawing.FontFamily.GenericMonospace, FontSize, System.Drawing.FontStyle.Regular);
                var barcodeImage = barcode.Encode(type, Code, System.Drawing.Color.Black, System.Drawing.Color.White, Length, Height);
                barcodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                ms.Position = 0;
                using (BinaryReader reader = new BinaryReader(ms))
                {
                    byte[] bytes = (byte[])reader.ReadBytes((int)ms.Length).Clone();
                    reader.Dispose();
                    ms.Dispose();
                    return bytes;
                }
            }
        }
    }
    catch (Exception)
    {
        return null;
    }
}