65.9K
CodeProject 正在变化。 阅读更多。
Home

Barcode .NET 控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.82/5 (62投票s)

2005 年 5 月 10 日

3分钟阅读

viewsIcon

430137

downloadIcon

47062

一个支持打印和保存的 Code 39 条形码控件。

Sample Image - barcodectl.jpg

引言

我决定创建这个控件有几个原因。首先,似乎有些人认为条形码非常复杂,但实际上并非如此。我需要在应用程序中显示一个条形码,但我发现的似乎只有字体,我不想安装,或者价格过高的控件。好吧,给你,我希望这个控件能满足你的需求,它是一个简单的 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)

    这控制控件的垂直对齐方式,可以是 LeftCenterRight

  • BarCode (string)

    这是要显示为条形码的文本。

  • BarCodeHeight (int)

    这是条形码的像素高度。

  • LeftMargin (int)

    左边距的大小。

  • TopMargin (int)

    上边距的大小。

  • HeaderText (string)

    要在页眉中显示的文本。

  • ShowHeader (bool)

    显示由 HeaderText 属性指定的页眉文本。

  • ShowFooter (bool)

    显示页脚,即条形码的文本表示。

  • Weight (BarCodeWeight enum)

    这是条形码的粗细,它会影响其显示宽度。值为 SmallMediumLarge

  • HeaderFont (Font)

    页眉文本的字体。

  • FooterFont (Font)

    页脚文本的字体。

使用代码

代码使用起来非常简单,只需将控件拖放到窗体上,然后即可通过“属性”窗口或通过代码开始自定义。

除了属性之外,还有两个公共函数值得关注

  • public void Print()

    此函数将显示一个打印对话框,然后将控件的内容打印到选定的打印机。

  • public void SaveImage(string filename)

    此函数会将控件的内容保存到由 filename 指定的位图图像。

结论

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

© . All rights reserved.