[英]Why would CPCL code sent to a Zebra QLn220 printer work, whereas the same code does NOT work when sent to a Zebra QL220?
[英]Why does the Zebra QL 220 printer shut off in the middle of my talking to it?
我有在手持設備(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();
}
除了在另一個SO帖子中必須將冒號附加到“ COM1”(如ctacke所示)外,我還需要交換Write行的WriteLine行,並在每行后面附加“ \\ 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”(打印出上下一行約一英里)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.