(57)【特許請求の範囲】
【請求項１】
端末装置と、前記端末装置にネットワークを介して接続するサーバ装置とを含むプリンタネットワークシステムであって、前記サーバ装置は、
前記端末装置上で動作するアプリケーション手段からの前記ネットワークを介した印刷ジョブの要求を受領し、中間データとして、イメージデータを生成するとともに、前記印刷ジョブの印刷設定を記述するジョブ定義データを生成する仮想プリント処理手段と、
前記イメージデータおよび前記ジョブ定義データの書き込みおよび読み込みを排他制御する排他制御手段と
を備え、前記端末装置は、
出力先の選択を条件付ける規則に従って出力条件を決定する出力条件制御手段と、
当該端末装置上で動作する前記アプリケーション手段での印刷指示に応答して、前記サーバ装置の前記排他制御手段との通信により、前記印刷指示に対応して前記サーバ装置で生成された前記ジョブ定義データおよび前記イメージデータを取得し、前記出力条件制御手段により決定された出力先に対応するプリンタドライバに対して印刷指令を発行する発送手段と
を含む、プリンタネットワークシステム。
【請求項２】
前記端末装置上で動作する、前記発送手段、前記出力条件制御手段、および前記印刷指示に応答して前記発送手段および前記出力条件制御手段を起動するプリント指令手段が、前記サーバ装置からポイントアンドプリントでインストールされる、請求項１に記載のプリンタネットワークシステム。
【請求項３】
前記排他制御手段は、前記仮想プリント処理手段が生成した前記印刷ジョブのすべての中間データの書き込みが完了したことを記録しており、前記端末装置の前記発送手段からのデータ取得要求に応答して、前記すべての中間データの書き込みの完了を待って前記発送手段への前記ジョブ定義データおよび前記イメージデータの送信を完了させる、請求項１または２に記載のプリンタネットワークシステム。
【請求項４】
前記端末装置は、印刷指令を発行した前記プリンタドライバからエラーの発生の通知を受けた場合に、前記端末装置上で前記エラーの発生をユーザ通知する手段をさらに備える、請求項１〜３のいずれか１項に記載のプリンタネットワークシステム。
【請求項５】
前記仮想プリント処理手段は、ページ単位で前記イメージデータを生成し、前記発送手段は、前記ジョブ定義データに記述された面付け情報に従って、ページ単位の前記イメージデータを面付け処理してから印刷指令を発行する、請求項１〜４のいずれか１項に記載のプリンタネットワークシステム。
【請求項６】
前記規則は、前記端末装置に関する端末固有情報、前記アプリケーション手段のログインユーザに関するユーザ固有情報、前記印刷ジョブの印刷設定情報、前記印刷ジョブの内容情報からなる群から選択された少なくとも１つの条件付け情報に対して、前記出力先を条件付ける、請求項１〜５のいずれか１項に記載のプリンタネットワークシステム。
【請求項７】
端末装置にネットワークを介して接続するサーバ装置であって、
前記端末装置上で動作するアプリケーション手段からの前記ネットワークを介した印刷ジョブの要求を受領し、中間データとして、イメージデータを生成するとともに、前記印刷ジョブの印刷設定を記述するジョブ定義データを生成する仮想プリント処理手段と、
出力先の選択を条件付ける規則に従って出力条件を決定する出力条件制御手段と、前記端末装置上で動作する前記アプリケーション手段での印刷指示に応答して、当該サーバ装置との通信により、前記印刷指示に対応して当該サーバ装置で生成された前記ジョブ定義データおよび前記イメージデータを取得し、前記出力条件制御手段により決定された出力先に対応するプリンタドライバに対して印刷指令を発行する発送手段とを前記端末装置上で動作させるためのプログラムを提供する提供手段と、
前記イメージデータおよび前記ジョブ定義データの書き込みおよび読み込みを排他制御しながら、前記イメージデータおよび前記ジョブ定義データを読み出して前記端末装置上で動作している発送手段に対し送信する排他制御手段と
を含む、サーバ装置。
【請求項８】
前記提供手段は、ポイントアンドプリントで、前記発送手段および前記出力条件制御手段、および前記印刷指示に応答して前記発送手段および前記出力条件制御手段を起動させるプリント指令手段を前記端末装置にインストールさせる、請求項７に記載のサーバ装置。
【請求項９】
前記排他制御手段は、前記仮想プリント処理手段が生成した前記印刷ジョブのすべての中間データの書き込みが完了したことを記録しており、前記すべての中間データの書き込みの完了を待って、前記端末装置上で動作する前記発送手段への前記ジョブ定義データおよび前記イメージデータの送信を完了させる、請求項７または８に記載のサーバ装置。
【請求項１０】
前記提供手段は、印刷指令が発行された前記プリンタドライバでエラーが発生した場合に前記端末装置上で前記エラーをユーザ通知する手段を、前記端末装置上で動作させるためのプログラムをさらに提供する、請求項７〜９のいずれか１項に記載のサーバ装置。
【請求項１１】
端末装置と、前記端末装置にネットワークを介して接続するサーバ装置とを含むプリンタネットワークシステムで実行される方法であって、
前記サーバ装置が、前記端末装置上で動作するアプリケーション手段からの前記ネットワークを介した印刷ジョブの要求を受領し、中間データとして、イメージデータを生成するとともに、前記印刷ジョブの印刷設定を記述するジョブ定義データを生成するステップと、
前記サーバ装置が、前記イメージデータおよび前記ジョブ定義データを排他的に書き込むステップと、
前記端末装置が、当該端末装置上で動作する前記アプリケーション手段での印刷指示に応答して、前記サーバ装置との通信により、前記印刷指示に対応して前記サーバ装置で生成された前記ジョブ定義データおよび前記イメージデータを取得し、出力先の選択を条件付ける規則に従って決定された出力先に対応するプリンタドライバに対し印刷指令を発行するステップと
を含む、プリント方法。
【請求項１２】
前記端末装置が、該端末装置上で動作するアプリケーション手段での印刷指示に応答して、前記出力先に対応するプリンタドライバに対し印刷指令を発行するためのプロセスを起動するステップ
をさらに含む、請求項１１に記載のプリント方法。
【請求項１３】
前記サーバ装置が、生成した前記印刷ジョブのすべての中間データの書き込みが完了したことを記録するステップと、
前記サーバ装置が、前記端末装置からのデータ取得要求に応答して、前記すべての中間データの書き込みの完了を待って前記端末装置への前記ジョブ定義データおよび前記イメージデータの送信を完了させる、請求項１１または１２に記載のプリント方法。
【請求項１４】
コンピュータ実行可能なプログラムであって、前記プログラムは、端末装置とネットワークを介して接続するサーバ装置のコンピュータを、
前記端末装置上で動作するアプリケーション手段からの前記ネットワークを介した印刷ジョブの要求を受領し、中間データとして、イメージデータを生成するとともに、前記印刷ジョブの印刷設定を記述するジョブ定義データを生成する仮想プリント処理手段、
出力先の選択を条件付ける規則に従って出力条件を決定する出力条件制御手段と、前記端末装置上で動作する前記アプリケーション手段での印刷指示に応答して、前記サーバ装置との通信により、前記印刷指示に対応して前記サーバ装置で生成された前記ジョブ定義データおよび前記イメージデータを取得し、前記出力条件制御手段により決定された前記出力先に対応するプリンタドライバに対して印刷指令を発行する発送手段とを前記端末装置上で動作させるためのプログラムを提供する提供手段、
前記イメージデータおよび前記ジョブ定義データの書き込みおよび読み込みを排他制御しながら、前記イメージデータおよび前記ジョブ定義データを読み出して前記端末装置上で動作している発送手段に対し送信する排他制御手段
として機能させるためのコンピュータ実行可能なプログラム。
【請求項１５】
前記提供手段は、ポイントアンドプリントで、前記発送手段および前記出力条件制御手段、および前記印刷指示に応答して前記発送手段および前記出力条件制御手段を起動させるプリント指令手段を前記端末装置にインストールさせる、請求項１４に記載のコンピュータ実行可能なプログラム。
【請求項１６】
前記排他制御手段は、前記仮想プリント処理手段が生成した前記印刷ジョブのすべての中間データの書き込みが完了したことを記録し、前記すべての中間データの書き込みの完了を待って、前記端末装置上で動作する前記発送手段への前記ジョブ定義データおよび前記イメージデータの送信を完了させる、請求項１４または１５に記載のコンピュータ実行可能なプログラム。
【請求項１７】
請求項１４〜１６のいずれか１項に記載されたプログラムを記録したコンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタシステムに関し、より詳細には、クライアント端末から指令される印刷ジョブを特定の条件に従って出力先を振り分けて印刷するプリンタネットワークシステム、該プリンタネットワークシステムが備えるサーバ装置、該プリンタネットワークシステムで実行されるプリント方法、該サーバ装置を実現するためのプログラム、および該プログラムを格納する記録媒体に関する。
【背景技術】
【０００２】
近年、ネットワーク技術の普及により、官公庁、企業、大学等のオフィス環境では、ＭＦＰ(Multi-Function Peripheral)やレーザプリンタなど複数の画像形成装置がネットワークに接続され、これら複数の画像形成装置が種々のロケーションから利用可能とされていることが多い。出力物がセキュリティレベルの点で問題のない場合や、個人情報や機密情報などに関係しない場合であれば、上述のような複数のロケーションから複数の画像形成装置が利用可能な環境でも、仮にネットワーク上の複数のプリンタの中から所望の出力先を選択する際ユーザが誤った出力先を指定してしまったとしても、特に大きな問題は生じない。
【０００３】
しかしながら、オフィス環境では多種多様なドキュメントが作成され、個人情報や機密情報を含むドキュメントが取り扱われる場合もある。このような場合、出力先の指定ミスは情報漏洩等の重大な問題に発展しかねない。このような背景から、複数の利用可能な画像形成装置の中からロケーションに対応した適切な出力先を選択して出力させたいという要望がある。一方、上述した情報セキュリティの観点以外にも、特定のユーザやユーザグループや、印刷ジョブの特性に対応して、一定の画像形成装置から出力を可能とすることができれば、業務効率が改善され、印刷物の管理が容易となり、また印刷物のセキュリティ管理も向上するものと考えられる。
【０００４】
印刷物の出力先を制御する技術は種々知られており、帳票や文書などの種類別にあるいは文書内容に併せて、出力先を自動的に切り替えて出力させたいという要望に応えるために、例えば、Ｗｉｎｄｏｗｓ（登録商標）環境において枚数によって出力装置を自動で切り替えて最適な出力装置に振り分けるソフトウェアが提供されている（非特許文献１）。
【０００５】
また特開２００３−１４０８６７号公報（特許文献１）は、プリント作業が続行不可能な場合に他のプリンタに出力先を変更する目的で、出力したいプリンタに紙詰まりや用紙切れ、他のオペレータの印刷処理があるか等のステータス情報をリクエストして受け取り印刷装置の状態を判断する判断手段と、出力したプリンタがすぐには印刷できないと判断された場合に、そのプリンタのステータス情報および他のプリンタの情報をネットワークサーバおよび情報処理装置に送信する送信手段を備えることを特徴とする、ネットワークサーバを開示している。その他、特許第３７２９２２９号公報（特許文献２）は、指定された印刷装置での印刷が不能のときに代行印刷装置に印刷させる端末装置を開示している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、利用可能な複数の画像形成装置の中から出力先を切り替える種々の技術がこれまで提供されている。しかしながら、上述した上記特許文献１および特許文献２に開示される従来技術は、プリント作業が続行不可能な場合に他のプリンタに出力先を変更するというものであり、上記非特許文献１に開示される従来技術は、多枚数の場合は低コストかつ高速のプリポートへ、少枚数の場合はレーザプリンタへ出力するといったように、印刷枚数に応じて出力先を切り替えるというものであり、機密情報や個人情報等の情報漏洩を防止できるというものではない。また上記特許文献１、特許文献２および非特許文献１の従来技術は、利用可能な複数の画像形成装置の中から適切な出力先に振り分けられるとしても、クライアント端末からプリンタサーバに接続して印刷を行う、いわゆるサーバ−クライアント環境（ポイントアンドプリント環境）に充分に対応できるものではなかった。
【０００７】
サーバ−クライアント環境で上述したような出力先の振り分けを実現しようとする場合、振り分けられた出力先でプリントジャムなどのエラーが発生したとき、プリンタサーバ側ではエラーを把握することができるが、プリントを実際に指示したユーザが使用するクライアント端末側では画像形成装置で発生した印刷エラーやステータスエラーを適切に把握することが困難であるという問題がある。適切にユーザにエラーが通知されないと、指令したドキュメントがプリント出力されていなかった場合、自身のジョブのエラーにより出力されていないのか、あるいは別の出力先に出力されてしまったのかを判断することが困難となる可能性があり、特に機密情報を取り扱う場合に問題となる。
【０００８】
本発明は、上記問題点に鑑みてなされたものであり、本発明は、サーバ−クライアント環境において、適切に出力先を振り分けるとともに、画像形成装置で発生したステータスエラーを適切にユーザ通知可能とし、ひいては、印刷における高いセキュリティを確保できるプリンタネットワークシステム、サーバ装置、プリント方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、上述した問題に対応するために、端末装置と、該端末装置にネットワークを介して接続するサーバ装置とを含むプリンタネットワークシステムを提供する。本発明のサーバ装置は、端末装置上で動作するアプリケーション手段から印刷ジョブの要求を受領し、中間データとして、イメージデータを生成するとともに、当該印刷ジョブの印刷設定を記述するジョブ定義データを生成する仮想プリント処理手段と、仮想プリント処理手段により生成されるイメージデータおよびジョブ定義データの書き込みおよび読み込みを排他制御する排他制御手段とを含んで構成される。一方、本発明の端末装置は、出力先の選択を条件付ける規則に従って出力条件を決定する出力条件制御手段と、上述したサーバ装置の排他制御手段と通信して、ジョブ定義データおよびイメージデータを取得し、決定された出力先に対応するプリンタドライバを選択して印刷指令を発行する発送手段とを含んで構成される。
【００１０】
上記構成により、出力先に対応するプリンタドライバを選択して印刷指令を発行する発送手段が、端末装置上で動作することとなり、振り分けられた出力先の画像形成装置で発生したエラーを適切にユーザ通知することが可能となり、ひいては、サーバ−クライアント環境において適切に出力先を振り分けるとともに、画像形成装置で発生したステータスエラーを適切にユーザ通知可能とし、ひいては、印刷における高いセキュリティを確保することが可能となる。
【００１１】
さらに本発明では、端末装置側の発送手段は、印刷指令を発行したプリンタドライバからエラーの発生の通知を受けた場合に、端末装置上の例えばディスプレイ装置などにエラー警告を表示させるなどにより、エラーのユーザ通知を行うことができる。上記構成により、適切にユーザ通知を行うことができ、ユーザは、自身のジョブのエラーにより出力されていないのか、あるいは別の出力先に出力されてしまったのかを容易に判断することができ、ひいては機密情報を取り扱う場合にも安心して本仮想プリンタドライバを利用することができる。
【００１２】
さらに本発明では、仮想プリント処理手段が生成した印刷ジョブのすべての中間データの書き込みが完了したことを記録し、端末装置の発送手段からのデータ取得要求に応答して、すべての中間データの書き込みの完了を待って発送手段へのジョブ定義データおよびイメージデータの送信を完了させることができる。また本発明では、端末装置上で動作する発送手段および出力条件制御手段をサーバ装置からポイントアンドプリントでインストールすることができる。また本発明では、さらに、仮想プリント処理手段は、ページ単位でイメージデータを生成し、発送手段は、ジョブ定義データに記述された面付け情報に従って、ページ単位のイメージデータを面付け処理してから印刷指令を発行することができる。また本発明では、さらに、出力先の選択を定義付ける規則は、端末装置に関する端末固有情報、アプリケーションのログインユーザに関するユーザ固有情報、印刷ジョブの印刷設定情報、印刷ジョブの内容情報からなる群から選択された少なくとも１つの条件付け情報に対して出力先を条件付けるものとすることができる。
【００１３】
さらに本発明によれば、上記特徴を有するプリンタネットワークシステムが備えるサーバ装置、該プリンタネットワークシステムで実行されるプリント方法、該サーバ装置を実現するためのプログラム、および該プログラムを格納する記録媒体が提供される。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のプリンタネットワークシステムを示す概略図。
【図２】本実施形態のプリンタネットワークシステムの機能ブロック図。
【図３】本実施形態においてクライアント側の仮想プリンタドライバをインストールする処理の概略図。
【図４】本実施形態のプリンタネットワークシステムで実行される処理を示すフローチャート（１／２）。
【図５】本実施形態のプリンタネットワークシステムで実行される処理を示すフローチャート（２／２）。
【図６】本実施形態のプリンタネットワークシステムにおいて実行される処理を示すシーケンス図。
【図７】本実施形態において排他制御部が管理するジョブ管理テーブルのデータ構造を例示する図。
【図８】本実施形態において出力条件制御部が管理する対応付けテーブルのデータ構造を例示する図。
【図９】本実施形態のプリンタネットワークシステムの状態遷移図。
【図１０】本実施形態のクライアントのディスプレイ装置に表示されるエラー通知を含むグラフィカルユーザインタフェースを示す図。
【発明を実施するための形態】
【００１５】
以下、本発明を実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。なお以下に説明する実施形態では、端末装置およびサーバ装置を含むプリンタネットワークシステムとして、クライアント１１２〜１１８およびプリンタサーバ１１０を含むプリンタネットワークシステム１００を一例として説明する。図１は、本実施形態のプリンタネットワークシステム（以下、単に「プリンタネットワーク」と参照する。）１００の概略を示す。プリンタネットワーク１００は、オフィスなどに配置される複数のクライアント１１２，１１４，１１６，１１８が、ネットワーク１３０に接続されて構成されている。
【００１６】
また図１に示す例示的な実施形態では、ＭＦＰ１２２、レーザプリンタ１２４，１２６、インクジェットプリンタ１２８などの画像形成装置がリモートプリンタとしてネットワーク１３０に接続されている。本実施形態では、上述したＭＦＰ１２２および各プリンタ１２４〜１２８を、以下、リモートプリンタとして総称する。
【００１７】
本実施形態のプリンタネットワーク１００において、出力先となるリモートプリンタ１２２〜１２８は、クライアント１１２〜１１８に対応して決定することができ、各クライアントが設置されたロケーションや、各クライアントの近隣のロケーションなどに配置されたリモートプリンタで出力可能とされている。図１中、点線で囲まれた領域１４０，１５０，１６０は、同一のロケーションを表している。図１に示す実施形態では、クライアント１１８およびリモートプリンタ１２８がロケーション１６０を構成し、各クライアントと各プリンタとが対応付けられて他のロケーション１４０，１５０が構成されている。クライアントおよびリモートプリンタは、それぞれ、各ロケーションに複数存在してもよく、クライアントのみまたはリモートプリンタのみのロケーションがあってもよい。
【００１８】
ネットワーク１３０には、さらにプリンタサーバ１１０が接続され、本プリンタサーバ１１０が各クライアント１１２，１１４，１１６，１１８からの印刷要求を管理する。プリンタサーバ１１０は、クライアント１１２〜１１８から印刷要求を受領すると、各出力先リモートプリンタに対応したＲＡＷ形式のデータに変換可能な共通の中間データを一旦生成する。プリンタサーバ１１０に印刷要求を行ったクライアントは、プリンタサーバ１１０で生成された中間データを読み込み、予め設定された規則に従って複数のリモートプリンタ１２２〜１２８の中から適切な出力先を決定し、決定した出力先リモートプリンタに対応するプリンタドライバが受信可能な形式の送信データを送信する。送信データを受信したプリンタドライバは、送信データをＲＡＷ形式のデータに変換し、指定のリモートプリンタに送付して印刷出力させる。
【００１９】
出力先となるリモートプリンタは、種々の条件付け情報に対応して決定することができる。この条件付け情報としては、クライアントのＭＡＣアドレス（Media Access Control Address）、ＩＰアドレス（Internet Protocol Address）などの端末固有情報、ログインユーザ名やユーザ権限などのユーザ固有情報、カラーモード、スタンプ印刷、地紋印刷の指定などジョブの印刷設定情報、文書名、ページ数、機密キーワードの有無などのジョブ内容情報を挙げることができる。なお、説明する実施形態では、上述した１以上の条件付け情報に対応して出力先リモートプリンタが決定されるものとして説明する。しかしながら、上述した条件付け情報に対応して決定することができる出力条件は、特に限定されるものではなく、他の実施形態では、上記出力先リモートプリンタの他、両面印刷の指定、モノクロ印刷の指定、集約印刷の指定、地紋印刷の指定、電子透かしの指定、親展印刷の指定およびイメージデータ中の文字列置換など出力内容自体の変更を含むこともできる。
【００２０】
上述したプリンタサーバ１１０は、好ましい実施形態では、シングルコア、マルチコアのＣＰＵ、ＲＯＭ、実行空間を提供するＲＡＭ、ハードディスク装置などを含み、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘサーバ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）などのオペレーティングシステム（ＯＳ）による制御の下、クライアントから要求された印刷ジョブの中間データを生成する。
【００２１】
上述したクライアント１１２〜１１８は、それぞれ同様の構成を有しており、いわゆるファットクライアントとして実装することができる。クライアント１１２〜１１８は、パーソナルコンピュータやワークステーションなどとして構成され、シングルコア、マルチコアのＣＰＵ、ＲＯＭ、実行空間を提供するＲＡＭ、ハードディスク装置、入出力装置などを含んで構成される。
【００２２】
クライアント１１２〜１１８は、ハードディスク装置などからアプリケーションプログラムおよびデータをＲＡＭに読込んで、ＣＰＵがアプリケーションプログラムを実行させることにより、文書、イメージ、マルチメディアまたはこれらが複合的に組合わされた電子データとして印刷対象とする文書ファイルを生成する。また、クライアント１１２〜１１８は、プリンタサーバ１１０からネットワーク１３０を介して仮想プリンタドライバのプログラムを取得してインストールすることにより、本実施形態の仮想プリンタドライバを利用可能とする。クライアントにおいて、仮想プリンタドライバを指定した文書ファイルの印刷要求が行われると、プリンタサーバ１１０ではその中間データが作成され、クライアントは、プリンタサーバ１１０が生成した中間データを読み込んで、決定した出力先に対応するプリンタドライバに印刷指令する。なお、仮想プリンタドライバについての詳細な説明は後述する。
【００２３】
ネットワーク１３０は、１０００Ｂａｓｅ−ＴＸなどのイーサネット（登録商標）、光ネットワーク、ＩＥＥＥ８０２．１１などの規格の無線ネットワークを含んで構成することができ、フレームまたはＴＰＣ／ＩＰプロトコルに基づくパケット通信によって、相互通信を行う。また、ネットワーク１３０は、ＬＡＮの他、ＶＰＮ(Virtual Private Network)などによるセキュア環境下で構築されたインターネットなどの広域ネットワークを含んで構成されていてもよい。
【００２４】
図２は、本実施形態のプリンタネットワーク１００における機能ブロック２００を示す。なお図２では、クライアント１１２〜１１８を代表してクライアント１１８が示されている。図２に示すように、クライアント１１８およびプリンタサーバ１１０は、それぞれ複数の機能手段を含んで構成されており、クライアント１１８は、アプリケーション処理部２１０および発送処理部２２０を含み、一方、プリンタサーバ１１０は、仮想プリント処理部２３０、排他制御部２４０および、各リモートプリンタ１２２〜１２８に対応するプリンタドライバＡ〜Ｄ２５０ａ〜ｄを含んで構成されている。これらの機能手段は、ＲＡＭなどにプログラムを読込んでＣＰＵがプログラムを実行することにより、それぞれのコンピュータ上で動作する。
【００２５】
クライアント１１８上で動作するアプリケーション処理部２１０は、印刷対象の文書ファイルを生成し、その印刷要求を行うアプリケーション・プロセスである。アプリケーション処理部２１０は、より詳細には、印刷対象の文書ファイルを作成および編集するためのアプリケーション部２１４と、マウスイベントなどを介してユーザからの印刷指示を受け付けるプリント指令部２１２とを含む。プリント指令部２１２は、アプリケーション処理部２１０にロードされる印刷設定等を行うための本仮想プリンタドライバのユーザインタフェースモジュールである。
【００２６】
アプリケーション部２１４で文書ファイルが作成され、プリント指令部２１２がユーザからの印刷要求を受領すると、その印刷指令イベントの発生に応答して、アプリケーション部２１４は、ＧＤＩ（Graphic Device Interface）などの関数呼び出しを経て印刷ジョブ（以下、単にジョブとして参照する。）のジョブデータを生成した後、ＲＰＣ（Remote Procedure Call）接続などの適切なリモート接続を介して、生成したジョブデータをプリンタサーバ１１０に送信する。プリント指令部２１２は、さらに、その印刷指令イベントの発生に応答して、出力先を決定してそのプリンタドライバに印刷出力すべきデータを送付するための発送処理部２２０をクライアント１１８上に起動する。
【００２７】
クライアント１１８上に起動される発送処理部２２０は、印刷ジョブを適切な出力先に振り分けるデータ送信アプリケーション・プロセスであり、より詳細には、所定の規則に従って出力先を決定する出力条件制御部２２４と、決定された出力先のプリンタドライバに対し出力すべきデータを発送するデータ発送部２２２と、当該ジョブの処理中にエラーが発生した場合にエラーのユーザ通知を行うエラー表示部２２６とを含む。なお、出力条件制御部２２４は、好適には、特定の用途に対応して発送処理部２２０に組み込み可能なプラグインモジュールとして提供される。
【００２８】
一方、プリンタサーバ１１０側の仮想プリント処理部２３０は、複数発生する印刷ジョブを順次処理するスプーラ・プロセスであり、より詳細には、各クライアント１１２〜１１８から要求された印刷ジョブの処理の進行を管理する仮想プリント管理部２３２と、アプリケーション部２１４から要求される印刷ジョブのジョブデータを一旦格納するジョブ格納部２３４と、仮想描画部２３６と、データ抽出部２３８とを含む。なお、ジョブ格納部２３４は、プリンタサーバ１１０の実施形態に応じて、プリンタバッファまたは印刷スプールファイルを格納する記憶領域として実装することができ、特定ＯＳの実装形式に限定されるものではない。
【００２９】
ジョブデータは、イメージデータおよびジョブ情報データを含んで構成され、ＥＭＦ（Enhanced Metafile）、ＸＰＳ（XML paper Specification）、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、ＰＩＣＴ、ＰＤＦ（Portable Document Format）などの印刷スプールファイル形式のデータとされている。ジョブデータに含まれるイメージデータも、ＥＭＦ、Ｐｏｓｔｓｃｒｉｐｔ（登録商標）、ＸＰＳなどの高次イメージを含むことが好適であるが、ビットマップ、ＪＰＥＧ、ＧＩＦなどの低次イメージデータを含むことができるし、さらに他の実施形態では低次イメージデータおよび高次イメージデータの両方を含むことができる。ジョブ情報データは、端末固有情報やユーザ固有情報など印刷要求の発行元を固有に識別する要求元識別値、イメージデータの面付情報、カラーモードの指定、集約印刷の指定、マージン、サイズ設定、ページ数、文書名など各種印刷設定を含む。特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）環境であれば、上記ジョブデータやイメージデータは、好適にはＥＭＦ形式のデータとすることができる。
【００３０】
仮想プリント処理部２３０は、アプリケーション部２１４からジョブデータを受領すると、仮想プリント管理部２３２を呼び出し、ジョブデータをスプールファイルとしてジョブ格納部２３４に生成させる。続いて仮想プリント管理部２３２は、仮想描画部２３６を呼び出し、仮想描画部２３６は、ジョブ格納部２３４からジョブデータを読み出し、排他制御部２４０に対し、ジョブデータが含むイメージデータをページ単位など所定のユニット単位で作業領域２４２に移動させ、高次イメージフォーマットのイメージデータ２４６を作業領域２４２に生成させる。また、仮想描画部２３６は、読み出したジョブデータ中の面付け情報などの印刷設定を取得し、排他制御部２４０を介して作業領域２４２にジョブ定義データ２４４として生成する。なお、イメージデータの移動は、例えば特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）システムであれば、スプーラが生成するＥＭＦファイルを、プリントプロセッサがページ単位などの所定のユニット単位毎に分割して、作業領域２４２にコピーすることで実現することができ、あるいはグラフィックモジュールがＥＭＦをページ毎に作業領域２４２に生成することで実現することもできる。
【００３１】
仮想プリント管理部２３２は、さらに、データ抽出部２３８を呼び出し、データ抽出部２３８は、ジョブ格納部２３４に格納されたジョブデータからジョブ情報データを抽出し、排他制御部２４０を介して作業領域２４２のジョブ定義データ２４４に印刷設定内容を書き込む。ジョブ定義データの格納は、例えば特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）環境であれば、プリントプロセッサまたはグラフィックモジュールが、印刷設定構造体ＤＥＶＭＯＤＥの内容を書き込むことなどで実現することができる。
【００３２】
作業領域２４２に保存されるこれらの中間データは、後述するように、個別のコンピュータ上で動作する発送処理部２２０および仮想プリント処理部２３０からアクセスされることとなる。これに対応して、排他制御部２４０は、各機能部からの作業領域２４２へのデータ書き込みおよびデータ読み込みのタイミングを排他的に制御し、データ不整合の発生を好適に回避している。作業領域２４２は、プリンタサーバ１１０のＨＤＤやメモリなどの記憶領域として提供することができるが、排他制御部２４０がアクセス可能である限り特に限定されるものではなく、他のコンピュータ装置の共有フォルダなどの記憶領域として提供してもよい。
【００３３】
印刷ジョブの中間データとして生成されたジョブ定義データ２４４およびイメージデータ２４６は、本実施形態では、印刷ジョブを固有に識別するジョブＩＤに紐付けて管理される。ジョブＩＤは、発送処理部２２０、仮想プリント処理部２３０および排他制御部２４０の間で共有され、印刷ジョブが固有に識別される。ジョブＩＤの共有方法は、特に限定されるものではないが、例えば仮想プリント管理部２３２が印刷要求を受領した際に現在開始したジョブを固有に識別するためのジョブＩＤを生成し、このジョブＩＤを関連付けてジョブ定義データ２４４およびイメージデータ２４６を排他制御部２４０に保存させ、一方プリント指令部２１２が仮想プリント管理部２３２からジョブＩＤを受け取り、発送処理部２２０を起動する際に、ジョブＩＤを引数として与えることにより行うことができる。
【００３４】
一方クライアント１１８側では、起動された発送処理部２２０のデータ発送部２２２が、印刷ジョブのすべての中間データの作成が完了したことを検知して、排他制御部２４０と通信して、ジョブ定義データ２４４およびイメージデータ２４６を取得し、発送処理に備える。排他制御部２４０は、印刷ジョブのすべての中間データの作成が完了すると、その完了を記録しており、データ発送部２２２は、例えば排他制御部２４０に対し定期的にジョブＩＤで問い合わせて中間データの完成を検知することができる。
【００３５】
図７は、排他制御部２４０が管理するジョブ管理テーブルのデータ構造を例示する。図７に示すジョブ管理テーブル７００は、各印刷ジョブについて、ジョブＩＤと、ジョブ定義データ名と、イメージデータを識別するイメージＩＤの配列と、中間データの作成が完了したか否かを示すフラグと、中間データに対するアクセス状態を記憶する中間データアクセス情報とを対応付けて管理している。この中間データアクセス情報は、ジョブ定義データおよび各イメージデータのアクセス状態を保持しており、各中間データについて、「書き込み中」、「読み込み中」、読み込みも書き込みもなされていない「待機中」のいずれかの状態を示す値を保持する。
【００３６】
例えば、ジョブＩＤで識別される或る印刷ジョブの中間データ（例えばジョブ定義データ）へのアクセス要求が発生した場合、排他制御部２４０は、そのジョブＩＤに紐付けられた中間データアクセス情報を参照し、その中間データのアクセス状態を取得する。そして、書き込み要求である場合、排他制御部２４０は、中間データのアクセス状態が「待機中」であれば、中間データアクセス情報を「書き込み中」に書き換えてロックし、中間データを書き込み、書き込み完了時に「待機中」に書き換える。一方、中間データが「書き込み中」または「読み込み中」であれば、「待機中」となるまで当該要求についての処理を待機するか、あるいは要求元の機能部にエラーを通知し、再度試行させる。読み込み要求である場合も同様に、排他制御部２４０は、中間データが「待機中」であれば、中間データアクセス情報を「読み込み中」に書き換えてロックし、中間データを読み出し要求元の機能部に送信し、読み込み完了時に「待機中」に戻す。一方、中間データが「書き込み中」であれば、「待機中」となるまで当該要求の処理を待機するか、あるいは要求元の機能部にエラーを通知し、再度試行させる。
【００３７】
排他制御部２４０は、すべての中間データの保存が完了した場合に、ジョブ管理テーブル７００のジョブＩＤに対応する中間データの作成が完了したことを示すフラグに書き換える。なお、説明する実施形態では、すべての中間データの保存が完了してから、データ発送部２２２によるデータ取得が開始されるものとして説明する。しかしながら、データ発送部２２２が、処理対象のジョブに必要なすべての中間データを正しく取得可能である限り、特に限定されるものではなく、すべての中間データの完成を待たずに、データ発送部２２２が中間データの取得を開始してもよい。その場合、排他制御部２４０は、中間データ完成前に、作成済みの中間データの送信を開始するが、すべての中間データの書き込みの完了を待ってデータ発送部２２２へのジョブ定義データおよびイメージデータの送信を完了させることになる。
【００３８】
再び図２を参照すると、発送処理部２２０の出力条件制御部２２４は、データ発送部２２２からの問い合わせに応答して、排他制御部２４０と通信してジョブ定義データ２４４中の要求元識別値などの条件付け情報を取得し、所定の規則に従って、その条件付け情報に対応する適切な出力先を決定し、その出力先プリンタを識別するプリンタ名をデータ発送部２２２に通知する。出力先を決定するための規則としては、図８に示すような、条件付け情報と出力先とを紐付ける対応付けテーブル８００を用いることができる。
【００３９】
図８は、本実施形態において出力条件制御部２２４が管理する対応付けテーブルを例示する。対応付けテーブル８００Ａおよび８００Ｂは、条件付け情報として要求元識別値を用いる場合のものである。対応付けテーブル８００Ａは、クライアント１１２〜１１８の要求元識別値として、クライアントのＩＰアドレスを使用し、ＩＰアドレスと、当該ＩＰアドレスが振られたクライアントについて割当てるべきリモートプリンタのプリンタ名とを対応付けて登録する。なお、ＩＰアドレスは、対応付けテーブル８００Ａに示すような単独の値ではなく、特定のグループなどに対応付けることができるように、サブネットマスクなどで指定されたＩＰアドレス範囲とすることができる。また、ＩＰアドレスに代えて、ＭＡＣアドレスなどの他のアドレスを用いても構わない。
【００４０】
対応付けテーブル８００Ｂは、要求元識別値として、ログイン時に入力され、またはＩＣカードなどから読み取られたユーザ名を使用し、リモートプリンタを固有に識別するためのプリンタ名を対応付けて登録している。なお、ユーザ名に対応付けて出力先を管理する実施形態では、ユーザが利用しているクライアントにかかわらず、ユーザに対応して出力先リモートプリンタを固定することができ、この際、ユーザは、使用する端末を変更したとしても、クライアントに対してプリンタ設定の変更を入力せずとも確実に設定された出力先に送付できるので、操作性および文書ドキュメントのセキュリティ確保の面で効率化が可能となる。また、本実施形態では、特定のＩＰアドレスが割り当てられたクライアントおよびユーザ名などを連結し、同一のユーザでも異なるクライアントで作業する場合には、異なる出力先プリンタに出力させる構成とすることもでき、同一クライアントでも異なるユーザが作業する場合には、異なる出力先プリンタに出力させる構成とすることもできる。
【００４１】
図８に示す対応付けテーブル８００Ｃは、出力先の紐付けを行う際に、ユーザ名といった要求元識別値に加え、出力内容を組み合わせて制御するために使用する実施形態である。対応付けテーブル８００Ｃでは、さらにユーザに対して複数のネットワークプリンタが割り当てられていて、それぞれプリンタ名としてローカルプリンタＣおよびローカルプリンタＤとされている。
【００４２】
出力内容は、例えば帳票印刷や、ラベル印刷ではプリンタ機能も異なり、また帳票印刷であってもフォーマットや出力機能が異なるため、これらの相違に基づいて出力先を制御するために利用される。なお出力内容は、排他制御部２４０と通信して、ジョブ定義データ中に記述された情報に従って判断することができる。また、同一ユーザに対し複数のリモートプリンタが割り当てられている場合には、登録上位のプリンタ名をデフォルト設定として選択可能にクライアント１１２〜１１８に問合わせおよび追加選択を可能とすることができる。
【００４３】
図８に示した対応付けテーブル８００は、好適には、特定の用途に応じてユーザ定義可能なファイルとして提供され、プリンタネットワーク１００の管理者が適切なデータベースを使用して入力することができる構成とされている。上記対応付けテーブル８００のファイルは、出力条件制御部２２４から適切にアクセス可能である限り、必ずしも発送処理部２２０が内部に保持していなくともよい。例えば、管理者がアクセス可能な共有ファイルサーバ上に配置するなど、利用しやすい形態で配置することができる。この構成により、例えば複数のクライアントが動作する環境では、対応付けテーブルを共通のファイルとすることによって、メンテナンス性を向上させることが可能となる。さらに、当該対応付けテーブル８００のファイルについて管理者のみに変更権限を設定することで、セキュリティも好適に確保することが可能となる。
【００４４】
再び図２を参照すると、データ発送部２２２は、出力条件制御部２２４からの出力先リモートプリンタ名の通知を受領して、送信データの出力先を設定する。データ発送部２２２は、決定された出力先のプリンタドライバ２５０に対して、取得しておいた高次フォーマットのイメージデータを、同じく取得しておいたジョブ定義データの内容通りに印刷指令する。２ｉｎ１などの面付け設定がなされている場合には、データ発送部２２２は、ページ毎のイメージデータを面付け処理し、編集後のプリンタドライバ２５０が受信可能な形式の送信データとしてからプリンタドライバ２５０に送信する。出力先のプリンタドライバ２５０は、印刷指令を受けて、送信データをリモートプリンタで処理可能なＲＡＷ形式の出力データに変換し、ポートモニタなどへと送付し、決定された出力先であるリモートプリンタから印刷出力を行う。
【００４５】
なお、出力先が特定のリモートプリンタに決定され、決定されたリモートプリンタのプリンタドライバ２５０がページ割り当てや面付けの機能を持っている場合には、データ発送部２２２は、プリンタドライバ２５０が受信可能なフォーマットで送信して、ジョブ定義データをプリンタドライバ２５０の機能設定値として指定してプリンタドライバ２５０に変換させることでＲＡＷ形式のデータを作成することも可能である。例えば、特定の実施形態で、Ｗｉｎｄｏｗｓ（登録商標）のプリンタドライバにおいては、ほとんどのプリンタドライバがＥＭＦを受信できるので、イメージデータ２４６がＥＭＦであった場合にはデータの変換は必要なく、ジョブ定義データ２４４を印刷設定構造体ＤＥＶＭＯＤＥに設定すれば、プリンタドライバ２５０が目的のＲＡＷデータを作成可能となる。
【００４６】
プリンタドライバ２５０に印刷指令を行った後、出力先リモートプリンタにおいてエラーが発生すると、データ発送部２２２は、出力先リモートプリンタからのエラー通知を受信する。発送処理部２２０のエラー表示部２２６は、このエラー通知に応答して、クライアントのディスプレイ装置上にエラーが発生した旨のユーザ通知を行う。
【００４７】
なお、本実施形態では、アプリケーション部２１４は、印刷ジョブを可能な限り高次イメージデータを含む形式で仮想プリント処理部２３０に送付することが好ましい。これにより、高次イメージデータとしてイメージデータを送付することにより、特にカラーイメージについてはイメージあたりのデータ量を削減でき、印刷ジョブにかかるネットワークトラフィックの輻湊を防止することができる。また、仮想プリント処理部２３０がジョブデータを受け取る時点では、出力先が決定されていないため、出力先の能力より低次となるデータで受け取ってしまうと、出力先の能力を充分に活かしきれないことになる。このため、仮想プリント処理部２３０は、その描画能力を充分に高いものとしてアプリケーション部２１４に報告することが望ましい。
【００４８】
以下、図３を参照して、クライアントにおいて本仮想プリンタドライバを利用可能とするためのインストール処理について説明する。図３は、クライアント側の仮想プリンタドライバをインストールする処理の概略を示す。図３も同様に、クライアント１１２〜１１８を代表してクライアント１１８が示されている。
【００４９】
本実施形態のプリンタサーバ１１０には、仮想プリンタドライバ２６０が予めインストールされており、ネットワーク共有されている。仮想プリンタドライバ２６０は、図２において太枠で示したプリンタサーバ１１０側の仮想プリンタドライバのコンポーネント２３６，２３８，２４０の他、ドライバプログラム提供部２６２を含んで構成される。ドライバプログラム提供部２６２は、クライアント側の仮想プリンタドライバ２６４のコンポーネント２１２，２２２，２２４，２２６をインストールするために、クライアント１１８からの要求に応答して必要なドライバプログラム、更新プログラムおよび設定データ等を提供する機能部である。また、本実施形態のプリンタネットワーク１００に組み込まれたリモートプリンタ１２２〜１２８のプリンタドライバＡ〜Ｄ２５０ａ〜ｄとの通信を行うためのデータも、ドライバプログラム提供部２６２により提供することができ、上記対応付けテーブル８００を設定データとして提供することもできる。
【００５０】
クライアント１１８において、プリンタサーバ１１０上で共有された本仮想プリンタドライバの追加が指令されると、ＲＰＣなどのプリンタ接続が作成され、クライアント１１８は、プリンタサーバ１１０上のドライバプログラム提供部２６２から、必要なドライバプログラム等をダウンロードし、クライアント１１８上の仮想プリンタドライバ２６４のコンポーネント２１２，２２２，２２４，２２６をインストールする。これにより、プリント指令部２１２、データ発送部２２２、出力条件制御部２２４およびエラー表示部２２６がクライアント１１８上で実現される。なお、このようなインストール処理は、特定の実施形態であるＷＩＮＤＯＷＳ（登録商標）では、ポイントアンドプリントとして参照される。
【００５１】
本実施形態では、仮想プリンタシステムの機能のうち、プリンタドライバ２５０に対しデータ送信する発送処理部２２０の機能をクライアント側で動作させることにより、出力先として決定されたリモートプリンタ上でステータスエラー等が発生した場合でも、エラー情報等を必要とするユーザが操作しているクライアント側にエラー情報が渡され、適切にユーザ通知を行うことが可能となる。また、このクライアント側で動作するコンポーネントは、プリンタサーバ１１０のドライバプログラム提供部２６２から取得されて、クライアントにインストールされるため、新たなクライアントを本プリンタネットワーク１００に組み込む際の作業も軽減される。また、複数のクライアントが動作するプリンタネットワーク１００の環境において、クライアント毎に発送処理部２２０が動作しているため、プリンタサーバ上で発送処理部２２０を動作させる場合に比べても、リモートプリンタ上でエラーが発生した場合のプリント停止を最小限としている。また、ジョブ定義データおよび高次イメージフォーマットのイメージデータを中間データとして生成することで、属性や機種の相違による描画処理を可能な限り後段に持たせ、最終的な印刷品質を高く保つことを可能としている。
【００５２】
以下、フローチャートを参照しながら、本実施形態のプリンタネットワーク１００で実行される処理の詳細を説明する。図４および図５は、本実施形態のプリンタネットワーク１００で実行される処理を示すフローチャートである。なお、図４および図５は、図中のポイントＡにより処理フローが連結されていることに留意されたい。図４および図５に示す処理は、ステップＳ４００から開始し、ステップＳ４０１で、クライアント１１８上のプリント指令部２１２が、ユーザから仮想プリンタドライバの選択、各種設定の登録および印刷指示を受け、印刷指令イベントの発生を検知する。ステップＳ４０２では、クライアント１１８上のアプリケーション部２１４は、プリンタサーバ１１０の仮想プリント処理部２３０にジョブを指令し、ジョブデータを送信する。
【００５３】
ステップＳ４０３では、プリント指令部２１２は、また印刷指令イベントの発生に応答して、アプリケーション処理部２１０と同一権限で発送処理部２２０を起動する。ステップＳ４０４では、仮想プリント管理部２３２は、クライアントから受信したジョブデータをジョブ格納部２３４に格納する。ステップＳ４０５では、仮想プリント管理部２３２は、仮想描画部２３６を呼び出し、処理を指令する。処理の指令を受けて、仮想描画部２３６は、ステップＳ４０６でジョブ格納部２３４からジョブデータを読み出し、ステップＳ４０７で、排他制御部２４０に対し、ジョブデータ中のイメージデータをページ単位でコピーするよう要求する。要求を受けた排他制御部２４０は、まず書き込みが可能かを確認して、作業領域２４２上にページ毎のイメージデータ２４６を生成する。
【００５４】
ステップＳ４０８では、仮想描画部２３６は、排他制御部２４０に対し、さらに、ジョブデータ中の面付け情報などの印刷設定をジョブ定義データとして書き込むよう要求する。要求を受けた排他制御部２４０は、書き込みが可能かを確認して、作業領域２４２上にジョブ定義データ２４４を生成する。ステップＳ４０９では、仮想プリント管理部２３２は、データ抽出部２３８を呼び出し、処理を指令する。ステップＳ４１０では、データ抽出部２３８は、排他制御部２４０に対し、ジョブデータ中の他の印刷設定をジョブ定義データとして書き込むよう要求する。要求を受けた排他制御部２４０は、書き込みが可能かを確認して、ジョブ定義データ２４４に印刷設定を書き込む。
【００５５】
ステップＳ４１１では、排他制御部２４０は、すべての中間データの作成が完了したか否かを確認し、すべての中間データの作成が完了するまでの間（ＮＯの間）、ステップＳ４１１をループさせる。ステップＳ４１１で、すべての中間データの作成が完了したと判定された場合（ＹＥＳ）には、ステップＳ４１２へ処理を進める。ステップＳ４１２では、排他制御部２４０は、現在の処理中のジョブの中間データの作成が完了した旨をジョブ管理テーブル７００に記録する。
【００５６】
ステップＳ４１２の後、ポイントＡを介して、図５に示すステップＳ５０１に処理が進められる。図５のステップＳ５０１では、ステップＳ４０３で起動された発送処理部２２０のデータ発送部２２２が、排他制御部２４０と通信し、当該ジョブのジョブ定義データを要求して読み込む。ステップＳ５０２では、データ発送部２２２は、排他制御部２４０に対し、さらに当該ジョブのイメージデータを要求して読み込む。ステップＳ５０３では、データ発送部２２２は、出力条件制御部２２４を呼び出し出力先を問い合わせる。
【００５７】
ステップＳ５０４では、出力条件制御部２２４は、排他制御部２４０に対し、ジョブ定義データ２４４中に記述される要求元識別値などの条件付け情報を要求して取得する。なお、クライアントのＩＰアドレスやＭＡＣアドレスなどの情報は、発送処理部２２０が動作するクライアント上にも存在するため、このような要求元固有情報を用いる場合には、出力条件制御部２２４は、クライアントのシステム情報から要求元識別値を取得することもできる。
【００５８】
ステップＳ５０５では、出力条件制御部２２４は、対応テーブル８００を参照し、取得した条件付け情報に対応する出力先を決定し、そのプリンタ名をデータ発送部２２２に対し通知する。ステップＳ５０６では、データ発送部２２２は、取得したジョブ定義データに従って、取得した各ページのイメージデータを編集し、プリンタドライバが受信可能な形式の編集後の送信データを作成する。ステップＳ５０７で、データ発送部２２２は、通知されたプリンタ名のリモートプリンタに対応するプリンタドライバに送信データを出力する。ステップＳ５０８では、送信データを受領したプリンタドライバが、対応するリモートプリンタに対して印刷指令を行う。ステップＳ５０９では、データ発送部２２２は、出力先プリンタからのエラーステータスの監視を開始する。
【００５９】
ステップＳ５１０では、データ発送部２２２は、出力先のリモートプリンタからプリンタドライバを介してエラーが通知されたか否かを確認し、エラーが発生したか否かを判定する。ステップＳ５１０で、エラーが発生していないと判定された場合（ＮＯ）には、ステップＳ５１３へ処理を進める。
【００６０】
一方、ステップＳ５１０で、エラーが発生したと判定された場合（ＹＥＳ）には、ステップＳ５１１へ処理が進められる。ステップＳ５１１では、エラー表示部２２６は、クライアント１１８のディスプレイ装置上に図１０に示すようなエラーが発生した旨のユーザ通知を行い、ステップＳ５１２へ処理を進める。
【００６１】
図１０は、本実施形態のクライアントのディスプレイ装置上に表示される警告表示を含むグラフィカル・ユーザ・インタフェース（ＧＵＩ）画面を示す。ＧＵＩ画面１０００は、印刷ジョブに関連する情報や、進捗状況を表示するとともに、処理中に発生したエラー警告１００２を表示するメッセージボックスを含む。
【００６２】
再び図５を参照すると、ステップＳ５１２では、リモートプリンタからエラーの解消が報告されたか否かを確認し、エラーが解除されたか否かを判定する。ステップＳ５１２では、エラーが解除されるまでの間（ＮＯの間）、ステップＳ５１２内をループさせ、エラーが解消するまで待機する。一方、ステップＳ５１２で、エラーが解除されたと判定された場合（ＹＥＳ）には、ステップＳ５１３へ処理を進める。
【００６３】
ステップＳ５１３では、データ発送部２２２は、リモートプリンタから印刷完了の報告を受けたか否かを確認し、印刷が完了したか否かを判定する。ステップＳ５１３で、印刷が完了していないと判定された場合（ＮＯ）には、ステップＳ５１０にループさせる。一方、ステップＳ５１３で、印刷が完了したと判定された場合（ＹＥＳ）には、ステップＳ５１４へ処理を進め、本処理を終了する。
【００６４】
以下、シーケンス図を参照しながら、本実施形態のプリンタネットワーク１００において、プリンタサーバ１１０およびクライアント１１８が実行する処理について、より詳細に説明する。図６は、本実施形態のプリンタネットワーク１００において実行される処理を示すシーケンス図である。図６に示す処理は、クライアント１１８がユーザからの印刷指示を受けて、ステップＳ６０１から開始される。ステップＳ６０２では、クライアント１１８のアプリケーション処理部２１０は、印刷指令イベントに応答して、仮想プリント処理部２３０に印刷ジョブを指令するとともに、ステップＳ６０３で、クライアント１１８上に発送処理部２２０を起動する。
【００６５】
仮想プリント処理部２３０は、ステップＳ６０４で、印刷ジョブの指令を受けてアプリケーション処理部２１０から受領したジョブデータをスプールし、ステップＳ６０５でジョブ定義データおよびイメージデータを含む中間データを作成し、ステップＳ６０６で排他制御部２４０に対し中間データの保存指令を行う。ステップＳ６０７では、排他制御部２４０は、保存指令を受けた中間データを保存し、保存を完了させる。
【００６６】
一方、クライアント１１８上の発送処理部２２０は、ステップＳ６０８で、プリンタサーバ１１０上の排他制御部２４０と通信して、中間データを読み込む。ステップＳ６０９では、出力条件制御部２２４による出力条件決定処理が呼び出される。ステップＳ６１０では、発送処理部２２０は、出力先を決定するために、プリンタサーバ１１０上の排他制御部２４０と通信して、条件付け情報を取得する。ステップＳ６１１では、発送処理部２２０は、出力条件制御部２２４により出力先を決定させデータ発送部２２２に戻し、ステップＳ６１２で、プリンタドライバが受信可能な形式の送信データを作成し、ステップＳ６１３で、決定した出力先のプリンタドライバに送信し、リモートプリンタのステータス監視に移行する。ステップＳ６１４では、送信データを受信したプリンタドライバ２５０は、リモートプリンタに対して印刷指令を行う。
【００６７】
ステータス監視中、プリントジャム等のエラーが発生すると、ステップＳ６１５で、エラーを検出したプリンタドライバ２５０から発送処理部２２０にエラー通知（例えばＪＡＭ通知）が行われる。ステップＳ６１６では、発送処理部２２０は、プリンタドライバ２５０からのエラー通知を受けてエラーの発生を検知し、ステップＳ６１７で、エラー表示部２２６によりエラー警告表示を行わせる。
【００６８】
エラー発生後、当該エラーが解消されると、ステップＳ６１８で、プリンタドライバ２５０から発送処理部２２０にエラー解消通知（例えばＪＡＭ解消通知）が行われる。ステップＳ６１９では、発送処理部２２０は、エラーが解消されたことを検知し、ステップＳ６２０で、エラー表示部２２６によりエラー警告を解除させる。ステータス監視中、印刷処理が完了すると、ステップＳ６２１でプリンタドライバ２５０から発送処理部２２０に印刷完了報告が行われる。発送処理部２２０は、ステップＳ６２２では、印刷完了を検知し、ステップＳ６２３で印刷完了通知を行わせる。
【００６９】
図９は、本実施形態のプリンタネットワーク１００の状態遷移９００を示す。ユーザから印刷指示を受領すると、アプリケーション処理部２１０は、プリンタサーバ１１０の仮想プリント処理部２３０を呼び出してジョブデータの送信を開始する。続いてアプリケーション処理部２１０は、発送処理を開始し、発送処理部２２０をクライアント上に起動する。そして、発送ジョブデータの送信が完了すると、アプリケーション処理部２１０側の処理が終了し、解放される。
【００７０】
一方、アプリケーション処理部２１０から起動された発送処理部２２０は、一旦待機状態に移行する。他方、アプリケーション処理部２１０から呼び出された仮想プリント処理部２３０は、ジョブデータのスプールを開始し、ジョブデータの保存が完了すると、仮想描画部２３６によりイメージデータをコピーさせる。イメージデータのコピーが完了すると、仮想プリント処理部２３０は、データ抽出部２３８により印刷設定をジョブ定義データとして保存させる。すべての中間データが完成し、当該ジョブの準備が完了すると、仮想プリント処理部２３０側の処理が終了し、待機状態または次に要求された印刷ジョブの処理に進められる。
【００７１】
準備が完了するのを待機していた発送処理部２２０は、仮想プリント処理部２３０による当該ジョブの準備が完了すると、待機状態を抜けて、排他制御部２４０を介して中間データを取得し、送信データを作成する。送信データが完成すると、発送処理部２２０は、決定された出力先リモートプリンタに対し送信し、送信処理が完了するとステータス監視状態に移行する。発送処理部２２０は、ステータス監視中、エラーの発生を検知すると、エラー表示を行い、一方そのエラーが解除されると、再びステータス監視状態に移行する。印刷完了の通知がされると、発送処理部２２０側の処理が終了し、当該ジョブのすべての処理が完了する。
【００７２】
図９に示すように、本実施形態のプリンタネットワーク１００では、アプリケーション処理部２１０は、高次イメージフォーマットのジョブデータの送信を完了させた段階で開放され、後述の処理は発送処理部２２０によりバックグラウンドで行われることとなる。このため、印刷要求してからアプリケーションに制御が戻るまでの時間、すなわちＲＴＡ（Return to Application）を短縮することができる。発送処理部２２０は、アプリケーションのバックグラウンドで、必要な中間データが完成するまで待機し、仮想プリント処理部２３０がすべての中間データを完成させた段階で送信データを作成して出力先のプリンタドライバに送信する。一方、仮想プリント処理部２３０では、要求されたジョブの中間データが完成した段階で、次のジョブに対する処理に進めることができ、高いジョブ処理容量を文書印刷のセキュリティを確保しつつ提供することが可能となる。また、ジョブ定義データおよび高次イメージフォーマットのイメージデータを中間データとして生成することで、最終的な印刷品質が高く保たれる。
【００７３】
さらに、プリンタドライバ２５０にジョブを指令する発送処理部２２０がクライアント上で動作しているため、ステータス監視およびエラー発生に対する警告等を適切に実行することができる。このため、印刷指示を行いエラー情報等を必要とするユーザが、出力先リモートプリンタにおいて正常に印刷完了されたのか、エラーが発生して中断されているのか等、エラーの発生状況を正しく把握できるようになる。したがって、ユーザは、自身のジョブのエラーにより出力されていないのか、あるいは別の出力先に出力されてしまったのかを容易に判断することができ、機密情報を取り扱う場合にも安心して本仮想プリンタドライバを利用することができるようになる。
【００７４】
以上説明したように、本発明の実施形態によれば、サーバ−クライアント環境において、適切に出力先を振り分けるとともに、画像形成装置で発生したステータスエラーを適切にユーザ通知可能とし、ひいては、印刷における高いセキュリティを確保できるプリンタネットワークシステム、サーバ装置、プリント方法、プログラムおよび記録媒体を提供することができる。
【００７５】
また本発明の実施形態によれば、クライアントが複数のリモートプリンタを利用可能なネットワークプリント環境で、ユーザ固有の情報や端末固有の情報等に関連して定義付けた規則に従って、柔軟にジョブ出力先等の出力条件を制御し、適切なリモートプリンタから出力させることが可能となり、出力業務毎の管理を効率化し、さらに情報セキュリティの向上を可能とすることが可能となる。また、本発明の実施形態によれば、クライアントが必要なプログラムモジュールがプリンタサーバ側から提供されるため、本ネットワークプリンタシステムを既存の環境に容易に構築することが可能となる。
【００７６】
本実施形態の上記機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００７７】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７８】
１００…プリンタネットワーク、１１０…プリンタサーバ、１１２〜１１８…クライアント、１２２〜１２８…リモートプリンタ、１３０…ネットワーク、１４０，１５０，１６０…ロケーション、２００…機能ブロック、２１０…アプリケーション処理部、２１２…プリント指令部、２１４…アプリケーション部、２２０…発送処理部、２２２…データ発送部、２２４…出力条件制御部、２２６…エラー表示部、２３０…仮想プリント処理部、２３２…仮想プリント管理部、２３４…ジョブ格納部、２３６…仮想描画部、２３８…データ抽出部、２４０…排他制御部、２４２…作業領域、２４４…ジョブ定義データ、２４６…イメージデータ、２５０…プリンタドライバ、２６０…仮想プリンタドライバ（サーバ）、２６２…ドライバプログラム提供部、２６４…仮想プリンタドライバ（クライアント）、７００…ジョブ管理テーブル、８００…対応付けテーブル、９００…遷移状態、１０００…ＧＵＩ画面、１００２…エラー警告
【先行技術文献】
【特許文献】
【００７９】
【特許文献１】特開２００３−１４０８６７号公報
【特許文献２】特許第３７２９２２９号公報
【非特許文献】
【００８０】
【非特許文献１】”ちぇんじろう”、［online］、株式会社リコー、製品情報、オフィス向け製品、デジタル印刷機、Ｐｒｉｐｏｒｔシリーズ、ＰＣ  Ｃｏｎｔｒｏｌｌｅｒ［２００９年７月１７日検索］、インターネット＜ＵＲＬ；http://www.ricoh.co.jp/opp/priport/option/control/change_ro/＞
【図１】
0005402392.tif 000002
【図２】
0005402392.tif 000003
【図３】
0005402392.tif 000004
【図４】
0005402392.tif 000005
【図５】
0005402392.tif 000006
【図６】
0005402392.tif 000007
【図７】
0005402392.tif 000008
【図８】
0005402392.tif 000009
【図９】
0005402392.tif 000010
【図１０】
0005402392.tif 000011