この既存のソリューションを使用して仮想プリンターを作成しています。データ受信サブコマンドに問題があります。
+----+-------+----+------+----+
| 03 | Count | SP | Name | LF |
+----+-------+----+------+----+
Command code - 3
Operand 1 - Number of bytes in data file
Operand 2 - Name of data file
このコマンドを処理するたびに、データ ファイルのサイズ (Count) は常に奇妙な大きな数字 (125899906843000) になります。誰かがどこに問題があるべきか知っていますか? ありがとう
編集:
私は問題がどこにあるかを見つけました。これが私自身の質問に対する答えです。問題は、Microsoft がファイルの実際のサイズ (バイト単位) ではなく、信じられないほど巨大な数値を送信するためです。この問題を解決するには、次の 2 つの方法があります。
- 仮想プリンターの TCP/IP ポートを編集し、LRP バイト カウントを有効にします。これにより、Windows は強制的にファイル内のバイト数をカウントし、この値を Receive data file サブコマンドで送信します。
- LPR クライアントによって接続が閉じられるまで、データ ファイルを送信する要求からすべてのデータを受信することによって、「不明な長さのファイル」の状況を処理するように RPM を変更します。