1

我有在手持设备(摩托罗拉 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();
            }
4

1 回答 1

0

除了将冒号附加到“COM1”之外,因为 ctacke 在另一个 SO 帖子上显示是必需的,我还需要将 WriteLine 行交换为 Write 行,并在每行附加“\r\n”,这样它们现在是:

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”,尽管浪费了太多纸张(打印线上下约一英里)。

于 2013-02-08T16:28:46.927 回答