以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について、図1を用いて説明する。図1は、一実施形態に係る情報処理システム1の一例のシステム構成を示す図である。
図1に示すように、本実施形態に係る情報処理システム1は、1台以上のクライアント装置10と、1台以上の画像形成装置20と、サーバ装置30とを含み、これら装置はLAN(Local Area Network)等のネットワークNを介して互いに通信可能に接続されている。
クライアント装置10は、例えばPC(パーソナルコンピュータ)、スマートフォン、タブレット端末等である。クライアント装置10は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データから印刷データを作成した上で、印刷データを画像形成装置20に送信する。又は、クライアント装置10は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データをサーバ装置30に送信する。
なお、印刷対象データとは、例えば、画像データや文書データ等の印刷可能な電子データである。また、印刷データとは、例えば、印刷対象データを、画像形成装置20が印刷可能なPDL(Page Description Language)形式に変換した電子データである。
画像形成装置20は、例えばプリンタ、印刷機能を備えたMFP(Multifunction Peripheral)等である。画像形成装置20は、クライアント装置10又はサーバ装置30から受信した印刷データを印刷する。
サーバ装置30は、例えばPC等である。サーバ装置30は、例えば、クライアント装置10から受信した印刷対象データから印刷データを作成して、作成した印刷データを画像形成装置20に送信する。
また、サーバ装置30は、ファイルサーバとして機能しても良い。すなわち、サーバ装置30は、例えば、クライアント装置10から受信した印刷データを記憶しておき、画像形成装置20からの要求に応じて、記憶した印刷データを要求元の画像形成装置20に送信しても良い。
なお、以降では、1台以上のクライアント装置10について、各々を区別するときは、「クライアント装置10−1」、「クライアント装置10−2」等と表す。同様に、1台以上の画像形成装置20について、各々を区別するときは、「画像形成装置20−1」、「画像形成装置20−2」等と表す。
<ハードウェア構成>
次に、本実施形態に係る情報処理システム1に含まれるクライアント装置10、画像形成装置20、及びサーバ装置30のハードウェア構成について、図2及び図3を用いて説明する。
≪クライアント装置10及びサーバ装置30≫
図2は、一実施形態に係るクライアント装置10及びサーバ装置30の一例のハードウェア構成を示す図である。なお、クライアント装置10及びサーバ装置30は、同様のハードウェア構成を有しているため、以降では、クライアント装置10のハードウェア構成について説明する。
図2に示すように、本実施形態に係るクライアント装置10は、入力装置101と、表示装置102と、外部I/F103と、RAM(Random Access Memory)104とを有する。また、クライアント装置10は、ROM(Read Only Memory)105と、CPU(Central Processing Unit)106と、通信I/F107と、HDD(Hard Disk Drive)108とを有する。これらのハードウェアは、バスBで互いに接続されている。
入力装置101は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置102は、ディスプレイ等を含み、クライアント装置10による処理結果を表示する。なお、入力装置101及び表示装置102の少なくとも一方は、必要なときにクライアント装置10に接続して利用する形態であっても良い。
通信I/F107は、クライアント装置10をネットワークNに接続するインタフェースである。クライアント装置10は、通信I/F107を介して通信を行うことができる。
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。HDD108に格納されるプログラムやデータには、クライアント装置10全体を制御する基本ソフトウェアであるOS(Operating System)、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
なお、クライアント装置10は、HDD108に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を有して良い。また、HDD108は、格納しているプログラムやデータを所定のファイルシステムやDBにより管理している。
外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103a等がある。クライアント装置10は、外部I/F103を介して記録媒体103aの読み取りや書き込みを行うことができる。記録媒体103aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM105には、OS設定、ネットワーク設定等のプログラムやデータ、及びクライアント装置10の起動時に実行されるBIOS(Basic Input/Output System)が格納されている。RAM104は、プログラムやデータを一時保持する揮発性の半導体メモリである。
CPU106は、ROM105やHDD108等の記憶装置からプログラムやデータをRAM104上に読み出し、当該プログラムやデータに基づく処理を実行することで、クライアント装置10全体の制御やその他の機能を実現する演算装置である。
本実施形態に係るクライアント装置10及びサーバ装置30は、図2に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
≪画像形成装置20≫
図3は、一実施形態に係る画像形成装置20の一例のハードウェア構成を示す図である。
図3に示すように、本実施形態に係る画像形成装置20は、コントローラ201と、操作パネル202と、外部I/F203と、通信I/F204と、プロッタ205を有する。また、コントローラ201は、CPU211と、RAM221と、ROM231と、NVRAM241と、HDD251とを有する。
ROM231は、各種プログラムやデータを格納している不揮発性の半導体メモリである。RAM221は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM241は、例えば設定情報等を格納している。また、HDD251は、各種プログラムやデータを格納している不揮発性の記憶装置である。
CPU211は、ROM231やNVRAM241、HDD251等からプログラムやデータ、設定情報等をRAM221上に読み出し、当該プログラムやデータに基づく処理を実行することで、画像形成装置20全体の制御やその他の機能を実現する演算装置である。
操作パネル202は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを有する。外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。画像形成装置20は、外部I/F203を介して記録媒体203aの読み取りや書き込みを行うことができる。なお、記録媒体203aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F204は、画像形成装置20をネットワークNに接続するインタフェースである。画像形成装置20は、通信I/F204を介して通信を行うことができる。プロッタ205は、印刷データを印刷する印刷装置である。
本実施形態に係る画像形成装置20は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<クライアント装置10のソフトウェア構成>
次に、本実施形態に係るクライアント装置10のソフトウェア構成について、図4を用いて説明する。図4は、クライアント装置10の一例のソフトウェア構成を示す図である。
図4に示すように、本実施形態に係るクライアント装置10は、アプリケーション301と、OS302と、プリンタドライバ303と、ストアデバイスアプリ304とを有する。
アプリケーション301は、例えば文書作成ソフト、画像閲覧・編集ソフト、ブラウザ等、ユーザの印刷指示に応じて、OS302に印刷の指示(要求)を行うことができるアプリケーションソフトである。アプリケーション301には、ストアアプリ311と、デスクトップアプリ321とが含まれる。
ストアアプリ311は、例えば、Windows(登録商標)8/WindowsRT及びそれ以降のバージョンのWindowsOSにアプリケーションを提供する「Windowsストア」から、入手可能なアプリケーションである。ストアアプリ311では、「ストアアプリ UI」が用いられる。なお、Windows8及びWindows8.1では、OS302によって提供される「Modern UI」又は「Metro UI」とも称されるUIからストアアプリ311が呼び出される。
一方、デスクトップアプリ321は、例えば、Windows7以前のバージョンのWindowsOSにおいても使用可能なアプリケーションである。
OS302は、Windows8/WindowsRT及びそれ以降のバージョンのWindowsOSである。
プリンタドライバ303は、例えば、Version4プリンタドライバ(以降では、「V4プリンタドライバ」と表す。)である。V4プリンタドライバとは、Windows8/WindowsRTから採用されたアーキテクチャに基づくプリンタドライバである。以降では、プリンタドライバ303を「V4プリンタドライバ303」とも表す。
なお、Windows8以降のWindowsOSでは、Windows2000からWindows7で使用されていたVersion3プリンタドライバ(以降では、「V3プリンタドライバ」と表す。)に加えて、V4プリンタドライバも使用可能である。
プリンタドライバ303は、拡張設定部313と、設定制御部323と、描画部333とを含む。
拡張設定部313は、プリンタ拡張とも称され、デスクトップアプリ321から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。
設定制御部323は、禁則スクリプトとも称され、例えば、印刷設定の組み合わせが正当であるか否かを検証する。拡張設定部313は、例えば、設定制御部323により正当でないと検証された印刷設定の組み合わせを非表示にすること等ができる。
また、設定制御部323は、アプリケーション301やOS302等からの要求に応じて、プリンタドライバ303が設定可能な機能の情報を示すPrintCapabilityを返信する。更に、設定制御部323は、アプリケーション301やOS302等からの要求に応じて、プリンタドライバ303に設定されている各種機能の設定値をDevmodePropertyBagから取得し、取得した設定値を示すPrintTicketを返信する。また、設定制御部323は、PrintTicketで示された設定値をDevmodePropertyBagに保存する。
なお、OS302に返信されたPrintCapabilityやPrintTicketは、例えば、拡張設定部313が表示する印刷設定画面における各機能の現在値の表示、選択肢の表示等に利用される。
描画部333は、アプリケーション301において印刷指示が行われた印刷対象データから印刷データを作成する。
ストアデバイスアプリ304は、ストアアプリ311から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。なお、ストアデバイスアプリ304は、ストアアプリ311と同様に、「Windowsストア」から入手可能なアプリケーションである。
デスクトップアプリ321から印刷を行う場合、プリンタドライバ303は、拡張設定部313により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。一方で、ストアアプリ311から印刷を行う場合、プリンタドライバ303は、ストアデバイスアプリ304により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。
拡張設定部313及びストアデバイスアプリ304は、ベンダ独自の印刷設定画面を表示するUI部305を構成する。
<V4プリンタドライバ303及びストアデバイスアプリ304がアクセス可能な記憶領域>
次に、V4プリンタドライバ303及びストアデバイスアプリ304がアクセス可能な記憶領域について、図5を用いて説明する。図5は、V4プリンタドライバ303及びストアデバイスアプリ304がアクセス可能な記憶領域について説明するための図である。
図5に示すように、拡張設定部313、設定制御部323、描画部333、及びストアデバイスアプリ304は、PropertyBag400と呼ばれる記憶領域にアクセスすることができる。なお、このような記憶領域へのアクセスは、OS302によって提供されるAPI(Application Programming Interface)を用いて行うことができる。
図5に示すように、PropertyBag400には、DriverPropertyBag410と、QueuePropertyBag420と、UserPropertyBag430とが含まれる。
DriverPropertyBag410は、V4プリンタドライバ303を作成するときに決定された構成情報等を記憶する記憶領域である。拡張設定部313、設定制御部323、描画部333、及びストアデバイスアプリ304は、DriverPropertyBag410から各種情報の読み出しが可能である。一方で、拡張設定部313、設定制御部323、描画部333、及びストアデバイスアプリ304は、DriverPropertyBag410に対して、情報の書き込みを行うことはできない。
QueuePropertyBag420は、論理プリンタ(プリンタアイコン)毎の設定情報等を記憶する記憶領域である。拡張設定部313及びストアデバイスアプリ304は、QueuePropertyBag420に対して、各種情報の読み出し及び書き込みが可能である。また、設定制御部323及び描画部333は、QueuePropertyBag420に対して、各種情報の読み出しが可能である。
なお、論理プリンタとは、例えば、OS302のプリンタフォルダ等にプリンタアイコンとして表示される仮想的なプリンタである。例えば、クライアント装置10の利用者は、1つの画像形成装置20に対して、設定情報(例えば、用紙サイズや向き、印刷品質等)が異なる複数の論理プリンタを作成することができる。
UserPropertyBag430は、論理プリンタ毎に、ユーザ毎の設定情報等を記憶する記憶領域である。拡張設定部313、設定制御部323、及びストアデバイスアプリ304は、UserPropertyBag430に対して、各種情報の読み出し及び書き込みが可能である。
また、拡張設定部313及び描画部333は、更に、独自記憶領域500に対して、各種情報の読み出し及び書き込みが可能である。
独自記憶領域500は、例えばレジストリやファイル等を用いて実現され、PropertyBag400とは異なる記憶領域である。独自記憶領域500は、V4プリンタドライバ303を提供するベンダ等によって定義される。
ストアデバイスアプリ304は、OS302の課す制約により、PropertyBag400以外の記憶領域に対してアクセスすることはできない。また、設定制御部323は、上述したDevmodePropertyBag及びPropertyBag400以外の記憶領域に対してアクセスすることはできない。すなわち、ストアデバイスアプリ304及び設定制御部323は、独自記憶領域500に対して、各種情報の読み出しや書き込み等を行うことができない。
このことは、ストアアプリ311に課されている制約と同様であり、例えば、ストアデバイスアプリ304及び設定制御部323が、OS302が使用するレジストリ等を変更し、OS302の動作に悪影響を与えることを防ぐためである。このような技術は、「サンドボックス」等と称されている。
(実施例1)
<機能構成>
次に、実施例1のクライアント装置10の機能構成について、図6を用いて説明する。図6は、一実施形態に係るクライアント装置10の一例の機能構成を示す図(実施例1)である。
図6に示すように、実施例1のクライアント装置10の拡張設定部313は、表示部601と、機能管理部602と、用語管理部603と、レイアウト管理部604とを有する。なお、拡張設定部313は、プリンタ拡張(PrinterExtensions)である。
また、クライアント装置10のストアデバイスアプリ304は、表示部701と、機能管理部702と、用語管理部703と、レイアウト管理部704とを有する。
更に、クライアント装置10は、機能情報記憶部510と、用語情報記憶部520と、レイアウト情報記憶部530と、共有記憶部450とを有する。これら各記憶部のうち、機能情報記憶部510、用語情報記憶部520、及びレイアウト情報記憶部530は、独自記憶領域500により実現される。一方で、共有記憶部450は、UserPropertyBag430やQueuePropertyBag420等により実現可能である。
なお、共有記憶部450は、これに限られない。共有記憶部450は、ストアデバイスアプリ304からアクセス可能な記憶領域であれば、例えば、ストアデバイスアプリ304のLocalStateフォルダで実現されていても良いし、クライアント装置10とネットワークを介して接続される記憶装置等の所定の記憶領域により実現されていても良い。
表示部601は、機能管理部602から受け取った機能情報と、用語管理部603から受け取った用語情報と、レイアウト管理部604から受け取ったレイアウト情報とに基づいて、デスクトップ UIにおけるベンダ独自の印刷設定画面を表示する。なお、以降では、デスクトップ UIにおけるベンダ独自の印刷設定画面を、「ベンダ独自の印刷設定画面(デスクトップ UI)」又は「印刷設定画面(デスクトップ UI)」とも表す。
ここで、用語情報とは、ベンダ独自の印刷設定画面に表示される印刷設定の表示名等に関する情報である。また、レイアウト情報とは、ベンダ独自の印刷設定画面に配置されるコンボボックスやスピンボックス等の各種GUI(Graphical User Interface)部品の配置位置や大きさ等に関する情報である。更に、機能情報とは、ユーザが追加や変更、削除可能な機能(例えば、複数の印刷設定を1つのセットとした設定セットやウォータマーク(透かし)等)に関する設定情報である。
機能管理部602は、ベンダ独自の印刷設定画面(デスクトップ UI)の表示に用いられる機能情報を管理する。
すなわち、機能管理部602は、表示部601からの要求(機能情報の取得要求)に応じて、機能情報記憶部510に記憶されている機能情報と、共有記憶部450に記憶(保存)されている機能情報とを取得する。そして、機能管理部602は、取得した機能情報を表示部601に返信すると共に、共有記憶部450に保存する。なお、共有記憶部450とは、後述するように、拡張設定部313とストアデバイスアプリ304との間で共有する各種情報(用語情報、レイアウト情報、及び機能情報)を記憶する。
また、機能管理部602は、表示部601からの要求(機能情報の更新要求)に応じて、機能情報記憶部510に記憶されている機能情報と、共有記憶部450に記憶(保存)されている機能情報とを更新する。
用語管理部603は、ベンダ独自の印刷設定画面(デスクトップ UI)の表示に用いられる用語情報を管理する。すなわち、用語管理部603は、表示部601からの要求(用語情報の取得要求)に応じて、用語情報記憶部520から用語情報を取得して、取得した用語情報を表示部601に返信すると共に、共有記憶部450に保存する。
レイアウト管理部604は、ベンダ独自の印刷設定画面(デスクトップ UI)の表示に用いられるレイアウト情報を管理する。すなわち、レイアウト管理部604は、表示部601からの要求(レイアウト情報の取得要求)に応じて、レイアウト情報記憶部530からレイアウト情報を取得して、取得したレイアウト情報を表示部601に返信すると共に、共有記憶部450に保存する。
このように、機能管理部602、用語管理部603、及びレイアウト管理部604は、それぞれ機能情報、用語情報、及びレイアウト情報を取得して、共有記憶部450に保存する。これは、機能情報、用語情報、及びレイアウト情報は、上述したように、独自記憶領域500により実現される記憶部(機能情報記憶部510、用語情報記憶部520、及びレイアウト情報記憶部530)に記憶されているためである。また、機能情報、用語情報、及びレイアウト情報は、プリンタドライバ303のインストール後に追加や変更等される場合等があるためである。
具体的には、例えば、プリンタドライバ303のインストール後に、新たな言語(例えば、アラビア語等)に対応させたい場合には、ユーザは、用語情報記憶部520に用語情報を追加する等である。また、例えば、ユーザが自身の好みに応じて、印刷設定画面のレイアウトを変更したい場合には、ユーザは、レイアウト情報記憶部530に記憶されているレイアウト情報を変更する等である。
表示部701は、機能管理部702から受け取った機能情報と、用語管理部703から受け取った用語情報と、レイアウト管理部704から受け取ったレイアウト情報とに基づいて、ストアアプリ UIにおけるベンダ独自の印刷設定画面を表示する。なお、以降では、ストアアプリ UIにおけるベンダ独自の印刷設定画面を、「ベンダ独自の印刷設定画面(ストアアプリ UI)」又は「印刷設定画面(ストアアプリ UI)」とも表す。
機能管理部702は、ベンダ独自の印刷設定画面(ストアアプリ UI)の表示に用いられる機能情報を管理する。すなわち、機能管理部702は、表示部701からの要求(機能情報の取得要求)に応じて、共有記憶部450から機能情報を取得して、取得した機能情報を表示部701に返信する。
また、機能管理部702は、表示部701からの要求(機能情報の更新要求)に応じて、共有記憶部450に記憶(保存)されている機能情報を更新する。
用語管理部703は、ベンダ独自の印刷設定画面(ストアアプリ UI)の表示に用いられる用語情報を管理する。すなわち、用語管理部703は、表示部701からの要求(用語情報の取得要求)に応じて、共有記憶部450から用語情報を取得して、取得した用語情報を表示部701に返信する。
レイアウト管理部704は、ベンダ独自の印刷設定画面(ストアアプリ UI)の表示に用いられるレイアウト情報を管理する。すなわち、レイアウト管理部704は、表示部701からの要求(レイアウト情報の取得要求)に応じて、共有記憶部450からレイアウト情報を取得して、取得したレイアウト情報を表示部701に返信する。
用語情報記憶部520は、用語情報を記憶する。用語情報とは、上述したように、ベンダ独自の印刷設定画面に表示される印刷設定の表示名等に関する情報である。ここで、用語情報記憶部520に記憶されている用語情報1100の一例を図7に示す。
図7に示す用語情報1100では、JSON(JavaScript Object Notation)形式により、印刷設定を識別する設定識別情報と、当該設定識別情報の印刷設定画面における表示名とが対応付けられて定義されている。
すなわち、図7に示す用語情報1100では、例えば、設定識別情報「orientation」と「用紙方向」とが対応付けられている。また、図7に示す用語情報1100では、例えば、設定識別情報「printsize」と「用紙サイズ」とが対応付けられている。
これにより、表示部601は、ベンダ独自の印刷設定画面(デスクトップ UI)において、設定識別情報「orientation」で識別される印刷設定の設定値を設定するための項目名等を「用紙方向」と表示することができる。同様に、表示部601は、印刷設定画面(デスクトップ UI)において、設定識別情報「printsize」で識別される印刷設定の設定値を設定するための項目名等を「用紙サイズ」と表示することができる。なお、上記のことは、表示部701がベンダ独自の印刷設定画面(ストアアプリ UI)を表示する場合についても同様である。
レイアウト情報記憶部530は、レイアウト情報を記憶する。レイアウト情報とは、上述したように、ベンダ独自の印刷設定画面に配置される各種GUI部品の配置位置や大きさ等に関する情報である。ここで、レイアウト情報記憶部530に記憶されているレイアウト情報1200の一例を図8に示す。
図8に示すレイアウト情報1200では、JSON形式により、GUI部品の種別、GUI部品名、GUI部品の位置及び大きさが定義されている。
すなわち、図8に示すレイアウト情報1200では、例えば、GUI部品の種別が「Gui::ComboBox」、GUI部品名が「colorbw」、GUI部品の位置及び大きさが指定された「params」が定義されている。また、「params」には、GUI部品の配置位置を示す座標「"x":255」及び「"y":189」と、大きさ「"width":143」とが定義されている。
これにより、表示部601は、ベンダ独自の印刷設定画面(デスクトップ UI)にコンボボックスのGUI部品を配置した上で表示することができる。なお、上記のことは、表示部701がベンダ独自の印刷設定画面(ストアアプリ UI)を表示する場合についても同様である。
機能情報記憶部510は、機能情報を記憶する。機能情報とは、上述したように、ユーザが追加や変更、削除可能な機能(例えば、設定セットやウォータマーク等)に関する設定情報である。ここで、機能情報記憶部510に記憶されている機能情報1300の一例を図9に示す。
図9に示す機能情報1300では、JSON形式により、設定セットの名称、コメント、印刷設定及びその設定値が定義されている。
すなわち、図9に示す機能情報1300では、例えば、設定セットの名称が「2in1 landscape」、コメントが「test」、印刷設定及びその設定値が「settings」が定義されている。また、「settings」には、印刷設定「用紙方向」及びその設定値を示す「"orientation":"landscape"」と、印刷設定「集約」及びその設定値を示す「"nup":"2in1"」とが定義されている。
これにより、表示部601は、ユーザが追加や変更、削除可能な各種機能の情報を、ベンダ独自の印刷設定画面(デスクトップ UI)に表示することができる。なお、上記のことは、表示部701がベンダ独自の印刷設定画面(ストアアプリ UI)を表示する場合についても同様である。
なお、図9では、一例として、設定セットが定義された機能情報1300を示したが、これに限られない。機能情報は、例えば、ウォータマークや地紋印刷等の各種機能に関する設定情報が定義されたものであっても良い。
なお、機能情報記憶部510、用語情報記憶部520、及びレイアウト情報記憶部530は、上述したように、独自記憶領域500により実現される。このため、これらの記憶部は、拡張設定部313からはアクセス可能である一方、ストアデバイスアプリ304からはアクセスすることができない。
共有記憶部450は、拡張設定部313とストアデバイスアプリ304との間で共有する各種情報(用語情報、レイアウト情報、及び機能情報)を記憶する。なお、共有記憶部450は、上述したように、例えば、UserPropertyBag430やQueuePropertyBag420等により実現される。このため、共有記憶部450は、拡張設定部313及びストアデバイスアプリ304のいずれからもアクセス可能である。
したがって、クライアント装置10は、拡張設定部313とストアデバイスアプリ304との間で、共通の用語情報、レイアウト情報、及び機能情報を用いて、ベンダ独自の印刷設定画面を表示することができる。
これにより、クライアント装置10は、例えば、ベンダ独自の印刷設定画面(デスクトップ UI)で機能情報が変更された場合、当該変更を、ベンダ独自の印刷設定画面(ストアアプリ UI)にも反映することができる。同様に、クライアント装置10は、例えば、ベンダ独自の印刷設定画面(ストアアプリ UI)で機能情報が変更された場合、当該変更を、ベンダ独自の印刷設定画面(デスクトップ UI)にも反映することができる。
<処理の詳細>
次に、実施例1のクライアント装置10の処理の詳細について説明する。
≪印刷設定画面(デスクトップ UI)の表示及び機能情報の変更≫
まず、クライアント装置10のユーザがデスクトップアプリ321から、ベンダ独自の印刷設定画面(デスクトップ UI)を表示した後、機能情報を変更する場合の処理について、図10を用いて説明する。図10は、印刷設定画面(デスクトップ UI)の表示後、機能情報を変更する場合の処理の一例を示すシーケンス図である。
まず、ユーザは、デスクトップアプリ321から印刷設定画面の表示操作を行う(ステップS1001)。すなわち、ユーザは、例えば、デスクトップアプリ321において印刷指示を行うことにより表示される印刷画面において、ベンダ独自の印刷設定画面を表示するための操作を行う。なお、ユーザは、例えば、当該印刷画面において、「詳細設定」ボタン等を押下することにより、ベンダ独自の印刷設定画面を表示するための操作を行うことができる。
デスクトップアプリ321は、ユーザにより印刷設定画面の表示操作が行われると、当該表示操作を受け付ける(ステップS1002)。そして、デスクトップアプリ321は、ベンダ独自の印刷設定画面の表示を、拡張設定部313の表示部601に要求する(ステップS1003)。
次に、拡張設定部313の表示部601は、ベンダ独自の印刷設定画面の表示要求を受け取ると、用語情報の取得を用語管理部603に要求する(ステップS1004)。
用語管理部603は、用語情報の取得要求を受け取ると、用語情報記憶部520から用語情報を取得する(ステップS1005)。すなわち、用語管理部603は、用語情報記憶部520から、例えば図7に示す用語情報1100を取得する。
次に、用語管理部603は、上記のステップS1005で取得した用語情報を共有記憶部450に保存する(ステップS1006)。これにより、拡張設定部313とストアデバイスアプリ304との間で、上記のステップS1005で取得された用語情報を共有することができるようになる。
そして、用語管理部603は、上記のステップS1005で取得した用語情報を表示部601に返信する。
なお、拡張設定部313は、例えば、プリンタ拡張(PrinterExtensions)の起動時に渡される引数「PrinterExtensionEventArgs」を用いて、PropertyBag400にアクセスすることができる。
次に、表示部601は、レイアウト情報の取得をレイアウト管理部604に要求する(ステップS1007)。
レイアウト管理部604は、レイアウト情報の取得要求を受け取ると、レイアウト情報記憶部530からレイアウト情報を取得する(ステップS1008)。すなわち、レイアウト管理部604は、レイアウト情報記憶部530から、例えば図8に示すレイアウト情報1200を取得する。
次に、レイアウト管理部604は、上記のステップS1008で取得したレイアウト情報を共有記憶部450に保存する(ステップS1009)。これにより、拡張設定部313とストアデバイスアプリ304との間で、上記のステップS1008で取得されたレイアウト情報を共有することができるようになる。
そして、レイアウト管理部604は、上記のステップS1008で取得したレイアウト情報を表示部601に返信する。
次に、表示部601は、機能情報の取得を機能管理部602に要求する(ステップS1010)。
機能管理部602は、機能情報の取得要求を受け取ると、機能情報記憶部510に記憶されている機能情報と、共有記憶部450に記憶(保存)されている機能情報とを取得する(ステップS1011)。
なお、例えば、機能情報記憶部510には機能情報が記憶されている一方で、共有記憶部450には機能情報が記憶(保存)されていない場合、機能管理部602は、機能情報記憶部510に記憶されている機能情報のみを取得する。
また、例えば、機能情報記憶部510と共有記憶部450との両方に機能情報が記憶されている場合、これらの機能情報のうち、更新日時が最新の機能情報のみを取得しても良い。
次に、機能管理部602は、上記のステップS1011で取得した機能情報を共有記憶部450に保存する(ステップS1012)。これにより、拡張設定部313とストアデバイスアプリ304との間で、上記のステップS1011で取得した機能情報を共有することができるようになる。
なお、例えば、上記のステップS1011で共有記憶部450に記憶されている機能情報のみが取得された場合、機能管理部602は、ステップS1012の処理を行わなくても良い。
そして、機能管理部602は、上記のステップS1011で取得した機能情報を表示部601に返信する。
表示部601は、用語情報、レイアウト情報、及び機能情報を受け取ると、これらの各情報に基づいて、ベンダ独自の印刷設定画面(デスクトップ UI)を表示する(ステップS1013)。すなわち、表示部601は、例えば図11に示す印刷設定画面(デスクトップ UI)G100を表示する。
図11に示す印刷設定画面(デスクトップ UI)G100は、用語情報、レイアウト情報、及び機能情報に基づいて表示される、デスクトップUIにおけるベンダ独自の印刷設定画面である。
ここで、図11に示す印刷設定画面(デスクトップ UI)G100には、設定セットの一覧を示す設定セット一覧G110と、設定セット一覧G110の中から選択された設定セットを編集するための設定セットの編集ボタンG120とが含まれる。
このように、拡張設定部313の表示部601は、用語情報、レイアウト情報、及び機能情報に基づいて、ベンダ独自の印刷設定画面(デスクトップ UI)を表示する。
次に、ユーザは、印刷設定画面(デスクトップ UI)において、機能情報の変更操作を行う(ステップS1014)。すなわち、ユーザは、例えば、図11に示す印刷設定画面(デスクトップ UI)G100において、設定セット一覧G110の中から所望の設定セットを選択した上で、編集ボタンG120を押下して、設定セットの編集を行うことで機能情報の変更操作を行う。設定セットの編集とは、例えば、設定セットの名称、コメント、印刷設定及びその設定値等を変更することである。
なお、機能情報の変更は、設定セットの編集に限られない。機能情報の変更には、例えば、ウォータマーク(透かし)機能に用いる画像の変更等であっても良い。このように、機能情報の変更とは、ベンダが独自に提供する各種機能の設定等を変更することである。
表示部601は、ユーザにより機能情報の変更操作が行われると、当該変更操作を受け付ける(ステップS1015)。そして、表示部601は、機能情報の更新を機能管理部602に要求する(ステップS1016)。なお、機能情報の更新要求には、例えば、ユーザの変更操作により変更された機能情報が含まれる。
機能管理部602は、機能情報の更新要求を受け取ると、機能情報記憶部510に記憶されている機能情報と、共有記憶部450に記憶(保存)されている機能情報とを更新する(ステップS1017)。すなわち、機能管理部602は、機能情報の更新要求に含まれる機能情報で、機能情報記憶部510及び共有記憶部450にそれぞれ記憶されている機能情報を更新する。
具体的には、例えば、機能情報の更新要求に含まれる機能情報の「name」が「2in1 landscape」であるとする。このとき、機能管理部602は、機能情報記憶部510に記憶されている機能情報のうち、「name」が「2in1 landscape」である機能情報を更新する。同様に、機能管理部602は、共有記憶部450に記憶されている機能情報のうち、「name」が「2in1 landscape」である機能情報を更新する。
これにより、ベンダ独自の印刷設定画面(デスクトップ UI)において、機能情報が変更された場合、クライアント装置10は、機能情報記憶部510及び共有記憶部450にそれぞれ記憶されている機能情報を、変更後の機能情報に更新することができる。
≪印刷設定画面(ストアアプリ UI)の表示及び機能情報の変更≫
次に、クライアント装置10のユーザがストアアプリ311から、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示した後、機能情報を変更する場合の処理について、図12を用いて説明する。図12は、印刷設定画面(ストアアプリ UI)の表示後、機能情報を変更する場合の処理の一例を示すシーケンス図である。
まず、ユーザは、ストアアプリ311から印刷設定画面の表示操作を行う(ステップS1201)。すなわち、ユーザは、例えば、ストアアプリ311において印刷指示を行うことにより表示される印刷画面において、ベンダ独自の印刷設定画面を表示するための操作を行う。なお、ユーザは、例えば、当該印刷画面において、「詳細設定」ボタン等を押下することにより、ベンダ独自の印刷設定画面を表示するための操作を行うことができる。
ストアアプリ311は、ユーザにより印刷設定画面の表示操作が行われると、当該表示操作を受け付ける(ステップS1202)。そして、ストアアプリ311は、ベンダ独自の印刷設定画面の表示を、ストアデバイスアプリ304の表示部701に要求する(ステップS1203)。
次に、ストアデバイスアプリ304の表示部701は、ベンダ独自の印刷設定画面の表示要求を受け取ると、用語情報の取得を用語管理部703に要求する(ステップS1204)。
用語管理部703は、用語情報の取得要求を受け取ると、共有記憶部450から用語情報を取得する(ステップS1205)。すなわち、用語管理部703は、図10のステップS1006で拡張設定部313により共有記憶部450に保存された用語情報を取得する。これにより、ストアデバイスアプリ304は、拡張設定部313が印刷設定画面(デスクトップ UI)を表示する際に用いる用語情報と同一の用語情報を用いて印刷設定画面(ストアアプリ UI)を表示することができる。
そして、用語管理部703は、上記のステップS1205で取得した用語情報を表示部701に返信する。
なお、ストアデバイスアプリ304は、例えば、PrintExtensionContextを用いて、PropertyBag400にアクセスすることができる。
次に、表示部701は、レイアウト情報の取得をレイアウト管理部704に要求する(ステップS1206)。
レイアウト管理部704は、レイアウト情報の取得要求を受け取ると、共有記憶部450からレイアウト情報を取得する(ステップS1207)。すなわち、レイアウト管理部704は、図10のステップS1009で拡張設定部313により共有記憶部450に保存されたレイアウト情報を取得する。これにより、ストアデバイスアプリ304は、拡張設定部313が印刷設定画面(デスクトップ UI)を表示する際に用いるレイアウト情報と同一のレイアウト情報を用いて印刷設定画面(ストアアプリ UI)を表示することができる。
そして、レイアウト管理部704は、上記のステップS1207で取得したレイアウト情報を表示部701に返信する。
次に、表示部701は、機能情報の取得を機能管理部702に要求する(ステップS1208)。
機能管理部702は、機能情報の取得要求を受け取ると、共有記憶部450から機能情報を取得する(ステップS1209)。すなわち、機能管理部702は、図10のステップS1012で拡張設定部313により共有記憶部450に保存された機能情報を取得する。これにより、ストアデバイスアプリ304は、拡張設定部313が印刷設定画面(デスクトップ UI)を表示する際に用いる機能情報と同一の機能情報を用いて印刷設定画面(ストアアプリ UI)を表示することができる。
そして、機能管理部702は、上記のステップS1209で取得した機能情報を表示部701に返信する。
表示部701は、用語情報、レイアウト情報、及び機能情報を受け取ると、これらの各情報に基づいて、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示する(ステップS1210)。すなわち、表示部701は、例えば図13に示す印刷設定画面(ストアアプリ UI)G200を表示する。
図13に示す印刷設定画面(ストアアプリ UI)G200は、用語情報、レイアウト情報、及び機能情報に基づいて表示される、ストアアプリ UIにおけるベンダ独自の印刷設定画面である。
ここで、図13に示す印刷設定画面(ストアアプリ UI)G200には、設定セットの一覧を示す設定セット一覧G210が含まれる。なお、設定セット一覧G210は、例えば、図13に示す印刷設定画面(ストアアプリ UI)G200を表示した際には表示されておらず、所定のGUI部品を押下等することで表示されても良い。
このように、ストアデバイスアプリ304の表示部701は、共有記憶部450に記憶されている用語情報、レイアウト情報、及び機能情報に基づいて、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示する。換言すれば、ストアデバイスアプリ304は、拡張設定部313との間で共有している用語情報、レイアウト情報、及び機能情報に基づいて、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示する。
次に、ユーザは、印刷設定画面(ストアアプリ UI)において、機能情報の変更操作を行う(ステップS1211)。すなわち、ユーザは、例えば、図13に示す印刷設定画面(ストアアプリ UI)G200において、設定セット一覧G210の中から所望の設定セットを選択して、設定セットを編集するための操作を行うことで、機能情報の変更操作を行う。なお、上述したように、機能情報の変更は、設定セットの編集に限られない。
表示部701は、ユーザにより機能情報の変更操作が行われると、当該変更操作を受け付ける(ステップS1212)。そして、表示部701は、機能情報の更新を機能管理部702に要求する(ステップS1213)。なお、機能情報の更新要求には、例えば、ユーザの変更操作により変更された機能情報が含まれる。
機能管理部702は、機能情報の更新要求を受け取ると、共有記憶部450に記憶(保存)されている機能情報を更新する(ステップS1214)。すなわち、機能管理部702は、例えば、共有記憶部450に記憶されている機能情報を、機能情報の更新要求に含まれる機能情報で更新する。
これにより、ベンダ独自の印刷設定画面(ストアアプリ UI)において、機能情報が変更された場合、クライアント装置10は、共有記憶部450に記憶されている機能情報を、変更後の機能情報に更新することができる。
以上のように、実施例1のクライアント装置10では、拡張設定部313とストアデバイスアプリ304との間で、用語情報、レイアウト情報、及び機能情報を共有することができる。このため、実施例1のクライアント装置10では、同一の用語情報、レイアウト情報、及びレイアウト情報に基づいて、印刷設定画面(デスクトップ UI)及び印刷設定画面(ストアアプリ UI)を表示することができる。
また、実施例1のクライアント装置10では、印刷設定画面(デスクトップ UI)又は印刷設定画面(ストアアプリ UI)のいずれか一方の画面において、機能情報が変更された場合、共有記憶部450に記憶されている機能情報を更新する。これにより、実施例1のクライアント装置10では、印刷設定画面(デスクトップ UI)又は印刷設定画面(ストアアプリ UI)のいずれかの一方の画面で行われた機能情報の変更操作を、他方の画面に反映させることができる。
更に、実施例1のクライアント装置10では、例えば、用語情報記憶部520に記憶されている用語情報やレイアウト情報記憶部530に記憶されているレイアウト情報を変更することで、印刷設定画面(デスクトップ UI)に対する表示態様の変更を、印刷設定画面(ストアアプリ UI)にも反映させることができる。すなわち、実施例1のクライアント装置10では、用語情報記憶部520に記憶されている用語情報やレイアウト情報記憶部530に記憶されているレイアウト情報を変更することで、印刷設定画面(ストアアプリ UI)の表示態様を動的に変更することができる。
≪印刷設定画面(ストアアプリ UI)の表示及び機能情報の変更の変形例≫
ここで、図10を用いて説明した印刷設定画面(ストアアプリ UI)の表示及び機能情報の変更の変形例について、図14を用いて説明する。図14は、印刷設定画面(デスクトップ UI)の表示後、機能情報を変更する場合の処理の他の例を示すシーケンス図である。図14では、プリンタドライバ303は、複数の機種の画像形成装置20に対応(サポート)しているものとする(すなわち、プリンタドライバ303は、いわゆる機種共通プリンタドライバである。)。なお、図14において、ステップS1001〜ステップS1012及びステップS1014〜ステップS1017の処理は、図10と同様であるため、その説明を省略する。
ステップS1012に続いて、表示部601は、用語情報、レイアウト情報、及び機能情報を受け取ると、これらの各情報に基づいて、機種Aのベンダ独自の印刷設定画面(デスクトップ UI)を表示する(ステップS1401)。ここで、機種Aは、例えば、プリンタドライバ303に予め設定された画像形成装置20の機種である。
次に、ユーザは、機種Aの印刷設定画面(デスクトップ UI)において、機種の切替操作を行う(ステップS1402)。以降では、ユーザは、機種Bに切り替えるための操作を行ったものとする。
表示部601は、ユーザにより機種の切替操作が行われると、当該切替操作を受け付ける(ステップS1403)。そして、ステップS1004〜ステップS1012に続いて、表示部601は、用語情報、レイアウト情報、及び機能情報を受け取ると、これらの各情報に基づいて、機種Bのベンダ独自の印刷設定画面(デスクトップ UI)を表示する(ステップS1404)。
このように、クライアント装置10は、印刷設定画面(デスクトップ UI)において、機種の切替操作が行われた場合、用語情報、レイアウト情報、及び機能情報を共有記憶部450に保存する処理(ステップS1004〜ステップS1012)を実行しても良い。これにより、クライアント装置10は、例えば、拡張設定部313とストアデバイスアプリ304との間で、機種毎に、用語情報、レイアウト情報、及び機能情報を共有することができる。
(実施例2)
次に、実施例2について説明する。実施例2は、プリンタドライバ303のインストール時に、用語情報、レイアウト情報、及び機能情報を共有記憶部450に保存するものである。これにより、実施例2のクライアント装置10では、例えば、印刷設定画面(デスクトップ UI)が表示される前であっても、拡張設定部313とストアデバイスアプリ304との間で、用語情報、レイアウト情報、及び機能情報を共有することができる。
なお、実施例2では、実施例1と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、実施例1と同一の符号を用いて、その説明を省略する。
<機能構成>
まず、実施例2のクライアント装置10の機能構成について、図15を用いて説明する。図15は、一実施形態に係るクライアント装置10の一例の機能構成を示す図(実施例2)である。
図15に示すように、実施例2のクライアント装置10は、インストーラ800を有する。インストーラ800は、プリンタドライバ303をクライアント装置10にインストールするためのプログラムである。
インストーラ800は、プリンタドライバ303のインストール時に、用語情報、レイアウト情報、及び機能情報の保存を拡張設定部313に要求する。これにより、拡張設定部313は、用語情報、レイアウト情報、及び機能情報を共有記憶部450に保存することができる。
<処理の詳細>
次に、実施例2のクライアント装置10の処理の詳細について説明する。
≪プリンタドライバ303のインストール時における用語情報、レイアウト情報、及び機能情報の保存≫
以降では、プリンタドライバ303のインストール時に、用語情報、レイアウト情報、及び機能情報を共有記憶部450に保存する場合の処理について、図16を用いて説明する。図16は、プリンタドライバ303のインストール時に、用語情報、レイアウト情報、及び機能情報を共有記憶部450に保存する処理の一例を示すシーケンス図である。
まず、ユーザは、インストーラ800から、プリンタドライバ303のインストール操作を行う(ステップS1601)。すなわち、ユーザは、例えば、インストーラ800により表示されるインストール開始画面において、プリンタドライバ303のインストールを開始するための操作を行う。
インストーラ800は、ユーザによりインストール操作が行われると、当該インストール操作を受け付ける(ステップS1602)。そして、インストーラ800は、情報(用語情報、レイアウト情報、及び機能情報)の保存を、拡張設定部313の表示部601に要求する(ステップS1603)。なお、インストーラ800は、例えば、CreateProcess()により、情報の保存要求を拡張設定部313に行うことができる。
その後、拡張設定部313は、ステップS1004〜ステップS1012の処理を実行する。すなわち、拡張設定部313は、機能情報記憶部510、用語情報記憶部520、及びレイアウト情報記憶部530にそれぞれ記憶されている機能情報、用語情報、及びレイアウト情報を、共有記憶部450に保存する。
以上により、実施例2のクライアント装置10では、プリンタドライバ303のインストール時に、用語情報、レイアウト情報、及び機能情報を共有記憶部450に保存することができる。これにより、実施例2のクライアント装置10では、例えば、印刷設定画面(デスクトップ UI)を表示する前であっても、用語情報、レイアウト情報、及び機能情報に基づいて、印刷設定画面(ストアアプリ UI)を表示することができる。
(実施例3)
次に、実施例3について説明する。実施例3は、例えば、設定セットが定義されている機能情報に基づいて、当該設定セットを表すアイコン(画像)を生成するものである。すなわち、上述したように、共有記憶部450は、例えば、UserPropertyBag430やQueuePropertyBag420により実現されるが、これらの記憶領域には画像データを保存することはできない。そこで、実施例3では、印刷設定画面(デスクトップ UI)と印刷設定画面(ストアアプリ UI)との間で共有している機能情報に基づいて、設定セットを表すアイコンの画像データを生成するものである。
これにより、実施例3のクライアント装置10では、例えば、印刷設定画面(デスクトップ UI)と印刷設定画面(ストアアプリ UI)との間で、同様の設定セットを表すアイコンの画像データを生成することができる。
なお、実施例3では、実施例1と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、実施例1と同一の符号を用いて、その説明を省略する。
<機能構成>
まず、実施例3のクライアント装置10の機能構成について、図17を用いて説明する。図17は、一実施形態に係るクライアント装置10の一例の機能構成を示す図(実施例3)である。
図17に示すように、実施例3のクライアント装置10の拡張設定部313は、画像生成部605を有する。また、実施例3のクライアント装置10のストアデバイスアプリ304は、画像生成部705を有する。更に、実施例3のクライアント装置10は、画像記憶部460を有する。画像記憶部460は、例えば、ストアデバイスアプリ304が書き込み可能なLocalStateフォルダで実現される。
拡張設定部313の画像生成部605は、機能管理部602からの要求(画像の生成要求)に応じて、例えば、機能情報に定義されている設定セットを表すアイコンの画像データを生成する。また、画像生成部605は、生成した画像データを機能情報記憶部510に記憶させる。
ストアデバイスアプリ304の画像生成部705は、機能管理部702からの要求(画像の生成要求)に応じて、例えば、機能情報に定義されている設定セットを表すアイコンの画像データを生成する。また、画像生成部705は、生成した画像データを画像記憶部460に保存する。
画像記憶部460は、画像生成部750により生成された画像データを、機能情報と対応付けて記憶(保存)している。
ここで、設定セットを表すアイコンの一例を図18に示す。図18(a)に示すアイコン2100は、図9に示す機能情報1300に定義された設定セット(2in1 landscape)を表し、拡張設定部313の画像生成部605が生成した画像データにより表示されるアイコンである。また、図18(b)に示すアイコン2200は、図9に示す機能情報1300に定義された設定セット(2in1 landscape)を表し、ストアデバイスアプリ304の画像生成部705が生成した画像データにより表示されるアイコンである。
このように、画像生成部605は、印刷設定画面(デスクトップ UI)に表示されるアイコン2100の画像データを生成する。また、画像生成部705は、印刷設定画面(ストアアプリ UI)に表示されるアイコン2200の画像データを生成する。
なお、図18に示す例では、同一の設定セットを表すアイコン2100及びアイコン2200が異なる場合の例を示したが、これに限られず、アイコン2100及びアイコン2200は同一であっても良い。すなわち、画像生成部605及び画像生成部705は、同一の設定セットを表すアイコンについて、当該アイコンを表示する同一の画像データをそれぞれ生成しても良い。
<処理の詳細>
次に、実施例3のクライアント装置10の処理の詳細について説明する。
≪印刷設定画面(デスクトップ UI)の表示及び機能情報の登録≫
まず、クライアント装置10のユーザがデスクトップアプリ321から、ベンダ独自の印刷設定画面(デスクトップ UI)を表示した後、機能情報(設定セット)を登録する場合の処理について、図19を用いて説明する。図19は、印刷設定画面(デスクトップ UI)の表示後、設定セットを登録する場合の処理の一例を示すシーケンス図である。
ステップS1013に続いて、ユーザは、印刷設定画面(デスクトップ UI)において、機能情報の登録操作を行う(ステップS1901)。すなわち、ユーザは、例えば、設定セットを登録(追加)するための登録操作を行う。以降では、ユーザは、設定セットの登録操作を行ったものとして説明する。
なお、機能情報の登録は、設定セットの登録に限られない。機能情報の登録には、例えば、ウォータマーク(透かし)に用いる画像の登録、印刷面にスタンプする画像の登録、地紋印刷に用いる画像の登録等で宛も良い。このように、機能情報の登録とは、ベンダが独自に提供する各種機能の設定等を登録することである。
表示部601は、ユーザにより機能情報の登録操作が行われると、当該登録操作を受け付ける(ステップS1902)。そして、表示部601は、機能情報の登録を機能管理部602に要求する(ステップS1903)。なお、機能情報の登録要求には、例えば、ユーザの登録操作により作成された機能情報(すなわち、設定セットが定義された機能情報)が含まれる。
機能管理部602は、機能情報の登録要求を受け取ると、当該登録要求に含まれる機能情報を機能情報記憶部510に保存する(ステップS1904)。
また、機能管理部602は、当該登録要求に含まれる機能情報を共有記憶部450に保存する(ステップS1905)。これにより、拡張設定部313とストアデバイスアプリ304との間で、ユーザにより登録された機能情報を共有することができるようになる。
次に、機能管理部602は、機能情報に定義された設定セットを表す画像の生成を画像生成部605に要求する(ステップS1906)。なお、画像の生成要求には、例えば、上記のステップS1904で機能情報記憶部510に保存された機能情報が含まれる。
画像生成部605は、画像の生成要求を受け取ると、当該生成要求に含まれる機能情報に基づいて、当該機能情報に定義された設定セットを表すアイコンの画像データを生成する(ステップS1907)。ここで、画像生成部605は、例えば、機能情報の「settings」に定義された印刷設定及びその設定値に応じた画像データを生成する。
なお、画像生成部605は、例えば、印刷設定及びその設定値と、画像データとが対応付けられた所定のテーブルを参照した上で、当該テーブルから画像データを取得しても良い。このようなテーブルは、例えば、画像生成部605を実現するプログラムやモジュール等に予め定義されていても良い。
次に、画像生成部605は、上記のステップS1907で生成した画像データを、上記のステップS1904で保存された機能情報と対応付けて機能情報記憶部510に保存する(ステップS1908)。
以上により、ベンダ独自の印刷設定画面(デスクトップ UI)において、機能情報が登録された場合、クライアント装置10は、機能情報記憶部510に機能情報を登録することができる。
また、クライアント装置10は、例えば設定セット等が定義された機能情報が登録された場合、当該設定セットを表すアイコン等の画像データを生成することができる。これにより、クライアント装置10は、ベンダ独自の印刷設定画面(デスクトップ UI)において、設定セットを表すアイコン等を表示することができる。
≪印刷設定画面(ストアアプリ UI)の表示及び機能情報の登録≫
次に、クライアント装置10のユーザがストアアプリ311から、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示した後、機能情報(設定セット)を登録する場合の処理について、図20を用いて説明する。図20は、印刷設定画面(ストアアプリ UI)の表示後、設定セットを登録する場合の処理の一例を示すシーケンス図である。
ステップS1208に続いて、機能管理部702は、機能情報の取得要求を受け取ると、共有記憶部450から機能情報を取得する(ステップS2001)。すなわち、機能管理部702は、図10のステップS1012で拡張設定部313により共有記憶部450に保存された機能情報を取得する。
次に、機能管理部702は、上記のステップS2001で取得した機能情報に対応付けて記憶されている画像データを画像記憶部460から取得する(ステップS2002)。
ここで、上記のステップS2001で取得した機能情報に対応付けて記憶されている画像データが画像記憶部460に記憶されていない場合、ストアデバイスアプリ304は、ステップS2003〜ステップS2005の処理を実行する。
すなわち、まず、機能管理部702は、画像の生成を画像生成部705に要求する(ステップS2003)。なお、画像の生成要求には、例えば、上記のステップS2202で機能情報記憶部510から取得された機能情報が含まれる。
次に、画像生成部705は、画像の生成要求を受け取ると、当該生成要求に含まれる機能情報に基づいて、当該機能情報に定義された設定セットを表すアイコンの画像データを生成する(ステップS2004)。ここで、画像生成部705は、例えば、機能情報の「settings」に定義された印刷設定及びその設定値に応じた画像データを生成する。
なお、画像生成部705は、例えば、印刷設定及びその設定値と、画像データとが対応付けられた所定のテーブルを参照した上で、当該テーブルから画像データを取得しても良い。
次に、画像生成部705は、上記のステップS2004で生成した画像データを、上記のステップS2001で取得された機能情報と対応付けて画像記憶部460に保存する(ステップS2005)。そして、画像生成部705は、生成した画像データを機能管理部702に返信する。
その後、機能管理部702は、上記のステップS2001で取得した機能情報と、上記のステップS2002で取得した画像データ又は画像生成部705から返信された画像データとを表示部701に返信する。
これにより、ベンダ独自の印刷設定画面(ストアアプリ UI)において、例えば設定セットを表すアイコン等を表示することができる。
次に、ユーザは、印刷設定画面(ストアアプリ UI)において、機能情報の登録操作を行う(ステップS2006)。すなわち、ユーザは、例えば、設定セットを登録(追加)するための登録操作を行う。以降では、ユーザは、設定セットの登録操作を行ったものとして説明する。
表示部701は、ユーザにより機能情報の登録操作が行われると、当該登録操作を受け付ける(ステップS2007)。そして、表示部701は、機能情報の登録を機能管理部702に要求する(ステップS2008)。なお、機能情報の登録要求には、例えば、ユーザの登録操作により作成された機能情報(すなわち、設定セットが定義された機能情報)が含まれる。
機能管理部702は、機能情報の登録要求を受け取ると、当該登録要求に含まれる機能情報に定義された設定セットを表す画像の生成を画像生成部705に要求する(ステップS2009)。なお、画像の生成要求には、例えば、ユーザの登録操作により作成された機能情報が含まれる。
画像生成部705は、画像の生成要求を受け取ると、当該生成要求に含まれる機能情報に基づいて、当該機能情報に定義された設定セットを表すアイコンの画像データを生成する(ステップS2010)。ここで、画像生成部705は、例えば、機能情報の「settings」に定義された印刷設定及びその設定値に応じた画像データを生成する。そして、画像生成部705は、生成した画像データを機能管理部702に返信する。
なお、画像生成部705は、例えば、印刷設定及びその設定値と、画像データとが対応付けられた所定のテーブルを参照した上で、当該テーブルから画像データを取得しても良い。
機能管理部702は、画像生成部705から画像データを受け取ると、当該画像データを、ユーザの登録操作により作成された機能情報と対応付けて画像記憶部460に保存する(ステップS2011)。
以上により、ベンダ独自の印刷設定画面(ストアアプリ UI)において、例えば設定セット等が定義された機能情報が登録された場合、クライアント装置10は、当該設定セットを表すアイコン等の画像データを生成することができる。これにより、クライアント装置10は、ベンダ独自の印刷設定画面(ストアアプリ UI)において、設定セットを表すアイコン等を表示することができる。
(実施例4)
次に、実施例4について説明する。実施例4は、拡張設定部313とストアデバイスアプリ304との間で、機能情報として、例えば、任意の画像(例えば、スタンプ画像等)を共有するものである。なお、スタンプ画像とは、印刷物の印刷面にプリントされる画像である。
なお、実施例4では、実施例1と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、実施例1と同一の符号を用いて、その説明を省略する。
<機能構成>
まず、実施例4のクライアント装置10の機能構成について、図21を用いて説明する。図21は、一実施形態に係るクライアント装置10の一例の機能構成を示す図(実施例4)である。
図21に示すように、実施例4のクライアント装置10の拡張設定部313は、画像保存部606を有する。また、実施例4のクライアント装置10のストアデバイスアプリ304は、画像読込部706を有する。
拡張設定部313の画像保存部606は、機能管理部602からの要求(画像の保存要求)に応じて、当該要求に係る画像データを取得した上で、取得した画像データを所定のデータ形式に変換して、共有記憶部450に保存する。
ここで、画像保存部606は、例えば、Base64等により、取得した画像データを文字データにエンコードする。なお、以降では、画像保存部606は、Base64により画像データを文字データにエンコードするものとする。したがって、共有記憶部450には、画像保存部606によりエンコードされた文字データが保存されている。
ただし、これに限られず、画像保存部606は、例えば、UserPropertyBag430やQueuePropertyBag420等に保存可能なデータ形式に変換した上で、当該変換後のデータを共有記憶部450に保存しても良い。これは、UserPropertyBag430やQueuePropertyBag420等は、画像データを保存することができないためである。
ストアデバイスアプリ304の画像読込部706は、機能管理部702からの要求(画像の読み込み要求)に応じて、共有記憶部450から文字データを取得した上で、取得した文字データを画像データに変換する。すなわち、画像読込部706は、共有記憶部450から取得した文字データを、Base64により、画像データにデコードする。
なお、図21に示す例では、拡張設定部313が画像保存部606を有しており、ストアデバイスアプリ304が画像読込部706を有している場合について説明したが、これに限られない。例えば、拡張設定部313及び画像保存部606の両方が、画像データの取得及び変換を行う画像保存部と、画像データの変換及び保存を行う画像読込部とを有していても良い。
<処理の詳細>
次に、実施例3のクライアント装置10の処理の詳細について説明する。
≪印刷設定画面(デスクトップ UI)の表示及び機能情報の登録≫
まず、クライアント装置10のユーザがデスクトップアプリ321から、ベンダ独自の印刷設定画面(デスクトップ UI)を表示した後、機能情報(スタンプ画像)を登録する場合の処理について、図22を用いて説明する。図22は、印刷設定画面(デスクトップ UI)の表示後、スタンプ画像を登録する場合の処理の一例を示すシーケンス図である。
ステップS1013に続いて、ユーザは、印刷設定画面(デスクトップ UI)において、機能情報の登録操作を行う(ステップS2201)。すなわち、ユーザは、例えば、スタンプ画像の画像データの格納先を示すファイルパス等を指定することで、スタンプ画像を登録(追加)するための登録操作を行う。以降では、ユーザは、スタンプ画像の登録操作を行ったものとして説明する。
表示部601は、ユーザにより機能情報の登録操作が行われると、当該登録操作を受け付ける(ステップS2202)。そして、表示部601は、機能情報の登録を機能管理部602に要求する(ステップS2203)。なお、機能情報の登録要求には、例えば、スタンプ画像の画像データの格納先を示すファイルパス等が含まれる。
機能管理部602は、機能情報の登録要求を受け取ると、画像の保存を画像保存部606に要求する(ステップS2204)。なお、画像の保存要求には、スタンプ画像の画像データの格納先を示すファイルパス等が含まれる。
画像保存部606は、画像の保存要求を受け取ると、当該保存要求に含まれるファイルパスにより示される画像データを取得する(ステップS2205)。なお、ファイルパスは、クライアント装置10のHDD108に格納されている画像データの格納先でも良いし、クライアント装置10とネットワークを介して接続される記憶装置等に格納されている画像データの格納先でも良い。
次に、画像保存部606は、上記のステップS2205で取得した画像データを、Base64により、文字データにエンコードした上で、共有記憶部450に保存する(ステップS2206)。これにより、拡張設定部313とストアデバイスアプリ304との間で、画像データを共有することができるようになる。
≪印刷設定画面(ストアアプリ UI)の表示及び機能情報の登録≫
次に、クライアント装置10のユーザがストアアプリ311から、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示する場合の処理について、図23を用いて説明する。図23は、印刷設定画面(ストアアプリ UI)の表示する場合の処理の一例を示すシーケンス図である。
ステップS1208に続いて、機能管理部702は、機能情報の取得要求を受け取ると、共有記憶部450から機能情報を取得する(ステップS2301)。すなわち、機能管理部702は、図10のステップS1012で拡張設定部313により共有記憶部450に保存された機能情報を取得する。
次に、機能管理部702は、画像の読み込みを画像読込部706に要求する(ステップS2302)。
次に、画像読込部706は、画像の読み込み要求を受け取ると、共有記憶部450から文字データを取得する(ステップS2303)。
次に、画像読込部706は、上記のステップS2303で取得した文字データを、Base64により、画像データにデコードする(ステップS2304)。そして、画像読込部706は、画像データを機能管理部702に返信する。その後、機能管理部702は、機能情報と、画像データとを表示部701に返信する。
以上により、印刷設定画面(デスクトップ UI)において、例えばスタンプ画像等が登録された場合、クライアント装置10は、当該スタンプ画像を印刷設定画面(ストアアプリ UI)においても利用することができるようになる。なお、同様に、印刷設定画面(ストアアプリ UI)において、例えばスタンプ画像等が登録された場合、クライアント装置10は、当該スタンプ画像を印刷設定画面(デスクトップ UI)においても利用することができる。
(実施例5)
次に、実施例5について説明する。実施例5は、複数のプリンタドライバ303がクライアント装置10にインストールされている場合に、プリンタドライバ303毎に、用語情報やレイアウト情報等を異なる共有記憶部450に保存するものである。これにより、1つのストアデバイスアプリ304が複数のプリンタドライバ303に利用される場合において、ストアデバイスアプリ304が、プリンタドライバ303毎に異なる印刷設定画面(ストアアプリ UI)を表示することができる。
なお、実施例5では、実施例1と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、実施例1と同一の符号を用いて、その説明を省略する。
<クライアント装置10のソフトウェア構成>
まず、実施例5のクライアント装置10のソフトウェア構成について、図24を用いて説明する。図24は、クライアント装置10の一例のソフトウェア構成を示す図(実施例5)である。
図24に示すように、実施例5のクライアント装置10は、同一のストアデバイスアプリ304を利用するプリンタドライバ303−1及びプリンタドライバ303−2等を有する。実施例5では、プリンタドライバ303−1及びプリンタドライバ303−2等を区別しないときは、「プリンタドライバ303」と表す。
プリンタドライバ303−1は、拡張設定部313−1と、設定制御部323−1と、描画部333−1とを含む。同様に、プリンタドライバ303−2は、拡張設定部313−2と、設定制御部323−2と、描画部333−1とを含む。
実施例5では、拡張設定部313−1及び拡張設定部313−1を区別しないときは、「拡張設定部313」と表す。同様に、設定制御部323−1及び設定制御部323−2を区別しないときは、「設定制御部323」と表す。同様に、描画部333−1及び描画部333−2を区別しないときは、「描画部333」と表す。
なお、拡張設定部313、設定制御部323、及び描画部333が有する機能については、図4を用いて説明した通りである。
<機能構成>
次に、実施例5のクライアント装置10の機能構成について、図25を用いて説明する。図25は、一実施形態に係るクライアント装置10の一例の機能構成を示す図(実施例5)である。
図25に示すように、実施例5のクライアント装置10の拡張設定部313−1は、表示部601−1と、機能管理部602−1と、用語管理部603−1と、レイアウト管理部604−1とを有する。また、実施例5のクライアント装置10は、機能情報記憶部510−1と、用語情報記憶部520−1と、レイアウト情報記憶部530−1と、共有記憶部450−1とを有する。これらの記憶部は、拡張設定部313−1が利用する記憶部である。
同様に、実施例5のクライアント装置10の拡張設定部313−2は、表示部601−2と、機能管理部602−2と、用語管理部603−2と、レイアウト管理部604−2とを有する。また、実施例5のクライアント装置10は、機能情報記憶部510−2と、用語情報記憶部520−2と、レイアウト情報記憶部530−2と、共有記憶部450−2とを有する。これらの記憶部は、拡張設定部313−2が利用する記憶部である。
実施例5では、表示部601−1及び表示部601−2を区別しないときは、「表示部601」と表す。他の機能部についても同様に、用語管理部603−1及び用語管理部603−2を区別しないときは、「用語管理部603」と表す。レイアウト管理部604−1及びレイアウト管理部604−2を区別しないときは、「レイアウト管理部604」と表す。
また、機能情報記憶部510−1及び機能情報記憶部510−2を区別しないときは、「機能情報記憶部510」と表す。他の記憶部についても同様に、用語情報記憶部520−1及び用語情報記憶部520−1を区別しないときは、「用語情報記憶部520」と表す。レイアウト情報記憶部530−1及びレイアウト情報記憶部530−2を区別しないときは、「レイアウト情報記憶部530」と表す。共有記憶部450−1及び共有記憶部450−2を区別しないときは、「共有記憶部450」と表す。
なお、これらの各機能部が有する機能及び各記憶部に記憶されている情報については、図6を用いて説明した通りである。
このように、実施例5のクライアント装置10は、複数のプリンタドライバ303毎に、当該プリンタドライバ303の拡張設定部313が利用する共有記憶部450を有する。
<処理の詳細>
次に、実施例5のクライアント装置10の処理の詳細について説明する。
≪印刷設定画面(ストアアプリ UI)の表示≫
次に、クライアント装置10のユーザがストアアプリ311から、複数のプリンタドライバ303のうちの一のプリンタドライバ303を選択して、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示する処理について、図25を用いて説明する。図26は、印刷設定画面(ストアアプリ UI)の表示処理の一例を示すシーケンス図(実施例5)である。なお、以降では、例えばプリンタドライバ303のインストール時等に、このプリンタドライバ303の用語情報、レイアウト情報、及び機能情報が、当該プリンタドライバ303の拡張設定部313が利用する共有記憶部450に保存されたものとする。
まず、ユーザは、ストアアプリ311から複数のプリンタドライバ303のうちの一のプリンタドライバ303を選択した上で、印刷設定画面の表示操作を行う(ステップS2601)。すなわち、ユーザは、例えば、ストアアプリ311において印刷指示を行うことにより表示される印刷画面において、複数のプリンタドライバ303の中から使用するプリンタドライバ303を選択する。そして、ユーザは、ベンダ独自の印刷設定画面を表示するための操作を行う。
ストアアプリ311は、ユーザによりプリンタドライバ303の選択及び印刷設定画面の表示操作が行われると、当該表示操作を受け付ける(ステップS2602)。そして、ストアアプリ311は、ベンダ独自の印刷設定画面の表示を、ストアデバイスアプリ304の表示部701に要求する(ステップS2603)。
次に、ストアデバイスアプリ304の表示部701は、ベンダ独自の印刷設定画面の表示要求を受け取ると、用語情報の取得を用語管理部703に要求する(ステップS2604)。
用語管理部703は、用語情報の取得要求を受け取ると、共有記憶部450から用語情報を取得する(ステップS2605)。すなわち、用語管理部703は、ユーザが選択したプリンタドライバ303の拡張設定部313により共有記憶部450に保存された用語情報を取得する。
そして、用語管理部703は、上記のステップS2605で取得した用語情報を表示部701に返信する。
なお、用語管理部703は、例えば、ストアデバイスアプリ304の起動時にOS302から渡される引数PrintTaskSettingsActivatedEventArgsから、複数の共有記憶部450のうち、ユーザにより選択されたプリンタドライバ303の拡張設定部313が利用する共有記憶部450を特定することができる。
次に、表示部701は、レイアウト情報の取得をレイアウト管理部704に要求する(ステップS2606)。
レイアウト管理部704は、レイアウト情報の取得要求を受け取ると、共有記憶部450からレイアウト情報を取得する(ステップS2607)。すなわち、レイアウト管理部704は、ユーザが選択したプリンタドライバ303の拡張設定部313により共有記憶部450に保存されたレイアウト情報を取得する。
そして、レイアウト管理部704は、上記のステップS2607で取得したレイアウト情報を表示部701に返信する。
なお、レイアウト管理部704は、用語管理部703と同様に、例えば、PrintTaskSettingsActivatedEventArgsからユーザにより選択されたプリンタドライバ303の拡張設定部313が利用する共有記憶部450を特定することができる。
次に、表示部701は、機能情報の取得を機能管理部702に要求する(ステップS2608)。
機能管理部702は、機能情報の取得要求を受け取ると、共有記憶部450から機能情報を取得する(ステップS2609)。すなわち、機能管理部702は、ユーザが選択したプリンタドライバ303の拡張設定部313により共有記憶部450に保存された機能情報を取得する。
そして、機能管理部702は、上記のステップS2609で取得した機能情報を表示部701に返信する。
なお、機能管理部702は、用語管理部703と同様に、例えば、PrintTaskSettingsActivatedEventArgsからユーザにより選択されたプリンタドライバ303の拡張設定部313が利用する共有記憶部450を特定することができる。
表示部701は、用語情報、レイアウト情報、及び機能情報を受け取ると、これらの各情報に基づいて、ベンダ独自の印刷設定画面(ストアアプリ UI)を表示する(ステップS2610)。これにより、表示部701は、ユーザにより選択されたプリンタドライバ303に応じたベンダ独自の印刷設定画面(ストアアプリ UI)を表示することができる。
すなわち、上記のステップS2601において、ユーザによりプリンタドライバ303−1が選択された場合、表示部701は、例えば図27(a)に示す印刷設定画面(ストアアプリ UI)G310を表示する。一方で、上記のステップS2601において、ユーザによりプリンタドライバ303−2が選択された場合、表示部701は、例えば図27(b)に示す印刷設定画面(ストアアプリ UI)G320を表示する。このように、表示部701は、ユーザにより選択されたプリンタドライバ303に応じて、異なる印刷設定画面(ストアアプリ UI)を表示することができる。
以上のように、実施例5のクライアント装置10では、複数のプリンタドライバ303が同一のストアデバイスアプリ304を利用する場合に、ユーザにより選択されたプリンタドライバ303に応じた印刷設定画面(ストアアプリ UI)を表示することができる。
このため、実施例5のクライアント装置10では、例えば、プロダクションプリンティング向けのプリンタドライバ303と、インクジェット用のプリンタドライバ303とで印刷設定画面(ストアアプリ UI)が異なるようにすることができる。
(実施例6)
次に、実施例6について説明する。実施例6は、プリンタドライバ303の拡張設定部313と、ストアデバイスアプリ304とで、同一の処理内容(ロジック)により所定の機能を実現するモジュールがある場合に、これらのモジュールのバージョンが異なっても同一の機能を提供できるようにするものである。なお、プリンタドライバ303と、ストアデバイスアプリ304とは、別々に(すなわち、異なるタイミングで)モジュールのインストール又はバージョンアップ等を行うことができる。したがって、プリンタドライバ303と、ストアデバイスアプリ304とで、これらのモジュールのバージョンが異なる場合があり得る。
ここで、例えば、図28(a)及び(b)に示すように、拡張設定部313及びストアデバイスアプリ304は、ユーザにより設定された印刷設定に応じたプレビュー画像を描画するプレビュー画像描画部607及びプレビュー画像描画部707をそれぞれ有するものとする。これらのプレビュー画像描画部607及びプレビュー画像描画部707は、それぞれ異なるモジュールにより実現される。
このとき、プレビュー画像描画部707を実現するモジュールのバージョン(ver.1.0)は、プレビュー画像描画部607を実現するモジュールのバージョン(ver.1.1)より古いものとする。
このような場合、例えば、プレビュー画像描画部607が描画することができる「リング製本」のプレビュー画像が、プレビュー画像描画部707では描画することができない場合がある。すなわち、例えば、「リング製本」のプレビュー画像を描画する機能が「ver.1.1」からサポートされるようになった場合、ver1.0のプレビュー画像描画部707では、「リング製本」のプレビュー画像を描画することができない。
そこで、実施例6では、プレビュー画像描画部607では利用できる一方でプレビュー画像描画部707では利用できない機能(例えば、「リング製本」のプレビュー画像を描画する機能)を、プレビュー画像描画部707でも利用できるようにするものである。
なお、実施例6では、実施例1及び実施例2と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、実施例1及び実施例2と同一の符号を用いて、その説明を省略する。
<機能構成>
まず、実施例6のクライアント装置10の機能構成について、図29を用いて説明する。図29は、一実施形態に係るクライアント装置10の一例の機能構成を示す図(実施例6)である。
図29に示すように、実施例6のクライアント装置10の拡張設定部313は、プレビュー画像描画部607を有する。また、実施例6のクライアント装置10のストアデバイスアプリ304は、プレビュー画像描画部707を有する。
プレビュー画像描画部607は、プレビュー画像を描画するための描画方法情報に従って、プレビュー画像を印刷設定画面(デスクトップ UI)に描画する。同様に、プレビュー画像描画部707は、描画方法情報に従って、プレビュー画像を印刷設定画面(ストアアプリ UI)に描画する。
実施例6のクライアント装置10は、共有記憶部450を用いて、拡張設定部313とストアデバイスアプリ304との間で描画方法情報を共有する。これにより、プレビュー画像描画部607を実現するモジュールのバージョンと、プレビュー画像描画部707を実現するモジュールのバージョンとが異なる場合であっても、互いに同一のプレビュー画像を描画することができるようになる。言い換えれば、プレビュー画像描画部607又はプレビュー画像描画部707のいずれか一方でのみ利用可能な機能(例えば、「リング製本」のプレビュー画像を描画する機能)を、他方でも利用することができるようになる。
<処理の詳細>
≪プリンタドライバ303のインストール時に、用語情報、レイアウト情報、機能情報、及び描画方法情報の保存≫
まず、プリンタドライバ303のインストール時に、用語情報、レイアウト情報、及び機能情報に加えて、プレビュー画像描画部607がプレビュー画像の描画に用いる描画方法情報を共有記憶部450に保存する場合の処理について、図30を用いて説明する。図30は、プリンタドライバ303のインストール時に、用語情報、レイアウト情報、機能情報、及び描画方法情報を共有記憶部450に保存する処理の一例を示すシーケンス図である。
ステップS1012に続いて、表示部601は、描画方法情報の保存をプレビュー画像描画部607に要求する(ステップS3001)。
プレビュー画像描画部607は、描画方法情報の保存要求を受け取ると、当該プレビュー画像描画部607が描画することができるプレビュー画像の描画方法情報を共有記憶部450に保存する(ステップS3002)。ここで、共有記憶部450に保存される描画方法情報4100の一例を図31に示す。
図31に示す描画方法情報4100では、JSON形式により、バージョン毎に、描画することができるプレビュー画像の描画方法情報が定義されている。すなわち、図31に示す描画方法情報4100では、プレビュー画像描画部607やプレビュー画像描画部707を実現するモジュールのバージョンが「ver.1.0」である場合に利用することができる描画方法情報「描画方法1」、「描画方法2」、及び「描画方法3」が定義されている。同様に、図31に示す描画方法情報4100では、プレビュー画像描画部607やプレビュー画像描画部707を実現するモジュールのバージョンが「ver.1.1」である場合に利用することができる描画方法情報「描画方法4」が定義されている。なお、描画方法情報には、プレビュー画像の描画方法を示すパラメータ(例えば、プレビュー画像として描画される直線や曲線の描画方法を定義するパラメータ)等が定義されている。
以上により、プリンタドライバ303のプレビュー画像描画部607は、当該プリンタドライバ303のインストール時に、当該プレビュー画像描画部607が描画することができるプレビュー画像の描画方法情報を共有記憶部450に保存することができる。なお、プレビュー画像描画部607は、プリンタドライバ303のインストール時に限らず、例えば、印刷設定画面(デスクトップアプリ UI)を表示する際に、当該プレビュー画像描画部607が描画することができるプレビュー画像の描画方法情報を共有記憶部450に保存しても良い。
≪印刷設定画面(ストアアプリ UI)の表示≫
次に、クライアント装置10のユーザがストアアプリ311から、プレビュー画像描画部707により描画されたプレビュー画像を含むベンダ独自の印刷設定画面(ストアアプリ UI)を表示する処理について、図32を用いて説明する。図32は、印刷設定画面(ストアアプリ UI)の表示処理の一例を示すシーケンス図(実施例6)である。
ステップS1209に続いて、表示部701は、プレビュー画像の描画をプレビュー画像描画部707に要求する(ステップS3201)。なお、当該要求には、例えば、ユーザにより設定された印刷に関する設定情報(例えば、「リング製本」の有無、用紙サイズ、割付有無等)が含まれる。
プレビュー画像描画部707は、プレビュー画像の描画要求を受け取ると、当該プレビュー画像を描画する場合に、現在のバージョンでは利用できない描画方法情報が必要か否かを判定する(ステップS3202)。すなわち、プレビュー画像描画部707は、当該描画要求に含まれる設定情報に基づくプレビュー画像を描画するために、現在のバージョン(プレビュー画像描画部707を実現するモジュールのバージョン)では利用できない描画方法情報が必要であるか否かを判定する。
例えば、プレビュー画像描画部707を実現するモジュールのバージョンが「ver.1.0」であり、当該設定情報に基づくプレビュー画像を描画するために必要な描画方法情報が「描画方法4」であったとする。この場合、描画方法情報「描画方法4」はモジュールのバージョンが「ver.1.1」で利用可能であるため、バージョン「ver.1.0」のモジュールには、当該描画方法情報「描画方法4」が実装されていない。したがって、この場合、プレビュー画像描画部707は、当該描画要求に含まれる設定情報に基づくプレビュー画像を描画するために、現在のバージョン「ver.1.0」では利用できない描画方法情報が必要であると判定する。
ステップS3202において、現在のバージョンでは利用できない描画方法情報が必要であると判定された場合、プレビュー画像描画部707は、共有記憶部405から必要な描画方法情報を取得する(ステップS3203)。
すなわち、例えば、プレビュー画像描画部707を実現するモジュールのバージョンが「ver.1.0」であり、当該設定情報に基づくプレビュー画像の描画には描画方法情報「描画方法4」(例えば「リング製本」の描画方法情報)が必要であったとする。この場合、プレビュー画像描画部707は、共有記憶部450に記憶されている描画方法情報4100から描画方法情報「描画方法4」を取得する。
このように、プレビュー画像描画部707は、当該プレビュー画像描画部707を実現するモジュールのバージョンでプレビュー画像を描画することできない場合、当該プレビュー画像の描画に必要な描画方法情報を共有記憶部450から取得する。
次に、プレビュー画像描画部707は、描画方法情報に従って、当該設定情報に基づくプレビュー画像を描画する(ステップS3204)。
次に、プレビュー画像描画部707は、共有記憶部450に記憶されている描画方法情報4100の更新要否を判定する(ステップS3205)。すなわち、プレビュー画像描画部707は、当該プレビュー画像描画部707が描画することができるプレビュー画像の描画方法情報のうち、共有記憶部450に記憶されていない描画方法情報があるか否かを判定する。
ステップS3205において、共有記憶部450に記憶されている描画方法情報4100が更新要であると判定された場合、プレビュー画像描画部707は、共有記憶部450に記憶されている描画方法情報4100を更新する(ステップS3206)。
すなわち、例えば、プレビュー画像描画部707を実現するモジュールのバージョンが「ver.1.2」であり、プレビュー画像描画部707は、描画方法情報「描画方法5」(例えば、「片袖折り」の描画方法情報)も利用可能であったとする。この場合、プレビュー画像描画部707は、共有記憶部450に記憶されている描画方法情報4100に対して、「ver.1.2」で利用することができる描画方法情報「描画方法5」を追加する。
そして、プレビュー画像描画部707は、上記のステップS3204で描画したプレビュー画像を表示部701に返信する。
次に、表示部701は、用語情報、レイアウト情報、機能情報、及びプレビュー画像を受け取ると、これらの各情報に基づいて、当該プレビュー画像を含むベンダ独自の印刷設定画面(ストアアプリ UI)を表示する(ステップS3207)。これにより、プレビュー画像描画部707により描画されたプレビュー画像を含むベンダ独自の印刷設定画面(ストアアプリ UI)が表示される。
≪印刷設定画面(デスクトップアプリ UI)の表示≫
次に、クライアント装置10のユーザがデスクトップアプリ321から、プレビュー画像描画部607により描画されたプレビュー画像を含むベンダ独自の印刷設定画面(デスクトップアプリ UI)を表示する処理について、図33を用いて説明する。図33は、印刷設定画面(デスクトップアプリ UI)の表示処理の一例を示すシーケンス図(実施例6)である。
ステップS1012に続いて、表示部601は、プレビュー画像の描画をプレビュー画像描画部707に要求する(ステップS3301)。なお、当該要求には、例えば、ユーザにより設定された印刷に関する設定情報が含まれる。
プレビュー画像描画部607は、プレビュー画像の描画要求を受け取ると、当該プレビュー画像を描画する場合に、現在のバージョンでは利用できない描画方法情報が必要か否かを判定する(ステップS3302)。すなわち、プレビュー画像描画部607は、当該描画要求に含まれる設定情報に基づくプレビュー画像を描画するために、現在のバージョン(プレビュー画像描画部607を実現するモジュールのバージョン)では利用できない描画方法情報が必要であるか否かを判定する。
ステップS3302において、現在のバージョンでは利用できない描画方法情報が必要であると判定された場合、プレビュー画像描画部607は、共有記憶部405から必要な描画方法情報を取得する(ステップS3303)。
次に、プレビュー画像描画部607は、描画方法情報に従って、当該設定情報に基づくプレビュー画像を描画する(ステップS3304)。
そして、プレビュー画像描画部607は、上記のステップS3304で描画したプレビュー画像を表示部601に返信する。
次に、表示部601は、用語情報、レイアウト情報、機能情報、及びプレビュー画像を受け取ると、これらの各情報に基づいて、当該プレビュー画像を含むベンダ独自の印刷設定画面(デスクトップアプリ UI)を表示する(ステップS3305)。これにより、プレビュー画像描画部607により描画されたプレビュー画像を含むベンダ独自の印刷設定画面(デスクトップアプリ UI)が表示される。
以上のように、実施例6のクライアント装置10では、拡張設定部313と、ストアデバイスアプリ304とで、同一のロジックにより所定の機能(例えば、プレビュー画像の描画)を実現するモジュールのバージョンが異なっても同一の機能を提供できる。
なお、実施例6では、所定の機能として、プレビュー画像の描画を例に挙げて説明したが、これに限られない。所定の機能には、プレビュー画像の描画以外にも、例えば、拡張設定部313と、ストアデバイスアプリ304とで、同一のロジックにより実現されるステープルやパンチ等の印刷に関する種々の機能が挙げられる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。