始めの言葉

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

2015年6月15日月曜日

Windowsスプーラーの役割

その後、パラレル・インターフェイスの規格も新しくなって、「セントロニクス」から「IEEE1284」という規格に移行したのですが、5577 系のプリンター側は、しばらくの間は大きな変化が無く、IEEE1284の中の「スタンダード」と呼ばれたレベルのままでした。
その結果、印刷すると文字化けや余計なページ送りといったお問い合わせが増え、その度にPC側のBIOS(バイオス)の設定で、パラレル・インターフェイスのモードを変更して、プリンターとモードを合わせてくださいという回答を繰り返していました。
IEEE1284規格の標準であるECPモードに対応したモデルが出たのは、2005年末の 5577-D02/C02 や 5579-N02 でした。ただこの頃になると、パラレル・インターフェイスでの接続よりも、LAN 接続の方が多くなってきていました。
さて、パラレル・インターフェイス接続であれ、LAN接続であれ、ドット・プリンターを Windows 上のプリンター・セッション経由でAS/400と接続する場合は、AS/400から見れば、あくまでもプリンター・セッションがプリンターになります。その先に接続され たプリンターで発生した用紙ジャムや用紙切れ等のエラー情報は、プリンターから PC までは通知されますが、AS/400までには届きません。

AS/400からの印刷データの流れを見ると、プリンター・セッションまでのデータ送信は非常に高速に行われますが、それと比較してプリンター、特にインパクト・プリンターのデータ処理速度、つまり印刷速度は非常に遅いものです。例えば、漢字を 150字/秒の一定速度で印刷できるとしても、(実際には、印字ヘッドの加速/減速や用紙送りの時間も掛かります。)24 x 24(ビット/1文字) x 150 = 86.4k bps(ビット/秒)にしかなりません。
その結果、プリンター・セッションから見ると、AS/400からはどんどんデータが送られてくるのに、プリンターへは少しずつしかデータを送れないということになります。この処理速度の差を調整しているのが、Windows の「スプーラー」になります。スプーラーは、ちょうどダムのような働きをしているわけです。プリンター・ドライバーのプロパティにおいて、「詳細設定」画面の「印刷ドキュメントをスプールし、プログラムの印刷処理を高速に行う」が、デフォルトで選択されているはずですが、これがその設定です。
プリンター・ドライバーのプロパティの詳細設定
ところが、Windows95の時に、この設定をその下にある「プリンターに直接印刷データを送る」に変更すると、プリンターで発生したエラーが、AS/400にまで通知され、ちょうど直結プリンターと同様に、OUTQの状態がMSGWTになるという情報が、お客様からのお問い合わせの中にありました。具体的には、Windows95 のPCではこの設定で使用していたが、WindowsXP のPCでも同じ設定を行うと、正しく印刷ができないという内容でした。
プリンターとの双方向通信が実質的にできて、お客様としては便利に使っていたということだと思いますが、私としては驚きました。
結局、その時は、WindowsXP対応のPCに変わることで、PC側の処理速度が高速になったが、プリンターの処理速度は変わらないので、Windows のスプーラーでその速度の差を調整しないと、印刷データが正しくプリンターに届きませんと回答したのですが、その結果、お客様は双方向通信では使えなくなったわけです。

0 件のコメント:

コメントを投稿