public class Barcode : IHttpHandler
{
private object _code = "";
private int _height = 52;
private string code = "";
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString["code"] != null)
{
_code = context.Request.QueryString["code"].ToString();
_code = "*" + _code + "*";
}
code = bar_code(_code);
int p_w = code.Length;
//int p_h = _height + 20;
int p_h = _height;
context.Response.ContentType = "image/gif";
Bitmap myBitmap = new Bitmap(p_w, p_h);
Graphics myGrap = Graphics.FromImage(myBitmap);
myGrap.Clear(Color.White);
for (int i = 0; i < p_w; i++)
{
Pen myPen = new Pen(Color.White, 1);
if (code.Substring(i, 1) == "|")
{
myPen.Color = Color.Black;
}
myGrap.DrawLine(myPen, i, 0, i, _height);
}
//myGrap.DrawString(_code.ToString(), new Font("Courier New", 10), new SolidBrush(Color.Black), -4, _height);
myBitmap.Save(context.Response.OutputStream, ImageFormat.Gif);
context.Response.End();
}
public string bar_code(object str)
{
string strTmp = str.ToString();
string code = strTmp;
strTmp = strTmp.ToLower();
strTmp = strTmp.Replace("0", "_|_|__||_||_|");
strTmp = strTmp.Replace("1", "_||_|__|_|_||");
strTmp = strTmp.Replace("2", "_|_||__|_|_||");
strTmp = strTmp.Replace("3", "_||_||__|_|_|");
strTmp = strTmp.Replace("4", "_|_|__||_|_||");
strTmp = strTmp.Replace("5", "_||_|__||_|_|");
strTmp = strTmp.Replace("7", "_|_|__|_||_||");
strTmp = strTmp.Replace("6", "_|_||__||_|_|");
strTmp = strTmp.Replace("8", "_||_|__|_||_|");
strTmp = strTmp.Replace("9", "_|_||__|_||_|");
strTmp = strTmp.Replace("a", "_||_|_|__|_||");
strTmp = strTmp.Replace("b", "_|_||_|__|_||");
strTmp = strTmp.Replace("c", "_||_||_|__|_|");
strTmp = strTmp.Replace("d", "_|_|_||__|_||");
strTmp = strTmp.Replace("e", "_||_|_||__|_|");
strTmp = strTmp.Replace("f", "_|_||_||__|_|");
strTmp = strTmp.Replace("g", "_|_|_|__||_||");
strTmp = strTmp.Replace("h", "_||_|_|__||_|");
strTmp = strTmp.Replace("i", "_|_||_|__||_|");
strTmp = strTmp.Replace("j", "_|_|_||__||_|");
strTmp = strTmp.Replace("k", "_||_|_|_|__||");
strTmp = strTmp.Replace("l", "_|_||_|_|__||");
strTmp = strTmp.Replace("m", "_||_||_|_|__|");
strTmp = strTmp.Replace("n", "_|_|_||_|__||");
strTmp = strTmp.Replace("o", "_||_|_||_|__|");
strTmp = strTmp.Replace("p", "_|_||_||_|__|");
strTmp = strTmp.Replace("r", "_||_|_|_||__|");
strTmp = strTmp.Replace("q", "_|_|_|_||__||");
strTmp = strTmp.Replace("s", "_|_||_|_||__|");
strTmp = strTmp.Replace("t", "_|_|_||_||__|");
strTmp = strTmp.Replace("u", "_||__|_|_|_||");
strTmp = strTmp.Replace("v", "_|__||_|_|_||");
strTmp = strTmp.Replace("w", "_||__||_|_|_|");
strTmp = strTmp.Replace("x", "_|__|_||_|_||");
strTmp = strTmp.Replace("y", "_||__|_||_|_|");
strTmp = strTmp.Replace("z", "_|__||_||_|_|");
strTmp = strTmp.Replace("-", "_|__|_|_||_||");
strTmp = strTmp.Replace("*", "_|__|_||_||_|");
strTmp = strTmp.Replace("/", "_|__|__|_|__|");
strTmp = strTmp.Replace("%", "_|_|__|__|__|");
strTmp = strTmp.Replace("+", "_|__|_|__|__|");
strTmp = strTmp.Replace(".", "_||__|_|_||_|");
return strTmp;
}
public bool IsReusable
{
get
{
return false;
}
}
}