我有一个在手持设备(Motorola MC3100)上运行的C#CE CF代码,它应该使它所连接的Zebra QL220带式打印机打印一些东西(附在此帖子上的代码)。
当我启动应用程序时,我打开QL 220(通过其底部或顶部的绿色大按钮,具体取决于您的视角),但打印机在我的代码执行过程中自行关闭,因此没有任何内容打印(我假设没有打印的原因,无论如何)。
如果我对打印机静音的原因是对的,我该怎样做才能使其“开启”按钮“粘”?
我尝试将QL 220上的蓝色按钮混合在一起(也就是滚筒的图标和从中弹出的纸张),但所有这些都是“实时”吐出一些胶带/打印纸。
. . .
using (SerialPort serialPort = new SerialPort())
{
serialPort.BaudRate = 19200;
serialPort.Handshake = Handshake.XOnXOff; // Handshake AKA Flowcontrol?
serialPort.DataBits = 8;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.PortName = "COM1:";
serialPort.ReadTimeout = 500;
serialPort.WriteTimeout = 500;
serialPort.StopBits = StopBits.One;
serialPort.Open();
Thread.Sleep(2500); // I don't know why this is needed, or if it really is...
// Try this first:
serialPort.WriteLine("! 0 200 200 210 1");
serialPort.WriteLine("TEXT 4 0 30 40 Bonjour la Monde"); //Hola el Mundo --- Hallo die Welt
serialPort.WriteLine("FORM");
serialPort.WriteLine("PRINT");
// or (if WriteLine does not include a carriage return and line feed):
// serialPort.Write("! 0 200 200 210 1\r\n");
// serialPort.Write("TEXT 4 0 30 40 Bonjour la Monde\r\n"); //Hola el Mundo --- Hallo die Welt
// serialPort.Write("FORM\r\n");
// serialPort.Write("PRINT\r\n");
serialPort.Close();
}
答案 0 :(得分:0)
除了将冒号附加到“COM1”,因为在另一个SO帖子上显示ctacke是必要的,我还需要将WriteLine行替换为每行附加“\ r \ n”的Write行,以便它们现在是:
serialPort.Write("! 0 200 200 210 1\r\n");
serialPort.Write("TEXT 4 0 30 40 Bonjour la Monde\r\n"); //Hola el Mundo --- Hallo die Welt
serialPort.Write("FORM\r\n");
serialPort.Write("PRINT\r\n");
成功打印出“Bonjour la Monde”,虽然纸张太多(印刷线上下约一英里)。