(57)【特許請求の範囲】
【請求項１】
情報処理装置とネットワーク対応印刷装置とがネットワークを介して接続されるプリントシステムにおいて、
前記情報処理装置は、
前記ネットワークを介して前記ネットワーク対応印刷装置とのコネクションを確立し、前記ネットワーク対応印刷装置で印刷すべきプリントデータのサイズ情報をプリントデータより先に送信する送信制御手段と、
前記送信手段による前記ネットワーク対応印刷装置に対するプリントデータを送信中に、印刷中断要求を受けた場合に、当該送信中のプリントデータの送信を中止すべく、前記ネットワーク対応印刷装置とのコネクションを切断するためのコネクション切断コマンドを送信する切断制御手段とを有し、
前記ネットワーク対応印刷装置は、
前記ネットワークを介して、印刷すべきプリントデータのサイズ情報と、当該印刷すべきプリントデータとを順次受信する受信手段と、
前記受信手段によって受信されたプリントデータを格納する記憶手段と、
前記受信手段によって受信されたプリントデータのサイズを計算する計算手段と、
前記計算手段によって計算された前記プリントデータのサイズと前記受信手段によって受信した前記サイズ情報とを比較する比較手段と、
前記比較手段による比較結果によりサイズの一致が得られた場合に、印刷処理を開始する印刷制御手段と、
前記情報処理装置からネットワークのコネクション切断コマンドが送信されることで、コネクションが切断されているか判断するコネクション判断手段と、
前記記憶手段に格納されているデータを消去する消去手段と、
前記比較手段による比較結果によりサイズの一致が得られない間に、前記コネクション判断手段により前記ネットワークを介する前記情報処理装置とのコネクションが切断されたことを判断した場合に、前記記憶手段に格納されているプリントデータを前記消去手段によって消去するよう制御する消去制御手段と
を有することを特徴とするプリントシステム。
【請求項２】
前記プリントシステムには、前記ネットワークを介して更に、前記情報処理装置のプリントデータのジョブの印刷順序管理を行っているサーバ装置が接続されており、
前記情報処理装置は、
前記サーバ装置に、前記プリントデータのジョブ情報を送信するジョブ情報登録要求手段と、
前記ジョブ情報登録要求手段によりジョブ情報が送信された後も前記プリントデータを記憶手段にスプールしておくスプール手段とを更に備え、
前記サーバ装置は、
前記情報処理装置より受信するジョブ情報に基づいて、前記ネットワーク対応印刷装置におけるプリントデータの印刷順序を管理し、印刷順序になった前記ジョブ情報に関して、前記情報処理装置からネットワーク対応印刷装置に印刷データの送出が可能であることを示す送出可能情報を前記情報処理装置に送出する送出手段とを備え、
前記情報処理装置の送信制御手段は、前記サーバ装置から送信可能情報を受けた場合に、前記情報処理装置の記憶手段にスプールされているプリントデータを、前記サーバ装置を介することなく、前記ネットワーク対応印刷装置に送信することを特徴とする請求項１記載のプリントシステム。
【請求項３】
情報処理装置とネットワーク対応印刷装置とがネットワークを介して接続されるプリントシステムにおける印刷中断方法であって、
前記情報処理装置における工程として、
前記ネットワークを介して前記ネットワーク対応印刷装置とのコネクションを確立し、前記ネットワーク対応印刷装置で印刷すべきプリントデータのサイズ情報をプリントデータより先に送信する送信制御工程と、
前記送信手段による前記ネットワーク対応印刷装置に対するにプリントデータを送信中に、印刷中断要求を受けた場合に、当該送信中のプリントデータの送信を中止すべく、前記ネットワーク対応印刷装置とのコネクションを切断するためのコネクション切断コマンドを送信する切断制御工程とを含み、
前記ネットワーク対応印刷装置における工程として、
前記ネットワークを介して、印刷すべきプリントデータのサイズ情報と、当該印刷すべきプリントデータとを順次受信する受信工程と、
前記受信工程で受信されたプリントデータを記憶手段に格納する記憶工程と、
前記受信工程で受信されたプリントデータのサイズを計算する計算工程と、
前記計算工程で計算された前記プリントデータのサイズと前記受信工程で受信した前記サイズ情報とを比較する比較工程と、
前記比較工程による比較結果によりサイズの一致が得られた場合に、印刷処理を開始する印刷制御工程と、
前記情報処理装置からネットワークのコネクション切断コマンドが送信されることで、コネクションが切断されているか判断するコネクション判断工程と、
前記記憶手段に格納されているデータを消去する消去工程と、
前記比較手段による比較結果によりサイズの一致が得られない間に、前記コネクション判断手段により前記ネットワークを介する前記情報処理装置とのコネクションが切断されたことを判断した場合に、前記記憶手段に格納されているプリントデータを前記消去工程で消去するよう制御させる消去制御工程と
を含むことを特徴とする印刷中断方法。
【請求項４】
前記プリントシステムには、前記ネットワークを介して更に、前記情報処理装置のプリントデータのジョブの印刷順序管理を行っているサーバ装置が接続されており、
前記情報処理装置における工程として、
前記サーバ装置に、前記プリントデータのジョブ情報を送信するジョブ情報登録要求工程と、
前記ジョブ情報登録要求手段によりジョブ情報が送信された後も前記プリントデータを記憶手段にスプールしておくスプール工程とを更に含み、
前記サーバ装置における工程として、
前記情報処理装置より受信するジョブ情報に基づいて、前記ネットワーク対応印刷装置におけるプリントデータの印刷順序を管理し、印刷順序となった前記ジョブ情報に関して、前記情報処理装置からネットワーク対応印刷装置に印刷データの送出が可能であることを示す送出可能情報を前記情報処理装置に送出する送出工程とを含み、
前記情報処理装置の送信制御工程は、前記サーバ装置から送信可能情報を受けた場合に、前記情報処理装置の記憶手段にスプールされているプリントデータを、前記サーバ装置を介することなく、前記ネットワーク対応印刷装置に送信することを特徴とする請求項３記載の印刷中断方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＩＰＳ等のページ記述言語を使用するプリンタに対して、コンピュータから印刷データをネットワークを介して送信し、印刷を行う際、コンピュータからプリンタへ印刷データが送信されている最中に、送信を中断し、印刷処理を中断する方法および実現する装置およびシステムおよびプログラムを記憶した記憶媒体に関するものである。
【０００２】
【従来の技術】
従来、コンピュータの上で動作するWindows（登録商標）などのＯＳ（オペレーティングシステム）は、アプリケーションが作成した印刷データをプリンタ特有のプリンタ言語に変換した後、プリンタに送信する。もし印刷データの送信中にユーザから中断要求があった場合には、ＯＳはプリンタへの印刷データの送信をユーザから中断要求があった時点で中止する。しかしながら、コンピュータが印刷データの送信を中止しても、途中まで送信された印刷データはプリンタ内の受信バッファに受信されてしまう。更に、プリンタが次に受信した印刷データを、中断されたためページの途中までしか送られなかった印刷データの残りの印刷データとして処理してしまう。したがって、新たに別の印刷データをプリンタへ送信した場合、ページ記述言語を使用するプリンタにおいては、前回途中まで送られた印刷データに新しく送った印刷データがつながってしまい、文字化け等が発生して、正常な印刷を続けることができなかった。
【０００３】
【発明が解決しようとする課題】
本発明の目的は、このようにデータ送信中に中断要求があった場合にも、ユーザが次の印刷を行っても正常に印刷を続けることを可能にするような印刷中断方法および装置を提供することにある。
【０００４】
また、データ送信中に印刷装置と外部装置とのコネクションがなんらかの理由により切断され、正常にデータ送信がなされなかった場合に、ユーザが次の印刷を行っても正常に印刷を続けることを可能にする印刷中断方法および装置を提供することにある。
【０００６】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、情報処理装置とネットワーク対応印刷装置とがネットワークを介して接続されるプリントシステムにおいて、前記情報処理装置は、前記ネットワークを介して前記ネットワーク対応印刷装置とのコネクションを確立し、前記ネットワーク対応印刷装置で印刷すべきプリントデータのサイズ情報をプリントデータより先に送信する送信制御手段と、前記送信手段による前記ネットワーク対応印刷装置に対するプリントデータを送信中に、印刷中断要求を受けた場合に、当該送信中のプリントデータの送信を中止すべく、前記ネットワーク対応印刷装置とのコネクションを切断するためのコネクション切断コマンドを送信する切断制御手段とを有し、前記ネットワーク対応印刷装置は、前記ネットワークを介して、印刷すべきプリントデータのサイズ情報と、当該印刷すべきプリントデータとを順次受信する受信手段と、前記受信手段によって受信されたプリントデータを格納する記憶手段と、前記受信手段によって受信されたプリントデータのサイズを計算する計算手段と、前記計算手段によって計算された前記プリントデータのサイズと前記受信手段によって受信した前記サイズ情報とを比較する比較手段と、前記比較手段による比較結果によりサイズの一致が得られた場合に、印刷処理を開始する印刷制御手段と、前記情報処理装置からネットワークのコネクション切断コマンドが送信されることで、コネクションが切断されているか判断するコネクション判断手段と、前記記憶手段に格納されているデータを消去する消去手段と、前記比較手段による比較結果によりサイズの一致が得られない間に、前記コネクション判断手段により前記ネットワークを介する前記情報処理装置とのコネクションが切断されたことを判断した場合に、前記記憶手段に格納されているプリントデータを前記消去手段によって消去するよう制御する消去制御手段とを有することを特徴とする。
また、前記プリントシステムには、前記ネットワークを介して更に、前記情報処理装置のプリントデータのジョブの印刷順序管理を行っているサーバ装置が接続されており、
前記情報処理装置は、前記サーバ装置に、前記プリントデータのジョブ情報を送信するジョブ情報登録要求手段と、前記ジョブ情報登録要求手段によりジョブ情報が送信された後も前記プリントデータを記憶手段にスプールしておくスプール手段とを更に備え、前記サーバ装置は、前記情報処理装置より受信するジョブ情報に基づいて、前記ネットワーク対応印刷装置におけるプリントデータの印刷順序を管理し、印刷順序となった前記ジョブ情報に関して、前記情報処理装置からネットワーク対応印刷装置に印刷データの送出が可能であることを示す送出可能情報を前記情報処理装置に送出する送出手段とを備え、前記情報処理装置の送信制御手段は、前記サーバ装置から送信可能情報を受けた場合に、前記情報処理装置の記憶手段にスプールされているプリントデータを、前記サーバ装置を介することなく、前記ネットワーク対応印刷装置に送信することを特徴とする。
【０００７】
上記の目的を達成するため、本発明は、情報処理装置とネットワーク対応印刷装置とがネットワークを介して接続されるプリントシステムにおける印刷中断方法であって、前記情報処理装置における工程として、前記ネットワークを介して前記ネットワーク対応印刷装置とのコネクションを確立し、前記ネットワーク対応印刷装置で印刷すべきプリントデータのサイズ情報をプリントデータより先に送信する送信制御工程と、前記送信手段による前記ネットワーク対応印刷装置に対するにプリントデータを送信中に、印刷中断要求を受けた場合に、当該送信中のプリントデータの送信を中止すべく、前記ネットワーク対応印刷装置とのコネクションを切断するためのコネクション切断コマンドを送信する切断制御工程とを含み、前記ネットワーク対応印刷装置における工程として、前記ネットワークを介して、印刷すべきプリントデータのサイズ情報と、当該印刷すべきプリントデータとを順次受信する受信工程と、前記受信工程で受信されたプリントデータを記憶手段に格納する記憶工程と、前記受信工程で受信されたプリントデータのサイズを計算する計算工程と、前記計算工程で計算された前記プリントデータのサイズと前記受信工程で受信した前記サイズ情報とを比較する比較工程と、前記比較工程による比較結果によりサイズの一致が得られた場合に、印刷処理を開始する印刷制御工程と、前記情報処理装置からネットワークのコネクション切断コマンドが送信されることで、コネクションが切断されているか判断するコネクション判断工程と、前記記憶手段に格納されているデータを消去する消去工程と、前記比較手段による比較結果によりサイズの一致が得られない間に、前記コネクション判断手段により前記ネットワークを介する前記情報処理装置とのコネクションが切断されたことを判断した場合に、前記記憶手段に格納されているプリントデータを前記消去工程で消去するよう制御させる消去制御工程とを含むことを特徴とする。
また、前記プリントシステムには、前記ネットワークを介して更に、前記情報処理装置のプリントデータのジョブの印刷順序管理を行っているサーバ装置が接続されており、前記情報処理装置における工程として、前記サーバ装置に、前記プリントデータのジョブ情報を送信するジョブ情報登録要求工程と、前記ジョブ情報登録要求手段によりジョブ情報が送信された後も前記プリントデータを記憶手段にスプールしておくスプール工程とを更に含み、前記サーバ装置における工程として、前記情報処理装置より受信するジョブ情報に基づいて、前記ネットワーク対応印刷装置におけるプリントデータの印刷順序を管理し、印刷順序となった前記ジョブ情報に関して、前記情報処理装置からネットワーク対応印刷装置に印刷データの送出が可能であることを示す送出可能情報を前記情報処理装置に送出する送出工程とを含み、前記情報処理装置の送信制御工程は、前記サーバ装置から送信可能情報を受けた場合に、前記情報処理装置の記憶手段にスプールされているプリントデータを、前記サーバ装置を介することなく、前記ネットワーク対応印刷装置に送信することを特徴とする。
【００１４】
【発明の実施の形態】
まず、本発明の前提となる仮想プリントサーバシステムについて説明する。
【００１５】
図１は、仮想サーバを適用するネットワークシステムのシステム構成図である。
【００１６】
図１において、クライアントコンピュータ（クライアントPC）は、ｎ台接続されていることを仮定している。１０２、１０３、１０４はクライアントコンピュータであり、ネットワークケーブルによりネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、プリンタドライバは複数のプリンタ言語をサポートするものとする。１０１はサーバであり、ネットワークケーブルによってネットワーク１０６接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６のしよう状態を監視したりする。本実施例のサーバ１０１は、更に、クライアントPC１０２、１０３、１０４から印刷要求が出された印字データのジョブ情報を格納したり、ネットワークプリンタ１０５のＩＰ情報やバッファに受信したジョブの情報をクライアントPCに通知したりする機能を備えている。１０５はネットワークプリンタであり、ネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントPCから送信される印字データを１ページずつドットイメージに変換して、１ページ毎に印刷する。１０６はネットワークであり、クライアントPC、サーバ、ネットワークプリンタ等と接続している。
【００１７】
このように、サーバ１０１、クライアントPC１０２、１０３、１０４、ネットワークプリンタ１０５により役割を分担することにより、クライアントPCの有効利用、ネットワークの負担の軽減をする処理を行う。
【００１８】
図２は、クライアントPC１０２の概略構成を示すブロック図である。なお、クライアントPC１０３、１０４も同じ構成である。
【００１９】
ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳ等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２０】
ＲＯＭ２０１には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２はＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２１】
２０３はＦＤ（フロッピーディスク）ドライブであり、図５に示すようにＦＤドライブ２０３を通じてＦＤ２０４に記憶された本印刷データ送信プログラムを含むネットワークプリンタ制御プログラム等を本コンピュータシステムにロードすることができる。２０４はＦＤであり、プリンタドライバプログラム等を格納しており、ＨＤ２０５などの記憶手段に格納されておくことができる。
【００２２】
ＦＤ２０３に記憶されている内容の構成を図４に示す。図４において、４００はＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３はネットワークプリンタ制御プログラムは、図１１、１３、１５に示される印刷データ送信プログラムを含むネットワークプリンタ制御プログラムのフォローチャートに基づいてプログラムコード化されたものである。４０４はその関連データである。
【００２３】
２０５はＨＤであり、アプリケーションプログラム、ネットワークプリンタ制御プログラム、ＯＳ等を格納している。２０６はキーボードであり、ユーザがクライアントコンピュータに対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７はディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。２０８はシステムバスであり、クライアントPC内のデータの流れを司るものである。
【００２４】
図３は、本印刷データ送信プログラムを含むネットワークプリンタ制御プログラムがＲＡＭ２０２にロードされ実行可能となった状態のメモリマップを表すものである。
【００２５】
３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローティング）機能等を有しているプログラムが入っている領域である。３０２はＯＳであり、３０３にはネットワークプリンタ制御プログラム、３０４には関連データがそれぞれ展開され、３０５にはＣＰＵ２００がネットワークプリンタ制御プログラムを実行するワークエリアがとられている。
【００２６】
図６は、本実施例におけるネットワークプリンタ１０５の概略構成を示すブロック図である。本実施例では、ネットワークプリンタとして、レーザビームプリンタ（ＬＢＰ）を使用しているが、これに限られるものではなく、他の方式のプリンタでもよいことは言うまでもない。
【００２７】
６０１はＣＰＵであり、装置全体を制御する。６０２はROM/RAMであり、ＣＰＵ６０１を制御する制御プログラムや定数データ、送受信データを一時記憶するバッファを含んでいる。本発明の印刷中断プログラム（図１２、１４）もここに格納されている。
【００２８】
６０５は記憶部であり、例えば、ハードディスクのような、送受信するデータやＣＰＵ５０１で実行する制御プログラム、データを記憶する。６０３は表示部であり、ROM / RAM６０２に一時記憶されているデータや、記憶部６０５に記憶されているデータの内容、および操作状況などを表示する。
【００２９】
６０４はプリンタ印字部であり、ROM/RAM６０２に記憶されているプログラムに基づいてＣＰＵ６０１で生成したビットマップデータを印字出力する。６０６はネットワークボードであり、この通信部を介してクライアントコンピュータ（クライアントPC）やサーバ等の外部装置と印字データやジョブ情報等のデータ情報の通信を行う。更に、ネットワークボード６０６は、図示省略したRAM、CPU、ROMを有しており、インテリジェンス性を持っている。本発明の印刷中断プログラムは、このネットワークボード６０６のROMに記憶されているものとする。
【００３０】
本実施例では、本発明の印刷中断プログラムをネットワークボード内に格納されている例を示したが、これに限るものではなく、ネットワークプリンタ１０５内のROM６０２に格納しておいても本印刷中断方法は実現可能であり、ＦＤやＣＤ−ＲＯＭ等の外部記憶手段を介してネットワークプリンタ１０５に実装してもよいことはいうまでもない。
【００３１】
６０７は通信回線であり、ネットワークボード６０６とネットワークをつなぐものである。
【００３２】
また、図示省略したがネットワークプリンタ１０５には、ユーザが直接指示をするための指示入力手段である操作部（コントロールパネル）も有しているものとする。
【００３３】
図７は、本発明のシステムにおけるクライアントPCおよびサーバのソフトモジュール構成を表した図である。
【００３４】
７０１はネットワークプリンタ、７０２はクライアントPCのソフトモジュール構成、７０３はサーバのソフトモジュール構成である。７０４はネットワークプリントシステムに印刷指示を出すアプリケーションモジュールであり、７０５はWindowsのＧＤＩ、７０６はWindows内に組み込まれるプリンタドライバ、７０７はWindows内のプリンタスプーラ、７０８は仮想プリンタ用プリンタモニタ、７０９はネットワークプリンタ用制御モニタ、７１０は仮想プリントマネージャ、７１１は仮想プリントサーバＡＰＩ（Application interface）、７１２は仮想プリンタサーバサービスである。
【００３５】
仮想プリントマネージャ７１０、仮想プリントサーバＡＰＩ７１１、仮想プリントサーバサービス７１２は、クライアントPCとサーバの両方に存在する。以後、仮想プリントサーバサービス７１２を構成している仮想プリントサーバサービス（クライアント）と仮想プリントサーバサービス（サーバ）を合わせたものを仮想プリントサーバと呼び、このシステムを仮想プリントサーバシステムと呼ぶ。
【００３６】
前記構成においてクライアントPC１０２からネットワークプリンタ１０５に印刷を行う動作を説明する。本実施例においては、Windowsを例にとって説明を行う。クライアントPCからサーバへ印刷要求をする印刷処理の流れを図８に表し、サーバからクライアントPCへ印字可能許可を与えてプリンタに送信する印刷処理の流れを図９で表す。ここで、すでに説明したブロック図は、同じ符号を用いて説明を続けることにする。この図８および図９を用いて印刷処理の流れを説明する。
【００３７】
クライアントPC７０２（１０２）上で、アプリケーション７０４はＧＤＩ７０５を通して印刷を開始する。ＧＤＩはWindowsスプーラ７０７及び仮想プリントサーバ用プリントモニタ７０８に印刷の開始を通知する。印刷の開始を受け取った仮想プリントサーバ用プリントモニタ７０８は仮想プリントサーバサービス（クライアント）７１２を経由して、サーバ７０３（１０１）上にある仮想プリントサーバサービス（サーバ）７１２に、これより印刷データの保存を開始を依頼する。ＧＤＩ７０５はプリンタドライバ７０６に印刷データをプリンタ言語に変換することを要求する。プリンタ言語に変換されたプリントデータはWindowsスプーラ７０７にスプールされる。一方、仮想プリントサーバ用プリントモニタ７０８は、Windowsスプーラ７０７にスプールされたプリントデータをWindowsスプーラ７０７より受けとり、そのプリントデータを仮想プリントサーバサービス（クライアント）７１２に渡す。仮想プリントサーバサービス（クライアント）７１２は受け取ったプリントデータを図２のＨＤ２０５内の仮想プリントスプーラ８０１にある図示省略したテンポラリファイルに一時保存する。すべてのプリントデータをＨＤ２０５内の仮想プリントスプーラ８０１内のテンポラリファイルに保存した時点で、仮想プリントサーバサービス（クライアント）７１２は、サーバ７０３（１０１）上にある仮想プリントサーバサービス（サーバ）７１２にプリントデータの保存終了を通知し、印刷を依頼する。ここで、仮想プリントサーバサービスは、クライアントPCとサーバとで同じモジュールを使用していて、設定でクライアント用、サーバ用と使い分ける事のできるものである。
【００３８】
図９では、先に仮想プリントサーバサービスに登録された印刷ジョブが、サーバの管理を経て印刷を行う順番になり、実際にネットワークプリンタにプリントデータを送信するまでの動作を示した図である。仮想プリントサーバサービス（サーバ）７１２は、印刷の順番になったクライアントPCに印刷可能の指示を出す。その指示を受け取った仮想プリントサーバサービス（クライアント）７１２は、前述で一時的に仮想プリントスプーラ８０１に保存したプリントデータを読みだし、ネットワークプリンタ用制御モニタ７０９に渡す。ネットワークプリンタ用制御モニタ７０９は、印刷通信プロトコルを通して、ネットワークプリンタ７０１にプリントデータを渡し、ネットワークプリンタ７０１で印刷をおこなう。
【００３９】
ネットワークプリンタ７０１のステイタスをクライアントPCに通知する動作を説明する。ここではWindowsを例にとって説明をする。プリンタステータス流れを図１０に示す。
【００４０】
仮想プリントサーバサービス（サーバ）７１２は、本実施例においては、５秒間隔（デフォルト）でＳＮＭＰマネージャ１００２にネットワークプリンタ７０１のステータスの収集を依頼する。ＳＮＭＰマネージャ１0０２は、ステータス集収要求をネットワークプリンタ７０１に依頼する。ネットワークプリンタ７０１は、現在のプリンタステータスを返す。仮想プリントサーバサービス（サーバ）７１２は、ネットワークプリンタ７０１のステイタスが変化した場合、このネットワークプリンタ７０１を使用しているクライアンPCに対してステータスの変更通知を行う。サーバから出されたプリンタステータスの変更通知はクライアントPC内の仮想プリントサーバサービス（クライアント）７１２が受けとり、クライアントPC内のＲＡＭにあるレジストリ１００１にプリンタステータスを保存する。アプリケーション７０４は、仮想プリンタサーバＡＰＩ７１１を経由してレジストリ１００１に保存されているプリンタステイタスを取得することができる。
【００４１】
このようにして、仮想プリントサーバシステムは印刷の処理を行う。
【００４２】
本実施例はWindowsNT（登録商標）を用いた場合であり、この中でプリントモニタ７０８、仮想プリントスプーラ、仮想プリントサーバサービス（クライアント／サーバ）７１２、ネットワークプリンタ制御モニタ７０９は本発明で新たに作られたものであり、それ以外はWindowsNT標準のモジュールである。しかし、これに限られるものではなく、ＯＳ/２等の他のＯＳでも構築可能である。
【００４３】
〔第１の実施例〕
第１の実施例では、送信側であるクライアントコンピュータの処理で、印刷中断処理の対処を行う例について示したものである。
【００４４】
第１１図は、クライアントコンピュータ（以下コンピュータ）上で動作する印刷データ送信プログラムのコンピュータの制御を表すフローチャートである。この印刷データ送信プログラムは、本発明のネットワークプリンタ制御プログラムの一部であり、ＲＯＭ２０１、ＲＡＭ２０２、ＨＤ２０５のいずれかに格納されている。
【００４５】
まず、ユーザから印刷処理開始の指示を受けると本印刷データ送信プログラムが立ち上がり、ステップS1101に進む。ステップS1101では、ネットワークプリンタとクライアントコンピュータとのコネクションを確立する。ステップS1102では、ユーザから印刷中断要求があったかどうかを判断する。印刷中断要求があればステップS1105へ進み、印刷中断要求がなければステップS1103進む。
【００４６】
ステップS1103ではネットワークプリンタへ印刷データを送信する。ステップS1104では、印刷データをすべて送信したかどうかを判断する。すべて送信したのならばステップS1106へ処理を進める。印刷データの終わりまで送信していないのであれば、ステップS1102へ戻る。S1106では、ネットワークプリンタへコネクションの切断コマンドを送り、コネクションを切断して処理を終了する。
【００４７】
ステップS1105では、ユーザから印刷中断の旨の指示を受けたので、本印刷データ送信プログラムは、ネットワークプリンタへ印刷中断コマンドを送信し、ステップS1106へ処理を進める。
【００４８】
第１２図は、ネットワークプリンタ上で動作する印刷中断プログラムにおけるネットワークプリンタの制御を表したフローチャートである。この印刷中断プログラムは、前述したようにネットワークボード６０６の中の図示省略した記憶媒体に格納されている。
【００４９】
ステップS1201では、印刷中断プログラムは、クライアントコンピュータとのコネクションが確立したかどうかを判断する。コネクションが確立するまでステップS1201を繰り返す。コネクションが確立されると判断されると処理は、ステップS1202へ進む。ステップS1202では、クライアントコンピュータとのコネクションが切断されたかどうかを判断する。この判断は、コンピュータからコネクション切断コマンドがネットワークプリンタへ送信されてくることによりネットワークボード上のＣＰＵが判断する。コネクションが切断された場合は、印刷を開始し、コネクション切断コマンドが送信されてこなければ、ステップS1203へ進む。ここでコネクション切断コマンドの送信により印刷開始の判断をしたが、これ以外にもクライアントコンピュータから印刷ジョブのジョブ終了コマンドが受信されたかを判断することによりジョブの送信終了を判断してもよい。
【００５０】
ステップS1203では、クライアントコンピュータから印刷データを受信する。ステップS1204では、ネットワークプリンタが受信した印刷データが印刷中断コマンドかどうか判断する。この判断は、ネットワークボード６０６のＣＰＵが印刷データを解析することにより判断するものである。ネットワークボード６０６が解析した印刷データの中に印刷中断コマンドでなければ、ステップS1202へ処理を戻す。もし印刷データの中に印刷中断コマンドを含んでいれば、ステップS1205へ進む。
【００５１】
ステップS1205では、印刷中断コマンドを判断したネットワークボード６０６が、ネットワークボード内にある受信データとネットワークプリンタ内にある印刷データを保持しているバッファをクリアし処理を終了する。このバッファのクリアは、次に送られてくるデータを正常に印刷できるように、バッファ内のすべてのデータを削除するものである。ネットワークプリンタ内にある印刷データ（プリントデータ）は、ネットワークプリンタに対し削除コマンドをネットワークボードが送信することにより、ネットワークプリンタが印刷データを削除するよう制御させている。
【００５２】
このように、第１実施例では、コンピュータがネットワークプリンタへ印刷データを送信中に印刷中断コマンドを受信した場合に、印刷中断コマンドをネットワークプリンタへ送信することにより、ネットワークプリンタに接続されているネットワークボードが印刷の中断を判断でき、ネットワークボードとネットワークプリンタ内の両方のバッファをクリアするので、無駄な出力を割くことができ、次に送られてくる印字データも文字化けなどの影響を受けずにすむ。
【００５３】
〔第２の実施例〕
第２の実施例では、受信側であるネットワークボード６０６の処理で、中断処理の対処を行う例について示したものである。
【００５４】
第１３図は、クライアントコンピュータ上で動作する印刷データ送信プログラムのコンピュータの制御を表すフローチャートである。この印刷データ送信プログラムは、本発明のネットワークプリンタ制御プログラムの一部であり、ＲＯＭ２０１、ＲＡＭ２０２、ＨＤ２０５のいずれかに格納されている。
【００５５】
ステップS1301では、該プログラムはクライアントコンピュータとネットワークプリンタとのコネクションを確立するよう制御する。ステップS1302では、該プログラムは、クライアントコンピュータからネットワークプリンタに、これから送信する印刷データのデータサイズを先に送信するよう制御する。
【００５６】
ステップS1303では、該プログラムは、ユーザから印刷中断要求の指示があったかどうかを判断する。印刷中断要求があればステップS1306に処理を進め、該プログラムはクライアントコンピュータからネットワークプリンタへコネクション切断コマンドを送信して、コネクションを切断するよう制御し、処理を終了する。ステップS1303で、ユーザからの印刷中断要求がなければ、ステップS1304に処理を進める。
【００５７】
ステップS1304では、クライアントコンピュータがネットワークプリンタへ印刷データを送信する。ステップS1305では、クライアントコンピュータが印刷データをネットワークプリンタへすべて送信したかどうかを判断する。すべての印刷データを送信したと判断された場合は、ステップS1306へ処理を進め、ネットワークプリンタへコネクション切断コマンドを送信し、コネクションを切断して処理を終了する。すべての印刷データをネットワークプリンタへ送信していない場合は、ステップS1303へ処理を戻す。
【００５８】
第１４図は、ネットワークプリンタ上で動作する印刷中断プログラムのネットワークプリンタの制御を表すフローチャートである。この印刷中断プログラムは、前述したようにネットワークボード６０６の中にある図示省略したROM等の記憶媒体に格納されている。
【００５９】
ステップS1401では、該プログラムは、ネットワークプリンタとコンピュータとのコネクションが確立したかどうかを判断する。このコネクションが確立するまでステップS1401を繰り返す。コネクションが確立されると、処理はステップS1402へ進み、ネットワークプリンタはコンピュータから受信する印刷データのデータサイズを受信する。ステップS1403では、コネクションが切断されたかどうかを判断する。この判断は、コンピュータからネットワークプリンタにコネクション切断コマンドが送信されてきたかにより判断する。コネクションが切断されていれば、処理をステップS1406に進め、実施例１で説明したように印刷中断プログラムは、ネットワークボード内の受信データと、ネットワークプリンタ内の印刷データを保持しているバッファの中のデータをすべてクリアし処理を終了する。コネクションが切断されていなければ、ステップS1404へ進む。
【００６０】
ステップS1404では、ネットワークプリンタはコンピュータから印刷データを受信し、ステップS1405へ処理を進める。ステップS1405では、ネットワークプリンタが始めに受信した印刷データサイズと、実際にコンピュータから受信したデータのサイズを計っておき、その合計サイズとを比較する。すべての印刷データを受け取ったと判断された場合には、印刷処理を開始する。実際にクライアントコンピュータから受信したデータの合計サイズが、始めに受信した印刷データサイズよりも小さい場合は、ステップS1403へ戻る。
【００６１】
このように、第２実施例では、クライアントコンピュータがネットワークプリンタへ印刷データの始めに印刷データサイズを送信するので、印刷データを送信中にコンピュータがユーザから印刷中断コマンドを受信した場合に、コネクションを切断することにより、ネットワークプリンタに接続されているネットワークボードが印刷データがすべて送信されてくる前に受信が終わりコネクションが切断されてしまった場合でも、ネットワークプリンタ側で印刷の中断を判断でき、ネットワークボード内の印字データとネットワークプリンタ内の受信バッファをクリアするので、無駄な出力を割くことができ、次に送られてくる印字データも文字化けなどの影響を受けずにすむ。
【００６２】
〔第３の実施例〕
第１５図は、クライアントコンピュータ上で動作する印刷データ送信プログラムのフローチャートである。この印刷データ送信プログラムは、本発明のネットワークプリンタ制御プログラムの一部である。このプログラムは、前述したようにネットワークボード６０６内の図示省略された記憶媒体に格納されている。
【００６３】
ステップS1501では、該プログラムはＣＰＵ２００を用いて、ハードディスクに格納されているプリンタドライバによりページ記述言語に変換された印刷データ（プリントデータ）を一時的に保存するためのファイルを作成する。
【００６４】
ステップS1502では、該プログラムは新しいファイルを作成し、ページ記述言語に変換された印刷データを一度該ファイルへすべて書き込む。ステップS1503では、該プログラムはクライアントコンピュータからネットワークプリンタに対してコネクションを確立するよう制御する。実際は、クライアントコンピュータがコネクション要求パケットをネットワークプリンタへ送り、ネットワークプリンタから応答パケットを得ることで確立できる。
【００６５】
ステップS1504では、該プログラムは、ＣＰＵ２００にユーザから印刷中断要求があったかどうかを判断するよう制御させる。このとき、印刷中断要求があれば、ステップS1510へ進み、印刷中断要求がなければステップS1505に進む。
【００６６】
ステップS1505では、該プログラムは、ファイルから印刷データを読み出し、ステップS1506でネットワークプリンタへ印刷データを送信する。ステップS1507では、該プログラムは、ファイルの印刷データをすべて送信したかどうかを判断し、すべて送信したのならばステップS1508へ進み、まだ送信していない印字データが残っていれば、ステップS1504へ戻る。
【００６７】
ステップS1510でもファイルから印刷データを読み出し、ステップS1511でネットワークプリンタへ印刷データを送信するが、ステップS1512では、該プログラムはＣＰＵ２００を用いて印刷データを解析して、現在送信中のページの終わりまで印刷データを送信したかどうかを判断する。印字データの中にフォームフィードコマンドなどがあれば、そこまでが１ページだと判断できる。ページの終わりまで印刷データを送信したならば最後にジョブ終了コマンドを印刷データの最後のページに付加させてネットワークプリンタに送信し、ステップS1508へ進み、そうでなければ、ステップS1510へ戻る。
【００６８】
ステップS1508ではネットワークプリンタとのコネクションを切断する。コネクションの切断は、コンピュータがネットワークプリンタへ切断要求パケットを送信し、ネットワークプリンタから応答パケットが送信されてきたら、コネクションが切断されたと判断できる。ステップS1509で、ＣＰＵ２００はS1501で作成したファイルを削除して処理を終了する。
【００６９】
ネットワークプリンタ側では、通常の処理を行う。コネクションが削除された時点で受信を終えるのであるが、本実施例では、ちょうどページ分のデータが受信バッファにあるので、フォームフィードコマンドもしくはジョブ終了コマンドにより、そのページまで出力するので、受信バッファにデータがなくなり、次に送られてきたジョブは文字化けせずに出力可能となる。
【００７０】
このように、第３実施例では、コンピュータがあらかじめ印字データをファイルに落としておくことにより、送信中にユーザから印刷中断命令が行われても、ページの終わりまで印字データを送信することができるので、ネットワークプリンタは、受信したページまで出力するので、次に来たジョブが文字化けをしないで済むようになる。
【００７１】
〔第４の実施例〕
第４の実施例では、第２の実施例で説明したネットワークボード６０６の処理において、更に印刷時のタイムアウトを考慮した制御を説明する。
【００７２】
図１４において、ステップS1403〜ステップS1405のループ時にカウンタをまわしておき、ある一定時間が経っても印刷データの終わりまで受信できない場合に、該印刷中断プログラムは、クライアントコンピュータからのデータ送信中に何らかの問題が生じたことを認識し、ネットワークプリンタからコネクションを切断し、ステップS1406に処理を進め、ネットワークボードとネットワークプリンタ内の受信データを削除する。
【００７３】
ここでカウンタを始めるのは、印刷データを受信したときである。つまり、印刷データを受信するとカウンタはゼロになり、カウンタが例えば１０００になるとタイムアウト処理が起こるようにする。もし途中で印刷データの受信が開始されれば、カウンタは再びゼロに戻るよう制御されている。
【００７４】
更に、本発明の第４実施例では、第２実施例における印刷システム上に本タイムアウト処理を実現させたが、例えば、第１実施例においても実現可能である。
【００７５】
このようにタイムアウト制御することにより、印刷データ送信側のコンピュータに異常が生じて、コネクションが接続されたまま長時間印刷データが送信されない場合でも、ある一定時間印刷データが送信されないとネットワークプリンタ側から強制的にコネクションを切断し、受信データを削除するよう制御したので、次に送られてくる印刷データを正常に印刷可能になった。
【００７６】
以上説明したように、第１実施例に示唆されている発明によれば、ネットワークプリンタが印刷データの送信中止をコマンドによって知ることができ、ページの途中までしか送信されなかった印刷データを、ネットワークプリンタのバッファから消去することができる。その結果、ネットワークプリンタは、コンピュータからの印刷データの送信が中止された後、別の新しい印刷データ送信されても、正常に印刷処理を続けることができる。
【００７７】
第２実施例に示唆されている発明によれば、ネットワークプリンタが印刷データの送信中止をコネクションの切断によって知ることができ、コンピュータから送信されてきた印字データのサイズと見比べることにより、送信された印字データが正常なものか判断することができ、ページの途中までしか送信されなかった印刷データをネットワークプリンタのバッファから消去することができる。その結果、ネットワークプリンタは、コンピュータからの印刷データの送信が中止された後、別の新しい印刷データ送信されても、正常に印刷処理を続けることができる。
【００７８】
第３実施例に示唆されている発明によれば、あらかじめ印字データをファイルに落としておくため、印字データの送信中にユーザから印刷中断要求があっても、コンピュータはページの終わりまで印刷データをプリンタに送信してから印刷データの送信を中止することができる。その結果、プリンタはコンピュータからの印刷データの送信が中止された後、別の新しい印刷データ送信されても、正常に印刷処理を続けることができる。
【００７９】
第４実施例に示唆されている発明によれば、クライアントコンピュータからネットワークプリンタに長時間印刷データが送信されてこない場合には、ネットワークプリンタ側から強制的にコネクションを切断し、受信データを削除するので、コネクションが接続されたままで印刷データの送信異常が生じた場合でも、復旧が可能になり、次に送られてくる印刷データも正常に印刷可能になる。
【発明の効果】
以上説明したように、本願発明によれば、情報処理装置とネットワーク対応印刷装置とがネットワークを介して接続されるプリントシステムにおいて、情報処理装置で、ネットワーク対応印刷装置とのコネクションを確立し、ネットワーク対応印刷装置で印刷すべきプリントデータのサイズ情報をプリントデータより先に送信し、ネットワーク対応印刷装置に対するプリントデータを送信中に、印刷中断要求を受けた場合に、当該送信中のプリントデータの送信を中止すべく、ネットワーク対応印刷装置とのコネクションを切断するためのコネクション切断コマンドを送信し、一方、ネットワーク対応印刷装置で、ネットワークを介して、印刷すべきプリントデータのサイズ情報と、当該印刷すべきプリントデータとを順次受信し、受信されたプリントデータのサイズを計算し、計算されたプリントデータのサイズと受信した前記サイズ情報とを比較し、比較結果によりサイズの一致が得られた場合に、印刷処理を開始し、情報処理装置からネットワークのコネクション切断コマンドが送信されることで、コネクションが切断されているか判断し、比較結果によりサイズの一致が得られない間に、ネットワークを介する情報処理装置とのコネクションが切断されたことを判断した場合に、格納されているプリントデータを消去するよう制御するので、送信されたプリントデータが正常なものか判断することができ、正常でない場合にページの途中までしか送信されなかったプリントデータをバッファから消去することができる。その結果、ある装置からのプリントデータの送信が中止された後、別の新しいプリントデータ送信されても、正常に印刷処理を続けることができる。
【図面の簡単な説明】
【図１】本実施の仮想サーバを適用するネットワークシステムのシステム構成図である。
【図２】図１におけるクライアントコンピュータの概略構成を示すブロック図である。
【図３】図２におけるＲＡＭに、図４に示すＦＤからプログラムを展開したときのメモリマップを示す図である。
【図４】図２におけるＦＤ内部のデータを表すメモリマップを示す図である。
【図５】図１におけるクライアントコンピュータと図２におけるＦＤとの関係を表した図である。
【図６】図１におけるネットワークプリンタの概略構成を示すブロック図である。
【図７】本実施の形態に係るクライアントコンピュータおよびサーバのソフトモジュール構成を表す図である。
【図８】仮想サーバを用いた印刷機能に関するプリントモニタの処理の流れを表したフローチャートである。
【図９】仮想サーバを用いた印刷機能に関するプリントモニタの制御の流れを表したフローチャートである。
【図１０】図１におけるクライアントからサーバへ印刷要求する際の印刷処理の流れを表す図である。
【図１１】本発明の第１の実施例の印刷中断方式を示すコンピュータの動作のフローチャートである。
【図１２】本発明の第１の実施例の印刷中断方式を示すネットワークプリンタの動作のフローチャートである。
【図１３】本発明の第２の実施例の印刷中断方式を示すコンピュータの動作のフローチャートである。
【図１４】本発明の第２の実施例の印刷中断方式を示すネットワークプリンタの動作のフローチャートである。
【図１５】本発明の第３の実施例の印刷中断方式を示すネットワークプリンタの動作のフローチャートである。
【符号の説明】
１０１  サーバ
１０２〜１０４  クライアントコンピュータ（クライアントＰＣ）
１０５  ネットワークプリンタ
１０６  ネットワーク
２００  ＣＰＵ
２０１  ＲＯＭ
２０２  ＲＡＭ
２０３  ＦＤドライブ
２０４  ＦＤ（フロッピーディスク）
２０５  ＨＤ（ハードディスク）
２０６  キーボード
２０７  ディスプレイ
２０８  システムバス
３００  ＲＡＭのメモリマップ
３０１  基本Ｉ／Ｏプログラム
３０２  ＯＳ
３０３  ネットワークプリンタ制御プログラム
３０４  関連データ
３０５  ワークエリア
４００  ＦＤのメモリマップ
４０１  ボリューム情報
４０２  ディレクトリ情報
４０３  ネットワークプリンタ制御プログラム
４０４  関連データ
６０１  ＣＰＵ
６０２  ＲＯＭ／ＲＡＭ
６０３  記憶部
６０４  表示部
６０５  プリンタ印字部
６０６  通信部
６０７  通信回線
７０１  ネットワークプリンタ
７０２  クライアント（クライアントＰＣ）
７０３  サーバ
７０４  アプリケーション
７０５  ＧＤＩ
７０６  プリンタドライバ
７０７  Ｗｉｎｄｏｗｓスプーラ
７０８  仮想プリントサーバ用プリンタモニタ
７０９  ネットワークプリンタ用制御モニタ
７１０  仮想プリントマネージャ
７１１  仮想プリントサーバＡＰＩ
７１２  仮想プリントサーバ（仮想プリントサーバサービス）
８０１  仮想プリントスプーラ
１００１  レジストリ
１００２  ＳＮＭＰマネージャ
【図１】
0003854699.tif 000002
【図２】
0003854699.tif 000003
【図３】
0003854699.tif 000004
【図４】
0003854699.tif 000005
【図５】
0003854699.tif 000006
【図６】
0003854699.tif 000007
【図７】
0003854699.tif 000008
【図８】
0003854699.tif 000009
【図９】
0003854699.tif 000010
【図１０】
0003854699.tif 000011
【図１１】
0003854699.tif 000012
【図１２】
0003854699.tif 000013
【図１３】
0003854699.tif 000014
【図１４】
0003854699.tif 000015
【図１５】
0003854699.tif 000016