プリントクライアントは、ローカル(プリントサーバー上)かリモート(ネットワーク上)かに関係なく、Windows NTプリントサーバーに印刷ジョブを送信します。プリントサーバーサービスは、I/Oリクエストとして印刷ジョブをリモートクライアントから受信します。このI/Oリクエストは適切なシステム処理に管理される必要があります。
この章では、Windows NT Workstationでローカルに印刷する場合と、Windows NTネットワーククライアントから印刷する場合について説明します。また、ほかのネットワーククライアントについても説明します。
プリントクライアントに指定できるクライアントを、次に示します。
Windowsプリントクライアントは、印刷の正常終了を確認するメッセージやエラーを示すプリンタの警告を受信します。クライアントがプリンタからの警告の受信を必要としない場合は、次のエントリをSystem.iniファイルの[Network]セクションに追加します。
SendPrintMessages=no
注 WinPopupを無効にしてもプリンタの警告は無効になりません。
WindowsベースのアプリケーションとMS-DOSベースのアプリケーションは、異なった方法と異なった規則で印刷を行います。Windowsベースのアプリケーションでは、[プリンタ]フォルダに追加したプリンタに印刷ジョブが送信されます。通常、それらのプリンタに対応するプリンタドライバを使用します。ただし、一部のハイエンドDTPアプリケーションまたはCADアプリケーションは、独自のプリンタドライバを内蔵しています。
MS-DOSベースのアプリケーションは、これとは異なり[プリンタ]フォルダに追加されたプリンタを認識できません。これらのアプリケーションは、プリンタではなくポートに出力しますが、これが原因となり問題を引き起こす場合があります。[プリンタ]フォルダには数十個のプリンタを追加することができますが、ほとんどのMS-DOSベースのアプリケーションはLPT1〜LPT3とCOM1〜COM2のようなポートに制限されています。Windows NTでは、MS-DOSベースのアプリケーションを次の方法で対応させます。
対話形式でプリントサーバーにログオンする場合に、[プリンタ]フォルダに2つのプリンタがあり、実際に印刷デバイスが2台あると仮定します。サーバー名\\PSERVER1、HPVという名前のプリンタは独立のI/Oカードに搭載されたLPT2ポートに出力し、HPIIISIという名前のプリンタはFILEポートに出力します。HPVとHPIIISIはネットワーク上のPSERVER1で共有されています。印刷デバイスは、LPT1とLPT2の両方に接続しています。このような場合、コマンドプロンプトに次のコマンドを入力します。
NET USE LPT3: \\PSERVER1\HPIIISI.
LPT1、LPT2、LPT3のそれぞれにファイルをコピーすると、次の結果になります。
COPY TEST.TXT LPT1:
NTVDMがリダイレクタをチェックし、リダイレクタがLPT1を管理していないことを検出します。またスプーラをチェックし、定義したプリンタがどれもLPT1に出力していないことを検出します。このため、印刷ジョブがパラレルポートデバイスドライバに送信されます。
COPY TEST.TXT LPT2:
NTVDMがリダイレクタをチェックし、リダイレクタがLPT2を管理していないことを検出します。また、プリンタHPVがLPT2に出力していることを検出します。NTVDMは印刷ジョブをHPVに送ります。またLPT2に印刷ジョブが出力されるときは、このプリンタのスプールオプションが有効になります。
COPY TEST.TXT LPT3:
NTVDMがリダイレクタをチェックし、リダイレクタがLPT3を管理していることを検出します。このため、リダイレクタが制御を行います。リダイレクタでは、LPT3に送信されたデータが、実際には印刷共有資源\\PSERVER1\HPIIISIに送信されるよう設定されています。その共有資源が印刷ジョブを受信したら、HPIIISIのスプールオプションが有効になります。通常は、net useコマンドを使用してローカルポートをリモートの共有資源に割り当てますが、ローカルポートをローカルの共有資源に割り当てても一向に問題ありません。テストやトラブルシューティングにはこのような方法が適している場合があります。
Windows NTとWindows 95のネットワーククライアントでは、次のネットワークプロトコルのいずれか使用して印刷ジョブを送信することができます。
Windows NTプリントクライアントは、RAWではなくEMFデータ型を使用します。EMFは、印刷ジョブをサーバーにスプールし、サーバーで目的の印刷形式にレンダリングします。リモートレンダリングを行うことで、クライアントコンピュータのタスクへ復帰するまでの時間が大幅に短縮されます。
Windows NTとWindows 95のネットワーククライアントの場合、プリンタドライバについて考慮する必要がありません。クライアントに必要なドライバがない場合は、クライアントの印刷処理の開始時に、Windows NTサーバーからクライアントのハードディスクに自動的にインストールされます。ただし、クライアントコンピュータでWindows NT 4.0が動作し、サーバーで以前のバージョンが動作している場合は、プリンタドライバが機能しません。Windows NT 4.0プリントサーバーは必要に応じて以前のバージョンのプリンタドライバを提供できますが、Windows NT 4.0クライアントの方でプリンタドライバの以前のバージョンを使用することができません。
Windows 95の印刷ジョブは、常にEMFをローカルでスプールし、ローカルで再生してRAWデータ型を生成した後でプリントサーバーに送信します。プリントサーバーは再度それをスプールします。
Windows NTプリントサーバーは、Windows NT Serverサービスを使用してWindows 95クライアントから送られた印刷ジョブを受信します。
16ビットWindowsプラットフォームの場合、バージョンによる違いはほとんどありません。どのバージョンでも、コンピュータにインストールされた16ビットプリンタドライバを使用して、MS-DOSベースのアプリケーションとWindowsベースのアプリケーションからの印刷をサポートします。通常、次のいずれかのMicrosoft ネットワーククライアントリダイレクタを利用してジョブをWindows NTプリントサーバーに送信します。
Microsoftネットワークリダイレクタは次のプロトコルを使用して印刷ジョブを送信します。
Windows NTプリントサーバーはWindows NT Serverサービスを使用して印刷ジョブを受信しますが、通常このサービスは、印刷ジョブを変更しません。16ビットWindowsクライアントでは、ほかのプリントサーバーへ印刷ジョブを送信したい場合、サードパーティのソフトウェア(たとえば、UNIXプリントサーバーに印刷ジョブを送信するためのLPRソフトウェアなど)を実行することもできます。このようなソフトウェアでは、ジョブをWindows NTにも送信できるようになっています。