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 似乎是一个相当流行的。我希望这个控件能满足你的需求,并且你觉得它易于使用。如果你觉得它缺少任何功能,我很想听听你的意见,也许我会更新这个控件。我认为你会发现代码非常简单,并且如果你想将其用作自己控件的基础,也很容易修改。
