第一种方案

1.创建帮助类
2.引用 system.Drawing
3.调用 返回数据流

         var stream = BarCodeHelper.BarCode.BuildBarCode(shopOrderEntity.OrderNo);var picByte = BarCodeHelper.BarCode.Bitmap2Byte(stream);
 public class BarCode{public static byte[] Bitmap2Byte(Bitmap bitmap){using (MemoryStream stream = new MemoryStream()){bitmap.Save(stream, ImageFormat.Jpeg);byte[] data = new byte[stream.Length];stream.Seek(0, SeekOrigin.Begin);stream.Read(data, 0, Convert.ToInt32(stream.Length));return data;}}/// <summary>/// 条形码生成函数/// </summary>/// <param name="text">条型码字串</param>/// <returns></returns>public static Bitmap BuildBarCode(string text){//查检是否合条件TEXTbool ck = CheckErrerCode(text);if (!ck)throw new Exception("条形码字符不合要求,不能是汉字或全角字符");string barstring = BuildBarString(text);return KiCode128C(barstring, 80);}/// <summary>/// 建立条码字符串/// </summary>/// <param name="tex">条码内容</param>/// <returns></returns>private static string BuildBarString(string tex){string barstart = "bbsbssbssss";    //码头string barbody = "";                //码身string barcheck = "";               //码检string barend = "bbsssbbbsbsbb";    //码尾int checkNum = 104;//循环添加码身,计算码检for (int i = 1; i <= tex.Length; i++){int index = (int)tex[i - 1] - 32;checkNum += (index * i);barbody += AddSimpleTag(index);//加入字符值的条码标记}//码检值计算barcheck = AddSimpleTag(int.Parse(Convert.ToDouble(checkNum % 103).ToString("0")));string barstring = barstart + barbody + barcheck + barend;return barstring;}//增加一个条码标记private static string AddSimpleTag(int CodeIndex){string res = "";/// <summary>1-4的条的字符标识 </summary>string[] TagB = { "", "b", "bb", "bbb", "bbbb" };/// <summary>1-4的空的字符标识 </summary>string[] TagS = { "", "s", "ss", "sss", "ssss" };string[] Code128List = new string[] {"212222","222122","222221","121223","121322","131222","122213","122312","132212","221213","221312","231212","112232","122132","122231","113222","123122","123221","223211","221132","221231","213212","223112","312131","311222","321122","321221","312212","322112","322211","212123","212321","232121","111323","131123","131321","112313","132113","132311","211313","231113","231311","112133","112331","132131","113123","113321","133121","313121","211331","231131","213113","213311","213131","311123","311321","331121","312113","312311","332111","314111","221411","431111","111224","111422","121124","121421","141122","141221","112214","112412","122114","122411","142112","142211","241211","221114","413111","241112","134111","111242","121142","121241","114212","124112","124211","411212","421112","421211","212141","214121","412121","111143","111341","131141","114113","114311","411113","411311","113141","114131","311141","411131","211412","211214","211232" };string tag = Code128List[CodeIndex];for (int i = 0; i < tag.Length; i++){string temp = "";int num = int.Parse(tag[i].ToString());if (i % 2 == 0){temp = TagB[num];}else{temp = TagS[num];}res += temp;}return res;}/// <summary>/// 检查条形码文字是否合条件(不能是汉字或全角字符)/// </summary>/// <param name="cktext"></param>/// <returns></returns>private static bool CheckErrerCode(string cktext){foreach (char c in cktext){byte[] tmp = System.Text.UnicodeEncoding.Default.GetBytes(c.ToString());if (tmp.Length > 1)return false;}return true;}/// <summary>生成条码 </summary>/// <param name="BarString">条码模式字符串</param> //Format32bppArgb/// <param name="Height">生成的条码高度</param>/// <returns>条码图形</returns>private static Bitmap KiCode128C(string BarString, int _Height){Bitmap b = new Bitmap(BarString.Length, _Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);//using (Graphics grp = Graphics.FromImage(b))//{try{char[] cs = BarString.ToCharArray();for (int i = 0; i < cs.Length; i++){for (int j = 0; j < _Height; j++){if (cs[i] == 'b'){b.SetPixel(i, j, Color.Black);}else{b.SetPixel(i, j, Color.White);}}}//grp.DrawString(text, SystemFonts.CaptionFont, Brushes.Black, new PointF(leftEmpty, b.Height - botEmpty));return b;}catch{return null;}//}}}

第二种方案

2.1引用 using ZXing;

 public FileContentResult BarCodeGenerate(string code){var writer = new BarcodeWriterPixelData{Format = BarcodeFormat.CODE_128,Options = new EncodingOptions { Height = 150, Width = 600, PureBarcode = true, Margin = 1 }};var pixelData = writer.Write(code);using (var bitmap = new Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb))using (var ms = new MemoryStream()){var bitmapData = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, pixelData.Width, pixelData.Height),System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb);try{System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0,pixelData.Pixels.Length);}finally{bitmap.UnlockBits(bitmapData);}bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);byte[] bytes = ms.GetBuffer();return new FileContentResult(bytes, "image/png");}}

