以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
図1は、本発明の実施の形態の1つにおけるプリントシステムの全体概要を示す図である。図1を参照して、プリントシステム1は、画像処理装置として機能する複合機(以下、「MFP」という)100,100Aと、パーソナルコンピューター(以下、「PC」という)200と、を含む。
ネットワーク3は、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。また、ネットワーク3は、LANに限らず、ワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)、インターネット等であってもよい。
MFP(Multi Function Peripheral)100,100AおよびPC200それぞれは、ネットワーク3に接続される。なお、図ではネットワーク3に2台のMFP100,100Aが接続され、1台のPC200が接続される例を示しているが、MFP100,100AおよびPC200の数はこれらに限定されるものではなく、それぞれ1台以上であればよい。また、MFP100,100Aに代えて、PC200が制御可能な別の画像処理装置を用いることができる。PC200が制御可能な画像処理装置の一例としては、スキャナ装置、ファクシミリ装置、プリンター等の画像形成装置、プロジェクションテレビ、投影装置等の表示装置、データを記憶する記憶装置がある。
MFP100,100Aそれぞれのハードウエア構成および機能は同じである。したがって、ここでは、MFP100,100Aのハードウエア構成および機能については、MFP100を例に説明する。なお、MFP100,100Aそれぞれのハードウエア構成および機能は異なってもよい。
本実施の形態におけるプリントシステム1において、PC200は、MFP100,100Aをそれぞれ制御するためのドライバープログラムがインストールされている。MFP100を制御するためのドライバープログラムと、MFP100Aを制御するためのドライバープログラムとは異なる。
ここで、新たな画像処理装置としてMFP100Bを制御するためのドライバープログラムを、PC200で生成する場合を例に説明する。以下、説明のためMFP100を制御するためのプリンタードライバーを第1のプリンタードライバープログラムといい、MFP100Aを制御するためのプリンタードライバープログラムを第3のプリンタードライバープログラムといい、MFP100Aを制御するために新たに生成するプリンタードライバープログラムを第3のプリンタードライバープログラムという。
したがって、PC200に、第1のドライバープログラムおよび第3のドライバープログラムがインストールされており、PC200は、インストールされている第1のドライバープログラムおよび第3のドライバープログラムの少なくとも1つを用いて、第2のドライバープログラムを生成する。
図2は、MFPの外観を示す斜視図である。図3は、MFPのハードウエア構成の一例を示すブロック図である。図2および図3を参照して、MFP100は、自動原稿搬送装置121と、原稿読取部123と、原稿読取部123が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成する画像形成部125と、画像形成部125に用紙を供給する給紙部127と、画像が形成された用紙を処理する後処理部128と、ユーザーインターフェースとしての操作パネル129と、メイン回路110と、を含む。
ADF121は、原稿給紙トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部123のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部123により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部123は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じて原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部125に出力する。給紙部127は、給紙トレイに収納された用紙を画像形成部125に搬送する。
画像形成部125は、周知の電子写真方式により画像を形成するものであって、外部から受信された画像データ、または、原稿読取部123から入力される画像データにシェーディング補正などの各種のデータ処理を施し、データ処理後の画像データに基づいて、給紙部127により搬送される用紙に画像を形成する。
後処理部128は、画像が形成された用紙を排紙する。後処理部128は、複数の排紙トレイを有し、画像が形成された用紙をソートして排紙することが可能である。また、後処理部128は、パンチ穴加工部、ステープル加工部を備えており、排紙された用紙にパンチ穴加工、またはステープル加工することが可能である。また、MFP100は、その上面にユーザーとのユーザーインターフェースとしての操作パネル129を備えている。
メイン回路110は、CPU111と、通信インターフェース(I/F)部112と、ROM(Read Only Memory)113と、RAM(Random Access Memory)114と、EEPROM(Electrically Erasable and Programmable ROM)115と、大容量記憶装置としてのハードディスクドライブ(HDD)116と、ファクシミリ部117と、ネットワークI/F118と、CD(Compact Disk)−ROM119Aが装着される外部記憶装置119と、を含む。CPU111は、自動原稿搬送装置121、原稿読取部123、画像形成部125、給紙部127、後処理部128および操作パネル129と接続され、MFP100の全体を制御する。
ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。また、RAM114は、原稿読取部123から連続的に送られてくる読取データ(画像データ)を一時的に記憶する。
操作パネル129は、MFP100の上面に設けられる。操作パネル129は、表示部131と操作部133とを含む。表示部131は、LCD、有機ELD(Electro−Luminescence Display)等のディスプレイであり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部133は、複数のキーを備え、キーに対応するユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部133は、表示部131の表示面の位置を検出するタッチパネル135をさらに含む。タッチパネル135は、表示部131の上面または下面に設けられ、ユーザーにより指示された位置の座標をCPU111に出力する。
通信I/F部112は、MFP100を外部の装置と接続するためのインターフェースである。ネットワークI/F118は、MFP100をネットワーク3に接続するためのインターフェースである。CPU111は、ネットワークI/F118を介してネットワーク3に接続されたPC200との間で通信し、データを送受信する。また、ネットワークI/F118は、ネットワーク3を介してインターネットに接続されたコンピューターと通信が可能である。
ファクシミリ部117は、公衆交換電話網(PSTN)に接続され、ファクシミリデータを送受信する。ファクシミリ部117は、原稿読取部123により読み取られた画像データまたはHDD116に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。また、ファクシミリ部117は、受信されたファクシミリデータをHDD116に記憶するか、画像形成部125にファクシミリデータの画像を用紙に形成させる。
外部記憶装置119は、CD−ROM119Aが装着される。CPU111は、外部記憶装置119を介してCD−ROM119Aにアクセス可能である。CPU111は、外部記憶装置119に装着されたCD−ROM119Aに記録されたプログラムをRAM114にロードして実行する。
なお、CPU111が実行するプログラムは、CD−ROM119Aに記録されたプログラムに限られず、HDD116に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、ネットワーク3に接続された他のコンピューターが、MFP100のHDD116に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD116に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図4は、PCのハードウエア構成の一例を示すブロック図である。図4を参照して、PC200は、それぞれがバス208に接続されたCPU201、ROM202、RAM203、ネットワークI/F204、HDD205、表示部206、操作部207および外部記憶装置209を含む。
CPU201は、PC200の全体を制御する。ROM202は、CPU201が実行するプログラム等を記憶する。RAM203は、CPU201の作業領域として用いられる。ネットワークI/F204は、PC200をネットワーク3に接続するためのインターフェースである。HDD205は、大容量記憶装置であり、データを不揮発的に記憶する。表示部206は、液晶表示装置、陰極線管(CRT)、有機ELD(Electro−Luminescence Display)等の表示装置である。操作部207は、キーボード、および、マウス、タッチパネルなどのポインティングデバイスであり、ユーザーの操作の入力を受け付ける。
外部記憶装置209は、CD−ROM209Aが装着される。CPU201は、外部記憶装置209を介してCD−ROM209Aに記憶されたプログラムをRAM203にロードし、実行する。なお、プログラムを記憶する記録媒体としては、CD−ROM209Aに限られず、フレキシブルディスク、カセットテープ、光ディスク(MO/MD/DVD)、ICカード、光カード、マスクROM、EPROM、EEPROMなどの半導体メモリ等でもよい。また、HDD205に記憶されたプログラムをRAM203にロードして実行するようにしてもよい。この場合、PC200が、ネットワーク3に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD205に記憶するようにしてもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
次に、第1のドライバープログラムおよび第2のドライバープログラムについて説明する。第1のドライバープログラムおよび第2のドライバープログラムそれぞれは、共通定義データおよび設定画面情報を含む。第1のドライバープログラムおよび第2のドライバープログラムそれぞれは、設定画面情報が異なるのみで、共通定義データおよび設定画面情報、それらを用いてPC200に実行させる処理の定義は同じである。したがって、ここでは、PC200が備えるCPU201が第1のドライバープログラムを実行する場合を例に説明する。
図5は、PCが備えるCPUが第1のドライバープログラムを実行する場合の機能の一例をHDDに記憶されるデータとともに示すブロック図である。図5に示す機能は、PC200が備えるCPU201が、HDD205またはCD−ROM209Aに記憶された第1のドライバープログラムを実行することにより、CPU201に形成される機能である。
図5を参照して、PC200が備えるCPU201は、CPU201が第1のドライバープログラムを実行するタスクとして第1画像処理装置制御部11を含む。第1画像処理装置制御部11は、MFP100を制御するために、MFP100が有する複数の機能をMFP100に実行させるためのコマンドを生成し、MFP100にコマンドを出力する。コマンドは、機能ごとに設定値を定める。例えば、MFP100にプリントデータの画像を形成させる場合、画像を形成する機能を実行させるための設定値を定めたコマンドを生成し、MFP100にコマンドを出力する。例えば、MFP100がデータの画像を形成するプリント処理を実行する場合におけるMFP100の機能の一例としては、画像を形成する用紙のサイズを定める機能、用紙に画像を形成する方向を定める機能、画像を拡大する機能、用紙が収納されている給紙トレイを定める機能を含む。
第1画像処理装置制御部11は、1以上の機能ごとに設定値をユーザーが設定するために、ユーザーインターフェースとして設定画面を表示部206に表示する。設定画面は、共通画面と、タブ選択画面と、タブ画面と、を含む。タブ画面は、MFP100が有する複数の機能を、グループ化し、複数のグループごとに1以上の機能ごとに設定値を設定するための画面である。タブ選択画面は、タブ画面を選択するための画面である。タブ画面は、1以上の部分画面を含む。部分画面は、MFP100が有する複数の機能ごとに、当該機能に対応する設定値を設定するための機能別画面と、ユーザーの指示を受け付ける指示別画面を含む。共通画面は、MFP100の機能に関係なく、ユーザーに情報を提供したり、ユーザーによる指示を受け付けたりするための画面である。
第1画像処理装置制御部11は、共通コマンド取得部13と、表示コマンド取得部15と、プリントコマンド取得部17と、第1設定画面生成部19と、設定値受付部21と、コマンド出力部23と、編集用画面生成部31と、編集用画面表示制御部33と、部分定義情報出力部35と、を含む。
HDD205には、第1のドライバープログラム91が記憶されている。第1のドライバープログラム91は、共通定義データ93と、設定画面情報95と、を含む。共通定義データ93は、設定画面のレイアウトを定めるとともに、共通画面を生成するための共通コマンドとを含む。共通コマンドは、MFP100が有する複数の機能に依存しない共通画面を表示するためのコマンドである。共通定義データ93は、設定画面中で、後述するタブ選択画面とタブ画面とをそれぞれ配置する領域を定めるレイアウト情報を含む。
設定画面情報95は、1以上のタブ画面ごとに1以上の部分定義データ97を含む。タブ画面は、1以上の部分画面を含む。設定画面情報95は、タブ画面ごとに、そのタブ画面に含まれる1以上の部分画面にそれぞれ対応する1以上の部分定義データ97を含む。
部分定義データ97は、機能定義データと指示定義データとを含む。部分定義データ97のうち機能定義データは、MFP100が有する複数の機能ごとに、その機能をMFP100に実行させるための1以上のプリントコマンドと、その機能に対応する表示コマンドと、を定める。プリントコマンドは、MFP100が有する複数の機能ごとに1以上あり、ある機能に対して設定することが可能な1以上の設定値のいずれかに対応する。機能定義データは、MFP100が有する複数の機能ごとに定める1以上のプリントコマンドそれぞれを、設定値と対応付ける。
プリントコマンドは、MFP100に、そのプリントコマンドが対応する機能を、そのプリントコマンドに対応する設定値に従って実行させるコマンドである。プリントコマンドは、MFP100が解釈可能なコマンドであり、MFP100との間で予め定められたコマンドである。プリントコマンドは、好ましくは、PJL(Print Job Language)、PCL(Printer Control Language)、XPS(XML Paper Specification)、PrintTicket、PS(PostScript)で記述される。
表示コマンドは、CPU201に部分画面を生成させるためのコマンドである。部分画面をタブ画面中に配置する位置を示す位置情報と、表示する部品を特定する部品特定情報とを含む。CPU201が表示部206に表示する部品は、予め準備された画像であり、例えば、ポップアップウィンドウ、コンボボックス、リストボックス、ラジオボタン等である。
機能定義データに含まれる表示コマンドは、MFP100が有する複数の機能それぞれに対応し、部分画面としてその機能に対する設定値を設定するための機能別画面を表示するコマンドである。以下、機能定義データに含まれる表示コマンドによって表示される部分画面を機能別画面という場合がある。
部分定義データ97のうち指示定義データは、ユーザーが入力可能な複数の操作ごとに、その操作に対応する処理を定める処理実行コマンドと、その操作に対応する表示コマンドと、を定める。処理実行コマンドは、ユーザーにより入力される操作に対応する処理をCPU201に実行させるためのコマンドである。処理実行コマンドは、例えば、設定値を確定する処理、ポップアップ画面を表示する処理、プリントジョブを生成する処理、を含む。
指示定義データに含まれる表示コマンドは、部分画面として操作を受け付けるための指示別画面を表示するコマンドである。指示定義データに含まれる表示コマンドは、ユーザーが入力可能な複数の操作それぞれに対応する。以下、指示定義データに含まれる表示コマンドによって表示される部分画面を指示別画面という場合がある。
タブ画面は、部分定義データ97に含まれる表示コマンドによってそれに含まれる内容が定まる。タブ画面は、1つの表示コマンドによって生成される1つの部分画面を含む場合と、複数の表示コマンドによってそれぞれ生成される複数の部分画面を含む場合とがある。タブ画面が複数の部分画面を含む場合は、複数の表示コマンドが同一のタブ画面に割り当てられている場合である。換言すれば、タブ画面が複数の部分画面を含む場合は、設定画面情報95は、そのタブ画面に対応して複数の部分定義データ97を関連付ける。
共通定義データ93と部分定義データ97とは、XML(Extensible Markup Language)等のマックアップ言語、C言語などのプログラム言語で記載される。このため、共通定義データ93と部分定義データ97とを、編集プログラム等を用いて容易に変更することができる。なお、共通定義データ93と部分定義データ97は、スクリプト言語をバイナリ化したデータ、または、プログラム言語をコンパイルし、バイナリ化したデータであってもよい。
なお、ここでは、共通定義データ93と設定画面情報95とを、第1のドライバープログラムの一部としたが、第1のドライバープログラムとは別のデータであって第1のドライバープログラムと関連付けられたデータとしてもよい。
図6は、機能定義データの一例を示す第1の図である。図6に示す機能定義データ97Aは、パンチ加工処理の機能に対応する。図6を参照して、1行目の”FunkPunch”の記述は、パンチ加工処理の機能に対応することを示す。パンチ加工処理の機能に対して設定可能な設定値は、パンチ加工する用紙の位置を特定する値であり、ここでは、用紙の左側と上側の2つとしている。2つの位置それぞれに対応するプリントコマンドに関する記述が、3行目および4行目に示される。
2行目は、部品定義データを識別するための部品定義データ識別情報「ID=021」と、タブ画面識別情報「Finish」と、表示コマンドの記述を示す。表示コマンドは、部品特定情報として”ComboBox”の記述と、部品をタブ画面中に配置する位置情報として”Pos=10,60,100,20”の記述と、を含む。部品特定情報”ComboBox”は、表示のために使用する部品としてコンボボックスを特定する。位置情報は、最初の2つの数字は、タブ画面中の位置を座標を示し、3番目の数字は機能別画面の横方向の長さ、4番目の数字は機能別画面の縦方向の長さを示し、矩形の機能別画面のサイズと機能別画面のタブ画面中における位置を定める。
2行目のDialog=’Finish’の記述は、タブ画面識別情報「Finish」を示す。換言すれば、機能定義データ91Aは、タブ識別情報「Finish」のタブ画面に関連付けられていることを示す。
図7は、機能定義データの一例を示す第2の図である。図7に示す機能定義データ97Bは、ステープル加工処理の機能に対応する。図7を参照して、1行目の”FunkStaple”の記述は、ステープル加工処理の機能に対応することを示す。ステープル加工処理の機能に対して設定可能な設定値は、ステープル加工する針の数と用紙の位置を特定する値であり、ここでは、1つの針で用紙の左側を特定する設定値と、2つの針で用紙の左側を特定する設定値と、2つの針で用紙の上側を特定する設定値との3つとしている。3つの設定値それぞれに対応するプリントコマンドに関する記述が、3行目〜5行目に示される。
2行目は、部品定義データを識別するための部品定義データ識別情報「ID=022」と、タブ画面識別情報「Finish」と、表示コマンドの記述を示す。表示コマンドは、部品特定情報として”ComboBox”の記述と、部品をタブ画面中に配置する位置情報として”Pos=10,20,100,40”の記述と、を含む。部品特定情報”ComboBox”は、表示のために使用する部品としてコンボボックスを特定する。位置情報は、最初の2つの数字は、タブ画面中の位置を座標を示し、3番目の数字は機能別画面の横方向の長さ、4番目の数字は機能別画面の縦方向の長さを示し、矩形の機能別画面のサイズと機能別画面のタブ画面中における位置を定める。
2行目のDialog=’Finish’の記述は、タブ画面識別情報「Finish」を示す。換言すれば、機能定義データ91Bは、タブ識別情報「Finish」のタブ画面に関連付けられていることを示す。
1つのタブ画面に、設定画面情報95に含まれる複数の部分定義データ97のうち1以上の部分定義データ97が関連付けられる。このため、1つのタブ画面に複数の表示コマンドが関連付けられる場合がある。たとえば、図6に示したパンチ穴加工処理の機能に対応する機能定義データ97Aと、図7に示したステープル加工処理の機能に対応する機能定義データ97Bとが、同じタブ画面に関連付けられる場合、パンチ穴加工処理の機能に対応するコンボボックスを含む機能別画面と、ステープル加工処理の機能に対応するコンボボックスを含む機能別画面とが同一のタブ画面に同時に表示される。換言すれば、1つのタブ画面は、設定画面情報95に含まれる複数の部分定義データ97のうちタブ画面に関連付けられた1以上の部分定義データ97によって定まる1以上の部分画面を含む。
図5に戻って、共通コマンド取得部13は、HDD205に記憶された共通定義データ93を読出し、共通定義データ93を、第1設定画面生成部19に出力する。
第1設定画面生成部19は、共通画面生成部25と、部分画面生成部27と、を含む。共通画面生成部25は、共通コマンド取得部13から共通定義データ93が入力され、共通定義データ93に従って設定画面のレイアウトを決定する。具体的には、共通画面生成部25は、共通定義データ93により定められるタブ画面を配置する領域およびタブ選択画面を配置する領域に基づいて、レイアウト情報を生成する。レイアウト情報は、設定画面に含まれる共通画面、タブ選択画面およびタブ画面の位置を定める。共通画面生成部25は、レイアウト情報を部分画面生成部27に出力する。このため、共通定義データ93によってレイアウト情報が定められるので、表示部206に表示される設定画面のデザインを統一することができる。また、共通画面生成部25は、共通コマンド取得部13から入力される共通定義データ93に含まれる共通コマンドに従って共通画面を生成し、生成された共通画面を表示部206に表示する。この際、共通画面生成部25は、共通画面を設定画面中でレイアウト情報によって定められる位置に配置する。
部分画面生成部27は、1以上のタブ画面のうちから1つを選択し、タブ画面を生成する。部分画面生成部27は、1以上のタブ画面のうちから1つを選択するためのタブ選択画面を表示し、ユーザーにより選択されたタブ画面を選択する。また、ユーザーによる選択する操作が入力される前の段階では、任意のタブ画面、例えば、デフォルトで定められたタブ画面を選択するようにすればよい。
具体的には、部分画面生成部27は、HDD205に記憶されている設定画面情報95によって1以上のタブ画面が定められているので、1以上のタブ画面のうちから1つを選択するためのタブ選択画面を生成する。タブ選択画面は、1以上のタブ画面それぞれの名称を含み、1以上のタブ画面それぞれの名称を選択可能に配列した画面である。部分画面生成部27は、生成されたタブ選択画面を表示部206に表示する。この際、部分画面生成部27は、タブ選択画面を設定画面中でレイアウト情報によって定められる位置に配置する。
部分画面生成部27は、表示コマンド取得部15に取得指示を出力し、表示コマンド取得部15によって取得された表示コマンドを受け付ける。取得指示は、選択されたタブ画面を識別するためのタブ識別情報を含む。
表示コマンド取得部15は、部分画面生成部27から取得指示が入力されることに応じて、HDD205に記憶された設定画面情報95に含まれる複数の部分定義データ97のうちから取得指示に含まれるタブ識別情報で特定されるタブ画面に関連付けられた部分定義データ97を読出す。そして、表示コマンド取得部15は、部分定義データ97に含まれる表示コマンドを、第1設定画面生成部19に出力する。表示コマンド取得部15は、取得指示に含まれるタブ識別情報で特定されるタブ画面に関連付けられた部分定義データ97が複数の場合、複数の部分定義データ97にそれぞれ含まれる複数の表示コマンドを出力する。
部分画面生成部27は、表示コマンド取得部15から1以上の表示コマンドが入力されると、1以上の表示コマンドに従って1以上の部分画面を生成する。部分画面生成部27は、タブ画面中で表示コマンドに含まれる位置情報で特定される位置に、表示コマンドに含まれる部品特定情報で特定される部品を配置することによって部分画面を表示する。タブ画面の設定画面中の位置は、共通画面生成部25から入力されるレイアウト情報によって定まる。
タブ画面は、タブ画面に対応する表示コマンドが単数の場合、部分画面生成部27によって生成される1つの部分画面を含む。また、タブ画面は、タブ画面に対応する表示コマンドが複数の場合、部分画面生成部27によって生成される複数の部分画面を含む。部分画面生成部27は、表示部206に表示した1以上の部分画面を設定値受付部21および編集用画面生成部31に出力する。
部分画面生成部27は、部分定義データ97が機能定義データの場合、表示部206に機能別画面を部分画面として表示し、部分定義データ97が指示定義データの場合、表示部206に指示別画面を部分画面として表示する。部分画面生成部27は、指示別画面を表示する場合、PC200を操作するユーザーが指示別画面内を指示する操作を入力すると、当該指示別画面に対応する指示定義データに含まれる処理実行コマンドを実行する。処理実行コマンドは、例えば、設定値を確定する処理、ポップアップ画面を表示する処理、プリントジョブを生成する処理、を含む。
設定値受付部21は、部分画面生成部27によって機能別画面が表示される場合、PC200を操作するユーザーが、機能別画面に従って操作部207に入力する設定値を、機能別画面に対応する機能に対して設定された設定値として受け付ける。設定値受付部21は、機能別画面に対応する機能を識別するための機能識別情報と、受け付けられた設定値との組をコマンド出力部23に出力する。設定値受付部21は、部分画面生成部27によって複数の機能別画面が表示される場合、複数の機能別画面のいずれか1つを、ユーザーが操作部207から機能別画面に設定値を入力可能なカレント状態に設定し、ユーザーが入力する設定値を、カレント状態に設定された機能別画面に対応する機能に対して設定された設定値として受け付ける。
プリントコマンド取得部17は、HDD205に記憶された設定画面情報95に含まれる複数の部分定義データ97のうち機能定義データを読出し、機能定義データに含まれる複数の機能ごとの1以上のプリントコマンドを、コマンド出力部23に出力する。
コマンド出力部23は、選択部29を含む。選択部29は、設定値受付部21から入力される機能識別情報と設定値との組に基づいて、プリントコマンド取得部17から入力される複数の機能ごとの1以上のプリントコマンドのうちから1つのプリントコマンドを選択する。具体的には、選択部29は、プリントコマンド取得部17から入力される、複数の機能ごとの1以上のプリントコマンドのうちから、設定値受付部21から入力される機能識別情報と設定値との組の機能識別情報で特定される機能に対応する1以上のプリントコマンドを抽出する。そして、選択部29は、抽出された1以上のプリントコマンドのうちから、設定値受付部21から入力される機能識別情報と設定値との組の設定値に対応する1つのプリントコマンドを選択する。
MFP100に新たな機能が追加されて、新たなプリントコマンドが追加される場合であっても、新たなプリントコマンドと表示コマンドとを含む新たな部品定義データを、HDD205に記憶された設定画面情報95に追加すればよい。このため、プリンタードライバープログラム自体を変更する必要がない。また、部品定義データ97は、XML等のマックアップ言語、C言語などのプログラム言語で記載されるので、変更が容易である。
コマンド出力部23は、選択部51により選択されたプリントコマンドをプリントデータとともにネットワークI/F204を介してMFP100に送信する。
編集用画面生成部31は、第1画像処理装置制御部11が、編集モードで起動される場合、編集用画面を生成する。編集用画面生成部31は、第1画像処理装置制御部11が、編集モードで起動されない場合、編集用画面を生成しない。例えば、後述するドライバー生成プログラムを実行するタスクが、第1画像処理装置制御部11を編集モードで起動する場合、ドライバー生成プログラムを実行するタスクが、CPU201に第1のドライバープログラムを実行させるコマンドを出力する。この際に、ドライバー生成プログラムを実行するタスクは、第1のドライバープログラムを実行するタスクに、編集モードで起動することを示す信号を入力すれば、第1のドライバープログラムを実行するタスクである第1画像処理装置制御部11は、編集モードで起動する。例えば、ドライバー生成プログラムを実行するタスクが、CPU201に第1のドライバープログラムを実行させるコマンドを入力する際に、そのコマンドの引数として編集モードで起動することを示す信号をCPU201に入力する。
編集用画面生成部31は、第1設定画面生成部19から1以上の部分画面が入力される。編集用画面生成部31は、1以上の部分画面それぞれに対して、当該部分画面を識別するための領域識別画像を、表示部206に表示された部分画面が配置される位置と同じ位置で設定画面と合成することによって編集用画面を生成する。領域識別画像は、例えば、部分画面を囲む輪郭と同じ形状の輪郭画像を含む。また、領域識別情報は、部分画面に対応する機能定義データを識別するための部分定義データ識別情報の画像を含む。 編集用画面表示制御部33は、表示部206に表示された設定画面中のタブ画面に代えて、編集用画面を表示部206に表示する。編集用画面表示制御部33は、編集用画面を表示する際に、編集用画面に含まれる1以上の領域識別画像を選択可能に表示する。編集用画面表示制御部33は、編集用画面を部分定義情報出力部35に出力する。
部分定義情報出力部35は、編集用画面に含まれる1以上の領域識別画像のいずれかがユーザーにより指示されると、部分定義情報を、ドライバー生成プログラムを実行するタスクに出力する。部分定義情報出力部35は、ユーザーが、操作部207に、編集用画面に含まれる1以上の領域識別画像のいずれかの内部の位置を指示する操作を入力すれば、当該指示された領域識別情報に対応する部分定義情報をドライバー生成プログラムを実行するタスクに出力する。部分定義情報は、領域識別画像と、領域識別画像が表示部206中で表示されている位置を示す位置情報と、領域識別画像に対応する部分定義データと、を含む。
図8は、設定画面の一例を示す図である。なお、図中の点線は説明のために付したもので、実際には存在しない。図8を参照して、設定画面300は、共通画面の領域301と、タブ選択画面の領域303と、タブ画面の領域305と、を含む。領域301に表示される共通画面は、印刷対象のデータの画像をプレビュー表示する領域311と、本体ビューの文字が表されたボタン313とを含む。
領域303に表示されるタブ選択画面は、対応するタブ画面の名称を含み、選択可能な5つの名称が配列される。ここでは、名称「仕上げ」のタブ画面が選択されている場合を例に示している。領域305に表示されるタブ画面は、名称「仕上げ」のタブ画面に関連付けられた部分定義データ97に基づいて生成される部分画面を含む。
領域305に表示されるタブ画面は、HDD205に記憶された部分定義データ97のうち、名称「仕上げ」のタブ画面に関連付けた部分定義データとして、図6に示したパンチ穴加工処理の機能に対応する機能定義データ97Aと、図7に示したステープル加工処理の機能に対応する機能定義データ97Bとが含まれる場合を例に示している。より具体的には、領域305に表示されるタブ画面は、パンチ穴加工処理の機能に対応するコンボボックスを含む機能別画面321と、ステープル加工処理の機能に対応するコンボボックスを含む機能別画面323と、を含む。機能別画面321は、コンボボックスと「パンチ」の文字列の組を含み、機能別画面323は、コンボボックスと「ステープル」の文字列との組を含む。
さらに、領域305に表示されるタブ画面は、適用の文字が表されたボタンを含む指示別画面325を含む。指示別画面325は、領域305に表示されるタブ画面に関連付けられた部分定義データ97のうち指示定義データのボタン生成コマンドに基づいて表示される。
領域305に表示される設定画面がカレント状態の場合、機能別画面321のコンボボックスと、機能別画面323のコンボボックスと、を指示可能であり、指示別画面325のボタンを指示可能である。
図9は、編集用画面の一例を示す図である。ここでは、図8に示した設定画面300に対応する編集用画面300Aを示す。図9を参照して、編集用画面300Aは、図8に示した設定画面300に領域識別画像を合成した画面である。従って、図8に示した設定画面300に含まれる画面と同じ画面には同じ符号を付している。
図9を参照して、編集用画面300Aは、タブ画面の領域305に含まれる部分画面321、323、325それぞれに対応して、領域識別画像を含む。具体的には、編集用画面300Aは、機能別画面321を囲む輪郭画像321Aと、機能別画面321に対応する機能定義データを識別するための部分定義データ識別情報「ID:021」の画像321Bと、を含む。画像321Bは、輪郭画像321Aの内部に配置される。このため、ユーザーは、機能別画面321に対応する機能定義データ(部分定義データ)を、画像321Bから特定することができる。
また、編集用画面300Aは、機能別画面323を囲む輪郭画像323Aと、機能別画面323に対応する機能定義データを識別するための部分定義データ識別情報「ID:022」の画像323Bと、を含む。画像323Bは、輪郭画像323Aの内部に配置される。このため、ユーザーは、機能別画面323に対応する機能定義データ(部分定義データ)を、画像323Bから特定することができる。
また、編集用画面300Aは、指示別画面325を囲む輪郭画像325Aと、指示別画面325に対応する指示定義データを識別するための部分定義データ識別情報「ID:023」の画像325Bと、を含む。画像325Bは、輪郭画像325Aの内部に配置される。このため、ユーザーは、指示別画面325に対応する指示定義データ(部分定義データ)を、画像325Bから特定することができる。
また、編集用画面300Aは、共通画面の領域301に含まれる印刷対象のデータの画像をプレビュー表示する領域311と、適用の文字が表されたボタン313と、にそれぞれ対応して領域識別画像を含む。具体的には、編集用画面300Aは、プレビュー表示する領域311を囲む輪郭画像311Aと、プレビュー表示する領域311に対応するコマンドを識別するためのコマンド識別情報「ID:010」の画像311Bと、を含む。画像311Bは、輪郭画像311Aの内部に配置される。このため、ユーザーは、共通画面の領域301に対応するコマンドを、画像311Bから特定することができる。また、編集用画面300Aは、ボタン313を囲む輪郭画像313Aと、ボタン313に対応するコマンドを識別するためのコマンド識別情報「ID:011」の画像313Bと、を含む。画像313Bは、輪郭画像313Aの内部に配置される。このため、ユーザーは、共通画面の領域301に対応する指示定義データ(部分定義データ)を、画像311Bから特定することができる。
<ドライバー生成プログラム>
図10は、PCが備えるCPUがドライバー生成プログラムおよびドライバープログラムを実行する場合の機能の一例をHDDに記憶されるデータとともに示すブロック図である。図10に示す機能は、PC200が備えるCPU201が、HDD205またはCD−ROM209Aに記憶されたドライバー生成プログラム、第1のドライバープログラムおよび第3のドライバープログラムを実行することにより、CPU201に形成される機能である。図10では、CPU201がドライバー生成プログラムを実行するタスクをドライバー生成部50として示し、CPU201が第1のドライバープログラムを実行するタスクを第1画像処理装置制御部11Aとして示し、CPU201が第3のドライバープログラムを実行するタスクを第2画像処理装置制御部11Bとして示している。
図10を参照して、CPU201は、ドライバー生成プログラムを実行するタスクとしてのドライバー生成部50と、第1のドライバープログラム91Aを実行するタスクとしての第1画像処理装置制御部11Aと、第3のドライバープログラム91Bを実行するタスクとしての第2画像処理装置制御部11Bと、を含む。
ドライバー生成部50は、ユーザーによる操作に基づいて、第1のドライバープログラム91Aと第3のドライバープログラム91Bそれぞれの少なくとも一部を利用して第2のドライバープログラム81を生成する。
ドライバー生成部50は、選択部51と、生成部60と、を含む。選択部51は、ドライバー起動部53と、部分定義情報受付部55と、移動中表示部57と、配置位置決定部59と、を含む。ドライバー起動部53は、CPU201にドライバープログラムを実行させる。ドライバー起動部53は、PC200を操作するユーザーが、操作部207を用いて指定するドライバープログラムを、CPU201に実行させる。
ここでは、PC200を操作するユーザーが、第1のドライバープログラムと、第3のドライバープログラムとを指定した場合を例に説明する。ドライバー起動部53は、PC200を操作するユーザーによって第1のドライバープログラムが指定される場合、CPU201に第1のドライバープログラムを編集モードで実行させる。例えば、第1のドライバープログラムを実行するコマンドを、CPU201に実行させる。この際に、編集モードでの起動を指示するための引数をコマンドに付加する。CPU201は、第1のドライバープログラムを実行するコマンドが入力されると、第1のドライバープログラムを編集モードで実行する。これにより、CPU201に第1画像処理装置制御部11Aが形成される。同様に、ドライバー起動部53は、PC200を操作するユーザーによって第3のドライバープログラムが指定される場合、CPU201に第3のドライバープログラムを編集モードで実行させる。例えば、第3のドライバープログラムを実行するコマンドを、CPU201に実行させる。この際に、編集モードでの起動を指示するための引数をコマンドに付加する。CPU201は、第3のドライバープログラムを実行するコマンドが入力されると、第3のドライバープログラムを編集モードで実行する。これにより、CPU201に第2画像処理装置制御部11Bが形成される。
第1画像処理装置制御部11Aおよび第2画像処理装置制御部11Bそれぞれは、編集モードで起動する場合、編集用画面を表示する。編集用画面は、部分画面を識別するための領域識別画像を選択可能に表示する画面である。また、第1画像処理装置制御部11Aおよび第2画像処理装置制御部11Bそれぞれは、領域識別画像がユーザーにより選択される場合、選択された領域識別画像に対応する部分定義情報を、ドライバー生成部50に出力する。部分定義情報は、領域識別画像情報と、領域識別画像に対応する部分定義データと、を含む、領域識別画像情報は、領域識別画像と、領域識別画像が表示部206中で表示されている位置を示す位置情報とを含む。
部分定義情報受付部55は、第1画像処理装置制御部11Aおよび第2画像処理装置制御11Bのいずれかが出力する部分定義情報を受け付ける。部分定義情報受付部55は、受け付けられた部分定義情報を、移動中表示部57に出力する。
移動中表示部57は、部分定義情報が入力されることに応じて、部分定義情報に含まれる領域識別画像を表示部206に移動可能に表示する。移動中表示部57は、部分定義情報が部分定義情報受付部55によって受け付けられた段階では、部分定義情報に含まれる領域識別画像を、表示部206の表示面中で部分定義情報に含まれる位置情報で特定される位置に表示する。そして、移動中表示部57は、ユーザーが操作部207に入力する移動を指示する操作に従って、領域識別画像を移動させる。移動中表示部57は、領域識別画像の移動中は、領域識別画像の表示部206の表示面中の位置と、部分定義情報に含まれる部分定義データとの組を配置位置決定部59に出力する。
配置位置決定部59は、移動中表示部57から領域識別画像の位置と部分定義データとの組が入力される。配置位置決定部59は、ユーザーが操作部207に入力する移動を終了する操作を検出すると、領域識別画像の移動後の位置を決定する。配置位置決定部59は、領域識別画像の移動後の位置を決定する場合、領域識別画像の移動後の位置と、部分定義データとの組を、生成部60に出力する。
生成部60は、第2のドライバープログラムを生成する。ここでは、生成部60は、生成した第2のドライバープログラムをHDD205に記憶する場合を例に説明する。第2のドライバープログラム81は、共通定義データ83と、設定画面情報85とを含む。設定画面情報85は、部分定義データ87を含む。
生成部60は、第2設定画面を生成して表示部206に表示するとともに、第2のドライバープログラムを生成してHDD205に記憶する。生成部60は、第2設定画面生成部61と、設定画面情報生成部63と、を含む。第2設定画面生成部61は、共通画面生成部65と、部分画面生成部67と、を含む。共通画面生成部65は、HDD205に、第2のドライバープログラム81の共通定義データを記憶する。共通定義データは、ドライバー生成プログラムによって予め定められている。また、第1のドライバープログラムおよび第2のドライバープログラムのいずれかから共通定義データを取得するようにしてもよい。共通画面生成部65は、さらに、共通定義データに含まれる共通コマンドに従って共通画面を含む第2設定画面を生成し、生成された第2設定画面を、表示部206に表示する。この段階における第2設定画面は、共通画面を含み、タブ選択画面およびタブ画面は領域が確保されるのみで、無地の領域として含まれる。共通画面生成部65は、共通定義データに含まれるタブ選択画面およびタブ画面をそれぞれ配置する領域を示す領域情報を設定画面情報生成部63に出力する。
設定画面情報生成部63は、配置位置決定部59から領域識別画像の移動後の位置と、部分定義データとの組が入力され、共通画面生成部65からタブ選択画面およびタブ画面をそれぞれ配置する領域を示す領域情報が入力される。設定画面情報生成部63は、領域識別画像の移動後の位置が第2設定画面のタブ画面を配置する領域内か否かを判断する。設定画面情報生成部65は、領域識別画像の移動後の位置がタブ画面を配置する領域内と判断する場合、配置位置決定部59から入力される部分定義データを更新し、更新後の部分定義データを、HDD205に記憶されている第2ドライバープログラム81の設定画面情報85に追加して記憶する。これにより、HDD81の設定画面情報85に、部分定義データ87が追加される。設定画面情報生成部65は、配置位置決定部59から入力される部分定義データに含まれる表示コマンドの位置情報を、領域識別画像の移動後の位置で更新する。設定画面情報生成部63は、さらに、位置情報を更新した後の部分定義データを、部分画面生成部67に出力する。
部分画面生成部67は、設定画面情報生成部63から入力される部分定義データに基づいて、タブ画面を生成する。部分画面生成部67は、設定画面情報生成部63から部分定義データが入力されると、それに含まれる表示コマンドに従って部分画面を生成する。部分画面生成部67は、表示部206に表示する画面中で部分定義データに含まれる表示コマンドに含まれる位置情報で特定される位置に、表示コマンドに含まれる部品特定情報で特定される部品を配置することによって部分画面を表示する。
図11は、表示画面の一例を示す図である。図11に示す表示画面は、CPU111が、ドライバー生成プログラムを実行し、ユーザーが第1のドライバープログラム91Aおよび第2のドライバープログラム91Bを指定した場合に、表示部206に表示される画面を示す。なお、図中の点線は説明のために付したもので、実際には存在しない。
図11を参照して、表示画面600は、第1のドライバープログラムを実行するタスクが表示する第1ウィンドウ601と、第3のドライバープログラムを実行するタスクが表示する第2ウィンドウ603と、ドライバー生成プログラムを実行するタスクが表示する第3ウィンドウ605と、を含む。
第1ウィンドウ601は、第1のドライバープログラムを実行するタスクが表示する編集用画面300Aを含む。編集用画面300Aは、図9に示した編集用画面300Aと同じである。第2ウィンドウ603は、第3のドライバープログラムを実行するタスクが表示する編集用画面400を含む。
編集用画面400は、共通画面の領域401と、タブ選択画面の領域403と、タブ画面の領域405と、を含む。領域401に表示される共通画面は、印刷対象のデータの画像をプレビュー表示する領域411と、本体ビューの文字が表されたボタン413とを含む。
領域403に表示されるタブ選択画面は、対応するタブ画面の名称を含み、選択可能な5つの名称が配列される。ここでは、名称「仕上げ」のタブ画面が選択されている場合を例に示している。領域405に表示されるタブ画面は、名称「仕上げ」のタブ画面に関連付けられた部分定義データ97に基づいて生成される3つの部分画面421、423、427を含む。
領域405に表示されるタブ画面は、中とじ処理の機能に対応するチェックボックスを含む部分画面421と、折り加工処理の機能に対応するチェックボックスを含む部分画面423と、適用の文字が表されたボタンを含む部分画面427と、を含む。
編集用画面400は、タブ画面の領域405に含まれる3つの部分画面421,423,427にそれぞれ対応して、領域識別画像を含む。具体的には、編集用画面400は、部分画面421を囲む輪郭画像421Aと、部分画面421に対応する部分定義データの部分定義データ識別情報「ID:111」の画像421Bと、を含む。編集用画面400は、部分画面423を囲む輪郭画像423Aと、部分画面423に対応する部分定義データの部分定義データ識別情報「ID:113」の画像423Bと、を含む。編集用画面400は、部分画面427を囲む輪郭画像427Aと、部分画面427に対応する部分定義データの部分定義データ識別情報「ID:115」の画像427Bと、を含む。
また、編集用画面400は、共通画面の領域401に含まれる印刷対象のデータの画像をプレビュー表示する領域411と、本体ビューの文字が表されたボタン413と、にそれぞれ対応して領域識別画像を含む。具体的には、編集用画面400は、プレビュー表示する領域411を囲む輪郭画像411Aと、プレビュー表示する領域411に対応する部分定義データの部分定義データ識別情報「ID:010」の画像411Bと、を含む。また、編集用画面400は、ボタン413を囲む輪郭画像413Aと、ボタン413に対応する部分定義データの部分定義データ識別情報「ID:011」の画像413Bと、を含む。
第3ウィンドウ605は、ドライバー生成プログラムを実行するタスクが表示する第2設定画面500を含む。第2設定画面500は、共通画面の領域501と、タブ選択画面の領域503と、タブ画面の領域505と、を含む。領域501に表示される共通画面は、印刷対象のデータの画像をプレビュー表示する領域511と、本体ビューの文字が表されたボタン513とを含む。
領域505に表示されるタブ画面は、ユーザーが、編集用画面300Aの輪郭画像323Aをドラッグして領域503にドロップする操作、編集用画面400の輪郭画像423Aをドラッグして領域503にドロップする操作、編集用画面300Aの輪郭画像325Aをドラッグして領域503にドロップする操作、をすることにより、生成される。
第2設定画面500の領域505に表示されるタブ画面は、ステープル加工処理の機能に対応するコンボボックスを含む部分画面521と、折り加工処理の機能に対応するチェックボックスを含む部分画面523と、適用の文字が表されたボタンを含む部分画面525と、を含む。
部分画面521は、ユーザーが、編集用画面300Aの輪郭画像323Aをドラッグして領域505にドロップする操作をすることにより表示される。部分画面521は、コンボボックスと「ステープル」の文字列の組を含む。部分画面523は、ユーザーが、編集用画面400の輪郭画像423Aをドラッグして領域505にドロップする操作をすることにより表示される。部分画面523は、チェックボックスと「折り」の文字列との組を含む。
部分画面525は、ユーザーが編集用画面300Aの輪郭画像325Aをドラッグして領域505にドロップする操作をすることにより表示される。なお、ユーザーが編集用画面400の輪郭画像427Aをドラッグして領域505にドロップする操作をすることによっても表示される。
このように、ユーザーが、操作部207が備えるマウスを用いて編集用画面300A,400中の領域識別画像である輪郭画像にマウスのポインタを合わせてドラッグした段階で、その領域識別画像を選択し、ユーザーが移動させるマウスのポインタの移動に従って、領域識別画像を移動させる。その後、ユーザーが移動を終了させる操作として、例えば、第2設定画面500の領域505にドロップ操作を入力すれば、その位置に部分画面を表示する。このように、マウスを用いたドラッグアンドドロップの簡単な操作で、第2のドライバープログラム81を生成することができる。
図12および図13は、設定処理の流れの一例を示すフローチャートである。設定処理は、PC200が備えるCPU201が、ROM202、HDD205またはCD−ROM209Aに記憶された、ドライバープログラムを実行することにより、CPU201により実行される処理である。ここでは、CPU201が、MFP100に対応する第1のドライバープログラムを実行する場合を例に説明する。
図12および図13を参照して、CPU201は、HDD205に記憶された第1のドライバープログラム91に含まれる共通定義データ93を読み出す(ステップS01)。そして、共通コマンドを取得する(ステップS02)。読み出された共通定義データ93から共通コマンドを抽出する。そして、取得された共通コマンドに従って共通画面を含む第1設定画面を生成し、生成された第1設定画面を表示部206に表示する(ステップS03)。
次のステップS04においては、HDD205に記憶された第1のドライバープログラム91に含まれる設定画面情報95を読み出す。設定画面情報95は、1以上のタブ画面ごとに1以上の部分定義データ97の組を含む。そして、タブ選択画面を生成し、表示する(ステップS05)。タブ選択画面は、設定画面情報95によって特定される1以上のタブ画面を選択可能な画面である。タブ選択画面は、1以上のタブ画面それぞれの名称を含む画像であって、タブ画面の名称を選択可能に配列した画面である。生成されたタブ選択画面を、ステップS01において読み出された共通定義データ93に含まれる領域情報によって定められた位置に配置されるように、表示部206に表示する。
次のステップS06においては、タブ画面を選択する。ステップS05において特定された1以上のタブ画面のうちから、処理対象となるタブ画面として任意の1つを選択する。ここでは、最初のタブ画面を選択するようにしている。そして、ステップS04において読み出された設定画面情報に含まれる部分定義データ97のうちから処理対象となるタブ画面に対応する1以上の部分定義データ97を読み出す。1つのタブ画面に1以上の部分定義データが予め割り当てられているので、処理対象のタブ画面に割り当てられたすべての部分定義データ97を読み出す。
次のステップS08においては、ステップS07において取得された1以上の部分定義データのうちから1つを処理対象に選択する。そして、処理対象に選択された部分定義データに含まれる表示コマンドに従って部分画面を生成する(ステップS09)。具体的には、表示コマンドに含まれる部品特定情報で特定される部品を取得する。
次のステップS10においては、表示部206に部分画面を表示し、処理をステップS11に進める。部分画面を表示する位置は、表示部206に表示された第1設定画面のタブ画面中で処理対象の表示コマンドに含まれる位置情報で特定される位置である。
ステップS11においては、ステップS07において読み出された1以上の部分定義データのうちで処理対象に選択されていない部分定義データが存在するか否かを判断する。処理対象に選択されていない部分定義データが存在するならば処理をステップS08に戻し、そうでなければ処理をステップS12に進める。1つのタブ画面に複数の部分定義データが割り当てられている場合があり、複数の部分定義データそれぞれを処理対象として、ステップS09およびステップS10の処理を実行するためである。
ステップS12においては、編集モードか否かを判断する。設定処理は、CPU201が第1のドライバープログラムを実行するコマンドが入力される場合に、CPU201によって実行される処理である。第1ドライバープログラムを実行するコマンドの引数として編集モードで起動する値が付加されている場合に、編集モードとなり、そうでなければ編集モードとは異なる通常モードである。編集モードならば処理をステップS13に進めるが、そうでなければ処理をステップS21に進める。
ステップS13においては、編集用画面表示処理を実行し、処理をステップS14に進める。編集用画面表示処理の詳細は後述するが、第1設定画面に、それに含まれる部分画面それぞれを識別するための領域識別画像を合成した編集用画面を表示する処理である。
ステップS14においては、編集終了信号が入力されたか否かを判断する。編集終了信号は、第1のドライバープログラムを実行するコマンドを出力したタスク、ここでは、ドライバー生成プログラムを実行するタスクから入力される。これについての詳細は後述する。編集終了信号が入力されたならば処理を終了するが、そうでなければ処理をステップS15に進める。
ステップS15においては、操作を受け付けたか否かを判断する。ユーザーにより操作部207に入力される操作を検出すると処理をステップS16に進めるが、そうでなければ処理をステップS14に戻す。ステップS16においては、受け付けられた操作に基づいて処理を分岐させる。操作が部分画面を選択する操作ならば処理をステップS18に進め、タブ画面を切り換える操作ならば処理をステップS17進める。部分画面を選択する操作は、ステップS13において表示部206に表示された編集用画面に含まれる領域識別画像を指示する操作である。
ステップS17においては、ステップS15において受け付けられた操作により特定されるタブ画面を処理対象に設定し、処理をステップS07に戻す。
ステップS18においては、ステップS15において受け付けられた操作に基づいて、部分定義データを特定する。具体的には、編集用画面に含まれる領域識別画像のうち、ステップS15において受け付けられた操作により特定される領域識別画像に対応する部分画面を特定する。そして、特定された部分画面に対応する部分定義データを特定する。
次のステップS19においては、領域識別画像情報を出力する。領域識別画像情報は、ステップS15において受け付けられた操作により特定される領域識別画像と、その領域識別画像の表示部206の表示面中の位置と、を含む。
次のステップS20においては、ステップS18において特定された部分定義データを出力し、処理をステップS14に戻す。領域識別画像情報および機能定義データの出力先は、第1のドライバープログラムを実行するコマンドを出力したタスク、ここでは、ドライバー生成プログラムを実行するタスクである。
ステップS21においては、操作を受け付けたか否かを判断する。ユーザーが操作部207に操作を入力するまで待機状態となり(ステップS21でNO)、操作部207に入力される操作を検出すると(ステップS21でYES)、処理をステップS22に進める。ステップS22においては、受け付けられた操作に基づいて処理を分岐させる。操作がプリントを指示する操作ならば処理をステップS23に進め、タブ画面を切り換える操作ならば処理をステップS24進め、設定値を入力する操作ならば処理をステップS25に進める。部分画面のうち機能別画面に対する操作を検出する場合、設定値を入力する操作と判断する。
ステップS23においては、プリントジョブ生成処理を実行し、処理を終了する。プリントジョブ生成処理の詳細は後述する。ステップS24においては、ステップS21において受け付けられた操作により特定されるタブ画面を処理対象に設定し、処理をステップS07に戻す。ステップS25においては、設定値を設定し、処理をステップS21に戻す。具体的には、PC200を操作するユーザーが、部分画面のうち機能別画面に従って操作部207に入力した設定値を、機能別画面に対応する機能に対して設定された設定値に設定する。より具体的には、機能別画面に対応する機能を識別するための機能識別情報と、受け付けられた設定値との組をRAM202に記憶する。
図14は、編集用画面表示処理の流れの一例を示す図である。編集用画面表示処理は、図12および図13に示した設定処理のステップS13において実行される処理である。編集用画面表示処理が実行される前の段階で、処理対象のタブ画面が選択されている。図14を参照して、CPU201は、処理対象に設定されているタブ画面に含まれる1以上の部分画面のうちから処理対象となる1つの部分画面を選択する(ステップS31)。そして、を処理対象の部分画面に対応する領域識別画像を生成する(ステップS32)。領域識別画像は、部分画面を識別可能な画像である。例えば、領域識別画像は、部分画面を囲む輪郭の画像である。また、領域識別画像は、部分画面に対応する部分定義データを識別するための部分定義データ識別情報の画像を含んでもよい。
ステップS33においては、生成された領域識別画像を表示部206に表示されている設定画面に重畳して表示し、処理をステップS34に進める。ステップS34においては、処理対象の部分画面に対応する領域識別画像と、部分画面に対応する部分定義データとを関連付け、処理をステップS35に進める。ステップS35においては、処理対象のタブ画面に含まれる1以上の部分画面のうちに処理対処に選択されていない部分画面が存在するか否かを判断する。未処理の部分画面が存在するならば処理をステップS31に戻すが、存在しなければ処理を設定処理に戻す。
図15は、プリントジョブ生成処理の流れの一例を示すフローチャートである。プリントジョブ生成処理は、図12および図13に示した設定処理のステップS23において実行される処理である。図15を参照して、CPU201は、RAM203に記憶されている機能識別情報と設定値との組をすべて読み出す(ステップS41)。そして、読み出された機能識別情報と設定値との組のうちから1つを処理対象に選択する(ステップS42)。そして、プリントコマンドを選択し(ステップS43)、RAM203に記憶する。HDD205に記憶されている部分定義データ97のうちから、処理対象に選択された機能識別情報の機能に対応する1以上の部分定義データを抽出し、抽出された1以上の部分定義データそれぞれに含まれるプリントコマンドのうちから処理対象に設定されている設定値に対応するプリントコマンドを選択する。
ステップS44においては、ステップS41において読み出された機能識別情報と設定値との組のうち未だ処理対象に設定していない組が存在するか否かを判断する。未処理の組が存在するならば処理をステップS42に戻すが、存在しなければ処理をステップS45に進める。
ステップS45においては、プリントジョブを生成する。RAM203に記憶されているプリントコマンドのすべてと、処理対象となるデータとを含むプリントジョブを生成する。そして、生成されたプリントジョブを、ネットワークI/F204を介してMFP100に送信し(ステップS46)、処理を設定処理に戻す。
図16は、ドライバー生成処理の流れの一例を示すフローチャートである。ドライバー生成処理は、PC200が備えるCPU201が、ROM202、HDD205またはCD−ROM209Aに記憶された、ドライバー生成プログラムを実行することにより、CPU201により実行される処理である。
図16を参照して、CPU201は、共通コマンドを取得する(ステップS51)。ドライバー生成プログラムに予め含まれる共通定義データを読出し、共通定義データに含まれる共通コマンドを取得する。そして、共通画面を含む第2設定画面を表示する(ステップS52)。
次のステップS53においては、タブ画面を表示部206に表示する。ステップS51において読み出された共通定義データに含まれるタブ画面を表示する領域に、タブ画面を表示する。この段階では、タブ画面に含まれる機能別画面は定まっていないので、無地のタブ画面を表示部206に表示する。この段階で、共通画面およびタブ画面を含む第2設定画面が表示される。
次のステップS54においては、ドライバープログラムの指定を受け付けたか否かを判断する。ユーザーが操作部207を用いて、ドライバープログラムを指定する操作を入力すると、ドライバープログラムの指定を受け付ける。ドライバープログラムの指定を受け付けたならば処理をステップS55に進めるが、そうでなければステップS55をスキップして処理をステップS56に進める。ステップS55においては、指定されたドライバープログラムを編集モードで起動し、処理をステップS56に進める。具体的には、指定されたドライバープログラムの実行を指示するコマンドに編集モードを指定する引数を付加して、CPU201にそのコマンドを実行させる。これにより、CPU201に指定されたドライバープログラムを実行するタスクが生成される。さらに、そのタスクは、編集モードで動作する。
ステップS56においては、ドライバープログラムの指定が終了したか否かを判断する。ユーザーが操作部207を用いて、ドライバープログラムの指定を終了する操作を入力すると、ドライバープログラムの指定が終了したと判断する。ドライバープログラムの指定が終了したと判断しない場合は処理をステップS54に戻し、ドライバープログラムの指定が終了したと判断する場合処理をステップS57に進める。換言すれば、CPU201に、1以上のドライバープログラムを実行するタスクが生成される。ここでは、第1のドライバープログラムを実行するタスクと、第3のドライバープログラムを実行するタスクと、がCPU201に生成される場合を例に説明する。
ステップS57においては、領域識別画像情報を受け付けたか否かを判断する。第1のドライバープログラムを実行するタスクおよび第3のドライバープログラムを実行するタスクのいずれかから領域識別画像情報を受け付ける。第1のドライバープログラムを実行するタスクおよび第3のドライバープログラムを実行するタスクは、編集用画面に含まれる機能別画面それぞれに対応する領域識別画像が、ユーザーにより指示されると、領域識別画像情報を出力する。領域識別画像情報は、領域識別画像と、表示部206の表示面中の位置とを含む。領域識別画像情報を受け付けたならば処理をステップS58に進めるが、そうでなければ処理をステップS65に進める。
ステップS58においては、部分定義データを受け付ける。第1のドライバープログラムを実行するタスクおよび第3のドライバープログラムを実行するタスクのうち領域識別情報を出力したタスクから部分定義データを受け付ける。
次のステップS59においては、領域識別画像を移動可能に表示する。領域識別画像情報に含まれる領域識別画像を表示面中の位置に移動可能に表示する。領域識別画像を最初に表示する位置は、領域識別画像情報に含まれる位置で特定される表示部206の位置とするのが好ましい。
次のステップS60においては、移動可能に表示された領域識別画像が第2設定画面のタブ画面内で移動を終了したか否かを判断する。ユーザーが、ドラッグアンドドロップ操作をすることにより、領域識別画像が移動された後に移動を終了する。領域識別画像がドロップされた時点における位置が、第2設定画面のタブ画面内ならば処理をステップS61に進めるが、そうでなければ処理をステップS65に進める。
ステップS61においては、第2設定画面内で領域識別画像が移動を終了した位置を決定する。そして、ステップS58において受け付けられた部分定義データを変更する(ステップS62)。具体的には、部分定義データに含まれる表示コマンドの位置情報を、ステップS61において決定された位置で書き換える。そして、位置情報が変更された表示コマンドを含む部分定義データを設定画面情報に追加し(ステップS63)、処理をステップS64に進める。
ステップS64のいては、部分画面を表示する。部分定義データに含まれ、位置情報が変更された表示コマンドに従って部分画面を表示する。これにより、第2設定画面に、第1のドライバープログラムを実行するタスクおよび第3のドライバープログラムを実行するタスクのいずれかにより表示される部分画面のうち、ユーザーにより指定された部分画面と同じ部分画面が、第2設定画面内に表示される。
ステップS65においては、編集終了指示を受け付けたか否かを判断する。ユーザーが操作部207を用いて、編集を終了する操作を入力すると、編集終了指示を受け付ける。編集終了指示を受け付けたならば処理をステップS66に進めるが、そうでなければ処理をステップS57に戻す。
ステップS66においては、編集終了信号を出力し、処理をステップS67に進める。ステップS55において起動したドライバープログラムを実行するタスクのすべてに、編集終了信号を出力する。編集モードで起動したタスクのすべてを終了させるためである。
そして、ステップS67においては、設定画面情報をHDD205に記憶し、処理を終了する。設定画面情報は、ステップS63において追加された部分定義データを含むので、第2のドライバープログラムを容易に生成することができる。
以上説明したように、本実施の形態におけるPC200は、ドライバー生成プログラムを実行することによりドライバー生成装置として機能する。また、PC200は、MFP100を制御するための第1のドライバープログラム91Aによって定められた複数の部分定義データまたはMFP100Aを制御するための第3のドライバープログラム91Bによって定められた複数の部分定義データのうちから1以上がユーザーにより選択されると、その選択された部分定義データを含む第2のドライバープログラムを生成する。第1のドライバープログラム91Aに含まれる複数の部分定義データそれぞれは、MFP100を制御するための所定の処理を定めた制御コマンドとその所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付ける。第3のドライバープログラム91Bに含まれる複数の部分定義データそれぞれは、MFP100Aを制御するための所定の処理を定めた制御コマンドとその所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付ける。このため、ユーザーは、第2のドライバープログラムを生成する段階において、ユーザーの操作に対応して制御コマンドを新たに関連付ける必要がない。このため、第2のドライバープログラムを容易に生成することができるので、ドライバープログラムの開発効率を向上させることができる。
また、PC200は、第2のドライバープログラムの第2設定画面を生成する際に、第1のドライバープログラム91Aまたは第3のドライバープログラム91Bの複数の部分定義データのうちから選択された1以上の部分定義データに対応する1以上の部分画面を第2設定画面に配置する位置を決定し、選択された部分定義データを、部分画面が第2設定画面中で決定された位置に配置されるように変更する。このため、第1のドライバープログラム91Aまたは第3のドライバープログラム91Bそれぞれで定められる部分画面を、第2のドライバープログラムで定められる第2設定画面中で任意の位置に配置することができる。
また、PC200は、第1のドライバープログラム91Aを実行し、第1のドライバープログラム91Aによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第1設定画面を生成し、第1設定画面に対応する編集用画面を生成し、表示する。また、PC200は、第3のドライバープログラム91Bを実行し、第3のドライバープログラム91Bによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第1設定画面を生成し、第1設定画面に対応する編集用画面を生成し、表示する。そして、PC200は、2つの編集用画面それぞれに含まれる1以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データを特定する。このため、第1のドライバープログラム91Aによって定められた複数の部分定義データまたは第3のドライバープログラム91Bによって定められた複数の部分定義データを、ユーザーは、第1の設定画面に含まれる複数の部分画面として認識することができるので、部分定義データを選択する操作を容易にすることができる。
また、PC200は、表示部206に表示された編集用画面に含まれる1以上の領域識別画像のいずれかがユーザーにより指示されることに応じて領域識別画像を特定し、特定された領域識別画像を移動可能に表示する。そして、PC200は、領域識別画像の移動が終了した時点における第2設定画面中の位置を領域識別画像に対応する部分画面を第2設定画面中で配置する配置位置に決定する。このため、第1のドライバープログラム91Aにより定められる部分定義データを選択する操作を容易にするとともに、第2のドライバープログラムで定められる第2設定画面中で部分画面を配置する位置を決定する操作を容易にすることができる。例えば、マウスを用いて領域識別画像をドラッグする操作、マウスポインタを移動させる操作、マウスポインタを第2設定画面に移動させた後にドロップする操作で、部分定義データの特定と、第2設定画面中の部分画面の位置を指定することができる。
また、第1のドライバープログラム91Aにより定められる複数の部分定義データは、MFP100が有する複数の機能のいずれかに対応する機能定義データであって、MFP100を制御するための複数の制御コマンドのうちその機能に対応する1以上の制御コマンドと、その機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含む。この機能定義データは、ユーザーが機能別画面に従って入力する操作と、MFP100を制御するための制御コマンドとを関連付ける。また、第3のドライバープログラム91Bにより定められる複数の部分定義データも同様に、ユーザーが機能別画面に従って入力する操作と、MFP100Aを制御するための制御コマンドとを関連付ける。このため、ユーザーは、第2のプログラムを生成する際に、ユーザーにより入力される設定値と制御コマンドとを関連付ける必要がないので、第2のドライバープログラムを容易に生成することができる。
また、第1のドライバープログラム91Aにより定められる複数の部分定義データ、または第3のドライバープログラム91Bにより定められる複数の部分定義データは、ユーザーが入力可能な複数の操作のいずれかに対応する指示定義データであって、操作に対応する処理を定める処理実行コマンドと、部分画面としてその操作を受け付けるための指示別画面を表示するための表示コマンドとを関連付ける。この指示定義データは、ユーザーが指示別画面に従って入力する操作と、その操作に対応する処理とを関連付ける。このため、ユーザーは、第2のプログラムを生成する際に、ユーザーにより入力される操作とその操作に対応する処理とを関連付ける必要がないので、第2のドライバープログラムを容易に生成することができる。
PC200のCPU201は、ドライバー生成プログラムを生成するタスクが第1のドライバープログラム91Aを編集モードで実行する指示が出力する場合、第1のドライバープログラム91Aを編集モードで実行する。この場合に、第1のドライバープログラム91Aを実行するタスクは、編集用画面を表示し、表示された編集用画面に含まれる1以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、1以上の部分画面のうち指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データを、ドライバー生成プログラムを実行するタスクに出力する。このため、第1のドライバープログラム91Aを実行するタスクは、編集モードで起動される場合に限って、編集用画面を出力するので、ユーザーは、編集用画面を表示するか否かを指定することができる。
また、編集用画面に表示される輪郭画像(領域識別画像)から所定の距離で定まる位置で複数の部分画面それぞれに対応する部分定義データを識別するための部分定義データ識別情報を合成する。例えば、部分定義データを、輪郭画像の内部に表示する。このため、ユーザーは、編集用画面で輪郭画像を選択する際に、部分定義データを特定することができる。また、第1のドライバープログラム91A、第2のドライバープログラムおよび第3のドライバープログラム91Bのソースを閲覧する際に、部分定義データ識別情報から部分定義データを探し出すのが容易となる。
<変形例>
上述した実施の形態においては、ドライバー生成プログラムを実行するタスクが、第1のドライバープログラムを実行するタスクと、第3のドライバープログラムを実行するタスクとを編集モードで起動し、タスク間で通信することによって、第1のドライバープログラムまたは第3のドライバープログラムに含まれる部分定義データを含む第2のドライバープログラムを生成する。変形例におけるドライバー生成プログラムは、第1のドライバープログラムを実行するタスクと、第3のドライバープログラムを実行するタスクとを起動することなく、第1のドライバープログラムおよび第3のドライバープログラムから部分定義データを直接読み出すことにより、部分定義データを取得する。以下、上述した実施の形態におけるPC200と異なる点を主に説明する。
図17は、PCが備えるCPUが変形例におけるドライバー生成プログラムを実行する場合の機能の一例をHDDに記憶されるデータとともに示すブロック図である。図17に示す機能は、PC200が備えるCPU201が、HDD205またはCD−ROM209Aに記憶された変形例におけるドライバー生成プログラムを実行することにより、CPU201に形成される機能である。図17では、HDD205に第1のドライバープログラム91Aと、第3のドライバープログラム91Bとが記憶されている。第1のドライバープログラム91Aおよび第3のドライバープログラム91Bそれぞれは、共通定義データと、設定画面情報とを含む。
図17を参照して、CPU201は、変形例におけるドライバー生成プログラムを実行するタスクとしてのドライバー生成部50Aを含む。ドライバー生成部50Aは、選択部51Aと、生成部60と、を含む。生成部60は、図10に示したブロック図における生成部60と同じである。したがって、ここでは説明を繰り返さない。
選択部51Aは、第1ドライバー画面表示部71Aと、第2ドライバー画面表示部71Bと、部分定義情報受付部73と、移動中表示部57と、配置位置決定部59と、を含む。移動中表示部57と、配置位置決定部59とは、図10に示したブロック図における移動中表示部57と、配置位置決定部59とそれぞれ同じである。したがって、ここでは説明を繰り返さない。
第1ドライバー画面表示部71Aは、ユーザーが第1のドライバープログラム91Aを指定する場合に、HDD205に記憶された第1のドライバープログラム91Aにアクセスし、共通定義データと設定画面情報とを読出し、第1設定画面を表示部206に表示する。第2ドライバー画面表示部71Bは、ユーザーが第3のドライバープログラム91Aを指定する場合に、HDD205に記憶された第3のドライバープログラム91Bにアクセスし、共通定義データと設定画面情報とを読出し、第1設定画面を表示部206に表示する。第1ドライバー画面表示部71Aと第2ドライバー画面表示部71Bとは、処理対象とするドライバープログラムが異なるのみなので、ここでは、第1ドライバー画面表示部71Aを例に説明する。なお、ユーザーが第1のドライバープログラム91Aおよび第3のドライバープログラム91Bとは別のドライバープログラムを指定する場合には、当該ドライバープログラムにアクセスし、共通定義データと設定画面情報とを読出し、第1設定画面を表示部206に表示する機能を選択部51Aは含む。
図18は、第1ドライバー画面表示部71Aの詳細な機能の一例を示す図である。図18を参照して、第1ドライバー画面表示部71Aは、図5に示した第1画像処理装置制御部11の機能と異なる点は、プリントコマンド取得部17、コマンド出力部23、設定値受付部21を含まない点、部分定義情報出力部35が部分定義情報出力部35Aに変更された点である。その他の機能は同じなのでここでは説明を繰り返さない。
部分定義情報出力部35Aは、編集用画面に含まれる1以上の領域識別画像のいずれかがユーザーにより指示されると、領域定義情報を部分定義情報受付部73(図17参照)に出力する。部分定義情報出力部35Aは、ユーザーが、操作部207に、編集用画面に含まれる1以上の領域識別画像のいずれかの内部の位置を指示する操作を入力すれば、当該指示された領域識別情報に対応する部分定義情報を部分定義情報受付部73に出力する。部分定義情報は、領域識別画像情報と、領域識別画像に対応する部分定義データと、を含む。領域識別画像情報は、領域識別画像と、領域識別画像が表示部206中で表示されている位置を示す位置情報とを含む。
図17に戻って、部分定義情報受付部73は、第1ドライバー画面表示部71Aおよび第2ドライバー画面表示部71Bのいずれかが出力する部分定義情報を受け付ける。部分定義情報受付部55は、受け付けられた部分定義情報を、移動中表示部57に出力する。
図19は、変形例におけるドライバー生成処理の流れの一例を示すフローチャートである。図19を参照して、変形例におけるドライバー生成処理が、図16に示したドライバー生成処理と異なる点は、ステップS55がステップS55Aに変更された点、ステップS57〜ステップS58がステップS71〜ステップS76に変更された点、ステップS66が削除された点である。その他の処理は、図16に示した処理と同じなのでここでは説明を繰り返さない。
ステップS55Aにおいては、第1設定画面表示処理を実行する。第1設定画面表示処理の詳細は後述するが、ステップS54において指定されたドライバープログラムの共通定義データおよび設定画面情報を読み出して、編集用画面を生成し、表示する処理である。
したがって、処理がステップS71に進む場合、1以上のドライバープログラムが指定されて、1以上のドライバープログラムにそれぞれ対応する編集用画面が表示される。ここでは、第1のドライバープログラム91Aと第3のドライバープログラム91Bが指定されて、第1のドライバープログラム91Aに対応する編集用画面と、第3のドライバープログラム91Bに対応する編集用画面と、が表示される場合を例に説明する。
ステップS71においては、操作を受け付けたか否かを判断する。ユーザーが操作部207に入力する操作を検出すると処理をステップS72に進めるが、そうでなければ処理をステップS65に進める。ステップS65においては、編集終了指示を受け付けたか否かを判断する。編集終了指示を受け付けたならば処理をステップS67に進めるが、そうでなければ処理をステップS71に戻す。
ステップS72においては、ドライバープログラムを特定する。ステップS71において受け付けられた操作が、第1のドライバープログラム91Aに対応する編集用画面内を指示する操作ならば第1のドライバープログラム91Aを特定し、第3のドライバープログラム91Bに対応する編集用画面内を指示する操作ならば第3のドライバープログラム91Bを特定する。
ステップS73においては、ステップS71において受け付けられた操作に基づいて処理を分岐させる。タブ画面を切り換える操作ならば処理をステップS74進め、部分画面を選択する操作ならば処理をステップS76に進める。部分画面を選択する操作は、ステップS55Aにおいて表示部206に表示された編集用画面に含まれる領域識別画像を指示する操作である。
ステップS74においては、ステップS71において受け付けられた操作により特定されるタブ画面を処理対象に設定し、処理をステップS75に進める。ステップS75においては、ステップS55Aと同様に、第1設定画面表示処理を実行し、処理をステップS71に戻す。
ステップS76においては、ステップS71において受け付けられた操作に基づいて、部分定義データを特定し、処理をステップS59に進める。具体的には、編集用画面に含まれる領域識別画像のうち、ステップS71において受け付けられた操作により特定される領域識別画像に対応する部分画面を特定する。そして、特定された部分画面に対応する部分定義データを特定する。
図20は、第1設定画面表示処理の流れの一例を示す図である。第1設定画面表示処理は、図19のステップS55AおよびステップS75で実行される処理である。図20を参照して、ステップS81においては、機能定義データを読み出す。第1設定画面表示処理が実行される前の段階で、ドライバープログラムと、タブ画面とが特定されている。したがって。特定されているドライバープログラムに含まれる設定画面情報に含まれる1以上の部分定義データのうち、タブ画面と関連付けられた1以上の部分定義データを読み出す。
次のステップS82においては、読み出された1以上の部分定義データのうちから1つを処理対象に選択する。そして、処理対象に選択された部分定義データに含まれる表示コマンドに従って機能別画面を生成する(ステップS83)。具体的には、表示部206に表示する画面中で処理対象の表示コマンドに含まれる位置情報で特定される位置に、表示コマンドに含まれる部品特定情報で特定される部品を配置することによって機能別画面を生成する。
次のステップS84においては、表示部206に部分画面を表示し、処理をステップS85に進める。ステップS85においては、ステップS81において読み出された1以上の部分定義データのうちで処理対象に選択されていない部分定義データが存在するか否かを判断する。処理対象に選択されていない部分定義データが存在するならば処理をステップS82に戻し、そうでなければ処理をステップS86に進める。1つの設定画面に複数の部分定義データが割り当てられている場合があり、複数の部分定義データそれぞれを処理対象として、ステップS09およびステップS10の処理を実行するためである。ステップS86においては、図14に示した編集用画面表示処理を実行し、図18に示したドライバー生成処理に処理を戻す。
変形例におけるPC200は、第1のドライバープログラム91Aによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第1設定画面を生成し、第1設定画面に対応する編集用画面を生成し、表示する。また、第3のドライバープログラム91Bによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第1設定画面を生成し、第1設定画面に対応する編集用画面を生成し、表示する。そして、PC200は、2つの編集用画面それぞれに含まれる1以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データを特定する。このため、第1のドライバープログラムによって定められた複数の部分定義データを、ユーザーは、第1の設定画面に含まれる複数の部分画面として認識することができるので、部分定義データを選択する操作を容易にすることができる。
なお、上述した実施の形態においては、プリントシステム1において、PC200がMFP100Bを制御するための第2のドライバープログラムを生成するドライバー生成装置として機能する場合を例に説明した。これに加えて、PC200をドライバー生成装置として機能させるためにPC200のCPU201に図12〜図16、または図19に示した処理を実行させるドライバー生成方法またはドライバー生成プログラムとして発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 画像処理装置を制御するための第1のドライバープログラムによって定められ、所定の処理を定めた制御コマンドと前記所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第1設定画面を生成する第1設定画面生成手段と、
前記表示された複数の部分画面のうちユーザーにより選択されたカレント部分画面に入力される設定値を、前記カレント部分画面に対応する機能に対する設定値として受け付ける設定値受付手段と、
前記カレント部分画面に対応する部分定義データに含まれる1以上の制御コマンドのうち前記設定値受付手段によって受け付けられた設定値に対応する制御コマンドを前記画像処理装置に出力するコマンド出力手段と、
前記生成された第1設定画面に含まれる前記複数の部分画面それぞれに対して、当該部分画面を識別するため領域識別画像を、前記第1設定画面中で前記部分画面が配置される位置と同じ位置で前記第1の設定画面と合成した編集用画面を生成する編集用画面生成手段と、
前記生成された編集用画面を表示する編集用画面表示制御手段と、を備えた制御装置。
(2) 前記表示された編集用画面に含まれる1以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、前記1以上の部分画面のうち前記指示された領域識別画像と同じ位置に配置された部分画面に対応する前記部分定義データを出力する部分定義データ出力手段を、さらに備えた(1)に記載の制御装置。
(3) 前記編集用画面表示制御手段は、外部からの所定の指示を受け付けることを条件に、前記編集用画面を表示し、
前記部分定義データ出力手段は、前記所定の指示の出力元に前記部分定義データを出力する、(2)に記載の制御装置。
(4) 編集用画面生成手段は、前記複数の部分画面それぞれに対応する前記部分定義データを識別するための部分定義データ識別情報を、前記第1設定画面中で前記部分画面に対応する領域識別画像から所定の距離で定まる位置で前記生成された設定画面とさらに合成した編集用画面を生成する、(1)〜(3)のいずれかに記載の制御装置。