• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.net(c#)生成条形码 code39条码生成方法
    这几天一直在弄128条码的事情,找了相关的资料,也没找到。后来没办法只能改成code39的条码。现在把它写出来,与大家分享

    1.先下载一种免费的 code39条码字体
    2.建个类 为 code39 并写入以下代码
    复制代码 代码如下:

    public sealed class Code39
    {
    #region private variables
    /// summary>
    /// The Space Between each of Title, BarCode, BarCodeString
    /// /summary>
    private const int SPACE_HEIGHT = 3;
    SizeF _sizeLabel = SizeF.Empty;
    SizeF _sizeBarCodeValue = SizeF.Empty;
    SizeF _sizeBarCodeString = SizeF.Empty;
    #endregion
    #region Label
    private string _label = null;
    private Font _labelFont = null;
    /// summary>
    /// BarCode Title (条码标签)
    /// /summary>
    public string Label
    {
    set { _label = value; }
    }
    /// summary>
    /// BarCode Title Font (条码标签使用的字体)
    /// /summary>
    public Font LabelFont
    {
    get
    {
    if (_labelFont == null)
    return new Font("Arial", 10);
    return _labelFont;
    }
    set { _labelFont = value; }
    }
    #endregion
    private string _additionalInfo = null;
    private Font _addtionalInfoFont = null;
    /// summary>
    /// Additional Info Font (附加信息字体)
    /// /summary>
    public Font AdditionalInfoFont
    {
    set { _addtionalInfoFont = value; }
    get
    {
    if (_addtionalInfoFont == null) return new Font("Arial", 10);
    return _addtionalInfoFont;
    }
    }
    /// summary>
    /// Additional Info Content, if "ShowBarCodeValue" is true, the info is unvisible
    /// 附加信息,如果设置ShowBarCodeValue为true,则此项不显示
    /// /summary>
    public string AdditionalInfo
    {
    set { _additionalInfo = value; }
    }
    #region BarCode Value and Font
    private string _barCodeValue = null;
    /// summary>
    /// BarCode Value (条码值)
    /// /summary>
    public string BarCodeValue
    {
    get
    {
    if (string.IsNullOrEmpty(_barCodeValue))
    throw new NullReferenceException("The BarCodeValue has not been set yet!");
    return _barCodeValue;
    }
    set { _barCodeValue = value.StartsWith("*") value.EndsWith("*") ? value : "*" + value + "*"; }
    }
    private bool _showBarCodeValue = false;
    /// summary>
    /// whether to show the original string of barcode value bellow the barcode
    /// 是否在条码下方显示条码值,默认为false
    /// /summary>
    public bool ShowBarCodeValue
    {
    set { _showBarCodeValue = value; }
    }
    private Font _barCodeValueFont = null;
    /// summary>
    /// the font of the codestring to show
    /// 条码下方显示的条码值的字体
    /// /summary>
    public Font BarCodeValueFont
    {
    get
    {
    if (_barCodeValueFont == null)
    return new Font("Arial", 10);
    return _barCodeValueFont;
    }
    set { _barCodeValueFont = value; }
    }
    private int _barCodeFontSize = 50;
    /// summary>
    /// the font size of the barcode value to draw
    /// 条码绘制的大小,默认50
    /// /summary>
    public int BarCodeFontSzie
    {
    set { _barCodeFontSize = value; }
    }
    #endregion
    #region generate the barcode image
    private Bitmap BlankBackImage
    {
    get
    {
    int barCodeWidth = 0, barCodeHeight = 0;
    using (Bitmap bmp = new Bitmap(1, 1, PixelFormat.Format32bppArgb))
    {
    using (Graphics g = Graphics.FromImage(bmp))
    {
    if (!string.IsNullOrEmpty(_label))
    {
    _sizeLabel = g.MeasureString(_label, LabelFont);
    barCodeWidth = (int)_sizeLabel.Width;
    barCodeHeight = (int)_sizeLabel.Height + SPACE_HEIGHT;
    }
    _sizeBarCodeValue = g.MeasureString(BarCodeValue, new Font("Free 3 of 9 Extended", _barCodeFontSize));
    barCodeWidth = Math.Max(barCodeWidth, (int)_sizeBarCodeValue.Width);
    barCodeHeight += (int)_sizeBarCodeValue.Height;
    if (_showBarCodeValue)
    {
    _sizeBarCodeString = g.MeasureString(_barCodeValue, BarCodeValueFont);
    barCodeWidth = Math.Max(barCodeWidth, (int)_sizeBarCodeString.Width);
    barCodeHeight += (int)_sizeBarCodeString.Height + SPACE_HEIGHT;
    }
    //else
    //{
    // if (!string.IsNullOrEmpty(_additionalInfo))
    // {
    // _sizeAdditionalInfo = g.MeasureString(_additionalInfo, AdditionalInfoFont);
    // barCodeWidth = Math.Max(barCodeWidth, (int)_sizeAdditionalInfo.Width);
    // barCodeHeight += (int)_sizeAdditionalInfo.Height + SPACE_HEIGHT;
    // }
    //}
    }
    }
    return new Bitmap(barCodeWidth, barCodeHeight, PixelFormat.Format32bppArgb);
    }
    }
    /// summary>
    /// Draw the barcode value to the blank back image and output it to the browser
    /// 绘制WebForm形式的条码
    /// /summary>
    /// param name="ms">Recommand the "Response.OutputStream" 使用 Response.OutputStream/param>
    /// param name="imageFormat">The Image format to the Browser 输出到浏览器到图片格式,建议GIF/param>
    public Bitmap CreateWebForm(Stream ms, ImageFormat imageFormat)
    {
    int barCodeWidth, barCodeHeight;
    using (Bitmap bmp = this.BlankBackImage)
    {
    barCodeHeight = bmp.Height;
    barCodeWidth = bmp.Width;
    using (Graphics g = Graphics.FromImage(bmp))
    {
    g.Clear(Color.White);
    g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
    int vPos = 0;
    ////Draw Label String
    if (!string.IsNullOrEmpty(_label))
    {
    g.DrawString(_label, LabelFont, new SolidBrush(Color.Black),
    XCenter((int)_sizeLabel.Width, barCodeWidth), vPos);
    vPos += (int)_sizeLabel.Height + SPACE_HEIGHT;
    }
    else { vPos = SPACE_HEIGHT; }
    ////Draw The Bar Value
    g.DrawString(_barCodeValue, new Font("Free 3 of 9 Extended", _barCodeFontSize), new SolidBrush(Color.Black),
    XCenter((int)_sizeBarCodeValue.Width, barCodeWidth), vPos);
    ////Draw the BarValue String
    if (_showBarCodeValue)
    {
    g.DrawString(_barCodeValue, BarCodeValueFont, new SolidBrush(Color.Black),
    XCenter((int)_sizeBarCodeString.Width, barCodeWidth),
    vPos + (int)_sizeBarCodeValue.Height);
    }
    //else
    //{
    // if (!string.IsNullOrEmpty(_additionalInfo))
    // {
    // g.DrawString(_additionalInfo, AdditionalInfoFont, new SolidBrush(Color.Black),
    // XCenter((int)_sizeAdditionalInfo.Width, barCodeWidth),
    // vPos + (int)_sizeBarCodeValue.Height);
    // }
    //}
    }
    bmp.Save(ms, imageFormat);
    return bmp;
    }
    }
    /// summary>
    /// 生成winform格式的条码
    /// /summary>
    /// param name="imageFormat">图片格式,建议GIF/param>
    /// returns>Stream类型/returns>
    public Stream CreateWinForm(ImageFormat imageFormat)
    {
    int barCodeWidth, barCodeHeight;
    using (Bitmap bmp = this.BlankBackImage)
    {
    barCodeHeight = bmp.Height;
    barCodeWidth = bmp.Width;
    using (Graphics g = Graphics.FromImage(bmp))
    {
    g.Clear(Color.White);
    g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
    int vPos = 0;
    ////Draw Label String
    if (!string.IsNullOrEmpty(_label))
    {
    g.DrawString(_label, LabelFont, new SolidBrush(Color.Black),
    XCenter((int)_sizeLabel.Width, barCodeWidth), vPos);
    vPos += (int)_sizeLabel.Height + SPACE_HEIGHT;
    }
    else { vPos = SPACE_HEIGHT; }
    ////Draw The Bar Value
    g.DrawString(_barCodeValue, new Font("Free 3 of 9 Extended", _barCodeFontSize), new SolidBrush(Color.Black),
    XCenter((int)_sizeBarCodeValue.Width, barCodeWidth), vPos);
    ////Draw the BarValue String
    if (_showBarCodeValue)
    {
    g.DrawString(_barCodeValue, BarCodeValueFont, new SolidBrush(Color.Black),
    XCenter((int)_sizeBarCodeString.Width, barCodeWidth),
    vPos + (int)_sizeBarCodeValue.Height);
    }
    //else
    //{
    // //if (!string.IsNullOrEmpty(_additionalInfo))
    // //{
    // // g.DrawString(_additionalInfo, AdditionalInfoFont, new SolidBrush(Color.Black),
    // // //XCenter((int)_sizeAdditionalInfo.Width, barCodeWidth),
    // // vPos + (int)_sizeBarCodeValue.Height);
    // //}
    //}
    }
    Stream ms = new MemoryStream();
    bmp.Save(ms, imageFormat);
    return ms;
    }
    }
    #endregion
    private static int XCenter(int subWidth, int globalWidth)
    {
    return (globalWidth - subWidth) / 2;
    }
    }

    3.如果是web程序 请调用 CreateWebForm 如果是cs程序 则使用CreateWinForm
    4.新建一aspx文件,写入以下代码
    复制代码 代码如下:

    protected void Page_Load(object sender, EventArgs e)
    {
    Code39 code39 = new Code39();
    code39.BarCodeValue = "LDSO-001";
    code39.BarCodeFontSzie = 60;
    // code39.Label = "39码,底部显示码值";
    code39.ShowBarCodeValue = true;
    Response.Write(code39.CreateWebForm(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif));
    code39 = null;
    }
    您可能感兴趣的文章:
    • ASP.NET MVC3关于生成纯静态后如何不再走路由直接访问静态页面
    • 使用ASP.NET模板生成HTML静态页面的五种方案
    • ASP.NET动态生成静态页面的实例代码
    • ASP.NET 生成静态页面 实现思路
    • Asp.NET 生成静态页面并分页的代码
    • Asp.Net生成静态页面的实现方法
    • ASP.NET MVC生成静态页面的方法
    • asp.net生成Excel并导出下载五种实现方法
    • asp.net(C#) 生成随机验证码的代码
    • asp.net C#生成和解析二维码的实例代码
    • Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
    • ASP.NET编程简单实现生成静态页面的方法【附demo源码下载】
    上一篇:iis配置asp.net常见问题解决方案
    下一篇:CreateOutputCachedItemKey 缓存key的创建
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP.net(c#)生成条形码 code39条码生成方法 ASP.net,生成,条形码,code39,