zxing .net 多种条码格式的生成

下载地址:http://zxingnet.codeplex.com/

zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便。

本文主要说明一下多种类型条码的生成。

适用的场景,标签可视化设计时,自定义条码类型,预览。

遍历zxing支持的全部条码类型

if (rb == rb1wm){foreach (BarcodeFormat format in Enum.GetValues(typeof(BarcodeFormat))){if (format != BarcodeFormat.All_1D)cbxBarcodeFormat.Items.Add(format.ToString());}cbxBarcodeFormat.Items.Remove(BarcodeFormat.QR_CODE.ToString());cbxBarcodeFormat.Items.Remove(BarcodeFormat.AZTEC.ToString());cbxBarcodeFormat.Items.Remove(BarcodeFormat.DATA_MATRIX.ToString());cbxBarcodeFormat.Items.Remove(BarcodeFormat.PDF_417.ToString());}if (rb == rb2wm){cbxBarcodeFormat.Items.Add(BarcodeFormat.QR_CODE.ToString());cbxBarcodeFormat.Items.Add(BarcodeFormat.AZTEC.ToString());cbxBarcodeFormat.Items.Add(BarcodeFormat.DATA_MATRIX.ToString());cbxBarcodeFormat.Items.Add(BarcodeFormat.PDF_417.ToString());}

根据选择的类型生成条码

