前言
现代工业、物流、零售等领域,条形码作为信息识别的重要手段被广泛应用。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 | 编码后的值(只读) |
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:用于输入条码内容,命名为txtcodebutton:用于触发生成操作,命名为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 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($"生成条码时发生错误: {ex.message}", "错误", 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();
}
}
}

总结
通过本文的学习,我们了解了如何使用 barcodelib 库在 winform 项目中生成条形码,并掌握了基本的条码类型、样式设置以及图像输出方法。
该库不仅支持多种主流条码格式,还提供了丰富的 api 和良好的性能,非常适合用于需要嵌入条码生成功能的企业级应用程序。无论是简单的条码打印还是复杂的定制化显示,barcodelib 都能满足你的需求。
关键词:barcodelib,winform,条形码生成,code 128,ean-13,code 39,skiasharp,c#,图像处理,开源库
最后
以上就是c#使用barcodelib生成条形码的完整代码的详细内容,更多关于c# barcodelib生成条形码的资料请关注代码网其它相关文章!
发表评论