始めの言葉

「プリンターから印刷できて当たり前」と、ユーザーからもSIerからも軽視されがちなプリンターの世界ですが、実際にはお困りだったり、思ったような印刷結果が得られないまま我慢してお使いの皆様のために、今までの経験が役立てばと、このブログを立ち上げました。印刷の基本から、応用情報、問題の解決方法を情報発信すると共に、PDF化など、これからどうするかについても、ご相談に乗れれば幸いです。ご質問はコメントでお寄せください。

2015年6月22日月曜日

繰り返し印刷とポートの設定

前回は、スプーラーに関わるお話でしたが、今回はスプーラーから印刷データが送信される先を指定する「ポート」のお話です。PC と LAN 接続したインパクト・プリンターを使って印刷していると、印刷が完了した後、あるいは途中のページから、先頭ページからの印刷を再開するという現象が発生することがあります。ページ数が多い、つまり量が大きいデータを印刷しようとする時に発生する可能性が高くなります。
プリンターを LAN 接続する場合、TCP/IP の機能の中の「LPR/LPD」という仕組みを使用して印刷します。Windows ではドライバーのプロパティの「ポート」に、通常は、「標準のTCP/IPポート」を使用します。「ポート」で指定された宛先に印刷データが送信されるのですが、その仕組みは次のようになっています。
  1. Windowsは初めに“Control File”をプリンターに送信します。Control File”には、PC側のホスト名やユーザー名、ファイル名を含みます。(下図
  2. 受信側のプリンター(実際にはネットワーク・カード)は、それを受信すると“Ackという受信確認を返信します。(下図 
  3. Control FileAckを受信すると、次にWindowsは“Data File”を送信します。(下図)“Data File”には、印刷データの他にデータ・サイズの情報が含まれます。 
  4. 受信側のネットワーク・カードは、データ・サイズと一致する印刷データを受信したら、“AckWindowsに返信します。(下図 
  5. Windowsは、このAckを受信して、印刷ジョブ送信終了とします。
問題は、Windows が最後の"Ack"を受信するまで待つ所定時間があって、それまでに受信されないと印刷失敗と認識して、先頭のページから印刷データを再送することです。その所定時間は公開されていないようですが、過去の実測値では約90秒でした。
プリンターから所定時間までに"Ack"を返信できない理由は、いくつか考えられます。
  1. 用紙ジャムや用紙切れが発生して、そこから回復するのに間に合わない。
  2. 印刷速度が遅いために間に合わない。
  3. ネットワークが混雑していて、データ通信に時間が掛かる。
インパクト・プリンターの場合、多くは「2」のケースですが、背景にはプリンターがどのタイミングで"Ack"を返信するように設計されているかが関係します。つまり、印刷までちゃんと完了してから"Ack"を返すものもありますが、データを受信を完了しただけで"Ack"を返すものもあります。(レーザー・プリンターの多くは、データ受信用のメモリー・サイズも大きく、後者の方式のようです。)
後者の方が、"Ack"の返信が早いので、繰り返し印刷の発生は防げますが、前者の考え方から見れば、「印刷完了しない内にプリンターの電源を切られたら、印刷中のデータは消えてしまう」という危険性もあるわけです。どちらの考え方が絶対に正しいということは無いと思いますが、5577や5400系のプリンターでは前者の考え方で設計されています。そうなると、インパクト・プリンターは、レーザー・プリンターに比較して印刷速度が遅いこともあって、その結果、印刷データのサイズが大きな印刷を行うと、繰り返し印刷を発生する可能性が高くなります。
また、先日もこの問題で、問い合わせをいただいたのは、カット紙を1枚ずつ手差し印刷しているケースでした。自動給紙に比べてどうしても1枚ずつ印刷する間隔が長くなってしまっていることも影響しているようでした。
この問題の解決方法は、長くなりますので、次回にまとめて。

0 件のコメント:

コメントを投稿