Bitmap bitmap = new Bitmap(pbxBarcode.Width, pbxBarcode.Height);Graphics g = Graphics.FromImage(bitmap);g.Clear(Color.White);Format = (BarcodeFormat)Enum.Parse(typeof(BarcodeFormat), cbxBarcodeFormat.SelectedItem.ToString());try{var options = new ZXing.Common.EncodingOptions{PureBarcode = !chxDisplayBarcode.Checked};#region 根据条码类型Write Image switch (Format){case BarcodeFormat.QR_CODE:#region QRCodeif (cbxErrorLevel.SelectedItem.ToString().Equals("L"))ErrorCorrectionLevel = QR_ErrorCorrectionLevel.L;if (cbxErrorLevel.SelectedItem.ToString().Equals("H"))ErrorCorrectionLevel = QR_ErrorCorrectionLevel.H;if (cbxErrorLevel.SelectedItem.ToString().Equals("M"))ErrorCorrectionLevel = QR_ErrorCorrectionLevel.M;if (cbxErrorLevel.SelectedItem.ToString().Equals("Q"))ErrorCorrectionLevel = QR_ErrorCorrectionLevel.Q;ErrorCorrectionLevel level = null;switch (ErrorCorrectionLevel){case QR_ErrorCorrectionLevel.H:level = ZXing.QrCode.Internal.ErrorCorrectionLevel.H;break;case QR_ErrorCorrectionLevel.M:level = ZXing.QrCode.Internal.ErrorCorrectionLevel.M;break;case QR_ErrorCorrectionLevel.L:level = ZXing.QrCode.Internal.ErrorCorrectionLevel.L;break;case QR_ErrorCorrectionLevel.Q:level = ZXing.QrCode.Internal.ErrorCorrectionLevel.Q;break;}QrCodeEncodingOptions qr_options = new QrCodeEncodingOptions{Margin = 0,DisableECI = true,CharacterSet = "UTF-8",ErrorCorrection = level,PureBarcode = !chxDisplayBarcode.Checked,Width = pbxBarcode.Width,Height = pbxBarcode.Height};var qrWriter = new ZXing.BarcodeWriter();qrWriter.Format = BarcodeFormat.QR_CODE;qrWriter.Options = qr_options;#endregionbitmap = qrWriter.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(qrWriter.Options, Format, bitmap);break;case BarcodeFormat.PDF_417:#region PDF417PDF417EncodingOptions pdf_options = new PDF417EncodingOptions{Margin = 0,DisableECI = true,CharacterSet = "UTF-8",Width = pbxBarcode.Width,Height = pbxBarcode.Height,PureBarcode = !chxDisplayBarcode.Checked};var pdf417Writer = new ZXing.BarcodeWriter();pdf417Writer.Format = BarcodeFormat.PDF_417;pdf417Writer.Options = pdf_options;#endregionbitmap = pdf417Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(pdf417Writer.Options, Format, bitmap);break;case BarcodeFormat.DATA_MATRIX:#region DataMatrixDatamatrixEncodingOptions dataMatrix_options = new DatamatrixEncodingOptions{Margin = 0,SymbolShape = (ZXing.Datamatrix.Encoder.SymbolShapeHint)(Enum.Parse(typeof(ZXing.Datamatrix.Encoder.SymbolShapeHint), cbxDataMatrixOption.SelectedItem.ToString())),Width = pbxBarcode.Width,Height = pbxBarcode.Height,PureBarcode = !chxDisplayBarcode.Checked,};var dataMatrixWriter = new ZXing.BarcodeWriter();dataMatrixWriter.Format = BarcodeFormat.DATA_MATRIX;dataMatrixWriter.Options = dataMatrix_options;#endregionbitmap = dataMatrixWriter.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(dataMatrixWriter.Options, Format, bitmap);break;case BarcodeFormat.AZTEC:#region AztecZXing.Aztec.AztecEncodingOptions aztecEncodingOptions = new ZXing.Aztec.AztecEncodingOptions{Margin = 0,ErrorCorrection = 2,PureBarcode = !chxDisplayBarcode.Checked,Layers = 16};var aztecWriter = new ZXing.BarcodeWriter();aztecWriter.Format = BarcodeFormat.AZTEC;aztecWriter.Options = aztecEncodingOptions;#endregionbitmap = aztecWriter.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(aztecWriter.Options, Format, bitmap);break;case BarcodeFormat.CODE_128:#region Code128ZXing.OneD.Code128EncodingOptions code128_options = new ZXing.OneD.Code128EncodingOptions{Margin = 0,PureBarcode = !chxDisplayBarcode.Checked,Width = pbxBarcode.Width,Height = pbxBarcode.Height,ForceCodesetB = true};var code128_Writer = new ZXing.BarcodeWriter();code128_Writer.Format = BarcodeFormat.CODE_128;code128_Writer.Options = code128_options;#endregionbitmap = code128_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(code128_Writer.Options, Format, bitmap);break;case BarcodeFormat.CODABAR:var codeBar_Writer = new ZXing.BarcodeWriter();codeBar_Writer.Format = BarcodeFormat.CODABAR;codeBar_Writer.Options = options;bitmap = codeBar_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.EAN_13:var ean13_Writer = new ZXing.BarcodeWriter();ean13_Writer.Format = BarcodeFormat.EAN_13;ean13_Writer.Options = options;bitmap = ean13_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.EAN_8:var ean8_Writer = new ZXing.BarcodeWriter();ean8_Writer.Format = BarcodeFormat.EAN_8;ean8_Writer.Options = options;bitmap = ean8_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.CODE_39:var code39_Writer = new ZXing.BarcodeWriter();code39_Writer.Format = BarcodeFormat.CODE_39;code39_Writer.Options = options;bitmap = code39_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.UPC_A:var upca_Writer = new ZXing.BarcodeWriter();upca_Writer.Format = BarcodeFormat.UPC_A;upca_Writer.Options = options;bitmap = upca_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.UPC_E:var upce_Writer = new ZXing.BarcodeWriter();upce_Writer.Format = BarcodeFormat.UPC_E;upce_Writer.Options = options;bitmap = upce_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.MSI:var msi_Writer = new ZXing.BarcodeWriter();msi_Writer.Format = BarcodeFormat.MSI;msi_Writer.Options = options;bitmap = msi_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.ITF:var itf_Writer = new ZXing.BarcodeWriter();itf_Writer.Format = BarcodeFormat.ITF;itf_Writer.Options = options;bitmap = itf_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.PLESSEY:var plessey_Writer = new ZXing.BarcodeWriter();plessey_Writer.Format = BarcodeFormat.PLESSEY;plessey_Writer.Options = options;bitmap = plessey_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;case BarcodeFormat.MAXICODE:var code_Writer = new ZXing.BarcodeWriter();code_Writer.Format = BarcodeFormat.MAXICODE;code_Writer.Options = options;bitmap = code_Writer.Write(tbxBarcodeValue.Text.Trim());BarCodeOptionsChanged?.Invoke(options, Format, bitmap);break;default:throw new Exception("条码格式暂不支持!");}#endregion}catch (Exception ex){MessageBox.Show("编码生成错误:" + ex.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);}finally{pbxBarcode.Image = bitmap;}

  

转载于:https://www.cnblogs.com/datacool/p/datacool_2017_zxing.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s dashboard_windows10 部署 docker+k8s 集群

下面是经过踩坑之后的 windows10 单机部署 docker k8s 步骤,其中有几处比较关键的地方需要注意,后面加粗标注,下面就开始吧!0、下载cmder在 windows 上有一个趁手的命令行工具非常有必要,推荐 Cmder,下面是…

Python 之网络编程基础

套接字(socket)初使用 基于TCP协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 import socket sk socket.socket() sk.bind((127.0.0.1,8898)) # 把地址绑定到套接字 sk.listen() …

面试之网络编程和并发

1、简述 OSI 七层协议。 物理层:主要基于电器特性发送高低电压(1、0),设备有集线器、中继器、双绞线等,单位:bit 数据链路层:定义了电信号的分组方式,设备:交换机、网卡、网桥,单位&…

redis 远程主机强迫关闭了一个现有的连接_记一次Redis+Getshell经验分享

你是我患得患失的梦,我是你可有可无的人,毕竟这穿越山河的箭,刺的都是用情之疾的人。前言:当我们接到一个授权渗透测试的时候,常规漏洞如注入、文件上传等尝试无果后,扫描端口可能会发现意外收获。知己知彼…

无线连接 服务器,服务器无线远程连接

服务器无线远程连接 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。使用Mac版Microsoft Remote Desktop工具,远程连接W…

IO模型

IO模型介绍 传统的网络IO模型包括五种: blocking IO 阻塞IOnonblocking IO 非阻塞IOIO multiplexing IO多路复用signal driven IO 信号驱动IOasynchronous IO 异步IO 由于signal driven IO(信号驱动IO)在实际中…

重温数据结构:树 及 Java 实现(转)

转自:http://blog.csdn.net/u011240877/article/details/53193877 读完本文你将了解到: 什么是树树的相关术语 根节点父亲节点孩子节点叶子节点如上所述节点的度树的度节点的层次树的高度树的深度树的两种实现 数组表示链表表示的节点树的几种常见分类及…

Powershell检测AD账户密码过期时间并邮件通知

脚本主要实现了两个功能 : 一能判断账户密码的过期时间并通过邮件通知到账户; 二是将这些即将过期的账户信息累计通知到管理员。 脚本如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051…

js list删除指定元素_vue.js

vue.js 中M V MV代表哪一部分 <插值表达式&#xff08;v-cloak v-text v-html v-bind&#xff08;缩写是:&#xff09; v-on&#xff08;缩写是&#xff09; v-model v-for v-if v-show &#xff09;<body><div id"app"><!-- 使用 v-cloak 能够解决…

我们的系统检测到您的计算机网络中存在异常流量_如何建立我们的网络防线?入侵检测,确保我们的网络安全...

目前我们的网络安全趋势日益严峻&#xff0c;那么如何利用入侵检测系统确保我的网络安全呢&#xff1f;入侵检测又是什么呢&#xff1f;网络安全入侵检测技术是为保证计算机系统的安全&#xff0c;而设计与配置的一种能够及时发现并报告系统中未授权或异常现象的技术&#xff0…

mybatis $和#源代码分析

JDBC中&#xff0c;主要使用两种语句&#xff0c;一种是支持参数化和预编译的PreparedStatement,支持原生sql,支持设置占位符&#xff0c;参数化输入的参数&#xff0c;防止sql注入攻击&#xff0c;在mybatis的mapper配置文件中&#xff0c;我们通过使用#和$告诉mybatis我们需要…

git 命令详解和常见问题解决

功能一 提交&#xff1a;1:git init # 初始化&#xff0c;表示即将对当前文件夹进行版本控制2:git status # 查看Git当前状态&#xff0c;如&#xff1a;那些文件被修改过、那些文件还未提交到版本库等。3:git add . # 添加当前目录下所有文件到版本…

excel vba 调用webbrowser_VBA 公式与函数

一, 在单元格中输入公式的3种方法:1) 用VBA在单元格中输入普通公式Sub formula_1() Range("d2") ("B2 * C2") End Sub运行程序后,在D2的单元格内显示的是公式 B2 * C2 ,并非程序返回值.下文(二)中会介绍另外一种直接返回值的方式想要通过程序一…

