如何使用C#创建条形码图像?

5

我希望用C#根据员工记录创建条形码图片。


2
员工记录是什么?请提供更多细节... - Sergey Vedernikov
问题太模糊了。请详细说明或关闭它,或者只是询问如何创建条形码。另外,顺便问一下,JavaScript与C#和条形码有什么关系? - usr-local-ΕΨΗΕΛΩΝ
1
如果那是你的最终答案,@Sergey,那就没有必要开设这个问答网站了,不是吗。 - Steven Ryssaert
对我来说,这似乎是一个非常清晰的问题。我不明白为什么会被关闭。 - Tim Bostwick
3个回答

11

这是我最近项目中使用的一些代码。它要求你下载并安装条形码字体code39。

    private static void CreateBarcode(string code)
    {
        var myBitmap = new Bitmap(500,50);
        var g = Graphics.FromImage(myBitmap);
        var jgpEncoder = GetEncoder(ImageFormat.Jpeg);

        g.Clear(Color.White);

        var strFormat = new StringFormat {Alignment = StringAlignment.Center};
        g.DrawString(code, new Font("Free 3 of 9", 50), Brushes.Black, new RectangleF(0, 0, 500, 50), strFormat);

        var myEncoder = Encoder.Quality;
        var myEncoderParameters = new EncoderParameters(1);

        var myEncoderParameter = new EncoderParameter(myEncoder, 100L);
        myEncoderParameters.Param[0] = myEncoderParameter;
        myBitmap.Save(@"c:\Barcode.jpg", jgpEncoder, myEncoderParameters);
    }

    private static ImageCodecInfo GetEncoder(ImageFormat format)
    {

        var codecs = ImageCodecInfo.GetImageDecoders();

        foreach (var codec in codecs)
        {
            if (codec.FormatID == format.Guid)
            {
                return codec;
            }
        }
        return null;
    } 
希望这可以帮到你。

我按原样插入了代码,但出现了“GDI+ 中发生了一般错误”的异常。而且我很确定字体已经安装了。 - PUG
@jaminator,哪一行引起了你的问题? - Ash Burlaczenko
我的错,不是代码的问题,而是asp.net没有写入文件的权限;现在我只是在做response.write那张图片。 - PUG
我无法扫描上述逻辑打印的条形码。可能是什么问题? - informeto


1

条形码实际上只是一种字体。如果您使用条形码字体并提供有效的文本值,则条形码将正确呈现。

我最有经验的条形码是 3 of 9 barcode。它具有0-9、A-Z和其他一些字符的编码。如果您拥有此条形码的字体,只需在该字体中呈现文本(例如“abc123”),即可进行编码。没有其他事情需要做!

要确定您如何使用条形码,需要更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接