始めの言葉

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

2016年10月24日月曜日

ライン・プリンターの全て - 第14回- 日本語ライン・プリンターのドライバー-3

事前準備や注意点の続きです。

2. ポートの設定変更

前々回のドライバーの設定の中で、ポートには"標準 TCP/IP プリンター ポート"を選択しましたが、実際には、2015年6月22日の"繰り返し印刷とポートの設定"の回でお話したように、繰り返し印刷が発生する可能性があります。特に、サイズの大きなデータを印刷する場合や、印刷中に発生した用紙切れや用紙ジャムに対して、操作員が気づくまで時間が掛かって、すぐに対処できないことが多いような場合には、発生する可能性が高くなります。
そのため、対策としては、2015年7月1日の"繰り返し印刷の対策"でお話した方法で、LPR ポートへ変更した上で、レジストリーを編集して、ポートのタイムアウト値を大きくする、ポートの使用数の制限を外すことが必要です。タイムアウト値をどの程度の値に変更すれば良いかは、プリンターの使用環境によって異なりますが、例えば、用紙切れに気づいて新しい用紙に架け替えるまでの時間を考えると、30分程度が、一つの目安になるかと思います。大きな値にしても悪影響は無いので、大き目の値にしておけば安心と言えます。

3. 印刷速度の設定

5400 プリンターの印刷速度には、通常速モードや高速モード等があり、操作パネルや Web ページで設定できます。また、初期設定メニューで選択しておくと、電源を入れて起動した時の印刷速度を決められます。AS/400 から Telnet5250 を使った印刷では、この印刷速度が有効ですが、Windows からの印刷では、ドライバーのプロパティで指定した印刷速度が優先されます。これは、ドライバーが印刷データの前に、印刷速度を指定するコマンドを付けてプリンターに送信するからです。
その原理を理解すると、例えば、Windows から印刷指示を行なって、プリンターが印刷を始めた直後に、操作パネルで印刷速度の設定を変更すると、その後は変更後の印刷速度で印刷されるという使い方ができてしまうことが、分かると思います。つまり、ドライバーから送信される印刷速度設定コマンドは、初めの1回だけなので、その後、操作パネルから変更されたら、そちらが有効になるという意味です。
5400 ドライバーで印刷速度を設定するには、プロパティの中の"拡張設定"画面の中で選択します。
5400 ドライバー拡張設定画面

4. 印刷の取り消し

例えば、間違った用紙を掛けて印刷指示したことに印刷中に気づいた場合など、印刷を取り消したい場合があります。そのような場合に、操作パネルに"印刷取消"スイッチがあるので、"印刷中断"スイッチを押して印刷を止めてから、"印刷取消"スイッチを押すのですが、"印刷"スイッチを押すとそのまま印刷は続いてしまうので、どうしたら途中で印刷を取り消せるかというお問い合わせをいただくことがあります。
実は、"印刷取消"スイッチは、Telnet5250E や Twinax で AS/400 と接続されている場合に、AS/400 に対して"印刷取消要求を行なう"というためのものです。Windows からの印刷では、このスイッチが有効になることはありません。
Windows からの印刷を取り消すのは、次の手順になります。
1. 操作パネルの"印刷中断"スイッチを押して、印刷を止めます。これによって、プリンターは、Windowsからのデータの受信を受け付けなくなります。
2. Windows の"デバイスとプリンター"画面の中のドライバーを選択して、ダブル・クリックします。または、右クリックして表示されるメニューの中の"印刷ジョブの表示"を指定します。
3. 次のような画面が表示されるます。"ドキュメント名"には、アプリケーションやファイルの名前が表示されます。複数の印刷ジョブを送った時には、複数の名前が縦に並びます。(下の画面は、Windows 標準のテスト印刷を、3 回行なった時の表示)
ドライバー 印刷ジョブの表示画面
4. 印刷中のジョブは、"状態"欄に"印刷中"と表示されますので、それのみを取り消す場合には、その印刷ジョブを指定して、右クリックします。または、"ドキュメント"メニューを選択します。表示されたメニューの中から"キャンセル"を指定すると、その印刷ジョブのみを取り消しできます。ただ、この場合は、プリンターの"印刷"スイッチを押して印刷再開すると、次のジョブの印刷を始めますので、用紙の種類や先頭の位置の調整に注意が必要です。
特定の印刷ジョブの取り消し
5. そこで、確実に取り消せるのは、全ての印刷ジョブを取り消しすることです。そのためには、この"印刷ジョブの表示"画面の"プリンター"メニューをクリックして、表示されるメニューの中の"すべてのドキュメントの取り消し"をクリックします。しばらく待っても画面から印刷ジョブが消えない時には、プリンターの電源を切ります。
すべてのドキュメントの取り消しを指定
印刷の取り消しにこのような操作が必要な理由は、プリンター側の持っているデータ受信用のメモリーのサイズが小さく、2行分のデータを保存する程度の容量しかないことにあります。つまり、印刷中のデータは、ほとんどが Windows のスプーラー内にあるので、それを取り消す、つまり削除しない限りは、プリンターが印刷可能状態になった途端に、残りの印刷が始まってしまうということになります。AS/400 からの印刷でも、OUTQ の画面で、取り消す対象のスプールに対して、取り消し処理を行うのと同じことです。

