当前位置:首页 > 经验

实操btw文件格式转换 btw是什么格式文件

在我们的日常生活中,条码随处可见,包含一维码与二维码,目前市面上也有几款出色的条码设计软件,比如BarTender,FastReport等,当我们购买了版权之后就可以使用这几款软件设计我们需要的条码了,随着用户需求的不断提升,加上一些工厂推行 i4.0 发展,大力导入自动化设备与软件系统,通常情况下我们只需要通过系统自动打印条码,下面介绍一下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

SN1 跟 SN2 就是我们需要打印的文字内容,我们只需要在程序中将这一段代码里面这两个变量替换成实际的文字就可以了。

2.使用BarTender制作btw的模板文件

文件格式即为.btw,为模板文件指定数据源,数据源的种类很多,比如数据库、文本文件等等,这里我以文本文件举例:

首先制作好模板

C#实现条码打印的几种常见方式

设置模板数据源

其中Temp.ActiveCode1和Temp.ActiveCode2则是两个文本文件,文件格式为:

ActiceCode1,ActiceCode2

A000000001,A000000002

程序中根据前台传入的数据,将最终的数据写入到这个数据源中,然后通过拆分这个数据源获取每一个字段,调用打印方法。

 Process.Start(bartendAdd, "/NOSPLASH /F=" + btw + " /D=" + sn + " /P /X");

bartendAdd : BarTender软件的安装路径.

btw : 模板文件

sn : 需要打印的字符串

3.通过FastReport打印

这里重点说一下参数的传递和接收问题,其它的应该都还比较简单,我们首先创建一个模板文件,这里值得一提的是,使用FastReport.Net设计器产生的文件是以frx为后缀的文件,以FastReport.Studio设计器产生的文件是以fr3为后缀的文件。

C#实现条码打印的几种常见方式

创建新的模板文件

C#实现条码打印的几种常见方式

将参数传递给报表文件

C#实现条码打印的几种常见方式

接收传递过来的参数

C#实现条码打印的几种常见方式

获取到参数值,效果预览

4.使用ZXing生成条码

 // 1.设置条形码规格
 EncodingOptions encodeOption = new EncodingOptions();
 encodeOption.Height = 20; // 必须制定高度、宽度
 encodeOption.Width = 100;
 // 2.生成条形码图片并保存
 ZXing.BarcodeWriter wr = new BarcodeWriter();
 wr.Options = encodeOption;
 wr.Format = BarcodeFormat.CODE_128; // 条形码规格 
 encodeOption.PureBarcode = true; // 是否是纯码,如果为 false,则会在图片下方显示数字
 System.Threading.Thread.Sleep(100); //间隔
 Bitmap img = wr.Write(SerialNumber); // 生成图片

 e.Graphics.DrawImage(img, barcode_x + x_value, barcode_y + y_value); //打印条码
 e.Graphics.DrawString(SerialNumber.Trim(), font1, Brushes.Black, 40 + x_value, 36 + y_value); //打印文字
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章