C# .Framework生成条形码相关推荐

  1. JAVA使用barcode4j生成条形码和二维码图片以及带logo的二维码,验证码图片

    二维码 1.Maven引入barcode4j依赖 <!-- 条形码生成 --><dependency><groupId>net.sf.barcode4j</g ...

  2. php 生成条形码(支持任意php框架)

    一:插件安装 在php中我们可以使用php-barcode-generator插件来生成条形码,php-barcode-generator插件github地址:GitHub - picqer/php- ...

  3. Excel生成条形码

    使用Excel自定义函数Code39(text,description,[width],[height])在Excel文件中生成条形码,适用于企业采购单.入库单.出库单等业务场景. 第一步,获取Exc ...

  4. java生成条形码和二维码

    文章目录 MAVEN配置 生成条形码 生成二维码 使用的包 zxing和 barcode4j. MAVEN配置 <project xmlns="http://maven.apache. ...

  5. java生成条形码-使用zxing

    背景 目前二维码的应用场景已经遍布各类互联网平台,通常是将产品/商品的唯一编号存储于二维码中以做扫码识别. 但是在很多场景下依然需要使用条形码(一维码) 解决方案 java生成条形码可使用的方式:ba ...

  6. 使用Spire.Barcode程序库生成条形码、二维码

    一.Spire.Barcode 控件安装 1.VS 中新建 winform 项目,然后再 " 程序包管理控制台 " 中输入 " install-package  Spir ...

  7. php tp5生成条形码,thinkphp5 + barcode 生成条形码

    2.解压放到"E:phpstudyPHPTutorialWWWguahaovendor下",其中class文件是所有的类文件,生成条形码就是调用文件夹里的类,font文件是字体,i ...

  8. pHp封装成vue,vue.js生成条形码的方法

    本文主要和大家分享vue.js生成条形码的方法,主要以代码的形式和大家分享,希望能帮助到大家. 1.下载插件npm install @xkeshi/vue-barcode //下载条形码插件 2.在m ...

  9. 如何用TXT文档数据批量生成条形码

    我们在制作商品标签的时候,经常需要根据已有的条码数据来批量生成条形码.这些条码数据一般存储在TXT文档.excel表或者是其他类型数据库中,具体怎么操作呢?我们就以TXT文档做实例,和大家分享一下如何 ...

最新文章

  1. Oracle针对SCOTT下EMP表的练习题
  2. 14.相同的树另一棵树的子树检查子树二叉树中的列表(教你们使用相同的套路快速解决这四道题)
  3. vb编程转为c语言,C语言,VB编程题
  4. Multiple markers at this line @Override的解决方法
  5. PieLove 之 数据分析帝.(ZZ)(is2120)
  6. [Python人工智能] 二十四.易学智能GPU搭建Keras环境实现LSTM恶意URL请求分类
  7. Vue如何在data中正确引入图片路径
  8. P5304-[GXOI/GZOI2019]旅行者【最短路】
  9. 多项新政催生本年度购房最佳“窗口期”
  10. MySQL字符集详解
  11. 优秀的应用快速启动工具:start for Mac完美支持m1
  12. abaqus2017安装后启动cae报错_Abaqus2017安装全过程
  13. iphone配置实用工具连接手机后卡住不能动
  14. Windows把内存设置为0无法开机怎么办
  15. 激活工具带毒,静默安装360、2345系列软件
  16. 致远OA任意管理员登陆漏洞分析
  17. 免费ftp服务器软件,实用的3款免费ftp服务器软件
  18. html div p区别,p标签和div标签的区别与用法
  19. 4线触摸屏控制器ET2046介绍
  20. Axis1.4发布WebService

热门文章

  1. 05. windows下使用U盘工具把多个分区合并为一个分区
  2. mysqlyog mysql8.012_瑞昱网卡驱动-Realtek瑞昱RTL-81xx系列网卡驱动(Win8)8.012.0304.2013版-东坡下载...
  3. Android (仿支付宝) 收益进度条
  4. 33-UITableView—微博实例
  5. android 智能家居 设计 实现,基于Android系统的智能家居APP设计与实现.doc
  6. stm32f103系列GPIO
  7. 聚类时需要标准化吗_【小提琴】初学小提琴时都需要注意哪些?你知道吗?
  8. 源代码生成流程图软件
  9. dx12 龙书第十九章学习笔记 -- 法线贴图
  10. UGUI开发简单音乐播放器之一