斑马打印机,发送指令到COM口的,打印间隔时间太长,请各位帮忙解决。

hou_0987 2014-09-29 12:51:54
现在遇到两个问题
1、使用斑马打印机,每次读取txt的模版文件,在后台代码更改模版文件中的变量值,在将这个指令发送到COM口,例如,我有是个订单号码需要打印,首先读取数据文件,获取10个数据的数组,遍历一遍,每遍历一条记录就像COM口发送指令,十个号码连续打印时,打印完第一个再打第二个的时候要很长的时间间隔。我的代码如下:
public static Boolean PrintNMCode(string NMCode)//打印内码
{
FileStream stream1;
StreamReader reader1;
string str;
if (!Open())
{
MessageBox.Show("未能连接打印机,请确认打印机是否安装正确并接通电源。", "错误信息");
return false;
}
try
{
stream1 = new FileStream(System.Windows.Forms.Application.StartupPath + "\\NM.prn", FileMode.Open, FileAccess.Read);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
reader1 = new StreamReader(stream1, Encoding.Default);
try
{
while (reader1.Peek() >= 0)
{
str = reader1.ReadLine();
str = str.Replace("&TXTBarCode&", NMCode);
Write(str);
}

MessageBox.Show("已发送打印指令");
}
catch (Exception ex)
{
MessageBox.Show(ex.Source + ":" + ex.Message, "错误信息");
stream1.Close();
reader1.Close();
return false;
}
stream1.Close();
reader1.Close();
if (!Close())
{
return false;
}

return true;
}

public static bool Write(string Mystring)
{
if (iHandle != -1)
{
int i;
OVERLAPPED x;
byte[] mybyte = System.Text.Encoding.Default.GetBytes(Mystring);
return WriteFile(iHandle, mybyte, mybyte.Length, out i, out x);
}
else
{
throw new Exception("端口未打开!");
}
}

请各位帮忙看看如何解决这个问题。
...全文
1119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hou_0987 2014-10-02
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
1.你会数数吗? 2.如果你自己就知道指令怎么编写,直接在内存里拼个字符串就好了,干什么先写文件,再读文件?
因为每次发送的内容不一样,每次先从数据库中获取条码信息,写文件在读文件主要是处于以下原因: 文件中保存的是条码样式模版,至于条码信息是从数据库中获取,每发送一条记录,分以下几步:1、数据库中获取条码信息,2、读取样式模版文本3、将样式模版中的条码部分替换为数据库获取到的条码信息4、将匹配好的信息发送到串口,不知道我说的意思您明白没。 不过确实我应该发送十次后在关闭,我先试一下,您有更好的办法在帮我想想,试好了立马结贴。
於黾 2014-09-29
  • 打赏
  • 举报
回复
3.如果你要连续打印10个东西 你打开一次,发送10次,再关闭啊 为什么每次都先close掉,然后再open?
zhouzangood 2014-09-29
  • 打赏
  • 举报
回复
於黾 2014-09-29
  • 打赏
  • 举报
回复
1.你会数数吗? 2.如果你自己就知道指令怎么编写,直接在内存里拼个字符串就好了,干什么先写文件,再读文件?

110,536

社区成员

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

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

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