热敏打印机 如何设置黑标切割

akgjh1 2014-07-25 11:59:07
程序中使用的是printdocument,直接用this.printDocument1.Print();打印出来,达到的效果是会把内容打出来之后就自动切割。我想要打印机的黑标切割,询问了打印机厂家,他们发来一些控制命令。不知道这些命令在程序中怎么实现。
1,关闭/启用 黑标检测功能
1F 1B 1F 80 04 05 06 66 关闭
1F 1B 1F 80 04 05 06 44 打开
2,走纸到下一个切纸位置切纸
1D 56 30 (全切纸)


PrintNum = 0;
foreach (CDYPiao CDYPiao in listPiaoList)
{
PrintNum += 1;
this.printDocument1.Print();
}
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Draw(e.Graphics);
}

void Draw(Graphics g)
{
g.Clear(Color.White);
//CDYPaiPian cDYPaiPian = BLLDYPaiPian.GetCDYPaiPian(cDYPiao.DYPaiPianID);
string aa = "";
string bb = "";
DateTime bbb;
string cc = "";
string[] ddd;
string dd = "";

string ee = "";
CDYPiao cDYPiao = listPiaoList[PrintNum - 1];
DataTable dt = BLLDYPaiPian.GetDataTablePaiPian(cDYPiao.DYPaiPianID);
if (dt != null)
{
aa = dt.Rows[0]["TingNo"].ToString();
bbb = Convert.ToDateTime(dt.Rows[0]["StartTime"].ToString());
bb = bbb.ToShortTimeString().ToString();
cc = dt.Rows[0]["YingPianName"].ToString();
ee = bbb.GetDateTimeFormats('M')[0].ToString();
}
ddd = cDYPiao.PiaoZuo.ToString().Split('-');
if (ddd != null)
{
if (ddd.Length == 2)
{
dd = ddd[0] + "排" + ddd[1] + "号";
}
}
g.PageUnit = GraphicsUnit.Millimeter;
g.DrawString(aa, new Font("黑体", 14F), Brushes.Black, new Point(10, 8));
g.DrawString(bb, new Font("黑体", 14F), Brushes.Black, new Point(35, 8));
g.DrawString(cc, new Font("黑体", 14F), Brushes.Black, new Point(10, 22));
g.DrawString(dd, new Font("黑体", 14F), Brushes.Black, new Point(10, 31));

g.DrawString(dd, new Font("黑体", 12F), Brushes.Black, new Point(56, 9));
g.DrawString(ee, new Font("黑体", 12F), Brushes.Black, new Point(56, 24));
g.DrawString(bb, new Font("黑体", 12F), Brushes.Black, new Point(56, 38));
g.DrawString(cc, new Font("黑体", 12F), Brushes.Black, new Point(56, 53));
g.DrawString(".", new Font("黑体", 12F), Brushes.Black, new Point(40, 86));
}
PrintNum = 0;
foreach (CDYPiao CDYPiao in listPiaoList)
{
PrintNum += 1;
this.printDocument1.Print();
}
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Draw(e.Graphics);
}

void Draw(Graphics g)
{
g.Clear(Color.White);
//CDYPaiPian cDYPaiPian = BLLDYPaiPian.GetCDYPaiPian(cDYPiao.DYPaiPianID);
string aa = "";
string bb = "";
DateTime bbb;
string cc = "";
string[] ddd;
string dd = "";

string ee = "";
CDYPiao cDYPiao = listPiaoList[PrintNum - 1];
DataTable dt = BLLDYPaiPian.GetDataTablePaiPian(cDYPiao.DYPaiPianID);
if (dt != null)
{
aa = dt.Rows[0]["TingNo"].ToString();
bbb = Convert.ToDateTime(dt.Rows[0]["StartTime"].ToString());
bb = bbb.ToShortTimeString().ToString();
cc = dt.Rows[0]["YingPianName"].ToString();
ee = bbb.GetDateTimeFormats('M')[0].ToString();
}
ddd = cDYPiao.PiaoZuo.ToString().Split('-');
if (ddd != null)
{
if (ddd.Length == 2)
{
dd = ddd[0] + "排" + ddd[1] + "号";
}
}
g.PageUnit = GraphicsUnit.Millimeter;
g.DrawString(aa, new Font("黑体", 14F), Brushes.Black, new Point(10, 8));
g.DrawString(bb, new Font("黑体", 14F), Brushes.Black, new Point(35, 8));
g.DrawString(cc, new Font("黑体", 14F), Brushes.Black, new Point(10, 22));
g.DrawString(dd, new Font("黑体", 14F), Brushes.Black, new Point(10, 31));

g.DrawString(dd, new Font("黑体", 12F), Brushes.Black, new Point(56, 9));
g.DrawString(ee, new Font("黑体", 12F), Brushes.Black, new Point(56, 24));
g.DrawString(bb, new Font("黑体", 12F), Brushes.Black, new Point(56, 38));
g.DrawString(cc, new Font("黑体", 12F), Brushes.Black, new Point(56, 53));
g.DrawString(".", new Font("黑体", 12F), Brushes.Black, new Point(40, 86));
}





