基于C#生成条形码操作知识汇总
什么是条形码?
条形码(英文:Barcode)是用一组粗细不同、间距不同且被平行分成若干个基本单元的直线条及空白,按一定的编码规则,代表不同的字符信息,并经过光电扫描或照相机扫描得到的一种自动识别技术。
C# 中生成条形码的方式
在C#中,可以通过使用各种第三方库和自定义代码的方式来生成条形码。其中主要的几种库包括:
-
ZXing.Net:这是Google的ZXing项目的.NET移植版本,是一个功能强大、易于使用的开源条形码生成库。
-
BarcodeLib:这也是一个免费、开源的C#条形码生成库。
-
Microsoft.ReportingServices.ReportRendering.Barcode:这是Microsoft官方提供的.NET条形码生成库。
使用ZXing.Net生成条形码
下面是使用ZXing.Net生成条形码的示例代码:
using ZXing;
using System.Drawing;
void GenerateBarcode(string content, int width, int height, string filePath)
{
var barcodeWriter = new BarcodeWriterPixelData
{
Format = BarcodeFormat.CODE_128,
Options = new EncodingOptions
{
Height = height,
Width = width,
Margin = 0
}
};
var pixelData = barcodeWriter.Write(content);
using (var bitmap = new Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb))
using (var ms = new MemoryStream())
{
var bitmapData = bitmap.LockBits(new Rectangle(0, 0, pixelData.Width, pixelData.Height), ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
try
{
Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length);
}
finally
{
bitmap.UnlockBits(bitmapData);
}
bitmap.Save(ms, ImageFormat.Png);
File.WriteAllBytes(filePath, ms.ToArray());
}
}
其中,content为条形码文字内容,width和height为条形码宽度和高度,filePath表示生成的条形码保存的文件路径。
使用BarcodeLib生成条形码
下面是使用BarcodeLib生成条形码的示例代码:
using BarcodeLib;
void GenerateBarcode(string content, int width, int height, string filePath)
{
var barcode = new Barcode();
barcode.IncludeLabel = true;
barcode.LabelFont = new Font("Arial", 10);
barcode.LabelPosition = LabelPositions.BOTTOMCENTER;
var image = barcode.Encode(BarcodeLib.TYPE.CODE128, content, width, height);
image.Save(filePath, ImageFormat.Png);
}
其中,content为条形码文字内容,width和height为条形码宽度和高度,filePath表示生成的条形码保存的文件路径。
下载示例源码
以上是使用两种常见的C#条形码生成库的示例代码。如果你对这个话题感兴趣,可以下载以下示例代码:
该示例代码包括使用ZXing.Net和BarcodeLib生成条形码的示例,及其它一些常见的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于C#生成条形码操作知识汇总附源码下载 - Python技术站