c# 生成条形码

简介:


from:http://blog.blueshop.com.tw/timothychi/articles/48836.aspx

using System.Drawing;

using System.Drawing.Imaging;

private Bitmap GetCode39(string strSource)

{

int x = 5; //左邊界

int y = 0; //上邊界

int WidLength = 2; //粗BarCode長度

int NarrowLength = 1; //細BarCode長度

int BarCodeHeight = 24; //BarCode高度

int intSourceLength = strSource.Length;

string strEncode = "010010100"; //編碼字串 初值為 起始符號 *

string AlphaBet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*"; //Code39的字母

string[] Code39 = //Code39的各字母對應碼

{

/* 0 */ "000110100",

/* 1 */ "100100001",

/* 2 */ "001100001",

/* 3 */ "101100000",

/* 4 */ "000110001",

/* 5 */ "100110000",

/* 6 */ "001110000",

/* 7 */ "000100101",

/* 8 */ "100100100",

/* 9 */ "001100100",

/* A */ "100001001",

/* B */ "001001001",

/* C */ "101001000",

/* D */ "000011001",

/* E */ "100011000",

/* F */ "001011000",

/* G */ "000001101",

/* H */ "100001100",

/* I */ "001001100",

/* J */ "000011100",

/* K */ "100000011",

/* L */ "001000011",

/* M */ "101000010",

/* N */ "000010011",

/* O */ "100010010",

/* P */ "001010010",

/* Q */ "000000111",

/* R */ "100000110",

/* S */ "001000110",

/* T */ "000010110",

/* U */ "110000001",

/* V */ "011000001",

/* W */ "111000000",

/* X */ "010010001",

/* Y */ "110010000",

/* Z */ "011010000",

/* - */ "010000101",

/* . */ "110000100",

/*' '*/ "011000100",

/* $ */ "010101000",

/* / */ "010100010",

/* + */ "010001010",

/* % */ "000101010",

/* * */ "010010100"

};

strSource = strSource.ToUpper();

//實作圖片

Bitmap objBitmap = new Bitmap(

((WidLength * 3 + NarrowLength * 7) * (intSourceLength + 2)) + (x * 2),

BarCodeHeight + (y * 2));

Graphics objGraphics = Graphics.FromImage(objBitmap); //宣告GDI+繪圖介面

//填上底色

objGraphics.FillRectangle(Brushes.White, 0, 0, objBitmap.Width, objBitmap.Height);

for (int i = 0; i < intSourceLength; i++)

{

if (AlphaBet.IndexOf(strSource[i]) == -1 || strSource[i] == '*') //檢查是否有非法字元

{

objGraphics.DrawString("含有非法字元", SystemFonts.DefaultFont, Brushes.Red, x, y);

return objBitmap;

}

//查表編碼

strEncode = string.Format("{0}0{1}", strEncode, Code39[AlphaBet.IndexOf(strSource[i])]);

}

strEncode = string.Format("{0}0010010100", strEncode); //補上結束符號 *

int intEncodeLength = strEncode.Length; //編碼後長度

int intBarWidth;

for (int i = 0; i < intEncodeLength; i++) //依碼畫出Code39 BarCode

{

intBarWidth = strEncode[i] == '1' ? WidLength : NarrowLength;

objGraphics.FillRectangle(i % 2 == 0 ? Brushes.Black : Brushes.White,

x, y, intBarWidth , BarCodeHeight);

x += intBarWidth;

}

return objBitmap;

}




本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2010/04/15/1712676.html,如需转载请自行联系原作者

相关文章
|
程序员 C# 图形学
C# 生成二维码,彩色二维码,带有Logo的二维码及普通条形码
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心!    废话少说,咱直接进入正题:    目前来说,比较流行的二维码生成方式有两种:一种是:QrCode.Net和谷歌的Zxing.Net,我个人比较倾向于使用ZXing.Net,今天本篇博客主要讲解Zxing.Net的使用。
1975 0
|
C# Windows
C# 在Word文档中生成条形码
C# 在Word文档中生成条形码 简介 条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称、制造商、类别、价格等。目前,条形码在我们的日常生活中有着很广泛的应用,不管是在图书还是各种商品上都随处可见,扫描条形码就可以查询这个商品的信息,非常方便。
1075 0
C# 利用BarcodeLib.dll生成条形码(一维,zxing,QrCodeNet/dll二维码)
原文:http://blog.csdn.net/kongwei521/article/details/17588825   首先效果: 一、下载BarcodeLib.dll 下载地址 :http://download.
2935 0
|
C# Java Android开发
用C#实现的条形码和二维码编码解码器
原文 用C#实现的条形码和二维码编码解码器 本篇介绍可以在C#中使用的1D/2D编码解码器。条形码的应用已经非常普遍,几乎所有超市里面的商品上面都印有条形码;二维码也开始应用到很多场合,如火车票有二维码识别、网易的首页有二维码图标,用户只需要用手机扫描一下就可以看到手机版网易的网址,免去了输入长串字符的麻烦。
2345 0
|
6月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
189 3
|
6月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
196 3
|
8天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
20 3
|
28天前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。
|
2月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
39 2
|
2月前
|
安全 程序员 编译器
C#一分钟浅谈:泛型编程基础
在现代软件开发中,泛型编程是一项关键技能,它使开发者能够编写类型安全且可重用的代码。C# 自 2.0 版本起支持泛型编程,本文将从基础概念入手,逐步深入探讨 C# 中的泛型,并通过具体实例帮助理解常见问题及其解决方法。泛型通过类型参数替代具体类型,提高了代码复用性和类型安全性,减少了运行时性能开销。文章详细介绍了如何定义泛型类和方法,并讨论了常见的易错点及解决方案,帮助读者更好地掌握这一技术。
71 11