Barcode .NET 控件






4.82/5 (62投票s)
2005 年 5 月 10 日
3分钟阅读

430137

47062
一个支持打印和保存的 Code 39 条形码控件。
引言
我决定创建这个控件有几个原因。首先,似乎有些人认为条形码非常复杂,但实际上并非如此。我需要在应用程序中显示一个条形码,但我发现的似乎只有字体,我不想安装,或者价格过高的控件。好吧,给你,我希望这个控件能满足你的需求,它是一个简单的 code 39 条形码显示,支持页眉和页脚、打印、保存,并且非常易于定制。
背景
Code 39(也称为“Code 3 from 9”)是一种离散条形码,固定的条形图案代表一个字符。每个字符由 9 条条组成,其中 3 条比其他条更宽。每个字符显示为 5 个黑色条和 4 个白色条。Code 39 支持 43 个字符,外加一个用作起始/停止字符的附加字符。人类可读形式的起始/停止字符是“*”字符。以下是支持的字符列表及其 code 39 表示法
String [] coded39Char =
{
/* 0 */ "000110100",
/* 1 */ "100100001",
/* 2 */ "001100001",
/* 3 */ "101100000",
/* 4 */ "000110001",
/* 5 */ "100110000",
/* 6 */ "001110000",
/* 7 */ "000100101",
/* 8 */ "100100100",
/* 9 */ "001100100",
/* A */ "100001001",
/* B */ "001001001",
/* C */ "101001000",
/* D */ "000011001",
/* E */ "100011000",
/* F */ "001011000",
/* G */ "000001101",
/* H */ "100001100",
/* I */ "001001100",
/* J */ "000011100",
/* K */ "100000011",
/* L */ "001000011",
/* M */ "101000010",
/* N */ "000010011",
/* O */ "100010010",
/* P */ "001010010",
/* Q */ "000000111",
/* R */ "100000110",
/* S */ "001000110",
/* T */ "000010110",
/* U */ "110000001",
/* V */ "011000001",
/* W */ "111000000",
/* X */ "010010001",
/* Y */ "110010000",
/* Z */ "011010000",
/* - */ "010000101",
/* . */ "110000100",
/*' '*/ "011000100",
/* $ */ "010101000",
/* / */ "010100010",
/* + */ "010001010",
/* % */ "000101010",
/* * */ "010010100"
};
请注意,1 和 0 的表示是为了指定条形的宽度。0 代表单宽度条,1 代表双宽度条。每个字符将有 3 个双宽度条,其位置与其他字符不同。
特点
该控件继承自 System.Windows.Forms.Control
,条形码的外观由以下属性控制
VertAlign
(AlignType
enum
)这控制控件的垂直对齐方式,可以是
Left
、Center
或Right
。BarCode
(string
)这是要显示为条形码的文本。
BarCodeHeight
(int
)这是条形码的像素高度。
LeftMargin
(int
)左边距的大小。
TopMargin
(int
)上边距的大小。
HeaderText
(string
)要在页眉中显示的文本。
ShowHeader
(bool
)显示由
HeaderText
属性指定的页眉文本。ShowFooter
(bool
)显示页脚,即条形码的文本表示。
Weight
(BarCodeWeight
enum
)这是条形码的粗细,它会影响其显示宽度。值为
Small
、Medium
和Large
。HeaderFont
(Font
)页眉文本的字体。
FooterFont
(Font
)页脚文本的字体。
使用代码
代码使用起来非常简单,只需将控件拖放到窗体上,然后即可通过“属性”窗口或通过代码开始自定义。
除了属性之外,还有两个公共函数值得关注
public void Print()
此函数将显示一个打印对话框,然后将控件的内容打印到选定的打印机。
public void SaveImage(string filename)
此函数会将控件的内容保存到由
filename
指定的位图图像。
结论
还有其他类型的条形码,code 39 似乎是一个相当流行的。我希望这个控件能满足你的需求,并且你觉得它易于使用。如果你觉得它缺少任何功能,我很想听听你的意见,也许我会更新这个控件。我认为你会发现代码非常简单,并且如果你想将其用作自己控件的基础,也很容易修改。