次回からは、プリンターの使い方についてお話します。


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 のスプーラーでその速度の差を調整しないと、印刷データが正しくプリンターに届きませんと回答したのですが、その結果、お客様は双方向通信では使えなくなったわけです。

2015年2月22日日曜日

AS/400からの印刷 ~基礎編-6~

プリンター・セッション経由の最大のメリットは、前回も申し上げたように、「プリンターの選択肢が多い」ということです。
処理の流れとしては、先ずPC上のプリンター・セッションがAS/400から印刷データを受信し、PDT印刷ではPDTを参照してデータ変換を行い、Windowsのスプーラーから、プリンター・ドライバーで指定しているポートの指定先のプリンターに印刷データを送信するということになります。
その結果、注意点や制限としては、以下の点があります。
  • プリンター・セッションを立てたPCの電源が入っていないと印刷できない。(これは当然ですよね。)
  • 保留や取り消しといったスプールの管理はできません。(これは、AS/400から見た場合、プリンター・セッションが仮想プリンターとなること、そして、それがPCであるためプリンターと違って、スプール解放とほぼ同時に印刷データを受信してしまうためです。)
  • 同じ理由で、プリンターのエラーは、OS/400には通知されません。
  • PDT印刷の場合は、バーコード、3倍以上の文字拡大指定やOCR-Bフォント等半角文字の書体指定が無効になります。(これは、プリンター・セッションでのコマンド変換機能の制限です。)
  • 外字(正確にはユーザー定義文字)を印刷するには、プリンター・セッションを立てたPCのWindows外字に、それら外字を登録する必要があります。(これは、外字はWindows外字のイメージを使用するためです。)
 【余談】
Windowsのスプーラーは、プリンターの印刷速度に合わせて印刷データを送信します。AS/400からPCがデータを受信して変換する速度(速い)と、プリンターの印刷速度(遅い)の違いを吸収しているわけです。しかし、Windowsが、まだWindows95だった頃、プリンターのエラーがAS/400側に通知されるということで、ドライバーのプロパティで「印刷データをスプールせず、直接プリンターに送る」設定に変えて、使用するお客様がありました。
WindowsXPになっても、その設定に変えたところ、正しく印刷できなくなったというお問い合わせを何件かいただいたことがあります。実は、そのお問い合わせをいただいたことで、Windows95ではそのような使い方ができたのかと驚いたことを、今でも良く覚えています。
特にインパクト方式のプリンターでは、受信バッファーのメモリー・サイズは2行分程度しかありませんし、印刷速度はAS/400からのデータ送信速度に比べてかなり遅いわけですから、Windowsスプーラーの役割は非常に重要と言えます。

では、次回は、帳票ソリューションを使った印刷方式についてお話しします。