1

以下の「SerialPort」はOpenNETCF.IO.Portsからのものです。

この最初のパス/半専用の推測は、ベルトプリンター(Zebra QL220)への印刷に意味がありますか?つまり、それはまともな出発点ですか?

using (SerialPort serialPort = new SerialPort()) 
{
    string someString = "Bla";
    //serialPort.BaudRate = // I don't know what to put here yet, assuming this is needed
    //serialPort.DataBits = // " "
    //serialPort.Parity = // " "
    //serialPort.StopBits = // " "
    serialPort.PortName = "COM1"; // Is this what it wants?

    serialPort.Open();

    Thread.Sleep(2500); // I don't know why this is needed, or is it?

    serialPort.Write(" ! U1 setvar \"device.languages\" \"line_print\"\r\n");
    serialPort.Write(" ! U SETLP 5 1 46\r\nPAGE-WIDTH 480\r\nSETBOLD 2\r\nPRINT\r\n");          
    serialPort.Write(" ! U1 CENTER\r\n"+someString"\r\n! U1 SETBOLD 0\r\n");
    serialPort.Write(" ! U1 CENTER\r\n");
    serialPort.Write(" ! U1 SETLP 0 2 24");

    serialPort.Close();
}

「試してみてみませんか?」と言うかもしれません。ただし、現在のところ、少なくとも、これを行うには長い時間がかかります。これは、展開「デバイス」またはエミュレーターのいずれかでXPモードVMでアプリを実行できないためです(Visual内からWindowsCEプロジェクトを実行する方法を参照してください)。 Studio(2003)?興味があれば); 私がする必要があるのは、変更されたコードをテストするためにバイナリをハンドヘルドにコピーすることです。ですから、そのリガマロールを通過する前に、何らかの形で機能することをある程度確信したいと思います。

4

1 に答える 1

1

はい、それは大まかにあなたがやりたいことです。必要な通信設定については、プリンターのドキュメントを確認する必要があります。通常は 19200,N,8,1 です。一部のプリンターでは、データを送信する速度を調整する必要があります。プリンターのシリアル データ バッファーを超えるほど高速にデータを送信することができます。たとえば、送信される 512 バイトごとに小さな遅延を追加する必要があったことを思い出します。そうしないと、印刷ストリームの末尾が失われます。ただし、プリンターのモデルがわからないため、注意が必要です。

于 2013-02-07T13:00:42.763 に答える