松下NPM服务器怎么备份系统,松下(Panasonic)-NPM校正amp;CPK完整版教程,一步步带你成为SMT设备大神!...

马上注册&#xff0c;结交更多技术专家&#xff0c;享用更多功能&#xff0c;让你轻松解决各种三星贴片机问题您需要 登录 才可以下载或查看&#xff0c;没有帐号&#xff1f;立即注册 xa8f80375060fa05b8aebe69ffa21080c.gif (5.26 KB, 下载次数: 3)2019-8-12 00:02 上传f5aae…

Python 模块之科学计算 Pandas

目录 一、Pandas简介 数据结构 二、Series series 的创建 Series值的获取 Series的运算 Series缺失值检测 Series自动对齐 Series及其索引的name属性 三、DataFrame 创建 Index对象 通过索引值或索引标签获取数据 自动化对齐 四、文件操作 文件读取 数据库数据…

机器学习中qa测试_如何对机器学习做单元测试

作者&#xff1a;Chase Roberts编译&#xff1a;ronghuaiyang导读养成良好的单元测试的习惯&#xff0c;真的是受益终身的&#xff0c;特别是机器学习代码&#xff0c;有些bug真不是看看就能看出来的。在过去的一年里&#xff0c;我把大部分的工作时间都花在了深度学习研究和实…