...全文
1445 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmogd 2016-07-28
  • 打赏
  • 举报
回复
请问如果我用爱普生L1800的打印机加装一个黑标功能,应该怎么做,请高手指导一下
  • 打赏
  • 举报
回复
引用 楼主 akgjh1 的回复:
程序中使用的是printdocument,直接用this.printDocument1.Print();打印出来,达到的效果是会把内容打出来之后就自动切割。我想要打印机的黑标
你贴出的这些代码没有什么意义。pos打印机是命令型的,而你使用windows图形驱动,完全是“走岔路”了。 厂家给你一些指令,实际上你就应该据此知道,能够将这些字节直接发送给打印机,而并不经过windows图形驱动。
  • 打赏
  • 举报
回复
引用 4 楼 akgjh1 的回复:
电脑这端是USB连接的,不知道是并口还是串口......
厂家应该有驱动自动处理这个转换。你应该看厂家提供的设备驱动说明书。
  • 打赏
  • 举报
回复
只要你向windows代表设备的文件(例如名为"prn“、"com1"的文件)写入打印机二进制指令字节,设备自动就会走纸到黑标、并且切纸(全切或者部分切)。 实际上在windowns下,如果你是单向输出,你无须用 .net 的什么串口、并口,你直接向代表设备的“文件”进行流式输出即可!本来非常简单的编程,不要搞得很复杂。 在开发时,如果你没有相应的打印机设备,你还可以直接写到一个磁盘文件里,然后看结果。等你有了设备,直接改变一下文件名,就能将输出导向到打印机了!
qq_25445961 2016-05-14
  • 打赏
  • 举报
回复
我的tm-t86l也是切纸位置不对。需要在黑标方框中间位置切纸。请问怎样实现。并口转usb的
shawn_yang 2014-07-28
  • 打赏
  • 举报
回复
引用 4 楼 akgjh1 的回复:
电脑这端是USB连接的,不知道是并口还是串口......
看看是否是usb转串或者并?
akgjh1 2014-07-28
  • 打赏
  • 举报
回复
电脑这端是USB连接的,不知道是并口还是串口......
shawn_yang 2014-07-25
  • 打赏
  • 举报
回复
具体看你的控制接口是串口还是并口 然后用写串并口指令 public static void Cutpaper(SerialPort vCom) { byte[] cmd = new byte[4]; cmd[0] = 0x1d; cmd[1] = 0x56; cmd[2] = 0x30; vCom.Encoding = System.Text.Encoding.ASCII; vCom.Write(cmd, 0,3); vCom.Close(); }
来一脚 2014-07-25
  • 打赏
  • 举报
回复
是无线打印机吧?
Readme: 光盘内容说明文件。 58mm Series: Manual: GP-58XX 用户手册 GP-5870III用户手册 GP-5830用户手册 GP-58120中文编程手册 GP-5890XIII编程手册 GP以太网(Ethernet)打印机状态检测指令说明 GP-58N安装说明 Driver: GP58DRVCN V9 GP 58mm 系列 中文版 打印机驱动程序; GP58DRVEN V9 GP 58mm 系列 英文版 打印机驱动程序; VCPDriver_V1.1_Setup GP-58N USB接口虚拟串口驱动 76mm Series: Manual: GP-76XX 使用手册 GP-7635K使用手册 GP-76XX 中文编程手册 GP以太网(Ethernet)打印机状态检测指令说明 Driver: GP76DRVCN V8 GP 76mm 系列 中文版 打印机驱动程序; GP76DRVEN V8 GP 76mm 系列 英文版 打印机驱动程序; 80mm Series: Manual: GP-80XXX 使用手册 GP-80XXX 中文编程手册 GP以太网(Ethernet)打印机状态检测指令说明 Driver: GP80DRVCN V17 GP 80mm 系列 中文版 打印机驱动程序; GP80DRVEN V17 GP 80mm 系列 英文版 打印机驱动程序; Tools: GP80BM.exe GP80黑标设置工具; GPrinter.Exe GP打印机测试及功能设置工具; GPETHERNET.exe GP以太网(Ethernet)打印机测试及设置工具; GPNetConfig.exe 不同网段配置网口打印,GP以太网(Ethernet)打印机测试及设置工具 GP驱动安装及使用图示: 驱动安装图示; 选择通过驱动开钱箱功能图示; 自定义纸张图示; 选择切刀模式图示; 选择来单提示功能图示; 选择通过驱动打印NVLogo功能图示; Others: USB DRV for win9x&me: USB接口打印机USB驱动安装及使用说明。 Wireless: wireless(无线通讯)打印机 PC主机驱动程序及使用说明。。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