ToShiBa东芝打印机编程C#--发送指令打印

该文介绍东芝打印机通过发送指令集上的指令进行打印文字、二维码、条形码等操作。

东芝指令集文档下载地址:https://download.csdn.net/download/horseroll/10901106

指令集文档无积分下载地址:https://download.csdn.net/download/HorseRoll/21113141

源码下载地址:https://download.csdn.net/download/horseroll/10901101

源码无积分下载地址:https://download.csdn.net/download/HorseRoll/21113173

打印效果图:

可以通过TCP或者串口发送如下测试打印指令看是否能打印出内容,确保打印机连接没任何故障

string neong = @"{D0320,0701,0300|}
{C|}
{PC000;0000,0066,1,1,r,00,B=[单位名称]  漂精片  330克/瓶*20瓶|}
{XB00;0086,0091,A,3,03,0,0128,+0000000000,000,0,00=>502662346789098339991|}
{PC001;0058,0250,1,1,r,00,B=02662346789098339991|}
{XS;I,0001,0002C6000|}";

上图中的效果图的指令集,只要发送以下内容到打印机,即可打印出如上效果图的内容,依样画葫芦

string neong=@"{D0820,0500,0800|}
{C|}{PC00;0078,0675,1,2,r,33,B=贵州茅台酒厂(集团)白金酒有限责任公司|}
{PC01;0200,0750,1,1,r,33,B=产品:茅台白金酒|}
{PC02;0275,0750,1,1,r,33,B=生产日期:2018年12月3日[合格]|}
{PC03;0350,0750,1,1,r,33,B=批号:181818|}
{PC04;0425,0750,1,1,r,33,B=箱号:1232123123|}
{XB05;0175,0300,T,H,05,A,3,M2=http://s.iso315.org/ys/gzmtdy.htm?fwm=0000111100001111|}
{XS;I,0001,0002C6000|}"

具体每条指令的参数,在指令集里面都详细有写,去看指令集即可。我这里封装了几个指令方法,有需要的自行拿去

/// <summary>
/// 绘制二维码
/// </summary>
/// <param name="id"></param>
/// <param name="XPosition"></param>
/// <param name="YPosition"></param>
/// <param name="ErrorLevel">二维码纠错等级</param>
/// <param name="Width">二维码宽度</param>
/// <param name="Rotation">旋转。0,1,2,3</param>
/// <param name="Data">二维码内容</param>
/// <returns></returns>
public string DrawQrCode(int id, int XPosition, int YPosition, string ErrorLevel, int Width, int Rotation, string Data)
{
    //{XB00;0086,0091,T,H,14,A,0,M2=13231321321|}
    string drawstr = "{XB" + id.ToString().PadLeft(2, '0') + ";" + XPosition.ToString().PadLeft(4, '0') + "," + YPosition.ToString().PadLeft(4, '0') + ",T," + ErrorLevel + "," + Width.ToString().PadLeft(2, '0') + ",A," + Rotation.ToString() + ",M2=" + Data + "|}\r\n";
    return drawstr;
}
/// <summary>
/// 绘制文字
/// </summary>
/// <param name="id"></param>
/// <param name="XPosition"></param>
/// <param name="YPosition"></param>
/// <param name="HBeishu">宽度</param>
/// <param name="SBeishu">高度</param>
/// <param name="Data"></param>
/// <returns></returns>
public string DrawString(int id, int XPosition, int YPosition, int HBeishu, int SBeishu, string Data)
{
    string drawstr = "{PC" + id.ToString().PadLeft(2, '0') + ";" + XPosition.ToString().PadLeft(4, '0') + "," + YPosition.ToString().PadLeft(4, '0') + "," + HBeishu + "," + SBeishu + ",r,33,B=" + Data + "|}\r\n";
    return drawstr;
}

/// <summary> /// 生成条码 /// </summary> private void btnEncode_Click(object sender, EventArgs e) { errorProvider1.Clear(); int W = Convert.ToInt32(this.txtWidth.Text.Trim()); int H = Convert.ToInt32(this.txtHeight.Text.Trim()); int AddNum = Convert.ToInt32(this.tbAddNum.Text.Trim()); int SerialNo = Convert.ToInt32(this.tbSerialNO.Text.Trim()); CodeLib.AlignmentPositions Align = CodeLib.AlignmentPositions.CENTER; switch (cbBarcodeAlign.SelectedItem.ToString().Trim().ToLower()) { case "left": Align = CodeLib.AlignmentPositions.LEFT; break; case "right": Align = CodeLib.AlignmentPositions.RIGHT; break; default: Align = CodeLib.AlignmentPositions.CENTER; break; } CodeLib.TYPE type = CodeLib.TYPE.UNSPECIFIED; switch (cbEncodeType.SelectedItem.ToString().Trim()) { case "Code 128": type = CodeLib.TYPE.CODE128; break; case "Code 128-A": type = CodeLib.TYPE.CODE128A; break; case "Code 128-B": type = CodeLib.TYPE.CODE128B; break; default: MessageBox.Show("请指定编码类型。"); break; } try { if (type != CodeLib.TYPE.UNSPECIFIED) { b.IncludeLabel = this.chkGenerateLabel.Checked; b.Alignment = Align; switch (this.cbLabelLocation.SelectedItem.ToString().Trim().ToUpper()) { case "BOTTOMLEFT": b.LabelPosition = CodeLib.LabelPositions.BOTTOMLEFT; break; case "BOTTOMRIGHT": b.LabelPosition = CodeLib.LabelPositions.BOTTOMRIGHT; break; case "TOPCENTER": b.LabelPosition = CodeLib.LabelPositions.TOPCENTER; break; case "TOPLEFT": b.LabelPosition = CodeLib.LabelPositions.TOPLEFT; break; case "TOPRIGHT": b.LabelPosition = CodeLib.LabelPositions.TOPRIGHT; break; default: b.LabelPosition = CodeLib.LabelPositions.BOTTOMCENTER; break; } int SerialLen = this.tbSerialNO.Text.Trim().Length; string Barcodedata = ""; int i = 0; do { int zeroNum = SerialLen - SerialNo.ToString().Trim().Length; switch (zeroNum) { case 0: Barcodedata = this.txtData.Text.Trim() + SerialNo.ToString(); break; case 1: Barcodedata = this.txtData.Text.Trim() + SerialNo.ToString().Insert(0, "0"); break; case 2: Barcodedata = this.txtData.Text.Trim() + SerialNo.ToString().Insert(0, "00"); break; case 3: Barcodedata = this.txtData.Text.Trim() + SerialNo.ToString().Insert(0, "000"); break; default : Barcodedata = this.txtData.Text.Trim() + SerialNo.ToString().Insert(0, "0000"); break; } barcode.Image = b.Encode(type, Barcodedata.ToString(), W, H); i++; SerialNo++; this.Refresh(); Thread.Sleep(1000); //Printer(); //打印 //Thread.Sleep(500); } while (i< AddNum); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马儿不吃草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值