(57)【要約】【課題】複数の印刷装置を一つの仮想プリンタとして利用する際のユーザの利便性を向上させることができる印刷制御装置、情報処理装置、プリントサービスシステム、及び制御方法、並びにプログラムを提供する。【解決手段】クラウドサーバである仮想プリンタ１２０は、複数の印刷装置１１０の夫々から登録要求を受信したとき、その登録要求に応じて複数の印刷装置１１０を登録すると共にその登録する印刷装置からその能力情報を取得する。その後、取得した複数の印刷装置１１０の能力情報に基づく印刷設定の組み合わせの処理が可能かどうかの検証を複数の印刷装置１１０の夫々に対して要求し、その要求に対する複数の印刷装置１１０の夫々からの応答によって、印刷設定の組み合わせが複数の印刷装置１１０のいずれも処理できないと判別した場合、その印刷設定の組み合わせを禁則設定情報として保存する。【選択図】図５
2020047244.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置及び複数の印刷装置とネットワークを介して通信可能であって、前記複数の印刷装置を用いて前記情報処理装置にプリントサービスを提供する仮想プリンタとして機能する印刷制御装置であって、
前記複数の印刷装置の夫々から登録要求を受信する第１の受信手段と、
前記登録要求に応じて前記複数の印刷装置を出力先として登録すると共にその登録する印刷装置からその能力情報を取得する第１の能力取得手段と、
前記取得した前記複数の印刷装置の能力情報に基づく印刷設定の組み合わせの処理が可能かどうかの検証を前記複数の印刷装置の夫々に対して要求する要求手段と、
前記検証の要求に対する前記複数の印刷装置の夫々からの応答によって、前記印刷設定の組み合わせが前記複数の印刷装置のいずれも処理できないと判別した場合、前記印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報として保存する保存手段とを備えることを特徴とする印刷制御装置。
【請求項２】
前記印刷設定の組み合わせは、前記取得した前記複数の印刷装置の能力情報の論理和情報に基づき生成されることを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記情報処理装置から前記互いに競合する印刷設定の組み合わせを示す情報の取得要求を受信する第２の受信手段と、
前記取得要求を受信した場合に、前記保存手段に保存された前記互いに競合する印刷設定の組み合わせを示す情報を前記情報処理装置に送信する送信手段とを更に備えることを特徴とする請求項１又は２記載の印刷制御装置。
【請求項４】
請求項３記載の印刷制御装置と通信する情報処理装置であって、
前記取得要求を行うことにより前記仮想プリンタが提供するプリントサービスにおいて前記互いに競合する印刷設定の組み合わせを示す情報を取得する取得手段と、
前記仮想プリンタに送信する印刷ジョブの印刷設定をユーザが行うための印刷設定画面を表示する表示手段と
前記取得した情報に基づき前記印刷設定画面を介して、前記互いに競合する印刷設定の組み合わせが設定されないよう制限する制限手段とを備えることを特徴とする情報処理装置。
【請求項５】
互いにネットワークを介して通信可能な情報処理装置、印刷制御装置、及び複数の印刷装置を備え、前記複数の印刷装置を用いて前記情報処理装置にプリントサービスを提供する仮想プリンタとして前記印刷制御装置を機能させるプリントサービスシステムであって、
ユーザからの登録指示があったとき前記複数の印刷装置の夫々から前記印刷制御装置に登録要求を送信する第１の要求手段と、
前記登録要求に応じて前記複数の印刷装置を出力先として前記印刷制御装置に登録すると共にその登録する印刷装置に対してその能力情報の要求を前記印刷制御装置から送信する第２の要求手段と、
前記能力情報の要求への応答として、前記複数の印刷装置の夫々から前記印刷制御装置にその能力情報を送信する第１の応答手段と、
前記複数の印刷装置の能力情報に基づく印刷設定の組み合わせの処理が可能かどうかの検証を前記印刷制御装置から前記複数の印刷装置の夫々に要求する第３の要求手段と、
前記検証の要求への応答として、前記複数の印刷装置の夫々から前記印刷制御装置に前記検証の結果を送信する第２の応答手段と、
前記印刷制御装置において、前記複数の印刷装置の夫々からの前記検証を解釈し、前記印刷設定の組み合わせが前記複数の印刷装置のいずれも処理できないと判別した場合、前記印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報として保存する保存手段とを備えることを特徴とするプリントサービスシステム。
【請求項６】
情報処理装置及び複数の印刷装置とネットワークを介して通信可能であって、前記複数の印刷装置を用いて前記情報処理装置にプリントサービスを提供する仮想プリンタとして機能する印刷制御装置の制御方法であって、
前記複数の印刷装置の夫々から登録要求を受信する第１の受信ステップと、
前記登録要求に応じて前記複数の印刷装置を出力先として登録すると共にその登録する印刷装置からその能力情報を取得する登録取得ステップと、
前記取得した前記複数の印刷装置の能力情報に基づく印刷設定の組み合わせの処理が可能かどうかの検証を前記複数の印刷装置の夫々に対して要求する要求ステップと、
前記検証の要求に対する前記複数の印刷装置の夫々からの応答によって、前記印刷設定の組み合わせが前記複数の印刷装置のいずれも処理できないと判別した場合、前記印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報として保存する保存ステップとを有することを特徴とする制御方法。
【請求項７】
互いにネットワークを介して通信可能な情報処理装置、印刷制御装置、及び複数の印刷装置を備え、前記複数の印刷装置を用いて前記情報処理装置にプリントサービスを提供する仮想プリンタとして前記印刷制御装置を機能させるプリントサービスシステムの制御方法であって、
ユーザからの登録指示があったとき前記複数の印刷装置の夫々から前記印刷制御装置に登録要求を送信する第１の要求ステップと、
前記登録要求に応じて前記複数の印刷装置を出力先として前記印刷制御装置に登録すると共にその登録する印刷装置に対してその能力情報の要求を前記印刷制御装置から送信する第２の要求ステップと、
前記能力情報の要求への応答として、前記複数の印刷装置の夫々から前記印刷制御装置にその能力情報を送信する第１の応答ステップと、
前記複数の印刷装置の能力情報に基づく印刷設定の組み合わせの処理が可能かどうかの検証を前記印刷制御装置から前記複数の印刷装置の夫々に要求する第３の要求ステップと、
前記検証の要求への応答として、前記複数の印刷装置の夫々から前記印刷制御装置に前記検証の結果を送信する第２の応答ステップと、
前記印刷制御装置において、前記複数の印刷装置の夫々からの前記検証を解釈し、前記印刷設定の組み合わせが前記複数の印刷装置のいずれも処理できないと判別した場合、前記印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報として保存する保存ステップとを有することを特徴とする制御方法。
【請求項８】
請求項６又は７に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項９】
前記第１の能力取得手段により登録済みの印刷装置とは異なる第２の印刷装置からの前記登録要求を受信する第３の受信手段と、
前記第２の印刷装置からの前記登録要求に応じて、前記複数の印刷装置で互いに競合する印刷設定の組み合わせの１つについて処理可能かどうかの検証を前記第２の印刷装置に対して要求する第４の要求手段と、
前記第４の要求手段による前記検証の要求に対する前記第２の印刷装置からの応答によって、前記１つの印刷設定の組み合わせが前記第２の印刷装置で処理可能だと判別した場合、前記１つの印刷設定の組み合わせを前記保存されている前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報から削除する第１の削除手段とを更に備えることを特徴とする請求項１記載の印刷制御装置。
【請求項１０】
前記第２の印刷装置からの前記登録要求に応じて、前記第２の印刷装置を出力先として登録すると共に前記第２の印刷装置からその能力情報を取得する第２の能力取得手段と、
前記取得された前記第２の印刷装置の能力情報と前記登録済みの印刷装置の能力情報とに基づき、前記登録済の印刷装置の能力情報に基づく印刷設定の組み合わせに対して、前記第２の印刷装置の登録により追加された印刷設定の組み合わせを取得する追加設定取得手段と、
前記追加設定取得手段により取得した前記追加された印刷設定の組み合わせの処理が可能かどうかの検証を前記第２の印刷装置に対して要求する第５の要求手段と、
前記第５の要求手段による前記検証の要求に対する前記第２の印刷装置からの応答によって、前記追加された印刷設定の組み合わせが前記第２の印刷装置で処理できないと判別した場合、前記追加された印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報に追加する第１の追加手段とを更に備えることを特徴とする請求項９記載の印刷制御装置。
【請求項１１】
前記第１の能力取得手段により登録済みの印刷装置の１つである第３の印刷装置からの登録削除要求を受信する第４の受信手段と、
前記登録削除要求に応じて、前記第３の印刷装置を前記出力先の登録から削除する登録削除手段と、
前記登録が削除された前記第３の印刷装置の能力情報と前記登録済の印刷装置の能力情報とに基づき、前記登録済の印刷装置の能力情報に基づく印刷設定の組み合わせに対して、前記第３の印刷装置の登録の削除により削除された印刷設定の組み合わせを取得する削除設定取得手段と、
前記削除設定取得手段により取得した前記削除された印刷設定の組み合わせに前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報に含まれるものがある場合、前記含まれる印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報から削除する第２の削除手段とを更に備えることを特徴とする請求項９又は１０記載の印刷制御装置。
【請求項１２】
前記登録削除手段による前記第３の印刷装置の登録の削除の後、前記出力先の登録が残る印刷装置の能力情報に基づく印刷設定の組み合わせに含まれ、且つ前記第２の削除手段による削除後の前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報に該当しない印刷設定の組み合わせを生成する生成手段と、
前記生成された印刷設定の組み合わせの処理が可能かどうかの検証を前記登録が残る印刷装置に対して要求する第６の要求手段と、
前記第６の要求手段による前記検証の要求に対する前記登録が残る印刷装置からの応答によって、前記生成された印刷設定の組み合わせが前記登録が残る印刷装置のいずれにおいても処理できないと判別した場合、前記生成された印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報に追加する第２の追加手段とを更に備えることを特徴とする請求項１１記載の印刷制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、情報処理装置、プリントサービスシステム、及び制御方法、並びにプログラムに関し、特に、複数の印刷装置の可用性を高める印刷制御装置、情報処理装置、プリントサービスシステム、及び制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
情報処理装置において、個々の印刷装置のために設計されたプリンタドライバ（又は印刷アプリケーション）を用いて、個々の印刷装置で印刷を行うための印刷データを生成することが知られている。
【０００３】
また、特許文献１には、複数の印刷装置の可用性を高めるため、これらを一つの仮想プリンタ（グループプリンタ）とみなして利用する方法がある。具体的には、情報処理装置にインストールされたグループプリンタドライバが、複数の印刷装置（メンバプリンタドライバ）の能力を取得し、メンバプリンタドライバ共通の印刷設定画面を表示する方法が開示されている。また、特許文献１には、メンバプリンタドライバの１つに対して印刷に適用すべき印刷設定に基づいて印刷ジョブを処理できるかどうかをチェックし、印刷ジョブを送信する仕組みが開示されている。
【０００４】
ところで、近年、個々の印刷装置のために設計された印刷ドライバ（又は印刷アプリケーション）を介さずに印刷データを生成するケースが増えている。例えば、近年の印刷アプリケーションやクラウド上のプリントサービスでは、ＩＰＰ規格（ＩＰＰ：Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）の印刷データを生成して印刷装置に送信する。
【０００５】
また、近年、スマートフォンや、ＰＣなどのユーザ端末が常時ネットワークに接続されてきている。これを受け、ＬＴＥや５Ｇネットワークといった公衆網と、クラウドサーバを経由して印刷を行うための仕組みが考えられている。例えば、情報処理装置から印刷データを直接印刷装置に送信するのではなく、一度印刷制御装置としてのクラウドサーバに送信し、クラウドサーバ上に印刷データを溜めておく。そして、印刷装置からクラウドサーバに要求を出し、クラウドサーバに溜められた印刷データをＰＵＬＬして、印刷を行うプリントサービスシステムが考えられている。
【０００６】
更に、上述のクラウドサーバを、複数の印刷装置を関連付けた一つの仮想プリンタとして利用することが考えられる。この場合、ユーザの利便性を鑑み、複数の印刷装置の能力に基づく論理和あるいは論理積の能力を利用させることが考えられる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２１３１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、クラウドサーバを論理和で定義された印刷能力を有する仮想プリンタとして利用する場合、以下の問題が生じる恐れがある。例えば、複数の印刷装置の能力の論理和を基準に印刷設定が各印刷装置の能力では実行できない印刷設定であるか否かをチェックする（以降、コンフリクトチェックと称する）場合、コンフリクトチェックを行う前にユーザに所望の印刷設定をさせる必要がある。一方で、コンフリクトチェックの結果、ユーザが所望する印刷設定に無効な設定が含まれている場合、ユーザに再度印刷設定をさせる必要があるという問題が生じる。また、コンフリクトチェックを行う間、ユーザは印刷データが生成されるのを待たなければならないという問題も生じる。いずれの問題が生じてもユーザの利便性を低下させることとなる。
【０００９】
本発明は上述の問題点の少なくとも１つを鑑みなされたものである。本発明の１つの側面は、複数の印刷装置を一つの仮想プリンタとして利用する際のユーザの利便性を向上させることができる印刷制御装置、情報処理装置、プリントサービスシステム、及び制御方法、並びにプログラムを提供することを目的の１つとする。また、本発明の１つの側面は、複数の印刷装置を一つの仮想プリンタとして利用する際において、印刷が実行できない設定であることをユーザに通知するタイミングを早める仕組みを提供することを目的の１つとする。
【課題を解決するための手段】
【００１０】
本発明の請求項１に係る印刷制御装置は、情報処理装置及び複数の印刷装置とネットワークを介して通信可能であって、前記複数の印刷装置を用いて前記情報処理装置にプリントサービスを提供する仮想プリンタとして機能する印刷制御装置であって、前記複数の印刷装置の夫々から登録要求を受信する第１の受信手段と、前記登録要求に応じて前記複数の印刷装置を出力先として登録すると共にその登録する印刷装置からその能力情報を取得する第１の能力取得手段と、前記取得した前記複数の印刷装置の能力情報に基づく印刷設定の組み合わせの処理が可能かどうかの検証を前記複数の印刷装置の夫々に対して要求する要求手段と、前記検証の要求に対する前記複数の印刷装置の夫々からの応答によって、前記印刷設定の組み合わせが前記複数の印刷装置のいずれも処理できないと判別した場合、前記印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報として保存する保存手段とを備えることを特徴とする。
【００１１】
本発明の請求項５に係るプリントサービスシステムは、互いにネットワークを介して通信可能な情報処理装置、印刷制御装置、及び複数の印刷装置を備え、前記複数の印刷装置を用いて前記情報処理装置にプリントサービスを提供する仮想プリンタとして前記印刷制御装置を機能させるプリントサービスシステムであって、ユーザからの登録指示があったとき前記複数の印刷装置の夫々から前記印刷制御装置に登録要求を送信する第１の要求手段と、前記登録要求に応じて前記複数の印刷装置を出力先として前記印刷制御装置に登録すると共にその登録する印刷装置に対してその能力情報の要求を前記印刷制御装置から送信する第２の要求手段と、前記能力情報の要求への応答として、前記複数の印刷装置の夫々から前記印刷制御装置にその能力情報を送信する第１の応答手段と、前記複数の印刷装置の能力情報に基づく印刷設定の組み合わせの処理が可能かどうかの検証を前記印刷制御装置から前記複数の印刷装置の夫々に要求する第３の要求手段と、前記検証の要求への応答として、前記複数の印刷装置の夫々から前記印刷制御装置に前記検証の結果を送信する第２の応答手段と、前記印刷制御装置において、前記複数の印刷装置の夫々からの前記検証を解釈し、前記印刷設定の組み合わせが前記複数の印刷装置のいずれも処理できないと判別した場合、前記印刷設定の組み合わせを前記複数の印刷装置で互いに競合する印刷設定の組み合わせを示す情報として保存する保存手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明の１つの側面によれば、複数の印刷装置を一つの仮想プリンタとして利用する際のユーザの利便性を向上させることができる。また、本発明の１つの側面によれば、複数の印刷装置を一つの仮想プリンタとして利用する際であっても、印刷が実行できない設定であることをユーザに通知するタイミングを早めることができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係るプリントサービスシステムの構成を示す図である。
【図２】図１における印刷装置、情報処理装置、及び仮想プリンタの夫々のハードウェア構成を示すブロック図である。
【図３Ａ】印刷装置のソフトウェア構成を示す機能ブロック図である。
【図３Ｂ】仮想プリンタのソフトウェア構成を示す機能ブロック図である。
【図３Ｃ】情報処理装置のソフトウェア構成を示す機能ブロック図である。
【図４】第１の実施形態において印刷装置を仮想プリンタに登録する際の、仮想プリンタ及び印刷装置の間のシーケンス図である。
【図５】情報処理装置から仮想プリンタに印刷ジョブを送信して印刷する際の、情報処理装置、仮想プリンタ、及び印刷装置の間のシーケンス図である。
【図６】各印刷装置の処理可能な印刷設定に関する能力を説明するための図である。
【図７】第１の実施形態に係る、仮想プリンタにおける印刷装置登録処理の手順を示すフローチャートである。
【図８】第１の実施形態に係る、仮想プリンタにおける禁則設定情報の更新・保存処理の手順を示すフローチャートである。
【図９】図５のステップＳ５００２〜Ｓ５００６で実行される印刷装置能力取得処理の手順を示すフローチャートである。
【図１０Ａ】図４のステップＳ４００２の登録要求のメッセージ及び図４のステップＳ４０１３の登録結果通知のメッセージの例を説明するための図である。
【図１０Ｂ】図４のステップＳ４００３の能力情報要求のメッセージ及び図４のステップＳ４００４の能力応答のメッセージの例を説明するための図である。
【図１０Ｃ】図５のステップＳ５００２の印刷装置能力の論理積情報要求のメッセージ及び図５のステップＳ５００４の印刷装置能力の論理積情報応答のメッセージの例を説明するための図である。
【図１０Ｄ】図５のステップＳ５００６の印刷装置能力の論理和情報要求のメッセージ及び図５のステップＳ５００８の印刷装置能力の論理和情報応答のメッセージの例を説明するための図である。
【図１０Ｅ】図５のステップＳ５００９の印刷装置の禁則設定情報要求のメッセージ及び図５のステップＳ５０１１の印刷装置能力の論理和情報応答のメッセージの例を説明するための図である。
【図１１】情報処理装置の印刷設定画面の一例を示す図である。
【図１２】図４のステップＳ４０１２でクライアントサーバに登録される禁則設定情報の管理テーブルの一例を示す図である。
【図１３】第２の実施形態に係る、仮想プリンタにおける印刷装置登録処理の手順を示すフローチャートである。
【図１４】第２の実施形態に係る、仮想プリンタにおける禁則設定情報の更新・保存処理の手順を示すフローチャートである。
【図１５】第２の実施形態において印刷装置を仮想プリンタから登録削除する際の、仮想プリンタ及び印刷装置の間のシーケンス図である。
【図１６】第２の実施形態に係る、仮想プリンタにおける印刷装置登録削除処理の手順を示すフローチャートである。
【図１７】図１５のステップＳ１５０２の印刷装置の登録削除要求のメッセージの及び図１５のステップＳ１５１２の登録削除処理の通知のメッセージの例を説明するための図である。
【図１８】図１４の更新・保存処理の具体例を説明するための模式図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
［第１の実施形態］
【００１５】
図１は、第１の実施形態に係るプリントサービスシステムの構成を説明する図である。
【００１６】
図１において、プリントサービスシステム１は、印刷装置１１０ａ、１１０ｂ、１１０ｃ、仮想プリンタ（印刷制御装置）１２０、タブレット１３０ａ、スマートフォン１３０ｂ、及びＰＣ１３０ｃ（以下、総称する場合、情報処理装置１３０と呼ぶ。）を備える。
【００１７】
より具体的には、ＬＡＮ１００（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）上に、印刷装置１１０ａ、１１０ｂ、１１０ｃ及びＡＰ（アクセスポイント）１０１が互いに通信可能に接続されている。更にインターネット１０３を経由して、印刷装置１１０及び情報処理装置１３０はクラウドサービスを提供するクラウドサーバからなる仮想プリンタ１２０と通信が可能である。
【００１８】
印刷装置１１０ａ、１１０ｂ、１１０ｃは夫々の印刷装置能力が異なっている。今後これらを区別したい場合には印刷装置１１０ａ、１１０ｂ、１１０ｃと記載し、区別しない場合には印刷装置１１０として記載する。
【００１９】
ここで情報処理装置１３０は、ＡＰ１０１を介してＬＡＮ１００上の印刷装置１１０と互いに通信できる。
【００２０】
印刷装置１１０は情報処理装置１３０からの印刷ジョブ依頼を受けると印刷処理を行う。
【００２１】
本実施例では、プリントサービスシステムの一例として上記の構成例で説明するが、本発明はこれに限定されるものではい。すなわち、少なくとも１つ以上の情報処理装置と印刷装置能力が異なる少なくとも２つ以上の印刷装置とがネットワークを介して通信可能に接続されていればよい。またネットワークは無線であっても有線であっても良い。
【００２２】
本実施例のプリントサービスシステム１では、情報処理装置１３０から印刷データを直接印刷装置１１０に渡すのではなく、一度インターネット１０３を経由して、仮想プリンタ１２０に送信し、仮想プリンタ１２０上に印刷データを溜めておく。そして、印刷装置１１０上から仮想プリンタ１２０上の印刷データをＰＵＬＬし、印刷を行う形態となっている。
【００２３】
次に、印刷装置１１０について詳述する。印刷装置１１０はシート（記録媒体）に画像を印刷する印刷機能を有する。印刷装置１１０は、ネットワークを介して受信した印刷データに基づく印刷処理を実行できる。
【００２４】
図２（ａ）は、図１における印刷装置１１０のハードウェア構成を示すブロック図である。ここで、印刷装置１１０はシートに画像を印刷する印刷機能のみを有する場合を例に説明するが、印刷装置１１０がスキャナ機能やＦＡＸ機能を含むＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）等の印刷装置であってもよい。
【００２５】
図２（ａ）において、印刷装置１１０は、制御部２１００、操作部パネル２１０７、印刷部２１０９、及びシート処理部２１１１を備える。
【００２６】
制御部２１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１０２、及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１０３を備える。更に、制御部２１００は、ストレージ２１０４、画像処理部２１０５、操作部インタフェース（Ｉ／Ｆ）２１０６、印刷部Ｉ／Ｆ２１０８、シート処理部Ｉ／Ｆ２１１０、及び通信部Ｉ／Ｆ２１１２を備え、印刷装置１１０全体を制御する。
【００２７】
ＣＰＵ２１０１は、ＲＯＭ２１０２又はストレージ２１０４に記憶されたプログラムをＲＡＭ２１０３に展開し、それを実行して印刷制御や読取制御などの各種制御を行う。
【００２８】
ＲＯＭ２１０２は、ＣＰＵ２１０１で実行可能な制御プログラムやブートプログラム等を格納する。
【００２９】
ＲＡＭ２１０３は、ＣＰＵ２１０１の主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。
【００３０】
ストレージ２１０４は、印刷データ、画像データ、各種プログラム、及び各種設定情報を記憶する。本実施例ではストレージ２１０４としてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の補助記憶装置を想定しているが、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの不揮発性メモリを用いても良い。
【００３１】
尚、本実施例に係る印刷装置１１０では、１つのＣＰＵ２１０１が１つのメモリ（ＲＡＭ２１０３）を用いて後述するフローチャートに示す各処理を実行するが、他の様態であっても構わない。例えば複数のＣＰＵ、ＲＡＭ、ＲＯＭ、及びストレージを協働させて、後述するフローチャートに示す各処理を実行しても良い。またＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のハードウェア回路を用いて一部の処理を実行するようにしてもよい。
【００３２】
操作部Ｉ／Ｆ２１０６は、操作部パネル２１０７と制御部２１００とを接続する。操作部パネル２１０７には、タッチパネル機能を有する表示部や各種ハードキーなどが備えられ、情報を表示する表示部や、ユーザの指示を受け付ける受付部として機能する。
【００３３】
印刷部Ｉ／Ｆ２１０８は、印刷部（プリンタエンジン）２１０９と制御部２１００とを接続する。情報処理装置１３０から受信した印刷ジョブを解析して生成された画像データは、印刷部Ｉ／Ｆ２１０８を介して制御部２１００から印刷部２１０９に転送される。印刷部２１０９は制御部２１００を介して制御コマンド及び印刷すべき印刷ジョブを受信し、その印刷ジョブに基づいて給紙カセット（不図示）から給送されたシートに画像を印刷する。尚、印刷部２１０９の印刷方式は、電子写真方式であってもよいし、インクジェット方式であってもよい。また熱転写方式などその他の印刷方式を適用することもできる。
【００３４】
通信部Ｉ／Ｆ２１１２は、ＬＡＮ１００を介して情報処理装置１３０と接続すると共に、インターネット１０３を経由してクラウドサービスとしての仮想プリンタ１２０と接続する。これにより、通信部Ｉ／Ｆ２１１２は、仮想プリンタ１２０への各種情報の送信や、ＬＡＮ１００上の情報処理装置１３０からの印刷ジョブやその印刷設定の仮想プリンタ１２０経由での受信を行う。
【００３５】
画像処理部２１０５は、クラウドサービスとしての仮想プリンタ１２０を介して受信した情報処理装置１３０からの印刷ジョブを展開して印刷に用いる画像データを生成するＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）機能を備える。また画像処理部２１０５は、そのＲＩＰ機能により生成された画像データの解像度変換や補正処理を行うこともできる。尚、本実施例では、画像処理部２１０５がハードウェア回路（ＡＳＩＣ又はＦＰＧＡなど）で実現されることを想定しているが、これに限定されるものではない。例えば、印刷装置１１０が画像処理用途向けのプロセッサを更に備え、そのプロセッサが画像処理プログラムを実行することにより、画像処理や、印刷データへの展開処理を実現してもよい。この場合、このプロセッサとＣＰＵ２１０１とが協働して後述するフローチャートを実現するものとする。更には、画像処理を行うためのプログラムをＣＰＵ２１０１が実行し、画像処理や印刷データの展開処理を行うように構成することもできる。また、これらのいずれかの組み合わせにより画像処理を行うようにしてもよい。
【００３６】
シート処理部Ｉ／Ｆ２１１０は、制御部２１００とシート処理部２１１１とを接続する。シート処理部２１１１は、制御部２１００から制御コマンドを受信し、その制御コマンドに従って印刷部２１０９により印刷されたシートに後処理を施す。
【００３７】
図３Ａは、印刷装置１１０のソフトウェア構成を示す機能ブロック図である。尚、この図３Ａに示す印刷装置１１０に関する各機能ブロックは、本実施例では、ＣＰＵ２１０１がＲＡＭ２１０３に展開したプログラムを実行することにより達成される。
【００３８】
印刷装置１１０は、ＵＩ制御部３１０１、印刷ジョブ生成部３１０２、データ受信制御部３１０４、ＰＤＬ解析部３１０５、ジョブ制御部３１０６、ＲＩＰ制御部３１１２、エンジン制御部３１１３、及びＩＰＰ−Ｐｒｏｘｙ制御部３１１７を備える。
【００３９】
ＩＰＰ−Ｐｒｏｘｙ制御部３１１７は、プリンタ能力通知部３１１６及びジョブ設定保存・検証部３１０３を有する。
【００４０】
ジョブ制御部３１０６は、ジョブ属性保存部３１０７と、ページ保存部３１０９及び印刷制御部３１１１を有するページ制御部３１０８とを備える。また、ページ保存部３１０９は、ページ属性保存部３１１０を備える。
【００４１】
プリンタ能力通知部３１１６は仮想プリンタ１２０から印刷装置１１０への印刷装置能力に関する問い合わせを受けて、自身の印刷装置能力に関する情報を通知する。この情報は、部数対応の可否（ｃｏｐｉｅｓ−ｓｕｐｐｏｒｔｅｄ）、サポートするフォーマット（ｄｏｃｕｍｅｎｔ−ｆｏｒｍａｔ−ｓｕｐｐｏｒｔｅｄ）、最適給紙方向に関する情報（ｆｅｅｄ−ｏｒｉｅｎｔａｔｉｏｎ−ｓｕｐｐｏｒｔｅｄ）等からなる。
【００４２】
仮想プリンタ１２０は、印刷装置能力に関する情報を印刷装置１１０から取得すると、その印刷装置１１０の印刷装置能力に合わせた印刷ジョブを生成し印刷装置１１０へ送信する。この印刷データの受信もＩＰＰ−Ｐｒｏｘｙ制御部３１１７で行われる。
【００４３】
印刷ジョブ生成部３１０２は、仮想プリンタ１２０からの印刷ジョブをＩＰＰ−Ｐｒｏｘｙ制御部３１１７から受信すると、その印刷ジョブに含まれる描画データから新規ジョブを生成し、これをジョブ制御部３１０６に送信する。
【００４４】
ジョブ設定保存・検証部３１０３は、仮想プリンタ１２０からの印刷ジョブに含まれるＩＰＰ属性で指定されたジョブ属性を検証する属性処理を行い、その処理結果をジョブ属性保存部３１０７に書き込む。この書き込まれる処理結果としては、印刷部数、フィニッシング、ＰＤＬフォーマット情報などが例示される。ＩＰＰ−Ｐｒｏｘｙ制御部３１１７は、上記ジョブ設定保存・検証部３１０３における属性処理と並行して、仮想プリンタ１２０からの印刷ジョブに含まれる描画データを印刷ジョブ生成部３１０２を介してデータ受信制御部３１０４に転送、一時保存する。データ受信制御部３１０４は、印刷ジョブ生成部３１０２が受信した印刷ジョブに含まれる描画データのバッファ領域であり、印刷ジョブ毎にストレージ２１０４に保存する。
【００４５】
ＰＤＬ解析部３１０５は、ＰＷＧ−Ｒａｓｔｅｒフォーマットに対応し、ジョブ制御部３１０６からの指示を受けてストレージ２１０４に印刷ジョブ毎に保存される描画データの１つをデータ受信制御部３１０４に要求する。その後、この要求により取得した描画データのページ解析処理を行う。ページ制御部３１０８はＰＤＬ解析部３１０５で行われたページ解析処理の結果としてのページデータのうち、画像データをページ保存部３１０９に、ページ属性情報をページ属性保存部３１１０に保存する。
【００４６】
ページ保存部３１０９は、保存された画像データをページ制御部３１０８の指示を受けてＲＩＰ制御部３１１２に送信しＲＩＰ処理を行なわせる。ＲＩＰ制御部３１１２はＲＩＰ済の画像データを生成するとこれをページ保存部３１０９に保存する。
【００４７】
ページ制御部３１０８は、ＰＤＬ解析部３１０５のページ解析処理、ＲＩＰ制御部３１１２のＲＩＰ処理、印刷制御部３１１１の印刷制御処理を制御する。印刷制御部３１１１は、ページ保存部３１０９からＲＩＰ済みの画像データを取得し、ＲＧＢに色分解してエンジン制御部３１１３に転送する。エンジン制御部３１１３は、印刷制御部３１１１からページ単位でＲＧＢ別の画像データを受け取り、印刷制御部３１１１を制御して各ページの印刷処理を行う。ＵＩ制御部３１０１は、処理中の印刷ジョブの状態に関する情報をジョブ制御部３１０６から取得し、印刷ジョブの処理状況をＵＩ画面に表示する。
【００４８】
図２（ｂ）は、クラウドサービスの１つであるクラウドプリンタ機能を提供する、図１における仮想プリンタ１２０のハードウェア構成を示すブロック図である。
【００４９】
図２（ｂ）において、仮想プリンタ１２０は、ＣＰＵ２２０１、ＲＡＭ２２０２、ＲＯＭ２２０３、ストレージ２２０４、及び通信部Ｉ／Ｆ２２０５を含む制御部２２００を備え、仮想プリンタ１２０全体を制御する。
【００５０】
ＣＰＵ２２０１は、ＲＯＭ２２０３又はストレージ２２０４に記憶されたプログラムをＲＡＭ２２０２に展開し、それを実行して印刷データの生成、印刷ジョブの転送などの各種制御を行う。
【００５１】
ＲＯＭ２２０３は、ＣＰＵ２２０１で実行可能な制御プログラムやブートプログラム等を格納する。
【００５２】
ＲＡＭ２２０２は、ＣＰＵ２２０１の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。
【００５３】
ストレージ２２０４は、ＯＳ、印刷サービス、クラウド上で係留する印刷ジョブ、及び各種クラウドサービスの設定情報を記憶する。本実施例ではストレージ２２０４としてＨＤＤ等の補助記憶装置を想定しているが、ＳＳＤなどの不揮発性メモリを用いても良い。
【００５４】
通信部Ｉ／Ｆ２２０５は、ＬＡＮ２２１０を経由してインターネット１０３に接続され、図１に示すようにインターネット１０３と接続するＬＡＮ１００を介して情報処理装置１３０や印刷装置１１０と印刷ジョブや情報を送受信する。
【００５５】
図３Ｂは、仮想プリンタ１２０のソフトウェア構成を示す機能ブロック図である。尚、図３Ｂに示す仮想プリンタ１２０に関する各機能ブロックはＣＰＵ２２０１がＲＡＭ２２０２に展開したプログラムを実行することにより達成される。
【００５６】
仮想プリンタ１２０は、仮想プリンタ管理部３２１０、ジョブ管理部３２２０、及びデータ通信制御部３２５９を備える。
【００５７】
仮想プリンタ管理部３２１０は、クライアントＤＢ３２１３、クライアント情報取得部３２１１、プリンタＤＢ３２１４、及びプリンタ情報取得部３２１２を備える。更に、仮想プリンタ管理部３２１０は、仮想プリンタ禁則生成部３２１７、仮想プリンタ能力生成部３２１６、及びイベント通知制御部３２１８を備える。
【００５８】
クライアント情報取得部３２１１は、ＩＰＰプロトコルで受信したクライアント情報をクライアントＤＢ３２１３に保存する。
【００５９】
プリンタ情報取得部３２１２は、ＩＰＰプロトコルで受信したプリンタ情報をプリンタＤＢ３２１４に保存する。
【００６０】
仮想プリンタ禁則生成部３２１７は、印刷装置１１０ａ、１１０ｂ、１１０ｃで互いに競合する印刷設定の組み合わせを示す情報（以降、禁則設定情報とも呼ぶ）を生成する。更に、この生成された情報とクライアントとしての情報処理装置１３０がサポートする機能を組み合わせて仮想プリンタ１２０としての禁則設定情報を生成する。
【００６１】
仮想プリンタ能力生成部３２１６は、仮想プリンタ禁則生成部３２１７で生成された禁則設定情報だけでなく、印刷装置１１０ａ、１１０ｂ、１１０ｃの夫々の能力情報を組み合わせて仮想プリンタの能力情報を生成する。
【００６２】
イベント通知制御部３２１８は、仮想プリンタの能力更新や印刷装置１１０のステータス変更時にそれを通知する。
【００６３】
仮想プリンタ能力生成部３２１６は、プリンタＤＢ３２１４に保存された印刷装置１１０の能力情報から仮想プリンタ１２０の能力情報を生成し、情報処理装置１３０へ通知する。
【００６４】
イベント通知制御部３２１８は、仮想プリンタ能力生成部３２１６が仮想プリンタ１２０の能力情報を再構成した場合に、情報処理装置１３０へ仮想プリンタ１２０の能力情報が更新された旨を通知する。通知を受けた情報処理装置１３０は仮想プリンタ１２０に対して、仮想プリンタ１２０の能力情報を再要求する。
【００６５】
ジョブ管理部３２２０は、ホストジョブ制御部３２３０、ホストジョブ保存部３２４０、印刷ジョブ制御部３２５０から構成される。
【００６６】
また、ホストジョブ制御部３２３０は、ホストジョブ生成部３２３１、及びホストデータ受信制御部３２３２を備え、情報処理装置１３０からの印刷ジョブを処理する。また、印刷ジョブ制御部３２５０は、ジョブ変換部３２６０を備える。
【００６７】
ホストジョブ生成部３２３１は、ホストデータ受信制御部３２３２と連携しＩＰＰプロトコルで情報処理装置１３０から受信したジョブをＩＰＰの印刷設定情報とＰＤＬ言語で記述された印刷データに分離してホストジョブ保存部３２４０に保存する。
【００６８】
印刷ジョブ制御部３２５０は、保持したジョブを仮想プリンタ１２０に出力先として登録した印刷装置１１０ａ、１１０ｂ、１１０ｃのうちの１つから印刷する。この際、ＩＰＰプロトコルで印刷装置１１０からの印刷ジョブ送信要求を受けて、ホストジョブ保存部３２４０に保存されたジョブと印刷装置１１０が処理可能なデータ形式を比較し、ジョブ変換部３２６０においてデータ形式の変換が必要か判断する。
【００６９】
ジョブ変換部３２６０は、ジョブ属性解析部３２６１、ジョブ属性変換部３２６２、ページ属性解析部３２６３、ページ属性変換部３２６４、ＰＤＬ解析部３２６５、ＰＤＬ生成部３２６６、ＩＰＰ情報生成部３２６７、及び変換ジョブ保存部３２６８を備える。
【００７０】
ジョブ変換部３２６０での判断の結果データ形式の変換が必要な場合は、ＰＤＬ解析部３２６５がジョブ属性解析部３２６１経由で取得したＩＰＰのジョブ属性やドキュメント属性に基づきページデータの解析を行う。その後、ＰＤＬ生成部３２６６が印刷データ要求があった印刷装置１１０に適した画像形式へ変換する。新しい画像形式のページ属性は元データのページ属性と変換後のページ属性を組み合わせて作成する。元データのページ属性についてはページ属性解析部３２６３が取得し、変換後のページ属性はページ属性変換部３２６４が新旧のページ属性を組み合わせて作成する。また変換後のデータのジョブ属性はジョブ属性変換部３２６２が旧ジョブ属性と新しいページ属性を組み合わせて作成する。最後にＩＰＰ情報生成部３２６７がＩＰＰ形式のジョブ属性とドキュメント属性に変換する。またＰＤＬ生成部３２６６）で変換したページデータは変換ジョブ保存部３２６８に保存する。ＩＰＰのジョブ属性・ドキュメント属性、及び変換後のＰＤＬデータがすべて変換ジョブ保存部３２６８に用意できると、印刷装置１１０からの印刷データ要求に対して、印刷データが送信される。
【００７１】
図２（ｃ）は、図１における情報処理装置１３０のハードウェア構成を示すブロック図である。
【００７２】
図２（ｃ）において、情報処理装置１３０は、制御部２３００、タッチパネル２３０６、及びマウスキーボード２３０８を備える。
【００７３】
制御部２３００は、ＣＰＵ２３０１、ＲＡＭ２３０２、ストレージ２３０３、ＲＯＭ２３０４、操作部Ｉ／Ｆ２３０５、無線操作部Ｉ／Ｆ２３０７、通信部Ｉ／Ｆ２３０９を含み、情報処理装置１３０全体を制御する。
【００７４】
ＣＰＵ２３０１は、ＲＯＭ２３０４又はストレージ２３０３に記憶されたプログラムをＲＡＭ２３０２に展開し、それを実行して印刷設定画面の制御や印刷データの生成、印刷ジョブの転送などの各種制御を行う。
【００７５】
ＲＯＭ２３０４は、ＣＰＵ２３０１で実行可能な制御プログラムやブートプログラム等を格納する。
【００７６】
ＲＡＭ２３０２は、ＣＰＵ２３０１の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。
【００７７】
ストレージ２３０３は、ＯＳ、印刷アプリケーション、ＯＳ印刷フレームワーク、ＯＳ印刷フレームワークが生成する印刷ジョブ、及び各種設定情報を記憶する。本実施例ではストレージ２３０３としてＨＤＤ等の補助記憶装置を想定しているが、ＳＳＤなどの不揮発性メモリを用いても良い。
【００７８】
タッチパネル２３０６は、操作部Ｉ／Ｆ２３０５に接続されており、各アプリケーションや印刷設定画面に対する画面描画だけでなく、ユーザのタッチ操作をＣＰＵ２３０１上で動作するアプリケーションへ通知する。
【００７９】
マウスキーボード２３０８は、Ｂｌｕｅｔｏｏｔｈ（登録商標）等からなる無線操作部Ｉ／Ｆ２３０７に接続されており、ユーザ操作をＣＰＵ２３０１上で動作するアプリケーションへ通知する。
【００８０】
通信部Ｉ／Ｆ２３０９は、ＬＡＮ１００を介して印刷装置１１０と接続すると共に、インターネット１０３を経由して仮想プリンタ１２０と接続する。これにより、通信部Ｉ／Ｆ２３０９は、印刷装置１１０及び仮想プリンタ１２０と画像データや情報を送受信する。
【００８１】
図３Ｃは、情報処理装置１３０のソフトウェア構成を示す機能ブロック図である。尚、図３Ｃに示す情報処理装置１３０に関する各機能ブロックは、ＣＰＵ２３０１がＲＡＭ２３０２に展開したプログラムを実行することにより達成される。
【００８２】
情報処理装置１３０は、アプリケーション３３０１、ＯＳ印刷フレームワーク３３０２、データ通信制御部３３１０、印刷画面制御部３３１１、及びＯＳ描画エンジン３３１４を備える。
【００８３】
アプリケーション３３０１は、情報処理装置１３０上にユーザがインストールする任意のアプリケーションであり、ワープロ、表計算、データベース、メール、ウェブブラウザなどの一般的なアプリケーションである。
【００８４】
ＯＳ印刷フレームワーク３３０２は、ＩＰＰクライアント制御部３３０３、及びプリントスプーラー３３０９から構成される。また、ＩＰＰクライアント制御部３３０３は、プリンタ情報管理部３３０４、及び印刷ジョブ生成部３３０５から構成される。
【００８５】
プリンタ情報管理部３３０４は、データ通信制御部３３１０を通じて仮想プリンタ１２０に問い合わせを行い、仮想プリンタ１２０の能力情報を取得・保存する。取得情報は前述の部数対応の可否の他、印刷装置１１０のフィニッシング能力、画像の最適な生成向き（ｆｅｅｄ−ｏｒｉｅｎｔａｔｉｏｎ−ｓｕｐｐｏｒｔｅｄ）などであり、これらの情報は印刷ジョブ生成部３３０５が参照する。
【００８６】
印刷画面制御部３３１１は、アプリケーション３３０１の呼び出しに応じて印刷設定画面を表示する。ユーザは印刷設定画面から印刷設定を行い印刷する。印刷設定画面に表示する印刷設定項目は仮想プリンタ１２０の能力情報により提供可能な範囲内で設定される。印刷ジョブに適用すべき印刷設定は印刷画面制御部３３１１が備える設定管理部３３１２に一時的に記憶される。
【００８７】
印刷ジョブ生成部３３０５は、ジョブ属性生成部３３０６、ページ生成部３３０７、及びＰＤＬ生成部３３０８から構成され、印刷画面制御部３３１１の指示を受けて印刷ジョブを生成する。
【００８８】
ジョブ属性生成部３３０６は、印刷設定画面で行われた印刷設定の項目からＩＰＰジョブのジョブ属性とドキュメント属性を生成する。
【００８９】
ページ生成部３３０７は、ＰＤＬ生成部３３０８と連携して、アプリケーション３３０１がＯＳ描画エンジン３３１４を通して生成した描画データを仮想プリンタ１２０のサポートするＰＤＬデータに変換して仮想プリンタ１２０へ送信する。この時、仮想プリンタ１２０のサポートするＰＤＬ形式や画像向きはプリンタ情報管理部３３０４から取得し、指定されたＰＤＬ形式・画像向きに従ってデータを生成する。
【００９０】
ＯＳ描画エンジン３３１４は、アプリケーション３３０１の要求に従い、印刷ページデータをＯＳ標準の描画フォーマットで描画し、ＯＳ印刷フレームワーク３３０２のページ生成部３３０７に渡す。
【００９１】
データ通信制御部３３１０は、ＩＰＰクライアント制御部３３０３が生成する、プリンタ管理のための通信、及びジョブ送信・ジョブ管理のためのメッセージを仮想プリンタ１２０へ送受信する。例えば、仮想プリンタ１２０へ登録している印刷装置１１０がＰＷＧ−Ｒａｓｔｅｒフォーマットしかサポートしない場合、仮想プリンタ１２０が情報処理装置１３０に通知するサポート・フォーマットはＰＷＧ−Ｒａｓｔｅｒとなる。よってこの場合は、ＰＤＬ生成部３３０８は仮想プリンタ１２０から指定された画像向きに最適化してＰＷＧ−Ｒａｓｔｅｒフォーマットのデータを生成する。
【００９２】
図４は、第１の実施形態において印刷装置１１０を仮想プリンタ１２０に登録する登録処理を行う際の、仮想プリンタ１２０及び印刷装置１１０の間のシーケンスである。以下、印刷装置１１０ｂ、１１０ｃが本処理の開始前にすでに仮想プリンタ１２０に能力情報が登録されている状態において、本処理で印刷装置１１０ａの能力情報が仮想プリンタ１２０に登録される場合を例として説明する。
【００９３】
図４においてまず、ステップＳ４００１で、印刷装置１１０ａはユーザから仮想プリンタ１２０への登録指示が操作部パネル２１０７を介して受けると、ステップＳ４００２に進む。
【００９４】
ステップＳ４００２で、印刷装置１１０ａは、仮想プリンタ１２０に、印刷装置の登録要求（ＲｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅ）をＩＰＰ通信で送信する。
【００９５】
ステップＳ４００３で、仮想プリンタ１２０は、印刷装置１１０ａに対して能力情報の要求（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）をＩＰＰ通信で送信する。
【００９６】
ステップＳ４００４で、印刷装置１１０ａは、仮想プリンタ１２０からの能力情報の要求に対して印刷装置１１０ａの能力情報（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）をＩＰＰ通信で送信する。
【００９７】
ステップＳ４００５で、仮想プリンタ１２０は、ステップＳ４００４で印刷装置１１０ａから送信された能力情報を印刷装置１１０ａを登録済み印刷装置として関連付けた状態で登録する（第１の登録取得手段）。その上で、本処理の開始前にすでに仮想プリンタ１２０に登録されている印刷装置１１０ｂ、１１０ｃの能力情報と、印刷装置１１０ｂ、１１０ｃでは組み合わせて印刷処理ができない設定を示す禁則設定情報を読み出す。
【００９８】
ステップＳ４００６で、仮想プリンタ１２０は、仮想プリンタ１２０に登録される全ての印刷装置で処理可能な能力を示す論理積情報を生成し、保存する。具体的には、ステップＳ４００４で受信した印刷装置１１０ａの能力情報とステップＳ４００５で読み出した印刷装置１１０ｂ、１１０ｃの能力情報とからこの論理積情報は生成される。
【００９９】
ステップＳ４００７で、仮想プリンタ１２０は、仮想プリンタ１２０に登録されたいずれかの印刷装置で処理可能な能力を示す論理和情報を生成し、保存する。論理積情報と同様、具体的にはステップＳ４００４で受信した印刷装置１１０ａの能力情報とステップＳ４００５で読み出した印刷装置１１０ｂ、１１０ｃの能力情報から、この論理和情報が生成される。更に、この生成された論理和情報から、次のステップＳ４００８以降で仮想プリンタ１２０に登録されたいずれかの印刷装置で処理可能かどうかの検証対象となる印刷設定の組み合わせを生成する。
【０１００】
ステップＳ４００８で、仮想プリンタ１２０は、登録される全ての印刷装置に対してステップＳ４００７で生成した印刷設定の組み合わせが処理可能かどうかの検証要求（ＶａｌｉｄａｔｅＪｏｂＲｅｑｕｅｓｔ）をＩＰＰ通信で送信する。すなわち、この検証要求は、新規登録した印刷装置１１０ａ及びすでに登録済みの印刷装置１１０ｂ、１１０ｃのいずれにも送信される。
【０１０１】
ステップＳ４００９で、印刷装置１１０ａは、ステップＳ４００８の仮想プリンタ１２０からの処理可能かどうかの検証要求（ＶａｌｉｄａｔｅＪｏｂＲｅｑｕｅｓｔ）に対して、処理可能かどうかの検証を行う。尚、図４においては不図示であるが、印刷装置１１０ｂ、１１０ｃにおいても、ステップＳ４００８の仮想プリンタ１２０からの処理可能かどうかの検証要求に対して、処理可能かどうかの検証を行う。
【０１０２】
ステップＳ４０１０で、印刷装置１１０ａは、ステップＳ４００９の印刷設定の検証要求に対する応答として検証結果（ＶａｌｉｄａｔｅＪｏｂＲｅａｐｏｎｓｅ）をＩＰＰ通信で送信する。尚、ステップＳ４００９で前述した通り、印刷装置１１０ｂ、１１０ｃにおいてもステップＳ４００９の印刷設定の検証要求に対する検証が行われるため、図４においては不図示であるが、印刷装置１１０ｂ、１１０ｃからもその検証結果が送信される。
【０１０３】
ステップＳ４０１１で、仮想プリンタ１２０は、ステップＳ４０１０で印刷装置１１０ａ、１１０ｂ、１１０ｃから受信した検証結果を元にステップＳ４００５で読み出した禁則設定情報の更新が必要であるかどうかを判断する。すなわち、ステップＳ４００５で読み出した禁則設定情報が新規登録された印刷装置１１０ａにおいても印刷処理ができない設定を示す情報であるかを確認する。
【０１０４】
ステップＳ４０１２で、仮想プリンタ１２０は、ステップＳ４０１１での判断結果、禁則設定情報の更新が必要である場合は、禁則設定情報を更新して保存する。
【０１０５】
ステップＳ４０１３で、仮想プリンタ１２０は、印刷装置１１０ａの登録処理の結果（ＲｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅＲｅｓｐｏｎｓｅ）を印刷装置１１０ａにＩＰＰ通信で通知する。印刷装置１１０ａはその通知された内容を操作部パネル２１０７に表示することにより、ユーザに印刷装置１１０ａの仮想プリンタ１２０への登録が終了した旨を通知する。その後、本処理を終了する。
【０１０６】
次に、図５を用いて、情報処理装置１３０から仮想プリンタ１２０に印刷ジョブを送信して印刷する印刷処理を行う際の、情報処理装置１３０、仮想プリンタ１２０、及び印刷装置１１０の間のシーケンスについて説明する。
【０１０７】
図５においてまず、ステップＳ５００１で、情報処理装置１３０は、ユーザにより、アプリケーション３３０１が起動されタッチパネル２３０６上で開いた印刷画面上のプリンタ選択ボタンが押されると、ステップＳ５００２に進む。
【０１０８】
ステップＳ５００２で、情報処理装置１３０は仮想プリンタ１２０に対して、印刷装置１１０の能力の論理積情報（ＡＮＤ能力）の要求（ＧｅｒＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）をＩＰＰ通信で送信する。
【０１０９】
ステップＳ５００３で、仮想プリンタ１２０は図４のステップＳ４００６で生成・保存された仮想プリンタ１２０に登録される全ての印刷装置の能力の論理積情報を読み出す。
【０１１０】
ステップＳ５００４で、仮想プリンタ１２０はステップＳ５００３で読み出した論理積情報をステップＳ５００２の要求に対する応答（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）として情報処理装置１３０にＩＰＰ通信で送信する。
【０１１１】
ステップＳ５００５で、情報処理装置１３０はステップＳ５００４で仮想プリンタ１２０から送信された論理積情報に対応する印刷設定画面をＲＡＭ２３０２上に構築する。
【０１１２】
ステップＳ５００６で、情報処理装置１３０は仮想プリンタ１２０に対して、印刷装置１１０の能力の論理和情報（ＯＲ能力）の要求（ＧｅｒＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）をＩＰＰ通信で送信する。
【０１１３】
ステップＳ５００７で、仮想プリンタ１２０は図４のステップＳ４００７で生成・保存された仮想プリンタ１２０に登録された全ての印刷装置の能力の論理和情報を読み出す。
【０１１４】
ステップＳ５００８で、仮想プリンタ１２０はステップＳ５００７で読み出した論理和情報をステップＳ５００６の要求に対する応答（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）として情報処理装置１３０にＩＰＰ通信で送信する。
【０１１５】
ステップＳ５００９で、情報処理装置１３０は仮想プリンタ１２０に対して、印刷装置１１０の禁則設定情報の要求（ＧｅｒＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）をＩＰＰ通信で送信する。
【０１１６】
ステップＳ５０１０で、仮想プリンタ１２０は図４のステップＳ４０１２で更新・保存される禁則設定情報を読み出す。
【０１１７】
ステップＳ５０１１で、仮想プリンタ１２０はステップＳ５０１０で読み出した禁則設定情報をステップＳ５００９の要求に対する応答（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）として情報処理装置１３０にＩＰＰ通信で送信する。
【０１１８】
ステップＳ５０１２で、情報処理装置１３０はステップＳ５００８で仮想プリンタ１２０から送信された論理和情報に対応する印刷設定画面をＲＡＭ２３０２上に構築する。具体的には、ステップＳ５００５で構築された印刷設定画面は、ステップＳ５０１１で受信した禁則設定情報を元に仮想プリンタ１２０に登録されるいずれの印刷装置でも処理できない印刷設定の組み合わせはユーザが設定できないように更新される。
【０１１９】
ステップＳ５０１３で、情報処理装置１３０は、ステップＳ５０１２で構築された印刷設定画面をタッチパネル２３０６に表示する。
【０１２０】
ステップＳ５０１４で、情報処理装置１３０は、タッチパネル２３０６又はマウスキーボード２３０８がユーザ操作され、ステップＳ５０１３で表示された印刷設定画面での印刷設定や、印刷ジョブの印刷開始指示があると、ステップＳ５０１５に進む。尚、この印刷設定により印刷される印刷ジョブは、ステップＳ５００１、Ｓ５０１４のいずれかでユーザにより情報処理装置１３０に入力される。
【０１２１】
ステップＳ５０１５で、情報処理装置１３０は、ステップＳ５０１４で設定された印刷設定に従い、印刷ジョブを生成する。その後、仮想プリンタ１２０に対してその印刷設定に基づく印刷処理が可能かどうかの検証要求（ＶａｌｉｄａｔｅＪｏｂＲｅｑｕｅｓｔ）をＩＰＰ通信で送信する。
【０１２２】
ステップＳ５０１６で、仮想プリンタ１２０は、情報処理装置１３０からの検証要求に応じて、仮想プリンタ１２０の登録済のいずれかの印刷装置においてステップＳ５０１４で設定された印刷設定に基づく印刷処理が可能かどうかの検証を行う。検証は印刷設定に禁則設定が含まれないことの確認も含まれる。
【０１２３】
ステップＳ５０１７で、仮想プリンタ１２０は、ステップＳ５０１５の印刷設定の検証要求に対する検証結果（ＶａｌｉｄａｔｅＪｏｂＲｅａｐｏｎｓｅ）を情報処理装置１３０にＩＰＰ通信で送信する。
【０１２４】
ステップＳ５０１８で、情報処理装置１３０は、ステップＳ５０１４で設定された印刷設定に基づく印刷処理が可能であるという検証結果を仮想プリンタ１２０から受信したか判定する。かかる検証結果であった場合、情報処理装置１３０は、その印刷設定に従いステップＳ５０１５で生成された印刷ジョブ（ＣｒｅａｔｅＪｏｂＲｅｑｕｅｓｔ）を仮想プリンタ１２０にＩＰＰ通信で送信する。
【０１２５】
ステップＳ５０１９で、仮想プリンタ１２０は、情報処理装置１３０から印刷ジョブ（ＣｒａｅｔｅＪｏｂＲｅｑｕｅｓｔ）を受信すると、その受信した印刷ジョブを仮想プリンタ１２０のストレージ２２０４に保存する。
【０１２６】
ステップＳ５０２０で、印刷装置１１０は、ユーザからの印刷指示を受け付ける。例えば、操作部パネル２１０７からＩＤやユーザ名を入力させて、当該ユーザに対応付けられた印刷ジョブの印刷指示を受け付ける。尚、印刷指示の受け付けはこれに限定されるものではない。印刷装置１１０を利用するためにユーザが当該印刷装置にログインしたことを契機として、当該ユーザに対応付けられた印刷ジョブの印刷指示を発行するようにしてもよい。
【０１２７】
ステップＳ５０２１で、印刷装置１１０は、仮想プリンタ１２０に対してステップＳ５０２０で受け付けた印刷指示に対応する印刷ジョブの送信要求（ＦｅｔｃｈＪｏｂ）をＩＰＰ通信で送信する。
【０１２８】
ステップＳ５０２２で、仮想プリンタ１２０は、印刷装置１１０からの印刷ジョブの送信要求（ＦｅｔｃｈＪｏｂ）に対して、ステップＳ５０１９で保存された印刷ジョブを印刷装置１１０へＩＰＰ通信で送信する。尚、ここでは、ユーザに対応付けられた印刷ジョブが印刷装置１１０へ送信されるものとする。
【０１２９】
ステップＳ５０２３で、印刷装置１１０は、仮想プリンタ１２０から送信された印刷ジョブを受信して印刷処理を実行し、本処理を終了する。
【０１３０】
図６は、各印刷装置１１０ａ、１１０ｂ及び１１０ｃの能力を説明するための図である。以下、サポートという文言を、処理可能な印刷設定であることを示す文言として用いる。
【０１３１】
図６（ａ）は、印刷装置１１０ａの能力、すなわち印刷装置１１０ａが処理可能な印刷設定を示す。具体的には、カラー設定はモノクロをサポートし、フィニッシング設定はサポート無し、両面印刷設定は長辺及び短辺綴じをサポートし、用紙サイズ設定はＡ４、ＬＥＴＴＥＲ、ＬＥＧＡＬ、Ａ３及びＬＥＤＧＥＲをサポートする。
【０１３２】
図６（ｂ）は、印刷装置１１０ｂの能力、すなわち印刷装置１１０ｂが処理可能な印刷設定を示す。具体的には、カラー設定はカラーをサポートし、フィニッシング設定はサポート無し、両面印刷設定はサポート無し、用紙サイズ設定はＡ４、ＬＥＴＴＥＲ及びＬＥＧＡＬをサポートする。
【０１３３】
図６（ｃ）は、印刷装置１１０ｃの能力、すなわち印刷装置１１０ｃが処理可能な印刷設定を示す。具体的には、カラー設定はカラーをサポートし、フィニッシング設定はステイプル及びパンチをサポートし、両面印刷設定は長辺及び短辺綴じをサポートし、用紙サイズ設定はＡ４、ＬＥＴＴＥＲ及びＬＥＧＡＬをサポートする。
【０１３４】
尚、図６で挙げた能力情報は印刷装置１１０の能力の例示であり、その他に自動両面印刷設定や、印刷解像度設定、印刷装置１１０側でのＮｉｎ１レイアウト設定、画像回転設定などが含まれていてもよい。
【０１３５】
次に図７を用いて、図４の登録処理で、仮想プリンタ１２０が印刷装置１１０ａから登録要求を受信（ステップＳ４００２）後、印刷装置１１０ａに登録結果を通知（ステップＳ４０１３）するまでの本実施形態に係る印刷装置登録処理の手順を説明する。ここで、図７の処理は、仮想プリンタ１２０のＣＰＵ２２０１が制御して実行する。
【０１３６】
ステップＳ７００１では、印刷装置１１０ａから印刷装置の登録要求を受信すると、ステップＳ７００２に進み、印刷装置１１０ａに対して能力情報の要求を送信し、印刷装置１１０ａからのその応答として能力情報を取得する。更に、仮想プリンタ１２０にその取得した印刷装置１１ａの能力情報を新規登録してストレージ２２０４に保存する。
【０１３７】
ステップＳ７００３では、仮想プリンタ１２０に登録済みの印刷装置１１０の能力の論理積情報（ＡＮＤ能力）を更新してストレージ２２０４に保存する。
【０１３８】
ステップＳ７００４では、仮想プリンタ１２０に登録済みの印刷装置１１０の能力の論理和情報（ＯＲ能力）を更新してストレージ２２０４に保存する。
【０１３９】
ステップＳ７００５では、仮想プリンタ１２０に登録済みの印刷装置１１０の禁則設定情報を更新してストレージ２２０４に保存する禁則設定情報の更新・保存処理を実行する。この処理の詳細は図８を用いて後述する。
【０１４０】
ステップＳ７００６では、印刷装置１１０ａに印刷装置１１０ａの登録結果を通知して本処理を終了する。
【０１４１】
次に図８のフローチャートを用いて、ステップＳ７００５で実行される第１の実施形態に係る禁則設定情報の更新・保存処理の手順を説明する。ここで、図８の処理は、仮想プリンタ１２０のＣＰＵ２２０１が制御して実行する。
【０１４２】
ステップＳ８００１では、ステップＳ８００２で仮想プリンタ１２０に登録済みの各印刷装置１１０に実行可能かどうか問い合わせ（検証要求）を行う印刷設定の組み合わせを決定する。この決定は、ステップＳ７００４で更新した、仮想プリンタ１２０に登録済みの印刷装置１１０の能力の論理和情報（ＯＲ能力）に基づき行われる。
【０１４３】
ステップＳ８００２では、ステップＳ８００１で決定した印刷設定の組み合わせについて、印刷装置１１０に実行可能かどうかの検証要求を仮想プリンタ１２０に登録済みの印刷装置１１０の１つ（ここでは印刷装置１１０ａとする）に送信する。
【０１４４】
ステップＳ８００３では、ステップＳ８００２で検証要求が送信された印刷装置１１０ａから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、印刷装置１１０ａがステップＳ８００１で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行可能であると判定した場合は、ステップＳ８００６へと進む。実行不可能と判定した場合は、次のステップＳ８００４へと進む。
【０１４５】
ステップＳ８００４では、仮想プリンタ１２０に登録済の印刷装置１１０のすべてに対してステップＳ８００２の検証要求の送信が完了したかどうかを判定する。完了していると判定した場合は、ステップＳ８００５へと進む。完了していないと判定した場合は、ステップＳ８００２へと戻って、仮想プリンタ１２０に登録済みの印刷装置１１０のうちまだ検証要求を送信していない印刷装置の１つに対して検証要求を送信する。
【０１４６】
ステップＳ８００５では、仮想プリンタ１２０に登録された印刷装置１１０のすべてがステップＳ８００１で決定した印刷設定（ＯＲ能力）の組み合わせを実行できないと判別する（判別手段）。その後、その組み合わせを、仮想プリンタ１２０に投入するジョブに関する禁則設定情報としてストレージ２２０４に保存して登録する。
【０１４７】
ステップＳ８００６では、能力の論理和情報から決定しうるすべての印刷設定（ＯＲ能力）の組み合わせについての検証要求が完了したかどうかを判定する。完了していると判定した場合は、本処理を終了する。完了していないと判定した場合は、ステップＳ８００１へと戻って、能力の論理和情報から決定しうるすべての印刷設定のうち、まだ検証要求を行っていない印刷設定の１つを検証要求を行う対象に決定する。
【０１４８】
次に図９を用いて、図５の印刷処理で、仮想プリンタ１２０が情報処理装置１３０から印刷装置１１０の禁則設定情報の要求を受信（ステップＳ５００９）後、その要求に応答（ステップＳ５０１１）するまでの印刷装置能力取得処理の手順を説明する。ここで、図９の処理は、仮想プリンタ１２０のＣＰＵ２２０１が制御して実行する。
【０１４９】
ステップＳ９００１では、情報処理装置１３０からの何らかのコマンドを受信するまで待ち、コマンドを受信したら次のステップＳ９００２へと進む。
【０１５０】
ステップＳ９００２では、情報処理装置１３０から受信したコマンドを解釈して禁則情報取得要求であるか否かを判定する。禁則情報取得要求であると判定すれば、ステップＳ９００３へと進み、その他のコマンドであると判定した場合はステップＳ９００５へと進む。ステップＳ９００５では、その他のコマンドに応じた処理を行って、本処理を終了する。
【０１５１】
ステップＳ９００３では、ステップＳ８００５で登録・保存された禁則設定情報を読み出す。
【０１５２】
ステップＳ９００４では、ステップＳ９００３で読み出した禁則設定情報を情報処理装置１３０に送信して本処理を終了する。
【０１５３】
図１０Ａ〜図１０Ｅに印刷装置１１０、仮想プリンタ１２０及び情報処理装置１３０が相互にやり取りするＩＰＰ通信のメッセージ例を示す。
【０１５４】
図１０Ａのメッセージ１０１０は、印刷装置１１０が仮想プリンタ１２０に登録要求（ＲｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅ）を送信した時のメッセージの例である。メッセージ１０１０は例えばステップＳ４００２で送信される。
【０１５５】
メッセージ１０１０は、ＨＴＴＰレイヤのヘッダ情報と、ＨＴＴＰ上のＩＰＰメッセージデータ１０１１から構成される。ＩＰＰメッセージデータ１０１１の「ｉｐｐ：／／ＸＸＸＸＸ．ｌｏｃａｌ．：６３１／ｉｐｐ／ｐｒｉｎｔ」は印刷装置１１０ａ、１１０ｂ、１１０ｃのいずれか一方を示す識別子である。印刷装置１１０ａ、１１０ｂ、１１０ｃのうち、このＩＰＰメッセージデータ１０１１の識別子に当てはまる印刷装置に対して、仮想プリンタ１２０は、ステップＳ４００３の能力情報の要求を送信すると共に、ステップＳ４０１３の登録処理の結果を通知する。
【０１５６】
図１０Ａのメッセージ１０２０は、仮想プリンタ１２０が印刷装置１１０に対して、登録処理の結果（ＲｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅＲｅｓｐｏｎｓｅ）を通知した時のメッセージの例である。メッセージ１０２０は例えばステップＳ４０１３で送信される。
【０１５７】
メッセージ１０２０は、仮想プリンタ１２０が印刷装置１１０に対して、登録を許可した時のメッセージの例である。メッセージ１０２０のうちＩＰＰメッセージデータ１０２１の「ｓｔａｔｕｓ−ｃｏｄｅ：  Ｓｕｃｃｅｓｓｆｕｌ（ｓｕｃｃｅｓｓｆｕｌ−ｏｋ）」は登録を許可した時の属性を示している。
【０１５８】
図１０Ｂのメッセージ１０３０は、仮想プリンタ１２０が印刷装置１１０に対して、能力情報の要求（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）を送信した時のメッセージの例である。メッセージ１０３０は例えばステップＳ４００３で送信される。
【０１５９】
メッセージ１０３０のうち、ＩＰＰメッセージデータ１０３１は、印刷装置１１０に対して、どのような能力を問い合わせるかの属性１０３１ａ〜ｄを含む。
【０１６０】
具体的には、属性１０３１ａは印刷モードとしてカラーのサポート有無を問い合わせる属性であり、属性１０３１ｂはフィニッシングのサポート有無を問い合わせる属性である。また、属性１０３１ｃは両面のサポート有無を問い合わせる属性であり、属性１０３１ｄはサポートしている用紙情報の種類を問い合わせる属性である。
【０１６１】
図１０Ｂのメッセージ１０４０、１０５０は、印刷装置１１０が仮想プリンタ１２０からのメッセージ１０３０の要求への応答として、能力情報（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）を送信した時のメッセージの例である。メッセージ１０４０、１０５０は例えばステップＳ４００４で送信される。
【０１６２】
メッセージ１０４０のうちＩＰＰメッセージデータ１０４１は、印刷装置１１０ａがサポートしている能力を示す属性１０４１ａ〜ｄを含む。
【０１６３】
具体的には、属性１０４１ａは、カラー設定はモノクロをサポートすることを示す属性であり、属性１０４１ｂは、フィニッシング設定はステイプル及びパンチをサポートすることを示す属性である。また、属性１０４１ｃは両面印刷設定は長辺及び短辺綴じのサポートすることを示す属性であり、属性１０４１ｄは用紙サイズ設定はＡ４、ＬＥＴＴＥＲ、ＬＥＧＡＬ、Ａ３及びＬＥＤＧＥＲをサポートすることを示す属性である。
【０１６４】
メッセージ１０５０のうちＩＰＰメッセージデータ１０５１は、印刷装置１１０ｂがサポートしている能力を示す属性１０５１ａ〜ｄを含む。
【０１６５】
具体的には、属性１０５１ａは、カラー設定はカラーをサポートすることを示す属性である。また、属性１０５１ｂは、フィニッシング設定のサポートは無いことを示す属性であり、属性１０５１ｃは、両面印刷設定のサポートは無いことを示す属性である。属性１０５１ｄは、用紙サイズ設定はＡ４、ＬＥＴＴＥＲ及びＬＥＧＡＬをサポートすることを示す属性である。
【０１６６】
図１０Ｃのメッセージ１０６０は、情報処理装置１３０が仮想プリンタ１２０に対して、印刷装置能力の論理積情報の要求（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）を送信した時のメッセージの例である。メッセージ１０６０は例えばステップＳ５００２で送信される。
【０１６７】
メッセージ１０６０のうちＩＰＰメッセージデータ１０６１は、仮想プリンタ１２０に登録された各印刷装置の全てがサポートしている能力の問い合わせであることを示す属性である。
【０１６８】
メッセージ１０７０は、仮想プリンタ１２０がメッセージ１０６０への応答として、印刷装置能力の論理積情報（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）を送信した時のメッセージの例である。メッセージ１０７０は例えばステップＳ５００４で送信される。
【０１６９】
メッセージ１０７０のうちＩＰＰメッセージデータ１０７１は、仮想プリンタ１２０に登録された各印刷装置の全てがサポートしている能力を示す属性１０７１ａ〜ｄを含む。
【０１７０】
具体的には、属性１０７１ａは、カラー設定はモノクロをサポートすることを示す属性であり、属性１０７１ｂは、フィニッシング設定のサポートは無いことを示す属性である。属性１０７１ｃは、両面印刷設定のサポートは無いことを示す属性であり、属性１０７１ｄは、用紙サイズ設定はＡ４、ＬＥＴＴＥＲ及びＬＥＧＡＬをサポートすることを示す属性である。
【０１７１】
図１０Ｄのメッセージ１０８０は、情報処理装置１３０が仮想プリンタ１２０に対して、印刷装置能力の論理和情報の要求（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）を送信した時のメッセージの例である。メッセージ１０８０は例えばステップＳ５００６で送信される。
【０１７２】
メッセージ１０８０のうちＩＰＰメッセージデータ１０８１は、仮想プリンタ１２０に登録された各印刷装置のいずれかがサポートしている能力の問い合わせであることを示す属性である。
【０１７３】
図１０Ｄのメッセージ１０９０は、仮想プリンタ１２０がメッセージ１０８０の要求への応答として、印刷装置能力の論理和情報（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）を送信した時のメッセージの例である。メッセージ１０９０は例えばステップＳ５００８で送信される。
【０１７４】
メッセージ１０９０のうちＩＰＰメッセージデータ１０９１は、仮想プリンタ１２０に登録された各印刷装置のいずれかがサポートしている能力を示す属性１０９１ａ〜ｄを含む。
【０１７５】
具体的には、属性１０９１ａは、カラー設定はカラーをサポートすることを示す属性であり、属性１０９１ｂは、フィニッシング設定はステイプル及びパンチをサポートすることを示す属性である。属性１０９１ｃは、両面印刷設定は長辺及び短辺綴じのサポートすることを示す属性であり、属性１０９１ｄは、用紙サイズ設定はＡ４、ＬＥＴＴＥＲ、ＬＥＧＡＬ、Ａ３及びＬＥＤＧＥＲをサポートすることを示す属性である。
【０１７６】
図１０Ｅのメッセージ１０９２は、情報処理装置１３０が仮想プリンタ１２０に対して、印刷装置の禁則設定情報の要求（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｑｕｅｓｔ）を送信した時のメッセージの例である。メッセージ１０９２は例えばステップＳ５００９で送信される。
【０１７７】
メッセージ１０９２のうちＩＰＰメッセージデータ１０９３は、仮想プリンタ１２０に登録された印刷装置１１０のいずれもサポートしていない印刷設定の組み合わせの問い合わせであることを示す属性である。
【０１７８】
図１０Ｅのメッセージ１０９４は、仮想プリンタ１２０がメッセージ１０９２の要求に対する応答として、印刷装置の禁則設定情報（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅＲｅｓｐｏｎｓｅ）を送信した時のメッセージの例である。メッセージ１０９４は例えばステップＳ５０１１で送信される。
【０１７９】
メッセージ１０９４のうちＩＰＰメッセージデータ１０９５は、仮想プリンタ１２０に登録された印刷装置１１０のいずれもサポートしていない印刷設定の組み合わせを示す属性１０９５ａ〜ｂを含む。
【０１８０】
具体的には、属性１０９５ａは、カラー印刷、且つ用紙サイズがＡ３という印刷設定の組み合わせ、及びカラー印刷、且つ用紙サイズがＬＥＤＧＥＲという印刷設定の組み合わせを示す属性である。属性１０９５ｂは、カラー印刷、且つフィニッシング処理がステイプルであるという印刷設定の組み合わせ、及びカラー印刷、且つフィニッシング処理がパンチであるという印刷設定の組み合わせを示す属性である。
【０１８１】
次に図１１に、ステップＳ５０１３で情報処理装置１３０のタッチパネル２３０６に表示される印刷設定画面の一例を示す。
【０１８２】
図１１（ａ）、（ｂ）に示すＵＩ画面１１１０、１１２０は情報処理装置１３０としてスマートフォン１３０ｂやタブレット１３０ａが使用された場合に用いられる印刷設定画面である。図１１では、仮想プリンタ１２０の配下に印刷装置１１０ａ及び１１０ｂが登録されている場合の印刷設定画面を例示している。ＵＩ画面１１１０、１１２０はいずれも、ステータス選択部１１０１、印刷装置選択部１１０２、部数設定部１１０３、印刷サポート選択部１１０４、選択項目を表示するオプション設定部１１０５により構成される。
【０１８３】
ＵＩ画面１１１０、１１２０のように、印刷装置選択部１１０２においてＰｒｉｎｔｅｒ（１）がユーザ選択された場合、仮想プリンタ１２０が情報処理装置１３０に対して提供する抽象化された印刷装置機能が表示される。
【０１８４】
また、ＵＩ画面１１１０のように、印刷サポート選択部１１０４において選択可能な項目１１１１のうちＡＮＤ（論理積）がユーザ選択された場合、仮想プリンタ１２０に登録されている印刷装置のいずれでも設定可能な機能を設定する画面が表示される。一方、ＵＩ画面１１２０のように、印刷サポート選択部１１０４において選択可能な項目１１２１のうちＯＲ（論理和）がユーザ選択された場合、仮想プリンタ１２０に登録されている印刷装置のいずれかで設定可能な機能を設定する画面が表示される。
【０１８５】
ＵＩ画面１１１０では、部数設定部１１０３でユーザは任意の部数を設定できるが、オプション設定部１１０５の選択項目としてはカラー設定項目１１１２及び用紙サイズ設定項目１１１３の２つのみが表示される。ここで、カラー設定項目１１１２ではモノクロのみがユーザ選択可能であり、用紙サイズ設定項目１１１３では、Ａ４、ＬＥＧＡＬ、ＬＥＴＴＥＲのうちの１つがユーザ選択可能である。
【０１８６】
一方、ＵＩ画面１１２０では、部数設定部１１０３でユーザは任意の部数を設定できる。また、オプション設定部１１０５の選択項目としてカラー設定項目１１２２、用紙サイズ設定項目１１２３、両面印刷設定項目１１２４、ステイプル設定項目１１２５、及びパンチ設定項目１１２６が表示される。ここで、カラー設定項目１１２２では、モノクロ、カラーの１方をユーザ選択可能であり、用紙サイズ設定項目１１２３では、Ａ４、Ａ３、ＬＥＴＴＥＲ、ＬＥＧＡＬ、ＬＥＤＧＥＲの１つがユーザ選択可能である。また、両面印刷設定項目１１２４、ステイプル設定項目１１２５、及びパンチ設定項目１１２６では、いずれもＯＮ、ＯＦＦの１つがユーザ選択可能である。但し、両面印刷設定項目１１２４でＯＮが選択された場合は、ステイプル設定項目１１２５及びパンチ設定項目１１２６では、ＯＦＦに固定され設定値を変更することができないよう構成される。
【０１８７】
また、ＵＩ画面１１２０のオプション設定部１１０５の各選択項目に対しては、後述の図１２で示す禁則設定情報に応じた禁則設定が反映される。例えば、図１２では、両面設定が長辺綴じ、短辺綴じのいずれの設定であってもカラー設定がカラーの場合と競合する禁則設定である。よって、ＵＩ画面１１２０の両面印刷設定項目１１２４でＯＮが選択された場合は、カラー設定項目１１２２はモノクロが選択された状態でグレーアウトで表示され、設定値を変更することができないように構成される。
【０１８８】
また、図１１に示すように、禁則設定情報に関係し、他の印刷設定に制約を与える恐れのある設定については“＊”印が付けられる。これにより、“＊”印が付けられた設定が選択された場合、以降のオプション設定部１１０５の他の選択項目の選択操作に制限が生じうることをユーザに通知することができる。
【０１８９】
図１２は、図４のステップＳ４０１２で仮想プリンタ１２０において更新・保存される禁則設定情報の管理テーブルの一例を示す図である。図１２は、仮想プリンタ１２０の配下に印刷装置１１０ａ、１１０ｂが登録されている場合を例示した禁則設定情報の管理テーブルであり、図６（ａ）及び図６（ｂ）で示した設定可能な印刷設定に対して、禁則設定となる組み合わせを示す。図１２に示す例では、仮想プリンタ１２０の配下に印刷装置１１０ｃは登録されていないことを注記しておく。
【０１９０】
禁則設定情報１２０１はカラー設定がカラー、用紙サイズ設定がＡ３という組み合わせが禁則設定であり、禁則設定情報１２０２はカラー設定がカラー、用紙サイズ設定がＬＥＤＧＥＲという組み合わせが禁則設定であることを示す。また、禁則設定情報１２０３はカラー設定がカラー、両面設定が長辺綴じという組み合わせが禁則設定であることを示し、禁則設定情報１２０４はカラー設定がカラー、両面設定が短辺綴じという組み合わせが禁則設定であることを示す。
［第２の実施形態］
【０１９１】
第１の実施形態では、印刷装置を登録追加する際に仮想プリンタの禁則情報を生成するために全ての印刷装置に全ての論理和機能の組み合わせが実行可能かどうかを総当たりで検証する場合について説明した。一方、第２の実施形態では、第１の実施形態に加えて、各印刷装置への問い合わせ回数を削減する制御を追加している。また、配下の登録済み印刷装置を削除する場合における効率的な能力情報の更新方法についても本実施形態で説明する。なお、第２の実施形態におけるハードウェア構成は、第１の実施形態と同様であるため説明を省略する。
【０１９２】
ここでは、登録処理の説明のため、仮想プリンタ１２０の配下に印刷装置１１０ａ及び１１０ｂが既に登録済みであり、更に印刷装置１１０ｃが仮想プリンタ１２０の配下に追加で登録される場合を例に説明する。図１３は、上述の図４の登録処理で、仮想プリンタ１２０が印刷装置１１０ｃから登録要求を受信（ステップＳ４００２）後、印刷装置１１０ｃに登録結果を通知（ステップＳ４０１３）するまでの本実施形態に係る印刷装置登録処理の手順を説明する。ここで、図１３の処理は、仮想プリンタ１２０のＣＰＵ２２０１が制御して実行する。
【０１９３】
ステップＳ１３０１では、印刷装置１１０ｃから印刷装置の登録要求を受信すると、ステップＳ１３０２に進み、印刷装置１１０ｃに対して能力情報の要求を送信し、印刷装置１１０ｃからのその応答として能力情報を取得する。更に、仮想プリンタ１２０にその取得した印刷装置１１０ｃの能力情報を新規登録してストレージ２２０４に保存する。
【０１９４】
ステップＳ１３０３では、仮想プリンタ１２０に登録済みの印刷装置があるかどうかを判定する。登録済みの印刷装置がある場合にはステップＳ１３０４へと進む。登録済みの印刷装置が無い場合にはステップＳ１３１３へと進む。ステップＳ１３１３では、ステップＳ１３０２で取得した印刷装置１１０ｃの能力を論理積情報（ＡＮＤ能力）として更新、保存する。次にステップＳ１３１４では、ステップＳ１３０２で取得した印刷装置１１０ｃの能力を論理和情報（ＯＲ能力）として更新、保存して、本処理を終了する。
【０１９５】
一方、ステップＳ１３０４では、仮想プリンタ１２０に登録済みの印刷装置１１０の能力の論理積情報（ＡＮＤ能力）を更新してストレージ２２０４に保存する。
【０１９６】
ステップＳ１３０５では、仮想プリンタ１２０に登録済みの印刷装置１１０の能力の論理和情報（ＯＲ能力）を更新してストレージ２２０４に保存する。尚、更新前の登録済みの印刷装置１１０の能力の論理和情報（ＯＲ能力）はステップＳ１３０７で参照するため、ＲＡＭ２２０２に保持しておく。
【０１９７】
ステップＳ１３０６では、仮想プリンタ１２０に登録済みの印刷装置１１０の禁則設定情報を更新してストレージ２２０４に保存する禁則設定情報の更新・保存処理を実行する。この処理の詳細は図１４を用いて後述する。
【０１９８】
ステップＳ１３０７では、ステップＳ１３０５で更新した登録済みの印刷装置１１０の能力の論理和情報（ＯＲ能力）とＲＡＭ２２０２に保持された更新前の登録済みの印刷装置１１０の能力の論理和情報（ＯＲ能力）を比較する。次にその比較結果から、ステップＳ１３０５で追加された能力の論理和情報（ＯＲ能力）を取得する（追加設定取得手段）。また、そのうち、印刷装置１１０ｃに実行可能かどうか問い合わせ（検証要求）を行う印刷設定の組み合わせを決定する。
【０１９９】
ここでは説明のため、事前に印刷装置１０１ａ、１０１ｂが登録されている状態で、印刷装置１０１ｃを更に追加する要求を受け付けた場合の更新処理の具体例を説明する。図１８は、図１４の更新・保存処理の具体例を説明するための模式図である。
【０２００】
図１８において、テーブル１８０１はステップＳ１３０５で更新する前の印刷装置１１０ａと印刷装置１１０ｂが登録されている状態の能力の論理和情報（ＯＲ能力）に対応するテーブルを示す。縦軸と横軸で機能の組み合わせを示し、組み合わせて利用可能な印刷設定については○、互いに競合する印刷設定については×で示す。ここで、カラーはカラー設定におけるカラー印刷、モノクロはカラー設定におけるモノクロ印刷、Ａ４は用紙サイズ設定におけるＡ４、Ａ３は用紙サイズ設定におけるＡ３に対応する印刷設定を示す。また、両面は両面印刷設定における長辺及び短辺綴じ、ステイプルはフィニッシング設定におけるステイプル、パンチはフィニッシング設定におけるパンチに対応する印刷設定を示す。
【０２０１】
テーブル１８０２はステップＳ１３０５で更新した後の印刷装置１１０ｃを登録追加後の能力の論理和情報（ＯＲ能力）に対応するテーブルを示す。ステップＳ１３０２で取得した印刷装置１１０ｃの能力情報から印刷装置１１０ｃがテーブル１８０１には存在しなかったフィニッシング機能として、ステイプル及びパンチの能力を持つため、ステイプルとパンチが追加されている。ただし、ステップＳ１３０５で更新した時点では追加されたステイプル及びパンチとそのほかの機能との禁則設定は不明である。
【０２０２】
テーブル１８０３は後述するステップＳ１３１２まで処理が進んだ後の能力の論理和情報（ＯＲ能力）に対応するテーブルを示す。テーブル１８０３では図１４の禁則設定の更新・保存処理で、印刷装置１１０ｃを登録する以前は組み合わせて印刷設定として利用できなかった設定が、登録追加される印刷装置１１０ｃの能力によって利用可能となるかどうかを判定した結果が反映されている。具体的には、カラーとＡ３、カラーと両面、Ａ３と両面のそれぞれの組み合わせのうち、印刷装置１１０ｃが処理可能なカラーと両面の組み合わせについては禁則設定情報から削除する。さらに、後述するステップＳ１４０７〜Ｓ１４１１の処理により、印刷装置１１０ｃの能力によって追加されたステイプル及びパンチと、そのほかの機能とが組み合わせて印刷設定として利用可能かどうかが明確になっている。
【０２０３】
ここで図１３の説明に戻る。ステップＳ１３０８では、ステップＳ１３０７で取得した印刷設定の組み合わせについて、実行できるかどうかの検証要求を印刷装置１１０ｃに送信する。
【０２０４】
ステップＳ１３０９では、ステップＳ１３０８で検証要求が送信された印刷装置１１０ｃから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、印刷装置１１０ｃがステップＳ１３０７で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行可能であると判定した場合は、ステップＳ１３１１へと進む。実行不可能と判定した場合は、次のステップＳ１３１０へと進む。
【０２０５】
ステップＳ１３１０では、ステップＳ１３０７で決定された印刷設定の組み合わせを、仮想プリンタ１２０に投入するジョブに関する禁則設定情報としてストレージ２２０４に保存して登録する。
【０２０６】
ステップＳ１３１１では、ステップＳ１３０５によって追加された能力の論理和情報から決定しうるすべての印刷設定（ＯＲ能力）の組み合わせについての検証要求が完了したかどうかを判定する。完了していると判定した場合は、ステップＳ１３１２へと進む。完了していないと判定した場合は、ステップＳ１３０７へと戻って、ステップＳ１３０５によって追加された能力の論理和情報から決定しうるすべての印刷設定（ＯＲ能力）のうち、まだ検証要求を行っていない印刷設定の一つを検証対象に決定する。
【０２０７】
ステップＳ１３１２では、印刷装置１１０ａに印刷装置１１０ｃの登録結果を通知して本処理を終了する。
【０２０８】
次に図１４のフローチャートを用いて、図１３のステップＳ１３０６で実行される第２の実施形態に係る禁則設定の更新・保存処理の手順を説明する。ここで、図１４の処理は、仮想プリンタ１２０のＣＰＵ２２０１が制御して実行する。
【０２０９】
ステップＳ１４０１では、仮想プリンタ１２０で禁則設定となっている印刷設定のうち、ステップＳ１４０２以降での禁則設定の更新判定を行う印刷設定の組み合わせ（禁則ルール（Ｘ））を決定する。
【０２１０】
ステップＳ１４０２では、登録する印刷装置１１０ｃがステップＳ１４０１で決定した印刷設定を構成する機能をすべて有するかどうかを判定する。例えば図１２における禁則設定情報１２０１が保存されている場合、印刷装置１１０ｃがカラーとＡ３の機能をいずれも有するかどうかを判定する。ステップＳ１４０１で決定した印刷設定を構成する機能のすべてを有すると判定した場合にはステップＳ１４０３へと進む。ステップＳ１４０１で決定した印刷設定を構成する機能のすべては有しないと判定した場合にはステップＳ１４０７へと進む。
【０２１１】
次にステップＳ１４０３では、ステップＳ１４０１で決定した印刷設定の組み合わせについて、登録する印刷装置１１０ｃに実行可能かどうかの検証要求を送信する。
【０２１２】
ステップＳ１４０４では、ステップＳ１４０３で検証要求が送信された印刷装置１１０ｃから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、印刷装置１１０ｃがステップＳ１４０１で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行可能であると判定した場合は、ステップＳ１４０５へと進む。一方、実行可能でないと判定した場合はステップＳ１４０７へと進む。
【０２１３】
ステップＳ１４０７では、ステップＳ１４０１で決定された印刷設定の組み合わせ（禁則ルール（Ｘ））を仮想プリンタ１２０の印刷設定の禁則設定情報として残す。
【０２１４】
ステップＳ１４０５では、ステップＳ１４０１で決定した印刷設定の組み合わせ（禁則ルール（Ｘ））について、仮想プリンタ１２０の印刷設定の禁則設定情報から削除する。
【０２１５】
ステップＳ１４０６では、仮想プリンタ１２０の禁則設定となっているすべての印刷設定の組み合わせについて禁則設定の更新判定が完了したかどうかを判定する。完了していると判定した場合は、本処理を終了する。完了していないと判定した場合は、ステップＳ１４０１へと戻って、仮想プリンタ１２０の禁則設定となっているすべての印刷設定の組み合わせのうち、まだ禁則設定の更新判定を行っていない印刷設定の１つを判定対象に決定する。
【０２１６】
尚、本実施例では、ステップＳ１３０７で取得した印刷設定の組み合わせのすべてについてステップＳ１３０８で検証要求を行ったが、かかる構成に限定されない。例えば、図１４の処理の完了後の禁則設定情報に含まれる禁則設定には該当せず、ステップＳ１３０７で取得した印刷設定の組み合わせには含まれる印刷設定のみについてステップＳ１３０８で検証要求を行うようにしてもよい。
【０２１７】
次に図１５を用いて、第２の実施形態において仮想プリンタ１２０に能力情報を登録済みの印刷装置１１０を仮想プリンタ１２０から削除処理を行う際の、仮想プリンタ１２０及び印刷装置１１０の間のシーケンスについて説明する。以下、印刷装置１１０ａ、１１０ｂ、１１０ｃが本処理の開始前に仮想プリンタ１２０に能力情報が登録されている状態において、本処理で仮想プリンタ１２０から印刷装置１１０ａの能力情報が削除される場合を例として説明する。
【０２１８】
図１５においてまず、ステップＳ１５０１で、印刷装置１１０ａはユーザから仮想プリンタ１２０からの削除指示を操作部パネル２１０７を介して受けると、ステップＳ１５０２に進む。
【０２１９】
ステップＳ１５０２で、印刷装置１１０ａは、仮想プリンタ１２０に、印刷装置の登録削除要求（ＤｅｒｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅ）をＩＰＰ通信で送信する。
【０２２０】
ステップＳ１５０３で、仮想プリンタ１２０は、登録削除要求を受けると、印刷装置１１０ａを登録から削除する。また、印刷装置１１０ａ以外で本処理の開始前にすでに仮想プリンタ１２０に登録されている印刷装置１１０ｂ、１１０ｃのそれぞれの能力情報と、印刷装置１１０ｂ、１１０ｃでは組み合わせて印刷処理ができない設定を示す禁則設定情報を読み出す。
【０２２１】
ステップＳ１５０４で、仮想プリンタ１２０は、仮想プリンタ１２０に登録されている全ての印刷装置で処理可能な能力を示す論理積情報を生成し、保存する。具体的には、ステップＳ１５０３で読み出した印刷装置１１０ｂ、１１０ｃの能力情報からこの論理積情報は生成される。
【０２２２】
ステップＳ１５０５で、仮想プリンタ１２０は、仮想プリンタ１２０に登録されたいずれかの印刷装置で処理可能な能力を示す論理和情報を生成し、保存する。論理積情報と同様、具体的にはステップＳ１５０３で読み出した印刷装置１１０ｂ、１１０ｃの能力情報からこの論理和情報が生成される。
【０２２３】
ステップＳ１５０６では、ステップＳ１５０５で生成された論理和情報と、本処理で印刷装置１１０ａの登録が削除される前に印刷装置１１０ａ、１１０ｂ、１１０ｃの能力情報から生成・保存されていた元の論理和情報とを比較する。次にその比較結果から、元の論理和情報から削除された論理和情報を抽出する（削除設定取得手段）。削除された論理和情報のうち、仮想プリンタ１２０の印刷設定の禁則設定に含まれているものがあれば、禁則設定から削除する。また、その削除後の禁則設定に該当せず、且つステップＳ１５０５で生成された論理和情報に含まれる印刷設定の組み合わせを生成する。
【０２２４】
ステップＳ１５０７では、仮想プリンタ１２０は、登録が残る全ての印刷装置に対してステップＳ１５０６にて生成した印刷設定の組み合わせが処理可能かどうかの検証要求（ＶａｌｉｄａｔｅＪｏｂＲｅｑｕｅｓｔ）をＩＰＰ通信で送信する。すなわち、この検証要求は、登録削除した印刷装置１１０ａ以外の登録済みの印刷装置１１０ｂ、１１０ｃのそれぞれに送信される。
【０２２５】
ステップＳ１５０８では、印刷装置１１０ｂは、ステップＳ１５０７の仮想プリンタ１２０からの処理可能かどうかの検証要求（ＶａｌｉｄａｔｅＪｏｂＲｅｑｕｅｓｔ）に対して、処理可能かどうかの検証を行う。同様に、印刷装置１１０ｃにおいても、ステップＳ１５０７の仮想プリンタ１２０からの処理可能かどうかの検証要求に対して、処理可能かどうかの検証を行う。
【０２２６】
ステップＳ１５０９で、印刷装置１１０ｂは、ステップＳ１５０７の印刷設定の検証要求に対する応答として検証結果（ＶａｌｉｄａｔｅＪｏｂＲｅａｐｏｎｓｅ）をＩＰＰ通信で送信する。尚、ステップＳ１５０８で前述した通り、印刷装置１１０ｃおいてもステップＳ１５０７の印刷設定の検証要求に対する検証が行われるため、印刷装置１１０ｃからもその検証結果が送信される。
【０２２７】
ステップＳ１５１０で、仮想プリンタ１２０は、ステップＳ１５０９で印刷装置１１０ｂ、１１０ｃから受信した検証結果を元にステップＳ１５０６で生成された印刷設定の組み合わせが禁則設定となるかどうかを判断する。すなわち、ステップＳ１５０６で生成された印刷設定の組み合わせが、登録が残る全ての印刷装置１１０ｂ、１１０ｃにおいて印刷処理ができない設定を示す情報であるかを確認する。
【０２２８】
ステップＳ１５１１では、ステップＳ１５１０の確認結果に基づき、ステップＳ１５０６で生成された印刷設定の組み合わせが禁則設定となる場合には仮想プリンタ１２０の印刷設定の禁則設定情報（禁則ルール）として登録する。
【０２２９】
ステップＳ１５１２で、仮想プリンタ１２０は、印刷装置１１０ａの登録削除処理の結果（ＤｅｒｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅＲｅｓｐｏｎｓｅ）を印刷装置１１０ａにＩＰＰ通信で通知する。印刷装置１１０ａはその通知された内容を操作部パネル２１０７に表示することにより、ユーザに印刷装置１１０ａの仮想プリンタ１２０への登録削除が終了した旨を通知する。その後、本処理を終了する。
【０２３０】
次に図１６を用いて、図１５の登録削除処理で、仮想プリンタ１２０が印刷装置１１０ａから登録削除要求を受信（ステップＳ１５０２）後、印刷装置１１０ａにその処理結果を通知（ステップＳ１５１２）するまでの処理の手順を説明する。すなわち、本実施形態に係る印刷装置登録削除処理の手順を説明する。ここで、図１６の処理は、仮想プリンタ１２０のＣＰＵ２２０１が制御して実行する。
【０２３１】
ステップＳ１６０１では、登録削除要求を送信した印刷装置１１０ａが仮想プリンタ１２０から登録削除されたあとに登録が残る印刷装置が１台より多いかどうかを判定する。１台より多いと判定した場合はステップＳ１６０２へと進み、１台以下だと判定した場合はステップＳ１６１２へと進む。
【０２３２】
ステップＳ１６０２では、印刷装置１１０ａが登録削除された後に登録が残る複数の印刷装置１１０の能力によって、能力の論理積情報（ＡＮＤ能力）を更新してストレージ２２０４に保存する。
【０２３３】
ステップＳ１６０３では、印刷装置１１０ａが登録削除された後に登録が残る複数の印刷装置１１０の能力によって、能力の論理和情報（ＯＲ能力）を更新してストレージ２２０４に保存する。尚、更新前の登録済みの印刷装置１１０の能力の論理和情報（ＯＲ能力）はステップＳ１６０４で参照するため、ＲＡＭ２２０２に保持しておく。
【０２３４】
ステップＳ１６０４では、ステップＳ１６０３で更新された能力の論理和情報（ＯＲ能力）と、ＲＡＭ２２０２に保持された更新前の能力の論理和情報（ＯＲ能力）を比べ、元の能力の論理和情報（ＯＲ能力）から削除された印刷設定の組み合わせを抽出する。
【０２３５】
ステップＳ１６０５では、ステップＳ１６０４にて抽出された印刷設定の組み合わせのうち仮想プリンタ１２０の印刷設定の禁則設定情報に含まれるものがあるかどうかを判定する。含まれる場合にはステップＳ１６０６へと進み、含まれない場合にはステップＳ１６０７へと進む。
【０２３６】
ステップＳ１６０６では、ステップＳ１６０５で仮想プリンタ１２０の印刷設定の禁則設定情報に含まれるものがあると判定された場合、その含まれる印刷設定の組み合わせを、仮想プリンタ１２０の印刷設定の禁則設定情報から削除する。また、その削除後の禁則設定情報には該当しないが、ステップＳ１６０３で更新された能力の論理和情報には含まれる印刷設定の組み合わせを生成する。
【０２３７】
ステップＳ１６０７では、ステップＳ１６０６で生成された印刷設定の組み合わせのうち、後述のステップＳ１６０８の検証要求を行う印刷設定の組み合わせ（禁則ルール（Ｙ））を一つ決定する。
【０２３８】
ステップＳ１６０８では、ステップＳ１６０７で決定した印刷設定の組み合わせについて、印刷装置１１０に実行可能かどうかの検証要求を仮想プリンタ１２０に登録が残る印刷装置１１０のすべて（ここでは印刷装置１１０ｂ、１１０ｃとする）に送信する。
【０２３９】
ステップＳ１６０９では、ステップＳ１６０８で検証要求が送信された印刷装置１１０ｂ、１１０ｃのそれぞれから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、仮想プリンタ１２０に登録が残る印刷装置１１０のいずれかがステップＳ１６０７で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行不可能であると判定した場合は、次のステップＳ１６１０へと進む。一方、仮想プリンタ１２０に登録が残るいずれの印刷装置１１０も実行可能と判定した場合は、ステップＳ１６０７へと戻る。すなわち、ステップＳ１６０８で仮想プリンタ１２０に登録済みの印刷装置１１０に実行可能かどうか問い合わせ（検証要求）を行う印刷設定の組み合わせを、まだ検証要求していない印刷設定の組み合わせの一つに決定し、本処理を継続する。
【０２４０】
ステップＳ１６１０では、ステップＳ１６０７で決定した印刷設定の組み合わせを仮想プリンタ１２０の印刷設定の禁則設定情報として追加してストレージ２２０４に保存して登録する。
【０２４１】
ステップＳ１６１１では、ステップＳ１６０６で生成された印刷設定の組み合わせの全てについてステップＳ１６０８の検証を行ったかどうかを判定する。全ての検証済みであれば本処理を終了する。全ての検証が完了していなければステップＳ１６０７へと戻り本処理を継続する。
【０２４２】
次に、ステップＳ１６１２では登録削除要求を送信した印刷装置１１０ａが登録削除された後に登録が残る印刷装置１１０が１台かどうかを判定する。１台と判定した場合はステップＳ１６１３へと進み、０台と判定した場合はステップＳ１６１６へと進む。
【０２４３】
ステップＳ１６１３で、登録が残る１台の印刷装置１１０の能力を仮想プリンタ１２０の能力の論理積（ＡＮＤ能力）としてストレージ２２０４に保存して登録する。
【０２４４】
ステップＳ１６１４で、登録が残る１台の印刷装置１１０の能力を仮想プリンタ１２０の能力の論理和（ＯＲ能力）としてストレージ２２０４に保存して登録する。
【０２４５】
ステップＳ１６１５で、登録が残る一台の印刷装置１１０では印刷処理ができない印刷設定の組み合わせを仮想プリンタ１２０の印刷設定の禁則設定情報としてストレージ２２０４に保存して登録して本処理を終了する。
【０２４６】
ステップＳ１６１６では、仮想プリンタ１２０に登録が残る印刷装置１１０が無いことから仮想プリンタ１２０の能力を印刷能力なしに更新する。具体的には、プリンタ１２０の論理積（ＡＮＤ能力）、論理和（ＯＲ能力）の両方に印刷能力がないことを示す情報登録して本処理を終了する。
【０２４７】
図１７に印刷装置１１０及び仮想プリンタ１２０が相互にやり取りするＩＰＰ通信のメッセージ例を示す。
【０２４８】
図１７（ａ）に示すメッセージ１７１０は、印刷装置１１０が仮想プリンタ１２０に対して、登録削除要求（ＤｅｒｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅ）を送信した時のメッセージの例である。メッセージ１７１０は例えばステップＳ１５０２で送信される。
【０２４９】
メッセージ１７１０は、ＨＴＴＰレイヤのヘッダ情報と、ＨＴＴＰ上のＩＰＰメッセージデータ１７１１から構成される。ＩＰＰメッセージデータ１７１１の「ｉｐｐ：／／ＸＸＸＸＸ．ｌｏｃａｌ．：６３１／ｉｐｐ／ｐｒｉｎｔ」は印刷装置１１０ａ、１１０ｂ、１１０ｃのうち登録削除要求を行った印刷装置を示す識別子である。仮想プリンタ１２０に登録されている印刷装置１１０ａ、１１０ｂ、１１０ｃのうち、このＩＰＰメッセージデータ１７１１の識別子に当てはまる印刷装置以外に対して、仮想プリンタ１２０は、ステップＳ１５０７の印刷設定の検証要求を送信する。また、仮想プリンタ１２０は、この識別子に当てはまる印刷装置に対して、ステップＳ１５１２の登録削除処理の結果を通知する。
【０２５０】
図１７（ｂ）に示すメッセージ１７２０は、仮想プリンタ１２０が印刷装置１１０に対して、登録削除処理の結果（ＤｅｒｅｇｉｓｔｅｒＯｕｔｐｕｔＤｅｖｉｃｅＲｅｓｐｏｎｓｅ）を通知した時のメッセージの例である。メッセージ１７２０は例えばステップＳ１５１２で送信される。
【０２５１】
メッセージ１７２０は、仮想プリンタ１２０が印刷装置１１０に対して、登録削除を許可した時のメッセージの例である。メッセージ１７２０のうちＩＰＰメッセージデータ１７２１の「ｓｔａｔｕｓ−ｃｏｄｅ：  Ｓｕｃｃｅｓｓｆｕｌ（ｓｕｃｃｅｓｓｆｕｌ−ｏｋ）」は登録を許可した時の属性を示している。
【０２５２】
［その他の実施例］
尚、第１の実施形態では、情報処理装置１３０に印刷装置１１０ａ、１１０ｂ、１１０ｃで互いに競合する印刷設定の組み合わせを示す禁則設定情報により情報処理装置１３０上でのコンフリクトを解消する処理を行う場合を例示した。但し、本発明はこれに限定されない。例えば、ステップＳ５００９、Ｓ５０１０の処理を行わないようにしてもよい。この場合、ステップＳ５０１６の検証処理において、情報処理装置１３０から送信された印刷設定が印刷装置１１０ａ、１１０ｂ、１１０ｃで互いに競合する印刷設定の組み合わせかどうかの検証が行われることになる。
【０２５３】
本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、装置に供給することによっても、達成されることは言うまでもない。このとき、供給された装置の制御部を含むコンピュータ（またはＣＰＵやＭＰＵ）は、記憶媒体に格納されたプログラムコードを読み出し実行する。
【０２５４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２５５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０２５６】
また、上述のプログラムコードの指示に基づき、装置上で稼動しているＯＳ（基本システムやオペレーティングシステム）などが処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【０２５７】
更に、記憶媒体から読み出されたプログラムコードが、装置に挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれ、前述した実施例の機能が実現される場合も含まれることは言うまでもない。このとき、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行う。
【符号の説明】
【０２５８】
１００  ＬＡＮ
１０１  ＡＰ
１０３  インターネット
１１０  印刷装置
１２０  仮想プリンタ
１３０  情報処理装置
２１００、２２００、２３００  制御部
２１０６  操作部Ｉ／Ｆ
２１１２、２２０５、２３０９  通信部Ｉ／Ｆ
【図１】
2020047244.tif 000003
【図２】
2020047244.tif 000004
【図３Ａ】
2020047244.tif 000005
【図３Ｂ】
2020047244.tif 000006
【図３Ｃ】
2020047244.tif 000007
【図４】
2020047244.tif 000008
【図５】
2020047244.tif 000009
【図６】
2020047244.tif 000010
【図７】
2020047244.tif 000011
【図８】
2020047244.tif 000012
【図９】
2020047244.tif 000013
【図１０Ａ】
2020047244.tif 000014
【図１０Ｂ】
2020047244.tif 000015
【図１０Ｃ】
2020047244.tif 000016
【図１０Ｄ】
2020047244.tif 000017
【図１０Ｅ】
2020047244.tif 000018
【図１１】
2020047244.tif 000019
【図１２】
2020047244.tif 000020
【図１３】
2020047244.tif 000021
【図１４】
2020047244.tif 000022
【図１５】
2020047244.tif 000023
【図１６】
2020047244.tif 000024
【図１７】
2020047244.tif 000025
【図１８】
2020047244.tif 000026