1

ハンドヘルド デバイス (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();
            }
4

1 に答える 1

0

Besides appending the colon to "COM1" as ctacke revealed was necessary on another SO post, I also needed to swap the WriteLine lines for Write lines with the "\r\n" appended to each line, so that they are now:

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");

That successfully printed out "Bonjour la Monde" although with too much wasted paper (about a mile above and below the line was printed).

于 2013-02-08T16:28:46.927 に答える