C#使用BarcodeLib生成條形碼的完整代碼
前言
現(xiàn)代工業(yè)、物流、零售等領(lǐng)域,條形碼作為信息識(shí)別的重要手段被廣泛應(yīng)用。BarcodeLib 是一個(gè)開源的 C# 庫(kù),專為大家提供便捷、高效的條形碼生成功能。它支持多種常見(jiàn)的條碼格式,并具備良好的可定制性和性能表現(xiàn)。
本文將詳細(xì)介紹如何在 WinForm 項(xiàng)目中集成和使用 BarcodeLib 庫(kù),展示完整的代碼示例與運(yùn)行效果,幫助大家快速實(shí)現(xiàn)條形碼的生成與顯示。
一、BarcodeLib 簡(jiǎn)介
BarcodeLib 是一個(gè)功能強(qiáng)大且易于使用的條形碼生成庫(kù),適用于 .NET 平臺(tái)開發(fā)。其主要特點(diǎn)包括:
支持多種常見(jiàn)條形碼格式(如 Code 128、EAN-13、UPC-A、Code 39、Postnet 等)
提供豐富的樣式設(shè)置選項(xiàng)(顏色、字體、尺寸等)
高性能生成機(jī)制,適合企業(yè)級(jí)應(yīng)用
開源免費(fèi),便于擴(kuò)展和定制
二、準(zhǔn)備工作
安裝 BarcodeLib
創(chuàng)建一個(gè)新的 WinForm 應(yīng)用程序項(xiàng)目后,使用 NuGet 安裝 BarcodeLib:
Install-Package BarcodeLib

該庫(kù)基于 SkiaSharp 渲染圖像,因此也依賴于 SkiaSharp 的相關(guān)包,請(qǐng)確保項(xiàng)目中已正確引用以下命名空間:
using BarcodeStandard; using SkiaSharp;
三、Barcode 類的核心屬性說(shuō)明
以下是 Barcode 類中一些關(guān)鍵屬性:
| 屬性名稱 | 描述 |
|---|---|
RawData | 要編碼的原始數(shù)據(jù) |
EncodedValue | 編碼后的值(只讀) |
EncodedType | 條碼類型(如 UPC-A, EAN-13 等) |
ForeColor / BackColor | 條碼線條顏色 / 背景顏色 |
LabelFont | 標(biāo)簽字體設(shè)置 |
Width / Height | 圖像寬度 / 高度 |
IncludeLabel | 是否顯示標(biāo)簽 |
AlternateLabel | 自定義標(biāo)簽文本 |
這些屬性高度自定義條形碼的外觀和行為。
四、支持的條碼類型枚舉 (Type)
BarcodeLib 支持以下條碼格式(部分列舉):
public enum Type
{
Unspecified,
UpcA,
Ean13,
Code39,
PostNet,
Code128,
// ...其他格式省略
}
可以根據(jù)實(shí)際需求選擇合適的條碼類型進(jìn)行生成。
五、界面設(shè)計(jì)
在 WinForm 界面中添加以下控件:
TextBox:用于輸入條碼內(nèi)容,命名為txtCodeButton:用于觸發(fā)生成操作,命名為btnGenerate,文本設(shè)為"生成條碼"PictureBox:用于顯示生成的條碼圖像,命名為picBarcode
六、示例代碼
示例一:基礎(chǔ)條碼生成
using BarcodeStandard;
using SkiaSharp;
namespace AppBarcodeLib
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnGenerate_Click(object sender, EventArgs e)
{
string input = txtCode.Text;
if (string.IsNullOrWhiteSpace(input))
{
MessageBox.Show("請(qǐng)輸入條碼內(nèi)容", "錯(cuò)誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
{
Barcode b = new Barcode();
b.IncludeLabel = true;
SKImage skImage = b.Encode(BarcodeStandard.Type.Code128, input, SKColors.Black, SKColors.White, 300, 100);
using (SKData data = skImage.Encode())
{
using (MemoryStream stream = new MemoryStream(data.ToArray()))
{
picBarcode.Image = Image.FromStream(stream);
}
}
}
catch (Exception ex)
{
MessageBox.Show($"生成條碼時(shí)發(fā)生錯(cuò)誤: {ex.Message}", "錯(cuò)誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
示例二:自定義樣式生成
using System;
using System.Drawing;
using System.Windows.Forms;
using BarcodeStandard;
using SkiaSharp;
namespace AppBarcodeLib
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public void GenerateBarcode()
{
Barcode barcode = new Barcode
{
RawData = txtCode.Text,
EncodedType = Type.Ean13,
Width = 300,
Height = 150
};
barcode.ForeColor = SKColors.Blue;
barcode.BackColor = SKColors.LightGray;
barcode.IncludeLabel = true;
barcode.AlternateLabel = "Custom Text";
barcode.LabelFont = new SKFont
{
Typeface = SKTypeface.FromFamilyName("Times New Roman", SKFontStyle.Bold),
Size = 32
};
SKImage skImage = barcode.Encode(txtCode.Text);
using (SKData data = skImage.Encode())
{
using (MemoryStream stream = new MemoryStream(data.ToArray()))
{
System.Drawing.Image windowsImage = System.Drawing.Image.FromStream(stream);
picBarcode.Image = windowsImage;
}
}
}
private void btnGenerate_Click(object sender, EventArgs e)
{
GenerateBarcode();
}
}
}

總結(jié)
通過(guò)本文的學(xué)習(xí),我們了解了如何使用 BarcodeLib 庫(kù)在 WinForm 項(xiàng)目中生成條形碼,并掌握了基本的條碼類型、樣式設(shè)置以及圖像輸出方法。
該庫(kù)不僅支持多種主流條碼格式,還提供了豐富的 API 和良好的性能,非常適合用于需要嵌入條碼生成功能的企業(yè)級(jí)應(yīng)用程序。無(wú)論是簡(jiǎn)單的條碼打印還是復(fù)雜的定制化顯示,BarcodeLib 都能滿足你的需求。
關(guān)鍵詞:BarcodeLib,WinForm,條形碼生成,Code 128,EAN-13,Code 39,SkiaSharp,C#,圖像處理,開源庫(kù)
最后
以上就是C#使用BarcodeLib生成條形碼的完整代碼的詳細(xì)內(nèi)容,更多關(guān)于C# BarcodeLib生成條形碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#實(shí)現(xiàn)泛型List分組輸出元素的方法
這篇文章主要介紹了C#實(shí)現(xiàn)泛型List分組輸出元素的方法,涉及C#針對(duì)List的遍歷、排序、輸出等相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
C#基于JsonConvert解析Json數(shù)據(jù)的方法實(shí)例
最近初接觸C#語(yǔ)言,發(fā)現(xiàn)JSON解析這塊和JAVA差異過(guò)大,下面這篇文章主要給大家介紹了關(guān)于C#基于JsonConvert解析Json數(shù)據(jù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
C#監(jiān)控文件夾并自動(dòng)給圖片文件打水印的方法
這篇文章主要介紹了C#監(jiān)控文件夾并自動(dòng)給圖片文件打水印的方法,涉及C#針對(duì)文件夾及圖片操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
C#使用foreach語(yǔ)句搜索數(shù)組元素的方法
這篇文章主要介紹了C#使用foreach語(yǔ)句搜索數(shù)組元素的方法,涉及C#使用foreach語(yǔ)句遍歷數(shù)組實(shí)現(xiàn)搜索功能的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04

