(57)【特許請求の範囲】
【請求項１】
ネットワークを介して印刷処理機能が異なる複数の印刷装置のいずれかから印刷要求を受け付ける情報処理装置であって、
クライアント装置にアプリケーションサービスおよび当該アプリケーションサービスを用いて前記クライアント装置で作成される印刷情報に対する印刷処理サービスを提供する提供手段と、
前記クライアント装置が前記印刷処理サービスで提供されるユーザインタフェースを用いて前記印刷情報に設定する印刷設定情報であって、少なくとも１つの設定項目に対して複数の設定値が許容される印刷設定情報と、前記印刷情報と、当該印刷情報を作成したユーザを識別する識別情報とを前記クライアント装置から取得する取得手段と、
前記取得手段が前記クライアント装置から取得した前記印刷情報から前記複数の印刷装置の機種情報に依存しない中間印刷ジョブを作成する作成手段と、
前記作成手段が作成した中間印刷ジョブに前記識別情報および前記印刷設定情報を関連づけて記憶手段に登録する登録手段と、
前記複数の印刷装置のうちのいずれか１つの印刷装置から前記登録手段により前記記憶手段に登録された中間印刷ジョブに対する印刷要求を受け付ける受付手段と、
前記受付手段が印刷要求を受け付けた前記印刷装置から取得する機種情報を用いて、前記記憶手段に登録した前記印刷設定情報に含まれる前記複数の設定値の中で、前記機種情報に強い依存性を示す設定値を前記記憶手段に登録された前記中間印刷ジョブに設定すべき印刷設定情報として確定する確定手段と、
前記受付手段が受け付けた前記印刷要求に含まれるユーザを識別する識別情報を用いて前記記憶手段から検索される前記中間印刷ジョブに前記確定手段が確定した印刷設定情報を反映した出力印刷ジョブを生成する生成手段と、
前記生成手段が生成した前記出力印刷ジョブを前記受付手段が印刷要求を受け付けた印刷装置に送信する送信手段と、
前記送信手段が送信した前記出力印刷ジョブに対応する前記中間印刷ジョブを前記記憶手段から削除する削除手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記印刷情報に対してユーザが設定した複数の設定値の中で、前記受付手段が印刷要求を受け付けた前記印刷装置から取得する機種情報を用いて、前記記憶手段に登録した前記印刷設定情報に含まれる前記複数の設定値の中で、前記機種情報に強い依存性を示す設定値を前記印刷設定情報として設定できるかどうかを判断する判断手段を備え、
前記確定手段は、前記受付手段が印刷要求を受け付けた印刷装置に設定すべき印刷設定情報を確定する場合、前記判断手段が前記機種情報に強い依存性を示す設定値を前記印刷設定情報として設定できないと判断した場合、前記複数の設定値の中で、前記機種情報に弱い依存性を示す設定値のうち、より強い依存性を示す設定値を前記印刷設定情報として確定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記確定手段が確定した印刷設定情報が前記機種情報に弱い依存性を示す設定値で確定したものであるかどうかを判別する判別手段と、
前記判別手段が確定した印刷設定情報が前記機種情報に弱い依存性を示す設定値で確定したものであると判別した場合、前記送信手段が送信した前記出力印刷ジョブに対応する前記中間印刷ジョブを前記削除手段が前記記憶手段から削除することに代えて、前記中間印刷ジョブと、当該中間印刷ジョブに設定された印刷設定情報と、前記ユーザを識別する識別情報とを関連づけて前記出力印刷ジョブを送信した印刷装置とは異なる印刷装置から再印刷すべき再印刷ジョブとして前記記憶手段に保持させる第１の保持手段と、
前記受付手段が異なる印刷装置から再印刷要求を受け付けた場合、複数の印刷設定値の中で、再印刷要求を受け付けた印刷装置から取得する機種情報に強い依存性を示す設定値を前記印刷設定情報として設定できるかどうかを判定する第１の判定手段と、を備え、
前記第１の判定手段が再印刷要求を受け付けた印刷装置から取得する機種情報に強い依存性を示す設定値を前記印刷設定情報として設定できると判定した場合、前記確定手段は、いずれかの印刷装置から前記受付手段が受け付ける再印刷要求に含まれるユーザを識別する識別情報を用いて前記記憶手段から検索される前記再印刷ジョブに再印刷要求を受け付けた印刷装置から取得する機種情報に強い依存性を示す設定値を印刷設定情報として確定することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記受付手段が印刷要求を受け付けた前記印刷装置から取得する機種情報を用いて、前記記憶手段に登録した前記印刷設定情報に含まれる前記複数の設定値のいずれでも印刷設定情報を確定できないかどうかを判定する第２の判定手段と、
前記第２の判定手段が前記複数の設定値のいずれでも前記印刷設定情報を確定できないと判断した場合、前記中間印刷ジョブと、当該中間印刷ジョブに設定された印刷設定情報と、前記ユーザを識別する識別情報とを関連づけて強制印刷ジョブとして前記記憶手段に保持させる第２の保持手段と、
前記確定手段は、いずれかの印刷装置から前記受付手段が受け付ける強制印刷要求に含まれるユーザを識別する識別情報を用いて前記記憶手段から検索される前記強制印刷ジョブに再印刷要求を受け付けた印刷装置から取得する機種情報に弱い依存性を示す設定値の中で、より強い依存性を示す設定値を印刷設定情報として確定することを特徴とする請求項１記載の情報処理装置。
【請求項５】
ネットワークを介して印刷処理機能が異なる複数の印刷装置のいずれかから印刷要求を受け付ける情報処理装置におけるジョブ処理方法であって、
クライアント装置にアプリケーションサービスおよび当該アプリケーションサービスを用いて前記クライアント装置で作成される印刷情報に対する印刷処理サービスを提供する提供工程と、
前記クライアント装置が前記印刷処理サービスで提供されるユーザインタフェースを用いて前記印刷情報に設定する印刷設定情報であって、少なくとも１つの設定項目に対して複数の設定値が許容される印刷設定情報と、前記印刷情報と、当該印刷情報を作成したユーザを識別する識別情報とを前記クライアント装置から取得する取得工程と、
前記取得工程が前記クライアント装置から取得した前記印刷情報から前記複数の印刷装置の機種情報に依存しない中間印刷ジョブを作成する作成工程と、
前記作成工程が作成した中間印刷ジョブに前記識別情報および前記印刷設定情報を関連づけて記憶手段に登録する登録工程と、
前記複数の印刷装置のうちのいずれか１つの印刷装置から前記登録工程により前記記憶手段に登録された中間印刷ジョブに対する印刷要求を受け付ける受付工程と、
前記受付工程が印刷要求を受け付けた前記印刷装置から取得する機種情報を用いて、前記記憶手段に登録した前記印刷設定情報に含まれる前記複数の設定値の中で、前記機種情報に強い依存性を示す設定値を前記記憶手段に登録された前記中間印刷ジョブに設定すべき印刷設定情報として確定する確定工程と、
前記受付工程が受け付けた前記印刷要求に含まれるユーザを識別する識別情報を用いて前記記憶手段から検索される前記中間印刷ジョブに前記確定工程が確定した印刷設定情報を反映した出力印刷ジョブを生成する生成工程と、
前記生成工程が生成した前記出力印刷ジョブを前記受付工程が印刷要求を受け付けた印刷装置に送信する送信工程と、
前記送信工程が送信した前記出力印刷ジョブに対応する前記中間印刷ジョブを前記記憶手段から削除する削除工程と、
を備えることを特徴とするジョブ処理方法。
【請求項６】
請求項５に記載のジョブ処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して印刷処理機能が異なる複数の印刷装置のいずれかから印刷要求を受け付けることが可能な情報処理装置、情報処理装置のジョブ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
プルプリントシステムとは、サーバが、クライアント装置（クライアントＰＣ）にて生成された印刷ジョブを一旦記憶し、プリンタからの印刷要求に応じてサーバからプリンタへ印刷ジョブを転送するシステムである。
このようにプリンタやそのプリンタドライバをサーバで一括管理することにより、クライアントのプリンタドライバレス化や複数プリンタの利用が容易となる。
ただし、プルプリントシステムでは、クライアントＰＣにて印刷ジョブを生成する段階では出力プリンタが決まっていないため、ユーザが所望とする印刷物を得られない可能性があった。
【０００３】
具体例を挙げて説明すると、ステイプル設定を含む印刷ジョブがクライアントＰＣにて生成されたとしても、印刷要求を発行したプリンタがステイプル機能を備えない場合、ステイプル処理が行われない印刷物が出力される。
【０００４】
そうした問題の解決策の１つとして印刷設定情報がプリンタ非サポートなら印刷を中止する技術が特許文献１に開示されている。さらに、特許文献１には、予め許可しておいた印刷設定情報に含まれる設定値についてはプリンタの能力と合わなくても強制印刷する点も開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０９７２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、強制印刷において無視したパラメータについては期待通りに出力されないおそれがある。例えば用紙サイズを無視した場合、Ａ３用紙にＡ３サイズの画像を印刷するための印刷ジョブを送信して、用紙サイズがＡ３からＡ４に変更された結果、Ａ４用紙に画像が欠けて印刷されてしまう。
【０００７】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、ユーザがいずれの印刷装置からプルプリント印刷要求を行った場合でも、ユーザの意図から外れた出力結果になる可能性を低減できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
ネットワークを介して印刷処理機能が異なる複数の印刷装置のいずれかから印刷要求を受け付ける情報処理装置であって、クライアント装置にアプリケーションサービスおよび当該アプリケーションサービスを用いて前記クライアント装置で作成される印刷情報に対する印刷処理サービスを提供する提供手段と、前記クライアント装置が前記印刷処理サービスで提供されるユーザインタフェースを用いて前記印刷情報に設定する印刷設定情報であって、少なくとも１つの設定項目に対して複数の設定値が許容される印刷設定情報と、前記印刷情報と、当該印刷情報を作成したユーザを識別する識別情報とを前記クライアント装置から取得する取得手段と、前記取得手段が前記クライアント装置から取得した前記印刷情報から前記複数の印刷装置の機種情報に依存しない中間印刷ジョブを作成する作成手段と、前記作成手段が作成した中間印刷ジョブに前記識別情報および前記印刷設定情報を関連づけて記憶手段に登録する登録手段と、前記複数の印刷装置のうちのいずれか１つの印刷装置から前記登録手段により前記記憶手段に登録された中間印刷ジョブに対する印刷要求を受け付ける受付手段と、前記受付手段が印刷要求を受け付けた前記印刷装置から取得する機種情報を用いて、前記記憶手段に登録した前記印刷設定情報に含まれる前記複数の設定値の中で、前記機種情報に強い依存性を示す設定値を前記記憶手段に登録された前記中間印刷ジョブに設定すべき印刷設定情報として確定する確定手段と、前記受付手段が受け付けた前記印刷要求に含まれるユーザを識別する識別情報を用いて前記記憶手段から検索される前記中間印刷ジョブに前記確定手段が確定した印刷設定情報を反映した出力印刷ジョブを生成する生成手段と、前記生成手段が生成した前記出力印刷ジョブを前記受付手段が印刷要求を受け付けた印刷装置に送信する送信手段と、前記送信手段が送信した前記出力印刷ジョブに対応する前記中間印刷ジョブを前記記憶手段から削除する削除手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ユーザがいずれの印刷装置からプルプリント印刷要求を行った場合でも、ユーザの意図から外れた出力結果になる可能性を低減できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態を示す情報処理装置を含む印刷システムの一例を示す図である。
【図２】図１に示した印刷システムのハードウェア構成を示すブロック図である。
【図３】印刷システムにおけるソフトウェア構成を説明するブロック図である。
【図４】プリンタドライバの機能処理ソフトモジュールを説明するブロック図である。
【図５】印刷システムにおける一連の印刷処理を説明するフローチャートである。
【図６】情報処理装置のデータ処理手順の一例を示すフローチャートである。
【図７】クライアント装置に提供されるユーザインタフェースを示す図である。
【図８】ＲＡＭ上に作成されるジョブ管理テーブルの一例を示す図である。
【図９】印刷装置の機種情報と印刷設定情報との依存性を説明する図である。
【図１０】印刷システムにおける印刷ジョブの処理例を示す図である。
【図１１】情報処理装置のデータ処理手順を示すフローチャートである。
【図１２】情報処理装置のデータ処理手順を示すフローチャートである。
【図１３】情報処理装置のデータ処理手順を示すフローチャートである。
【図１４】ＲＡＭ上に作成されるジョブ管理テーブルの一例を示す図である。
【図１５】情報処理装置のデータ処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
次に本発明を実施するための最良の形態について図面を参照して説明する。
〔第１実施形態〕
本発明に係る情報処理装置の一実施形態としてのコンピュータを用いたプルプリントシステムについて説明する。なお、図１に示すプリンタについては、機種情報が異なるプリンタである。ここで、機種情報とは、出力用紙サイズ、出力方法、排紙方法、部数、ページレイアウト、倍率、カラーモード等の情報が含まれる。また、本実施形態では、印刷装置を例としたプルプリントシステムとするが、後述するように当該印刷装置には、印刷機能を備える画像形成装置、例えば複合機が含まれる。
図１は、本実施形態を示す情報処理装置を含む印刷システムの一例を示す図である。なお、図１に示すシステムでは、入出力デバイス、特に、入力手段としてのキーボード、出力手段としてのディスプレイ（表示装置）等は省略している。なお、図１に示すシステム例は、情報処理装置がネットワークを介して、印刷処理機能が異なる複数の印刷装置のいずれかから印刷要求を受け付ける情報処理装置の例である。ここで、情報処理装置は、後述するクライアント装置（以下、クライアントＰＣ）に対して、Ｗｅｂアプリケーションサービスと、Ｗｅｂアプリケーションサービスを用いてクライアント装置で作成された印刷情報に対する印刷処理サービスを提供する。
その際、情報処理装置は、図７に一例を示すユーザインタフェースをクライアント装置に提供して、作成した印刷情報に対する印刷設定情報を受け付ける処理を行う。また、図７に示すユーザインタフェースにおいては、印刷情報に設定する印刷設定情報であって、少なくとも１つの設定項目に対して複数の設定値が許容される印刷設定情報を受け付けることが可能に構成されている。ここで、設定値には、詳細は後述するが印刷装置の機能に依存する依存性が強い設定値と、弱い設定値とが含まれる。
【００１２】
本実施形態のシステムには、少なくともクライアントＰＣ５００、プリンタ２０００、文書作成用のアプリケーションを管理するアプリケーションサーバ３００が含まれている。アプリケーションサーバ３００には出力印刷ジョブを生成するプリンタドライバ（汎用ドライバー）３２０がインストールされている。本実施形態における出力印刷ジョブとは、ユーザから印刷要求を受け付けたプリンタにて処理されるデータ、命令群を指す。
【００１３】
さらに、本実施形態のシステムには、全てのデジタルデータを保存するストレージサーバ４００が接続されている。ただし、各種データは専用のストレージサーバではなく、アプリケーションサーバ３００の中にあってもよい。
また、本実施形態のシステムには、それぞれの管理をＷｅｂサービスで管理するのに好都合なポータルサイトを提供するポータルサーバ２００も含まれている。
図１に示すシステム例では、プリンタＡ２００１、プリンタＢ２００２が接続されているが、本実施形態においては少なくとも１台以上のプリンタが含まれているものとする。
本発明では、図１でも特にクライアントＰＣ５００、プリンタ２０００、そしてアプリケーションサーバ３００の構成で説明する。
図２は、図１に示した印刷システムのハードウェア構成を示すブロック図である。なお、本システム例は、図１のアプリケーションサーバ３００、クライアントＰＣ５００およびプリンタ２０００から成り立つ印刷システム例である。
【００１４】
図２において、クライアントＰＣ５００は、ＲＯＭ５３のプログラム用ＲＯＭあるいは外部メモリ５１１に記憶された制御プログラム等に基づいてクライアントＰＣ５００の制御を行うＣＰＵ５１を備える。ここで、ＣＰＵ５１は、システムバス５４に接続される各デバイスを総括的に制御する。
【００１５】
このＲＯＭ５３あるいは外部メモリ５１１には、ＣＰＵ５１の制御プログラムであるオペレーティングシステム（以下ＯＳ）、文書処理の際に使用するフォントデータ等、各種データを記憶する。ＲＡＭ５２は、ＣＰＵ５１の主メモリ、ワークエリア等として機能する。
【００１６】
キーボードコントローラ（ＫＢＣ）５５は、キーボード５９や不図示のポインティングデバイスからのキー入力を制御する。ＤＩＳコントローラ（ＤＩＳＣ）５６は、ディスプレイ（ＤＩＳ）５１０の表示を制御する。
５７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ等を記憶する外部メモリ５１１とのアクセスを制御する。外部メモリ５１１には、ハードディスク（ＨＤＤ）、フロッピー（登録商標）ディスク（ＦＤ）等がある。
入出力部５８は、双方向性インタフェース（インタフェース）５３０を介してアプリケーションサーバ３００に接続されて、アプリケーションサーバ３００との通信制御処理を実行する。
【００１７】
アプリケーションサーバ３００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された制御プログラム等に基づいてアプリケーションサーバ３００の制御を行うＣＰＵ１を備える。ここで、ＣＰＵ１は、システムバス４に接続される各デバイスを総括的に制御する。
【００１８】
このＲＯＭ３あるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下ＯＳ）、文書処理の際に使用するフォントデータ等、各種データが記憶されている。また、外部メモリ１１には、後述の図６に示すフローチャートに記載の動作制御を行うプリンタドライバ３２０が記憶されている。
また、後述の出力装置依存度を定義したテーブル、中間印刷ジョブを管理するジョブ管理テーブル等もＲＯＭ３または外部メモリ１１に記憶される。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００１９】
ディスクコントローラ（ＤＫＣ）７は、ブートプログラム、各種のアプリケーション、フォントデータ等を記憶する外部メモリ１１とのアクセスを制御する。外部メモリ１１には、ハードディスク（ＨＤＤ）、フロッピー（登録商標）ディスク（ＦＤ）等がある。
入出力部８は、双方向性インタフェース（インタフェース）３０を介してクライアントＰＣ５００およびプリンタ２０００に接続されて、クライアントＰＣ５００およびプリンタ２０００との通信制御処理を実行する。
【００２０】
プリンタ２０００は、ＣＰＵ１２により制御される。ＣＰＵ１２は、ＲＯＭ１３、あるいは外部メモリ１４に記憶された制御プログラム等に基づいて動作する。ＣＰＵ１２は、システムバス１５を介して印刷部Ｉ／Ｆ１６に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、このＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶される。ＲＯＭ１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１４がないプリンタの場合に、アプリケーションサーバ３００上で利用される情報等が記憶されている。
【００２１】
ＣＰＵ１２は入出力部１８を介してアプリケーションサーバ３００との通信処理が可能となっており、プリンタ内の情報等をアプリケーションサーバ３００に通知できる。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、入出力部１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２２】
また、前述した外部メモリ１４は１個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作パネルなどの操作部２１からのプリンタモード設定情報を記憶するようにしてもよい。
【００２３】
図３は、図１に示した印刷システムにおけるソフトウェア構成を説明するブロック図である。
【００２４】
図３において、クライアントＰＣ５００にはＷｅｂブラウザ５０１がインストールされている。そこで、ユーザは、入出力部５８を介して接続されたアプリケーションサーバ３００にインストールされているＷｅｂアプリケーション３１０のドキュメントデータを、Ｗｅｂブラウザ５０１を用いて閲覧・編集できる。
【００２５】
アプリケーションサーバ３００には、クライアントＰＣ５００のＷｅｂブラウザ５０１からドキュメントデータの閲覧編集を可能とするＷｅｂアプリケーション３１０が入っている。アプリケーションサーバ３００にはさらに、後述の図６に示すフローチャートに記載の動作制御を行うプリンタドライバ３２０が外部メモリ１１にインストールされている。
【００２６】
プリンタドライバ３２０はクライアントＰＣ５００からＷｅｂアプリケーション３１０を介して印刷設定情報を受け付け、かつ、出力印刷ジョブ（ＰＤＬ）を生成する。なお、本願の印刷設定情報は、設定値および後述する設定値で構成される。プリンタドライバ３２０は、図４に示す通り下記機能を備える。
【００２７】
図４は、図１に示したアプリケーションサーバ３００にインストールされるプリンタドライバの機能処理ソフトモジュールを説明するブロック図である。
図４において、印刷設定機能３２１は、クライアントＰＣ５００のＷｅｂブラウザ５０１に設定画面を表示し、ユーザからの印刷設定情報に含まれる候補値の入力を受け付け、中間印刷ジョブ作成機能３２２は、中間印刷ジョブを作成する。
【００２８】
印刷要求受け付け機能３２３は、プリンタ２０００からの印刷要求を受け付け、ユーザ情報取得機能３２７は、ユーザの情報を取得し、構成情報取得機能３２８は、プリンタ２０００の構成情報を取得する。
印刷設定確定機能３２４は、取得した構成情報に基づいて中間印刷ジョブの印刷設定情報に含まれる候補値のうち適切な候補値を選択して印刷設定情報を決定する。
出力印刷ジョブ作成機能３２５は、印刷設定確定機能３２４によって決定した印刷設定情報に基づき中間印刷ジョブから出力印刷ジョブを作成する。
【００２９】
また、プリンタドライバ３２０は中間印刷ジョブをユーザ情報や印刷設定情報と対応づけて図３のアプリケーションサーバ３００の印刷ジョブ溜置き用のメモリ３３０に溜置きする。プリンタドライバ３２０は、プリンタ２０００からの印刷要求により印刷ジョブ溜置き用メモリ３３０から中間印刷ジョブを取り出す印刷ジョブ管理機能３２６を備える。
また、本実施形態において、プリンタドライバ３２０は不特定のプリンタに出力するため、汎用ドライバーとして説明するが、プリンタからの印刷要求に対応できるプリンタドライバであれば、汎用ドライバーに限る必要はない。
【００３０】
Ｗｅｂアプリケーション３１０、およびプリンタドライバ３２０は外部メモリ１１に保存され、ＯＳやそのプログラムを利用する別のプログラムからの指示によってＲＡＭ２にロードされ、ＣＰＵ１によって実行されるプログラムモジュールである。
【００３１】
以上の印刷システムの印刷処理に係わるハードウェア並びにソフトウェア構成を踏まえた上で、本実施例の印刷処理の動作を説明する。
図５は、本実施形態を示す印刷システムにおける一連の印刷処理を説明するフローチャートである。以下、図５に示すクライアントＰＣ５００、Ｗｅｂアプリケーション３１０、プリンタドライバ３２０によりプリンタ２０００から印刷ジョブを出力する処理を説明する。
クライアントＰＣ５００のユーザは、アプリケーションサーバ３００のＷｅｂアプリケーション３１０により提供される画面を使って編集処理を行う。アプリケーションサーバ３００は、ユーザの編集処理に従いドキュメントデータを作成する。
【００３２】
ユーザがクライアントＰＣ５００のディスプレイ５１０に表示される表示画面を操作して印刷設定指示を行うと（Ｓ１）、Ｗｅｂアプリケーション３１０はプリンタドライバ３２０に印刷設定要求を行う（Ｓ２）。ここで、要求を受けたプリンタドライバ３２０は、印刷設定機能３２１にてＷｅｂアプリケーション３１０を経由して（Ｓ３）、クライアントＰＣ５００のＷｅｂブラウザ５０１にＵＩ画面（印刷設定画面）を表示する（Ｓ４）。ここで、ユーザからＵＩ画面を介して印刷設定情報の入力を受け付ける。
ユーザはＷｅｂブラウザ５０１がディスプレイ５１０に表示するＵＩ画面を通して印刷設定情報を設定する（Ｓ５）。
【００３３】
ユーザが印刷指示を行うと、Ｗｅｂアプリケーション３１０はプリンタドライバ３２０に印刷要求を行う（Ｓ６）。
具体的には、Ｗｅｂアプリケーション３１０は、印刷対象のドキュメントデータをプリンタドライバ３２０へ送信する。印刷要求を受けたプリンタドライバ３２０は、印刷設定機能３２１を用いて、中間印刷ジョブ作成機能３２２へドキュメントデータを渡す（Ｓ７）。
そして、中間印刷ジョブ作成機能３２２は受け取ったドキュメントデータに基づく中間印刷ジョブを作成する（Ｓ８）。
印刷ジョブ管理機能３２６は、中間印刷ジョブにユーザ情報取得機能３２７により取得したユーザＩＤと前述の印刷設定情報を対応付けていったん印刷ジョブ溜置き用のメモリ３３０に溜め置き（記憶）する。
このとき、ユーザＩＤは、例えばユーザ本人を表す番号でもいいし、単にユーザの名前でもよい。また、このユーザＩＤは任意の方法で取得する。具体的にはＩＤカードリーダ等から読み取ってもいいし、クライアントＰＣ５００にログインすることですでに定められている情報を用いてもよい。
【００３４】
その後、プリンタ２０００で、操作部２１を用いてユーザがユーザＩＤの情報を入力する。すると、プリンタ２０００は、アプリケーションサーバ３００のプリンタドライバ３２０へ、本ユーザＩＤに対応した中間印刷ジョブを印刷するよう印刷要求を発行する（Ｓ９）。
プリンタドライバ３２０の印刷要求受け付け機能３２３は、本要求をプリンタ２０００から受け取り、一連の印刷処理を始めることになる。
そして、プリンタドライバ３２０は、印刷ジョブ溜置き用のメモリ３３０に溜置きされている対象ユーザＩＤに対応した中間印刷ジョブをピックアップする（Ｓ１０）。ここで、印刷設定確定機能３２４は、ピックアップされた中間印刷ジョブの印刷設定情報を確定する（Ｓ１１）。
【００３５】
そして、出力印刷ジョブ作成機能３２５は、中間印刷ジョブと確定された印刷設定情報とに基づいて出力印刷ジョブを生成する（Ｓ１２）。その後、プリンタドライバ３２０は、要求元のプリンタに生成された出力印刷ジョブを送信する（Ｓ１３）。
【００３６】
上記の印刷処理の流れにおいて印刷処理動作の核となるプリンタドライバ３２０の動作の詳細を示したフローチャートを図６に示す。
図６は、本実施形態を示す情報処理装置のデータ処理手順の一例を示すフローチャートである。本例は、図２に示したアプリケーションサーバ３００のプリンタドライバ３２０による処理手順に対応する。なお、各ステップは、アプリケーションサーバ３００のＣＰＵ１がＲＡＭ２にプリンタドライバ３２０をロードして実行することにより実現される。また、以下の説明においては、処理の主体をプリンタドライバ３２０として説明する。
【００３７】
プリンタドライバ３２０は、クライアントＰＣ５００からＷｅｂアプリケーション３１０を介して印刷設定要求を受け取る（Ｓ６０１）。そして、印刷設定機能３２１が、図７に例示するようなユーザインタフェース（設定画面）をクライアントＰＣ５００のＤＩＳＣ６を介してＷｅｂブラウザ５０１がディスプレイ５１０上に表示する。ここで、ユーザからユーザインタフェースに対して指定される印刷設定情報の入力を受け付ける（Ｓ６０２）。ここで、印刷設定情報とは、原稿サイズ、出力用紙サイズ、出力方法、排紙方法、部数、ページレイアウト、倍率、カラーモード等が含まれる。また、本実施形態では、１つの設定項目に対して、複数の設定値を指定することが可能であり、例えば出力用紙サイズとして、原稿サイズと同じと、Ａ４という具合に複数の設定値を指定可能に構成されている。
これは、後にユーザが印刷要求を行うシステムに接続可能ないずれの印刷装置においても、印刷装置の機能への依存度を示す依存度がより強い印刷設定を選択される中間印刷ジョブに反映するためである。
図７に示す設定画面では、プリンタに依存する設定項目に関して、任意に複数の設定値を指定可能であり、プリンタドライバ３２０は指定された複数の設定値を印刷設定情報として受け付ける。なお、図７に示すユーザインタフェースは、アプリケーションサーバ３００のプリント処理サービスによりクライアントＰＣ５００に提供され、プリンタ２０００〜２００２に依存しない、いわゆる汎用性のあるユーザインタフェースとして提供される。
なお、クライアントＰＣのユーザは、このユーザインタフェースが表示される時点では、どのプリンタであるかを特定しておらず、高機能のプリンタを意識して印刷設定を行うことも、低機能のプリンタを意識して印刷設定を行うことも共に可能な状態である。ここで、ユーザがプリンタを特定しない状況とは、クライアントＰＣ５００のユーザがこの時点では、出力すべき印刷情報の出力先を意識していないことを意味する。
【００３８】
図７の例では、出力用紙サイズはＡ４のみ、カラーモードはカラーのみ、排紙方法のパンチは「ＯＦＦ」のみを選択している。しかし、出力方法は「両面印刷」と「片面印刷」と２つの設定値が選択されており、ステイプルは「ＯＮ」と「ＯＦＦ」と２つの設定値が選択されている。
ここで、プリンタに依存する設定項目とは、プリンタのオプション構成や能力によって処理の可否や処理範囲が決まる項目である。例えば、両面／ステイプル／カラー印刷の可否、使用可能な用紙サイズの範囲、などが挙げられる。
一方、プリンタに依存しない設定項目とは、Ｎｕｐなどホスト側での処理が可能で、どのプリンタでも実行可能な設定項目である。このようにしてユーザが設定した複数の設定値を含む印刷設定情報は、システムの動作仕様に則ってアプリケーションに送信される（Ｓ６０３）。
【００３９】
一方、Ｓ６０１で印刷設定要求でないとプリンタドライバ３２０が判断した場合は、プリンタドライバ３２０が、Ｗｅｂアプリケーション３１０から印刷要求としてドキュメントデータを受け取ったかどうかを判断する（Ｓ６１１）。ここで、プリンタドライバ３２０がＷｅｂアプリケーション３１０から印刷要求としてドキュメントデータを受け取っていると判断した場合、Ｓ６１２へ進む。そして、Ｓ６１２で、Ｗｅｂアプリケーション３１０から受け取ったドキュメントデータからアプリケーションおよび／またはＯＳから設定を含む印刷設定情報を受け取る（Ｓ６１２）。
【００４０】
さらに、プリンタドライバ３２０は、Ｓ６１２において、ユーザ情報取得機能３２７により印刷要求を発行したユーザのユーザＩＤを受け取る（Ｓ６１２）。
そして、中間印刷ジョブ作成機能３２２は、Ｗｅｂアプリケーション３１０から受信したドキュメントデータに基づいてプリンタに依存しない中間印刷ジョブ（例えばＥＭＦ：拡張メタファイル）を生成する。そして、プリンタドライバ３２０は、中間印刷ジョブ作成機能３２２により生成された中間印刷ジョブに前述したユーザＩＤと印刷設定情報とを対応付けて印刷ジョブ溜置き用のメモリ３３０にいったんスプールする（Ｓ６１３）。そして、プリンタドライバ３２０は、図８に例示するジョブ管理テーブルに情報を追加して（Ｓ６１４）、本処理を終了する。
【００４１】
図８は、図２に示したＲＡＭ２上に作成されるジョブ管理テーブルの一例を示す図である。
図８において、各中間印刷ジョブのジョブ名に対してユーザＩＤと印刷設定情報が対応付いて記憶されていることを示している。ジョブ管理テーブルは複数のユーザの中間印刷ジョブを一括管理する。各中間印刷ジョブにはそれぞれ異なる印刷設定情報が割り当てられている。
スプールされた中間印刷ジョブは、プリンタから印刷要求があるまで印刷ジョブ溜置き用のメモリ３３０に記憶される。
【００４２】
プリンタ２０００でユーザがユーザ情報を入力する（入力方法は任意の方法でよい。例えば前述したようにＩＤカードをかざしたりログインしたりすることで入力する）ことで、プルプリントの印刷要求がプリンタ２０００から発行される。
その結果、入出力部１８を介して通常印刷要求を示すコマンドがプリンタ２０００からプリンタドライバ３２０に送信される。
この場合は、Ｓ６１１でＮＯと判断され、プリンタドライバ３２０はこのプリンタ２０００からの通常印刷要求を示すコマンドを入出力部８を介して印刷要求受け付け機能３２３により受け取っているかどうかを判断する（Ｓ６２１）。
ここで、プリンタドライバ３２０が通常印刷要求を示すコマンドを入出力部８を介して印刷要求受け付け機能３２３により受け取っていると判断した場合、Ｓ６２２へ進む。そして、さらに、入出力部８を介して、プリンタドライバ３２０の構成情報取得機能３２８は、プリンタ２０００からプリンタのＩＰアドレス、プリンタ２０００の構成情報（プリンタ能力）を受け取る（Ｓ６２２）。そして、プリンタドライバ３２０のユーザ情報取得機能３２７は、プリンタ２０００からユーザＩＤを受け取る（Ｓ６２２）。
【００４３】
ここで、本実施形態ではプリンタ２０００の構成情報をプリンタ２０００から取得している場合を説明する。しかしながら、プリンタドライバ３２０自身がインストール時に既に保持してもよいし、外部メモリ１１等にプリンタの構成情報をリストアップしたテーブルを保持しておき、そこから読み出してもよい。
つまり、本印刷システムでは、プリンタの構成情報の取得元は問わない。同様に、ユーザＩＤについてもプリンタ２０００からではなく、別な機器（例えばプリンタドライバ３２０がインストールされたコンピュータがもつキーボード等の入力デバイス）から取得してもよい。
【００４４】
次に、プリンタドライバ３２０は、ジョブ管理テーブルの中にＳ６２２において受け付けたユーザＩＤに対応する未処理の中間印刷ジョブがあるかチェックする（Ｓ６２３）。ここで、受け付けたユーザＩＤに対応する未処理の中間印刷ジョブがないとプリンタドライバ３２０が判断した場合は、本処理を終了する。
一方、Ｓ６２３で、受け付けたユーザＩＤに対応する未処理の中間印刷ジョブがあるとプリンタドライバ３２０が判断した場合は、１件の中間印刷ジョブを選択し、その中間印刷ジョブの印刷設定情報を読み出す（Ｓ６２４）。
そして、プリンタドライバ３２０は、Ｓ６２４において読み出された印刷設定情報の中からプリンタ２０００に依存する項目を順次ピックアップし（Ｓ６３１）、以下のように対応していく。
【００４５】
まず、プリンタドライバ３２０は、Ｓ６２４において読み出された印刷設定情報に含まれるチェック対象の項目の複数の設定値（図７で示す複数の設定値が設定される）の中から最もプリンタの機種情報に強い依存性を示す設定値をピックアップする（Ｓ６３２）。
ここで、プリンタ依存度とは図９に示すように、より多くのプリンタオプションやプリンタ能力がないと処理できない設定値は「強い」、逆にそれらへの依存の弱い設定値は「弱い」と定義される。例えば用紙サイズで言えば、オフィスプリンタでは通常Ａ４サイズはサポートされているため依存度は弱く、Ａ３サイズは大型機でしかサポートされていないので依存度が強くなる。
【００４６】
同様にモノクロ印刷はどのプリンタでも処理可能だが（依存度弱い）、カラー印刷はカラープリンタしか処理できない（依存度強い）。
また「両面印刷」は両面ユニットが必要なため「片面印刷」より依存度が強く、「製本印刷」はさらにサドルフィニッシャやＶ折りフィニッシャが必要なためより依存度は強くなる。
つまり、プリンタ依存度とはその設定値がどれだけ多くの機種のプリンタで処理可能かどうかを表すものであり、より多くの種類のプリンタで処理可能な設定値ほど依存度は低く定義される。このプリンタ依存度を示すデータは、外部メモリ１１等に保管され、適宜プリンタドライバ３２０により読み出される。
【００４７】
次に、プリンタドライバ３２０は、Ｓ６３２においてピックアップした設定値を、印刷要求を発行したプリンタ２０００の構成情報と比較し、プリンタ２０００がピックアップした設定値を処理可能であるかどうかを判断する（Ｓ６３３）。ここで、処理可能と判断であるとプリンタドライバ３２０が判断した場合は、Ｓ６３２においてピックアップされた設定値が本設定項目の設定値として正式採用される（Ｓ６３４）。ここで、正式に採用されるとは、本設定項目の設定として確定されることを意味する。
【００４８】
一方、Ｓ６３３で、プリンタドライバ３２０が、プリンタ２０００がピックアップした設定値を処理できないと判断した場合、Ｓ６４１へ進む。
そして、プリンタドライバ３２０はチェック対象の項目に他の設定値があるかどうかを判断する（Ｓ６４１）。ここで、プリンタドライバ３２０はチェック対象の項目に他の設定値があると判断した場合は、残りの設定値の中からプリンタ依存度の強い順に設定値をピックアップする（Ｓ６４２）。
そして、プリンタドライバ３２０は、Ｓ６４２においてピックアップされた設定値を構成情報と比較して処理可能かどうかを判断する（Ｓ６４３）。ここで、処理可能であるとプリンタドライバ３２０が判断した場合は、Ｓ６３４へ進む。そして、プリンタドライバ３２０は、その設定値を設定情報として正式採用して当該設定値を確定する（Ｓ６３４）。
一方、Ｓ６４１で、またはＳ６４３でプリンタドライバ３２０がＮｏ（すべての設定値が処理不可能）と判断した場合、Ｓ６４４へ進む。そして、プリンタドライバ３２０は、本中間印刷ジョブは印刷できないと判断し（Ｓ６４４）、本中間印刷ジョブの処理を終えて、Ｓ６２３へ進み、次の中間印刷ジョブの処理に進む。
【００４９】
一方、Ｓ６３４でチェック対象の項目の設定値が確定された場合は、プリンタドライバ３２０は、プリンタに依存する設定項目が他にもあるかどうかを判断する（Ｓ６３５）。ここで、プリンタに依存する設定項目が他にもあるとプリンタドライバ３２０が判断した場合は、Ｓ６３１に進み、同じ中間印刷ジョブの印刷設定情報における次の設定項目の処理に進む。
【００５０】
一方、Ｓ６３５でプリンタに依存する設定項目が他にないとプリンタドライバ３２０が判断した場合、Ｓ６２５へ進む。この場合は、プリンタドライバ３２０は、処理対象の中間印刷ジョブの印刷設定情報のすべての設定項目において処理可能と判断したことになり、最終的な印刷設定情報を決定する（Ｓ６２５）。このＳ６２４からＳ６２５までの一連の印刷設定決定プロセスが、プリンタドライバ３２０の印刷設定確定機能３２４で行われる。
【００５１】
次に、プリンタドライバ３２０の出力印刷ジョブ作成機能３２５は、決定した印刷設定情報と中間印刷ジョブに基づいて出力印刷ジョブを生成する（Ｓ６２６）。例えば出力印刷ジョブとしてＰＤＬを生成する。ただし、本実施例では中間印刷ジョブと出力印刷ジョブが異なるファイル形式の例を示すが、同じファイル形式になることもあるということは言うまでもない。
次に、プリンタドライバ３２０は入出力部８を介して、生成された出力印刷ジョブをＳ６２２で取得したＩＰアドレスを使って印刷要求を発行したプリンタに送信する（Ｓ６２７）。これで１つの印刷ジョブに対する一連の処理が終わり、プリンタドライバ３２０がジョブ管理テーブルを更新して（Ｓ６２８）、Ｓ６２３へ戻る。
【００５２】
なお、ジョブ管理テーブルを更新する処理では、図１１に示すように、プリンタドライバ３２０が送信された出力印刷ジョブの生成元である中間印刷ジョブをジョブ管理テーブルから削除する（Ｓ１１６１）。その後、Ｓ６２３に進み、Ｓ６２１において、印刷要求をプリンタから発行した同一ユーザの残りの中間印刷ジョブに対しても同様の処理を行う。
一方、Ｓ６２１において、プリンタドライバ３２０がプリンタ通常印刷要求でないと判断した場合は、Ｓ６５１へ進み、さらにその他の要求を受け付けるが、本実施形態では何も処理しないため、本処理を終了する。
以下、上記プリンタドライバ３２０により制御される印刷処理の具体的な例を説明する。
【００５３】
図１０は、本実施形態を示す印刷システムにおける印刷ジョブの処理例を示す図である。
特に、図１０の（ａ）は、図６で示したフローによって処理される具体的な例であって、クライアントＰＣ５００上では図１０の（ａ）中の左表のように印刷設定情報を設定した例である。なお、アプリケーションで作成されたドキュメントデータに設定された用紙サイズは「Ａ３」とし、このユーザがスプールしている中間印刷ジョブはこの１件とする。また、図１０の（ａ）は、１つの設定項目に対して複数の設定値を設定可能な例である。なお、当該設定は、図７に示すユーザインタフェースを用いてユーザが１つの設定項目に対して、例えば出力用紙サイズとして、「原稿サイズに合わせる」と、「Ａ４」という具合に１つの設定候補に複数の設定値を設定可能な例である。
なお、図１０の（ｂ）は、１つの印刷ジョブに対して設定項目に対して１つの設定値が設定された複数の設定候補を、例えば設定候補１，２，３という具合に設定可能な例である。本例の場合も図１の（ａ）と同様に図７に示すユーザインタフェースを用いてユーザがそれぞれの設定値を各設定候補に対応づけて設定した場合である。
【００５４】
本ユーザが図１０の（ａ）の右上のカラー複合機（以降、「カラーＭＦＰ」と記す）から通常印刷要求コマンドを発行した場合を想定する。この場合、図６に示したＳ６２２においてプリンタドライバ３２０は、本カラーＭＦＰのＩＰアドレスと構成情報（表に図示）を受信する。
その後、プリンタドライバ３２０は、Ｓ６３１−Ｓ６３２において、「出力用紙サイズ」、「カラーモード」、「仕上げ」、「ステイプル」の４項目を順次チェックする。
【００５５】
ここで、図１０の(a)に示す印刷設定情報の「出力用紙サイズ」に対する設定値として「原稿サイズに合わせる」と「Ａ４」が設定されている。このため、プリンタドライバ３２０は、まずプリンタ依存度の強い「原稿サイズに合わせる（すなわちＡ３で出力する）」をピックアップし、カラーＭＦＰの構成情報と比較する（Ｓ６３３）。ここで、カラーＭＦＰがＡ３サイズをサポートしているため、設定値の「原稿サイズに合わせる」が設定値として採用される（Ｓ６３４）。
【００５６】
次に、プリンタドライバ３２０は、仕上げの設定値「両面」と「片面」、ステイプルの設定値「ＯＮ」と「ＯＦＦ」についても、それぞれプリンタ依存度の強い設定値からチェックする。この結果、カラーＭＦＰから印刷要求した場合、すべて処理可能となり印刷設定情報が最終決定する（Ｓ６２５）。
【００５７】
一方、図１０の（ａ）の右中央のカラーレーザービームプリンタ（以降、「カラーＬＢＰ」と記す）はＡ４機である。本ユーザが本カラーＬＢＰから通常印刷要求コマンドを発行した場合を想定する。
ここで、出力用紙サイズの設定値である「原稿サイズに合わせる（すなわちＡ３で出力する）」はカラーＬＢＰのサポート外のサイズであるためプリンタドライバ３２０は、設定値「原稿サイズに合わせる」を処理不可能と判断する（Ｓ６３３）。そして、プリンタドライバ３２０は、出力用紙サイズの項目における次の設定値のＡ４をピックアップする。ここで、Ａ４サイズはカラーＬＢＰにおいて処理できるサイズであるため、プリンタドライバ３２０は、「Ａ４サイズ」を出力用紙サイズの項目の設定値として確定する（Ｓ６３４）。
このように本実施形態では、Ｓ６０２でメモリ３３０に登録した印刷設定情報に含まれる複数の設定値の中で、機種情報に強い依存性を示す設定値をメモリ３３０に登録された中間印刷ジョブに設定すべき印刷設定情報として確定する。つまり、Ｓ６３１を実行することで印刷情報に対してユーザが設定した複数の設定値の中で、メモリ３３０に登録した印刷設定情報に含まれる複数の設定値の中で、機種情報に強い依存性を示す設定値を印刷設定情報として設定できるかどうかを判断する。この際、プリンタドライバ３２０は印刷要求を受け付けたプリンタから取得する機種情報を用いて、機種情報に強い依存性を示す設定値を印刷設定情報として設定できるかどうかを判断する。そして、プリンタドライバ３２０は、機種情報に強い依存性を示す設定値を印刷設定情報として設定できないと判断した場合、複数の設定値の中で、機種情報に弱い依存性を示す設定値のうち、より強い依存性を示す設定値を印刷設定情報として確定する。
さらに、プリンタドライバ３２０は、仕上げの設定項目、ステイプルの設定項目についても同様に処理された結果、「片面」、ステイプルの「ＯＦＦ」が設定値として採用される。
【００５８】
一方、本ユーザが図１０の（ａ）右下のモノクロＭＦＰから印刷要求した場合を想定する。この場合、カラーモードの「カラー」がＳ６３３の比較でＮｏとなる。また、Ｓ６４１でカラーモードの設定項目に他の候補値がないことから、プリンタドライバ３２０は、本印刷ジョブをモノクロＭＦＰにて印刷できないと判断する（Ｓ６４４）。
本実施形態では、図７に示すＵＩ例のように印刷設定情報の設定項目に複数の設定値を設定する方法を示してきたが、図１０の（ｂ）に示すように、複数の印刷設定情報を設定する構成としても良い。
【００５９】
例えば図１０の（ｂ）に示す左の表のように３つの印刷設定情報の候補を作成しておく。この状態において、ユーザがカラーＭＦＰから印刷要を発行した場合、設定候補１の印刷設定情報に含まれる設定値をカラーＭＦＰの構成情報と比較するとすべてサポートされているので、設定候補１が最終的な印刷設定情報として決定される。
一方、カラーＬＢＰから印刷要求を発行した場合、設定候補１、設定候補２にはカラーＬＢＰにてサポートしていない設定値が含まれ、設定候補３だとすべての設定値がサポートされている。そのため、設定候補３が印刷設定情報として採用される。また、モノクロＭＦＰではすべての設定候補において「カラーモード」設定が合致しないため、印刷中止となる。
本実施形態によれば、ユーザがいずれのプリンタからプルプリント印刷要求を行った場合でも、ユーザの意図から外れた出力結果になる可能性を低減できる。
〔第２実施形態〕
【００６０】
ユーザは第１実施形態に示す印刷システムを利用して印刷ジョブを印刷ができたとしても、ユーザが最も望んでいた出力結果を得られない場合がある。かかる場合、ユーザは他のプリンタを使って再印刷を要求する可能性がある。
そこで、最終的に確定した印刷設定情報が、ユーザの望む出力結果を出力するための設定でない場合、スプールされた中間印刷ジョブを削除することに代えて、後にユーザの特別な指示により再印刷を可能とする方法について説明する。
【００６１】
以下、本実施形態におけるジョブ処理の概要を説明する。
後述する処理に従いプリンタドライバ３２０が確定した印刷設定情報が機種情報に弱い依存性を示す設定値で確定したものであると判別した場合、ユーザからの再印刷要求に備える構成を備える。そして、異なるプリンタから再印刷要求を受付た場合、プリンタドライバ３２０は複数の印刷設定値の中で、再印刷要求を受け付けたプリンタから取得する機種情報に強い依存性を示す設定値を印刷設定情報として設定できるかどうかを第１の判定処理を行う。この結果、プリンタドライバ３２０が機種情報に強い依存性を示す設定値を印刷設定情報として設定できると判定した場合、以下のように印刷設定情報を確定する処理を実行する。
【００６２】
具体的には、まず、プリンタドライバ３２０が図１に示すいずれかのプリンタから受け付ける再印刷要求に含まれるユーザを識別する識別情報を用いてメモリ３３０から再印刷ジョブを検索する。そして、プリンタドライバ３２０は、検索される再印刷ジョブに再印刷要求を受け付けたプリンタから取得する機種情報に強い依存性を示す設定値を印刷設定情報として確定する。以下、フローチャートに従って本実施形態の処理を詳述する。
【００６３】
本実施形態では、図４のプリンタドライバ３２０の持つ各機能に加え、図示しない不完全印刷ジョブ保存機能と、再印刷要求受付機能と、印刷確認機能と、出力印刷ジョブ再生成機能を備える。そして、プリンタドライバ３２０をアプリケーションサーバ３００のＣＰＵ１が実行することで再印刷が実現される。
本実施形態の処理全体の流れは図６と同じであるが、Ｓ６２８とＳ６５１が第１実施形態と異なる。以下、第１実施形態と処理が異なる処理について説明する。
【００６４】
図１２、図１３は、本実施形態を示す情報処理装置のデータ処理手順を示すフローチャートである。本例は、図２に示したアプリケーションサーバ３００のプリンタドライバ３２０による処理手順に対応する。なお、各ステップは、アプリケーションサーバ３００のＣＰＵ１がＲＡＭ２にプリンタドライバ３２０をロードして実行することにより実現される。また、以下の説明においては、処理の主体をプリンタドライバ３２０として説明する。
ここで、図１２は、図６に示したＳ６５１に対応する処理であり、図１３は、図６に示したＳ６２８に対応する処理である。
まず、通常の印刷処理において印刷した場合に、中間印刷ジョブを消さずに残すケースを説明する。
Ｓ６２８におけるジョブ管理テーブルの更新ステップについて、詳細動作を図１３に示す。
【００６５】
プリンタドライバ３２０は、図６に示したＳ６３３の判断がすべてＹｅｓであるかどうかを判断する。すなわち、プリンタドライバ３２０は、プリンタに依存する全設定項目の設定値がプリンタ依存度の最も強い設定値（ユーザにとっての理想設定）に決定されたかどうかを判断する（Ｓ１３７１）。
ここで、Ｓ１３７１の判断において、プリンタドライバ３２０がＹｅｓであると判断した場合、プリンタドライバ３２０がプリンタに依存する全設定項目の設定値がプリンタ依存度の最も強い設定値に決定されたと判断した場合、Ｓ１３７２に進む。そして、プリンタドライバ３２０は第１実施形態と同様に送信された出力印刷ジョブの生成元である中間印刷ジョブの情報をジョブ管理テーブルから削除して（Ｓ１３７２）、本処理を終了する。
【００６６】
一方、Ｓ１３７１の判断において、ユーザにとっての理想設定でないとプリンタドライバ３２０が判断した場合、すなわち、Ｓ１３７１でＮｏと判断した場合、Ｓ１３７３へ進む。そして、プリンタドライバ３２０は、不完全印刷ジョブ保存機能により、送信された出力印刷ジョブの生成元である中間印刷ジョブに「不完全」フラグを付して不完全印刷ジョブとし、ジョブ管理テーブルから消さずに残して（Ｓ１３７３）、本処理を終了する。
なお、不完全印刷ジョブは、後述の再印刷要求が来るまで印刷ジョブ溜置き用メモリ３３０に保存される。なお、図１４に、不完全印刷ジョブであるか否かを区別可能なジョブ管理テーブルを例示する。
【００６７】
次に、再印刷処理について説明する。
プリンタ２０００を介してユーザが発行した再印刷要求に対して、プリンタドライバ３２０はＳ６５１で再印刷処理を行う。再印刷処理について、詳細動作を図１２に示す。
ここで、Ｓ１２２４からＳ１２３５については、特に明言しない限り図６のＳ６２４からＳ６３５と同じ処理を行うものとする。
【００６８】
プリンタドライバ３２０は、プリンタ２０００からの再印刷要求を示すコマンドを入出力部８を介して再印刷要求受付機能により受け取っているかどうかを判断する（Ｓ１２２０）。ここで、プリンタ２０００からの再印刷要求を示すコマンドを入出力部８を介して再印刷要求受付機能により受け取っていないと判断した場合は、本処理を終了する。
一方、Ｓ１２２０で、再印刷要求を示すコマンドを入出力部８を介して再印刷要求受付機能により受け取っているとプリンタドライバ３２０が判断した場合は、Ｓ１２２２へ進む。
【００６９】
そして、プリンタドライバ３２０の構成情報取得機能３２８により、プリンタ２０００からプリンタのＩＰアドレス、プリンタ２０００の構成情報（プリンタ能力）を受け取る（Ｓ１２２２）。そして、プリンタドライバ３２０のユーザ情報取得機能３２７により、プリンタ２０００からユーザＩＤを受け取る（Ｓ１２２２）。
【００７０】
次に、プリンタドライバ３２０は、図１４に示すジョブ管理テーブルを検索してユーザＩＤに対応する不完全印刷ジョブがあるかどうかを判断する（Ｓ１２２３）。ここで、不完全印刷ジョブがあるとプリンタドライバ３２０が判断した場合、１件の不完全印刷ジョブを選択し、その不完全印刷ジョブに対応づけられた印刷設定情報を読み出す（Ｓ１２２４）。
次に、プリンタドライバ３２０は、読み出した印刷設定情報のプリンタ依存の設定項目をピックアップし（Ｓ１２３１）、ユーザが設定した設定候補の中から、プリンタ依存度の最大の設定値を読み出す（Ｓ１２３２）。そして、プリンタドライバ３２０は、読み出したプリンタ依存度の最も強い設定値がプリンタ２０００で処理可能な設定値であるかどうか判断する（Ｓ１２３３）。ここで、プリンタドライバ３２０がプリンタ依存度の最も強い設定値がプリンタ２０００で処理可能な設定値でないと判断した場合は、プリンタドライバ３２０は、本ジョブは印刷できないジョブであると判断して、再印刷処理を終了するため、Ｓ１２２３へ戻る。
【００７１】
一方、Ｓ１２３３の判断において、プリンタドライバ３２０がプリンタ依存度の最も強い設定値がプリンタ２０００で処理可能な設定値であると判断した場合、Ｓ１２３４へ進む。そして、プリンタドライバ３２０は、プリンタ依存度の最も強い設定値を確定する（Ｓ１２３４）。そして、プリンタドライバ３２０は、Ｓ１２３１−Ｓ１２３４の処理をすべてのプリンタに依存する項目に対して行って、設定すべき項目が残っているかどうかを判断する（Ｓ１２２５）。ここで、設定すべき項目が残っているとプリンタドライバ３２０が判断した場合は、Ｓ１２３１へ戻る。
【００７２】
一方、Ｓ１２３５で、設定すべき項目が残っていないとプリンタドライバ３２０が判断した場合は、Ｓ１２２５へ進む。
その後、プリンタドライバ３２０は、出力印刷ジョブ作成機能３２５により印刷設定情報を決定し（１２２５）、プリンタドライバ３２０は、決定した印刷設定情報と不完全印刷ジョブとに基づいて出力印刷ジョブを生成する（Ｓ１２２６）。
そして、プリンタドライバ３２０は、生成された出力印刷ジョブをＳ１２２２で取得したプリンタＩＰアドレスを使って、再印刷を要求したプリンタに送信する（Ｓ１２２７）。そして、プリンタドライバ３２０は、ジョブ管理テーブルから印刷が完了した不完全印刷ジョブを削除することにより、ジョブ管理テーブルを更新して（Ｓ１２２８）、Ｓ１２２３へ戻る。
なお、図１０（ｂ）の複数の印刷設定情報が設定された場合についても同様である。
【００７３】
図１０（ｂ）を用いて説明すると、設定候補１以外の印刷設定情報で出力した場合（カラーＬＢＰ、モノクロＭＦＰから出力した場合）、プリンタドライバ３２０は、印刷後に中間印刷ジョブを不完全印刷ジョブとして消さずに残しておく。そして、後にユーザがカラーＭＦＰを介して行う再印刷要求を発行した場合（Ｓ１２２０）、プリンタドライバ３２０は、設定候補１で印刷可能かどうかチェックするＳ１２２４）。ここで、設定候補１で印刷可能であるとプリンタドライバ３２０が判断した場合、Ｓ１２２５−Ｓ１２２７の処理を実行する。つまり、設定候補１と不完全印刷ジョブに基づいて出力印刷ジョブを生成し、取得したプリンタＩＤアドレスを使って再印刷要求を発行したカラーＭＦＰに送信する。その後ジョブ管理テーブルから印刷が完了した不完全印刷ジョブを削除して（Ｓ１２２８）、Ｓ１２２３へ戻る。
以上の発明により、ユーザが印刷要求を行ったプリンタにおいて、ユーザが指定した印刷設定情報を十分に反映させた印刷結果が得られない場合でも、後に最適な印刷が可能なプリンタから再印刷することでユーザが所望とする印刷結果が得られる。
〔第３実施形態〕
【００７４】
第１実施形態では、ある項目に設定された全ての設定値が対象プリンタにて処理できないと判定された場合、図６のＳ６４４において、その中間印刷ジョブの印刷をキャンセルしていた。その結果、故障中や外出先などの理由で、適切なプリンタがなかった場合、どのプリンタでも出せない印刷ジョブが発生する可能性がある。
そこで、どうしても印刷したい印刷ジョブに関してはユーザの特別な指示により強制印刷を可能とする。
その際、該当印刷ジョブの印刷設定情報とプリンタ構成情報から、最大限ユーザの意図を反映した印刷物が出力されるように印刷設定情報を確定し、印刷を行う実施形態について以下説明する。
【００７５】
以下、本実施形態におけるジョブ処理の概要を説明する。
プリンタドライバ３２０が印刷要求を受け付けたプリンタから取得する機種情報を用いて、メモリ３３０に登録した印刷設定情報に含まれる複数の設定値のいずれでも印刷設定情報を確定できないかどうかを判定する第２の判定処理を実行する。ここで、プリンタドライバ３２０が複数の設定値のいずれでも印刷設定情報を確定できないと判断した場合、第２の保持処理を実行する。具体的には、中間印刷ジョブと、当該中間印刷ジョブに設定された印刷設定情報と、ユーザを識別する識別情報とを関連づけて強制印刷ジョブとしてメモリ３３０に保持させる第２の保持処理を実行する。
【００７６】
そして、いずれかのプリンタから強制印刷要求を受け付けた場合に、強制印刷要求に含まれるユーザを識別する識別情報を用いてメモリ３３０から検索される強制印刷ジョブに設定すべき印刷情報を以下のように確定する。具体的には、プリンタドライバ３２０が再印刷要求を受け付けたプリンタから取得する機種情報に弱い依存性を示す設定値の中で、より強い依存性を示す設定値を印刷設定情報として確定する処理を実行する。以下、フローチャートに従って本実施形態の処理を詳述する。
【００７７】
図４のプリンタドライバ３２０の持つ各機能に加え、不図示の強制印刷要求受付機能と印刷設定補完機能を備えたプリンタドライバ３２０をＣＰＵ１が実行することで強制印刷が実現される。
本実施形態では、第１実施形態および第２実施形態の通常印刷では印刷できなかった印刷ジョブに対して、強制印刷を行うプロセスを説明する。
プリンタ２０００を介してユーザが発行した強制印刷要求に対しては、プリンタドライバ３２０はＳ６５１で強制印刷処理を行う。強制印刷処理について、詳細動作を図１５に示す。
【００７８】
図１５は、本実施形態を示す情報処理装置のデータ処理手順を示すフローチャートである。本例は、図２に示したアプリケーションサーバ３００のプリンタドライバ３２０による処理手順に対応する。なお、各ステップは、アプリケーションサーバ３００のＣＰＵ１がＲＡＭ２にプリンタドライバ３２０をロードして実行することにより実現される。また、以下の説明においては、処理の主体をプリンタドライバ３２０として説明する。
ここで、Ｓ１４２４からＳ１４４３については、特に明言しない限り図６のＳ６２４からＳ６４３と同じ処理を行うものとする。
【００７９】
プリンタドライバ３２０は、プリンタ２０００から強制印刷要求を示すコマンドを強制印刷要求受付機能で受け取っているかどうかを判断する（Ｓ１４２０）。ここで、プリンタドライバ３２０がプリンタ２０００から強制印刷要求を示すコマンドを強制印刷要求受付機能で受け取っていないと判断した場合は、本処理を終了する。
一方、Ｓ１４２０で、プリンタ２０００から強制印刷要求を示すコマンドを強制印刷要求受付機能で受け取っていると判断した場合は、Ｓ１４２２へ進む。
そして、Ｓ１４２２で、プリンタドライバ３２０の構成情報取得機能３２８により、プリンタ２０００からプリンタのＩＰアドレス、プリンタ２０００の構成情報（プリンタ能力）を受け取る（Ｓ１４２２）。さらに、プリンタドライバ３２０は、ユーザ情報取得機能３２７により、プリンタ２０００からユーザＩＤを受け取る。
【００８０】
次に、プリンタドライバ３２０は、ジョブ管理テーブルを検索してユーザＩＤに対応する不完全印刷ジョブがあるかどうかを判断する（Ｓ１４２３）。ここで、不完全印刷ジョブがあるとプリンタドライバ３２０が判断した場合は、Ｓ１４２４で、プリンタドライバ３２０は、１件の不完全印刷ジョブを選択し、その不完全印刷ジョブに対応づけられた印刷設定情報を読み出す（Ｓ１４２４）。
次に、プリンタドライバ３２０は、読み出した印刷設定情報のプリンタに依存する設定項目を順次ピックアップし（Ｓ１４３１）、ユーザが設定した設定候補の中から、プリンタ依存度の最大の設定値を読み出す（Ｓ１４３２）。そして、プリンタドライバ３２０は、構成情報と比較して設定値がプリンタ２０００で処理可能な設定値であるかどうかを判断する（Ｓ１４３３）。ここで、プリンタドライバ３２０がプリンタ依存度の最も強い設定値がプリンタ２０００で処理可能な設定値でないと判断した場合は、プリンタドライバ３２０は他の設定値があるかどうかを判断する（Ｓ１４４１）。ここで、他の設定候補地がないとプリンタドライバ３２０が判断した場合は、Ｓ１４４４へ進む。
【００８１】
一方、Ｓ１４４１で、プリンタドライバ３２０が他の設定値があると判断した場合は、残りの公知地の中からプリンタ依存度が強い順に設定値を読み出し（Ｓ１４４２）、Ｓ１４４３へ進む。
そして、Ｓ１４４３で、プリンタドライバ３２０が読み出した設定値が構成情報と比較してプリンタ２０００で処理可能な設定値であるかどうかを判断する。ここで、設定値を設定できるとプリンタドライバ３２０が判断した場合は、Ｓ１４３４へ進む。
一方、Ｓ１４４３で、プリンタドライバ３２０が読み出した設定値が構成情報と比較してプリンタ２０００で処理可能な設定値でないと判断した場合は、Ｓ１４４４へ進む。
ここで、Ｓ１４４４へ進む場合とは、ユーザが設定した設定値の中にプリンタ２０００が処理可能な設定値が含まれない場合である。
【００８２】
このとき、プリンタドライバ３２０は、該当設定項目において、設定値以外の設定値（プリンタドライバの持つ選択肢）をプリンタ依存度の強いものから順にピックアップする（Ｓ１４４４）。そして、プリンタドライバ３２０は、ピックアップした設定値がプリンタ２０００で処理可能な設定値であるかどうか判断する（Ｓ１４４５）。ここで、ピックアップした設定値がプリンタ２０００で処理可能な設定値であると判断した場合は、Ｓ１４３４へ進む。
一方、Ｓ１４４５で、ピックアップした設定値がプリンタ２０００で処理可能な設定値でないと判断した場合は、プリンタドライバ３２０は未判断の設定値が残っているかどうかを判断する（Ｓ１４４６）。ここで、未判断の設定値が残っているとプリンタドライバ３２０が判断した場合は、Ｓ１４４４以降の処理を繰り返し、該当設定項目の設定値を決定する。
なお、いずれの設定項目においてもプリンタ依存度の最も弱い設定値（通常デフォルト設定値）はプリンタ２０００で処理可能な設定値であるはずなので、通常はＳ１４４６にてＮｏになるケースはない。
一方、Ｓ１４４４６で、未判断の設定値が残っていないと判断した場合、プリンタドライバ３２０は、エラー処理を行う（Ｓ１４４７）。
【００８３】
一方、Ｓ１４３３で、プリンタドライバ３２０がプリンタ依存度の最も強い設定値がプリンタ２０００で処理可能な設定値であると判断した場合は、プリンタドライバ３２０は最も強い設定値を本設定項目の設定値として確定する（Ｓ１４３４）。
そして、プリンタドライバ３２０は、プリンタ依存の設定項目がまだあるかどうかを判断する（Ｓ１４３５）。ここで、プリンタ依存の設定項目がまだあると判断した場合は、Ｓ１４３１へ戻り、処理を繰り返す。
一方、Ｓ１４３５で、プリンタ依存の設定項目はないとプリンタドライバ３２０が判断した場合は、Ｓ１４２５へ進む。
【００８４】
そして、プリンタドライバ３２０がすべてのプリンタ依存の項目について設定値を設定し、印刷設定情報が決定する（Ｓ１４２５）。次に、プリンタドライバ３２０は、出力印刷ジョブ作成機能３２５により、決定した印刷設定情報を用いて不完全印刷ジョブに基づいて出力印刷ジョブを生成する（Ｓ１４２６）。
【００８５】
次に、プリンタドライバ３２０は、生成された出力印刷ジョブをＳ１４２２で取得したプリンタＩＰアドレス宛を使って、強制印刷要求を発行したプリンタに送信する（Ｓ１４２７）。そして、プリンタドライバ３２０は、ジョブ管理テーブルから印刷が完了した不完全印刷ジョブを削除することにより、ジョブ管理テーブルを更新して（Ｓ１４２８）、１４２３へ戻る。
【００８６】
以下、Ｓ１４４４に関して具体例を示す。
例えば図９において、ユーザが設定した印刷設定情報の「用紙サイズ」の項目における全ての設定値がプリンタにて非サポートである場合、プリンタドライバ３２０は「用紙サイズ」の項目の設定値を「Ａ４」とする。
これにより、定型拡大縮小機能が効いてどのような原稿サイズであってもＡ４の大きさにフィットし、画像欠けなしに印刷可能となる。
同様に「仕上げ」の項目における設定値が「製本」であるが、プリンタが製本を非サポートである場合、プリンタドライバ３２０は、まず「両面」をチェックして、プリンタがサポートしている設定値であれば「両面」を「仕上げ」の項目の設定値とする。
一方、「両面」もプリンタ非サポートの設定値なら「片面」を「仕上げ」の項目の設定値に設定する。
同様に「ステイプル」の項目における設定値においても「２箇所止め」が、プリンタにおいて非サポートの設定値である場合、プリンタドライバ３２０は「１箇所止め」をチェックする。
そして、プリンタがサポートしている設定値であれば「ステイプル」の項目の設定値に「１箇所止め」を設定する。
また、「１箇所止め」もプリンタ非サポートの場合は、プリンタドライバ３２０は「ＯＦＦ」を「ステイプル」の項目の設定値にする。
これにより、たとえ最適な出力を得ることができるプリンタが無い状況でも、ユーザの意図を最大限に反映した出力結果を得ることができる。
【００８７】
以上、第１〜第３実施形態に示す情報処理装置を用いた印刷システムとすることで、クライアントＰＣのドライバレス化、対象プリンタを選ばない自由なシステム構築、クラウドコンピューティング環境への適用、などが容易となる。またプリントサーバが不要で、低コストのプルプリントシステムの構築も可能となる。
【００８８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００８９】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組み合わせを含む）が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
本実施形態によれば、クライアント装置での印刷作業時に出力プリンタの能力がわからない場合でも、実際の印刷での出力をユーザの意図から外れにくくすることができる。つまり、高機能プリンタを想定して高機能設定を行う際に許容範囲として妥協できる設定値（後述の候補値）を設定しておくことで、実際には低機能プリンタしか存在しない場合でも単に強制印刷するのではなくそのプリンタにあった設定値で印刷することができる。この結果プリンタに応じた最適な印刷を行うことができる。
また、特定の出力結果を意図しているジョブについては、それに合うプリンタがなければ印刷をせず、紙の浪費を抑制することができる。
また、印刷はされたが目的を満たさない印刷設定情報であった場合、サーバ側で中間印刷ジョブを保持しておき、目的の印刷ができるプリンタで再印刷を行うことができる。
なた、各実施形態について説明したフローチャートに記載されるステップを適宜組み合わせてなる図示しない処理も本発明の一実施形態である。また、各実施形態について説明したフローチャートにおけるステップの一部の順序を入れ替えたりする構成も本発明の一実施形態である。また、各実施形態について説明したフローチャートにおけるステップの一部に本明細書に記載される処理に対応づけて新たなステップを組み入れる構成も本発明の一実施形態である。
【符号の説明】
【００９０】
３００    アプリケーションサーバ
３１０    Ｗｅｂアプリケーション
３２０    プリンタドライバ
【図１】
0005639447.tif 000002
【図２】
0005639447.tif 000003
【図３】
0005639447.tif 000004
【図４】
0005639447.tif 000005
【図５】
0005639447.tif 000006
【図６】
0005639447.tif 000007
【図７】
0005639447.tif 000008
【図８】
0005639447.tif 000009
【図９】
0005639447.tif 000010
【図１０】
0005639447.tif 000011
【図１１】
0005639447.tif 000012
【図１２】
0005639447.tif 000013
【図１３】
0005639447.tif 000014
【図１４】
0005639447.tif 000015
【図１５】
0005639447.tif 000016