(57)【要約】【課題】  印刷装置または情報処理装置で処理されているいずれかの印刷データを選択して効率よく印刷処理を行うことである。【解決手段】  サーバから取得されるプリントデバイスが処理中の複数のジョブ情報に対応する第２のジョブ情報と、プリンタドライバから取得する第１のジョブ情報とを比較する（Ｓ１１０３）。そして、第１のジョブ情報が印刷装置で処理が開始されるまでに十分な時間があると判断した場合に、第１のジョブ情報の転送に代えて、展開済みのイメージデータをプリントデバイスに転送する。また、十分な時間がないと判断した場合に、第１のジョブ情報のプリントデバイス１０５に対する転送と、展開済みのイメージデータのプリントデバイスに対する転送とを並列的に行う（Ｓ１１０７〜Ｓ１１１５）特徴とする。【選択図】  図１２
2007317090.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が生成するジョブ情報を管理するサーバと、印刷装置と通信可能な情報処理装置であって、
前記印刷装置に対するプリンタドライバにより生成される第１のジョブ情報を解析して印刷装置が出力可能なイメージデータに展開する展開手段と、
前記第１のジョブ情報を前記印刷装置に転送させると共に、前記展開手段により展開されたイメージデータを前記印刷装置に転送する転送手段と、
前記サーバ装置が管理している複数の情報処理装置から取得している各ジョブ情報の進捗情報を示す第２のジョブ情報を取得する第１の取得手段と、
前記第１の取得手段により取得される第２のジョブ情報と、前記プリンタドライバから取得する第１のジョブ情報とを比較して、前記第１のジョブ情報が印刷装置で処理が開始されるまでに十分な時間があるかを判断する判断手段と、
前記判断手段により十分な時間があると判断した場合に、前記第１のジョブ情報の転送に代えて、前記展開手段により展開するイメージデータを前記印刷装置に転送させ、前記判断手段により十分な時間がないと判断した場合に、前記第１のジョブ情報の前記印刷装置に対する転送と、前記展開手段により展開される前記イメージデータの前記印刷装置に対する転送とを並列的に行う転送制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記転送制御手段による転送処理開始後、前記印刷装置における前記イメージデータへの展開終了状況を取得する第２の取得手段と、
前記第２の取得手段が取得するジョブ処理状況が前記印刷装置による前記第１のジョブ情報のイメージデータへの展開を終了している状況である場合、前記印刷装置に転送済みのイメージデータの削除を指示し、前記取得手段が取得するジョブ処理状況が前記印刷装置による前記第１のジョブ情報のイメージデータへの展開を終了していない状況である場合、前記印刷装置に転送済みの前記第１のジョブ情報の取消を指示して、転送済みのイメージデータに基づく印刷を指示する指示手段と、
を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記印刷装置は、前記情報処理装置から受信する展開済みのイメージデータを記憶する外部記憶手段を備えることを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
前記第１のジョブ情報のイメージ展開処理条件を設定する設定手段を備えることを特徴とする請求項１または２記載の情報処理装置。
【請求項５】
前記第１のジョブ情報は、ドライバ情報を含むことを特徴とする請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
前記ドライバ情報は、前記第１のジョブ情報に対するデータサイズ、カラーモノクロ情報、オブジェクト数を含むことを特徴とする請求項５記載の情報処理装置。
【請求項７】
複数の情報処理装置が生成するジョブ情報を管理するサーバと、印刷装置と通信可能な情報処理装置における印刷制御方法であって、
前記印刷装置に対するプリンタドライバにより生成される第１のジョブ情報を解析して印刷装置が出力可能なイメージデータに展開する展開ステップと、
前記第１のジョブ情報を前記印刷装置に転送させると共に、前記展開ステップにより展開されたイメージデータを前記印刷装置に転送する転送ステップと、
前記サーバ装置が管理している複数の情報処理装置から取得している各ジョブ情報の進捗情報を示す第２のジョブ情報を取得する第１の取得ステップと、
前記第１の取得ステップにより取得される第２のジョブ情報と、前記プリンタドライバから取得する第１のジョブ情報とを比較して、前記第１のジョブ情報が印刷装置で処理が開始されるまでに十分な時間があるかを判断する判断ステップと、
前記判断ステップにより十分な時間があると判断した場合に、前記第１のジョブ情報の転送に代えて、前記展開ステップにより展開するイメージデータを前記印刷装置に転送させ、前記判断ステップにより十分な時間がないと判断した場合に、前記第１のジョブ情報の前記印刷装置に対する転送と、前記展開ステップにより展開される前記イメージデータの前記印刷装置に対する転送とを並列的に行う転送制御ステップと、
を有することを特徴とする印刷制御方法。
【請求項８】
前記転送制御ステップによる転送処理開始後、前記印刷装置における前記イメージデータへの展開終了状況を取得する第２の取得ステップと、
前記第２の取得ステップが取得するジョブ処理状況が前記印刷装置による前記第１のジョブ情報のイメージデータへの展開を終了している状況である場合、前記印刷装置に転送済みのイメージデータの削除を指示し、前記取得ステップが取得するジョブ処理状況が前記印刷装置による前記第１のジョブ情報のイメージデータへの展開を終了していない状況である場合、前記印刷装置に転送済みの前記第１のジョブ情報の取消を指示して、転送済みのイメージデータに基づく印刷を指示する指示ステップと、
を有することを特徴とする請求項７記載の印刷制御方法。
【請求項９】
前記第１のジョブ情報は、ドライバ情報を含むことを特徴とする請求項７又は８に記載の印刷制御方法。
【請求項１０】
前記ドライバ情報は、前記第１のジョブ情報に対するデータサイズ、カラーモノクロ情報、オブジェクト数を含むことを特徴とする請求項９記載の印刷制御方法。
【請求項１１】
請求項７〜１０のいずれかに記載の印刷制御方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１２】
請求項７〜１０のいずれかに記載の印刷制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報処理装置からのジョブ情報を管理するサーバ装置と、印刷装置と通信可能な情報処理装置における印刷制御に関するものである。
【背景技術】
【０００２】
近年のプリンタの印刷速度の高速化に伴い、排紙の速度よりも画像処理速度が遅くなり、プリンタ側でイメージ処理(ＲＩＰ処理)をしていては処理が間に合わず最大印刷速度を活かしきれなくなることが予想される。
【０００３】
ホストコンピュータとプリンタとが通信可能な印刷システムにおいて、上記問題を解決するために、多くの負荷分散方法が提案されている。
【０００４】
代表的な例としては、プリンタドライバ等ではホスト側と、プリンタ側とでイメージ展開処理の負荷分散処理を行う技術が提案されている。
【０００５】
また、下記特許文献１に記載されているように、ホストでのＰＤＬデータからイメージデータへの展開処理と、プリンタにＰＤＬデータを送り、プリンタでもイメージデータへの展開を並列的に実行する。そして、プリンタの展開処理が遅ければホストで展開されたデータを使う方法なども提案されている。
【特許文献１】特開平０８-３２８７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ホストコンピュータの記憶装置にインストールされているプリンタドライバ等で考えられている負荷分散方法では、印刷装置における他の要因(他PCから受信しているジョブ等)は何ら考慮されていない。このため、印刷装置では結果として負荷分散を行ったとしてもその処理がボトルネックとなってしまいシステム全体としての処理能力が低下してしまう課題がある。
【０００７】
また、印刷装置のＣＰＵのタスクを占有するような処理に時間がかかってしまうデータの場合、イメージデータのエンジンへの出力が間に合わずエンジンを止める要因となり紙間が空いてしまうという課題があった。
【０００８】
また、特許文献１の方法では、プリンタのネットワーク状態が混雑している状況では、軽い(画像展開処理が軽い)ジョブであってもＰＣ側のドライバでイメージに変換して送信しているため、ネットワーク負荷が増大してしまう課題があった。
【０００９】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、印刷装置が処理している複数の情報処理装置からのジョブ情報の処理状態に適応した印刷処理を印刷装置に実行させることができる仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【００１１】
複数の情報処理装置が生成するジョブ情報を管理するサーバと、印刷装置と通信可能な情報処理装置であって、
前記印刷装置に対するプリンタドライバにより生成される第１のジョブ情報を解析して印刷装置が出力可能なイメージデータに展開する展開手段と、
前記第１のジョブ情報を前記印刷装置に転送させると共に、前記展開手段により展開されたイメージデータを前記印刷装置に転送する転送手段と、
前記サーバ装置が管理している複数の情報処理装置から取得している各ジョブ情報の進捗情報を示す第２のジョブ情報を取得する第１の取得手段と、
前記第１の取得手段により取得される第２のジョブ情報と、前記プリンタドライバから取得する第１のジョブ情報とを比較して、前記第１のジョブ情報が印刷装置で処理が開始されるまでに十分な時間があるかを判断する判断手段と、
前記判断手段により十分な時間があると判断した場合に、前記第１のジョブ情報の転送に代えて、前記展開手段により展開するイメージデータを前記印刷装置に転送させ、前記判断手段により十分な時間がないと判断した場合に、前記第１のジョブ情報の前記印刷装置に対する転送と、前記展開手段により展開される前記イメージデータの前記印刷装置に対する転送とを並列的に行う転送制御手段と、を有することを特徴とする。
【００１２】
上記目的を達成する本発明の印刷制御方法は以下に示す構成を備える。
【００１３】
複数の情報処理装置が生成するジョブ情報を管理するサーバと、印刷装置と通信可能な情報処理装置における印刷制御方法であって、
前記印刷装置に対するプリンタドライバにより生成される第１のジョブ情報を解析して印刷装置が出力可能なイメージデータに展開する展開ステップと、
前記第１のジョブ情報を前記印刷装置に転送させると共に、前記展開ステップにより展開されたイメージデータを前記印刷装置に転送する転送ステップと、
前記サーバ装置が管理している複数の情報処理装置から取得している各ジョブ情報の進捗情報を示す第２のジョブ情報を取得する第１の取得ステップと、
前記第１の取得ステップにより取得される第２のジョブ情報と、前記プリンタドライバから取得する第１のジョブ情報とを比較して、前記第１のジョブ情報が印刷装置で処理が開始されるまでに十分な時間があるかを判断する判断ステップと、
前記判断ステップにより十分な時間があると判断した場合に、前記第１のジョブ情報の転送に代えて、前記展開ステップにより展開するイメージデータを前記印刷装置に転送させ、前記判断ステップにより十分な時間がないと判断した場合に、前記第１のジョブ情報の前記印刷装置に対する転送と、前記展開ステップにより展開される前記イメージデータの前記印刷装置に対する転送とを並列的に行う転送制御ステップと、
を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、複数の情報処理装置から受信する複数のジョブ情報で印刷装置の処理状況が変動しても、印刷装置または情報処理装置で処理されているいずれかの印刷データを選択して効率よく印刷処理を行える。
【発明を実施するための最良の形態】
【００１５】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１６】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本実施形態を示す印刷装置を適用する印刷処理システムの構成を示す図である。
【００１７】
図１において、１０１、１０２、１０３、１０４は、ネットワーク１０６に接続され、相互にネットワーク通信可能なコンピュータであり、典型的にはパーソナルコンピュータ（ＰＣ）で構成される。
【００１８】
これらのうち、コンピュータ１０２，１０３，１０４はクライアントコンピュータ（以下、クライアントと呼ぶ）である。クライアント１０２〜１０４は、それぞれイーサネット（登録商標）などのネットワークケーブルによってネットワーク１０６に接続されている。また、クライアント１０２〜１０４は、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。
【００１９】
ここで、各クライアント１０２〜１０４は複数のプリンタドライバをサポートするものとする。
【００２０】
これに対し、コンピュータ１０１はサーバコンピュータ（以下、サーバと呼ぶ）であり、ネットワークケーブルによってネットワーク１０６に接続されている。そして、サーバ１０１は、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視する。
【００２１】
このサーバ１０１は、ネットワーク１０６に接続されているプリントデバイス１０５を管理するプリントサーバとしても機能する。
【００２２】
具体的には、サーバ１０１は、クライアント１０２、１０３、１０４から印刷要求が出されたプリントデータを含む印刷ジョブを格納し、格納された印刷ジョブを印刷する機能を備える。
【００２３】
また、サーバ１０１は、クライアントコンピュータ１０２〜１０４から印字データを含まない印刷ジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知する機能を有する。
【００２４】
さらに、サーバ１０１は、後述するプリントデバイス１０５のステータスや印刷ジョブの各種情報を取得して、クライアント１０２〜１０４に通知する機能などを有している。
【００２５】
プリントデバイス１０５は、印刷制御装置としてのネットワークプリンタとして機能する。プリントデバイス１０５は、図示しないネットワークインタフェースを介してネットワーク１０６と接続されている。
【００２６】
また、プリントデバイス１０５は、クライアント１０２〜１０４から送信されてくる印字データを含む印刷ジョブを解析し、１ページずつドットイメージに変換してＲＡＭ等のメモリ上に保持する。そして、プリントデバイス１０５は、メモリ上に保持されたドットイメージをエンジンの印刷プロセスに同期するタイミングで出力することで印刷処理を行う。なお、ＲＡＭの容量によっては、このドットイメージ展開時に、バンド単位のイメージデータ変換処理や、圧縮処理等が実行される場合もある。
【００２７】
なお、図１にプリントデバイス１０５は１台しか示されていないが、他のネットワーク接続可能なプリンタが複数接続されているものとする。各プリンタの機能や印刷プロセス速度（スループット）は相違するものであってもよい。
【００２８】
また、１０６はネットワークであり、クライアント１０２〜１０４、サーバ１０１、プリントデバイス１０５等と所定のプロトコルで通信可能に接続している。
【００２９】
＜ネットワークコンピュータのハードウエア構成例＞
図２は、図１に示したクライアント１０２〜１０４とサーバ１０１として使用されるコンピュータの構成を説明するブロック図である。なお、本実施形態においては、このように、クライアント１０２〜１０４もサーバ１０１も同様あるいは同等のハードウエア構成とするが、それぞれ専用のハードウエア構成であっても構わない。
【００３０】
図２において、２００は装置全体の制御を行うＣＰＵであり、後述する各種のプログラムを実行して生成される描画情報をプリンタドライバに引き渡す制御を行う。
【００３１】
２０５はハードディスク（ＨＤ）で、アプリケーションプログラム、プリンタドライバプログラム、ＯＳや、本実施形態のネットワークプリンタ制御プログラム（ＮＰＣＰ）等を格納している。また、ＣＰＵ２００は、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００３２】
２０１は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。
【００３３】
２０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。なお、ＲＡＭ２０２は容量を拡張可能に構成されている。
【００３４】
２０３は記憶媒体読み込み手段としてのフレキシブルドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータにロードすることができる。
【００３５】
ＦＤ２０４はコンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤＲ、ＣＤＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００３６】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）である。ＨＤ２０５は、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。更に、サーバ１０１に転送すべき印刷情報を蓄えるスプール手段であるスプーラはＨＤ２０５に確保される。
【００３７】
本実施形態に示す印刷システムにおいて、スプール手段は、クライアント１０２〜１０４ではクライアントスプーラのことであり、サーバ１０１ではサーバスプーラのことである。
【００３８】
また、サーバ１０１では、クライアント１０２〜１０４から受けた印刷ジョブ情報を格納し、順序制御を行うためのテーブルも、サーバ１０１が備える外部記憶手段に生成されて格納される。
【００３９】
２０６は指示入力手段であるキーボードであり、ユーザがクライアント１０２〜１０４に対して、また、オペレータや管理者がサーバ１０１に対して、デバイスの制御コマンドの命令等を入力指示するものである。なお、入力デバイスは、キーボードに限らず、マウス等のポインティングデバイスを接続して、ＵＩやアイコンを選択することで、コマンドを選択的に実行可能に構成されていてもよい。
【００４０】
２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの能力等を表示したりするものである。
【００４１】
２０８はシステムバスであり、クライアント１０２〜１０４やサーバ１０１であるコンピュータ内のデータの流れを司るものである。２０９は入出力手段であるインタフェースであり、該インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。また、図示しないネットワークコントローラ（ＮＩＣ）を備えて、ネットワーク１０６に接続されたネットワークデバイスと所定のプロトコルで通信可能に構成されている。
【００４２】
なお、上記コンピュータのハードウエア構成はその一例であり、図２に示すハードウエア構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤなどで変更することも可能である。
【００４３】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラム（ＮＰＣＰ）が、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００４４】
なお、本実施形態では、ＮＰＣＰおよび関連データをＦＤ２０４から直接ＲＡＭ２０２にロードしてＣＰＵ２００に実行させる例を示す。
【００４５】
しかし、これ以外にも、ＮＰＣＰを動作させる度に、既にＮＰＣＰがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードする構成としてもよい。
【００４６】
また、本ＮＰＣＰを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤＲ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、図示しないアプリケーションサーバからＮＰＣＰをダウンロードして、ＨＤ２０５にインストール可能な構成としてもよい。
【００４７】
さらに、本ＮＰＣＰをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００４８】
また、以上の各装置と同等の機能を実現するソフトウエアをもって、ハードウェア装置の代替として構成することもできる。
【００４９】
また、本実施形態において、以下の説明において本ＮＰＣＰのことを、簡単に印刷制御プログラムまたはプリンタドライバと呼ぶこともある。
【００５０】
ここで、印刷制御プログラムは、クライアント１０２〜１０４においては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含む。
【００５１】
一方、サーバ１０１においては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などをクライアント１０２〜１０４に対して通知するためのプログラムを含んでいる。
【００５２】
また、このような制御を行う本実施形態の印刷制御プログラムは、クライアント１０２〜１０４にインストールされるモジュールと、サーバ１０１にインストールされるモジュールを別々に分けてもよい。あるいは、１つの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、サーバ１０１用として機能するようにしてもよい。
【００５３】
あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に並行動作させる構成も可能である。
【００５４】
３０１は基本Ｉ／Ｏプログラムであり、コンピュータの電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれる。そして、基本Ｉ／Ｏプログラム３０１は、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００５５】
３０２はオペレーティングシステム（ＯＳ）である。３０３はネットワークプリンタ制御プログラム（ＮＰＣＰ）で、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。
【００５６】
３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。なお、ワーク領域は、ＲＡＭ２０２を拡張することで、その領域を拡張可能である。
【００５７】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００５８】
図４において、４０１はデータの情報を示すボリューム情報である。４０２はディレクトリ情報で、本実施形態で説明するネットワークプリンタ制御プログラム４０３であるＮＰＣＰや関連データ４０４の格納領域を管理する情報が記録されている。
【００５９】
ＮＰＣＰ４０３は、図１２に示すフローチャートの制御手順をプログラム化したものであり、本実施形態では、クライアント１０２〜１０４及びサーバ１０１共に、同様の構成をとっている。
【００６０】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。
【００６１】
図５において、ＦＤ２０４には、本実施形態で説明する、図４に示したＮＰＣＰ４０３および関連データ４０４が格納されている。
【００６２】
＜印刷処理システムにおけるソフトウエア構成例＞
ここで、本実施形態における用語の技術的意味について説明する。
【００６３】
複数のプリンタを１つのプリンタとして仮想的に束ねる仮想プリンタを「グループプリンタ」、束ねられるプリンタを「メンバプリンタ」と呼ぶ。
【００６４】
また、グループプリンタおよびメンバプリンタに所定の出力ポートが対応付けられた仮想プリンタドライバおよびデバイスドライバ対応しているので、グループプリンタ及びメンバプリンタをドライバに対応して考えることもできる。
【００６５】
グループプリンタを更に具体的に説明すると、アプリケーションからＯＳを介して生成される描画命令に基づいて中間形式ファイル（汎用印刷ファイル）を生成するためのデータを生成する仮想ドライバをグループプリンタドライバと呼ぶ。
【００６６】
そして、後述するジョブ制御プリントサービスにより、先の中間形式のファイルに基づいてページ記述言語を生成させるべく各個別のプリンタドライバに印刷指示がなされるが、この個別の各プリンタドライバに対応するプリンタをメンバプリンタと呼ぶ。
【００６７】
また、各メンバプリンタは最終的には特定のデバイスに対応することとなる。
【００６８】
一方、本実施形態において、アプリケーションにおける印刷指示に応じてWindows（登録商標）等のＯＳを介して描画命令（一般的にＤＤＩ或いはＧＤＩと呼ばれている）あるいはＥＭＦ（EnhancedMetafi1eFormat：拡張メタファイル）が出力される。
【００６９】
ここで、ＤＤＩ或いはＧＤＩ又は、ＥＭＦを解釈しページ記述言語を生成しデバイスへ出力させるようなプリンタドライバを通常プリンタドライバ、このときのデバイスを通常デバイスと呼び、グループプリンタやメンバプリンタと区別する。
【００７０】
なお、ＯＳとしてはWindows（登録商標）に限定されるものではなく、描画命令を備えるＯＳであれば適用可能であることは言うまでもない。
【００７１】
また、デバイスであるプリンタとは区別してプリンタドライバとプリンタ出力ポートとの組み合わせをプリンタと呼ぶこともある。
【００７２】
例えば、後述する図７に示すLogicalPort（ジョブ制御ポートモニタ）とグループプリンタドライバとの組み合わせを指定することを、グループプリンタを指定すると呼ぶこととする。
【００７３】
図６は、図１に示したクライアント１０２〜１０４とサーバ１０１との間の印刷制御モジュールの構成を説明するブロック図である。
【００７４】
本例は、本システムのクライアントサーバモデルにおいて、Microsoft Word（登録商標）などの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した例である。
【００７５】
通常、印刷の指示がされると、アプリケーションプログラム６０１は一連の描画命令をＯＳを介して生成する。この生成された描画命令は、プリンタドライバを経て所定の形式に変換された後、ウインドウズスプーラ（Windows Spooler）６０４に渡される。
【００７６】
Windows Spooler６０４は、ユーザがユーザインタフェースを介して選択し指示したジョブ制御ポートモニタ６２１にプリントジョブデータを渡して、プリントデバイス１０５に送信させる手順をとる。
【００７７】
本実施形態では、上述した通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ（以降、ジョブ制御ポートモニタと略記）６２１を指定して印刷を指示する。
【００７８】
アプリケーションプログラム６０１は、一連の描画命令をＯＳを介して生成させる。ここで、ＯＳを介して生成された描画命令は、グループプリンタドライバ６０３或はＰＤＬDriver６０２の何れか指定されたプログラムに引き渡させる。
【００７９】
ＯＳを介して生成された描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成するための汎用ドキュメントデータを生成する。そして、プリントデバイス１０５へプリントジョブデータを送信する従来のポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。
【００８０】
また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステイプル指示等の印刷設定情報も、ジョブ制御ポートモニタ６２１に送信される。
【００８１】
ジョブ制御ポートモニタ６２１は、プリントジョブデータである汎用印刷ドキュメントデータをプリントデバイス１０５に送信するのではなく、ＡＰＩ６５２を介してジョブ制御プリントサービス６２２に送信する。
【００８２】
ジョブ制御プリントサービス６２２は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
【００８３】
一方、ＯＳを介して生成された描画命令がＰＤＬDriver６０２に投入された場合には、ＰＤＬDriver６０２よって頁記述言語が生成される。そして、該生成された頁記述言語は、印刷処理を行うよう設定されたＰＤＬDriver６０２に対応するジョブ制御ポートモニタ６２１、ジョブ制御プリントサービス６２２を介して対応するデバイスに送信される。
【００８４】
印刷ジョブ制御システム用プリントマネージャ（以降、ジョブ制御プリントマネージャと略記）６２３は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べる。また、ジョブ制御プリントマネージャ６２３は、プリントジョブを操作したりするためのユーザインタフェース（ＵＩ）を提供する。
【００８５】
ジョブ制御プリントマネージャ６２３は、ジョブ制御プリントサービス６２２のソフトウエアのインタフェース（ＡＰＩ：Application Program Interface）６５０を介して、ジョブ制御プリントサービス６２２と情報・指示をやり取りしている。
【００８６】
更に詳細な処理としては、ジョブ制御プリントマネージャ６２３がジョブ制御プリントサービス６２２に対してデバイスを指定してイベントを発行する。ジョブ制御プリントサービス６２２は発行されたイベントに基づくデバイスのステータスを監視して、該監視に基づく結果をジョブ制御プリントマネージャ６２３にＡＰＩ６５０を介して通知する。
【００８７】
サーバ１０１において、印刷ジョブ制御システム用サーバ（以降、ジョブ制御サーバと略記）６３０は、プリントデバイス１０５にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。具体的には、個々のクライアント１０２〜１０４上のジョブ制御プリントサービス６２２がプリントデバイス１０５にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。
【００８８】
印刷ジョブ制御システム用マネージメントコンソール（以降、ジョブ制御マネージメントコンソールと略記）６３３は、印刷ジョブ制御システム全体を監視する。具体的には、サーバ１０１側のジョブ制御サーバ６３０が持つソフトウエアがアクセスするためのＡＰＩ６５１を介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視する。
【００８９】
また、ジョブ制御サーバ６３０は、デバイス情報コントロールモジュール６３１を用いて各プリントデバイス１０５と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。
【００９０】
そして、ジョブ制御サーバ６３０は、入手した情報を、クライアント１０２〜１０４側のジョブ制御プリントサービス６２２に渡すことができる。
【００９１】
＜印刷処理システムの動作例＞
次に、本実施形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００９２】
グループプリンタドライバ６０３は、アプリケーションプログラム６０１が生成した一連の描画コマンドをプリントデバイスやＯＳの種類に依存しない汎用中間フォーマットデータ（前述の汎用ドキュメントデータに相当）に変換する。
【００９３】
この汎用中間フォーマットデータは、Windows Spooler６０４からジョブ制御ポートモニタ６２１を経て（図６の（ａ））、ジョブ制御プリントサービス６２２に導かれる（図６の（ｂ））。
【００９４】
ここで、汎用中間フォーマットデータは、汎用印刷ファイルに構築される。この汎用印刷ファイルの構成については後述する。
【００９５】
ジョブ制御プリントサービス６２２は、このプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成する（図６の（ｃ））。続いて、ＰＤＬDriver６０２がその描画コマンドをプリントデバイス１０５が解釈可能なＰＤＬ形式のファイルにする。
【００９６】
図６では、ジョブ制御プリントサービス６２２で、このプリントジョブに対してプリンタ側のエラーを検知して代行印刷を行う例を示しており、実線で示されるのは当初印刷を予定していたメンバジョブである。
【００９７】
また、図６において、破線については代行印刷のために生成されたのジョブを示している（図６の（ｃ））。
【００９８】
ＰＤＬドライバ６０２で生成されたＰＤＬファイルはWindows Spooler６０４、ジョブ制御ポートモニタ６２１を経て（図６の（ｄ））、再びジョブ制御プリントサービス６２２に渡される（図６の（ｅ））。
【００９９】
そして、ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリントデバイス１０５に送信する（図６の（ｆ））。
【０１００】
ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書の指示にしたがって、１つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリントデバイスに送信する。また、ジョブ制御プリントサービス６２２は、は、一度送信したプリントジョブデータを別のプリントデバイスに送信し直したりする。
【０１０１】
図６中に示す（ｃ）、（ｄ）、（ｅ）、（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【０１０２】
一方、汎用印刷ファイルをアプリケーションプログラム６０１が作成し、そのアプリケーションプログラム６０１が直接汎用印刷ファイルを印刷ジョブとして投入する場合がある。この場合には、一般のアプリケーションとはグループプリンタドライバ６０３への情報の渡し方や、グループプリンタドライバ６０３での処理内容が異なる。
【０１０３】
前述のように、一般のアプリケーションの場合には、アプリケーションプログラム６０１はグループプリンタドライバ６０３に描画情報を渡す際、通常のプリンタドライバと同じようにWindows（登録商標）のＧＤＩ関数を呼び出す。そして、グループプリンタドライバ６０３がそれに応じて汎用印刷ファイルを生成する。
【０１０４】
これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ６０３に供給する。この場合、グループプリンタドライバ６０３は、必要に応じてあらかじめ設定された印刷方法に基づいて汎用印刷ファイル内部の印刷指示書を書き換えてWindowsSpooler６０４に送る。
【０１０５】
＜汎用印刷ファイルの構成例＞
図７は、図６に示したグループプリンタドライバ６０３により構築する汎用印刷ファイルの構成の一例を示す図である。
【０１０６】
本実施形態で使用される汎用印刷ファイルは、印刷指示部８ａ（前述の印刷指示書に相当）とドキュメントデータ部８ｂとからなる。
【０１０７】
印刷指示部８ａは、ドキュメントの情報と印刷指示とを記述した部分である。また、ドキュメントデータ部８ｂは、上に説明した如くアプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語やＯＳの種類に依存しない或は依存しにくい形式のデータフォーマットとなっている。
【０１０８】
アプリケーションデータを変換した後の変換後データ（汎用印刷データ）としては、印刷リソースデータとして利用可能でかつワードプロセッサアプリケーション等により再度編集可能な形式のデータであることが想定される。実質的な標準形式のうち、例えば、ＸＭＬ形式や、ＷＩＮＤＯＷＳ（登録商標）システムにより提供されるＥＭＦ形式、或はAdobe Systems IncorporatedによるＰＤＦ（Portable Document Format）形式やＳＶＧ形式などが汎用形式の汎用印刷データとして採用できる。
【０１０９】
また、図示はされてはいないが、汎用印刷ファイルには、各メンバプリンタに対応したDEVMODEも含まれているものとする。
【０１１０】
更に詳細に説明すると、印刷指示部８ａは、ヘッダ部８０１、ページ情報部８０２、ドキュメント属性部８０３、印刷体裁指示部８０４、出力方法指定部８０５、メンバプリンタ数８０６、メンバプリンタドライバ名８０７などから構成されている。
【０１１１】
ヘッダ部８０１は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部８０２は、ドキュメントデータ部８ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【０１１２】
印刷体裁指示部８０４は、出力体裁に関する情報を格納する部分である。例えばグループプリンタドライバのＵＩや、メンバプリンタの個別のＵＩを介して設定された印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示などを格納する。
【０１１３】
尚、ステイプル、パンチ指示については、Ｐａｇｅ単位で指定（サブセットステイプ等）されることもある。尚、各メンバプリンタの個別のＵＩを介して設定された内容は印刷体裁指示部８０４に反映されると共に、各メンバプリンタに対応するDEVMODEにも反映されて保存される。
【０１１４】
出力方法指定部８０５は、出力方法として、分散印刷、同報印刷、代行印刷、通常印刷（代行しない印刷）などの出力方法に関する情報を格納する部分である。この出力方法指定部８０５に代行印刷が設定されている場合には、更に優先順位情報（第一候補、第二候補・・・）を付したプリンタ情報が含まれる。
【０１１５】
メンバプリンタ数８０６は、グループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名８０７は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名８０７は、前述のメンバプリンタ数８０６の数だけの格納エリアを持っている。
【０１１６】
前述の図６で説明したジョブ制御プリントサービス６２２では、汎用印刷中間フォーマットデータより汎用印刷ファイルを生成する際、グループプリンタドライバ６０３のＧＵＩ上での設定を印刷指示部８ａへ記憶する。
【０１１７】
更に、グループプリンタドライバ６０３から受け取った汎用印刷中間フォーマットデータを、汎用印刷ファイルのドキュメントデータ部８ｂに記録する処理も、ジョブ制御プリントサービス６２２により実行される。
【０１１８】
＜Windows Print Systemと印刷ジョブ制御システムの関係例＞
次に、図８でWindows（登録商標）が提供するPrintSystemと印刷ジョブ制御システムとにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。ここで、図６と同じ機能は同じ参照番号を付与しており、その機能については詳説しない。
【０１１９】
図８は、本実施形態を示す印刷システムにおけるジョブ処理モジュールを説明するブロック図である。本例は、Windows（登録商標）が提供するPrintSystemと印刷ジョブ制御システムとにおける印刷ジョブの関係と処理概要を示す例である。
【０１２０】
図８において、印刷ジョブ制御システム７００は、制御プログラムが動作するプリントサーバ１０１とクライアント１０２〜１０４の物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。
【０１２１】
また、プリントサーバが管理している出力ポート（Output Port）７１１Ａ、７１１Ｂは、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（Proxy Output Port）７１２Ａ、７１２Ｂとそれぞれ関連付けられている。
【０１２２】
そして、１つのポートに関連づけられた各クライアント上のプロキシ出力ポートの全てを統一的に管理している。本実施形態では、実際のプリントジョブデータは各々のクライアントのプロキシ出力ポート７１２に保持される。
【０１２３】
ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じて、クライアントのジョブ制御プリントサービス６２２はプリントジョブデータをプリントデバイス１０５に送信する。
【０１２４】
次に、印刷ジョブ制御システム７００が、代行印刷といった付加価値印刷を行う場合の処理を説明する。
【０１２５】
印刷ジョブ制御システム７００が、代行印刷といった付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１は、グループプリンタドライバ６０３に割り当てられたプリンタに印刷ジョブを発行しなければならない。
【０１２６】
ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理された汎用印刷中間フォーマットデータをジョブ制御ポートモニタ６２１を介して受け取る。
【０１２７】
ジョブ制御プリントサービス６２２は、この汎用印刷中間フォーマットデータより汎用印刷ファイルを構築し（図８に示す汎用印刷ファイル構築７１５）、先に説明した印刷指示部８ａの指示内容に従う印刷指示をデスプーラ（Des-pooler）７０１に対して行う。
【０１２８】
そして、Des-pooler７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して、印刷を行わせる。
【０１２９】
このとき、Des-pooler７０１は、ジョブ制御プリントサービス６２２の汎用印刷ファイルの印刷指示部８ａの解釈に基づく指示に応じて、ドキュメントデータ部８ｂのドキュメントデータを加工してWindows（登録商標）のＧＤＩに変換する。そして、プリンタドライバに対して印刷指示を行い、印刷ジョブを発行する。
【０１３０】
例えば、印刷体裁指示部８０４に２−ＵＰに相当する指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトするようにDEVMODEを介してメンバプリンタに対して指示する。
【０１３１】
また、印刷体裁指定部８０４にステイプル指示がある場合にはDEVMODEを介してステイプルの指示を行う。また、代行印刷時には、印刷指示部８ａに記述されている代行先メンバプリンタにジョブを発行する。
【０１３２】
なお、２−ＵＰ等の縮小レイアウトを処理する場合に、Des-pooler７０１自身が印刷体裁指定部８０４の内容に基づき縮小レイアウトするようにして、メンバプリンタにはDEVMODEを介して１−ＵＰを指示するようにしても良い。
【０１３３】
また、Des-pooler７０１はメンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、メンバプリンタのDEVMODEを作成する必要がある。しかし、このDEVMODEは印刷指示部８ａ或いは各メンバプリンタに対応して保存されたDEVMODEに記載された内容を適宜各メンバプリンタDEVMODEに反映させて生成する。
【０１３４】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされたそれぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取る。
【０１３５】
そして、受け取ったジョブ（ＰＤＬデータ）に関する情報をプリントサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（Proxy Output Port）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス１０５に送信する。
【０１３６】
図９は、本実施形態を示す情報処理装置のプリントドライバからの通知情報の構成を示すメモリマップを説明する図である。
【０１３７】
図９において、データサイズ９０１は、ジョブデータのサイズを示す。カラーモノクロ９０２は、該ジョブデータがカラー設定されたものかどうかを示す。オブジェクト数９０３は、該ジョブデータをイメージデータに展開処理する場合に必要な処理量を示す。
【０１３８】
図１０は、図８に示したジョブ制御サーバ６３０が管理しているクライアント１０２〜１０４の管理情報の一例を示す図である。
【０１３９】
図１０において、個々のクライアントはそれぞれジョブ制御サーバ６３０に問い合わせを行うことにより、すべてのクライアントの総合的な情報を得ることができる。
【０１４０】
つまり、クライアント１０２〜１０４は、ジョブ制御プリントサービス６２２とジョブ制御サーバ６３０とにより、サーバ１０１から自分以外のクライアントから受信したジョブ情報として、ジョブ処理順序等を取得することができる。
【０１４１】
管理ジョブ数１００１はジョブ制御サーバ６３０が、クライアント１０２〜１０４にスケジュール要求されているジョブ数を示す。該管理ジョブ数はスケジュール要求がジョブ制御サーバ６３０にされてから、プリントデバイスで排紙が完了しクライアントに通知がされた時点で管理対象から削除される。
【０１４２】
管理ジョブページ数１００２は、ジョブ制御サーバ６３０が管理しているジョブの総ページ数を示す。クライアントはスケジュール要求する時にスケジュール対象となるジョブのページ数をジョブ制御サーバ６３０に通知し、ジョブ制御サーバ６３０は通知されたページ数を管理ジョブページ数に加算する。また、排紙がされる毎にページ数を減算する。
【０１４３】
管理クライアント数１００３は、ジョブ制御サーバ６３０にスケジュール要求をしているクライアントの数を示す。なお、スケジュール要求しておらず、ジョブ制御サーバ６３０と情報のやり取りを行っているクライアントの数は含まない。
【０１４４】
図１１は、図１に示したクライアント１０２とサーバ１０１と、プリントデバイス１０５とを含む印刷システムのジョブ処理状態を説明するブロック図である。なお、図６と同一のものには同一の符号を付してある。
【０１４５】
図１１において、ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０とジョブ情報等の情報のやり取りを行う。また、イメージ展開モジュール１３０１にジョブデータのイメージ変換処理の指示を行う。イメージ展開モジュールはジョブ制御プリントサービス６２２のモジュールでもクライアント上のモジュールでもよく、ここでは言及しない。
【０１４６】
また、クライアント１０２内のジョブ制御プリントサービス６２２はプリントデバイス１０５内のプリントキューにジョブを送信したり、記憶装置にデータを保存する。
【０１４７】
サーバ１０１内のジョブ制御サーバ６３０はジョブ制御プリントサービス６２２と情報のやり取りを行い、また、プリントデバイス１０５にアクセスし、プリントデバイス１０５の状態やジョブの状態情報等を取得する。
【０１４８】
図１２は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図６に示したジョブ制御プリントサービスｔ６２２とジョブ制御サーバ６３０による印刷システムのジョブ処理例である。
【０１４９】
なお、Ｓ１１０１〜Ｓ１１１８は各ステップを示す。また、各ステップは、クライアント、サーバ内のＣＰＵがネットワークプリンタ制御プログラム（ＮＰＣＰ）をＲＡＭにロードして実行することで実現される。
【０１５０】
Ｓ１１０１で、プリントドライバから受け取ったジョブデータを解析し必要なドライバ情報（データサイズ、カラーモノクロ情報、オブジェクト数）を得る。
【０１５１】
本実施形態ではジョブデータを解析する方法をとっているが、プリントドライバのモジュールから直接ドライバ情報を受け取る方法等も考えられる。
【０１５２】
Ｓ１１０２で、ジョブ制御プリントサービス６２２は、サーバ１０１内のジョブ制御サーバ６３０から、図１０で示す他クライアントの情報（クライアント情報）を取得する。
【０１５３】
そして、Ｓ１１０３で、サーバ１０１が全てのクライアントより受信して管理しているジョブ順序を含む第２のジョブ情報を取得する。同時に、プリントデバイス１０５に対応するドライバから第１のジョブ情報を取得する。そして、それぞれ取得したジョブ情報を比較してジョブ処理の負荷状態を判断する。この判断は、ジョブ制御プリントサービス６２２が行う。これにより、ドライバから受け取ったジョブデータをドライバでイメージ展開すべきかどうかが決定される。
【０１５４】
本実施形態では、このときの負荷の判断方法として、具体的には、一定の項目と閾値を定めておき該項目に該当するもの、あるいは該閾値を越えるものはイメージ展開すると判断する。閾値は、図１３に示すようなＵＩ画面を介して設定可能であり、ユーザが変更な値とする。そして、ジョブ制御プリントサービス６２２が図１３に示した項目のチェックの設定状態と、取得した第１、第２のジョブ情報とを比較して判断する。
【０１５５】
図１３は、本実施形態を示す情報処理装置の表示装置に表示されるイメージ展開処理設定画面の一例を示す図である。
【０１５６】
本例は、図１３に示す画面中の各項目のチェックボックをユーザがチェックすることで設定する例を示す。
【０１５７】
図１３において、ＣＫ１〜ＣＫ４はチェックボックスで、クライアント１０２〜１０４におけるイメージ展開処理条件を設定する。ここで、チェックボックスＣＫ１がチェックされた場合は、イメージ変換処理をしないことを選択したものとして、図１２に示すＳ１１０４の判定がＮＯとなる。
【０１５８】
また、チェックボックスＣＫ２がチェックされた場合は、その詳細条件として、チェックボックスＣＫ２１〜ＣＫ２５を選択可能となる。そして、カラージョブ、データサイズが、例えば１０ＭＢ以上、処理量、クライアント数が、例えば５以上、ジョブが処理される順番が、例えば５ジョブ以上のいずれかに基づいて、イメージ変換処理を行う。なお、本実施形態において、クライアント数、ジョブの順番は、サーバ１０１から取得される第２のジョブ情報である。つまり、クライアント数、ジョブの順番は、各ジョブ情報の進捗情報に対応するものである。なお、サーバ１０１は、プリントデバイス１０５が処理している各クライアント１０２〜１０４のジョブ情報全体を管理している。
【０１５９】
チェックボックスＣＫ３がチェックされた場合は、常にイメージデータとジョブデータを送信する場合を選択できる。
【０１６０】
さらに、チェックボックスＣＫ４がチェックされた場合は、その詳細条件として、チェックボックスＣＫ４１〜ＣＫ４３を選択可能となり、他のクライアント数が、例えば１０以上、ジョブが処理される順番が、例えば１５ジョブ以上、上記該当項目が３つ以上の場合を選択可能に構成されている。
【０１６１】
なお、図１３に示すイメージ展開処理の設定における項目は、これらに限定されることなく、管理者がユーザ環境に応じて、例えばクライアント数とか、待ち状態のジョブ数の閾値を上記数値例を加減して設定することも可能である。つまり、イメージ展開処理条件における、閾値は、可変量として更新可能に管理することができるシステム構成となっている。
【０１６２】
次に、Ｓ１１０４で、Ｓ１１０３の判断により、ジョブ制御プリントサービス６２２がイメージ展開が不必要と判断した場合は、Ｓ１１０５に進む。また、Ｓ１１０４で、ジョブ制御プリントサービス６２２がイメージ展開が必要だと判断された場合はＳ１１０６に進む。
【０１６３】
そして、Ｓ１１０５で、ジョブ制御プリントサービス６２２がプリントドライバから受け取ったジョブデータ（ＰＤＬデータ）をそのままプリントデバイス１０５に送信し、処理を終了する。
【０１６４】
一方、Ｓ１１０６で、プリントデバイス側で処理されるまでに十分な時間があるかどうかを判断する。具体的には、ジョブ制御プリントサービス６２２がＳ１１０４で判断した、図１３に示す項目、閾値において、複数の項目が該当する場合、閾値を大きく超えるかどうか等に基づいて判断を行う。この場合の項目数、閾値超過値の設定もユーザにより変更が可能とする（図１３を参照）。
【０１６５】
ここで、複数の項目が該当しない場合、または閾値を大きく超えると判断されなかった場合（余裕があると判断した場合）は、Ｓ１１０７に進み、判断された場合（余裕がないと判断した場合）は、Ｓ１１１６に進む。
【０１６６】
そして、Ｓ１００７で、プリントドライバから受け取ったデータを印刷装置が出力可能なイメージデータに展開する処理を行う。次に、Ｓ１００８で、プリントドライバから受け取ったジョブデータをプリントデバイス１０５に送信する。つまり、プリントデバイス１０５で処理されるまでに、十分な時間がないとジョブ制御プリントサービス６２２が判断した場合は、クライアントは、Ｓ１１０７、Ｓ１１０８を実行する。これにより、ＰＤＬデータのイメージ展開処理と、ＰＤＬデータの転送処理との双方の処理を行うこととなる。
【０１６７】
そして、Ｓ１１０９で、ドライバによるイメージ展開処理が完了すると、ジョブ制御プリントサービス６２２が展開済みのイメージデータをプリントデバイス１０５の外部記憶装置に転送する。
【０１６８】
次に、Ｓ１１１０で、イメージデータがプリントデバイス１０５の外部記憶装置に転送が完了したことを検知する。
【０１６９】
そして、Ｓ１１１１で、ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０にＳ１００８で送信したジョブデータの処理状況の問い合わせを行う。
【０１７０】
ジョブ制御サーバ６３０は、ジョブ制御プリントサービス６２２からの問い合わせがあると、プリントデバイス１０５にアクセスし、ジョブ状態の取得を行い、結果をジョブ制御プリントサービス６２２に通知する。
【０１７１】
次に、Ｓ１１１２で、ジョブ制御プリントサービス６２２は、Ｓ１１１１で取得した転送処理開始後のジョブデータの処理状況（ＰＤＬデータのイメージデータへの展開終了状況（展開完了済みか否か））を判断する。
【０１７２】
ここで、プリントデバイス１０５内でのＰＤＬデータのイメージ展開処理が未完了であると判断した場合は、Ｓ１１３に進む。また、ジョブ制御プリントサービス６２２が、プリントデバイス１０５内でＰＤＬデータのイメージ展開処理が完了していると判断した場合は、Ｓ１１１５に進む。
【０１７３】
そして、Ｓ１１１３で、プリントデバイス１０５内のプリントキューにつまれているＳ１００８で送信したジョブに対し、ジョブ制御プリントサービス６２２は、プリントデバイス１０５にキャンセル要求を行う。
【０１７４】
そして、Ｓ１１１４で、Ｓ１１０９でプリントデバイス１０５の記憶装置に送信したイメージデータに印刷指示を出し処理を終了する。
【０１７５】
この際、Ｓ１１１３でキャンセルしたジョブのプリントキューの箇所に、印刷指示されたイメージデータの処理を割り込ませるように指示をする。
【０１７６】
一方、Ｓ１１１５で、プリントデバイス内の展開処理が完了していると判断した場合は、Ｓ１１０９で、プリントデバイス１０５の記憶装置内に送信したイメージデータに対し、ジョブ制御プリントサービス６２２はキャンセル要求を出す。そして、本処理を終了する。これにより、プリントデバイス１０５内のイメージデータが削除される。
【０１７７】
このように、ホスト側のイメージ展開処理と、プリンタ側でのイメージ展開処理で、ジョブ制御プリントサービス６２２が処理完了が早かった方を利用する。これにより、結果としてプリントデバイス１０５側のＲＩＰ処理負荷を低減し、紙間が空いてしまうのをなるべく防ぐことが可能となる。
【０１７８】
また、サーバ１０１とクライアント１０２〜１０４のシステム構成をとることにより、他クライアントを考慮した負荷分散を行うことが可能となり、システム全体の負荷分散効果を向上させることが期待できる。
【０１７９】
一方、Ｓ１１０６で、十分な時間があると判断した場合は、ステップＳ１１１６で、Ｓ１１０７と同様にイメージ展開処理を行う。
【０１８０】
そして、Ｓ１１１７で、Ｓ１１１６でイメージ処理が完了した時点でプリントドライバより受け取ったジョブデータ（ＰＤＬデータ）を削除する。
【０１８１】
そして、Ｓ１１１８では、プリンタドライバが展開したイメージデータをジョブデータの代わりにプリントデバイス１０５に送信して、本処理を終了する。つまり、ＰＤＬデータは送信することなく、プリンタドライバが展開したイメージデータに差し替えて、プリントデバイス１０５に送信される。
【０１８２】
このように本実施形態では、サーバ１０５が管理しているプリントデバイス１０５の進捗情報を参照する。そして、プリントデバイス１０５がかかえている複数のクライアントからのジョブ情報の進捗情報と、ジョブ処理を開始直前のジョブ情報とを比較して、ジョブ処理の態様を動的に決定している。
【０１８３】
そして、プリントデバイス１０５で、これから送信すべきジョブ情報がプリントデバイス１０５で処理されるまでに十分な時間がある場合には、クライアント側でイメージ展開を行うことで、プリントデバイス１０５の負担を権限する。
【０１８４】
また、これから送信すべきジョブ情報がプリントデバイス１０５で処理されるまでに十分な時間がない場合には、各クライアントは、ジョブ情報のイメージ展開処理を開始し、並行して、ＰＤＬデータを含むジョブ情報をプリントデバイス１０５に転送処理を行う。さらに、展開されたイメージの転送制御と、ＰＤＬデータを含むジョブ情報の転送制御を並列的に行う。そして、プリントデバイス１０５に転送したジョブ情報に基づくイメージ展開処理が完了しているかどうかに基づいて、転送済みのイメージデータの削除指示や、転送したジョブ情報の取消処理を指示する。これにより、いち早く処理可能なイメージデータを選択して印刷処理を用紙間隔が最大スループットとなるタイミングで連続的に行うことが可能となる。
【０１８５】
このように、クライアント１０２〜１０４から要求されるジョブ情報を複数処理しているプリントデバイス１０５の進捗情報を捉えることで、各クライアントとプリントデバイスとのジョブ処理の分散処理効率を向上させることが可能となった。
【０１８６】
〔第２実施形態〕
以下、図１４に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１８７】
図１４は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１８８】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１８９】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１９０】
本実施形態における図１２に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１９１】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１９２】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１９３】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１９４】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１９５】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１９６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１９７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１９８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２００】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０２０１】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０２０２】
【図１】本実施形態を示す印刷装置を適用する印刷処理システムの構成を示す図である。
【図２】図１に示したクライアントとサーバとして使用されるコンピュータの構成を説明するブロック図である。
【図３】図２に示したＲＡＭのメモリマップの一例を示す図である。
【図４】図２に示したＦＤのメモリマップの一例を示す図である。
【図５】図２に示したＦＤドライブに対して挿入されるＦＤとの関係を示す図である。
【図６】図１に示したクライアントとサーバとの間の印刷制御モジュールの構成を説明するブロック図である。
【図７】図６に示したグループプリンタドライバにより構築する汎用印刷ファイルの構成の一例を示す図である。
【図８】本実施形態を示す印刷システムにおけるジョブ処理モジュールを説明するブロック図である。
【図９】本実施形態を示す情報処理装置のプリントドライバからの通知情報の構成を示すメモリマップを説明する図である。
【図１０】図８に示したジョブ制御サーバが管理しているクライアントの管理情報の一例を示す図である。
【図１１】図１に示したクライアントとサーバと、プリントデバイスとを含む印刷システムのジョブ処理状態を説明するブロック図である。
【図１２】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図１３】本実施形態を示す情報処理装置の表示装置に表示されるイメージ展開処理設定画面の一例を示す図である。
【図１４】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０２０３】
１０１  サーバ
１０２〜１０４  クライアント
１０５  プリントデバイス
６２２  ジョブ制御プリントサービス
６３０  ジョブ制御サーバ
【図１】
2007317090.tif 000003
【図２】
2007317090.tif 000004
【図３】
2007317090.tif 000005
【図４】
2007317090.tif 000006
【図５】
2007317090.tif 000007
【図６】
2007317090.tif 000008
【図７】
2007317090.tif 000009
【図８】
2007317090.tif 000010
【図９】
2007317090.tif 000011
【図１０】
2007317090.tif 000012
【図１１】
2007317090.tif 000013
【図１２】
2007317090.tif 000014
【図１３】
2007317090.tif 000015
【図１４】
2007317090.tif 000016