【问题标题】:.net barcode generation.net 条码生成
【发布时间】:2012-03-30 17:58:02
【问题描述】:

我正在使用 asp.net/c# 开发一个生成条形码的 Web 应用程序,我想知道使用条形码库是否更好,或者条形码字体就足够了。我遇到了一些示例,但是当使用条形码字体时,我发现用于生成条形码的每个代码前面都有一个星号(*)。我没有找到任何免费的条形码库。我想生成代码 39 或 93。请帮我决定

【问题讨论】:

  • 条码字体在我的经验中是有问题的...

标签: c# asp.net barcode code39


【解决方案1】:

试试jquery-barcode

它是一个用于生成条形码的 javascript 库。查看此question 了解其他替代方案。

【讨论】:

    【解决方案2】:

    这是我正在使用的一种扩展方法,不需要您安装字体:

    public static Image GetBarCode(this string data, int fontSizeEm)
            {
                data = "*" + data + "*";
                Image img = null;
                Graphics drawing = null;
                try
                {
                    using (var pfc = new PrivateFontCollection())
                    {
                        pfc.AddFontFile(@"{{PATH TO YOUR FONT FILE}}");
                        using (var myfont = new Font(pfc.Families[0], fontSizeEm))
                        {
                            img = new Bitmap(1, 1);
                            drawing = Graphics.FromImage(img);
                            var textSize = drawing.MeasureString(data, myfont);
                            img.Dispose();
                            drawing.Dispose();
                            img = new Bitmap((int) textSize.Width, (int) textSize.Height);
                            drawing = Graphics.FromImage(img);
                            drawing.DrawString(data, myfont, new SolidBrush(Color.Black), 0, 0);
                        }
                        drawing.Save();
                    }
                    return img;
                }
                catch
                {
                    //Handle exception
                    return null;
                }
                finally
                {
                    if(drawing!= null)
                        drawing.Dispose();
                }
            }
    

    【讨论】:

      【解决方案3】:

      根据我的经验,通过矩形等图形基元生成条形码的库远远优于条形码字体。原因:

      • 字体要大得多,通常是数量级,并且传输时间要长得多。这在串行连接上尤其成问题。
      • 字体生成的条形码通常不太准确,因为打印机可能会尝试对条形进行消除锯齿。
      • 字体受样式、自动换行、字体替换和其他难以控制的影响等因素的影响。

      有很多免费的条形码图像库。如果你没有找到任何你看起来不太好。

      第 3 个条码(共 9 个)需要在条码的开始和结束处设置防护栏,以便扫描器知道代码的开始和结束位置。打印代码 3 of 9 的图例时,这些防护栏传统上显示为星号。这些星号仅供阅读图例的人使用,它们不是代码的一部分,实际上星号不是 9 个字符的合法代码 3。如果您移除防护栏,扫描仪将无法读取条形码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        • 2010-09-26
        • 1970-01-01
        • 2018-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多