フォント ファイルを Bluetooth 経由でプリンター Zebra RW420 に送信する必要があります。Zebra Windows Mobile SDK を使用していますが、プリンターに送信して保存する方法が見つかりません。Label Vista で手動で行うこともできますが、200 以上のプリンターで行う必要があります。
誰でも何か提案があるか、SDK のどの方法を使用できるか知っていますか?
前もって感謝します。
フォント ファイルを Bluetooth 経由でプリンター Zebra RW420 に送信する必要があります。Zebra Windows Mobile SDK を使用していますが、プリンターに送信して保存する方法が見つかりません。Label Vista で手動で行うこともできますが、200 以上のプリンターで行う必要があります。
誰でも何か提案があるか、SDK のどの方法を使用できるか知っていますか?
前もって感謝します。
CISDFが正解です。おそらく、計算しているチェックサム値が正しくありません。USBポートに接続されたRW420にポートスニファを配置しましたが、これが機能することがわかりました。私は実際にいくつかのPCX画像をプリンターに送信し、後でそれらをラベルで使用しました。
! CISDF
<filename>
<size>
<cksum>
<data>
最初の4行の終わりにCRLFがあります。チェックサムとして0000を使用すると、プリンターはチェックサムの検証を無視します(一部のZPLマニュアルで、これに対する非常にあいまいな参照を見つけ、試してみましたが、機能しました)。<filename>は、プリンタのファイルシステムに保存されるファイルの8.3名であり、<size>は、ファイルのサイズであり、長さは8文字で、16進数としてフォーマットされています。<cksum>は、チェックサムとしてのデータバイトの合計の2の補数です。<data>は、もちろん、プリンタに保存されるファイルの内容です。
サンプル画像をプリンターに送信するために使用した実際のC#コードは次のとおりです。
// calculate the checksum for the file
// get the sum of all the bytes in the data stream
UInt16 sum = 0;
for (int i = 0; i < Properties.Resources.cmlogo.Length; i++)
{
sum += Convert.ToUInt16(Properties.Resources.cmlogo[ i]);
}
// compute the two's complement of the checksum
sum = (Uint16)~sum;
sum += 1;
// create a new printer
MP2Bluetooth bt = new MP2Bluetooth();
// connect to the printer
bt.ConnectPrinter("<MAC ADDRESS>", "<PIN>");
// write the header and data to the printer
bt.Write("! CISDF\r\n");
bt.Write("cmlogo.pcx\r\n");
bt.Write(String.Format("{0:X8}\r\n", Properties.Resources.cmlogo.Length));
bt.Write(String.Format("{0:X4}\r\n", sum)); // checksum, 0000 => ignore checksum
bt.Write(Properties.Resources.cmlogo);
// gracefully close our connection and disconnect
bt.Close();
bt.DisconnectPrinter();
MP2Bluetoothは、BT接続と通信を抽象化するために社内で使用するクラスです。あなたにも独自のクラスがあります。
SDK を使用して、あらゆる種類のデータを送信できます。Zebra フォントは、ヘッダー付きの単なるフォント ファイルです。したがって、Label Vista から出力 cpf ファイルをキャプチャすると、SDK からそのファイルを送信できます。write(byte[])
接続を作成し、ファイルの内容で呼び出すだけです