aspnetC#生成Code39条形码实例.docx
- 文档编号:25142711
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:7
- 大小:16.21KB
aspnetC#生成Code39条形码实例.docx
《aspnetC#生成Code39条形码实例.docx》由会员分享,可在线阅读,更多相关《aspnetC#生成Code39条形码实例.docx(7页珍藏版)》请在冰豆网上搜索。
aspnetC#生成Code39条形码实例
(C#)生成Code39条形码实例_
这篇文章主要介绍了(C#)生成Code39条形码实例条码枪可以扫描出。
需要的伴侣可以过来参考下,盼望对大家有所关心
代码如下:
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Drawing;
usingSystem.Data;
namespaceMSCL
{
///summary
///生成条码Code39
////summary
publicclassCode39
{
privateHashtablem_Code39=newHashtable();
privatebytem_Magnify=0;
///summary
///放大倍数
////summary
publicbyteMagnify{get{returnm_Magnify;}set{m_Magnify=value;}}
privateintm_Height=40;
///summary
///图形高
////summary
publicintHeight{get{returnm_Height;}set{m_Height=value;}}
privateFontm_ViewFont=null;
///summary
///字体大小
////summary
publicFontViewFont{get{returnm_ViewFont;}set{m_ViewFont=value;}}
publicCode39()
{
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");
}
publicenumCode39Model
{
///summary
///基本类别1234567890ABC
////summary
Code39Normal,
///summary
///全ASCII方式+A+B来表示小写
////summary
Code39FullAscII
}
///summary
///获得条码图形
////summary
///paramname="p_Text"文字信息/param
///paramname="p_Model"类别/param
///paramname="p_StarChar"是否增加前后*号/param
///returns图形/returns
publicBitmapGetCodeImage(stringp_Text,Code39Modelp_Model,boolp_StarChar)
{
string_ValueText="";
string_CodeText="";
char[]_ValueChar=null;
switch(p_Model)
{
caseCode39Model.Code39Normal:
_ValueText=p_Text.ToUpper();
break;
default:
_ValueChar=p_Text.ToCharArray();
for(inti=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(inti=0;i!
=_ValueChar.Length;i++)
{
if(p_StarChar==true_ValueChar[i]=='*')thrownewException("带有起始符号不能消失*");
object_CharCode=m_Code39[_ValueChar[i].ToString()];
if(_CharCode==null)thrownewException("不行用的字符"+_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
///paramname="p_Text"编码/param
///returns图形/returns
privateBitmapGetImage(stringp_Text)
{
char[]_Value=p_Text.ToCharArray();
//宽==需要绘制的数量*放大倍数+两个字的宽
Bitmap_CodeImage=newBitmap(_Value.Length*((int)m_Magnify+1),(int)m_Height);
Graphics_Garphics=Graphics.FromImage(_CodeImage);
_Garphics.FillRectangle(Brushes.White,newRectangle(0,0,_CodeImage.Width,_CodeImage.Height));
int_LenEx=0;
for(inti=0;i!
=_Value.Length;i++)
{
int_DrawWidth=m_Magnify+1;
if(_Value[i]=='1')
{
_Garphics.FillRectangle(Brushes.Black,newRectangle(_LenEx,0,_DrawWidth,m_Height));
}
else
{
_Garphics.FillRectangle(Brushes.White,newRectangle(_LenEx,0,_DrawWidth,m_Height));
}
_LenEx+=_DrawWidth;
}
_Garphics.Dispose();
return_CodeImage;
}
///summary
///绘制文字
////summary
///paramname="p_CodeImage"图形/param
///paramname="p_Text"文字/param
privatevoidGetViewImage(Bitmapp_CodeImage,stringp_Text)
{
if(m_ViewFont==null)return;
Graphics_Graphics=Graphics.FromImage(p_CodeImage);
SizeF_FontSize=_Graphics.MeasureString(p_Text,m_ViewFont);
if(_FontSize.Widthp_CodeImage.Width||_FontSize.Heightp_CodeImage.Height-20)
{
_Graphics.Dispose();
return;
}
int_StarHeight=p_CodeImage.Height-(int)_FontSize.Height;
_Graphics.FillRectangle(Brushes.White,newRectangle(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();
}
}
}
代码如下:
%@WebHandlerLanguage="C#"Class="GetC39Handler"%
usingSystem;
usingSystem.Web;
usingSystem.IO;
usingSystem.Drawing;
usingSystem.Drawing.Imaging;
publicclassGetC39Handler:
IHttpHandler{
//猎取Code39处理程序
publicvoidProcessRequest(HttpContextcontext){
stringOrderNo=context.Request.Params["OrderNo"];
MSCL.Code39_Code39=newMSCL.Code39();
_Code39.Height=60;
_Code39.Magnify=0;
_Code39.ViewFont=newFont("Arial",12);
System.Drawing.Image_CodeImage=_Code39.GetCodeImage(OrderNo,MSCL.Code39.Code39Model.Code39Normal,true);
System.IO.MemoryStream_Stream=newSystem.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();
}
publicboolIsReusable{
get{
returnfalse;
}
}
}
代码如下:
//调用显示订单条码
Image1.ImageUrl="GetC39Handler.ashx?
OrderNo=32134411";
更多信息请查看IT技术专栏
...
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- aspnetC 生成 Code39 条形码 实例