(57)【特許請求の範囲】
【請求項１】
クライアントコンピュータからの印刷指示を受けてアプリケーション実行手段が出力した印刷要求を受信し、ネットワークに接続される複数の印刷装置の１つを選択して印刷を実行させるデータ処理システムであって、前記システムは、サーバコンポーネントと、クライアントコンポーネントとから構成され、
前記サーバコンポーネントは、
前記印刷要求に含まれる文書データから各ページの画像データを生成し、前記印刷要求から印刷設定情報および前記クライアントコンピュータのシステム情報を抽出し、前記画像データと前記印刷設定情報と前記システム情報とから構成される中間データを生成する仮想プリンタドライバ手段と、
前記印刷設定情報および前記システム情報の少なくとも１つの情報と各前記印刷装置とを対応付けた設定ファイルを保持し、生成された前記中間データの前記印刷設定情報および前記システム情報と前記設定ファイルとを照合し、出力先となる前記印刷装置を決定する出力先決定手段と、
決定された出力先と前記中間データを構成する前記画像データとを取得し、前記出力先を通知するとともに前記画像データを出力する振り分け制御手段と、
通知された前記出力先に従って、出力された前記画像データを、前記印刷装置の１つへ送信する振り分け手段とを含み、
前記クライアントコンポーネントは、
決定された前記出力先の情報を前記振り分け手段から受信して、前記クライアントコンピュータの画面上に表示させる振り分け先情報受信手段と、
前記複数の印刷装置の各々のジョブ処理状況を監視し、当該ジョブ処理状況を通知する複数の印刷ジョブ監視手段と、
前記振り分け先情報受信手段から受け取った前記出力先の情報に基づき、前記複数の印刷ジョブ監視手段のうちの該出力先の印刷装置を監視する印刷ジョブ監視手段を起動し、当該印刷ジョブ監視手段が通知した前記ジョブ処理状況を前記クライアントコンピュータの画面上に表示させる印刷ジョブ監視制御手段とを含む、データ処理システム。
【請求項２】
前記仮想プリンタドライバ手段は、前記クライアントコンポーネントに実装され、前記クライアントコンポーネントは、生成された前記中間データを前記振り分け制御手段へ転送する中間データ中継手段をさらに含む、請求項１に記載のデータ処理システム。
【請求項３】
前記印刷ジョブ監視制御手段は、前記印刷が終了した旨とともに、前記出力先の情報を前記画面上に表示させる、請求項１または２に記載のデータ処理システム。
【請求項４】
前記印刷ジョブ監視手段は、ジョブ処理中に前記印刷装置でエラーが発生した場合に、当該印刷装置からエラー情報を取得し、前記印刷ジョブ監視制御手段へ当該エラー情報を送り、前記印刷ジョブ監視制御手段は、前記エラー情報を前記画面上に表示させる、請求項１〜３のいずれか１項に記載のデータ処理システム。
【請求項５】
前記出力先決定手段は、照合した結果、該当する前記出力先が得られない場合、前記振り分け先情報受信手段に通知し、前記振り分け先情報受信手段が、前記画面上に前記出力先の印刷装置を選択させる選択画面を表示させる、請求項１〜４のいずれか１項に記載のデータ処理システム。
【請求項６】
前記印刷装置の選択に応答して、前記振り分け先情報受信手段は、前記印刷ジョブ監視制御手段に通知して、選択された前記印刷装置を監視する印刷ジョブ監視手段に当該選択された印刷装置を監視させるとともに、前記出力先決定手段に通知し、選択された前記印刷装置を出力先となる印刷装置として決定する、請求項５に記載のデータ処理システム。
【請求項７】
前記出力先決定手段は、印刷中止の指示を受け付けたことに応答して、前記振り分け制御手段を介して前記振り分け先情報受信手段に印刷中止を通知し、前記振り分け先情報受信手段が前記画面上に印刷を中止した旨を表示させ、前記仮想プリンタドライバ手段が前記サーバコンポーネントに実装される場合は前記振り分け制御手段が、前記クライアントコンポーネントに実装される場合は前記振り分け先情報受信手段が、当該仮想プリンタドライバ手段に印刷を中止したことを通知して前記中間データを削除する、請求項５に記載のデータ処理システム。
【請求項８】
前記出力先決定手段は、前記印刷設定情報を前記設定ファイルの内容に書き換えて、前記出力先の情報とともに前記振り分け制御手段に送付する、請求項１〜６のいずれか１項に記載のデータ処理システム。
【請求項９】
クライアントコンピュータからの印刷指示を受けてアプリケーション実行手段が出力した印刷要求を受信し、ネットワークに接続される複数の印刷装置の１つを選択して印刷を実行させる印刷制御方法であって、当該方法は、サーバコンポーネントとクライアントコンポーネントとから構成されるデータ処理システムにより実行され、前記サーバコンポーネントが、
前記印刷要求に含まれる文書データから各ページの画像データを生成し、前記印刷要求から印刷設定情報および前記クライアントコンピュータのシステム情報を抽出し、前記画像データと前記印刷設定情報と前記システム情報とから構成される中間データを生成するステップと、
前記印刷設定情報および前記システム情報の少なくとも１つの情報と各前記印刷装置とを対応付けた設定ファイルを用い、生成された前記中間データの前記印刷設定情報および前記システム情報と照合し、出力先となる前記印刷装置を決定するステップと、
決定された前記出力先と前記中間データを構成する前記画像データとを取得し、前記出力先を通知するとともに前記画像データを出力するステップと、
通知された前記出力先に従って、出力された前記画像データを、前記印刷装置の１つへ送信するステップとを実行し、
前記クライアントコンポーネントが、
決定された前記出力先の情報を受信して、前記クライアントコンピュータの画面上に表示させるステップと、
決定された前記出力先の情報に基づき、前記複数の印刷装置の各々を監視する複数の印刷ジョブ監視手段のうちの前記出力先の印刷装置を監視する印刷ジョブ監視手段を起動し、起動した前記印刷ジョブ監視手段により前記出力先の印刷装置のジョブ処理状況を監視し、当該ジョブ処理状況を通知するステップと、
通知された前記ジョブ処理状況を前記画面上に表示させるステップとを実行する、印刷制御方法。
【請求項１０】
前記クライアントコンポーネントが、前記中間データを生成するステップを実行し、
前記印刷制御方法は、さらに、前記クライアントコンポーネントが、生成された前記中間データを前記サーバコンポーネントへ転送するステップを含む、請求項９に記載の印刷制御方法。
【請求項１１】
前記ジョブ処理状況を前記画面上に表示させるステップは、ジョブ処理中に前記印刷装置でエラーが発生した場合に、当該印刷装置からエラー情報を取得し、前記エラー情報を前記画面上に表示させるステップを含む、請求項９または１０に記載の印刷制御方法。
【請求項１２】
照合した結果、該当する前記出力先が得られない場合、前記画面上に前記出力先の印刷装置を選択させる選択画面を表示させるステップを含む、請求項９〜１１のいずれか１項に記載の印刷制御方法。
【請求項１３】
前記決定するステップでは、前記印刷装置の選択に応答して、選択された前記印刷装置を監視する印刷ジョブ監視手段に当該選択された前記印刷装置を監視させるとともに、選択された前記印刷装置を出力先となる印刷装置として決定する、請求項１２に記載の印刷制御方法。
【請求項１４】
印刷中止の指示を受け付けたことに応答して、前記画面上に印刷を中止した旨を表示させ、前記中間データを削除するステップを含む、請求項１２に記載の印刷制御方法。
【請求項１５】
前記印刷設定情報を前記設定ファイルの内容に書き換えて、前記出力先の情報とともに送付するステップを含む、請求項９〜１３のいずれか１項に記載の印刷制御方法。
【請求項１６】
請求項９〜１５のいずれか１項に記載の印刷制御方法を実行するためのコンピュータ可読なプログラム。
【請求項１７】
請求項１６に記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力データを各出力先へ自動振り分けするデータ処理システム、印刷制御方法、その方法を実現するためのコンピュータ可読なプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
ネットワーク技術の普及により、複数のＰＣやプリンタをネットワークに接続してネットワーク環境を構築し、プリンタを共有することができるようにされている。このプリンタを共有するために、複数のＰＣから同時に印刷要求が送信されても、これを適切に処理し、プリンタが順序良く印刷を実行するように印刷処理を管理するためのプリンタサーバが設けられている。
【０００３】
各ＰＣは、文書等を作成するためのアプリケーションを実装するが、そのアプリケーションにより作成されたデータを印刷出力する際、プリンタが使用する形式へ変換する必要があり、この変換するソフトウェアとしてプリンタドライバが用いられる。従来において、このプリンタドライバは、ＣＤ−ＲＯＭ等の記録媒体に格納され、ユーザが手動で各ＰＣにインストールしていた。
【０００４】
近年では、ユーザが手動でプリンタドライバをインストールしなくても、ネットワークプリンタへの接続を作成し、そのネットワークプリンタで印刷できるようにするポイントアンドプリント機能が提供されるようになってきている。
【０００５】
ポイントアンドプリントでは、ユーザが使用するＰＣとプリンタサーバとの間の接続を、その種類に応じて、リモートプロシージャコール(RPC)接続またはサーバメッセージブロック(SMB)接続のいずれかにより実行する。接続を確立すると、クライアントとサーバの種類に応じて、ＲＰＣ接続またはＳＭＢ接続が作成され、プリンタサーバから必要なファイルや構成情報が自動的にＰＣへダウンロードされる。
【０００６】
ＲＰＣ接続により接続されたＰＣが、プリンタサーバにより管理されるプリンタで印刷を行う場合、ＰＣは、印刷ジョブをローカル環境でレンダリングを行わず、その印刷ジョブを拡張メタファイル(EMF)形式でプリンタサーバへ送り、プリンタサーバでプリンタが使用する形式へ変換する。
【０００７】
これに対し、ＳＭＢ接続により接続されたＰＣが、プリンタサーバにより管理されるプリンタで印刷を行う場合、プリンタサーバからＰＣへプリンタドライバがダウンロードされ、印刷ジョブ全体をローカル環境でレンダリングし、プリンタが使用する形式（RAW形式）のデータをプリンタサーバへ送信する。この形式のデータは、直接印刷することができることから、プリンタサーバでの処理がほとんど必要とされない。
【０００８】
ところで、ネットワークに接続されたＰＣでは、印刷出力を指令する際のプリンタダイアログに、ＵＰｎＰやＢｏｎｊｏｕｒ等のプラグアンドプレイ技術の進歩により、ネットワーク上に接続され、このＰＣがアクセス可能な複数のプリンタが選択可能に表示される。このため、ユーザは、この表示されたプリンタの中で使用したいプリンタをクリックする等して選択し、印刷出力を指令することにより、そのプリンタで印刷することができる。
【０００９】
このような選択方式では、出力先プリンタの指定を間違えて指令する場合が想定される。近年のＰＣ、プリンタサーバおよびプリンタの印刷処理能力の向上に伴い、プリンタが使用する形式への変換が高速化しており、一旦印刷出力を指令すると、その後にキャンセル指令を行ったとしても、プリンタキューに残されているデータを除き、誤った出力先プリンタで出力されてしまうことがありうる。個人情報や高度な機密性を有する文書ファイルを扱うユーザにとっては、このような誤った出力先を指令すると、重大な問題を生じさせることになる。
【００１０】
そこで、情報処理装置のプリンタ出力設定にかかわらず、情報処理装置やその情報処理装置にアクセスするユーザに関連付けて出力先プリンタとして設定された出力先に対して出力を可能にする情報処理装置、ネットワークプリントシステムが提案されている（例えば、特許文献１参照）。
【００１１】
この情報処理装置は、仮想プリンタドライバを含んで構成され、仮想プリンタドライバが、ネットワークを介して出力するべき情報を取得し、取得した情報から出力要求元識別値を抽出し、その識別値に紐付けられた出力先を選択して、出力先でデフォルト出力先を書き換える。そして、出力先に対応したリモートドライバを呼び出し、その出力先に適合したフォーマットの出力データへ変換し、その出力先へ送付する。送付した後は、出力先の出力ステータスを監視し、出力エラーが発生した場合、出力エラーの発生を通知する。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来の上記情報処理装置は、出力先を選択し、書き換えることから、出力先を決定する機能を有し、その決定された出力先に基づき出力データを振り分けることから、自動振り分けする機能を有し、出力ステータスを監視し、エラーが発生した場合にその旨を通知することから、印刷ジョブを監視する機能を有している。このため、この装置は、仮想プリンタドライバが、リモートドライバを呼び出してＲＡＷデータを作成させ、コマンドを追加して出力データを生成させた後、出力先を決定する機能により、出力先のリモートプリンタを決定し、振り分けする機能により、決定された出力先のリモートプリンタを管理するプリンタサーバへ出力データを送付して、リモートプリンタにより印刷出力を実行させ、印刷ジョブを監視する機能により、リモートプリンタの印刷ジョブの状態を監視するものとされている。
【００１３】
このような従来の構成では、ネットワークに接続された情報処理装置が出力先を決定し、その出力先に基づきデータを出力し、その後、出力先の印刷ジョブ状態を監視してエラーが発生した場合にエラーを通知することから、ユーザが使用する端末の画面上に、エラーの発生を表示させることはできる。しかしながら、情報処理装置においてレンダリングを行っている間は、振り分けする機能や印刷ジョブを監視する機能を起動させることはできない。このため、レンダリングや振り分けする機能を起動している間は、エラー情報をユーザ端末の画面上に表示させることはできない。また、どのプリンタに出力されるのかを通知する機能を有しないため、出力先をその画面上に表示させることもできない。
【００１４】
また、ポイントアンドプリント機能を利用してユーザ端末にプリンタドライバをインストールし、そのプリンタドライバを利用して描画処理を行った場合、情報処理装置の仮想プリンタドライバで描画処理を行わないことから当該仮想プリンタドライバが振り分けする機能を起動させることができず、適切に自動振り分けを行うことはできない。
【００１５】
そこで、どのプリンタで出力しているかを表示させることができ、どのような内容のエラーが発生したのかを随時クライアント側で知ることができるシステムや、その方法の提供が望まれていた。また、クライアント−サーバシステムのサーバ側の負荷を軽減したいときに、クライアント側で描画処理を行う場合であっても、自動振り分けを実現することができるシステムや、その方法の提供も望まれていた。
【課題を解決するための手段】
【００１６】
本発明は、上記課題に鑑み、クライアントコンピュータからの印刷指示を受けてアプリケーション実行手段が出力した印刷要求を受信し、ネットワークに接続される印刷装置を選択して印刷を実行させるデータ処理システムが提供される。このシステムは、サーバコンポーネントと、クライアントコンポーネントとから構成される。
【００１７】
サーバコンポーネントは、その印刷要求を受信し、印刷要求に含まれる文書データから各ページの画像データを生成し、印刷要求から印刷設定情報およびクライアントコンピュータのシステム情報を抽出し、画像データと印刷設定情報とシステム情報とから構成される中間データを生成する仮想プリンタドライバ手段と、印刷設定情報およびシステム情報の少なくとも１つの情報と各印刷装置とを対応付けた設定ファイルを保持し、生成された中間データに含まれる印刷設定情報およびシステム情報と設定ファイルとを照合し、出力先となる印刷装置を決定する出力先決定手段と、決定された出力先と中間データを構成する画像データとを取得し、出力先を通知するとともに画像データを出力する振り分け制御手段と、通知された出力先に従って、出力された画像データを、印刷装置の１つへ送信する振り分け手段とを含む。
【００１８】
クライアントコンポーネントは、決定された出力先の情報を振り分け手段から受信して、クライアントコンピュータの画面上に表示させる振り分け先情報受信手段と、出力先の印刷装置のジョブ処理状況を監視し、当該ジョブ処理状況を通知する印刷ジョブ監視手段と、印刷ジョブ監視手段を起動し、当該印刷ジョブ監視手段が通知したジョブ処理状況をクライアントコンピュータの画面上に表示させる印刷ジョブ監視制御手段とを含む。
【００１９】
このように、２つのコンポーネントに分けることで、それぞれの手段を別個に起動させることができ、サーバコンポーネントでレンダリングを行っている間であっても、クライアントコンポーネントで印刷ジョブの監視を実行し、エラーが発生した場合にはエラー情報を画面上に表示させることができ、また、出力先の情報も、受信してすぐに画面上に表示させることができる。１つの例では、ユーザが使用するクライアントコンピュータにクライアントコンポーネントを実装し、プリンタサーバにサーバコンポーネントを実装することができる。
【００２０】
仮想プリンタドライバ手段は、クライアントコンポーネントに実装することもでき、この場合、クライアントコンポーネントは、生成された中間データを振り分け制御手段へ転送する中間データ中継手段をさらに含む構成とされる。これにより、クライアント側で描画処理を行う場合であっても、描画処理済みデータを転送して自動振り分けを実現することができる。
【００２１】
印刷ジョブ監視制御手段は、印刷が終了した旨とともに、出力先の情報をクライアントコンピュータの画面上に表示させることができる。これにより、ユーザは、どの印刷装置で出力されたのかをクライアント上で知ることができる。
【００２２】
また、印刷ジョブ監視手段は、ジョブ処理中に印刷装置でエラーが発生した場合に、当該印刷装置からエラー情報を取得し、印刷ジョブ監視制御手段へ当該エラー情報を通知し、印刷ジョブ監視制御手段は、エラー情報をクライアントコンピュータの画面上に表示させることができる。これにより、出力先の印刷装置でどのようなエラーが発生したかを知ることができる。
【００２３】
出力先決定手段は、上記のようにして照合した結果、該当する出力先が得られない場合、振り分け先情報受信手段にその旨を通知し、振り分け先情報受信手段が、クライアントコンピュータの画面上に出力先の印刷装置を選択させる選択画面を表示させることができる。また、ユーザによる印刷装置の選択に応答して、振り分け先情報受信手段は、印刷ジョブ監視制御手段に選択された印刷装置の情報を送り、印刷ジョブ監視手段に選択された印刷装置を監視させるとともに、出力先決定手段にその情報を送って、選択された印刷装置を出力先となる印刷装置として決定することができる。これにより、出力先が得られない場合であっても、ユーザが印刷装置を選択し、その選択した印刷装置により印刷を行い、その印刷装置のジョブ処理状況をクライアントコンピュータで監視することができる。
【００２４】
出力先決定手段は、印刷中止の指示を受け付けたことに応答して、振り分け制御手段を介して振り分け先情報受信手段に印刷中止を通知し、振り分け先情報受信手段がクライアントコンピュータの画面上に印刷を中止した旨を表示させる。仮想プリンタドライバ手段がサーバコンポーネントに実装される場合は振り分け制御手段が、クライアントコンポーネントに実装される場合は振り分け先情報受信手段が、当該仮想プリンタドライバ手段に印刷を中止したことを通知して、前記中間データを削除する。クライアントコンピュータの画面上に印刷が中止されたことを表示することで、実際に中止されたことを確認することができ、また、不要になった中間データを削除することで、メモリ使用量を削減することができる。
【００２５】
上記では、出力先決定手段は、印刷設定情報については書き換えることなく、決定した出力先の情報のみを振り分け制御手段へ通知するが、印刷設定情報を設定ファイルの内容に書き換えて、出力先の情報とともに通知することも可能である。このため、設定ファイルの内容で書き換えられた印刷設定情報に基づき、印刷を実行することができる。
【００２６】
本発明では、上記のデータ処理システムのほか、このデータ処理システムにより実行される印刷制御方法、その方法を実行するためのコンピュータ可読なプログラム、このプログラムを記録した記録媒体も提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明のデータ処理装置を含むプリンタネットワークの実施形態を示した図。
【図２】本発明のデータ処理装置の１つの構成例を示した機能ブロック図。
【図３】データ処理装置の別の構成例を示した機能ブロック図。
【図４】図２に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図５】図２に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図６】図２に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図７】図３に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図８】図３に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図９】図３に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図１０】図３に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図１１】図３に示すデータ処理装置で行われる処理の流れを示したフローチャート図。
【図１２】出力先決定部で使用される設定ファイルの構成を例示した図。
【図１３】クライアントコンピュータの画面上に表示された振り分け結果を例示した図。
【図１４】画面上に表示されたエラー情報を例示した図。
【図１５】画面上に表示されたプリンタ選択ダイアログを例示した図。
【図１６】画面上に表示されたキャンセルダイアログを例示した図。
【発明を実施するための形態】
【００２８】
図１は、本発明のデータ処理システムを含むプリンタネットワークの実施形態を示した図である。プリンタネットワーク１０は、オフィス等に配置される複数のクライアントコンピュータ１１〜１４がネットワーク１５に接続されて構成されている。また、ネットワーク１５には、サーバコンピュータ１６が接続され、各クライアントコンピュータ１１〜１４からの印刷要求を処理するように構成されている。ネットワーク１５には、さらに、ＭＦＰ(Multi Function Peripheral)１７、レーザプリンタ１８、１９、インクジェットプリンタ２０等がリモートプリンタとして接続されている。
【００２９】
クライアントコンピュータ１１〜１４およびサーバコンピュータ１６は、それぞれが、シングルコア、マルチコアのＣＰＵ、ＲＯＭ、実行空間を提供するＲＡＭ、ハードディスク装置、ネットワーク１５に接続するためのネットワークインタフェース(NIC)等を含み、Ｗｉｎｄｏｗｓ（登録商標）といったオペレーティングシステム(OS)による制御の下、各種処理を実行する。クライアントコンピュータ１１〜１４は、そのほか、入力装置としてキーボードやマウスを備え、表示装置として液晶ディスプレイを備える。
【００３０】
クライアントコンピュータ１１〜１４は、それぞれがアプリケーションプログラムを実装し、各種処理を完結するパーソナルコンピュータやワークステーション等から構成することができる。クライアントコンピュータ１１〜１４は、ハードディスク装置等からアプリケーションプログラムやデータをＲＡＭに読み込み、ＣＰＵがそのアプリケーションプログラムを実行することにより、文書、イメージ、マルチメディア、これらが複合的に組み合わされた電子的データとして印刷対象とする文書ファイルを生成し、各リモートプリンタへと印刷処理を依頼することができる。ここでは、クライアントコンピュータ１１〜１４がアプリケーションプログラムを実装し、文書ファイルを生成する構成としているが、サービス要求を発行して、別途設けられるアプリケーションサーバ等に実行させ、処理結果を受領して印刷出力を依頼する機能のみを実装する、いわゆるシンクライアントとして構成されていてもよい。
【００３１】
ネットワーク１５は、１０００Ｂａｓｅ−ＴＸ等のイーサネット（登録商標）、光ネットワーク、ＩＥＥＥ８０２．１１等の規格の無線ネットワークを含んで構成することができ、フレームまたはＴＣＰ／ＩＰプロトコルに基づくパケット通信によって、相互通信を行うことができる。ネットワーク１５は、ＬＡＮ(Local Area Network)、ＶＰＮ(Virtual Private Network)等によるセキュア環境下でインターネット等の広域ネットワークを含んで構成されてもよい。
【００３２】
サーバコンピュータ１６は、クライアントコンピュータ１１〜１４からの印刷要求を受領し、各種条件に応じて、適切な出力先とするリモートプリンタを決定し、印刷データを自動振り分けする処理を行う。サーバコンピュータ１６は、リモートプリンタを管理するプリンタサーバの機能を有し、リモートプリンタが解釈可能なコマンドを生成するプリンタドライバを実装し、当該コマンドを決定されたリモートプリンタへ出力し、印刷を実行させる。ここではサーバコンピュータ１６がプリンタサーバの機能を有する構成としたが、プリンタサーバを別途設けてもよい。
【００３３】
クライアントコンピュータ１１〜１４は、ポイントアンドプリント機能によりサーバコンピュータ１６との間の接続を確立する。これらの間の接続は、上述したＲＰＣ接続やＳＭＢ接続により確立することができる。これらは、クライアントコンピュータ１１〜１４からサーバコンピュータ１６へ要求メッセージ等を送信し、サーバコンピュータ１６が応答を返すことにより確立することができ、クライアントコンピュータにおいて、例えばファイル名を指定して実行することにより、また、同一のワーキンググループあるいは同一のドメインに含まれるコンピュータを一覧するＮｅｔ  Ｖｉｅｗコマンドを使用して、接続を確立することができる。なお、クライアントコンピュータ１１〜１４とサーバコンピュータ１６との間は、ＲＤＰ(Remote Desktop Protocol)等の適切な遠隔接続プロトコルを使用して通信を行うことができる。
【００３４】
ユーザは、クライアントコンピュータ１１〜１４の１つを利用し、それに実装されているアプリケーションプログラムを使用して文書を作成することができ、その作成した文書を印刷したい場合、アプリケーションプログラムを起動して印刷設定を行い、印刷設定情報と文書データとを含めて印刷要求を作成する。ここで、印刷設定情報としては、例えば、用紙の種類、用紙のサイズ、用紙の向き、枚数、フォント、カラーまたはモノクロ印刷、印刷倍率、両面印刷の有無、集約印刷の有無、行数、列数、フォントサイズ等が挙げられる。
【００３５】
実際には、アプリケーションプログラムを実行するＣＰＵが、アプリケーション実行手段として機能し、この手段が、上記の文書データおよび印刷設定情報、さらには、クライアントコンピュータ１１〜１４のＩＰアドレス、ＭＡＣアドレス、そのクライアントコンピュータに付されたコンピュータ名、サービスを利用する際にユーザが入力するユーザ名等のシステム情報を含めて印刷要求を作成し、その印刷要求を、後述するサーバ側でレンダリングを行う場合はサーバコンピュータ１６へ送信する。クライアント側でレンダリングを行う場合は、クライアントコンピュータ１１〜１４が備える、後述する仮想プリンタドライバへ送る。
【００３６】
クライアントコンピュータ１１〜１４は、アプリケーションプログラムのほか、仮想プリンタドライバやその他の必要な機能を有するように構成される。これらの機能は、クライアントコンポーネントとして実装され、出力先がどのリモートプリンタであるかという情報の通知を受領し、また、各リモートプリンタとの間で通信を行い、各リモートプリンタのジョブ処理状況を監視して、その出力先の情報およびどのようなエラーが発生したかという情報をクライアントコンピュータ１１〜１４の画面上に表示させることを可能にする。また、クライアントコンピュータ１１〜１４でレンダリングを行う場合、クランアントコンポーネントは、レンダリングした文書をページ単位で切り出し、それを中間画像とし、その中間画像の画像データを、印刷設定情報およびシステム情報とともに中間データとしてサーバコンピュータ１６へ転送する。
【００３７】
サーバコンピュータ１６は、プリンタサーバの機能のほか、仮想プリンタドライバやその他の必要な機能を有するように構成される。この仮想プリンタドライバおよび必要な機能は、サーバコンポーネントとして実装され、文書データを受領した場合にレンダリングを行い、中間画像の画像データを生成し、受領した印刷設定情報およびシステム情報から出力先を決定し、その出力先へ画像データを送信する。ここでは、サーバコンピュータ１６がプリンタサーバの機能を有することから、プリンタが解釈可能なコマンドを生成し、そのコマンドを画像データに追加して出力先のプリンタへ出力する。
【００３８】
サーバコンピュータ１６は、クライアントコンピュータ１１〜１４でレンダリングを行い、中間データを転送する場合、サーバコンポーネントでレンダリングを行うことなく、転送された中間データを受け取り、その中間データから出力先を決定し、その出力先へ画像データを送信する。サーバコンポーネントは、クライアントコンピュータ１１〜１４の画面上に出力先を表示させるために、決定した出力先の情報をクライアントコンポーネントへ送信する。
【００３９】
本発明のデータ処理装置は、上記のクライアントコンポーネントと、上記のサーバコンポーネントとから構成されるものであり、これらの機能は、クライアントコンピュータ１１〜１４およびサーバコンピュータ１６が備えるＲＡＭ等にプログラムを読み込み、ＣＰＵがそのプログラムを実行することにより、各コンピュータ上に各機能手段として実現される。
【００４０】
リモートプリンタは、ネットワークインタフェース(NIC)を実装し、サーバコンピュータ１６から受け取ったコマンドを、ネットワーク１５を介して受信し、印刷ジョブを実行する。なお、ＭＦＰ１７は、ネットワークボードでネットワーク１５に接続されたリモートプリンタとして実装することもできるし、プリント機能するほか、プリンタサーバの機能を含んで実装することも可能である。
【００４１】
クライアントコンピュータ１１〜１４につき、どのリモートプリンタを出力先として選択するかは、印刷枚数等の印刷設定情報や、ユーザ名やＩＰアドレスといったシステム情報により選択することができ、これらの情報を以下に説明する設定ファイルとしてサーバコンポーネントが保持し、照合時に使用することができる。
【００４２】
図２は、データ処理システムの１つの構成例を示した機能ブロック図である。データ処理システムは、クライアントコンポーネントと、サーバコンポーネントとから構成され、クライアントコンポーネントがクライアントコンピュータ１１〜１４に、サーバコンポーネントがサーバコンピュータ１６にそれぞれ実装される。この図２は、ポイントアンドプリント機能を利用し、ＲＰＣ接続を行って印刷を実行するシステムの構成例を示した図である。以下、クライアントコンピュータ１１〜１４のうち、ユーザが使用するものをクライアントコンピュータ１１として説明を行う。
【００４３】
このデータ処理システムは、クライアントコンポーネント３０に、仮想プリンタドライバ３１、印刷ジョブ監視制御部３２、振り分け先情報受信部３３、複数の印刷ジョブ監視部３４を含み、サーバコンポーネント４０に、仮想プリンタドライバ４１、中間データ保存部４２、出力先決定部４３、振り分け制御部４４、複数の振り分け部４５を含んで構成されている。ここでは、各部として説明しているが、これらは各手段として機能するものである。
【００４４】
図２には、データ処理システムには含まれないアプリケーション実行手段としてのアプリケーション５０、各々が複数の振り分け部４５の各々に対応した複数のプリントキュー５１、各々が各プリントキュー５１に対応した複数のプリンタ５２が示されている。アプリケーション５０は、クライアントコンピュータ１１に実装されていてもよいし、上述したアプリケーションサーバに実装されるものであってもよい。
【００４５】
上述した従来の情報処理装置では、仮想プリンタドライバ、出力先決定部、振り分け部、印刷ジョブ監視部から構成されていたが、ポイントアンドプリント機能を使用した印刷では、仮想プリンタドライバによる処理が、従来の仮想プリンタドライバによる処理とは異なることから、従来の構成ではポイントアンドプリント機能を使用することができない。このため、本発明のように、２つのコンポーネントに分け、各コンポーネントをクライアントコンピュータ１１およびサーバコンピュータ１６にそれぞれ実装して、ポイントアンドプリント機能の使用を実現する。
【００４６】
図２に示す構成を採用するデータ処理システムで行われる処理は、サーバサイドレンダリングと呼ばれ、Ｗｉｎｄｏｗｓ（登録商標）のポイントアンドプリント機能を使用した際の印刷方式の１つである。この印刷方式は、プリンタドライバの描画処理をポイントアンドプリント機能におけるサーバ上で行う方式である。このサーバサイドレンダリング時は、プリンタドライバ、ここでは仮想プリンタドライバによる描画処理がサーバ上で行われ、振り分け部が提供する振り分け機能や、印刷ジョブ監視部が提供する印刷ジョブ監視機能を１つの端末やサーバの中で起動することができなくなることから、本発明では、これらを分け、それぞれを別の装置に実装する。これにより、クライアントコンピュータ１１では、アプリケーション５０からの印刷要求のタイミングで仮想プリンタドライバ３１が印刷ジョブ監視制御部３２および振り分け先情報受信部３３を起動し、サーバコンピュータ１６上で行われる描画処理や振り分け処理に対し、正しく出力先の情報を受信したり、プリンタの監視を行うことができるように準備しておくことができる。
【００４７】
このデータ処理システムにおける処理は、アプリケーション５０から印刷要求が送られると、ＯＳによってクライアントコンポーネント３０の仮想プリンタドライバ３１が起動され、全体の処理が開始される。
【００４８】
サーバコンポーネント４０の仮想プリンタドライバ４１は、クライアントコンポーネント３０の仮想プリンタドライバ３１の処理が終了したことを受けて、サーバコンピュータ１６に実装されるＯＳによって起動される。
【００４９】
クライアントコンポーネント３０およびサーバコンポーネント４０には、それぞれ仮想プリンタドライバ３１、４１が設けられるが、それぞれで動作が異なる。クライアントコンポーネント３０の仮想プリンタドライバ３１は、クライアントコンピュータ１１に実装されるＯＳによって起動された後、印刷ジョブ監視制御部３２と振り分け先情報受信部３３が起動していない場合には、それらを起動する。これに対し、サーバコンポーネント４０の仮想プリンタドライバ４１は、印刷要求に含まれる文書データから各ページの画像データである中間画像の画像データを生成し、印刷要求に含まれる印刷設定情報およびシステム情報とともに中間データを構成して出力する。
【００５０】
すなわち、サーバコンポーネント４０の仮想プリンタドライバ４１は、従来の装置の仮想プリンタドライバと同様、アプリケーション５０から印刷要求があった文書をページ単位で中間画像の画像データとして中間データ保存部４２に保存し、文書名や印刷設定を印刷設定情報として中間データ保存部４２に保存し、この処理を実行させているユーザの情報としてユーザ名や、使用しているクライアントコンピュータの端末名（ホスト名）、ＩＰアドレス、ＭＡＣアドレス等をシステム情報として、同じく中間データ保存部４２に保存する。また、この仮想プリンタドライバ４１は、振り分け制御部４４に対し、振り分け指示を行い、この振り分け制御部４４が起動していない場合には起動させる。
【００５１】
振り分け制御部４４は、仮想プリンタドライバ４１が出力した中間データを転送するために、複数の振り分け部４５を起動させ、所望の振り分け部４５に対して中間データの保存場所を通知する。また、振り分け制御部４４は、出力先を決定するために、出力先決定部４３を呼び出し、出力先決定部４３が返信した出力先のアドレスを所望の振り分け部４５に送る。
【００５２】
出力先決定部４３は、仮想プリンタドライバ４１が生成した中間データの印刷設定情報およびシステム情報と、予め設定しておいた情報とを照合し、条件に合致する出力先を決定して振り分け制御部４４に返信する。例えば、予めユーザ名「Ｔａｒｏ」から指示された印刷はプリンタＡから出力する、という設定をしておいた場合、印刷時、出力先決定部４３は、振り分け制御部４４から呼び出され、呼び出された出力先決定部４３がシステム情報内を確認して、どのユーザから印刷されたのかを判断し、事前に設定しておいた条件と照らし合わせ、出力先であるプリンタ５２に対応したプリントキュー５１のアドレスを振り分け制御部４４に返信する。
【００５３】
複数の振り分け部４５は、振り分け制御部４４により起動され、仮想プリンタドライバ４１が生成した中間データの中間画像の画像データを、印刷設定情報の印刷設定に従って、振り分け制御部４４から通知された出力先に出力する。また、出力先から、実際に印刷しているプリンタの情報、例えばＩＰアドレス等を取得し、振り分け先情報受信部３３にその情報を送る。
【００５４】
振り分け先情報受信部３３は、サーバコンポーネント４０にある振り分け部４５から出力先の情報を受信する。そして、振り分け先情報受信部３３は、受信した出力先の情報を印刷ジョブ監視制御部３２に送る。
【００５５】
印刷ジョブ監視制御部３２は、仮想プリンタドライバ３１によって起動され、振り分け先情報受信部３３から中間画像の出力先の情報を受け取る。印刷ジョブ監視制御部３２は、出力先のプリンタ５２を監視する印刷ジョブ監視部３４を起動させ、出力先のプリンタ５２の情報を印刷ジョブ監視部３４に送る。
【００５６】
印刷ジョブ監視部３４は、印刷ジョブ監視制御部３２によって起動され、印刷ジョブ監視制御部３２からの通知を受けて、監視すべき出力先のプリンタ５２を特定する。印刷ジョブ監視部３４は、監視すべきプリンタ５２からプリンタ５２のジョブ処理状況としてステータス情報を取得し、エラーが発生した場合、ユーザが使用するクライアントコンピュータ１１の画面上にプリンタ５２から取得したエラーの内容をエラー情報として表示させる。また、印刷ジョブ監視部３４は、エラーなく印刷ジョブを終了し、ユーザがアプリケーション５０上で印刷要求した文書がプリンタ５２から出力されると、印刷が完了した旨のメッセージと、出力したプリンタ５２の情報とをクライアントコンピュータ１１の画面上に表示させる。
【００５７】
ここまで、サーバサイドレンダリングを行うシステムについて説明してきたが、ポイントアンドプリント機能を使用した印刷方式には、クライアントサイドレンダリングと呼ばれるものも存在する。このクライアントサイドレンダリングとは、Ｗｉｎｄｏｗｓ  Ｖｉｓｔａ（登録商標）以降のＷｉｎｄｏｗｓ（登録商標）のＯＳで採用されているポイントアンドプリント機能を使用した印刷方式の１つで、プリンタドライバの描画処理をプリントアンドポイント機能におけるクライアント上で行う方式である。このクライアントサイドレンダリングを行うシステムでは、プリンタドライバ、ここでは仮想プリンタドライバの描画処理がクライアントコンピュータ１１上の仮想プリンタドライバ３１で行われることから、サーバコンピュータ１６にある振り分け部４５を起動させることができない。このため、この装置では、新たに中間データを転送するための手段が必要とされる。
【００５８】
図３は、クライアントサイドレンダリングを行うデータ処理システムの構成例を示した図である。この図３に示すデータ処理システムも、図２に示すサーバサイドレンダリングを行うシステムと同様の、クライアントコンポーネント３０とサーバコンポーネント４０とから構成され、クライアントコンポーネント３０に、仮想プリンタドライバ３１、印刷ジョブ監視制御部３２、振り分け先情報受信部３３、複数の印刷ジョブ監視部３４を含み、サーバコンポーネント４０に、仮想プリンタドライバ４１、出力先決定部４３、振り分け制御部４４、複数の振り分け部４５を含んで構成されるが、中間データ保存部がクライアントコンポーネント３０に中間データ保存部３５として含まれ、このクライアントコンポーネント３０に、中間データ中継部３６をさらに備えている。
【００５９】
この構成では、仮想プリンタドライバ３１により描画処理を行い、中間画像の画像データ、印刷設定情報およびシステム情報を含む中間データを中間データ保存部３５へ保存する。そして、中間データ保存部３５へ保存された中間データを、中間データ中継部３６が、サーバコンポーネント４０の振り分け制御部４４が起動されたことを検知して、その振り分け制御部４４へ転送する。
【００６０】
中間データ中継部３６による中間データの転送は、これまでに知られたいかなる方法でも使用して行うことができる。例えば、ＦＴＰ(File Transfer Protocol)やＳＭＢ(Server Message Block)といったプロトコルを使用して、また、特定のポートでソケットを開いて通信を行うことにより実現することができる。
【００６１】
これまでに説明してきたサーバサイドレンダリングおよびクライアントサイドレンダリングにおける処理の流れを、図４〜図１１に示すフローチャート図を参照しながら詳細に説明する。まず、図４〜図６を参照して、サーバサイドレンダリングにおける処理について説明する。なお、図４〜図６に示す処理は、図中のポイントＯおよびＰにより処理フローが連結されていることに留意されたい。
【００６２】
ユーザは、自己が使用するクライアントコンピュータ１１上でアプリケーション５０のアイコンをダブルクリックする等して開く。アプリケーション５０を使用して印刷対象の文書を作成することもできるが、予め作成しておいた文書を読み出し、表示させることもできる。このようにしてクライアントコンピュータ１１の画面上に表示された文書について、ユーザは、アプリケーション５０を通して印刷指示する。具体的には、印刷ボタンを押下する等して印刷指示を行う。このとき、用紙サイズや部数といった印刷設定も行われる。これにより、データ処理システムは、図４のステップ４００から処理を開始する。
【００６３】
ステップ４０５で、クライアントコンピュータ１１に実装されるクライアントコンポーネント３０の仮想プリンタドライバ３１は、アプリケーション５０からの印刷指示を受けたＯＳによって起動される。起動された仮想プリンタドライバ３１は、ステップ４１０で、印刷ジョブ監視制御部３２が起動しているかを判断し、起動していない場合、ステップ４１５へ進み、印刷ジョブ監視制御部３２を起動させる。なお、既に起動している場合は、仮想プリンタドライバ３１は特に何も行わず、ステップ４２０へ進む。
【００６４】
次に、ステップ４２０で、仮想プリンタドライバ３１は、振り分け先情報受信部３３が起動しているかを判断し、起動していない場合、ステップ４２５へ進み、振り分け先情報受信部３３を起動させる。この場合も、既に起動しているとき、仮想プリンタドライバ３１は何も行わず、ステップ４３０へ進む。
【００６５】
仮想プリンタドライバ３１による処理が終了した後、アプリケーション５０から印刷指示が印刷要求として、サーバコンピュータ１６に実装されるＯＳへ送られ、そのＯＳは、ステップ４３０で、サーバコンポーネント４０の仮想プリンタドライバ４１を起動し、その仮想プリンタドライバ４１へ印刷要求を送り、その仮想プリンタドライバ４１に処理を実行させる。仮想プリンタドライバ４１は、印刷要求から中間データを生成し、中間データを出力し、中間データ保存部４２に保存する。
【００６６】
仮想プリンタドライバ４１は、上記中間データを出力する処理のほか、ステップ４３５で、振り分け制御部４４が起動しているかを判断し、起動されていない場合、ステップ４４０で起動させる。既に起動されている場合は、特に何も行わず、ステップ４４５へ進む。
【００６７】
振り分け制御部４４は、起動されると、ステップ４４５で、出力先決定部４３を起動させ、出力先決定部４３が、ステップ４５０で、中間データ保存部４２に保存された中間データを基に、出力先を決定し、振り分け制御部４４にその決定した出力先の情報を返信する。ここからが、具体的な自動振り分けを行う処理である。
【００６８】
図５を参照して、振り分け制御部４４は、ステップ５００で、上記の出力先決定部４３のほか、振り分け部４５も起動させる。なお、振り分け制御部４４は、決定された出力先に従って、所望の振り分け部４５を起動させることができる。起動された振り分け部４５は、ステップ５０５で、振り分け制御部４４から出力先の情報と中間データとを渡され、中間データに含まれる中間画像の画像データを、順次、出力先のプリンタ５２に対応するプリントキュー５１へ振り分ける。プリントキュー５１は、出力先のプリンタ５２に対応するプリンタドライバを保持しており、ステップ５１０で、そのプリンタドライバを使用して、中間画像の画像データをそのプリンタ５２が解釈可能なコマンドへ変換し、プリンタ５２へ出力する。プリンタ５２は、ステップ５１５で、プリントキュー５１から出力されたコマンドを受け付けると、そのコマンドを基に紙面上に印字し、印刷出力を行う。この印刷出力が終了したところで、ステップ５２０へ進み、振り分け処理を終了する。
【００６９】
次に、振り分け処理中の印刷ジョブの監視であるが、図５に示すステップ５００で振り分け制御部４４によって起動された振り分け部４５は、図６に示すステップ６００で、上記の振り分け処理を行う際、振り分け先情報受信部３３に出力先の情報を送り、振り分け先情報受信部３３が、ステップ６０５で、出力先の情報を印刷ジョブ監視制御部３２へ送る。印刷ジョブ監視制御部３２は、この情報の送付を受けて、ステップ６１０で、印刷ジョブ監視部３４を起動させ、出力先の情報を送る。
【００７０】
印刷ジョブ監視部３４は、ステップ６１５で、出力先の情報を基にプリンタ５２を特定し、そのプリンタ５２との間で通信を確立する。そして、印刷ジョブ監視部３４は、印刷ジョブが終了するまで、すなわちプリンタ５２において文書が印字されて出力されるまで、そのプリンタ５２の状態を監視し、エラーが発生した場合、それを検知し、エラー情報をプリンタ５２から取得してクライアントコンピュータ１１の画面上にダイアログ表示させ、ステップ６２０で、この処理を終了する。また、エラーが発生することなく印刷ジョブを終了した場合、どのプリンタ５２に出力したかという情報を、クライアントコンピュータ１１の画面上にダイアログ表示させ、ステップ６２０で、この処理を終了する。
【００７１】
なお、中間データを中間データ保存部４２から削除するタイミングは、プリントキュー５１へ出力した後であれば、いかなるタイミングであってもよい。また、プリンタ５２上で何らかのエラーが発生した場合、この中間データを使用して代行印刷を行うことが可能であるので、代行印刷するプリントキュー５１へ出力するまで保存しておくことも可能である。
【００７２】
次に、図７〜図１１を参照して、クライアントサイドレンダリングにおける処理について説明する。図７〜図１１に示す処理は、図中のポイントＱ、Ｒ、Ｓにより処理フローが連結されていることに留意されたい。図４に示すサーバサイドレンダリングの処理と同様、ユーザがアプリケーション５０を開き、そのアプリケーション５０を通して文書の印刷指示を行う。
【００７３】
クライアントコンピュータ１１上のＯＳが印刷指示を受け付けると、図７のステップ７００から処理を開始し、ステップ７０５で、ＯＳが仮想プリンタドライバ３１を起動させ、起動した仮想プリンタドライバ３１が、ステップ７１０で、印刷ジョブ監視制御部３２が起動しているかを判断する。仮想プリンタドライバ３１は、起動していない場合にステップ７１５で起動させ、既に起動されている場合は何も行わず、ステップ７２０へ進む。仮想プリンタドライバ３１は、ステップ７２０で、振り分け先情報受信部３３が起動しているかを判断し、起動していない場合にステップ７２５で起動させる。既に起動している場合は何も行わず、ステップ７３０へ進む。
【００７４】
上記のサーバサイドレンダリングとは異なり、クライアントコンピュータ１１上の仮想プリンタドライバ３１は、アプリケーション５０から印刷要求を受け取り、ステップ７３０で、描画処理を行い、中間データを生成して中間データ保存部３５に保存する。
【００７５】
上記の中間データ保存部３５へ中間データを保存し、仮想プリンタドライバ３１による処理が終了したところで、サーバコンピュータ１６上のＯＳへ印刷指示が送られ、印刷指示を受けたＯＳは、仮想プリンタドライバ４１を起動させる。仮想プリンタドライバ４１は、図８に示すステップ８００で、振り分け制御部４４が起動しているかを判断する。起動していない場合はステップ８０５で起動させ、既に起動している場合は何も行わず、図９に示す次のステップへ進む。
【００７６】
このようにしてクライアントコンピュータ１１およびサーバコンピュータ１６の自動振り分けを行う準備が完了したところで、中間データ中継部３６が、図９のステップ９００において、中間データ保存部３５に保存された中間データを取り出し、振り分け制御部４４へ転送する。この転送処理は、クライアントコンポーネント３０の中間データ保存部３５に中間データを保存し、サーバコンポーネント４０の仮想プリンタドライバ４１を起動させ、振り分け制御部４４を起動させた後に行われる。
【００７７】
振り分け制御部４４は、ステップ９０５で、中間データを受け取り、ステップ９１０で、出力先決定部４３を起動させる。そして、振り分け制御部４４は、出力先決定部４３へ中間データを送り、出力先決定部４３が、ステップ９１５において、受け取った中間データを基に出力先を決定し、出力先の情報を振り分け制御部４４へ返信する。
【００７８】
振り分け制御部４４は、図１０に示すステップ１０００において、決定された出力先から所望の振り分け部４５も起動させ、ステップ１００５で、起動された振り分け部４５が、中間画像の画像データを出力先決定部４３から受け取った出力先の情報に基づき振り分ける。振り分け部４５は、中間データに含まれる中間画像の画像データを、出力先のプリンタ５２に対応するプリントキュー５１に振り分ける。
【００７９】
プリントキュー５１は、ステップ１０１０で、振り分けられた中間画像の画像データを、プリンタ５２に対応するプリンタドライバを使用して、そのプリンタ５２が解釈可能なコマンドへ変換し、プリンタ５２へ出力する。プリンタ５２は、ステップ１０１５で、そのコマンドを受け取ると、そのコマンドを基に紙面上に印字して印刷出力する。この印刷出力が完了したところで、ステップ１０２０へ進み、処理を終了する。
【００８０】
この振り分け処理中、印刷ジョブを監視するため、振り分け部４５は、図１１に示すステップ１１００において、振り分け先情報受信部３３に、振り分け制御部４４から受け取った出力先の情報を送る。振り分け先情報受信部３３は、ステップ１１０５で、その出力先の情報を印刷ジョブ監視制御部３２に送る。そして、ステップ１１１０で、印刷ジョブ監視制御部３２が、その情報から出力先のプリンタ５２を特定し、監視すべき印刷ジョブ監視部３４を起動させる。起動した印刷ジョブ監視部３４は、ステップ１１１５で、プリンタ５２との間の通信を確立し、プリンタ５２を監視する。
【００８１】
プリンタ５２においてエラーが発生し、印刷ジョブ監視部３４がそのエラーを検知すると、プリンタ５２からそのエラー情報を取得し、クライアントコンピュータ１１の画面上にダイアログ表示させ、ステップ１１２０で処理を終了する。一方、エラーが発生することなく印刷ジョブが終了した場合は、振り分け先情報受信部３３は、振り分け部４５から受け取った出力先の情報を、クライアントコンピュータ１１の画面上にダイアログ表示させ、ステップ１１２０で処理を終了する。
【００８２】
この場合の中間データを中間データ保存部３５から削除するタイミングも、中間データをプリントキュー５１へ出力した後であればいかなる時であってもよい。なお、プリンタ５２上で何かエラーが発生した場合、この中間データを使用して代行印刷してもよく、この場合には代行印刷するプリンタ５２に対応するプリントキュー５１へ出力された後に削除することができる。
【００８３】
出力先決定部４３は、出力先を決定するために中間データと予め設定しておいた情報とを参照することができるが、この予め設定しておく情報は、図１２に示すような情報とすることができる。出力先を決定するにあたり、図１２に示す設定ファイルの［Ｍｏｄｅ］セクションを参照し、どのモードで出力先を決定するかを判断する。
【００８４】
図１２に示す例では、［Ｍｏｄｅ］セクションに、ユーザ名、ホスト名、ＩＰアドレス、キーワード、カラーモード、コピーという６つの設定があり、ユーザ名が１とされ、その他が０とされているため、ユーザ名によって出力先を決定するように設定されている。したがって、出力先決定部４３は、中間データに含まれるシステム情報の中のユーザ名を参照し、どのユーザ名で印刷が実行されているかを判断する。
【００８５】
出力先決定部４３は、システム情報の中に「Ｔａｒｏ」というユーザ名がある場合、この「Ｔａｒｏ」で印刷が実行されていると判断し、ユーザ名によって出力先を決定するべく、図１２に示す設定ファイルの中の［ＵｓｅｒＮａｍｅ］セクション内の「Ｔａｒｏ」を探し出し、「ＰｒｉｎｔｅｒＡ」という名前のプリンタ５２を出力先として決定する。そして、この出力先の情報を、振り分け制御部４４へ送る。
【００８６】
上記ではユーザ名によって出力先を決定したが、印刷指示をしたクライアントコンピュータ１１の端末名（ホスト名）やそのＩＰアドレス、画像情報に含まれるテキストや画像、カラーかモノクロか、印刷部数等を、システム情報と照合し、出力先を決定したり、印刷設定を、例えばカラーからモノクロへ強制的に書き換えて出力することも可能である。また、出力先を決定するためのモードは、ユーザ名のみといったように１つに限定されるものではなく、ユーザ名とホスト名といったように２つ以上組み合わせ、これら２つをシステム情報と照合して出力先を決定することもできる。なお、この場合、異なる２つ以上の出力先が決定されることがあるが、予め設定した優先順位や、出力先のジョブ処理状況等に応じて、１つの出力先を決定することができる。
【００８７】
印刷ジョブ監視部３４は、印刷ジョブが終了するまで、すなわち文書がプリンタ５２で紙面上に印字され出力されるまで監視するが、正常に印字され出力されると、図１３に示すような振り分け結果ダイアログを、ユーザが使用するクライアントコンピュータ１１の画面上に表示させる。この図１３では、中間データに含まれる印刷情報からジョブ名が取得され、ダイアログ内にその取得したジョブ名「Ｊｏｂ００１」と、出力先である「プリンタＡ」とを表示している。
【００８８】
また、印刷ジョブ監視部３４は、エラーが発生した場合にそのエラー情報も表示し、例えば、図１４に示すようなエラー情報をエラーダイアログとして表示させる。この図１４では、出力先である「プリンタＡ」において「紙詰まり」というエラーが発生したことを、エラー情報として表示している。このエラー情報は、プリンタ５２との間で通信を行うことで取得することができるが、具体的には、ＳＮＭＰ(Simple Network Management Protocol)を使用して参照するＭＩＢ(Management Information Base)情報をプリンタ５２から取得し、取得した情報の中の対応する文字列、ここでは「紙詰まり」をテンプレートに挿入して文章を構成し、表示させることができる。
【００８９】
ダイアログは、印刷ジョブ監視部３４のみならず、振り分け先情報受信部３３もクライアントコンピュータ１１の画面上に表示させることができる。出力先決定部４３は、中間データと予め設定しておいた設定ファイルとを照合して出力先を決定するが、条件に該当する出力先が得られない場合や、設定ファイルがない等の予期しない事態が発生した場合に、例えば、振り分け先情報受信部３３に通知し、図１５に示すようなプリンタ選択ダイアログをクライアントコンピュータ１１の画面上に表示させることができる。
【００９０】
図１５では、リモートプリンタが選択され、「ＰｒｉｎｔｅｒＡ」、「ＰｒｉｎｔｅｒＢ」、「ＰｒｉｎｔｅｒＣ」の３つが選択可能にされている。ユーザが３つのうちの１つを選択し、「ＯＫ」ボタンを押下すると、振り分け先情報受信部３３がその選択した出力先の情報を印刷ジョブ監視制御部３２へ送り、出力先決定部４３にも送り、出力先決定部４３は、そのユーザが選択した出力先を、決定した出力先として振り分け制御部４４へ通知する。
【００９１】
このようにプリンタ５２を選択し、そのプリンタ５２で出力させることも可能であるが、印刷を中止したい場合もある。印刷を中止したい場合、図１５に示す「キャンセル」ボタンを押下する。すると、出力先決定部４３は、これを検出し、振り分け先情報受信部３３へ印刷を中止する旨を通知し、振り分け先情報受信部３３が、図１６に示すような印刷がキャンセルされた旨のダイアログをクライアントコンピュータ１１の画面上に表示させる。
【００９２】
このように、２つのコンポーネントに分け、各コンポーネントを２つの装置に実装させることで、一方がレンダリングを行っている間に、他方で印刷ジョブ監視部や振り分け先情報受信部を起動させることができるため、サーバ上での描画や振り分け処理に対し、正しい出力先を表示させることができ、エラー情報も即時に表示させることができる。また、クライアント側で描画処理を行った場合でも、振り分け処理を実行することができる。
【００９３】
また、設定ファイルに該当する出力先がない場合のユーザ選択ダイアログを表示させることができるため、別途プリンタを指定し、各種の印刷設定を行い、印刷指示するといった動作を行うことなく、プリンタを選択するのみで、印刷を実行することができる。このユーザ選択ダイアログでは、キャンセルボタンを押下することで、印刷を中止することができ、その旨を表示させることができるので、無駄な印刷を防止することができる。
【００９４】
これまで本発明を、データ処理システム、そのデータ処理システムにより実行される印刷制御方法として上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、本発明は、上記のデータ処理システムおよび印刷制御方法のみならず、その方法を実行するためのコンピュータ可読なプログラムや、そのプログラムが記録された記録媒体も提供することができ、当然にして、データ処理システムを構成するクライアント側およびサーバ側のコンピュータも提供することができるものである。
【符号の説明】
【００９５】
１０…プリンタネットワーク、１１〜１４…クライアントコンピュータ、１５…ネットワーク、１６…サーバコンピュータ、１７…ＭＦＰ、１８、１９…レーザプリンタ、２０…インクジェットプリンタ、３０…クライアントコンポーネント、３１…仮想プリンタドライバ、３２…印刷ジョブ監視制御部、３３…振り分け先情報受信部、３４…印刷ジョブ監視部、３５…中間データ保存部、３６…中間データ中継部、４０…サーバコンポーネント、４１…仮想プリンタドライバ、４２…中間データ保存部、４３…出力先決定部、４４…振り分け制御部、４５…振り分け部、５０…アプリケーション、５１…プリントキュー、５２…プリンタ
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２０１０−２７１９８８号公報
【図１】
0005729036.tif 000002
【図２】
0005729036.tif 000003
【図３】
0005729036.tif 000004
【図４】
0005729036.tif 000005
【図５】
0005729036.tif 000006
【図６】
0005729036.tif 000007
【図７】
0005729036.tif 000008
【図８】
0005729036.tif 000009
【図９】
0005729036.tif 000010
【図１０】
0005729036.tif 000011
【図１１】
0005729036.tif 000012
【図１２】
0005729036.tif 000013
【図１３】
0005729036.tif 000014
【図１４】
0005729036.tif 000015
【図１５】
0005729036.tif 000016
【図１６】
0005729036.tif 000017