(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-26
(45)【発行日】2024-05-09
(54)【発明の名称】サーバ装置及びその制御方法、並びにプログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20240430BHJP
B41J 29/38 20060101ALI20240430BHJP
【FI】
G06F3/12 355
G06F3/12 329
G06F3/12 367
G06F3/12 305
B41J29/38 202
(21)【出願番号】P 2019024683
(22)【出願日】2019-02-14
【審査請求日】2022-02-07
(31)【優先権主張番号】P 2018172539
(32)【優先日】2018-09-14
(33)【優先権主張国・地域又は機関】JP
【前置審査】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】竹尾 明紀
(72)【発明者】
【氏名】金田 健
(72)【発明者】
【氏名】柏木 正樹
(72)【発明者】
【氏名】宮嶋 純
(72)【発明者】
【氏名】今井 誠二郎
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2004-240589(JP,A)
【文献】特開2006-277197(JP,A)
【文献】特開2016-177432(JP,A)
【文献】米国特許出願公開第2013/0293924(US,A1)
【文献】特開2012-181762(JP,A)
【文献】特開2011-118475(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/12
B41J29/00-29/70
(57)【特許請求の範囲】
【請求項1】
複数の印刷装置と接続され、前記複数の印刷装置を1つの仮想プリンタとみなしてその情報を管理するサーバ装置であって、
前記複数の印刷装置の夫々の能力情報として、第1の設定項目の第1の設定値を含み、前記第1の設定値と競合しない第2の設定項目の第2の設定値を含まない第1の印刷装置の能力情報と、前記第1の設定値を含まず前記第2の設定値を含む第2の印刷装置の能力情報とを少なくとも記憶する記憶手段と、
前記第1の設定値と前記第2の設定値を前記仮想プリンタで設定可能な設定値として情報処理装置に通知する通知手段と、
前記第1の設定値と前記第2の設定値の両方を含む第3の印刷装置の能力情報が前記記憶手段に記憶されているかを判定する判定手段と、を有し、
前記通知手段は、前記第1の設定値と前記第2の設定値の両方を含む前記第3の印刷装置の能力情報が前記記憶手段に記憶されていないと前記判定手段により判定されたことに基づき、1つの印刷データに対して前記第1の設定値と前記第2の設定値の組み合わせを設定できないことを示す情報を前記情報処理装置に通知
し、前記第1の設定値と前記第2の設定値の両方を含む前記第3の印刷装置の能力情報が前記記憶手段に記憶されていることに基づき、前記情報を通知しないことを特徴とするサーバ装置。
【請求項2】
前記通知手段は、前記第1の設定値と前記第2の設定値を禁則設定情報として前記情報処理装置に通知することを特徴とする請求項1に記載のサーバ装置。
【請求項3】
前記サーバ装置は、前記情報処理装置から、前記情報処理装置のユーザに対応づけられ、且つ前記第1及び第2の設定項目の設定値が設定された前記印刷データを受信する受信手段をさらに有することを特徴とする請求項1または2に記載のサーバ装置。
【請求項4】
前記複数の印刷装置のうちの1つであって、前記ユーザから受け付けた印刷指示に対応する印刷データの取得要求を前記サーバ装置に送信した印刷装置に、前記受信手段で受信した印刷データを送信する送信手段と、をさらに有することを特徴とする請求項3に記載のサーバ装置。
【請求項5】
前記通知手段は、前記記憶手段が前記第1の設定値と前記第2の設定値の両方を含む前記第3の印刷装置の能力情報を記憶している場合、前記1つの印刷データに対して前記第1の設定値と前記第2の設定値の組み合わせを設定できないことを示す前記情報を前記情報処理装置に通知しないことを特徴とする請求項1乃至4のいずれか一項に記載のサーバ装置。
【請求項6】
前記通知手段は、前記記憶手段に記憶された複数の印刷装置の夫々の能力情報の論理和を、前記情報処理装置において設定可能な設定値として前記情報処理装置に通知することを特徴とする請求項1乃至5のいずれか一項に記載のサーバ装置。
【請求項7】
複数の印刷装置と接続され、前記複数の印刷装置を1つの仮想プリンタとみなしてその情報を管理するサーバ装置の制御方法であって、
前記複数の印刷装置の夫々の能力情報として、第1の設定項目の第1の設定値を含み、前記第1の設定値と競合しない第2の設定項目の第2の設定値を含まない第1の印刷装置の能力情報と、前記第1の設定値を含まず前記第2の設定値を含む第2の印刷装置の能力情報とを少なくとも記憶手段に記憶する記憶工程と、
前記第1の設定値と前記第2の設定値を前記仮想プリンタで設定可能な設定値として情報処理装置に通知する通知工程と、
前記記憶手段に前記第1の設定値と前記第2の設定値の両方を含む第3の印刷装置の能力情報が記憶されているかを判定する判定工程と、
前記記憶手段に前記第1の設定値と前記第2の設定値の両方を含む前記第3の印刷装置の能力情報が記憶されていないと前記判定工程において判定されたことに基づき、1つの印刷データに対して前記第1の設定値と前記第2の設定値の組み合わせを設定できないことを示す情報を前記情報処理装置に通知
し、前記第1の設定値と前記第2の設定値の両方を含む前記第3の印刷装置の能力情報が前記記憶手段に記憶されていることに基づき、前記情報を通知しない他の通知工程と、
を有することを特徴とするサーバ装置の制御方法。
【請求項8】
請求項
7に記載のサーバ装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ装置及びその制御方法、並びにプログラムに関し、特に、複数の印刷装置の可用性を高めるサーバ装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【0002】
情報処理装置において、個々の印刷装置のために設計されたプリンタドライバ(又は印刷アプリケーション)を用いて、個々の印刷装置で印刷を行うための印刷データを生成することが知られている。
【0003】
また、特許文献1には、複数の印刷装置の可用性を高めるため、これらを一つの仮想プリンタ(グループプリンタ)とみなして利用する方法がある。具体的には、情報処理装置にインストールされたグループプリンタドライバが、複数の印刷装置(メンバプリンタドライバ)の能力を取得し、メンバプリンタドライバ共通の印刷設定画面を表示する方法が開示されている。また、特許文献1には、メンバプリンタドライバの1つに対して印刷に適用すべき印刷設定に基づいて印刷ジョブを処理できるかどうかをチェックし、印刷ジョブを送信する仕組みが開示されている。
【0004】
ところで、近年、個々の印刷装置のために設計された印刷ドライバ(又は印刷アプリケーション)を介さずに印刷データを生成するケースが増えている。例えば、近年の印刷アプリケーションやクラウド上のプリントサービスでは、IPP規格(IPP:Internet Printing Protocol)の印刷データを生成して印刷装置に送信する。
【0005】
また、近年、スマートフォンや、PCなどのユーザ端末が常時ネットワークに接続されてきている。これを受け、LTEや5Gネットワークといった公衆網と、クラウドサーバを経由して印刷を行うための仕組みが考えられている。例えば、情報処理装置から印刷データを直接印刷装置に送信するのではなく、一度印刷制御装置としてのクラウドサーバに送信し、クラウドサーバ上に印刷データを溜めておく。そして、印刷装置からクラウドサーバに要求を出し、クラウドサーバに溜められた印刷データをPULLして、印刷を行うプリントサービスシステムが考えられている。
【0006】
更に、上述のクラウドサーバを、複数の印刷装置を関連付けた一つの仮想プリンタとして利用することが考えられる。この場合、ユーザの利便性を鑑み、複数の印刷装置の能力に基づく論理和あるいは論理積の能力を利用させることが考えられる。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、クラウドサーバを論理和で定義された印刷能力を有する仮想プリンタとして利用する場合、以下の問題が生じる恐れがある。例えば、複数の印刷装置の能力の論理和を基準に印刷設定が各印刷装置の能力では実行できない印刷設定であるか否かをチェックする(以降、コンフリクトチェックと称する)場合、コンフリクトチェックを行う前にユーザに所望の印刷設定をさせる必要がある。一方で、コンフリクトチェックの結果、ユーザが所望する印刷設定に無効な設定が含まれている場合、ユーザに再度印刷設定をさせる必要があるという問題が生じる。また、コンフリクトチェックを行う間、ユーザは印刷データが生成されるのを待たなければならないという問題も生じる。いずれの問題が生じてもユーザの利便性を低下させることとなる。
【0009】
本発明は上述の問題点の少なくとも1つを鑑みなされたものである。本発明の1つの側面は、複数の印刷装置を一つの仮想プリンタとして利用する際のユーザの利便性を向上させることができるサーバ装置及びその制御方法、並びにプログラムを提供することを目的の1つとする。また、本発明の1つの側面は、複数の印刷装置を一つの仮想プリンタとして利用する際において、印刷が実行できない設定であることをユーザに通知するタイミングを早める仕組みを提供することを目的の1つとする。また、本発明のもう1つの側面は、仮想プリンタに対応づけされる複数のプリンタの少なくとも1台のプリンタで実行することができる設定値の組合せは、禁則情報として扱われないため、たとえば、ユーザへの警告の回数を減らすことができる仕組みを提供することを目的の1つとする。
【課題を解決するための手段】
【0010】
本発明の請求項1に係るサーバ装置は、複数の印刷装置と接続され、前記複数の印刷装置を1つの仮想プリンタとみなしてその情報を管理するサーバ装置であって、前記複数の印刷装置の夫々の能力情報として、第1の設定項目の第1の設定値を含み、前記第1の設定値と競合しない第2の設定項目の第2の設定値を含まない第1の印刷装置の能力情報と、前記第1の設定値を含まず前記第2の設定値を含む第2の印刷装置の能力情報とを少なくとも記憶する記憶手段と、前記第1の設定値と前記第2の設定値を前記仮想プリンタで設定可能な設定値として情報処理装置に通知する通知手段と、前記第1の設定値と前記第2の設定値の両方を含む第3の印刷装置の能力情報が前記記憶手段に記憶されているかを判定する判定手段と、を有し、前記通知手段は、前記第1の設定値と前記第2の設定値の両方を含む前記第3の印刷装置の能力情報が前記記憶手段に記憶されていないと前記判定手段により判定されたことに基づき、1つの印刷データに対して前記第1の設定値と前記第2の設定値の組み合わせを設定できないことを示す情報を前記情報処理装置に通知し、前記第1の設定値と前記第2の設定値の両方を含む前記第3の印刷装置の能力情報が前記記憶手段に記憶されていることに基づき、前記情報を通知しないことを特徴とする。
【発明の効果】
【0012】
本発明の1つの側面によれば、複数の印刷装置を一つの仮想プリンタとして利用する際のユーザの利便性を向上させることができる。また、本発明の1つの側面によれば、複数の印刷装置を一つの仮想プリンタとして利用する際であっても、印刷が実行できない設定であることをユーザに通知するタイミングを早めることができる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態に係るプリントサービスシステムの構成を示す図である。
【
図2】
図1における印刷装置、情報処理装置、及び仮想プリンタの夫々のハードウェア構成を示すブロック図である。
【
図3A】印刷装置のソフトウェア構成を示す機能ブロック図である。
【
図3B】仮想プリンタのソフトウェア構成を示す機能ブロック図である。
【
図3C】情報処理装置のソフトウェア構成を示す機能ブロック図である。
【
図4】第1の実施形態において印刷装置を仮想プリンタに登録する際の、仮想プリンタ及び印刷装置の間のシーケンス図である。
【
図5】情報処理装置から仮想プリンタに印刷ジョブを送信して印刷する際の、情報処理装置、仮想プリンタ、及び印刷装置の間のシーケンス図である。
【
図6】各印刷装置の処理可能な印刷設定に関する能力を説明するための図である。
【
図7】第1の実施形態に係る、仮想プリンタにおける印刷装置登録処理の手順を示すフローチャートである。
【
図8】第1の実施形態に係る、仮想プリンタにおける禁則設定情報の更新・保存処理の手順を示すフローチャートである。
【
図9】
図5のステップS5002~S5006で実行される印刷装置能力取得処理の手順を示すフローチャートである。
【
図10A】
図4のステップS4002の登録要求のメッセージ及び
図4のステップS4013の登録結果通知のメッセージの例を説明するための図である。
【
図10B】
図4のステップS4003の能力情報要求のメッセージ及び
図4のステップS4004の能力応答のメッセージの例を説明するための図である。
【
図10C】
図5のステップS5002の印刷装置能力の論理積情報要求のメッセージ及び
図5のステップS5004の印刷装置能力の論理積情報応答のメッセージの例を説明するための図である。
【
図10D】
図5のステップS5006の印刷装置能力の論理和情報要求のメッセージ及び
図5のステップS5008の印刷装置能力の論理和情報応答のメッセージの例を説明するための図である。
【
図10E】
図5のステップS5009の印刷装置の禁則設定情報要求のメッセージ及び
図5のステップS5011の印刷装置能力の論理和情報応答のメッセージの例を説明するための図である。
【
図11】情報処理装置の印刷設定画面の一例を示す図である。
【
図12】
図4のステップS4012でクライアントサーバに登録される禁則設定情報の管理テーブルの一例を示す図である。
【
図13】第2の実施形態に係る、仮想プリンタにおける印刷装置登録処理の手順を示すフローチャートである。
【
図14】第2の実施形態に係る、仮想プリンタにおける禁則設定情報の更新・保存処理の手順を示すフローチャートである。
【
図15】第2の実施形態において印刷装置を仮想プリンタから登録削除する際の、仮想プリンタ及び印刷装置の間のシーケンス図である。
【
図16】第2の実施形態に係る、仮想プリンタにおける印刷装置登録削除処理の手順を示すフローチャートである。
【
図17】
図15のステップS1502の印刷装置の登録削除要求のメッセージの及び
図15のステップS1512の登録削除処理の通知のメッセージの例を説明するための図である。
【
図18】
図14の更新・保存処理の具体例を説明するための模式図である。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
[第1の実施形態]
【0015】
図1は、第1の実施形態に係るプリントサービスシステムの構成を説明する図である。
【0016】
図1において、プリントサービスシステム1は、印刷装置110a、110b、110c、仮想プリンタ(印刷制御装置)120、タブレット130a、スマートフォン130b、及びPC130c(以下、総称する場合、情報処理装置130と呼ぶ。)を備える。
【0017】
より具体的には、LAN100(Local Area Network)上に、印刷装置110a、110b、110c及びAP(アクセスポイント)101が互いに通信可能に接続されている。更にインターネット103を経由して、印刷装置110及び情報処理装置130はクラウドサービスを提供するクラウドサーバからなる仮想プリンタ120と通信が可能である。
【0018】
印刷装置110a、110b、110cは夫々の印刷装置能力が異なっている。今後これらを区別したい場合には印刷装置110a、110b、110cと記載し、区別しない場合には印刷装置110として記載する。
【0019】
ここで情報処理装置130は、AP101を介してLAN100上の印刷装置110と互いに通信できる。
【0020】
印刷装置110は情報処理装置130からの印刷ジョブ依頼を受けると印刷処理を行う。
【0021】
本実施例では、プリントサービスシステムの一例として上記の構成例で説明するが、本発明はこれに限定されるものではい。すなわち、少なくとも1つ以上の情報処理装置と印刷装置能力が異なる少なくとも2つ以上の印刷装置とがネットワークを介して通信可能に接続されていればよい。またネットワークは無線であっても有線であっても良い。
【0022】
本実施例のプリントサービスシステム1では、情報処理装置130から印刷データを直接印刷装置110に渡すのではなく、一度インターネット103を経由して、仮想プリンタ120に送信し、仮想プリンタ120上に印刷データを溜めておく。そして、印刷装置110上から仮想プリンタ120上の印刷データをPULLし、印刷を行う形態となっている。
【0023】
次に、印刷装置110について詳述する。印刷装置110はシート(記録媒体)に画像を印刷する印刷機能を有する。印刷装置110は、ネットワークを介して受信した印刷データに基づく印刷処理を実行できる。
【0024】
図2(a)は、
図1における印刷装置110のハードウェア構成を示すブロック図である。ここで、印刷装置110はシートに画像を印刷する印刷機能のみを有する場合を例に説明するが、印刷装置110がスキャナ機能やFAX機能を含むMFP(Multi Function Peripheral)等の印刷装置であってもよい。
【0025】
図2(a)において、印刷装置110は、制御部2100、操作部パネル2107、印刷部2109、及びシート処理部2111を備える。
【0026】
制御部2100は、CPU(Central Processing Unit)2101、ROM(Read Only Memory)2102、及びRAM(Random Access Memory)2103を備える。更に、制御部2100は、ストレージ2104、画像処理部2105、操作部インタフェース(I/F)2106、印刷部I/F2108、シート処理部I/F2110、及び通信部I/F2112を備え、印刷装置110全体を制御する。
【0027】
CPU2101は、ROM2102又はストレージ2104に記憶されたプログラムをRAM2103に展開し、それを実行して印刷制御や読取制御などの各種制御を行う。
【0028】
ROM2102は、CPU2101で実行可能な制御プログラムやブートプログラム等を格納する。
【0029】
RAM2103は、CPU2101の主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。
【0030】
ストレージ2104は、印刷データ、画像データ、各種プログラム、及び各種設定情報を記憶する。本実施例ではストレージ2104としてHDD(Hard Disk Drive)等の補助記憶装置を想定しているが、SSD(Solid State Drive)などの不揮発性メモリを用いても良い。
【0031】
尚、本実施例に係る印刷装置110では、1つのCPU2101が1つのメモリ(RAM2103)を用いて後述するフローチャートに示す各処理を実行するが、他の様態であっても構わない。例えば複数のCPU、RAM、ROM、及びストレージを協働させて、後述するフローチャートに示す各処理を実行しても良い。またASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェア回路を用いて一部の処理を実行するようにしてもよい。
【0032】
操作部I/F2106は、操作部パネル2107と制御部2100とを接続する。操作部パネル2107には、タッチパネル機能を有する表示部や各種ハードキーなどが備えられ、情報を表示する表示部や、ユーザの指示を受け付ける受付部として機能する。
【0033】
印刷部I/F2108は、印刷部(プリンタエンジン)2109と制御部2100とを接続する。情報処理装置130から受信した印刷ジョブを解析して生成された画像データは、印刷部I/F2108を介して制御部2100から印刷部2109に転送される。印刷部2109は制御部2100を介して制御コマンド及び印刷すべき印刷ジョブを受信し、その印刷ジョブに基づいて給紙カセット(不図示)から給送されたシートに画像を印刷する。尚、印刷部2109の印刷方式は、電子写真方式であってもよいし、インクジェット方式であってもよい。また熱転写方式などその他の印刷方式を適用することもできる。
【0034】
通信部I/F2112は、LAN100を介して情報処理装置130と接続すると共に、インターネット103を経由してクラウドサービスとしての仮想プリンタ120と接続する。これにより、通信部I/F2112は、仮想プリンタ120への各種情報の送信や、LAN100上の情報処理装置130からの印刷ジョブやその印刷設定の仮想プリンタ120経由での受信を行う。
【0035】
画像処理部2105は、クラウドサービスとしての仮想プリンタ120を介して受信した情報処理装置130からの印刷ジョブを展開して印刷に用いる画像データを生成するRIP(Raster Image Processor)機能を備える。また画像処理部2105は、そのRIP機能により生成された画像データの解像度変換や補正処理を行うこともできる。尚、本実施例では、画像処理部2105がハードウェア回路(ASIC又はFPGAなど)で実現されることを想定しているが、これに限定されるものではない。例えば、印刷装置110が画像処理用途向けのプロセッサを更に備え、そのプロセッサが画像処理プログラムを実行することにより、画像処理や、印刷データへの展開処理を実現してもよい。この場合、このプロセッサとCPU2101とが協働して後述するフローチャートを実現するものとする。更には、画像処理を行うためのプログラムをCPU2101が実行し、画像処理や印刷データの展開処理を行うように構成することもできる。また、これらのいずれかの組み合わせにより画像処理を行うようにしてもよい。
【0036】
シート処理部I/F2110は、制御部2100とシート処理部2111とを接続する。シート処理部2111は、制御部2100から制御コマンドを受信し、その制御コマンドに従って印刷部2109により印刷されたシートに後処理を施す。
【0037】
図3Aは、印刷装置110のソフトウェア構成を示す機能ブロック図である。尚、この
図3Aに示す印刷装置110に関する各機能ブロックは、本実施例では、CPU2101がRAM2103に展開したプログラムを実行することにより達成される。
【0038】
印刷装置110は、UI制御部3101、印刷ジョブ生成部3102、データ受信制御部3104、PDL解析部3105、ジョブ制御部3106、RIP制御部3112、エンジン制御部3113、及びIPP-Proxy制御部3117を備える。
【0039】
IPP-Proxy制御部3117は、プリンタ能力通知部3116及びジョブ設定保存・検証部3103を有する。
【0040】
ジョブ制御部3106は、ジョブ属性保存部3107と、ページ保存部3109及び印刷制御部3111を有するページ制御部3108とを備える。また、ページ保存部3109は、ページ属性保存部3110を備える。
【0041】
プリンタ能力通知部3116は仮想プリンタ120から印刷装置110への印刷装置能力に関する問い合わせを受けて、自身の印刷装置能力に関する情報を通知する。この情報は、部数対応の可否(copies-supported)、サポートするフォーマット(document-format-supported)、最適給紙方向に関する情報(feed-orientation-supported)等からなる。
【0042】
仮想プリンタ120は、印刷装置能力に関する情報を印刷装置110から取得すると、その印刷装置110の印刷装置能力に合わせた印刷ジョブを生成し印刷装置110へ送信する。この印刷データの受信もIPP-Proxy制御部3117で行われる。
【0043】
印刷ジョブ生成部3102は、仮想プリンタ120からの印刷ジョブをIPP-Proxy制御部3117から受信すると、その印刷ジョブに含まれる描画データから新規ジョブを生成し、これをジョブ制御部3106に送信する。
【0044】
ジョブ設定保存・検証部3103は、仮想プリンタ120からの印刷ジョブに含まれるIPP属性で指定されたジョブ属性を検証する属性処理を行い、その処理結果をジョブ属性保存部3107に書き込む。この書き込まれる処理結果としては、印刷部数、フィニッシング、PDLフォーマット情報などが例示される。IPP-Proxy制御部3117は、上記ジョブ設定保存・検証部3103における属性処理と並行して、仮想プリンタ120からの印刷ジョブに含まれる描画データを印刷ジョブ生成部3102を介してデータ受信制御部3104に転送、一時保存する。データ受信制御部3104は、印刷ジョブ生成部3102が受信した印刷ジョブに含まれる描画データのバッファ領域であり、印刷ジョブ毎にストレージ2104に保存する。
【0045】
PDL解析部3105は、PWG-Rasterフォーマットに対応し、ジョブ制御部3106からの指示を受けてストレージ2104に印刷ジョブ毎に保存される描画データの1つをデータ受信制御部3104に要求する。その後、この要求により取得した描画データのページ解析処理を行う。ページ制御部3108はPDL解析部3105で行われたページ解析処理の結果としてのページデータのうち、画像データをページ保存部3109に、ページ属性情報をページ属性保存部3110に保存する。
【0046】
ページ保存部3109は、保存された画像データをページ制御部3108の指示を受けてRIP制御部3112に送信しRIP処理を行なわせる。RIP制御部3112はRIP済の画像データを生成するとこれをページ保存部3109に保存する。
【0047】
ページ制御部3108は、PDL解析部3105のページ解析処理、RIP制御部3112のRIP処理、印刷制御部3111の印刷制御処理を制御する。印刷制御部3111は、ページ保存部3109からRIP済みの画像データを取得し、RGBに色分解してエンジン制御部3113に転送する。エンジン制御部3113は、印刷制御部3111からページ単位でRGB別の画像データを受け取り、印刷制御部3111を制御して各ページの印刷処理を行う。UI制御部3101は、処理中の印刷ジョブの状態に関する情報をジョブ制御部3106から取得し、印刷ジョブの処理状況をUI画面に表示する。
【0048】
図2(b)は、クラウドサービスの1つであるクラウドプリンタ機能を提供する、
図1における仮想プリンタ120のハードウェア構成を示すブロック図である。
【0049】
図2(b)において、仮想プリンタ120は、CPU2201、RAM2202、ROM2203、ストレージ2204、及び通信部I/F2205を含む制御部2200を備え、仮想プリンタ120全体を制御する。
【0050】
CPU2201は、ROM2203又はストレージ2204に記憶されたプログラムをRAM2202に展開し、それを実行して印刷データの生成、印刷ジョブの転送などの各種制御を行う。
【0051】
ROM2203は、CPU2201で実行可能な制御プログラムやブートプログラム等を格納する。
【0052】
RAM2202は、CPU2201の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。
【0053】
ストレージ2204は、OS、印刷サービス、クラウド上で係留する印刷ジョブ、及び各種クラウドサービスの設定情報を記憶する。本実施例ではストレージ2204としてHDD等の補助記憶装置を想定しているが、SSDなどの不揮発性メモリを用いても良い。
【0054】
通信部I/F2205は、LAN2210を経由してインターネット103に接続され、
図1に示すようにインターネット103と接続するLAN100を介して情報処理装置130や印刷装置110と印刷ジョブや情報を送受信する。
【0055】
図3Bは、仮想プリンタ120のソフトウェア構成を示す機能ブロック図である。尚、
図3Bに示す仮想プリンタ120に関する各機能ブロックはCPU2201がRAM2202に展開したプログラムを実行することにより達成される。
【0056】
仮想プリンタ120は、仮想プリンタ管理部3210、ジョブ管理部3220、及びデータ通信制御部3259を備える。
【0057】
仮想プリンタ管理部3210は、クライアントDB3213、クライアント情報取得部3211、プリンタDB3214、及びプリンタ情報取得部3212を備える。更に、仮想プリンタ管理部3210は、仮想プリンタ禁則生成部3217、仮想プリンタ能力生成部3216、及びイベント通知制御部3218を備える。
【0058】
クライアント情報取得部3211は、IPPプロトコルで受信したクライアント情報をクライアントDB3213に保存する。
【0059】
プリンタ情報取得部3212は、IPPプロトコルで受信したプリンタ情報をプリンタDB3214に保存する。
【0060】
仮想プリンタ禁則生成部3217は、印刷装置110a、110b、110cで互いに競合する印刷設定の組み合わせを示す情報(以降、禁則設定情報とも呼ぶ)を生成する。更に、この生成された情報とクライアントとしての情報処理装置130がサポートする機能を組み合わせて仮想プリンタ120としての禁則設定情報を生成する。
【0061】
仮想プリンタ能力生成部3216は、仮想プリンタ禁則生成部3217で生成された禁則設定情報だけでなく、印刷装置110a、110b、110cの夫々の能力情報を組み合わせて仮想プリンタの能力情報を生成する。
【0062】
イベント通知制御部3218は、仮想プリンタの能力更新や印刷装置110のステータス変更時にそれを通知する。
【0063】
仮想プリンタ能力生成部3216は、プリンタDB3214に保存された印刷装置110の能力情報から仮想プリンタ120の能力情報を生成し、情報処理装置130へ通知する。
【0064】
イベント通知制御部3218は、仮想プリンタ能力生成部3216が仮想プリンタ120の能力情報を再構成した場合に、情報処理装置130へ仮想プリンタ120の能力情報が更新された旨を通知する。通知を受けた情報処理装置130は仮想プリンタ120に対して、仮想プリンタ120の能力情報を再要求する。
【0065】
ジョブ管理部3220は、ホストジョブ制御部3230、ホストジョブ保存部3240、印刷ジョブ制御部3250から構成される。
【0066】
また、ホストジョブ制御部3230は、ホストジョブ生成部3231、及びホストデータ受信制御部3232を備え、情報処理装置130からの印刷ジョブを処理する。また、印刷ジョブ制御部3250は、ジョブ変換部3260を備える。
【0067】
ホストジョブ生成部3231は、ホストデータ受信制御部3232と連携しIPPプロトコルで情報処理装置130から受信したジョブをIPPの印刷設定情報とPDL言語で記述された印刷データに分離してホストジョブ保存部3240に保存する。
【0068】
印刷ジョブ制御部3250は、保持したジョブを仮想プリンタ120に出力先として登録した印刷装置110a、110b、110cのうちの1つから印刷する。この際、IPPプロトコルで印刷装置110からの印刷ジョブ送信要求を受けて、ホストジョブ保存部3240に保存されたジョブと印刷装置110が処理可能なデータ形式を比較し、ジョブ変換部3260においてデータ形式の変換が必要か判断する。
【0069】
ジョブ変換部3260は、ジョブ属性解析部3261、ジョブ属性変換部3262、ページ属性解析部3263、ページ属性変換部3264、PDL解析部3265、PDL生成部3266、IPP情報生成部3267、及び変換ジョブ保存部3268を備える。
【0070】
ジョブ変換部3260での判断の結果データ形式の変換が必要な場合は、PDL解析部3265がジョブ属性解析部3261経由で取得したIPPのジョブ属性やドキュメント属性に基づきページデータの解析を行う。その後、PDL生成部3266が印刷データ要求があった印刷装置110に適した画像形式へ変換する。新しい画像形式のページ属性は元データのページ属性と変換後のページ属性を組み合わせて作成する。元データのページ属性についてはページ属性解析部3263が取得し、変換後のページ属性はページ属性変換部3264が新旧のページ属性を組み合わせて作成する。また変換後のデータのジョブ属性はジョブ属性変換部3262が旧ジョブ属性と新しいページ属性を組み合わせて作成する。最後にIPP情報生成部3267がIPP形式のジョブ属性とドキュメント属性に変換する。またPDL生成部3266)で変換したページデータは変換ジョブ保存部3268に保存する。IPPのジョブ属性・ドキュメント属性、及び変換後のPDLデータがすべて変換ジョブ保存部3268に用意できると、印刷装置110からの印刷データ要求に対して、印刷データが送信される。
【0071】
図2(c)は、
図1における情報処理装置130のハードウェア構成を示すブロック図である。
【0072】
図2(c)において、情報処理装置130は、制御部2300、タッチパネル2306、及びマウスキーボード2308を備える。
【0073】
制御部2300は、CPU2301、RAM2302、ストレージ2303、ROM2304、操作部I/F2305、無線操作部I/F2307、通信部I/F2309を含み、情報処理装置130全体を制御する。
【0074】
CPU2301は、ROM2304又はストレージ2303に記憶されたプログラムをRAM2302に展開し、それを実行して印刷設定画面の制御や印刷データの生成、印刷ジョブの転送などの各種制御を行う。
【0075】
ROM2304は、CPU2301で実行可能な制御プログラムやブートプログラム等を格納する。
【0076】
RAM2302は、CPU2301の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。
【0077】
ストレージ2303は、OS、印刷アプリケーション、OS印刷フレームワーク、OS印刷フレームワークが生成する印刷ジョブ、及び各種設定情報を記憶する。本実施例ではストレージ2303としてHDD等の補助記憶装置を想定しているが、SSDなどの不揮発性メモリを用いても良い。
【0078】
タッチパネル2306は、操作部I/F2305に接続されており、各アプリケーションや印刷設定画面に対する画面描画だけでなく、ユーザのタッチ操作をCPU2301上で動作するアプリケーションへ通知する。
【0079】
マウスキーボード2308は、Bluetooth(登録商標)等からなる無線操作部I/F2307に接続されており、ユーザ操作をCPU2301上で動作するアプリケーションへ通知する。
【0080】
通信部I/F2309は、LAN100を介して印刷装置110と接続すると共に、インターネット103を経由して仮想プリンタ120と接続する。これにより、通信部I/F2309は、印刷装置110及び仮想プリンタ120と画像データや情報を送受信する。
【0081】
図3Cは、情報処理装置130のソフトウェア構成を示す機能ブロック図である。尚、
図3Cに示す情報処理装置130に関する各機能ブロックは、CPU2301がRAM2302に展開したプログラムを実行することにより達成される。
【0082】
情報処理装置130は、アプリケーション3301、OS印刷フレームワーク3302、データ通信制御部3310、印刷画面制御部3311、及びOS描画エンジン3314を備える。
【0083】
アプリケーション3301は、情報処理装置130上にユーザがインストールする任意のアプリケーションであり、ワープロ、表計算、データベース、メール、ウェブブラウザなどの一般的なアプリケーションである。
【0084】
OS印刷フレームワーク3302は、IPPクライアント制御部3303、及びプリントスプーラー3309から構成される。また、IPPクライアント制御部3303は、プリンタ情報管理部3304、及び印刷ジョブ生成部3305から構成される。
【0085】
プリンタ情報管理部3304は、データ通信制御部3310を通じて仮想プリンタ120に問い合わせを行い、仮想プリンタ120の能力情報を取得・保存する。取得情報は前述の部数対応の可否の他、印刷装置110のフィニッシング能力、画像の最適な生成向き(feed-orientation-supported)などであり、これらの情報は印刷ジョブ生成部3305が参照する。
【0086】
印刷画面制御部3311は、アプリケーション3301の呼び出しに応じて印刷設定画面を表示する。ユーザは印刷設定画面から印刷設定を行い印刷する。印刷設定画面に表示する印刷設定項目は仮想プリンタ120の能力情報により提供可能な範囲内で設定される。印刷ジョブに適用すべき印刷設定は印刷画面制御部3311が備える設定管理部3312に一時的に記憶される。
【0087】
印刷ジョブ生成部3305は、ジョブ属性生成部3306、ページ生成部3307、及びPDL生成部3308から構成され、印刷画面制御部3311の指示を受けて印刷ジョブを生成する。
【0088】
ジョブ属性生成部3306は、印刷設定画面で行われた印刷設定の項目からIPPジョブのジョブ属性とドキュメント属性を生成する。
【0089】
ページ生成部3307は、PDL生成部3308と連携して、アプリケーション3301がOS描画エンジン3314を通して生成した描画データを仮想プリンタ120のサポートするPDLデータに変換して仮想プリンタ120へ送信する。この時、仮想プリンタ120のサポートするPDL形式や画像向きはプリンタ情報管理部3304から取得し、指定されたPDL形式・画像向きに従ってデータを生成する。
【0090】
OS描画エンジン3314は、アプリケーション3301の要求に従い、印刷ページデータをOS標準の描画フォーマットで描画し、OS印刷フレームワーク3302のページ生成部3307に渡す。
【0091】
データ通信制御部3310は、IPPクライアント制御部3303が生成する、プリンタ管理のための通信、及びジョブ送信・ジョブ管理のためのメッセージを仮想プリンタ120へ送受信する。例えば、仮想プリンタ120へ登録している印刷装置110がPWG-Rasterフォーマットしかサポートしない場合、仮想プリンタ120が情報処理装置130に通知するサポート・フォーマットはPWG-Rasterとなる。よってこの場合は、PDL生成部3308は仮想プリンタ120から指定された画像向きに最適化してPWG-Rasterフォーマットのデータを生成する。
【0092】
図4は、第1の実施形態において印刷装置110を仮想プリンタ120に登録する登録処理を行う際の、仮想プリンタ120及び印刷装置110の間のシーケンスである。以下、印刷装置110b、110cが本処理の開始前にすでに仮想プリンタ120に能力情報が登録されている状態において、本処理で印刷装置110aの能力情報が仮想プリンタ120に登録される場合を例として説明する。
【0093】
図4においてまず、ステップS4001で、印刷装置110aはユーザから仮想プリンタ120への登録指示が操作部パネル2107を介して受けると、ステップS4002に進む。
【0094】
ステップS4002で、印刷装置110aは、仮想プリンタ120に、印刷装置の登録要求(RegisterOutputDevice)をIPP通信で送信する。
【0095】
ステップS4003で、仮想プリンタ120は、印刷装置110aに対して能力情報の要求(GetPrinterAttributeRequest)をIPP通信で送信する。
【0096】
ステップS4004で、印刷装置110aは、仮想プリンタ120からの能力情報の要求に対して印刷装置110aの能力情報(GetPrinterAttributeResponse)をIPP通信で送信する。
【0097】
ステップS4005で、仮想プリンタ120は、ステップS4004で印刷装置110aから送信された能力情報を印刷装置110aを登録済み印刷装置として関連付けた状態で登録する(第1の登録取得手段)。その上で、本処理の開始前にすでに仮想プリンタ120に登録されている印刷装置110b、110cの能力情報と、印刷装置110b、110cでは組み合わせて印刷処理ができない設定を示す禁則設定情報を読み出す。
【0098】
ステップS4006で、仮想プリンタ120は、仮想プリンタ120に登録される全ての印刷装置で処理可能な能力を示す論理積情報を生成し、保存する。具体的には、ステップS4004で受信した印刷装置110aの能力情報とステップS4005で読み出した印刷装置110b、110cの能力情報とからこの論理積情報は生成される。
【0099】
ステップS4007で、仮想プリンタ120は、仮想プリンタ120に登録されたいずれかの印刷装置で処理可能な能力を示す論理和情報を生成し、保存する。論理積情報と同様、具体的にはステップS4004で受信した印刷装置110aの能力情報とステップS4005で読み出した印刷装置110b、110cの能力情報から、この論理和情報が生成される。更に、この生成された論理和情報から、次のステップS4008以降で仮想プリンタ120に登録されたいずれかの印刷装置で処理可能かどうかの検証対象となる印刷設定の組み合わせを生成する。
【0100】
ステップS4008で、仮想プリンタ120は、登録される全ての印刷装置に対してステップS4007で生成した印刷設定の組み合わせが処理可能かどうかの検証要求(ValidateJobRequest)をIPP通信で送信する。すなわち、この検証要求は、新規登録した印刷装置110a及びすでに登録済みの印刷装置110b、110cのいずれにも送信される。
【0101】
ステップS4009で、印刷装置110aは、ステップS4008の仮想プリンタ120からの処理可能かどうかの検証要求(ValidateJobRequest)に対して、処理可能かどうかの検証を行う。尚、
図4においては不図示であるが、印刷装置110b、110cにおいても、ステップS4008の仮想プリンタ120からの処理可能かどうかの検証要求に対して、処理可能かどうかの検証を行う。
【0102】
ステップS4010で、印刷装置110aは、ステップS4009の印刷設定の検証要求に対する応答として検証結果(ValidateJobReaponse)をIPP通信で送信する。尚、ステップS4009で前述した通り、印刷装置110b、110cにおいてもステップS4009の印刷設定の検証要求に対する検証が行われるため、
図4においては不図示であるが、印刷装置110b、110cからもその検証結果が送信される。
【0103】
ステップS4011で、仮想プリンタ120は、ステップS4010で印刷装置110a、110b、110cから受信した検証結果を元にステップS4005で読み出した禁則設定情報の更新が必要であるかどうかを判断する。すなわち、ステップS4005で読み出した禁則設定情報が新規登録された印刷装置110aにおいても印刷処理ができない設定を示す情報であるかを確認する。
【0104】
ステップS4012で、仮想プリンタ120は、ステップS4011での判断結果、禁則設定情報の更新が必要である場合は、禁則設定情報を更新して保存する。
【0105】
ステップS4013で、仮想プリンタ120は、印刷装置110aの登録処理の結果(RegisterOutputDeviceResponse)を印刷装置110aにIPP通信で通知する。印刷装置110aはその通知された内容を操作部パネル2107に表示することにより、ユーザに印刷装置110aの仮想プリンタ120への登録が終了した旨を通知する。その後、本処理を終了する。
【0106】
次に、
図5を用いて、情報処理装置130から仮想プリンタ120に印刷ジョブを送信して印刷する印刷処理を行う際の、情報処理装置130、仮想プリンタ120、及び印刷装置110の間のシーケンスについて説明する。
【0107】
図5においてまず、ステップS5001で、情報処理装置130は、ユーザにより、アプリケーション3301が起動されタッチパネル2306上で開いた印刷画面上のプリンタ選択ボタンが押されると、ステップS5002に進む。
【0108】
ステップS5002で、情報処理装置130は仮想プリンタ120に対して、印刷装置110の能力の論理積情報(AND能力)の要求(GerPrinterAttributeRequest)をIPP通信で送信する。
【0109】
ステップS5003で、仮想プリンタ120は
図4のステップS4006で生成・保存された仮想プリンタ120に登録される全ての印刷装置の能力の論理積情報を読み出す。
【0110】
ステップS5004で、仮想プリンタ120はステップS5003で読み出した論理積情報をステップS5002の要求に対する応答(GetPrinterAttributeResponse)として情報処理装置130にIPP通信で送信する。
【0111】
ステップS5005で、情報処理装置130はステップS5004で仮想プリンタ120から送信された論理積情報に対応する印刷設定画面をRAM2302上に構築する。
【0112】
ステップS5006で、情報処理装置130は仮想プリンタ120に対して、印刷装置110の能力の論理和情報(OR能力)の要求(GerPrinterAttributeRequest)をIPP通信で送信する。
【0113】
ステップS5007で、仮想プリンタ120は
図4のステップS4007で生成・保存された仮想プリンタ120に登録された全ての印刷装置の能力の論理和情報を読み出す。
【0114】
ステップS5008で、仮想プリンタ120はステップS5007で読み出した論理和情報をステップS5006の要求に対する応答(GetPrinterAttributeResponse)として情報処理装置130にIPP通信で送信する。
【0115】
ステップS5009で、情報処理装置130は仮想プリンタ120に対して、印刷装置110の禁則設定情報の要求(GerPrinterAttributeRequest)をIPP通信で送信する。
【0116】
ステップS5010で、仮想プリンタ120は
図4のステップS4012で更新・保存される禁則設定情報を読み出す。
【0117】
ステップS5011で、仮想プリンタ120はステップS5010で読み出した禁則設定情報をステップS5009の要求に対する応答(GetPrinterAttributeResponse)として情報処理装置130にIPP通信で送信する。
【0118】
ステップS5012で、情報処理装置130はステップS5008で仮想プリンタ120から送信された論理和情報に対応する印刷設定画面をRAM2302上に構築する。具体的には、ステップS5005で構築された印刷設定画面は、ステップS5011で受信した禁則設定情報を元に仮想プリンタ120に登録されるいずれの印刷装置でも処理できない印刷設定の組み合わせはユーザが設定できないように更新される。
【0119】
ステップS5013で、情報処理装置130は、ステップS5012で構築された印刷設定画面をタッチパネル2306に表示する。
【0120】
ステップS5014で、情報処理装置130は、タッチパネル2306又はマウスキーボード2308がユーザ操作され、ステップS5013で表示された印刷設定画面での印刷設定や、印刷ジョブの印刷開始指示があると、ステップS5015に進む。尚、この印刷設定により印刷される印刷ジョブは、ステップS5001、S5014のいずれかでユーザにより情報処理装置130に入力される。
【0121】
ステップS5015で、情報処理装置130は、ステップS5014で設定された印刷設定に従い、印刷ジョブを生成する。その後、仮想プリンタ120に対してその印刷設定に基づく印刷処理が可能かどうかの検証要求(ValidateJobRequest)をIPP通信で送信する。
【0122】
ステップS5016で、仮想プリンタ120は、情報処理装置130からの検証要求に応じて、仮想プリンタ120の登録済のいずれかの印刷装置においてステップS5014で設定された印刷設定に基づく印刷処理が可能かどうかの検証を行う。検証は印刷設定に禁則設定が含まれないことの確認も含まれる。
【0123】
ステップS5017で、仮想プリンタ120は、ステップS5015の印刷設定の検証要求に対する検証結果(ValidateJobReaponse)を情報処理装置130にIPP通信で送信する。
【0124】
ステップS5018で、情報処理装置130は、ステップS5014で設定された印刷設定に基づく印刷処理が可能であるという検証結果を仮想プリンタ120から受信したか判定する。かかる検証結果であった場合、情報処理装置130は、その印刷設定に従いステップS5015で生成された印刷ジョブ(CreateJobRequest)を仮想プリンタ120にIPP通信で送信する。
【0125】
ステップS5019で、仮想プリンタ120は、情報処理装置130から印刷ジョブ(CraeteJobRequest)を受信すると、その受信した印刷ジョブを仮想プリンタ120のストレージ2204に保存する。
【0126】
ステップS5020で、印刷装置110は、ユーザからの印刷指示を受け付ける。例えば、操作部パネル2107からIDやユーザ名を入力させて、当該ユーザに対応付けられた印刷ジョブの印刷指示を受け付ける。尚、印刷指示の受け付けはこれに限定されるものではない。印刷装置110を利用するためにユーザが当該印刷装置にログインしたことを契機として、当該ユーザに対応付けられた印刷ジョブの印刷指示を発行するようにしてもよい。
【0127】
ステップS5021で、印刷装置110は、仮想プリンタ120に対してステップS5020で受け付けた印刷指示に対応する印刷ジョブの送信要求(FetchJob)をIPP通信で送信する。
【0128】
ステップS5022で、仮想プリンタ120は、印刷装置110からの印刷ジョブの送信要求(FetchJob)に対して、ステップS5019で保存された印刷ジョブを印刷装置110へIPP通信で送信する。尚、ここでは、ユーザに対応付けられた印刷ジョブが印刷装置110へ送信されるものとする。
【0129】
ステップS5023で、印刷装置110は、仮想プリンタ120から送信された印刷ジョブを受信して印刷処理を実行し、本処理を終了する。
【0130】
図6は、各印刷装置110a、110b及び110cの能力を説明するための図である。以下、サポートという文言を、処理可能な印刷設定であることを示す文言として用いる。
【0131】
図6(a)は、印刷装置110aの能力、すなわち印刷装置110aが処理可能な印刷設定を示す。具体的には、カラー設定はモノクロをサポートし、フィニッシング設定はサポート無し、両面印刷設定は長辺及び短辺綴じをサポートし、用紙サイズ設定はA4、LETTER、LEGAL、A3及びLEDGERをサポートする。
【0132】
図6(b)は、印刷装置110bの能力、すなわち印刷装置110bが処理可能な印刷設定を示す。具体的には、カラー設定はカラーをサポートし、フィニッシング設定はサポート無し、両面印刷設定はサポート無し、用紙サイズ設定はA4、LETTER及びLEGALをサポートする。
【0133】
図6(c)は、印刷装置110cの能力、すなわち印刷装置110cが処理可能な印刷設定を示す。具体的には、カラー設定はカラーをサポートし、フィニッシング設定はステイプル及びパンチをサポートし、両面印刷設定は長辺及び短辺綴じをサポートし、用紙サイズ設定はA4、LETTER及びLEGALをサポートする。
【0134】
尚、
図6で挙げた能力情報は印刷装置110の能力の例示であり、その他に自動両面印刷設定や、印刷解像度設定、印刷装置110側でのNin1レイアウト設定、画像回転設定などが含まれていてもよい。
【0135】
次に
図7を用いて、
図4の登録処理で、仮想プリンタ120が印刷装置110aから登録要求を受信(ステップS4002)後、印刷装置110aに登録結果を通知(ステップS4013)するまでの本実施形態に係る印刷装置登録処理の手順を説明する。ここで、
図7の処理は、仮想プリンタ120のCPU2201が制御して実行する。
【0136】
ステップS7001では、印刷装置110aから印刷装置の登録要求を受信すると、ステップS7002に進み、印刷装置110aに対して能力情報の要求を送信し、印刷装置110aからのその応答として能力情報を取得する。更に、仮想プリンタ120にその取得した印刷装置11aの能力情報を新規登録してストレージ2204に保存する。
【0137】
ステップS7003では、仮想プリンタ120に登録済みの印刷装置110の能力の論理積情報(AND能力)を更新してストレージ2204に保存する。
【0138】
ステップS7004では、仮想プリンタ120に登録済みの印刷装置110の能力の論理和情報(OR能力)を更新してストレージ2204に保存する。
【0139】
ステップS7005では、仮想プリンタ120に登録済みの印刷装置110の禁則設定情報を更新してストレージ2204に保存する禁則設定情報の更新・保存処理を実行する。この処理の詳細は
図8を用いて後述する。
【0140】
ステップS7006では、印刷装置110aに印刷装置110aの登録結果を通知して本処理を終了する。
【0141】
次に
図8のフローチャートを用いて、ステップS7005で実行される第1の実施形態に係る禁則設定情報の更新・保存処理の手順を説明する。ここで、
図8の処理は、仮想プリンタ120のCPU2201が制御して実行する。
【0142】
ステップS8001では、ステップS8002で仮想プリンタ120に登録済みの各印刷装置110に実行可能かどうか問い合わせ(検証要求)を行う印刷設定の組み合わせを決定する。この決定は、ステップS7004で更新した、仮想プリンタ120に登録済みの印刷装置110の能力の論理和情報(OR能力)に基づき行われる。
【0143】
ステップS8002では、ステップS8001で決定した印刷設定の組み合わせについて、印刷装置110に実行可能かどうかの検証要求を仮想プリンタ120に登録済みの印刷装置110の1つ(ここでは印刷装置110aとする)に送信する。
【0144】
ステップS8003では、ステップS8002で検証要求が送信された印刷装置110aから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、印刷装置110aがステップS8001で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行可能であると判定した場合は、ステップS8006へと進む。実行不可能と判定した場合は、次のステップS8004へと進む。
【0145】
ステップS8004では、仮想プリンタ120に登録済の印刷装置110のすべてに対してステップS8002の検証要求の送信が完了したかどうかを判定する。完了していると判定した場合は、ステップS8005へと進む。完了していないと判定した場合は、ステップS8002へと戻って、仮想プリンタ120に登録済みの印刷装置110のうちまだ検証要求を送信していない印刷装置の1つに対して検証要求を送信する。
【0146】
ステップS8005では、仮想プリンタ120に登録された印刷装置110のすべてがステップS8001で決定した印刷設定(OR能力)の組み合わせを実行できないと判別する(判別手段)。その後、その組み合わせを、仮想プリンタ120に投入するジョブに関する禁則設定情報としてストレージ2204に保存して登録する。
【0147】
ステップS8006では、能力の論理和情報から決定しうるすべての印刷設定(OR能力)の組み合わせについての検証要求が完了したかどうかを判定する。完了していると判定した場合は、本処理を終了する。完了していないと判定した場合は、ステップS8001へと戻って、能力の論理和情報から決定しうるすべての印刷設定のうち、まだ検証要求を行っていない印刷設定の1つを検証要求を行う対象に決定する。
【0148】
次に
図9を用いて、
図5の印刷処理で、仮想プリンタ120が情報処理装置130から印刷装置110の禁則設定情報の要求を受信(ステップS5009)後、その要求に応答(ステップS5011)するまでの印刷装置能力取得処理の手順を説明する。ここで、
図9の処理は、仮想プリンタ120のCPU2201が制御して実行する。
【0149】
ステップS9001では、情報処理装置130からの何らかのコマンドを受信するまで待ち、コマンドを受信したら次のステップS9002へと進む。
【0150】
ステップS9002では、情報処理装置130から受信したコマンドを解釈して禁則情報取得要求であるか否かを判定する。禁則情報取得要求であると判定すれば、ステップS9003へと進み、その他のコマンドであると判定した場合はステップS9005へと進む。ステップS9005では、その他のコマンドに応じた処理を行って、本処理を終了する。
【0151】
ステップS9003では、ステップS8005で登録・保存された禁則設定情報を読み出す。
【0152】
ステップS9004では、ステップS9003で読み出した禁則設定情報を情報処理装置130に送信して本処理を終了する。
【0153】
図10A~
図10Eに印刷装置110、仮想プリンタ120及び情報処理装置130が相互にやり取りするIPP通信のメッセージ例を示す。
【0154】
図10Aのメッセージ1010は、印刷装置110が仮想プリンタ120に登録要求(RegisterOutputDevice)を送信した時のメッセージの例である。メッセージ1010は例えばステップS4002で送信される。
【0155】
メッセージ1010は、HTTPレイヤのヘッダ情報と、HTTP上のIPPメッセージデータ1011から構成される。IPPメッセージデータ1011の「ipp://XXXXX.local.:631/ipp/print」は印刷装置110a、110b、110cのいずれか一方を示す識別子である。印刷装置110a、110b、110cのうち、このIPPメッセージデータ1011の識別子に当てはまる印刷装置に対して、仮想プリンタ120は、ステップS4003の能力情報の要求を送信すると共に、ステップS4013の登録処理の結果を通知する。
【0156】
図10Aのメッセージ1020は、仮想プリンタ120が印刷装置110に対して、登録処理の結果(RegisterOutputDeviceResponse)を通知した時のメッセージの例である。メッセージ1020は例えばステップS4013で送信される。
【0157】
メッセージ1020は、仮想プリンタ120が印刷装置110に対して、登録を許可した時のメッセージの例である。メッセージ1020のうちIPPメッセージデータ1021の「status-code: Successful(successful-ok)」は登録を許可した時の属性を示している。
【0158】
図10Bのメッセージ1030は、仮想プリンタ120が印刷装置110に対して、能力情報の要求(GetPrinterAttributeRequest)を送信した時のメッセージの例である。メッセージ1030は例えばステップS4003で送信される。
【0159】
メッセージ1030のうち、IPPメッセージデータ1031は、印刷装置110に対して、どのような能力を問い合わせるかの属性1031a~dを含む。
【0160】
具体的には、属性1031aは印刷モードとしてカラーのサポート有無を問い合わせる属性であり、属性1031bはフィニッシングのサポート有無を問い合わせる属性である。また、属性1031cは両面のサポート有無を問い合わせる属性であり、属性1031dはサポートしている用紙情報の種類を問い合わせる属性である。
【0161】
図10Bのメッセージ1040、1050は、印刷装置110が仮想プリンタ120からのメッセージ1030の要求への応答として、能力情報(GetPrinterAttributeResponse)を送信した時のメッセージの例である。メッセージ1040、1050は例えばステップS4004で送信される。
【0162】
メッセージ1040のうちIPPメッセージデータ1041は、印刷装置110aがサポートしている能力を示す属性1041a~dを含む。
【0163】
具体的には、属性1041aは、カラー設定はモノクロをサポートすることを示す属性であり、属性1041bは、フィニッシング設定はステイプル及びパンチをサポートすることを示す属性である。また、属性1041cは両面印刷設定は長辺及び短辺綴じのサポートすることを示す属性であり、属性1041dは用紙サイズ設定はA4、LETTER、LEGAL、A3及びLEDGERをサポートすることを示す属性である。
【0164】
メッセージ1050のうちIPPメッセージデータ1051は、印刷装置110bがサポートしている能力を示す属性1051a~dを含む。
【0165】
具体的には、属性1051aは、カラー設定はカラーをサポートすることを示す属性である。また、属性1051bは、フィニッシング設定のサポートは無いことを示す属性であり、属性1051cは、両面印刷設定のサポートは無いことを示す属性である。属性1051dは、用紙サイズ設定はA4、LETTER及びLEGALをサポートすることを示す属性である。
【0166】
図10Cのメッセージ1060は、情報処理装置130が仮想プリンタ120に対して、印刷装置能力の論理積情報の要求(GetPrinterAttributeRequest)を送信した時のメッセージの例である。メッセージ1060は例えばステップS5002で送信される。
【0167】
メッセージ1060のうちIPPメッセージデータ1061は、仮想プリンタ120に登録された各印刷装置の全てがサポートしている能力の問い合わせであることを示す属性である。
【0168】
メッセージ1070は、仮想プリンタ120がメッセージ1060への応答として、印刷装置能力の論理積情報(GetPrinterAttributeResponse)を送信した時のメッセージの例である。メッセージ1070は例えばステップS5004で送信される。
【0169】
メッセージ1070のうちIPPメッセージデータ1071は、仮想プリンタ120に登録された各印刷装置の全てがサポートしている能力を示す属性1071a~dを含む。
【0170】
具体的には、属性1071aは、カラー設定はモノクロをサポートすることを示す属性であり、属性1071bは、フィニッシング設定のサポートは無いことを示す属性である。属性1071cは、両面印刷設定のサポートは無いことを示す属性であり、属性1071dは、用紙サイズ設定はA4、LETTER及びLEGALをサポートすることを示す属性である。
【0171】
図10Dのメッセージ1080は、情報処理装置130が仮想プリンタ120に対して、印刷装置能力の論理和情報の要求(GetPrinterAttributeRequest)を送信した時のメッセージの例である。メッセージ1080は例えばステップS5006で送信される。
【0172】
メッセージ1080のうちIPPメッセージデータ1081は、仮想プリンタ120に登録された各印刷装置のいずれかがサポートしている能力の問い合わせであることを示す属性である。
【0173】
図10Dのメッセージ1090は、仮想プリンタ120がメッセージ1080の要求への応答として、印刷装置能力の論理和情報(GetPrinterAttributeResponse)を送信した時のメッセージの例である。メッセージ1090は例えばステップS5008で送信される。
【0174】
メッセージ1090のうちIPPメッセージデータ1091は、仮想プリンタ120に登録された各印刷装置のいずれかがサポートしている能力を示す属性1091a~dを含む。
【0175】
具体的には、属性1091aは、カラー設定はカラーをサポートすることを示す属性であり、属性1091bは、フィニッシング設定はステイプル及びパンチをサポートすることを示す属性である。属性1091cは、両面印刷設定は長辺及び短辺綴じのサポートすることを示す属性であり、属性1091dは、用紙サイズ設定はA4、LETTER、LEGAL、A3及びLEDGERをサポートすることを示す属性である。
【0176】
図10Eのメッセージ1092は、情報処理装置130が仮想プリンタ120に対して、印刷装置の禁則設定情報の要求(GetPrinterAttributeRequest)を送信した時のメッセージの例である。メッセージ1092は例えばステップS5009で送信される。
【0177】
メッセージ1092のうちIPPメッセージデータ1093は、仮想プリンタ120に登録された印刷装置110のいずれもサポートしていない印刷設定の組み合わせの問い合わせであることを示す属性である。
【0178】
図10Eのメッセージ1094は、仮想プリンタ120がメッセージ1092の要求に対する応答として、印刷装置の禁則設定情報(GetPrinterAttributeResponse)を送信した時のメッセージの例である。メッセージ1094は例えばステップS5011で送信される。
【0179】
メッセージ1094のうちIPPメッセージデータ1095は、仮想プリンタ120に登録された印刷装置110のいずれもサポートしていない印刷設定の組み合わせを示す属性1095a~bを含む。
【0180】
具体的には、属性1095aは、カラー印刷、且つ用紙サイズがA3という印刷設定の組み合わせ、及びカラー印刷、且つ用紙サイズがLEDGERという印刷設定の組み合わせを示す属性である。属性1095bは、カラー印刷、且つフィニッシング処理がステイプルであるという印刷設定の組み合わせ、及びカラー印刷、且つフィニッシング処理がパンチであるという印刷設定の組み合わせを示す属性である。
【0181】
次に
図11に、ステップS5013で情報処理装置130のタッチパネル2306に表示される印刷設定画面の一例を示す。
【0182】
図11(a)、(b)に示すUI画面1110、1120は情報処理装置130としてスマートフォン130bやタブレット130aが使用された場合に用いられる印刷設定画面である。
図11では、仮想プリンタ120の配下に印刷装置110a及び110bが登録されている場合の印刷設定画面を例示している。UI画面1110、1120はいずれも、ステータス選択部1101、印刷装置選択部1102、部数設定部1103、印刷サポート選択部1104、選択項目を表示するオプション設定部1105により構成される。
【0183】
UI画面1110、1120のように、印刷装置選択部1102においてPrinter(1)がユーザ選択された場合、仮想プリンタ120が情報処理装置130に対して提供する抽象化された印刷装置機能が表示される。
【0184】
また、UI画面1110のように、印刷サポート選択部1104において選択可能な項目1111のうちAND(論理積)がユーザ選択された場合、仮想プリンタ120に登録されている印刷装置のいずれでも設定可能な機能を設定する画面が表示される。一方、UI画面1120のように、印刷サポート選択部1104において選択可能な項目1121のうちOR(論理和)がユーザ選択された場合、仮想プリンタ120に登録されている印刷装置のいずれかで設定可能な機能を設定する画面が表示される。
【0185】
UI画面1110では、部数設定部1103でユーザは任意の部数を設定できるが、オプション設定部1105の選択項目としてはカラー設定項目1112及び用紙サイズ設定項目1113の2つのみが表示される。ここで、カラー設定項目1112ではモノクロのみがユーザ選択可能であり、用紙サイズ設定項目1113では、A4、LEGAL、LETTERのうちの1つがユーザ選択可能である。
【0186】
一方、UI画面1120では、部数設定部1103でユーザは任意の部数を設定できる。また、オプション設定部1105の選択項目としてカラー設定項目1122、用紙サイズ設定項目1123、両面印刷設定項目1124、ステイプル設定項目1125、及びパンチ設定項目1126が表示される。ここで、カラー設定項目1122では、モノクロ、カラーの1方をユーザ選択可能であり、用紙サイズ設定項目1123では、A4、A3、LETTER、LEGAL、LEDGERの1つがユーザ選択可能である。また、両面印刷設定項目1124、ステイプル設定項目1125、及びパンチ設定項目1126では、いずれもON、OFFの1つがユーザ選択可能である。但し、両面印刷設定項目1124でONが選択された場合は、ステイプル設定項目1125及びパンチ設定項目1126では、OFFに固定され設定値を変更することができないよう構成される。
【0187】
また、UI画面1120のオプション設定部1105の各選択項目に対しては、後述の
図12で示す禁則設定情報に応じた禁則設定が反映される。例えば、
図12では、両面設定が長辺綴じ、短辺綴じのいずれの設定であってもカラー設定がカラーの場合と競合する禁則設定である。よって、UI画面1120の両面印刷設定項目1124でONが選択された場合は、カラー設定項目1122はモノクロが選択された状態でグレーアウトで表示され、設定値を変更することができないように構成される。
【0188】
また、
図11に示すように、禁則設定情報に関係し、他の印刷設定に制約を与える恐れのある設定については“*”印が付けられる。これにより、“*”印が付けられた設定が選択された場合、以降のオプション設定部1105の他の選択項目の選択操作に制限が生じうることをユーザに通知することができる。
【0189】
図12は、
図4のステップS4012で仮想プリンタ120において更新・保存される禁則設定情報の管理テーブルの一例を示す図である。
図12は、仮想プリンタ120の配下に印刷装置110a、110bが登録されている場合を例示した禁則設定情報の管理テーブルであり、
図6(a)及び
図6(b)で示した設定可能な印刷設定に対して、禁則設定となる組み合わせを示す。
図12に示す例では、仮想プリンタ120の配下に印刷装置110cは登録されていないことを注記しておく。
【0190】
禁則設定情報1201はカラー設定がカラー、用紙サイズ設定がA3という組み合わせが禁則設定であり、禁則設定情報1202はカラー設定がカラー、用紙サイズ設定がLEDGERという組み合わせが禁則設定であることを示す。また、禁則設定情報1203はカラー設定がカラー、両面設定が長辺綴じという組み合わせが禁則設定であることを示し、禁則設定情報1204はカラー設定がカラー、両面設定が短辺綴じという組み合わせが禁則設定であることを示す。
[第2の実施形態]
【0191】
第1の実施形態では、印刷装置を登録追加する際に仮想プリンタの禁則情報を生成するために全ての印刷装置に全ての論理和機能の組み合わせが実行可能かどうかを総当たりで検証する場合について説明した。一方、第2の実施形態では、第1の実施形態に加えて、各印刷装置への問い合わせ回数を削減する制御を追加している。また、配下の登録済み印刷装置を削除する場合における効率的な能力情報の更新方法についても本実施形態で説明する。なお、第2の実施形態におけるハードウェア構成は、第1の実施形態と同様であるため説明を省略する。
【0192】
ここでは、登録処理の説明のため、仮想プリンタ120の配下に印刷装置110a及び110bが既に登録済みであり、更に印刷装置110cが仮想プリンタ120の配下に追加で登録される場合を例に説明する。
図13は、上述の
図4の登録処理で、仮想プリンタ120が印刷装置110cから登録要求を受信(ステップS4002)後、印刷装置110cに登録結果を通知(ステップS4013)するまでの本実施形態に係る印刷装置登録処理の手順を説明する。ここで、
図13の処理は、仮想プリンタ120のCPU2201が制御して実行する。
【0193】
ステップS1301では、印刷装置110cから印刷装置の登録要求を受信すると、ステップS1302に進み、印刷装置110cに対して能力情報の要求を送信し、印刷装置110cからのその応答として能力情報を取得する。更に、仮想プリンタ120にその取得した印刷装置110cの能力情報を新規登録してストレージ2204に保存する。
【0194】
ステップS1303では、仮想プリンタ120に登録済みの印刷装置があるかどうかを判定する。登録済みの印刷装置がある場合にはステップS1304へと進む。登録済みの印刷装置が無い場合にはステップS1313へと進む。ステップS1313では、ステップS1302で取得した印刷装置110cの能力を論理積情報(AND能力)として更新、保存する。次にステップS1314では、ステップS1302で取得した印刷装置110cの能力を論理和情報(OR能力)として更新、保存して、本処理を終了する。
【0195】
一方、ステップS1304では、仮想プリンタ120に登録済みの印刷装置110の能力の論理積情報(AND能力)を更新してストレージ2204に保存する。
【0196】
ステップS1305では、仮想プリンタ120に登録済みの印刷装置110の能力の論理和情報(OR能力)を更新してストレージ2204に保存する。尚、更新前の登録済みの印刷装置110の能力の論理和情報(OR能力)はステップS1307で参照するため、RAM2202に保持しておく。
【0197】
ステップS1306では、仮想プリンタ120に登録済みの印刷装置110の禁則設定情報を更新してストレージ2204に保存する禁則設定情報の更新・保存処理を実行する。この処理の詳細は
図14を用いて後述する。
【0198】
ステップS1307では、ステップS1305で更新した登録済みの印刷装置110の能力の論理和情報(OR能力)とRAM2202に保持された更新前の登録済みの印刷装置110の能力の論理和情報(OR能力)を比較する。次にその比較結果から、ステップS1305で追加された能力の論理和情報(OR能力)を取得する(追加設定取得手段)。また、そのうち、印刷装置110cに実行可能かどうか問い合わせ(検証要求)を行う印刷設定の組み合わせを決定する。
【0199】
ここでは説明のため、事前に印刷装置101a、101bが登録されている状態で、印刷装置101cを更に追加する要求を受け付けた場合の更新処理の具体例を説明する。
図18は、
図14の更新・保存処理の具体例を説明するための模式図である。
【0200】
図18において、テーブル1801はステップS1305で更新する前の印刷装置110aと印刷装置110bが登録されている状態の能力の論理和情報(OR能力)に対応するテーブルを示す。縦軸と横軸で機能の組み合わせを示し、組み合わせて利用可能な印刷設定については○、互いに競合する印刷設定については×で示す。ここで、カラーはカラー設定におけるカラー印刷、モノクロはカラー設定におけるモノクロ印刷、A4は用紙サイズ設定におけるA4、A3は用紙サイズ設定におけるA3に対応する印刷設定を示す。また、両面は両面印刷設定における長辺及び短辺綴じ、ステイプルはフィニッシング設定におけるステイプル、パンチはフィニッシング設定におけるパンチに対応する印刷設定を示す。
【0201】
テーブル1802はステップS1305で更新した後の印刷装置110cを登録追加後の能力の論理和情報(OR能力)に対応するテーブルを示す。ステップS1302で取得した印刷装置110cの能力情報から印刷装置110cがテーブル1801には存在しなかったフィニッシング機能として、ステイプル及びパンチの能力を持つため、ステイプルとパンチが追加されている。ただし、ステップS1305で更新した時点では追加されたステイプル及びパンチとそのほかの機能との禁則設定は不明である。
【0202】
テーブル1803は後述するステップS1312まで処理が進んだ後の能力の論理和情報(OR能力)に対応するテーブルを示す。テーブル1803では
図14の禁則設定の更新・保存処理で、印刷装置110cを登録する以前は組み合わせて印刷設定として利用できなかった設定が、登録追加される印刷装置110cの能力によって利用可能となるかどうかを判定した結果が反映されている。具体的には、カラーとA3、カラーと両面、A3と両面のそれぞれの組み合わせのうち、印刷装置110cが処理可能なカラーと両面の組み合わせについては禁則設定情報から削除する。さらに、後述するステップS1407~S1411の処理により、印刷装置110cの能力によって追加されたステイプル及びパンチと、そのほかの機能とが組み合わせて印刷設定として利用可能かどうかが明確になっている。
【0203】
ここで
図13の説明に戻る。ステップS1308では、ステップS1307で取得した印刷設定の組み合わせについて、実行できるかどうかの検証要求を印刷装置110cに送信する。
【0204】
ステップS1309では、ステップS1308で検証要求が送信された印刷装置110cから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、印刷装置110cがステップS1307で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行可能であると判定した場合は、ステップS1311へと進む。実行不可能と判定した場合は、次のステップS1310へと進む。
【0205】
ステップS1310では、ステップS1307で決定された印刷設定の組み合わせを、仮想プリンタ120に投入するジョブに関する禁則設定情報としてストレージ2204に保存して登録する。
【0206】
ステップS1311では、ステップS1305によって追加された能力の論理和情報から決定しうるすべての印刷設定(OR能力)の組み合わせについての検証要求が完了したかどうかを判定する。完了していると判定した場合は、ステップS1312へと進む。完了していないと判定した場合は、ステップS1307へと戻って、ステップS1305によって追加された能力の論理和情報から決定しうるすべての印刷設定(OR能力)のうち、まだ検証要求を行っていない印刷設定の一つを検証対象に決定する。
【0207】
ステップS1312では、印刷装置110aに印刷装置110cの登録結果を通知して本処理を終了する。
【0208】
次に
図14のフローチャートを用いて、
図13のステップS1306で実行される第2の実施形態に係る禁則設定の更新・保存処理の手順を説明する。ここで、
図14の処理は、仮想プリンタ120のCPU2201が制御して実行する。
【0209】
ステップS1401では、仮想プリンタ120で禁則設定となっている印刷設定のうち、ステップS1402以降での禁則設定の更新判定を行う印刷設定の組み合わせ(禁則ルール(X))を決定する。
【0210】
ステップS1402では、登録する印刷装置110cがステップS1401で決定した印刷設定を構成する機能をすべて有するかどうかを判定する。例えば
図12における禁則設定情報1201が保存されている場合、印刷装置110cがカラーとA3の機能をいずれも有するかどうかを判定する。ステップS1401で決定した印刷設定を構成する機能のすべてを有すると判定した場合にはステップS1403へと進む。ステップS1401で決定した印刷設定を構成する機能のすべては有しないと判定した場合にはステップS1407へと進む。
【0211】
次にステップS1403では、ステップS1401で決定した印刷設定の組み合わせについて、登録する印刷装置110cに実行可能かどうかの検証要求を送信する。
【0212】
ステップS1404では、ステップS1403で検証要求が送信された印刷装置110cから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、印刷装置110cがステップS1401で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行可能であると判定した場合は、ステップS1405へと進む。一方、実行可能でないと判定した場合はステップS1407へと進む。
【0213】
ステップS1407では、ステップS1401で決定された印刷設定の組み合わせ(禁則ルール(X))を仮想プリンタ120の印刷設定の禁則設定情報として残す。
【0214】
ステップS1405では、ステップS1401で決定した印刷設定の組み合わせ(禁則ルール(X))について、仮想プリンタ120の印刷設定の禁則設定情報から削除する。
【0215】
ステップS1406では、仮想プリンタ120の禁則設定となっているすべての印刷設定の組み合わせについて禁則設定の更新判定が完了したかどうかを判定する。完了していると判定した場合は、本処理を終了する。完了していないと判定した場合は、ステップS1401へと戻って、仮想プリンタ120の禁則設定となっているすべての印刷設定の組み合わせのうち、まだ禁則設定の更新判定を行っていない印刷設定の1つを判定対象に決定する。
【0216】
尚、本実施例では、ステップS1307で取得した印刷設定の組み合わせのすべてについてステップS1308で検証要求を行ったが、かかる構成に限定されない。例えば、
図14の処理の完了後の禁則設定情報に含まれる禁則設定には該当せず、ステップS1307で取得した印刷設定の組み合わせには含まれる印刷設定のみについてステップS1308で検証要求を行うようにしてもよい。
【0217】
次に
図15を用いて、第2の実施形態において仮想プリンタ120に能力情報を登録済みの印刷装置110を仮想プリンタ120から削除処理を行う際の、仮想プリンタ120及び印刷装置110の間のシーケンスについて説明する。以下、印刷装置110a、110b、110cが本処理の開始前に仮想プリンタ120に能力情報が登録されている状態において、本処理で仮想プリンタ120から印刷装置110aの能力情報が削除される場合を例として説明する。
【0218】
図15においてまず、ステップS1501で、印刷装置110aはユーザから仮想プリンタ120からの削除指示を操作部パネル2107を介して受けると、ステップS1502に進む。
【0219】
ステップS1502で、印刷装置110aは、仮想プリンタ120に、印刷装置の登録削除要求(DeregisterOutputDevice)をIPP通信で送信する。
【0220】
ステップS1503で、仮想プリンタ120は、登録削除要求を受けると、印刷装置110aを登録から削除する。また、印刷装置110a以外で本処理の開始前にすでに仮想プリンタ120に登録されている印刷装置110b、110cのそれぞれの能力情報と、印刷装置110b、110cでは組み合わせて印刷処理ができない設定を示す禁則設定情報を読み出す。
【0221】
ステップS1504で、仮想プリンタ120は、仮想プリンタ120に登録されている全ての印刷装置で処理可能な能力を示す論理積情報を生成し、保存する。具体的には、ステップS1503で読み出した印刷装置110b、110cの能力情報からこの論理積情報は生成される。
【0222】
ステップS1505で、仮想プリンタ120は、仮想プリンタ120に登録されたいずれかの印刷装置で処理可能な能力を示す論理和情報を生成し、保存する。論理積情報と同様、具体的にはステップS1503で読み出した印刷装置110b、110cの能力情報からこの論理和情報が生成される。
【0223】
ステップS1506では、ステップS1505で生成された論理和情報と、本処理で印刷装置110aの登録が削除される前に印刷装置110a、110b、110cの能力情報から生成・保存されていた元の論理和情報とを比較する。次にその比較結果から、元の論理和情報から削除された論理和情報を抽出する(削除設定取得手段)。削除された論理和情報のうち、仮想プリンタ120の印刷設定の禁則設定に含まれているものがあれば、禁則設定から削除する。また、その削除後の禁則設定に該当せず、且つステップS1505で生成された論理和情報に含まれる印刷設定の組み合わせを生成する。
【0224】
ステップS1507では、仮想プリンタ120は、登録が残る全ての印刷装置に対してステップS1506にて生成した印刷設定の組み合わせが処理可能かどうかの検証要求(ValidateJobRequest)をIPP通信で送信する。すなわち、この検証要求は、登録削除した印刷装置110a以外の登録済みの印刷装置110b、110cのそれぞれに送信される。
【0225】
ステップS1508では、印刷装置110bは、ステップS1507の仮想プリンタ120からの処理可能かどうかの検証要求(ValidateJobRequest)に対して、処理可能かどうかの検証を行う。同様に、印刷装置110cにおいても、ステップS1507の仮想プリンタ120からの処理可能かどうかの検証要求に対して、処理可能かどうかの検証を行う。
【0226】
ステップS1509で、印刷装置110bは、ステップS1507の印刷設定の検証要求に対する応答として検証結果(ValidateJobReaponse)をIPP通信で送信する。尚、ステップS1508で前述した通り、印刷装置110cおいてもステップS1507の印刷設定の検証要求に対する検証が行われるため、印刷装置110cからもその検証結果が送信される。
【0227】
ステップS1510で、仮想プリンタ120は、ステップS1509で印刷装置110b、110cから受信した検証結果を元にステップS1506で生成された印刷設定の組み合わせが禁則設定となるかどうかを判断する。すなわち、ステップS1506で生成された印刷設定の組み合わせが、登録が残る全ての印刷装置110b、110cにおいて印刷処理ができない設定を示す情報であるかを確認する。
【0228】
ステップS1511では、ステップS1510の確認結果に基づき、ステップS1506で生成された印刷設定の組み合わせが禁則設定となる場合には仮想プリンタ120の印刷設定の禁則設定情報(禁則ルール)として登録する。
【0229】
ステップS1512で、仮想プリンタ120は、印刷装置110aの登録削除処理の結果(DeregisterOutputDeviceResponse)を印刷装置110aにIPP通信で通知する。印刷装置110aはその通知された内容を操作部パネル2107に表示することにより、ユーザに印刷装置110aの仮想プリンタ120への登録削除が終了した旨を通知する。その後、本処理を終了する。
【0230】
次に
図16を用いて、
図15の登録削除処理で、仮想プリンタ120が印刷装置110aから登録削除要求を受信(ステップS1502)後、印刷装置110aにその処理結果を通知(ステップS1512)するまでの処理の手順を説明する。すなわち、本実施形態に係る印刷装置登録削除処理の手順を説明する。ここで、
図16の処理は、仮想プリンタ120のCPU2201が制御して実行する。
【0231】
ステップS1601では、登録削除要求を送信した印刷装置110aが仮想プリンタ120から登録削除されたあとに登録が残る印刷装置が1台より多いかどうかを判定する。1台より多いと判定した場合はステップS1602へと進み、1台以下だと判定した場合はステップS1612へと進む。
【0232】
ステップS1602では、印刷装置110aが登録削除された後に登録が残る複数の印刷装置110の能力によって、能力の論理積情報(AND能力)を更新してストレージ2204に保存する。
【0233】
ステップS1603では、印刷装置110aが登録削除された後に登録が残る複数の印刷装置110の能力によって、能力の論理和情報(OR能力)を更新してストレージ2204に保存する。尚、更新前の登録済みの印刷装置110の能力の論理和情報(OR能力)はステップS1604で参照するため、RAM2202に保持しておく。
【0234】
ステップS1604では、ステップS1603で更新された能力の論理和情報(OR能力)と、RAM2202に保持された更新前の能力の論理和情報(OR能力)を比べ、元の能力の論理和情報(OR能力)から削除された印刷設定の組み合わせを抽出する。
【0235】
ステップS1605では、ステップS1604にて抽出された印刷設定の組み合わせのうち仮想プリンタ120の印刷設定の禁則設定情報に含まれるものがあるかどうかを判定する。含まれる場合にはステップS1606へと進み、含まれない場合にはステップS1607へと進む。
【0236】
ステップS1606では、ステップS1605で仮想プリンタ120の印刷設定の禁則設定情報に含まれるものがあると判定された場合、その含まれる印刷設定の組み合わせを、仮想プリンタ120の印刷設定の禁則設定情報から削除する。また、その削除後の禁則設定情報には該当しないが、ステップS1603で更新された能力の論理和情報には含まれる印刷設定の組み合わせを生成する。
【0237】
ステップS1607では、ステップS1606で生成された印刷設定の組み合わせのうち、後述のステップS1608の検証要求を行う印刷設定の組み合わせ(禁則ルール(Y))を一つ決定する。
【0238】
ステップS1608では、ステップS1607で決定した印刷設定の組み合わせについて、印刷装置110に実行可能かどうかの検証要求を仮想プリンタ120に登録が残る印刷装置110のすべて(ここでは印刷装置110b、110cとする)に送信する。
【0239】
ステップS1609では、ステップS1608で検証要求が送信された印刷装置110b、110cのそれぞれから、その応答として検証結果を受信すると、その検証結果を解釈する。その後、その解釈結果に基づき、仮想プリンタ120に登録が残る印刷装置110のいずれかがステップS1607で決定された印刷設定の組み合わせを実行可能かどうかを判定する。実行不可能であると判定した場合は、次のステップS1610へと進む。一方、仮想プリンタ120に登録が残るいずれの印刷装置110も実行可能と判定した場合は、ステップS1607へと戻る。すなわち、ステップS1608で仮想プリンタ120に登録済みの印刷装置110に実行可能かどうか問い合わせ(検証要求)を行う印刷設定の組み合わせを、まだ検証要求していない印刷設定の組み合わせの一つに決定し、本処理を継続する。
【0240】
ステップS1610では、ステップS1607で決定した印刷設定の組み合わせを仮想プリンタ120の印刷設定の禁則設定情報として追加してストレージ2204に保存して登録する。
【0241】
ステップS1611では、ステップS1606で生成された印刷設定の組み合わせの全てについてステップS1608の検証を行ったかどうかを判定する。全ての検証済みであれば本処理を終了する。全ての検証が完了していなければステップS1607へと戻り本処理を継続する。
【0242】
次に、ステップS1612では登録削除要求を送信した印刷装置110aが登録削除された後に登録が残る印刷装置110が1台かどうかを判定する。1台と判定した場合はステップS1613へと進み、0台と判定した場合はステップS1616へと進む。
【0243】
ステップS1613で、登録が残る1台の印刷装置110の能力を仮想プリンタ120の能力の論理積(AND能力)としてストレージ2204に保存して登録する。
【0244】
ステップS1614で、登録が残る1台の印刷装置110の能力を仮想プリンタ120の能力の論理和(OR能力)としてストレージ2204に保存して登録する。
【0245】
ステップS1615で、登録が残る一台の印刷装置110では印刷処理ができない印刷設定の組み合わせを仮想プリンタ120の印刷設定の禁則設定情報としてストレージ2204に保存して登録して本処理を終了する。
【0246】
ステップS1616では、仮想プリンタ120に登録が残る印刷装置110が無いことから仮想プリンタ120の能力を印刷能力なしに更新する。具体的には、プリンタ120の論理積(AND能力)、論理和(OR能力)の両方に印刷能力がないことを示す情報登録して本処理を終了する。
【0247】
図17に印刷装置110及び仮想プリンタ120が相互にやり取りするIPP通信のメッセージ例を示す。
【0248】
図17(a)に示すメッセージ1710は、印刷装置110が仮想プリンタ120に対して、登録削除要求(DeregisterOutputDevice)を送信した時のメッセージの例である。メッセージ1710は例えばステップS1502で送信される。
【0249】
メッセージ1710は、HTTPレイヤのヘッダ情報と、HTTP上のIPPメッセージデータ1711から構成される。IPPメッセージデータ1711の「ipp://XXXXX.local.:631/ipp/print」は印刷装置110a、110b、110cのうち登録削除要求を行った印刷装置を示す識別子である。仮想プリンタ120に登録されている印刷装置110a、110b、110cのうち、このIPPメッセージデータ1711の識別子に当てはまる印刷装置以外に対して、仮想プリンタ120は、ステップS1507の印刷設定の検証要求を送信する。また、仮想プリンタ120は、この識別子に当てはまる印刷装置に対して、ステップS1512の登録削除処理の結果を通知する。
【0250】
図17(b)に示すメッセージ1720は、仮想プリンタ120が印刷装置110に対して、登録削除処理の結果(DeregisterOutputDeviceResponse)を通知した時のメッセージの例である。メッセージ1720は例えばステップS1512で送信される。
【0251】
メッセージ1720は、仮想プリンタ120が印刷装置110に対して、登録削除を許可した時のメッセージの例である。メッセージ1720のうちIPPメッセージデータ1721の「status-code: Successful(successful-ok)」は登録を許可した時の属性を示している。
【0252】
[その他の実施例]
尚、第1の実施形態では、情報処理装置130に印刷装置110a、110b、110cで互いに競合する印刷設定の組み合わせを示す禁則設定情報により情報処理装置130上でのコンフリクトを解消する処理を行う場合を例示した。但し、本発明はこれに限定されない。例えば、ステップS5009、S5010の処理を行わないようにしてもよい。この場合、ステップS5016の検証処理において、情報処理装置130から送信された印刷設定が印刷装置110a、110b、110cで互いに競合する印刷設定の組み合わせかどうかの検証が行われることになる。
【0253】
本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、装置に供給することによっても、達成されることは言うまでもない。このとき、供給された装置の制御部を含むコンピュータ(またはCPUやMPU)は、記憶媒体に格納されたプログラムコードを読み出し実行する。
【0254】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0255】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0256】
また、上述のプログラムコードの指示に基づき、装置上で稼動しているOS(基本システムやオペレーティングシステム)などが処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0257】
更に、記憶媒体から読み出されたプログラムコードが、装置に挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれ、前述した実施例の機能が実現される場合も含まれることは言うまでもない。このとき、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行う。
【符号の説明】
【0258】
100 LAN
101 AP
103 インターネット
110 印刷装置
120 仮想プリンタ
130 情報処理装置
2100、2200、2300 制御部
2106 操作部I/F
2112、2205、2309 通信部I/F