C#使用BarcodeLib生成条形码的完整代码
目录
- 前言
- 一、BarcodeLib 简介
- 二、准备工作
- 安装 BarcodeLib
- 三、Barcode 类的核心属性说明
- 四、支持的条码类型枚举 (Type)
- 五、界面设计
- 六、示例代码
- 示例一:基础条码生成
- 示例二:自定义样式生成
- 总结
- 最后
前言
现代工业、物流、零售等领域,条形码作为信息识别的重要手段被广泛应用。BarcodeLib 是一个开源的 C# 库,专为大家提供便捷、高效的条形码生成功能。它支持多种常见的条码格式,并具备良好的可定制性和性能表现。
本文将详细介绍如何在 WinForm 项目中集成和使用 BarcodeLib 库,展示完整的代码示例与运行效果,帮助大家快速实现条形码的生成与显示。
一、BarcodeLib 简介
BarcodeLib 是一个功能强大且易于使用的条形码生成库,适用于 .NET 平台开发。其主要特点包括:
支持多种常见条形码格式(如 Code 128、EAN-13、UPC-A、Code 39、Postnet 等)
提供丰富的样式设置选项(颜色、字体、尺寸等)
高性能生成机制,适合企业级应用
开源免费,便于扩展和定制
二、准备工作
安装 BarcodeLib
创建一个新的 WinForm 应用程序项目后,使用 NuGet 安装 BarcodeLib
:
Install-Package BarcodeLib
该库基于 SkiaSharp 渲染图像,因此也依赖于 SkiaSharp 的相关包,请确保项目中已正确引用以下命名空间:
using BarcodeStandard; using SkiaSharp;
三、Barcode 类的核心属性说明
以下是 Barcode
类中一些关键属性:
属性名称 | 描述 |
---|---|
RawData | 要编码的原始数据 |
EncodedValue | 编php码后的值(只读) |
EncodedType | 条码类型(如 UPC-A, EAN-13 等) |
ForeColor / BackColor | 条码线条颜色 / 背景颜色 |
LabelFont | 标签字体设置 |
Width / Height | 图像宽度 / 高度 |
IncludeLabel | 是否显示标签 |
AlternateLabel | 自定义标签文本 |
这些属性高度自定义条形码的外观和行为。
四、支持的条码类型枚举 (Type)
BarcodeLib 支持以下条码格式(部分列举):
public enum Type { Unspecified, UpcA, Ean13, Code39, PostNet, Code128, // ...其他格式省略 }
可以根据实际需求选择合适的条码类型进行生成。
五、界面设计
在 WinForm 界面中添加以下控件:
TextBox
:用于输入条码内容,命名为txtCode
Button
:用于触发生成操作,命名为btnGenerate
,文本设为"生成条码"PictureBox
:用于显示生成的条码图像,命名为picBarcode
六、示例代码
示例一:基础条码生成
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("请输入条码内容", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { Barcode b = new B编程客栈arcode(); b.IncludeLabel = true; SKImage skImage = b.Encode(BarcodeStandard.Type.Code128, input, SKColors.Black, SKColors.White, 300, 100); using (SKData data = skpythonImage.Encode()) { using (MemoryStream stream = new MemoryStream(data.ToArray())) { picBarcode.Image = Image.FromStream(stream); } } } catch (Exception ex) { http://www.devze.com MessageBox.Show($"生成条码时发生错误: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
示例二:自定义样式生成
using System; using System.Drawing; using System.Windows.Forms; using BarcodeStandard; using SkiaSharp; namespace AppBarcodeLib { ppythonublic 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(); } } }
总结
通过本文的学习,我们了解了如何使用 BarcodeLib 库在 WinForm 项目中生成条形码,并掌握了基本的条码类型、样式设置以及图像输出方法。
该库不仅支持多种主流条码格式,还提供了丰富的 API 和良好的性能,非常适合用于需要嵌入条码生成功能的企业级应用程序。无论是简单的条码打印还是复杂的定制化显示,BarcodeLib 都能满足你的需求。
关键词:BarcodeLib,WinForm,条形码生成,Code 128,EAN-13,Code 39,SkiaSharp,C#,图像处理,开源库
最后
以上就是C#使用BarcodeLib生成条形码的完整代码的详细内容,更多关于C# BarcodeLib生成条形码的资料请关注编程客栈(www.devze.com)其它相关文章!
精彩评论