【问题标题】:Which free C# library can generate PDF-417 barcodes? [closed]哪个免费的 C# 库可以生成 PDF-417 条形码? [关闭]
【发布时间】:2012-02-10 22:26:15
【问题描述】:

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

【问题讨论】:

标签: c# barcode


【解决方案1】:

你也可以使用ZXing.netnuget包,会更简单好用。

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();
    }
}

【讨论】:

  • 这真的有效吗?
  • 我相信确实如此,有 4 个人投了赞成票
【解决方案2】:

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

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;
}

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

【讨论】:

  • 这不起作用。它生成的条形码看起来不错,但我无法用手机、在线条形码识别器或摩托罗拉扫描仪读取它。 ZXing.net 包我可以阅读它,但我正在做一场噩梦,让纵横比正确
  • 同上,生成它的级别为 0(不可扫描)、级别 4(文本被复制)和级别 8(文本被截断)。选择将生成的条形码与在线扫描仪之一进行比较,不,这不会创建有效的 pdf417 条形码。
猜你喜欢
  • 1970-01-01
  • 2011-10-24
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
相关资源
最近更新 更多