午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    asp.net(C#)生成Code39條形碼實(shí)例
    來源:易賢網(wǎng) 閱讀:2951 次 日期:2014-08-28 16:55:56
    溫馨提示:易賢網(wǎng)小編為您整理了“asp.net(C#)生成Code39條形碼實(shí)例”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了asp.net(C#)生成Code39條形碼實(shí)例 條碼槍可以掃描出。需要的朋友可以過來參考下,希望對大家有所幫助

    代碼如下:

    using System;

    using System.Collections;

    using System.ComponentModel;

    using System.Drawing;

    using System.Data;

    namespace MSCL

    {

    /// <summary>

    /// 生成條碼Code39

    /// </summary>

    public class Code39

    {

    private Hashtable m_Code39 = new Hashtable();

    private byte m_Magnify = 0;

    /// <summary>

    /// 放大倍數(shù)

    /// </summary>

    public byte Magnify { get { return m_Magnify; } set { m_Magnify = value; } }

    private int m_Height = 40;

    /// <summary>

    /// 圖形高

    /// </summary>

    public int Height { get { return m_Height; } set { m_Height = value; } }

    private Font m_ViewFont = null;

    /// <summary>

    /// 字體大小

    /// </summary>

    public Font ViewFont { get { return m_ViewFont; } set { m_ViewFont = value; } }

    public Code39()

    {

    m_Code39.Add("A", "1101010010110");

    m_Code39.Add("B", "1011010010110");

    m_Code39.Add("C", "1101101001010");

    m_Code39.Add("D", "1010110010110");

    m_Code39.Add("E", "1101011001010");

    m_Code39.Add("F", "1011011001010");

    m_Code39.Add("G", "1010100110110");

    m_Code39.Add("H", "1101010011010");

    m_Code39.Add("I", "1011010011010");

    m_Code39.Add("J", "1010110011010");

    m_Code39.Add("K", "1101010100110");

    m_Code39.Add("L", "1011010100110");

    m_Code39.Add("M", "1101101010010");

    m_Code39.Add("N", "1010110100110");

    m_Code39.Add("O", "1101011010010");

    m_Code39.Add("P", "1011011010010");

    m_Code39.Add("Q", "1010101100110");

    m_Code39.Add("R", "1101010110010");

    m_Code39.Add("S", "1011010110010");

    m_Code39.Add("T", "1010110110010");

    m_Code39.Add("U", "1100101010110");

    m_Code39.Add("V", "1001101010110");

    m_Code39.Add("W", "1100110101010");

    m_Code39.Add("X", "1001011010110");

    m_Code39.Add("Y", "1100101101010");

    m_Code39.Add("Z", "1001101101010");

    m_Code39.Add("0", "1010011011010");

    m_Code39.Add("1", "1101001010110");

    m_Code39.Add("2", "1011001010110");

    m_Code39.Add("3", "1101100101010");

    m_Code39.Add("4", "1010011010110");

    m_Code39.Add("5", "1101001101010");

    m_Code39.Add("6", "1011001101010");

    m_Code39.Add("7", "1010010110110");

    m_Code39.Add("8", "1101001011010");

    m_Code39.Add("9", "1011001011010");

    m_Code39.Add("+", "1001010010010");

    m_Code39.Add("-", "1001010110110");

    m_Code39.Add("*", "1001011011010");

    m_Code39.Add("/", "1001001010010");

    m_Code39.Add("%", "1010010010010");

    //m_Code39.Add("contentquot;, "1001001001010");

    m_Code39.Add(".", "1100101011010");

    m_Code39.Add(" ", "1001101011010");

    }

    public enum Code39Model

    {

    /// <summary>

    /// 基本類別 1234567890ABC

    /// </summary>

    Code39Normal,

    /// <summary>

    /// 全ASCII方式 +A+B 來表示小寫

    /// </summary>

    Code39FullAscII

    }

    /// <summary>

    /// 獲得條碼圖形

    /// </summary>

    /// <param name="p_Text">文字信息</param>

    /// <param name="p_Model">類別</param>

    /// <param name="p_StarChar">是否增加前后*號</param>

    /// <returns>圖形</returns>

    public Bitmap GetCodeImage(string p_Text, Code39Model p_Model, bool p_StarChar)

    {

    string _ValueText = "";

    string _CodeText = "";

    char[] _ValueChar = null;

    switch (p_Model)

    {

    case Code39Model.Code39Normal:

    _ValueText = p_Text.ToUpper();

    break;

    default:

    _ValueChar = p_Text.ToCharArray();

    for (int i = 0; i != _ValueChar.Length; i++)

    {

    if ((int)_ValueChar[i] >= 97 && (int)_ValueChar[i] <= 122)

    {

    _ValueText += "+" + _ValueChar[i].ToString().ToUpper();

    }

    else

    {

    _ValueText += _ValueChar[i].ToString();

    }

    }

    break;

    }

    _ValueChar = _ValueText.ToCharArray();

    if (p_StarChar == true) _CodeText += m_Code39["*"];

    for (int i = 0; i != _ValueChar.Length; i++)

    {

    if (p_StarChar == true && _ValueChar[i] == '*') throw new Exception("帶有起始符號不能出現(xiàn)*");

    object _CharCode = m_Code39[_ValueChar[i].ToString()];

    if (_CharCode == null) throw new Exception("不可用的字符" + _ValueChar[i].ToString());

    _CodeText += _CharCode.ToString();

    }

    if (p_StarChar == true) _CodeText += m_Code39["*"];

    Bitmap _CodeBmp = GetImage(_CodeText);

    GetViewImage(_CodeBmp, p_Text);

    return _CodeBmp;

    }

    /// <summary>

    /// 繪制編碼圖形

    /// </summary>

    /// <param name="p_Text">編碼</param>

    /// <returns>圖形</returns>

    private Bitmap GetImage(string p_Text)

    {

    char[] _Value = p_Text.ToCharArray();

    //寬 == 需要繪制的數(shù)量*放大倍數(shù) + 兩個字的寬

    Bitmap _CodeImage = new Bitmap(_Value.Length * ((int)m_Magnify + 1), (int)m_Height);

    Graphics _Garphics = Graphics.FromImage(_CodeImage);

    _Garphics.FillRectangle(Brushes.White, new Rectangle(0, 0, _CodeImage.Width, _CodeImage.Height));

    int _LenEx = 0;

    for (int i = 0; i != _Value.Length; i++)

    {

    int _DrawWidth = m_Magnify + 1;

    if (_Value[i] == '1')

    {

    _Garphics.FillRectangle(Brushes.Black, new Rectangle(_LenEx, 0, _DrawWidth, m_Height));

    }

    else

    {

    _Garphics.FillRectangle(Brushes.White, new Rectangle(_LenEx, 0, _DrawWidth, m_Height));

    }

    _LenEx += _DrawWidth;

    }

    _Garphics.Dispose();

    return _CodeImage;

    }

    /// <summary>

    /// 繪制文字

    /// </summary>

    /// <param name="p_CodeImage">圖形</param>

    /// <param name="p_Text">文字</param>

    private void GetViewImage(Bitmap p_CodeImage, string p_Text)

    {

    if (m_ViewFont == null) return;

    Graphics _Graphics = Graphics.FromImage(p_CodeImage);

    SizeF _FontSize = _Graphics.MeasureString(p_Text, m_ViewFont);

    if (_FontSize.Width > p_CodeImage.Width || _FontSize.Height > p_CodeImage.Height - 20)

    {

    _Graphics.Dispose();

    return;

    }

    int _StarHeight = p_CodeImage.Height - (int)_FontSize.Height;

    _Graphics.FillRectangle(Brushes.White, new Rectangle(0, _StarHeight, p_CodeImage.Width, (int)_FontSize.Height));

    int _StarWidth = (p_CodeImage.Width - (int)_FontSize.Width) / 2;

    _Graphics.DrawString(p_Text, m_ViewFont, Brushes.Black, _StarWidth, _StarHeight);

    _Graphics.Dispose();

    }

    }

    }

    代碼如下:

    <%@ WebHandler Language="C#" Class="GetC39Handler" %>

    using System;

    using System.Web;

    using System.IO;

    using System.Drawing;

    using System.Drawing.Imaging;

    public class GetC39Handler : IHttpHandler {

    //獲取Code39處理程序

    public void ProcessRequest (HttpContext context) {

    string OrderNo = context.Request.Params["OrderNo"];

    MSCL.Code39 _Code39 = new MSCL.Code39();

    _Code39.Height = 60;

    _Code39.Magnify = 0;

    _Code39.ViewFont = new Font("Arial", 12);

    System.Drawing.Image _CodeImage = _Code39.GetCodeImage(OrderNo, MSCL.Code39.Code39Model.Code39Normal, true);

    System.IO.MemoryStream _Stream = new System.IO.MemoryStream();

    _CodeImage.Save(_Stream, System.Drawing.Imaging.ImageFormat.Jpeg);

    //_CodeImage.Save(Server.MapPath("/1.jpeg"));

    //_CodeImage.Save(Server.MapPath("/1.BMP"));

    //_CodeImage.Save(Server.MapPath("/1.GIF"));

    context.Response.ContentType = "image/tiff";

    context.Response.Clear();

    context.Response.BufferOutput = true;

    context.Response.BinaryWrite(_Stream.GetBuffer());

    context.Response.Flush();

    }

    public bool IsReusable {

    get {

    return false;

    }

    }

    }

    代碼如下:

    //調(diào)用顯示訂單條碼

    Image1.ImageUrl = "GetC39Handler.ashx?OrderNo=32134411";

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:asp.net(C#)生成Code39條形碼實(shí)例
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2025國考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)