一个从文本文件里“查找并替换”的功能

12345678910111213141516171819202122232425# -*- coding: UTF-8 -*-file input("请输入文件路径:") word1 input("请输入要替换的词:") word2 input("请输入新的词&#xff1a;") fopen(file,"r") AAAf.read() count 0 def BBB()…

机器学习算法之 KNN

K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了&#xff0c;在我们平常的生活中也会不自主的应用。比如&#xff0c;我们判断一个人的人品&#xff0c;只需要观察他来往最密切的几个人的人品好坏就可以得出了。这里就运用了KNN的思想。KNN方法既可以做分类&…

安装云端服务器操作系统,安装云端服务器操作系统

安装云端服务器操作系统 内容精选换一换SAP云服务器规格在申请SAP ECS之前&#xff0c;请参考SAP标准Sizing方法进行SAPS值评估&#xff0c;并根据Sizing结果申请云端ECS服务器资源&#xff0c;详细信息请参考SAP Quick Sizer。SAP 各组件最低硬盘空间、RAM&#xff0c;以及软件…

python 进度条_六种酷炫Python运行进度条

转自&#xff1a;一行数据阅读文本大概需要 3 分钟你的代码进度还剩多少&#xff1f;今天给大家介绍下目前6种比较常用的进度条&#xff0c;让大家都能直观地看到脚本运行最新的进展情况。1.普通进度条2.带时间进度条3.tpdm进度条4.progress进度条5.alive_progress进度条6.可视…