0

Microsoft POS.NETをEpsonレシート印刷で使用すると、プリンターに送信されるはずのバイトを書き込むことで、サーバー(サーバーにはPOS.NETおよびEpsonドライバーがインストールされていますが、プリンターは接続されていません)で印刷するためのレシートを作成できますか?ファイルに?

その後、これらをプリンタがインストールされているクライアントマシンに送信できるようにしたいので、バイトをプリンタにストリーミングするだけです。

これまでに入手したのは、開発マシンで実行されているEpsonサンプルコードだけです。「ファイルに出力」を実行したり、バイトをインターセプトしたりする明確な方法がわかりません。

4

1 に答える 1

1

残念ながら、OPOSはこの機能をネイティブに提供していません。最も近いのは「ページモード」です。このモードでは、OPOSレシートまたはスリッププリンターをページモード状態に設定すると、すべての印刷コマンドがサービスオブジェクトによって内部的にバッファリングされます。次に、OPOS pageModePrint()コマンドを発行して、後でレシート全体をプリンターに送信します。ただし、OPOSはバッファへのアクセスを提供しておらず、ベンダーは任意の方法でバッファを自由に実装できます(機能をまったく実装しないことを含む)。

問題を解決するために私が考えることができる最も簡単な解決策は、サービスオブジェクトをチェックして、ネットワーク印刷をサポートしているかどうかを確認することです。おそらく、サービスオブジェクトは、ネットワークに接続されたプリンター、またはプリンターをホストしている別のコンピューターに印刷できるようになっています。ベンダーは、DirectIOコマンドを介してページモードバッファへのアクセスを提供する場合があります。プリンタベンダーは、これらを追加の(有料の)機能として提供する場合もあれば、カスタムで作成することを提案する場合もあります。ベンダーがすでにプリンタ用のイーサネット通信ボードオプションを提供している場合は、必要なものがすべて揃っている可能性があります。尋ねることは害にはなりません。

そうでない場合は、データをバッファリングしてアプリケーションで使用できるようにするタスクを実行するために、独自のサービスオブジェクトを自由に作成できます。カスタムサービスオブジェクトを共通コントロールとベンダー提供のサービスオブジェクトの間の「くさび」としてスライドさせ、DirectIO()メソッドを介してカスタムコントロールを許可することは確かに不可能ではありません。以前、スキャナーバッファー機能を追加するためにこれを実行したことがありますが、プリンターほど複雑なものに対しては実行したことがありません。

于 2013-01-11T15:43:48.880 に答える