哪个免费的C#库可以生成PDF-417条形码?

时间:2012-02-10 22:26:16

标签: c# barcode

我需要一个免费 C#库,它允许创建PDF-417条形码。然而,我遇到的所有网站都是商业产品。你能推荐一个免费的图书馆吗?

2 个答案:

答案 0 :(得分:6)

您还可以使用ZXing.net nuget包,它将更简单易用。

private byte[] GenerateBarCodeZXing(string data)
{
    var writer = new BarcodeWriter
    {
        Format = BarcodeFormat.PDF_417,
        Options = new EncodingOptions { Width = 200, Height = 50 } //optional
    };
    var imgBitmap = writer.Write(data);
    using (var stream = new MemoryStream())
    {
        imgBitmap.Save(stream, ImageFormat.Png);
        return stream.ToArray();
    }
}

答案 1 :(得分:-1)

您可以使用SharpPDF417 nuget包。它是完全免费的。但是我们需要编写一些包装代码来获取生成的byte []或条形码流。

private byte[] GenerateBarCode(string data)
{
    Pdf417Generator gen = new Pdf417Generator(data);
    int bw = 2;
    int bh = 2;
    var barcode = gen.Encode();
    var width = barcode.Columns * bh;
    var height = barcode.Rows * bh;
    Byte[] imgData;
    using (MemoryStream stream = new MemoryStream())
    {
        using (System.Drawing.Image bmp = new Bitmap(width, height))
        {
            using (Graphics graphics = Graphics.FromImage(bmp))
            {


                int y = 0;
                for (int r = 0; r < barcode.Rows; ++r)
                {
                    int x = 0;
                    for (int c = 0; c < barcode.Columns; ++c)
                    {
                        if (barcode.RawData[r][c] == 1)
                        {
                            graphics.FillRectangle(Brushes.Black, x, y, bw, bh);
                        }
                        x += bw;
                    }
                    y += bh;
                }
            }
            bmp.Save(stream, ImageFormat.Png);
        }

        imgData = stream.ToArray();
    }
    return imgData;
}

您可以使用我的上述方法获取生成条形码的字节数组。