(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置及び印刷装置にネットワークを介して通信可能な印刷管理装置であって、
前記印刷装置の状態情報を取得する情報取得手段と、
前記情報取得手段により取得された前記印刷装置の状態情報が印刷一時停止状態である場合に、前記複数の情報処理装置から前記印刷装置への印刷要求に係る前記情報処理装置のＩＰアドレスとジョブ名を含むジョブ情報を前記印刷装置から取得し、前記印刷装置の状態情報を通知する情報処理装置を決定する決定手段と、
前記決定手段により決定された情報処理装置に前記印刷装置が印刷一時停止状態であることを通知する通知手段と、
を備えることを特徴とする印刷管理装置。
【請求項２】
前記情報取得手段は、前記印刷装置が受信した印刷データに関する情報及び前記印刷装置の状態情報を取得することを特徴とする請求項１に記載の印刷管理装置。
【請求項３】
情報処理装置から受信した手差しコマンドを含むジョブを印刷装置へ送信する送信手段と、
前記印刷装置が印刷一時停止状態になった場合に、前記印刷装置から前記情報処理装置のＩＰアドレスと前記ジョブのジョブ名を含むジョブ情報を取得する取得手段と、
前記取得手段により取得した前記印刷装置の前記ジョブ情報に基づき前記情報処理装置に前記印刷装置の一時停止状態を通知する通知手段とを有することを特徴とする印刷管理装置。
【請求項４】
前記通知手段は、前記取得手段により前記印刷装置から取得した前記ジョブ情報に含まれる前記ＩＰアドレスの前記情報処理装置に前記ジョブ情報に含まれるジョブ名の通知を行うことを特徴とする請求項３に記載の印刷管理装置。
【請求項５】
前記情報処理装置から受信したジョブは、印刷データを含まず、前記情報処理装置から受信したジョブの印刷データは情報処理装置から印刷装置に送信されることを特徴とする請求項３に記載の印刷管理装置。
【請求項６】
手差しコマンドを含むジョブを印刷管理装置へ送信する送信手段と、
印刷管理装置からの通知を受信する受信手段とを有し、
前記印刷管理装置は、印刷装置が印刷一時停止状態になった場合に、前記印刷装置のジョブ情報を取得し、取得した印刷装置のジョブ情報に基づいて前記情報処理装置に前記印刷装置の一時停止状態を前記受信手段に通知し、
前記受信手段が前記印刷管理装置から受信する通知は、前記印刷管理装置が前記印刷装置から取得したジョブ情報に含まれるＩＰアドレスの情報処理装置に対する、前記取得したジョブ情報に含まれるジョブ名の通知であることを特徴とする情報処理装置。
【請求項７】
前記印刷管理装置へ送信するジョブは、印刷データを含まず、前記ジョブの印刷データは情報処理装置から印刷装置に送信することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
複数の情報処理装置及び印刷装置にネットワークを介して通信可能な印刷管理装置の制御方法であって、
前記印刷装置の状態情報を取得する情報取得工程と、
前記情報取得工程により取得された前記印刷装置の状態情報が印刷一時停止状態である場合に、前記複数の情報処理装置から前記印刷装置への印刷要求に係る前記情報処理装置のＩＰアドレスとジョブ名を含むジョブ情報を前記印刷装置から取得し、前記印刷装置の状態情報を通知する情報処理装置を決定する決定工程と、
前記決定工程により決定された情報処理装置に前記印刷装置が印刷一時停止状態であることを通知する通知工程と、
を備えることを特徴とする印刷管理装置の制御方法。
【請求項９】
前記情報取得工程は、前記印刷装置が受信した印刷データに関する情報及び前記印刷装置の状態情報を取得することを特徴とする請求項８に記載の印刷管理装置の制御方法。
【請求項１０】
情報処理装置から受信した手差しコマンドを含むジョブを印刷装置へ送信する送信工程と、
前記印刷装置が印刷一時停止状態になった場合に、前記印刷装置から前記情報処理装置のＩＰアドレスと前記ジョブのジョブ名を含むジョブ情報を取得する取得工程と、
前記取得工程により取得した前記印刷装置の前記ジョブ情報に基づき前記情報処理装置に前記印刷装置の一時停止状態を通知する通知工程とを有することを特徴とする印刷管理装置の制御方法。
【請求項１１】
前記通知工程は、前記取得工程により前記印刷装置から取得した前記ジョブ情報に含まれる前記ＩＰアドレスの前記情報処理装置に前記ジョブ情報に含まれるジョブ名の通知を行うことを特徴とする請求項１０に記載の印刷管理装置の制御方法。
【請求項１２】
前記情報処理装置から受信したジョブは、印刷データを含まず、前記情報処理装置から受信したジョブの印刷データは情報処理装置から印刷装置に送信されることを特徴とする請求項１０に記載の印刷管理装置の制御方法。
【請求項１３】
手差しコマンドを含むジョブを印刷管理装置へ送信する送信工程と、
印刷管理装置からの通知を受信する受信工程とを有し、
前記印刷管理装置は、印刷装置が印刷一時停止状態になった場合に、前記印刷装置のジョブ情報を取得し、取得した印刷装置のジョブ情報に基づいて前記情報処理装置に前記印刷装置の一時停止状態を前記受信工程に通知し、
前記受信工程が前記印刷管理装置から受信する通知は、前記印刷管理装置が前記印刷装置から取得したジョブ情報に含まれるＩＰアドレスの情報処理装置に対する、前記取得したジョブ情報に含まれるジョブ名の通知であることを特徴とする情報処理装置の制御方法。
【請求項１４】
前記印刷管理装置へ送信するジョブは、印刷データを含まず、前記ジョブの印刷データは情報処理装置から印刷装置に送信することを特徴とする請求項１３に記載の情報処理装置の制御方法。
【請求項１５】
請求項８乃至１４のいずれか１項に記載の制御方法を実行するプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークに接続されたプリンタを、ネットワークに接続された複数のクライアントコンピュータで利用する場合における印刷システム、サーバ、情報処理装置、印刷制御方法および記憶媒体に関する。
【０００２】
【従来の技術】
昨今、オフィスにおけるパーソナルコンピュータの普及はめざましく、またそれらを接続するネットワーク技術も発達してきている。プリンタの利用法も従来では１台のパソコンに１台のプリンタを接続して使用するものであったが、最近ではプリンタをネットワークに接続し、ネットワークに接続されたパーソナルコンピュータで共有して使用するケースが増えている。
【０００３】
ネットワークプリンタを利用する環境としては、ネットウェアやWindows NT（登録商標）などのネットワークＯＳを利用し、プリントサーバを設定して使用する場合が多く、プリンタを共有するために新たにサーバを設置する必要があった。
【０００４】
また、メールサーバなどのサーバがある場合、それにプリントサーバの機能を付加すると、従来のサーバの機能を低下させてしまっていた。
【０００５】
また、クライアントコンピュータが、送信した印刷ジョブの状態を確認するためには、クライアントコンピュータからサーバもしくはプリンタに印刷ジョブに関する情報を問い合わせる必要があった。
【０００６】
【発明が解決しようとする課題】
このようなネットワーク環境における従来の印刷システムでは、ユーザが手差し指定印刷を行う場合、どのクライアントコンピュータからの手差し指定印刷であるか判断することができず、クライアントコンピュータが手差しの情報を得ることができなかった。
【０００７】
また、クライアントコンピュータのアプリケーションも手差しのタイミングを示すためのイベント要求を受け取ることができなかった。
【０００８】
また、アプリケーションが関与しない場合でも、クライアントマシンがユーザに手差しタイミングを指示することができなかった。
【０００９】
そこで、本発明は、ネットワーク環境で、ユーザが手差し印刷指定を行う場合などにおいて、特定のユーザに細かな印刷情報を伝えることができる印刷システム、サーバ、情報処理装置、印刷制御方法および記憶媒体を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明の一態様に係る印刷管理装置は以下のような構成を備える。即ち、
複数の情報処理装置及び印刷装置にネットワークを介して通信可能な印刷管理装置であって、
前記印刷装置の状態情報を取得する情報取得手段と、
前記情報取得手段により取得された前記印刷装置の状態情報が印刷一時停止状態である場合に、前記複数の情報処理装置から前記印刷装置への印刷要求に係る前記情報処理装置のＩＰアドレスとジョブ名を含むジョブ情報を前記印刷装置から取得し、前記印刷装置の状態情報を通知する情報処理装置を決定する決定手段と、
前記決定手段により決定された情報処理装置に前記印刷装置が印刷一時停止状態であることを通知する通知手段と、
を備える。
【００１２】
本発明の一態様に係る印刷管理装置は以下のような構成を備える。即ち、
情報処理装置から受信した手差しコマンドを含むジョブを印刷装置へ送信する送信手段と、
前記印刷装置が印刷一時停止状態になった場合に、前記印刷装置から前記情報処理装置のＩＰアドレスと前記ジョブのジョブ名を含むジョブ情報を取得する取得手段と、
前記取得手段により取得した前記印刷装置の前記ジョブ情報に基づき前記情報処理装置に前記印刷装置の一時停止状態を通知する通知手段とを有する。
【００１３】
本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
手差しコマンドを含むジョブを印刷管理装置へ送信する送信手段と、
印刷管理装置からの通知を受信する受信手段とを有し、
前記印刷管理装置は、印刷装置が印刷一時停止状態になった場合に、前記印刷装置のジョブ情報を取得し、取得した印刷装置のジョブ情報に基づいて前記情報処理装置に前記印刷装置の一時停止状態を前記受信手段に通知し、
前記受信手段が前記印刷管理装置から受信する通知は、前記印刷管理装置が前記印刷装置から取得したジョブ情報に含まれるＩＰアドレスの情報処理装置に対する、前記取得したジョブ情報に含まれるジョブ名の通知であることを特徴とする情報処理装置。
【００１６】
本発明の一態様に係る印刷管理装置の制御方法は以下のような構成を備える。即ち、
複数の情報処理装置及び印刷装置にネットワークを介して通信可能な印刷管理装置の制御方法であって、
前記印刷装置の状態情報を取得する情報取得工程と、
前記情報取得工程により取得された前記印刷装置の状態情報が印刷一時停止状態である場合に、前記複数の情報処理装置から前記印刷装置への印刷要求に係る前記情報処理装置のＩＰアドレスとジョブ名を含むジョブ情報を前記印刷装置から取得し、前記印刷装置の状態情報を通知する情報処理装置を決定する決定工程と、
前記決定工程により決定された情報処理装置に前記印刷装置が印刷一時停止状態であることを通知する通知工程と、
を備える。
【００１７】
本発明の一態様に係る印刷管理装置の制御方法は以下のような構成を備える。即ち、
情報処理装置から受信した手差しコマンドを含むジョブを印刷装置へ送信する送信工程と、
前記印刷装置が印刷一時停止状態になった場合に、前記印刷装置から前記情報処理装置のＩＰアドレスと前記ジョブのジョブ名を含むジョブ情報を取得する取得工程と、
前記取得工程により取得した前記印刷装置の前記ジョブ情報に基づき前記情報処理装置に前記印刷装置の一時停止状態を通知する通知工程とを有する。
【００１８】
本発明の一態様に係る情報処理装置の制御方法は以下のような構成を備える。即ち、
手差しコマンドを含むジョブを印刷管理装置へ送信する送信工程と、
印刷管理装置からの通知を受信する受信工程とを有し、
前記印刷管理装置は、印刷装置が印刷一時停止状態になった場合に、前記印刷装置のジョブ情報を取得し、取得した印刷装置のジョブ情報に基づいて前記情報処理装置に前記印刷装置の一時停止状態を前記受信工程に通知し、
前記受信工程が前記印刷管理装置から受信する通知は、前記印刷管理装置が前記印刷装置から取得したジョブ情報に含まれるＩＰアドレスの情報処理装置に対する、前記取得したジョブ情報に含まれるジョブ名の通知である。
【００８９】
【発明の実施の形態】
＜実施形態１＞
本発明の印刷システム、印刷方法および記憶媒体の一実施形態を次に説明する。本実施形態の印刷システムはネットワークプリントシステムに適用される。
【００９０】
図１は仮想サーバを適用するネットワークプリントシステムの構成を示す図である。このネットワークプリントシステムでは、クライアントコンピュータがｎ台接続されることを想定しているが、図１には３台接続されている状態が示されている。図において、１０２、１０３、１０４はクライアントコンピュータ（単にクライアントともいう）であり、ネットワークケーブルによりネットワーク１０６に接続されている。
【００９１】
クライアントコンピュータ１０２、１０３、１０４は、アプリケーションプログラム等の各種プログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を持つプリンタドライバを搭載している。このプリンタドライバは複数のプリンタ言語をサポートする。
【００９２】
１０１はサーバであり、ネットワークケーブルによってネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視する。
【００９３】
サーバ１０１は、さらにクライアントコンピュータ（ＰＣ）１０２、１０３、１０４から印刷要求が出された印刷データのジョブ情報を格納したり、ネットワークプリンタ１０５のＩＰ（Internet Protocol）情報やバッファに受信したジョブ情報をクライアントコンピュータに通知する機能を備えている。
【００９４】
１０５はネットワークプリンタであり、ネットワークインタフェースを介してネットワーク１０６に接続されており、クライアントコンピュータから送信される印刷データを１ページずつドットイメージに変換してページ単位に印刷する。１０６はクライアントコンピュータ１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等が接続されたネットワークである。
【００９５】
このように、サーバ１０１、クライアントコンピュータ１０２、１０３、１０４、ネットワークプリンタ１０５により役割を分担することで、クライアントコンピュータの有効利用、ネットワークの負担を軽減する処理を行う。
【００９６】
図２はクライアントコンピュータ１０２の構成を概略的に示すブロック図である。尚、クライアントコンピュータ１０３、１０４の構成はクライアントコンピュータ１０２と同じ構成である。
【００９７】
ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、オペレーティングシステム（ＯＳ）やネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイルなどを一時的に格納する制御を行う。
【００９８】
ＲＯＭ２０１には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データが記憶されている。２０２はＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００９９】
２０３はＦＤ（フロッピーディスク）ドライブであり、ＦＤドライブ２０３を通じてＦＤ２０４に記憶されたプログラム等がコンピュータシステムにロードされる。図３はコンピュータシステムにフロッピーディスクに記憶されたプログラムをロードする様子を示す図である。
【０１００】
２０４はＦＤであり、本実施形態におけるネットワークプリンタ制御プログラムおよび関連データを格納する。図４はフロッピーディスク２０４に記憶されている内容を示す図である。図において、４００はＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３はネットワークプリンタ制御プログラム、４０４はその関連データである。ネットワークプリンタ制御プログラム４０３は、後述するネットワークプリンタ制御処理手順のフローチャートに基づいてプログラムコード化されたものである。
【０１０１】
２０５はＨＤであり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。２０６はキーボードであり、ユーザがクライアントコンピュータに対してデバイスの制御コマンドの命令等を入力して指示するために使用される。２０７はディスプレイであり、キーボード２０６から入力したコマンドやプリンタの状態等を表示する。２０８はシステムバスであり、クライアントコンピュータ内のデータの流れを司る。
【０１０２】
図５はネットワークプリンタ制御プログラムがＲＡＭ２０２にロードされて実行可能となった状態のメモリマップを示す図である。本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラム及び関連データを直接ＲＡＭ２０２にロードして実行する命令を示すが、この他にＦＤ２０４からネットワーク制御プログラムを動作させる度にＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。また、ネットワークプリンタ制御プログラムを格納する記憶媒体としては、ＦＤ以外に光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、磁気テープ、不揮発性のメモリカード、ＩＣメモリーカード等であってもよい。さらに、ネットワークプリンタ制御プログラムをＲＯＭ２０１に記録しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【０１０３】
図において、３００はＲＡＭ２０２のメモリマップを示す。３０１は基本Ｉ／Ｏプログラムであり、コンピュータの電源がＯＮとなったときにＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローティング）機能等を有するプログラムを含む。３０２はＯＳであり、３０３はネットワークプリンタ制御プログラムである。３０４は展開される関連データであり、３０５はＣＰＵ２００がネットワークプリンタ制御プログラムを実行するワークエリアである。
【０１０４】
図６はネットワークプリンタ１０５の概略的構成を示すブロック図である。本実施形態ではネットワークプリンタとしてレーザビームプリンタ（ＬＢＰ）が採用されているが、これに限られるものではなく、他の方式のプリンタでもよいことは言うまでもない。
【０１０５】
図において、６０１は装置全体を制御するＣＰＵである。６０２はＲＯＭおよびＲＡＭからなるメモリ（ＲＯＭ／ＲＡＭ）であり、ＣＰＵ６０１によって実行される制御プログラム、定数データ、送受信データを一時記憶するバッファを含む。６０３は記憶部であり、例えばハードディスクのような送受信するデータやＣＰＵ６０１で実行する制御プログラムやデータを記憶する。
【０１０６】
６０４は表示部であり、ＲＯＭ／ＲＡＭ６０２に一時記憶されているデータ、記憶部６０３に記憶されているデータの内容、および操作状況などを表示する。６０５はプリンタ印刷部であり、ＲＯＭ／ＲＡＭ６０２に記憶されているプログラムに基づいてＣＰＵ６０１で生成したビットマップデータを印刷出力する。６０６はネットワークボードであり、クライアントコンピュータやサーバ等の外部装置と印刷データやジョブ情報等のデータ情報の通信を行う。６０７は通信回路であり、ネットワークボード６０６とネットワークを繋ぐ。
【０１０７】
図７はクライアントコンピュータおよびサーバのソフトウェアモジュールの構成を示す図である。これらのソフトウェアモジュールは、ＦＤ等から供給される。図には前述したネットワークプリンタ１０５、クライアントコンピュータ１０２のソフトウェアモジュールの構成、サーバ１０１のソフトウェアモジュールの構成が示されている。尚、クライアントコンピュータ１０３、１０４のソフトウェアモジュールの構成もクライアントコンピュータ１０２のソフトウェアモジュール構成と同じである。
【０１０８】
７０４はネットワークプリントシステムに印刷指示を出力するアプリケーションモジュールである。７０５はＷｉｎｄｏｗｓ（登録商標）のＧＤＩ（Graphical device interface）、７０６はＷｉｎｄｏｗｓ内に組み込まれるプリンタドライバ、７０７はＷｉｎｄｏｗｓ内のプリンタスプーラ（Ｗｉｎｄｏｗｓスプーラ）である。７０８は仮想プリントサーバ用プリントモニタ、７０９はネットワークプリンタ制御モニタ、７１０は仮想プリントマネージャ、７１１は仮想プリントサーバＡＰＩ（Application interface）、７１２は仮想プリントサーバサービスである。
【０１０９】
これらのソフトウェアモジュールは仮想プリントサーバのシステムを構成するものであり、本実施形態では記憶媒体であるＦＤ２０４から供給される。仮想プリントマネージャ７１０、仮想プリントサーバＡＰＩ７１１、仮想プリントサーバサービス７１２は、クライアントコンピュータとサーバの両方に存在する。以後、仮想プリントサーバサービス７１２を構成している仮想プリントサーバサービス（クライアント）７１２ａと仮想プリントサーバサービス（サーバ）７１２ｂを合わせたものを仮想プリントサーバと呼び、このシステムを仮想プリントサーバシステムと呼ぶ。
【０１１０】
つぎに、クライアントＰＣ１０２からネットワークプリンタ１０５に印刷を行わせる動作について説明する。本実施形態では、Ｗｉｎｄｏｗｓを例にとって示す。図８はクライアントＰＣからサーバに印刷要求を行う印刷処理の流れを示す図である。図９はサーバからクライアントＰＣに印刷可能許可を与えてプリンタに印刷データの送信を行う印刷処理の流れを示す図である。
【０１１１】
クライアントＰＣ１０２上にあるアプリケーション７０４はＧＤＩ７０５を通じて印刷を開始する。ＧＤＩ７０５はＷｉｎｄｏｗｓスプーラ７０７および仮想プリントサーバ用プリントモニタ７０８に印刷の開始を通知する。印刷の開始を受け取った仮想プリントサーバ用プリントモニタ７０８は、仮想プリントサーバサービス（クライアント）７１２ａを経由してサーバ１０１上にある仮想プリントサーバサービス（サーバ）７１２ｂに印刷データの保存の開始を依頼する。
【０１１２】
ＧＤＩ７０５はプリンタドライバ７０６に印刷データをプリンタ言語に変換することを要求する。プリンタ言語に変換されたプリントデータはＷｉｎｄｏｗｓスプーラ７０７によってスプールされる。一方、仮想プリントサーバ用プリントモニタ７０８は、Ｗｉｎｄｏｗｓスプーラ７０７にスプールされたプリントデータをＷｉｎｄｏｗｓスプーラ７０７から受け取り、そのプリントデータを仮想プリントサーバサービス（クライアント）７１２ａに渡す。仮想プリントサーバサービス（クライアント）７１２ａは受け取ったプリントデータをＨＤ２０５内の仮想プリントスプーラ８０１にあるテンポラリファイル（図示せず）に一時保存する。
【０１１３】
すべてのプリントデータをＨＤ２０５内の仮想プリントスプーラ８０１内のテンポラリファイルに保存した時点で、仮想プリントサーバサービス（クライアント）７１２ａは、サーバ１０１上にある仮想プリントサーバサービス（サーバ）７１２ｂにプリントデータの保存終了を通知し、印刷を依頼する。ここで、仮想プリントサーバサービス７１２は、クライアントＰＣとサーバとで同じモジュールを使用しており、設定によりクライアント用とサーバ用とに使い分け可能である。つまり、プリントサーバ専用機である必要はなく、クライアントコンピュータにおいてサーバ用の仮想プリントサーバサービス（サーバ）として使用してもよい。また、どのコンピュータををサーバ用に使用するかは、あらかじめ決めておいてもよいし、起動したクライアント順にサーバになる優先権を与えるようにしてもよい。また、サーバ用になったクライアントコンピュータも、クライアントとして印刷データを作成しても構わない。
【０１１４】
先に仮想プリントサーバサービス７１２に登録された印刷ジョブがサーバの管理を経て印刷を行う順番になっており、実際にネットワークプリンタ１０５にプリントデータを送信するまでの動作が図９に示されている。
【０１１５】
仮想プリントサーバサービス（サーバ）７１２ｂは、印刷の順番になったクライアントＰＣに印刷可能の指示（送出可能情報）を出す。その指示を受け取った仮想プリントサーバサービス（クライアント）７１２ａは、前述したように一時的に仮想プリントスプーラ８０１に保存したプリントデータを読み出し、ネットワークプリンタ用制御モニタ７０９に渡す。ネットワークプリンタ用制御モニタ７０９は印刷通信プロトコルを通じてネットワークプリンタ１０５にプリントデータを渡し、ネットワークプリンタ１０５で印刷を行わせる。
【０１１６】
つづいて、ネットワークプリンタ１０５のステータスをクライアントＰＣに通知する動作について説明する。本実施形態では、Ｗｉｎｄｏｗｓを例にとって示す。図１０はプリンタステータスの流れを示す図である。
【０１１７】
仮想プリントサーバサービス（サーバ）７１２ｂは、本実施形態では５秒間隔（デフォルト）でＳＮＭＰ（Simple Network Management Protocol）マネージャ１００２にネットワークプリンタ１０５のステータスの収集を依頼する。ＳＮＭＰマネージャ１００２は、ステータス収集要求をネットワークプリンタ１０５に依頼する。ネットワークプリンタ１０５は、現在のプリンタステータスを返す。
【０１１８】
仮想プリントサーバサービス（サーバ）７１２ｂは、ネットワークプリンタ１０５のステータスが変化した場合、このネットワークプリンタ１０５を使用しているクライアントＰＣに対してステータスの変更通知を行う。サーバ１０１から出されたプリンタステータスの変更通知はクライアントＰＣ内の仮想プリントサーバサービス（クライアント）７１２ａが受け取り、クライアントＰＣ内のＲＡＭ２０２に確保されたレジストリ１００１にプリンタステータスを保存する。
【０１１９】
アプリケーション７０４は、仮想プリントサーバＡＰＩ７１１を経由してレジストリ１００１に保存されているプリンタステータスを取得することができる。このようにして仮想プリントサーバシステムは印刷の処理を行う。
【０１２０】
本実施形態ではＷｉｎｄｏｗｓＮＴが用いられているが、プリントモニタ７０８、仮想プリントスプーラ８０１、仮想プリントサーバサービス（クライアント／サーバ）７１２、ネットワークプリンタ制御モニタ７０９は本実施形態で新たに作成されたモジュールであり、それ以外のモジュールはＷｉｎｄｏｗｓＮＴ標準のモジュールである。尚、ＷｉｎｄｏｗｓＮＴに限られるものではなく、ＯＳ／２等の他のＯＳでも構築可能である。
【０１２１】
つぎに、仮想プリントサーバ用プリントモニタ７０８の仮想サーバを用いた印刷機能において、仮想プリントサーバサービス（クライアント）７１２ａがアプリケーション７０４から手差し指定印刷ジョブを受け付けた場合、プリンタ１０５に手差し指定を指示するコマンドを印刷ジョブに付加することによってプリンタ１０５がそのジョブを受け付けた時にオフライン状態に移行する処理手順について示す。
【０１２２】
また、仮想プリントサーバサービス（サーバ）７１２ｂはプリンタ１０５のオフラインの状態を取得した場合、仮想プリントサーバサービス（クライアント）７１２ａに通知し、その通知を受け付けた仮想プリントサーバサービス（クライアント）７１２ａはユーザに手差しを行うタイミングを通知するダイアログを表示し、アプリケーション７０４に手差しタイミングのイベント通知を行う。
【０１２３】
図１１は仮想サーバシステムのクライアントプログラムで手差し指定印刷ジョブを受け付けた時にプリンタに手差し指定を指示するコマンドを印刷ジョブに付加する処理手順を示すフローチャートである。
【０１２４】
まず、仮想サーバシステムのクライアントプログラムでは、印刷ジョブをＯＳのプリントシステムから受け付ける（ステップＳ１１０１）。ＯＳのジョブ情報より手差し指定印刷の指示がなされているか否かを判別する（ステップＳ１１０２）。手差し指定印刷の指示がなされている場合、印刷ジョブの印刷データのヘッダ部に手差し指定印刷のコマンドを付加する（ステップＳ１１０３）。
【０１２５】
図１２は手差し指定印刷のコマンドの内容を示す図である。このコマンドには、プリンタが手差し指定印刷のジョブを印刷しようとした時にプリンタのパネルに表示するメッセージの内容がパラメータとして付加されており、クライアントのＩＰアドレス、ジョブ名が記述されている。
【０１２６】
仮想サーバシステムの印刷シーケンスによって印刷ジョブをプリンタに転送し（ステップＳ１１０４）、処理を終了する。ステップＳ１１０４における印刷ジョブの処理の詳細については後述する。一方、ステップＳ１１０２でＯＳのジョブ情報より手差し指定印刷の指示がなされていない場合、ステップＳ１１０４に移行し、仮想サーバシステムの印刷シーケンスによって印刷ジョブをプリンタに転送する。
【０１２７】
図１３、図１４、図１５および図１６はプリントモニタ７０８の仮想サーバを用いた印刷機能における印刷シーケンスを表すフローチャートである。まず、Ｗｉｎｄｏｗｓスプーラ７０７から印刷開始要求であるＡＰＩ（Aplication Interface）ＳｔａｒｔＤｏｃＰｏｒｔ（）を受け付ける（ステップＳ１３０１）。登録ジョブ情報キューテーブルを作成し（ステップＳ１３０２）、ステップＳ１３０１のＳｔａｒｔＤｏｃＰｏｒｔ（）で与えられたジョブＩＤをセットする。図１７は登録ジョブ情報キューテーブルを示す図である。
【０１２８】
そして、キューイングテーブルにリンクする（ステップＳ１３０３）。プリントモニタ７０８は仮想プリントサーバのＡＰＩであるＶＰＳＯｐｅｎＰｒｉｎｔｅｒ（）をコールして仮想プリントサーバが管理するプリンタをオープンにする（ステップＳ１３０４）。ＶＰＳＯｐｅｎＰｒｉｎｔｅｒ（）がエラーであるか否かを判別する（ステップＳ１３０５）。
【０１２９】
正常である場合、仮想プリントサーバのＡＰＩであるＶＰＳＧｅｔＰｒｉｎｔｅｒ（）をコールし、ネットワークプリンタ１０５の実際のポート名を取得する（ステップＳ１３０６）。対応する登録ジョブ情報キューテーブル（図１７参照）にポート名をセットする（ステップＳ１３０７）。
【０１３０】
仮想プリントサーバが管理するプリントジョブＩＤを取得する仮想プリントサーバのＡＰＩであるＶＰＳＧｅｔＪｏｂＩｄ（）をコールする（ステップＳ１３０８）。ＶＰＳＧｅｔＪｏｂＩｄ（）関数がエラーであるか否かを判別し（ステップＳ１３０９）、正常である場合、ステップＳ１３１０に移行する。取得した仮想サーバのジョブＩＤを対応する登録ジョブ情報キューテーブルにセットする（ステップＳ１３１０）。
【０１３１】
Ｗｉｎｄｏｗｓスプーラ７０７からプリントデータを書き込むＡＰＩＷｉｒｔｅＰｏｒｔ（）を受け付ける（ステップＳ１３１１）。そして、１度目のＷｒｉｔｅＰｏｒｔ（）であるか否かを判別し（ステップＳ１３１２）、１度目のＷｒｉｔｅＰｏｒｔ（）である場合、テンポラリファイルを作成する（ステップＳ１３１３）。
【０１３２】
テンポラリファイルにプリントデータの書き込みを行う（ステップＳ１３１４）。Ｗｉｎｄｏｗｓスプーラ７０７から要求される関数がＷｒｉｔｅＰｏｒｔ（）であるかあるいはＥｎｄＤｏｃＰｏｒｔ（）であるかを判別し（ステップＳ１３１５）、ＷｒｉｔｅＰｏｒｔ（）である場合、ステップＳ１３１１に処理を移行し、ＥｎｄＤｏｃＰｏｒｔ（）である場合、ステップＳ１３１６に処理を移行する。
【０１３３】
テンポラリファイルのクローズ処理を行い（ステップＳ１３１６）、対応する登録ジョブ情報キュー（図１７参照）にテンポラリファイルのパス名をセットする（ステップＳ１３１７）。
【０１３４】
そして、サーバエラーフラグがＯＮ状態であるか否かを判別する（ステップＳ１３１８）。図１８はサーバエラーフラグの内容を示す図である。ＯＦＦ状態である場合、仮想プリントサーバＡＰＩであるＶＰＳＳｅｔＪｏｂ（）をコールし、プリントモニタ７０８が管理するジョブ情報を仮想プリントサーバに登録する（ステップＳ１３１９）。ＶＰＳＳｅｔＪｏｂ（）関数がエラーであるか否かを判別し（ステップＳ１３２０）、正常終了である場合、仮想プリントサーバのＡＰＩであるＶＰＳＷａｉｔＪｏｂ（）をコールし、指定したプリントジョブが印刷可能になれば印刷可能を発行してもらう要求を行い、印刷可能指示を待機する（ステップＳ１３２１）。指定した時間が経過した場合、タイムアップ通知がくるタイマ関数をコールし、サーバからある一定以上の時間が超えた場合にサーバからの印刷指示を待たないで印刷処理を行う時間をタイムアップ値（図１８参照）から取得し、タイマーをセットする（ステップＳ１３２２）。
【０１３５】
ＶＰＳＷａｉｔＪｏｂ（）関数が正常であるか否かを判別し（ステップＳ１３２３）、正常である場合、ステップＳ１３２４の処理に移行する。印刷可能指示かタイムアップが来るのを待機し（ステップＳ１３２４）、印刷可能指示が来た場合、ステップＳ１３２５の処理に移行する。
【０１３６】
サーバエラーフラグ（図１８参照）がＯＮであるか否かを判別し（ステップＳ１３２５）、ＯＦＦ状態である場合、印刷可能指示で指定されたジョブＩＤに対応する登録ジョブ情報キューから対応するキューテーブルを取得し、そのポート名からネットワークＩＰを取得し、ネットワークプリンタ１０５に対して印刷処理を行う（ステップＳ１３２６）。
【０１３７】
印刷処理が終了すると、サーバエラーフラグ（図１８参照）がＯＮであるか否かを判別し（ステップＳ１３２７）、ＯＦＦ状態である場合、仮想プリントサーバに対してＶＰＳＳｅｔＪｏｂ（）をコールし、対応するジョブの削除要求を指示し、ジョブが終了したことを通知する（ステップＳ１３２８）。具体的には、サーバ内に格納されている対応するジョブ情報とクライアント内の印刷データを削除する。
【０１３８】
ステップＳ１３０４でオープンしたプリンタをＶＰＳＰｒｉｎｔｅｒＣｌｏｓｅ（）をコールし、クローズする（ステップＳ１３２９）。
【０１３９】
対応する登録ジョブ情報キューテーブル（図１７参照）を削除し（ステップＳ１３３０）、サーバエラーフラグ（図１８参照）をクリアし（ステップＳ１３３１）、処理を終了する。
【０１４０】
一方、ステップＳ１３０５でＶＰＳＯｐｅｎＰｒｉｎｔｅｒ（）がエラーである場合、サーバエラーフラグ（図１８参照）をＯＮにし（ステップＳ１３３２）、ステップＳ１３１１の処理に移行する。
【０１４１】
また一方、ステップＳ１３０９でＶＰＳＧｅｔＪｏｂｌｄ（）関数がエラーである場合、ステップＳ１３３３の処理に移行する。ステップＳ１３０４でオープンしたプリンタをＶＰＳＰｒｉｎｔｅｒＣｌｏｓｅ（）をコールしてクローズする（ステップＳ１３３３）。
【０１４２】
サーバエラーフラグ（図１８参照）をＯＮにし（ステップＳ１３３２）、ステップＳ１３１１の処理に移行する。
【０１４３】
また一方、ステップＳ１３１８でサーバエラーフラグ（図１８参照）がＯＮ状態である場合、デフォルトプリンタのＩＰアドレスを、登録ジョブ情報キューの対応するキューテーブルのポート名にセットする（ステップＳ１３３９）。そして、ステップＳ１３２６の処理に移行する。
【０１４４】
また一方、ステップＳ１３２０でＶＰＳＳｅｔＪｏｂ（）関数がエラー終了である場合、サーバエラーフラグ（図１８参照）をＯＮにし（ステップＳ１３３４）、ステップＳ１３３５の処理に移行する。ステップＳ１３３５の処理では、ステップＳ１３０４でオープンしたプリンタをＶＰＳＰｒｉｎｔｅｒＣｌｏｓｅ（）をコールし、クローズする。この後、ステップＳ１３２５の処理に移行する。
【０１４５】
また一方、ステップＳ１３２３でＶＰＳＷａｉｔＪｏｂ（）関数が異常である場合、ステップＳ１３３６の処理に移行する。ステップＳ１３３６の処理では、仮想プリントサーバに対してＶＰＳＳｅｔＪｏｂ（）をコールし、対応するジョブの削除要求を指示し、ジョブが終了したことを通知する。そして、ステッブＳ１３０４でオープンしたプリンタをＶＰＳＰｒｉｎｔｅｒＣｌｏｓｅ（）をコールし、クローズする（ステップＳ１３３７）。サーバエラーフラグ（図１８参照）をＯＮにし（ステップＳ１３３８）、ステップＳ１３２５の処理に移行する。
【０１４６】
また一方、ステップＳ１３２５でサーバエラーフラグ（図１８参照）がＯＮ状態である場合、デフォルトプリンタのＩＰアドレスを、登録ジョブ情報キューの対応するキューテーブルのポート名にセットする（ステップＳ１３３９）。そして、ステップＳ１３２６の処理に移行する。
【０１４７】
また一方、ステップＳ１３２７でサーバエラーフラグ（図１８参照）がＯＮ状態である場合、ステップＳ１３３０の処理に移行する。
【０１４８】
図１９は手差しコマンドが付加されたジョブをプリンタが受け付けた場合の処理手順を示すフローチャートである。プリンタがジョブを受け付けると（ステップＳ１６０１）、ジョブの印刷データのヘッダ部を解析する（ステップＳ１６０２）。手差しコマンドが指定されているか否かを判別する（ステップＳ１６０３）。手差しコマンドが指定されている場合、手差しコマンドに指定されているメッセージをプリンタのパネルに表示する（ステップＳ１６０４）。
【０１４９】
このメッセージにはクライアントのＩＰアドレス、ジョブ名が記述されている。プリンタをオフライン状態にしてユーザが手差しの紙をセットするタイミングを与える（ステップＳ１６０５）。プリンタ内部のジョブ情報テーブルにジョブ名と排紙したページ数をセットする（ステップＳ１６０６）。この場合、排紙前にオフラインとしたために、ページは値０にセットされる。図２０はプリンタ内部のジョブ情報テーブルを示す図である。このテーブルは仮想サーバシステムのサーバプログラムがＳＮＭＰ（Simple Network Management Protocol）を使用して参照することが可能である。
【０１５０】
ユーザが手差し用の紙を手差しトレーにセットし、プリンタのオフラインの状態を解除したか否かを判別する（ステップＳ１６０７）。オフラインが解除されると、印刷を行う（ステップＳ１６０８）。
【０１５１】
一方、ステップＳ１６０３で手差しコマンドが指定されていない場合、ステップＳ１６０８で印刷を開始する。また一方、ステップＳ１６０７でプリンタのオフラインの状態を解除されない場合、解除されるまで待機する。
【０１５２】
図２１は仮想サーバシステムのサーバプログラムでＳＮＭＰによりプリンタのジョブ情報テーブルを参照し、手差し指定印刷のジョブを検知した場合、クライアントに通知する処理のプロトコルを示すフローチャートである。
【０１５３】
まず、ＳＮＭＰによりプリンタの状態を取得する（ステップＳ１８０１）。プリンタの状態がオフラインか否かを判別する（ステップＳ１８０２）。プリンタの状態がオフラインである場合、ＳＮＭＰによりプリンタのジョブ情報テーブルの内容とプリンタのパネルメッセージの内容を取得する（ステップＳ１８０３）。パネルメッセージのパラメータで指定されているＩＰアドレスのクライアントに対し、ジョブ名とページ数をパラメータとしたオフラインＮｏｔｉｆｙコマンドを通知し（ステップＳ１８０４）、処理を終了する。
【０１５４】
図２２は仮想サーバのクライアントシステムプログラムでサーバプログラムからのオフラインＮｏｔｉｆｙの通知を受け付けた場合、対応するユーザにダイアログによって手差しのタイミングを通知するダイアログを表示し、ワードプロセッサアプリケーションに手差しタイミングのイベント通知を行う処理手順を示すフローチャートである。
【０１５５】
まず、サーバからのＮｏｔｉｆｙを受け付ける（ステップＳ１９０１）。サーバからのＮｏｔｉｆｙがオフラインＮｏｔｉｆｙであるか否かを判別し（ステップＳ１９０２）、オフラインＮｏｔｉｆｙである場合、オフラインＮｏｔｉｆｙのパラメータからジョブ名とページ数を取得する（ステップＳ１９０３）。ページ数が値０である場合、ダイアログリソースにジョブ名をセットしてダイアログ表示を行う（ステップＳ１９０４）。図２３はダイアログ表示を示す図である。
【０１５６】
アプリケーションから手差しタイミングを通知するイベント通知要求が来ているか否かを判別する（ステップＳ１９０５）。要求されている場合、そのアプリケーションに対してイベントの通知を行い、ジョブ名を通知し（ステップＳ１９０６）、処理を終了する。
【０１５７】
このように、本実施形態のネットワークプリントシステムでは、仮想サーバシステムはプリンタのジョブ情報からユーザへの手差し指定のタイミングを認識し、クライアントマシンでダイアログでユーザに手差しのタイミングを通知することができる。また、仮想サーバシステムは、プリンタのジョブ情報からユーザへの手差し指示のタイミングを認識し、クライアントマシンで手差し指定印刷のイベント通知を待っているアプリケーションがある場合、手差し指定のタイミングのイベントを通知することができる。
【０１５８】
＜実施形態２＞
次に、本発明の他の実施形態として実施形態２を示す。
【０１５９】
実施形態２は、図７と同様のソフトウェアモジュール構成をとるものとし、実施形態１と異なる所について次に述べる。
【０１６０】
本発明の実施形態１では、図１１に示したように、クライアントプログラムで手差し指定印刷ジョブを受け付けた時に、プリンタに手差し指定を指示するコマンドを印刷ジョブに付加し、更に、図１９に示したように、手差し指定を指示するコマンドを受け取ったプリンタは、常にオフライン状態になったが、実施形態２では、手差しコマンドが付加されたジョブをプリンタが受け付けた場合、図２４に示す処理を行う。
【０１６１】
図２４において、プリンタがジョブを受け付けると（ステップＳ２４０１）、ジョブの印刷データのヘッダ部を解析する（ステップＳ２４０２）。ステップＳ２４０３において、ヘッダ部に手差しコマンドが指定されているか否かを判別する。
【０１６２】
手差しコマンドが指定されていない場合、ステップＳ２４０９に進み印刷を開始する。
【０１６３】
一方、手差しコマンドが指定されている場合、ステップＳ２４０４に進んで手差しコマンドに指定されているメッセージをプリンタのパネルに表示し、ステップＳ２４０５に進む。このメッセージにはクライアントのＩＰアドレス、ジョブ名が記述されている。
【０１６４】
ステップ２４０５で、プリンタの手差しトレイに紙があるかどうか判断する。
【０１６５】
手差しトレイに紙がない場合は、ステップＳ２４０６に進み、プリンタをオフライン状態にしてユーザが手差しの紙をセットするタイミングを与える。ステップＳ２４０７においてプリンタ内部のジョブ情報テーブルにジョブ名と排紙したページ数をセットする。この場合、排紙前にオフラインとしたために、ページは値０にセットされる。このジョブ情報テーブルは仮想サーバシステムのサーバプログラムがＳＮＭＰ（Simple Network Management Protocol）を使用して参照することが可能である。
【０１６６】
ステップＳ２４０８においてユーザが手差し用の紙を手差しトレーにセットし、プリンタのオフラインの状態を解除したか否かを判別する。オフラインの状態が解除されると、ステップＳ２４０９に進み印刷を行う。一方、プリンタのオフラインの状態を解除されない場合、解除されるまで待機する。
【０１６７】
ステップ２４０５で手差しトレイに紙があると判断された場合は、ステップＳ２４１０に進み、その手差しトレイにある紙を使用するかどうか判断する。その手差しトレイにある紙を使用すると判断した場合は、その紙を給紙して印刷する。一方、その手差しトレイにある紙を使用しないと判断した場合は、ステップＳ２４０６に進みオフライン処理する。この判断は、あらかじめプリンタで手差しトレイにある紙を使用するかどうか選択しておくようにしてもよいし、クライアントコンピュータで手差し指定のコマンドを付加する際に手差しトレイにある紙を使用するかどうか指示するコマンドも付加して選択できるようにしてもよい。もしくは、新たにクライアントコンピュータに通知してユーザに手差しトレイにある紙を使用するかどうか選択させるようにしてもよい。
【０１６８】
このように、実施形態２のネットワークプリントシステムでは、プリンタが手差し指定印刷ジョブを受け付けた際に、プリンタの手差しトレイに紙がある場合はオフラインの状態にしない、つまり手差しのタイミングを通知せずに手差しトレイから給紙して印刷を行うかどうか選択できる場合の一実施形態について述べた。このような処理の選択方法を加えることでユーザの使用法に沿った使用ができるようになる。
【０１６９】
なお、実施形態２では、あらかじめ手差しトレイに紙があるとき、自動的に給紙して印刷するかどうか選択できる場合について述べたが、このような選択ができず手差しトレイに紙があるとき必ず自動的に給紙してしまうようなプリンタに対して印刷するときは、手差しトレイに紙がないときのみ、クライアントコンピュータに手差し通知を行うことになる。
【０１７０】
＜実施形態３＞
実施形態１及び２では、仮想プリントサーバを利用した場合の手差し通知について述べた。
【０１７１】
実施形態３では、仮想プリントサーバを利用しない場合の印刷システムにおいて図２５を参照して、手差し通知を行う一実施形態について述べる。
【０１７２】
実施形態３も、図１と同様の複数のクライアントとサーバとネットワークプリンタから成る印刷システムである。
【０１７３】
図２５は、実施形態３における印刷システムの印刷シーケンスを示したものである。
【０１７４】
ステップＳ２５０１では、クライアントにおいて、アプリケーションから受け付けた印刷ジョブに手差し指定があれば、印刷ジョブの印刷データのヘッダ部に手差し指定印刷のコマンドを付加する。具体的には図１１と同様のステップで手差しコマンドをセットする。
【０１７５】
ステップＳ２５０２で、クライアントからサーバに印刷ジョブ（ジョブ情報と印刷データ）を送信する。サーバは受信したジョブ情報と印刷データを格納する。
【０１７６】
なお、ステップＳ２５０３で、印刷ジョブを送信したクライアントは該印刷ジョブのジョブ情報を格納しておく。
【０１７７】
ステップＳ２５０４では、サーバにおいて印刷する順番が回ってきた印刷ジョブをプリンタに送信することが可能になったかどうか判断し、可能であれば印刷データをプリンタに送信する。
【０１７８】
ステップＳ２５０５では、プリンタは受信した印刷ジョブのヘッダを解析し、手差しコマンドがあればオフライン処理する。また、サーバはプリンタがオフラインの状態になればプリンタ内のジョブ情報テーブルの内容とプリンタのパネルメッセージの内容を取得して、パネルメッセージのパラメータで指定されているＩＰアドレスのクライアントに対し、ジョブ名とページ数をパラメータとしたオフラインＮｏｔｉｆｙコマンドを通知する。具体的には図２１と同様のステップでオフライン通知を行う。
【０１７９】
ステップＳ２５０６では、クライアントはオフラインＮｏｔｉｆｙコマンドを受け付けると、ジョブ名とページ数を取得し、ダイアログ表示及びイベント通知要求されているアプリケーションがあればイベント通知する。具体的には図２２と同様のステップでオフラインＮｏｔｉｆｙを受け付ける。
【０１８０】
ステップＳ２５０７では、プリンタはユーザによりオフライン解除されれば印刷処理を行う。ステップＳ２５０５とステップＳ２５０７のプリンタの動作は図１９と同様のステップで行われる。
【０１８１】
ステップＳ２５０８において、プリンタの印刷処理が終了した情報をサーバが取得すると、サーバの指示により、サーバ内のジョブ情報とクライアント内のジョブ情報を削除する。
【０１８２】
以上のような印刷シーケンスによりクライアントからプリンタもしくはサーバに問い合わせることなく、印刷ジョブを送信したクライアントに手差し通知を行うことが可能になる。
【０１８３】
本発明のサーバ装置によれば、印刷装置から取得した情報に基づいて、複数の情報処理装置の中から、前記印刷装置からの情報を通知したい情報処理装置にだけ選択して通知することが可能になる。
【０１８４】
本発明のサーバ装置によれば、印刷装置が受信した印刷データに関する情報及び印刷装置の状態情報に基づいて、通知したい情報処理装置を詳しく正確に決定することが可能になる。
【０１８５】
本発明のサーバ装置によれば、印刷装置の状態が変化し、オフラインの状態になったという情報を取得すると、前記印刷装置からの情報を通知するようになるので、情報処理装置はオフライン状態を知ることが可能になる。
【０１８６】
本発明のサーバ装置によれば、情報処理装置からジョブ情報を受信することで、そのジョブ情報と印刷装置からの情報から印刷データが送信可能かどうか正確に判断して、その印刷データを送出することが可能になる。
【０１８７】
本発明のサーバ装置によれば、受信したジョブ情報を格納し、印刷装置からの情報と共に使用することにより、受け付けた印刷ジョブの状態を正確に管理しておくことが可能となる。
【０１８８】
本発明のサーバ装置によれば、印刷が終了して不要になったサーバ装置内に格納されていたジョブ情報を削除することが可能になる。また、印刷終了時に削除することにより確実に印刷が行われることを確認することができる。
【０１８９】
本発明のサーバ装置によれば、情報処理装置から受信したジョブ情報により印刷する順序を制御することが可能になる。
【０１９０】
本発明のサーバ装置によれば、印刷装置から印刷が終了したジョブの情報を取得することにより、情報処理装置内に格納されている印刷データを削除することが可能になる。
【０１９１】
本発明の情報処理装置によれば、サーバ装置から通知された情報を受信することが可能になり、イベント要求がなされているアプリケーションに対してイベントを発行することが可能になる。
【０１９２】
本発明の情報処理装置によれば、手差しで印刷する印刷データを生成するときに該印刷データにオフライン状態にするコマンドを付加して送信することにより、手差し印刷をする前に印刷装置をオフラインの状態にして印刷を一時停止することが可能になる。
【０１９３】
本発明の情報処理装置によれば、オフライン状態にするコマンドが付加された印刷データを受け取ったときに、必ずオフラインの状態になる第１のモード、もしくは、手差しトレイに記録媒体がない場合はオフラインの状態になり手差しトレイに記録媒体がある場合はオフライン状態にならずに該記録媒体に記録する第２のモードを選択することが可能な印刷装置に対し、どちらのモードで印刷させるか選択するコマンドを付加して印刷データを送ることが可能になる。
【０１９４】
本発明の情報処理装置によれば、手差しのタイミングをユーザに示すことが可能になる。
【０１９５】
本発明の情報処理装置によれば、サーバ装置にはジョブ情報を送信するだけでよく、印刷データは直接印刷装置に送信するので、ネットワークのトラフィックを減少させることが可能になる。
【０１９６】
本発明の情報処理装置によれば、印刷が終了するまで印刷データを格納しておくことにより、印刷が確実に行われるようにすることが可能になる。
【０１９７】
本発明の印刷システムによれば、サーバ装置は印刷装置から取得した情報に基づいて、複数の情報処理装置の中から、前記印刷装置からの情報を通知したい情報処理装置にだけ通知でき、情報処理装置はその通知された情報を受信し、イベント要求がなされているアプリケーションに対してイベントを発行することが可能になる。
【０１９８】
本発明の印刷システムによれば、印刷装置が受信した印刷データに関する情報及び印刷装置の状態情報に基づいて、通知したい情報処理装置を詳しく正確に決定することが可能になる。
【０１９９】
本発明の印刷システムによれば、手差しのタイミングをユーザに示すことが可能になる。
【０２００】
本発明の印刷システムによれば、手差しで印刷する印刷データを生成するときに該印刷データにオフライン状態にするコマンドを付加して送信することにより、手差し印刷をする前に印刷装置をオフラインの状態にして印刷を一時停止することが可能になる。
【０２０１】
本発明の印刷システムによれば、オフラインの状態になるコマンドが付加された印刷データを印刷しようとしたときに、印刷装置の状態に関わらず必ずオフラインにすることが可能になる。
【０２０２】
本発明の印刷システムによれば、オフラインの状態になるコマンドが付加された印刷データを印刷しようとしたときに、手差しトレイに記録媒体がない場合はオフラインの状態になり、手差しトレイに記録媒体がある場合はオフライン状態にならずに該記録媒体に記録することが可能となる。
【０２０３】
本発明の印刷システムによれば、印刷装置がオフライン状態にするコマンドが付加された印刷データを受け取ったときに、必ずオフラインの状態になる第１のモードと、手差しトレイに記録媒体がない場合はオフラインの状態になり手差しトレイに記録媒体がある場合はオフライン状態にならずに該記録媒体に記録する第２のモードとを備える印刷装置に対し、どちらのモードで印刷させるかユーザの要望により選択することが可能になる。
【０２０４】
本発明の印刷システムによれば、印刷装置の状態が変化し、オフラインの状態になったという情報を取得すると、前記印刷装置からの情報を通知するようになるので、情報処理装置はオフライン状態を知ることができ手差しタイミングの情報を通知することが可能になる。
【０２０５】
本発明の印刷システムによれば、サーバ装置にはジョブ情報を送信するだけでよく、印刷データは直接印刷装置に送信するので、ネットワークのトラフィックを減少させることが可能になる。また、情報処理装置に印刷データ、サーバ装置にジョブ情報を格納して、印刷装置からの情報と共に使用することにより、受け付けた印刷ジョブの状態を正確に管理しておくことが可能となる。
【０２０６】
本発明の印刷システムによれば、サーバ装置が情報処理装置から受信したジョブ情報により印刷する順序を制御することが可能になる。
【０２０７】
本発明の印刷システムによれば、情報処理装置から受信したジョブ情報と印刷装置からの情報から印刷データが送信可能かどうか正確に判断して、その印刷データを送出することが可能になる。また、本発明の印刷システムによれば、印刷が終了するまで、サーバ装置にジョブ情報を格納し、情報処理装置に印刷データを格納しておくことにより、確実に印刷を行うことが可能になる。
【０２０８】
【発明の効果】
本発明によれば、ネットワーク環境下で、ユーザが手差し印刷を行う場合などにおいて、特定のユーザに細かな印刷情報を伝えることが可能となる。また、印刷ジョブに手差しコマンドあるいは印刷を一時停止状態にするオフラインコマンドを含めることで、印刷装置を一時停止状態にすることも可能である。また、どのクライアントコンピュータからの手差し印刷であるかの情報を得ることも可能である。また、クライアントコンピュータのアプリケーションが手差しのタイミングを示すイベント要求を受け取ることも可能である。
【図面の簡単な説明】
【図１】仮想サーバを適用するネットワークプリントシステムの構成を示す図である。
【図２】クライアントコンピュータ１０２の構成を概略的に示すブロック図である。
【図３】コンピュータシステムにフロッピーディスクに記憶されたプログラムをロードする様子を示す図である。
【図４】フロッピーディスク２０４に記憶されている内容を示す図である。
【図５】ネットワークプリンタ制御プログラムがＲＡＭ２０２にロードされて実行可能となった状態のメモリマップを示す図である。
【図６】ネットワークプリンタ１０５の概略的構成を示すブロック図である。
【図７】クライアントコンピュータおよびサーバのソフトウェアモジュールの構成を示す図である。
【図８】クライアントＰＣからサーバに印刷要求を行う印刷処理の流れを示す図である。
【図９】サーバからクライアントＰＣに印刷可能許可を与えてプリンタに印刷データの送信を行う印刷処理の流れを示す図である。
【図１０】プリンタステータスの流れを示す図である。
【図１１】仮想サーバシステムのクライアントプログラムで手差し指定印刷ジョブを受け付けた時にプリンタに手差し指定を指示するコマンドを印刷ジョブに付加する処理手順を示すフローチャートである。
【図１２】手差し指定印刷のコマンドの内容を示す図である。
【図１３】プリントモニタ７０８の仮想サーバを用いた印刷機能における印刷シーケンスを表すフローチャートである。
【図１４】図１３につづくプリントモニタ７０８の仮想サーバを用いた印刷機能における印刷シーケンスを表すフローチャートである。
【図１５】図１３および図１４につづくプリントモニタ７０８の仮想サーバを用いた印刷機能における印刷シーケンスを表すフローチャートである。
【図１６】図１３、図１４および図１５につづくプリントモニタ７０８の仮想サーバを用いた印刷機能における印刷シーケンスを表すフローチャートである。
【図１７】登録ジョブ情報キューテーブルを示す図である。
【図１８】サーバエラーフラグの内容を示す図である。
【図１９】手差しコマンドが付加されたジョブをプリンタが受け付けた場合の処理手順を示すフローチャートである。
【図２０】プリンタ内部のジョブ情報テーブルを示す図である。
【図２１】仮想サーバシステムのサーバプログラムでＳＮＭＰによりプリンタのジョブ情報テーブルを参照し、手差し指定印刷のジョブを検知した場合、クライアントに通知する処理のプロトコルを示すフローチャートである。
【図２２】仮想サーバのクライアントシステムプログラムでサーバプログラムからのオフラインＮｏｔｉｆｙの通知を受け付けた場合、対応するユーザにダイアログによって手差しのタイミングを通知するダイアログを表示し、ワードプロセッサアプリケーションに手差しタイミングのイベント通知を行う処理手順を示すフローチャートである。
【図２３】ダイアログ表示を示す図である。
【図２４】手差しトレイに記録媒体がない場合はオフラインの状態になり手差しトレイに記録媒体がある場合はオフライン状態にならずに該記録媒体に記録するプリンタが、手差しコマンドが付加されたジョブを受け付けた場合の処理手順を示すフローチャートである。
【図２５】仮想プリントサーバシステムを使用しない場合で、特定のクライアントに手差し通知を行う印刷シーケンスを示す図である。
【符号の説明】
１０１  サーバ
１０２、１０３、１０４  クライアントコンピュータ
１０５  ネットワークプリンタ
７０４  アプリケーション
７０８  プリントモニタ
７１２ａ、７１２ｂ  仮想プリントサーバサービス
【図１】
0004298034.tif 000002
【図２】
0004298034.tif 000003
【図３】
0004298034.tif 000004
【図４】
0004298034.tif 000005
【図５】
0004298034.tif 000006
【図６】
0004298034.tif 000007
【図７】
0004298034.tif 000008
【図８】
0004298034.tif 000009
【図９】
0004298034.tif 000010
【図１０】
0004298034.tif 000011
【図１１】
0004298034.tif 000012
【図１２】
0004298034.tif 000013
【図１３】
0004298034.tif 000014
【図１４】
0004298034.tif 000015
【図１５】
0004298034.tif 000016
【図１６】
0004298034.tif 000017
【図１７】
0004298034.tif 000018
【図１８】
0004298034.tif 000019
【図１９】
0004298034.tif 000020
【図２０】
0004298034.tif 000021
【図２１】
0004298034.tif 000022
【図２２】
0004298034.tif 000023
【図２３】
0004298034.tif 000024
【図２４】
0004298034.tif 000025
【図２５】
0004298034.tif 000026