C#打印条码的几种方式
标题虽然是说C#,但是以下介绍的几种方法不是只能在C#中使用,在其它的语言里面也行。
总结一下常见的条码打印方法,其实打条码的方式很多,大概有以下几种:
1.斑马打印软件制作好模板,保存为.prn格式的文件,文件格式大致如下
^XA^LH30,0^JMA^XZ
~DG000.GRF,04096,128,
,::::::::::::::::::rQF0,:::,::::::::~DG001.GRF,04096,128,
,:::::::rQF0,:::a,:::::::::::::::::::~DG002.GRF,04096,128,
,:::::::::::::::rQF0,::::,::::::::::~DG003.GRF,04096,128,
,::::::::::::::::::::rQF0,::::,:::::^XA
^MMT
^PW1004
^LL1890
^LS0
^FT0,544^XG000.GRF,1,1^FS
^FT0,1856^XG001.GRF,1,1^FS
^FT0,1792^XG002.GRF,1,1^FS
^FT0,1728^XG003.GRF,1,1^FS
^FT21,449^A0N,33,33^FH\^FDUPC:^FS
^FT425,450^A0N,33,33^FH\^FDEAN:^FS
^BY1,3,18^FT604,1691^BCN,,N,N
^FD>:{SN1}^FS
^BY2,3,30^FT494,1638^BCN,,N,N
^FD>:{SN2}^FS
模板中红色的字段则是需要用变量替换的,这个很简单,只需要Replace即可,然后将替换好之后的模板内容发送给打印机打印出来就行。
2.使用BarTender制作btw的模板文件,文件格式即为.btw,为模板文件指定数据源,数据源的种类很多,比如数据库、文本文件等等,这里我以文本文件举例:
首先制作好模板,

其中Temp.ActiveCode1和Temp.ActiveCode2则是两个文本文件,文件格式为:
ActiceCode1,ActiceCode2
K0NBHE-T0DZDR-B3QSP6,K0NBHE-T0DZDR-B3QSP7
程序中根据前台传入的数据,将最终的数据写入到这个数据源中,然后通过拆分这个数据源获取每一个字段,调用打印方法,
Process.Start(bartendAdd, "/NOSPLASH /F=\"" + btw + "\" /D=\"" + sn + "\" /P /X");
3.通过FastReport打印
这里重点说一下参数的传递和接收问题,其它的应该都还比较简单,我们首先创建一个模板文件,这里值得一提的是,使用FastReport.Net设计器产生的文件是以frx为后缀的文件,以FastReport.Studio设计器产生的文件是以fr3为后缀的文件,当时我也搞不清楚则个区别,后来慢慢摸索出来的。

这里传入参数给报表:

这里接收传入的参数值:

预览一下获取参数之后的结果:

C#打印条码的几种方式的更多相关文章
- Struts2实现ajax的两种方式
基于Struts2框架下实现Ajax有两种方式,第一种是原声的方式,另外一种是struts2自带的一个插件. js部分调用方式是一样的: JS代码: function testAjax() { var ...
- Spark读写Hbase的二种方式对比
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputForm ...
- Android中访问sdcard路径的几种方式
以前的Android(4.1之前的版本)中,SDcard路径通过"/sdcard"或者"/mnt/sdcard"来表示,而在JellyBean(安卓4.1)系统 ...
- C#执行异步操作的几种方式比较和总结
C#执行异步操作的几种方式比较和总结 0x00 引言 之前写程序的时候在遇到一些比较花时间的操作例如HTTP请求时,总是会new一个Thread处理.对XxxxxAsync()之类的方法也没去了解过, ...
- Windows10-UWP中设备序列显示不同XAML的三种方式[3]
阅读目录: 概述 DeviceFamily-Type文件夹 DeviceFamily-Type扩展 InitializeComponent重载 结论 概述 Windows10-UWP(Universa ...
- CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)
CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...
- springmvc+jpa实现分页的两种方式
1.工具类 public final class QueryTool { public static PageRequest buildPageRequest(int pageNumber, int ...
- 两种方式实现java生成Excel
Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...
- Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)
Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...
随机推荐
- linux终端快捷键
tab 补全 ctrl+k 删除此处到末尾所有内容 ctrl+u 删除此处到开始所有内容 ctrl+a 将光标移至开始处 cttl+e 将光标移至结尾 ctrl+l 清屏 ctrl+c 删除整行或停止 ...
- Java的多线程+Socket 后台
打包好可执行的jar文件之后, 用ftp上传到服务器, 用nohup命令, 让这个服务器在后台运行, 并将输出重定向到log文件中, 命令是: #nohup java -jar MTSServer.j ...
- Hibernate,JPA注解@OneToMany_Set
用例代码如下: 数据库DDL语句 1,CAT表 create table CAT ( id CHAR) not null, create_time ), update_time ), cat_name ...
- iOS身份证的正则验证
在ios项目的开发中可能很多地方都需要用到身份证校验,一般在开发的时候很多人都是直接百度去网上荡相关的正则表达式和校验代码,但是网上疯狂粘贴复制的校验代码本身也可能并不准确,可能会有风险,比如2013 ...
- php socket函数详解
最近在用socket实现服务端向客户端主动推送消息 函数名 描述 socket_accept() 接受一个Socket连接 socket_bind() 把socket绑定在一个IP地址和端口上 soc ...
- 微信支付 APP 支付方式的服务器端处理程序
对于微信的APP的支付,客户服务说只能通过微信开放平台申请.后来在公众帐号确实发现了证据: 微信支付在申请的时候就比较严(麻烦),对服务类的一些支付,本来商品就是虚拟的,所以需要将商品描述的比较详细 ...
- PMO到底什么样?
PMO到底什么样? 当将来项目办理单位彻底健全了,达到最老练的程度的时分项目办理单位应当干哪些活,有哪些大块功能,也即是关于一个全部的PMO它的功能跟人物都包含啥? 下面这个模型精确的说是英国的项目办 ...
- Android WebView如何加载assets下的html文件
项目需求:将html文件以及所用到的图片都放在 assets/html/ 目录下.然后在页面上通过WebView来显示 直接付上代码: private void readHtmlFormAssets( ...
- H - Solve this interesting problem 分类: 比赛 2015-07-29 21:06 15人阅读 评论(0) 收藏
Have you learned something about segment tree? If not, don't worry, I will explain it for you. Segm ...
- asp.net webapi初探(一)
本人对webapi尚没有深入研究,初次接触发现了在数据请求时的几点现象. 先切入代码 1.如果action中开头带有Get默认就是get方式,不带Get默认就是post方式 public string ...