(57)【特許請求の範囲】
【請求項１】
第１の画像処理装置を制御するための第１のドライバープログラムによって定められ、所定の処理を定めた制御コマンドと前記所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データのうちから１以上を選択する選択手段と、
前記選択された１以上の部分定義データを含む第２のドライバープログラムを生成する生成手段と、
画像処理装置制御手段と、を備え、
前記複数の部分定義データは、前記第１の画像処理装置が有する複数の機能のいずれかに対応し、前記第１の画像処理装置を制御するための複数の制御コマンドのうち当該機能に対応する１以上の制御コマンドと、前記部分画面として当該機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含み、
前記１以上の制御コマンドそれぞれは、前記第１の画像処理装置が有する複数の機能のいずれかに対応し、それが対応する機能に対して設定することが可能な１以上の設定値のいずれかに対応し、
前記第２のドライバープログラムを実行する前記画像処理装置制御手段は、前記第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の表示コマンドを実行することによって、１以上の機能別画面を表示し、前記表示された設定画面に従ってユーザーにより入力される設定値を受け付ける設定値受付手段と、
前記第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の制御コマンドのうちから前記設定値受付手段により受け付けられた設定値に対応する制御コマンドを第２の画像処理装置に出力するコマンド出力手段と、を含む、ドライバー生成装置。
【請求項２】
前記選択された１以上の部分定義データごとに、当該部分定義データに対応する前記部分画面を配置した第２設定画面を生成する第２設定画面生成手段と、
前記部分画面を前記第２設定画面に配置する位置を決定する配置位置決定手段と、
前記部分画面が前記第２設定画面中で前記決定された位置に配置されるように前記部分定義データを変更する設定画面情報生成手段と、をさらに備えた請求項１に記載のドライバー生成装置。
【請求項３】
前記第１のドライバープログラムを実行する画像処理装置制御手段は、前記第１のドライバープログラムによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成する第１設定画面生成手段と、
前記生成された第１設定画面に含まれる前記複数の部分画面それぞれに対して、当該部分画面を識別するため領域識別画像を、前記第１設定画面中で前記部分画面が配置される位置と同じ位置で前記第１の設定画面と合成した編集用画面を生成する編集用画面生成手段と、
前記生成された編集用画面を表示する編集用画面表示制御手段と、
前記表示された編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、前記１以上の部分画面のうち前記指示された領域識別画像と同じ位置に配置された部分画面に対応する前記部分定義データを特定する部分定義データ特定手段と、を含み、
前記選択手段は、前記部分定義データ特定手段により特定された部分定義データを選択する、請求項１に記載のドライバー生成装置。
【請求項４】
前記選択手段は、前記第１のドライバープログラムによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成する第１設定画面生成手段と、
前記生成された第１設定画面に含まれる前記複数の部分画面それぞれに対して、当該部分画面を識別するため領域識別画像を、前記第１設定画面中で前記部分画面が配置される位置と同じ位置で前記第１設定画面と合成した編集用画面を生成する編集用画面生成手段と、
前記生成された編集用画面を表示する編集用画面表示制御手段と、
前記表示された編集用画面に含まれる複数の前記領域識別画像がユーザーにより指示されることに応じて、前記指示された領域識別画像に対応する前記部分定義データを特定する部分定義データ特定手段と、を含み、
前記選択手段は、前記部分定義データ特定手段により特定された部分定義データを選択する、請求項１に記載のドライバー生成装置。
【請求項５】
前記生成手段は、前記選択された１以上の部分定義データごとに、当該部分定義データに対応する前記部分画面を配置した第２設定画面を生成する第２設定画面生成手段と、
前記生成された第２設定画面を表示する第２設定画面表示制御手段と、を含み、
前記部分定義データ特定手段は、前記表示された編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、前記部分定義データとともに前記指示された領域識別画像を特定し、
前記選択手段は、前記特定された領域識別画像を移動可能に表示する移動中表示手段と、
前記移動可能に表示された領域識別画像が前記表示された第２設定画面において移動が終了する場合、前記領域識別画像の移動が終了した時点における前記第２設定画面中の位置を、前記領域識別画像に対応する部分画面を前記第２設定画面中で配置する配置位置に決定する配置位置決定手段と、を含み、
前記生成手段は、さらに、前記部分画面が前記第２設定画面中で前記決定された位置に配置されるように前記部分定義データを変更する設定画面情報生成手段と、をさらに含む、請求項３または４に記載のドライバー生成装置。
【請求項６】
前記複数の部分定義データは、ユーザーが入力可能な複数の操作のいずれかに対応し、当該操作に対応する処理を定める処理実行コマンドと、前記部分画面として当該操作を受け付けるための指示別画面を表示するための表示コマンドとを関連付けた指示定義データを含む、請求項１〜５のいずれかに記載のドライバー生成装置。
【請求項７】
第１の画像処理装置を制御するための第１のドライバープログラムによって定められ、所定の処理を定めた実行コマンドと前記所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データのうちから１以上を選択する選択ステップと、
前記選択された１以上の部分定義データを含む第２のドライバープログラムを生成する生成ステップと、
前記第２のドライバープログラムを実行する画像処理装置制御ステップと、をコンピューターに実行させ、
前記複数の部分定義データは、前記第１の画像処理装置が有する複数の機能のいずれかに対応し、前記第１の画像処理装置を制御するための複数の制御コマンドのうち当該機能に対応する１以上の制御コマンドと、前記部分画面として当該機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含み、
前記１以上の制御コマンドそれぞれは、前記第１の画像処理装置が有する複数の機能のいずれかに対応し、それが対応する機能に対して設定することが可能な１以上の設定値のいずれかに対応し、
前記画像処理装置制御ステップは、前記第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の表示コマンドを実行することによって、１以上の機能別画面を表示し、前記表示された設定画面に従ってユーザーにより入力される設定値を受け付ける設定値受付ステップと、
前記第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の制御コマンドのうちから前記設定値受付ステップにおいて受け付けられた設定値に対応する制御コマンドを第２の画像処理装置に出力するコマンド出力ステップと、を含むドライバー生成方法。
【請求項８】
第１の画像処理装置を制御するための第１のドライバープログラムによって定められ、所定の処理を定めた実行コマンドと前記所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データのうちから１以上を選択する選択ステップと、
前記選択された１以上の部分定義データを含む第２のドライバープログラムを生成する生成ステップと、
前記第２のドライバープログラムを実行する画像処理装置制御ステップと、をコンピューターに実行させ、
前記複数の部分定義データは、前記第１の画像処理装置が有する複数の機能のいずれかに対応し、前記第１の画像処理装置を制御するための複数の制御コマンドのうち当該機能に対応する１以上の制御コマンドと、前記部分画面として当該機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含み、
前記１以上の制御コマンドそれぞれは、前記第１の画像処理装置が有する複数の機能のいずれかに対応し、それが対応する機能に対して設定することが可能な１以上の設定値のいずれかに対応し、
前記画像処理装置制御ステップは、前記第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の表示コマンドを実行することによって、１以上の機能別画面を表示し、前記表示された設定画面に従ってユーザーにより入力される設定値を受け付ける設定値受付ステップと、
前記第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の制御コマンドのうちから前記設定値受付ステップにおいて受け付けられた設定値に対応する制御コマンドを第２の画像処理装置に出力するコマンド出力ステップと、を含むドライバー生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ドライバー生成装置、ドライバー生成方法、およびドライバー生成プログラムに関し、特に、画像形成装置を制御するためのプリンタードライバープログラムを生成するドライバー生成装置、そのドライバー生成装置で実行されるドライバー生成方法およびドライバー生成プログラムに関する。
【背景技術】
【０００２】
パーソナルコンピューター（以下「ＰＣ」という）が、複合機で代表される画像形成装置を制御するためには、その画像形成装置に対応するプリンタードライバープログラムをインストールする必要がある。このプリンタードライバープログラムは、通常は、画像形成装置を提供するメーカーから供給される。また、プリンタードライバープログラムは、画像形成装置に対応するために、画像形成装置の機種が異なれば、プリンタードライバープログラムの種類も異なる。
【０００３】
特開２００６―２２７９９０号公報には、情報処理装置からの印刷処理を制御する印刷ソフトウェアが、ソフトウェアの普遍機能を提供するコア部分と、印刷に依存した機能を提供する複数の機能依存部分から構成されることを特徴とし、機能依存部分の更新の必要性を判断し、更新が必要である場合に最新モジュールで自身の保持するモジュールを更新することを特徴とする印刷ソフトウェア更新方法が記載されている。
【０００４】
しかしながら、従来の印刷ソフトウェア更新方法は、既存の機能依存部分を容易に更新することはできるが、新たな画像形成装置に対応するプリンタードライバープログラムを開発する場合には、その画像形成装置に対応するコア部分を開発しなければならない。
【特許文献１】特開２００６―２２７９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、ドライバープログラムの開発効率を向上したドライバー生成装置を提供することである。
【０００６】
この発明の他の目的は、ドライバープログラムの開発効率を向上したドライバー生成方法を提供することである。
【０００７】
この発明のさらに他の目的は、ドライバープログラムの開発効率を向上したドライバー生成プログラムを提供することである。
【課題を解決するための手段】
【０００８】
上述した目的を達成するためにこの発明のある局面によれば、ドライバー生成装置は、第１の画像処理装置を制御するための第１のドライバープログラムによって定められ、所定の処理を定めた制御コマンドと所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データのうちから１以上を選択する選択手段と、選択された１以上の部分定義データを含む第２のドライバープログラムを生成する生成手段と、画像処理装置制御手段と、を備え、複数の部分定義データは、第１の画像処理装置が有する複数の機能のいずれかに対応し、第１の画像処理装置を制御するための複数の制御コマンドのうち当該機能に対応する１以上の制御コマンドと、部分画面として当該機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含み、１以上の制御コマンドそれぞれは、第１の画像処理装置が有する複数の機能のいずれかに対応し、それが対応する機能に対して設定することが可能な１以上の設定値のいずれかに対応し、第２のドライバープログラムを実行する画像処理装置制御手段は、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の表示コマンドを実行することによって、１以上の機能別画面を表示し、表示された設定画面に従ってユーザーにより入力される設定値を受け付ける設定値受付手段と、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の制御コマンドのうちから設定値受付手段により受け付けられた設定値に対応する制御コマンドを第２の画像処理装置に出力するコマンド出力手段と、を含む。
【０００９】
この局面に従えば、第１の画像処理装置を制御するための第１のドライバープログラムによって定められた複数の部分定義データのうちから１以上が選択されると、第２のドライバープログラムが生成される。複数の部分定義データは、第１の画像処理装置が有する複数の機能のいずれかに対応する機能定義データであって、第１の画像処理装置を制御するための複数の制御コマンドのうち当該機能に対応する１以上の制御コマンドと、部分画面として当該機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含む。機能定義データは、ユーザーが機能別画面に従って入力する操作と、第１の画像処理装置を制御するための制御コマンドとを関連付けるので、ユーザーにより入力される設定値と制御コマンドとを関連付ける必要がない。このため、ドライバープログラムを容易に生成することができる。また、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の表示コマンドを実行することによって、１以上の機能別画面を表示し、表示された設定画面に従ってユーザーにより入力される設定値を受け付け、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の制御コマンドのうちから受け付けられた設定値に対応する制御コマンドを第２の画像処理装置に出力する。このため、第１の画像形成装置に新たな機能が追加され、第１のドライバープログラムに新たな制御コマンドが追加される場合であっても、新たな制御コマンドと表示コマンドとを含む部品定義データを選択すればよく、第１のプリンタードライバープログラム自体を変更することなく、第１の画像形成装置に新たな機能が追加された第２の画像形成装置を制御する第２のドライバープログラムを生成することができる。その結果、ドライバープログラムの開発効率を向上したドライバー生成装置を提供することができる。
【００１０】
好ましくは、選択された１以上の部分定義データごとに、当該部分定義データに対応する部分画面を配置した第２設定画面を生成する第２設定画面生成手段と、部分画面を第２設定画面に配置する位置を決定する配置位置決定手段と、部分画面が第２設定画面中で決定された位置に配置されるように部分定義データを変更する設定画面情報生成手段と、をさらに備える。
【００１１】
この局面に従えば、部分画面を第２設定画面に配置する位置が決定され、部分画面が第２設定画面中で決定された位置に配置されるように部分定義データが変更される。このため、第１のドライバープログラムで定められる部分画面を、第２のドライバープログラムで定められる第２設定画面中で任意の位置に配置することができる。
【００１２】
好ましくは、第１のドライバープログラムを実行する画像処理装置制御手段は、第１のドライバープログラムによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成する第１設定画面生成手段と、生成された第１設定画面に含まれる複数の部分画面それぞれに対して、当該部分画面を識別するため領域識別画像を、第１設定画面中で部分画面が配置される位置と同じ位置で第１の設定画面と合成した編集用画面を生成する編集用画面生成手段と、生成された編集用画面を表示する編集用画面表示制御手段と、表示された編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、１以上の部分画面のうち指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データを特定する部分定義データ特定手段と、を含み、選択手段は、部分定義データ特定手段により特定された部分定義データを選択する。
【００１３】
この局面に従えば、第１のドライバープログラムを実行する画像処理装置制御手段によって、複数の部分画面を配置した第１設定画面が生成され、第１設定画面に含まれる複数の部分画面それぞれに対して、領域識別画像が第１設定画面中で部分画面が配置される位置と同じ位置で第１の設定画面と合成した編集用画面が生成され、表示される。さらに、編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データが特定される。このため、第１のドライバープログラムによって定められた複数の部分定義データを、ユーザーは、第１の設定画面に含まれる複数の部分画面として認識することができる。その結果、部分定義データを選択する操作を容易にすることができる。
【００１４】
好ましくは、選択手段は、第１のドライバープログラムによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成する第１設定画面生成手段と、生成された第１設定画面に含まれる複数の部分画面それぞれに対して、当該部分画面を識別するため領域識別画像を、第１設定画面中で部分画面が配置される位置と同じ位置で第１設定画面と合成した編集用画面を生成する編集用画面生成手段と、生成された編集用画面を表示する編集用画面表示制御手段と、表示された編集用画面に含まれる複数の領域識別画像がユーザーにより指示されることに応じて、指示された領域識別画像に対応する部分定義データを特定する部分定義データ特定手段と、を含み、選択手段は、部分定義データ特定手段により特定された部分定義データを選択する。
【００１５】
この局面に従えば、複数の部分画面を配置した第１設定画面が生成され、第１設定画面に含まれる複数の部分画面それぞれに対して、領域識別画像が第１設定画面中で部分画面が配置される位置と同じ位置で第１の設定画面と合成した編集用画面が生成され、表示される。さらに、編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データが特定される。このため、第１のドライバープログラムによって定められた複数の部分定義データを、ユーザーは、第１の設定画面に含まれる複数の部分画面として認識することができる。その結果、部分定義データを選択する操作を容易にすることができる。
【００１６】
好ましくは、生成手段は、選択された１以上の部分定義データごとに、当該部分定義データに対応する部分画面を配置した第２設定画面を生成する第２設定画面生成手段と、生成された第２設定画面を表示する第２設定画面表示制御手段と、を含み、部分定義データ特定手段は、表示された編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、部分定義データとともに指示された領域識別画像を特定し、選択手段は、特定された領域識別画像を移動可能に表示する移動中表示手段と、移動可能に表示された領域識別画像が表示された第２設定画面において移動が終了する場合、領域識別画像の移動が終了した時点における第２設定画面中の位置を、領域識別画像に対応する部分画面を第２設定画面中で配置する配置位置に決定する配置位置決定手段と、を含み、生成手段は、さらに、部分画面が第２設定画面中で決定された位置に配置されるように部分定義データを変更する設定画面情報生成手段と、をさらに含む。
【００１７】
この局面に従えば、編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて領域識別画像が特定され、特定された領域識別画像が移動可能に表示される。そして、領域識別画像の移動が終了した時点における第２設定画面中の位置が領域識別画像に対応する部分画面を第２設定画面中で配置する配置位置に決定される。このため、第１のドライバープログラムにより定められる部分定義データを選択する操作を容易にするとともに、第２のドライバープログラムで定められる第２設定画面中で部分画面を配置する位置を決定する操作を容易にすることができる。
【００２０】
好ましくは、複数の部分定義データは、ユーザーが入力可能な複数の操作のいずれかに対応し、当該操作に対応する処理を定める処理実行コマンドと、部分画面として当該操作を受け付けるための指示別画面を表示するための表示コマンドとを関連付けた指示定義データを含む。
【００２１】
この局面に従えば、複数の部分定義データは、ユーザーが入力可能な複数の操作のいずれかに対応する指示定義データであって、操作に対応する処理を定める処理実行コマンドと、部分画面として当該操作を受け付けるための指示別画面を表示するための表示コマンドとを関連付けるので、ユーザーにより入力される操作と操作に対応する処理とを関連付ける必要がない。このため、ドライバープログラムの開発を容易にすることができる。
【００２２】
この発明の他の局面によれば、ドライバー生成方法は、第１の画像処理装置を制御するための第１のドライバープログラムによって定められ、所定の処理を定めた実行コマンドと所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データのうちから１以上を選択する選択ステップと、選択された１以上の部分定義データを含む第２のドライバープログラムを生成する生成ステップと、第２のドライバープログラムを実行する画像処理装置制御ステップと、をコンピューターに実行させ、複数の部分定義データは、第１の画像処理装置が有する複数の機能のいずれかに対応し、第１の画像処理装置を制御するための複数の制御コマンドのうち当該機能に対応する１以上の制御コマンドと、部分画面として当該機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含み、１以上の制御コマンドそれぞれは、第１の画像処理装置が有する複数の機能のいずれかに対応し、それが対応する機能に対して設定することが可能な１以上の設定値のいずれかに対応し、画像処理装置制御ステップは、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の表示コマンドを実行することによって、１以上の機能別画面を表示し、表示された設定画面に従ってユーザーにより入力される設定値を受け付ける設定値受付ステップと、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の制御コマンドのうちから設定値受付ステップにおいて受け付けられた設定値に対応する制御コマンドを第２の画像処理装置に出力するコマンド出力ステップと、を含む。
【００２３】
この局面に従えば、ドライバープログラムの開発効率を向上したドライバー生成方法を提供することができる。
【００２４】
この発明の他の局面によれば、ドライバー生成プログラムは、第１の画像処理装置を制御するための第１のドライバープログラムによって定められ、所定の処理を定めた実行コマンドと所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データのうちから１以上を選択する選択ステップと、選択された１以上の部分定義データを含む第２のドライバープログラムを生成する生成ステップと、第２のドライバープログラムを実行する画像処理装置制御ステップと、をコンピューターに実行させ、複数の部分定義データは、第１の画像処理装置が有する複数の機能のいずれかに対応し、第１の画像処理装置を制御するための複数の制御コマンドのうち当該機能に対応する１以上の制御コマンドと、部分画面として当該機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含み、１以上の制御コマンドそれぞれは、第１の画像処理装置が有する複数の機能のいずれかに対応し、それが対応する機能に対して設定することが可能な１以上の設定値のいずれかに対応し、画像処理装置制御ステップは、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の表示コマンドを実行することによって、１以上の機能別画面を表示し、表示された設定画面に従ってユーザーにより入力される設定値を受け付ける設定値受付ステップと、第２のドライバープログラムによって定められた１以上の部分定義データそれぞれに含まれる１以上の制御コマンドのうちから設定値受付ステップにおいて受け付けられた設定値に対応する制御コマンドを第２の画像処理装置に出力するコマンド出力ステップと、を含む。
【００２５】
この局面に従えば、ドライバープログラムの開発効率を向上したドライバー生成プログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態の１つにおけるプリントシステムの全体概要を示す図である。
【図２】ＭＦＰの外観を示す斜視図である。
【図３】ＭＦＰのハードウエア構成の一例を示すブロック図である。
【図４】ＰＣのハードウエア構成の一例を示すブロック図である。
【図５】ＰＣが備えるＣＰＵが第１のドライバープログラムを実行する場合の機能の一例をＨＤＤに記憶されるデータとともに示すブロック図である。
【図６】機能定義データの一例を示す第１の図である。
【図７】機能定義データの一例を示す第２の図である。
【図８】設定画面の一例を示す図である。
【図９】編集用画面の一例を示す図である。
【図１０】ＰＣが備えるＣＰＵがドライバー生成プログラムおよびドライバープログラムを実行する場合の機能の一例をＨＤＤに記憶されるデータとともに示すブロック図である。
【図１１】表示画面の一例を示す図である。
【図１２】設定処理の流れの一例を示す第１のフローチャートである。
【図１３】設定処理の流れの一例を示す第２のフローチャートである。
【図１４】編集用画面表示処理の流れの一例を示す図である。
【図１５】プリントジョブ生成処理の流れの一例を示すフローチャートである。
【図１６】ドライバー生成処理の流れの一例を示すフローチャートである。
【図１７】ＰＣが備えるＣＰＵが変形例におけるドライバー生成プログラムを実行する場合の機能の一例をＨＤＤに記憶されるデータとともに示すブロック図である。
【図１８】第１ドライバー画面表示部の詳細な機能の一例を示す図である。
【図１９】変形例におけるドライバー生成処理の流れの一例を示すフローチャートである。
【図２０】第１設定画面表示処理の流れの一例を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００２８】
図１は、本発明の実施の形態の１つにおけるプリントシステムの全体概要を示す図である。図１を参照して、プリントシステム１は、画像処理装置として機能する複合機（以下、「ＭＦＰ」という）１００，１００Ａと、パーソナルコンピューター（以下、「ＰＣ」という）２００と、を含む。
【００２９】
ネットワーク３は、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。また、ネットワーク３は、ＬＡＮに限らず、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）、インターネット等であってもよい。
【００３０】
ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００，１００ＡおよびＰＣ２００それぞれは、ネットワーク３に接続される。なお、図ではネットワーク３に２台のＭＦＰ１００，１００Ａが接続され、１台のＰＣ２００が接続される例を示しているが、ＭＦＰ１００，１００ＡおよびＰＣ２００の数はこれらに限定されるものではなく、それぞれ１台以上であればよい。また、ＭＦＰ１００，１００Ａに代えて、ＰＣ２００が制御可能な別の画像処理装置を用いることができる。ＰＣ２００が制御可能な画像処理装置の一例としては、スキャナ装置、ファクシミリ装置、プリンター等の画像形成装置、プロジェクションテレビ、投影装置等の表示装置、データを記憶する記憶装置がある。
【００３１】
ＭＦＰ１００，１００Ａそれぞれのハードウエア構成および機能は同じである。したがって、ここでは、ＭＦＰ１００，１００Ａのハードウエア構成および機能については、ＭＦＰ１００を例に説明する。なお、ＭＦＰ１００，１００Ａそれぞれのハードウエア構成および機能は異なってもよい。
【００３２】
本実施の形態におけるプリントシステム１において、ＰＣ２００は、ＭＦＰ１００，１００Ａをそれぞれ制御するためのドライバープログラムがインストールされている。ＭＦＰ１００を制御するためのドライバープログラムと、ＭＦＰ１００Ａを制御するためのドライバープログラムとは異なる。
【００３３】
ここで、新たな画像処理装置としてＭＦＰ１００Ｂを制御するためのドライバープログラムを、ＰＣ２００で生成する場合を例に説明する。以下、説明のためＭＦＰ１００を制御するためのプリンタードライバーを第１のプリンタードライバープログラムといい、ＭＦＰ１００Ａを制御するためのプリンタードライバープログラムを第３のプリンタードライバープログラムといい、ＭＦＰ１００Ａを制御するために新たに生成するプリンタードライバープログラムを第３のプリンタードライバープログラムという。
【００３４】
したがって、ＰＣ２００に、第１のドライバープログラムおよび第３のドライバープログラムがインストールされており、ＰＣ２００は、インストールされている第１のドライバープログラムおよび第３のドライバープログラムの少なくとも１つを用いて、第２のドライバープログラムを生成する。
【００３５】
図２は、ＭＦＰの外観を示す斜視図である。図３は、ＭＦＰのハードウエア構成の一例を示すブロック図である。図２および図３を参照して、ＭＦＰ１００は、自動原稿搬送装置１２１と、原稿読取部１２３と、原稿読取部１２３が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成する画像形成部１２５と、画像形成部１２５に用紙を供給する給紙部１２７と、画像が形成された用紙を処理する後処理部１２８と、ユーザーインターフェースとしての操作パネル１２９と、メイン回路１１０と、を含む。
【００３６】
ＡＤＦ１２１は、原稿給紙トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１２３のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１２３により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部１２３は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じて原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１２５に出力する。給紙部１２７は、給紙トレイに収納された用紙を画像形成部１２５に搬送する。
【００３７】
画像形成部１２５は、周知の電子写真方式により画像を形成するものであって、外部から受信された画像データ、または、原稿読取部１２３から入力される画像データにシェーディング補正などの各種のデータ処理を施し、データ処理後の画像データに基づいて、給紙部１２７により搬送される用紙に画像を形成する。
【００３８】
後処理部１２８は、画像が形成された用紙を排紙する。後処理部１２８は、複数の排紙トレイを有し、画像が形成された用紙をソートして排紙することが可能である。また、後処理部１２８は、パンチ穴加工部、ステープル加工部を備えており、排紙された用紙にパンチ穴加工、またはステープル加工することが可能である。また、ＭＦＰ１００は、その上面にユーザーとのユーザーインターフェースとしての操作パネル１２９を備えている。
【００３９】
メイン回路１１０は、ＣＰＵ１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１４と、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）１１５と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１６と、ファクシミリ部１１７と、ネットワークＩ／Ｆ１１８と、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ１１９Ａが装着される外部記憶装置１１９と、を含む。ＣＰＵ１１１は、自動原稿搬送装置１２１、原稿読取部１２３、画像形成部１２５、給紙部１２７、後処理部１２８および操作パネル１２９と接続され、ＭＦＰ１００の全体を制御する。
【００４０】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１２３から連続的に送られてくる読取データ（画像データ）を一時的に記憶する。
【００４１】
操作パネル１２９は、ＭＦＰ１００の上面に設けられる。操作パネル１２９は、表示部１３１と操作部１３３とを含む。表示部１３１は、ＬＣＤ、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等のディスプレイであり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１３３は、複数のキーを備え、キーに対応するユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部１３３は、表示部１３１の表示面の位置を検出するタッチパネル１３５をさらに含む。タッチパネル１３５は、表示部１３１の上面または下面に設けられ、ユーザーにより指示された位置の座標をＣＰＵ１１１に出力する。
【００４２】
通信Ｉ／Ｆ部１１２は、ＭＦＰ１００を外部の装置と接続するためのインターフェースである。ネットワークＩ／Ｆ１１８は、ＭＦＰ１００をネットワーク３に接続するためのインターフェースである。ＣＰＵ１１１は、ネットワークＩ／Ｆ１１８を介してネットワーク３に接続されたＰＣ２００との間で通信し、データを送受信する。また、ネットワークＩ／Ｆ１１８は、ネットワーク３を介してインターネットに接続されたコンピューターと通信が可能である。
【００４３】
ファクシミリ部１１７は、公衆交換電話網（ＰＳＴＮ）に接続され、ファクシミリデータを送受信する。ファクシミリ部１１７は、原稿読取部１２３により読み取られた画像データまたはＨＤＤ１１６に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。また、ファクシミリ部１１７は、受信されたファクシミリデータをＨＤＤ１１６に記憶するか、画像形成部１２５にファクシミリデータの画像を用紙に形成させる。
【００４４】
外部記憶装置１１９は、ＣＤ−ＲＯＭ１１９Ａが装着される。ＣＰＵ１１１は、外部記憶装置１１９を介してＣＤ−ＲＯＭ１１９Ａにアクセス可能である。ＣＰＵ１１１は、外部記憶装置１１９に装着されたＣＤ−ＲＯＭ１１９Ａに記録されたプログラムをＲＡＭ１１４にロードして実行する。
【００４５】
なお、ＣＰＵ１１１が実行するプログラムは、ＣＤ−ＲＯＭ１１９Ａに記録されたプログラムに限られず、ＨＤＤ１１６に記憶されたプログラムをＲＡＭ１１４にロードして実行するようにしてもよい。この場合、ネットワーク３に接続された他のコンピューターが、ＭＦＰ１００のＨＤＤ１１６に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ１１６に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００４６】
図４は、ＰＣのハードウエア構成の一例を示すブロック図である。図４を参照して、ＰＣ２００は、それぞれがバス２０８に接続されたＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ネットワークＩ／Ｆ２０４、ＨＤＤ２０５、表示部２０６、操作部２０７および外部記憶装置２０９を含む。
【００４７】
ＣＰＵ２０１は、ＰＣ２００の全体を制御する。ＲＯＭ２０２は、ＣＰＵ２０１が実行するプログラム等を記憶する。ＲＡＭ２０３は、ＣＰＵ２０１の作業領域として用いられる。ネットワークＩ／Ｆ２０４は、ＰＣ２００をネットワーク３に接続するためのインターフェースである。ＨＤＤ２０５は、大容量記憶装置であり、データを不揮発的に記憶する。表示部２０６は、液晶表示装置、陰極線管（ＣＲＴ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置である。操作部２０７は、キーボード、および、マウス、タッチパネルなどのポインティングデバイスであり、ユーザーの操作の入力を受け付ける。
【００４８】
外部記憶装置２０９は、ＣＤ−ＲＯＭ２０９Ａが装着される。ＣＰＵ２０１は、外部記憶装置２０９を介してＣＤ−ＲＯＭ２０９Ａに記憶されたプログラムをＲＡＭ２０３にロードし、実行する。なお、プログラムを記憶する記録媒体としては、ＣＤ−ＲＯＭ２０９Ａに限られず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ／ＭＤ／ＤＶＤ）、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ等でもよい。また、ＨＤＤ２０５に記憶されたプログラムをＲＡＭ２０３にロードして実行するようにしてもよい。この場合、ＰＣ２００が、ネットワーク３に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ２０５に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００４９】
次に、第１のドライバープログラムおよび第２のドライバープログラムについて説明する。第１のドライバープログラムおよび第２のドライバープログラムそれぞれは、共通定義データおよび設定画面情報を含む。第１のドライバープログラムおよび第２のドライバープログラムそれぞれは、設定画面情報が異なるのみで、共通定義データおよび設定画面情報、それらを用いてＰＣ２００に実行させる処理の定義は同じである。したがって、ここでは、ＰＣ２００が備えるＣＰＵ２０１が第１のドライバープログラムを実行する場合を例に説明する。
【００５０】
図５は、ＰＣが備えるＣＰＵが第１のドライバープログラムを実行する場合の機能の一例をＨＤＤに記憶されるデータとともに示すブロック図である。図５に示す機能は、ＰＣ２００が備えるＣＰＵ２０１が、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９Ａに記憶された第１のドライバープログラムを実行することにより、ＣＰＵ２０１に形成される機能である。
【００５１】
図５を参照して、ＰＣ２００が備えるＣＰＵ２０１は、ＣＰＵ２０１が第１のドライバープログラムを実行するタスクとして第１画像処理装置制御部１１を含む。第１画像処理装置制御部１１は、ＭＦＰ１００を制御するために、ＭＦＰ１００が有する複数の機能をＭＦＰ１００に実行させるためのコマンドを生成し、ＭＦＰ１００にコマンドを出力する。コマンドは、機能ごとに設定値を定める。例えば、ＭＦＰ１００にプリントデータの画像を形成させる場合、画像を形成する機能を実行させるための設定値を定めたコマンドを生成し、ＭＦＰ１００にコマンドを出力する。例えば、ＭＦＰ１００がデータの画像を形成するプリント処理を実行する場合におけるＭＦＰ１００の機能の一例としては、画像を形成する用紙のサイズを定める機能、用紙に画像を形成する方向を定める機能、画像を拡大する機能、用紙が収納されている給紙トレイを定める機能を含む。
【００５２】
第１画像処理装置制御部１１は、１以上の機能ごとに設定値をユーザーが設定するために、ユーザーインターフェースとして設定画面を表示部２０６に表示する。設定画面は、共通画面と、タブ選択画面と、タブ画面と、を含む。タブ画面は、ＭＦＰ１００が有する複数の機能を、グループ化し、複数のグループごとに１以上の機能ごとに設定値を設定するための画面である。タブ選択画面は、タブ画面を選択するための画面である。タブ画面は、１以上の部分画面を含む。部分画面は、ＭＦＰ１００が有する複数の機能ごとに、当該機能に対応する設定値を設定するための機能別画面と、ユーザーの指示を受け付ける指示別画面を含む。共通画面は、ＭＦＰ１００の機能に関係なく、ユーザーに情報を提供したり、ユーザーによる指示を受け付けたりするための画面である。
【００５３】
第１画像処理装置制御部１１は、共通コマンド取得部１３と、表示コマンド取得部１５と、プリントコマンド取得部１７と、第１設定画面生成部１９と、設定値受付部２１と、コマンド出力部２３と、編集用画面生成部３１と、編集用画面表示制御部３３と、部分定義情報出力部３５と、を含む。
【００５４】
ＨＤＤ２０５には、第１のドライバープログラム９１が記憶されている。第１のドライバープログラム９１は、共通定義データ９３と、設定画面情報９５と、を含む。共通定義データ９３は、設定画面のレイアウトを定めるとともに、共通画面を生成するための共通コマンドとを含む。共通コマンドは、ＭＦＰ１００が有する複数の機能に依存しない共通画面を表示するためのコマンドである。共通定義データ９３は、設定画面中で、後述するタブ選択画面とタブ画面とをそれぞれ配置する領域を定めるレイアウト情報を含む。
【００５５】
設定画面情報９５は、１以上のタブ画面ごとに１以上の部分定義データ９７を含む。タブ画面は、１以上の部分画面を含む。設定画面情報９５は、タブ画面ごとに、そのタブ画面に含まれる１以上の部分画面にそれぞれ対応する１以上の部分定義データ９７を含む。
【００５６】
部分定義データ９７は、機能定義データと指示定義データとを含む。部分定義データ９７のうち機能定義データは、ＭＦＰ１００が有する複数の機能ごとに、その機能をＭＦＰ１００に実行させるための１以上のプリントコマンドと、その機能に対応する表示コマンドと、を定める。プリントコマンドは、ＭＦＰ１００が有する複数の機能ごとに１以上あり、ある機能に対して設定することが可能な１以上の設定値のいずれかに対応する。機能定義データは、ＭＦＰ１００が有する複数の機能ごとに定める１以上のプリントコマンドそれぞれを、設定値と対応付ける。
【００５７】
プリントコマンドは、ＭＦＰ１００に、そのプリントコマンドが対応する機能を、そのプリントコマンドに対応する設定値に従って実行させるコマンドである。プリントコマンドは、ＭＦＰ１００が解釈可能なコマンドであり、ＭＦＰ１００との間で予め定められたコマンドである。プリントコマンドは、好ましくは、ＰＪＬ（Ｐｒｉｎｔ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）、ＰｒｉｎｔＴｉｃｋｅｔ、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ）で記述される。
【００５８】
表示コマンドは、ＣＰＵ２０１に部分画面を生成させるためのコマンドである。部分画面をタブ画面中に配置する位置を示す位置情報と、表示する部品を特定する部品特定情報とを含む。ＣＰＵ２０１が表示部２０６に表示する部品は、予め準備された画像であり、例えば、ポップアップウィンドウ、コンボボックス、リストボックス、ラジオボタン等である。
【００５９】
機能定義データに含まれる表示コマンドは、ＭＦＰ１００が有する複数の機能それぞれに対応し、部分画面としてその機能に対する設定値を設定するための機能別画面を表示するコマンドである。以下、機能定義データに含まれる表示コマンドによって表示される部分画面を機能別画面という場合がある。
【００６０】
部分定義データ９７のうち指示定義データは、ユーザーが入力可能な複数の操作ごとに、その操作に対応する処理を定める処理実行コマンドと、その操作に対応する表示コマンドと、を定める。処理実行コマンドは、ユーザーにより入力される操作に対応する処理をＣＰＵ２０１に実行させるためのコマンドである。処理実行コマンドは、例えば、設定値を確定する処理、ポップアップ画面を表示する処理、プリントジョブを生成する処理、を含む。
【００６１】
指示定義データに含まれる表示コマンドは、部分画面として操作を受け付けるための指示別画面を表示するコマンドである。指示定義データに含まれる表示コマンドは、ユーザーが入力可能な複数の操作それぞれに対応する。以下、指示定義データに含まれる表示コマンドによって表示される部分画面を指示別画面という場合がある。
【００６２】
タブ画面は、部分定義データ９７に含まれる表示コマンドによってそれに含まれる内容が定まる。タブ画面は、１つの表示コマンドによって生成される１つの部分画面を含む場合と、複数の表示コマンドによってそれぞれ生成される複数の部分画面を含む場合とがある。タブ画面が複数の部分画面を含む場合は、複数の表示コマンドが同一のタブ画面に割り当てられている場合である。換言すれば、タブ画面が複数の部分画面を含む場合は、設定画面情報９５は、そのタブ画面に対応して複数の部分定義データ９７を関連付ける。
【００６３】
共通定義データ９３と部分定義データ９７とは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等のマックアップ言語、Ｃ言語などのプログラム言語で記載される。このため、共通定義データ９３と部分定義データ９７とを、編集プログラム等を用いて容易に変更することができる。なお、共通定義データ９３と部分定義データ９７は、スクリプト言語をバイナリ化したデータ、または、プログラム言語をコンパイルし、バイナリ化したデータであってもよい。
【００６４】
なお、ここでは、共通定義データ９３と設定画面情報９５とを、第１のドライバープログラムの一部としたが、第１のドライバープログラムとは別のデータであって第１のドライバープログラムと関連付けられたデータとしてもよい。
【００６５】
図６は、機能定義データの一例を示す第１の図である。図６に示す機能定義データ９７Ａは、パンチ加工処理の機能に対応する。図６を参照して、１行目の”ＦｕｎｋＰｕｎｃｈ”の記述は、パンチ加工処理の機能に対応することを示す。パンチ加工処理の機能に対して設定可能な設定値は、パンチ加工する用紙の位置を特定する値であり、ここでは、用紙の左側と上側の２つとしている。２つの位置それぞれに対応するプリントコマンドに関する記述が、３行目および４行目に示される。
【００６６】
２行目は、部品定義データを識別するための部品定義データ識別情報「ＩＤ＝０２１」と、タブ画面識別情報「Ｆｉｎｉｓｈ」と、表示コマンドの記述を示す。表示コマンドは、部品特定情報として”ＣｏｍｂｏＢｏｘ”の記述と、部品をタブ画面中に配置する位置情報として”Ｐｏｓ＝１０，６０，１００，２０”の記述と、を含む。部品特定情報”ＣｏｍｂｏＢｏｘ”は、表示のために使用する部品としてコンボボックスを特定する。位置情報は、最初の２つの数字は、タブ画面中の位置を座標を示し、３番目の数字は機能別画面の横方向の長さ、４番目の数字は機能別画面の縦方向の長さを示し、矩形の機能別画面のサイズと機能別画面のタブ画面中における位置を定める。
【００６７】
２行目のＤｉａｌｏｇ＝’Ｆｉｎｉｓｈ’の記述は、タブ画面識別情報「Ｆｉｎｉｓｈ」を示す。換言すれば、機能定義データ９１Ａは、タブ識別情報「Ｆｉｎｉｓｈ」のタブ画面に関連付けられていることを示す。
【００６８】
図７は、機能定義データの一例を示す第２の図である。図７に示す機能定義データ９７Ｂは、ステープル加工処理の機能に対応する。図７を参照して、１行目の”ＦｕｎｋＳｔａｐｌｅ”の記述は、ステープル加工処理の機能に対応することを示す。ステープル加工処理の機能に対して設定可能な設定値は、ステープル加工する針の数と用紙の位置を特定する値であり、ここでは、１つの針で用紙の左側を特定する設定値と、２つの針で用紙の左側を特定する設定値と、２つの針で用紙の上側を特定する設定値との３つとしている。３つの設定値それぞれに対応するプリントコマンドに関する記述が、３行目〜５行目に示される。
【００６９】
２行目は、部品定義データを識別するための部品定義データ識別情報「ＩＤ＝０２２」と、タブ画面識別情報「Ｆｉｎｉｓｈ」と、表示コマンドの記述を示す。表示コマンドは、部品特定情報として”ＣｏｍｂｏＢｏｘ”の記述と、部品をタブ画面中に配置する位置情報として”Ｐｏｓ＝１０，２０，１００，４０”の記述と、を含む。部品特定情報”ＣｏｍｂｏＢｏｘ”は、表示のために使用する部品としてコンボボックスを特定する。位置情報は、最初の２つの数字は、タブ画面中の位置を座標を示し、３番目の数字は機能別画面の横方向の長さ、４番目の数字は機能別画面の縦方向の長さを示し、矩形の機能別画面のサイズと機能別画面のタブ画面中における位置を定める。
【００７０】
２行目のＤｉａｌｏｇ＝’Ｆｉｎｉｓｈ’の記述は、タブ画面識別情報「Ｆｉｎｉｓｈ」を示す。換言すれば、機能定義データ９１Ｂは、タブ識別情報「Ｆｉｎｉｓｈ」のタブ画面に関連付けられていることを示す。
【００７１】
１つのタブ画面に、設定画面情報９５に含まれる複数の部分定義データ９７のうち１以上の部分定義データ９７が関連付けられる。このため、１つのタブ画面に複数の表示コマンドが関連付けられる場合がある。たとえば、図６に示したパンチ穴加工処理の機能に対応する機能定義データ９７Ａと、図７に示したステープル加工処理の機能に対応する機能定義データ９７Ｂとが、同じタブ画面に関連付けられる場合、パンチ穴加工処理の機能に対応するコンボボックスを含む機能別画面と、ステープル加工処理の機能に対応するコンボボックスを含む機能別画面とが同一のタブ画面に同時に表示される。換言すれば、１つのタブ画面は、設定画面情報９５に含まれる複数の部分定義データ９７のうちタブ画面に関連付けられた１以上の部分定義データ９７によって定まる１以上の部分画面を含む。
【００７２】
図５に戻って、共通コマンド取得部１３は、ＨＤＤ２０５に記憶された共通定義データ９３を読出し、共通定義データ９３を、第１設定画面生成部１９に出力する。
【００７３】
第１設定画面生成部１９は、共通画面生成部２５と、部分画面生成部２７と、を含む。共通画面生成部２５は、共通コマンド取得部１３から共通定義データ９３が入力され、共通定義データ９３に従って設定画面のレイアウトを決定する。具体的には、共通画面生成部２５は、共通定義データ９３により定められるタブ画面を配置する領域およびタブ選択画面を配置する領域に基づいて、レイアウト情報を生成する。レイアウト情報は、設定画面に含まれる共通画面、タブ選択画面およびタブ画面の位置を定める。共通画面生成部２５は、レイアウト情報を部分画面生成部２７に出力する。このため、共通定義データ９３によってレイアウト情報が定められるので、表示部２０６に表示される設定画面のデザインを統一することができる。また、共通画面生成部２５は、共通コマンド取得部１３から入力される共通定義データ９３に含まれる共通コマンドに従って共通画面を生成し、生成された共通画面を表示部２０６に表示する。この際、共通画面生成部２５は、共通画面を設定画面中でレイアウト情報によって定められる位置に配置する。
【００７４】
部分画面生成部２７は、１以上のタブ画面のうちから１つを選択し、タブ画面を生成する。部分画面生成部２７は、１以上のタブ画面のうちから１つを選択するためのタブ選択画面を表示し、ユーザーにより選択されたタブ画面を選択する。また、ユーザーによる選択する操作が入力される前の段階では、任意のタブ画面、例えば、デフォルトで定められたタブ画面を選択するようにすればよい。
【００７５】
具体的には、部分画面生成部２７は、ＨＤＤ２０５に記憶されている設定画面情報９５によって１以上のタブ画面が定められているので、１以上のタブ画面のうちから１つを選択するためのタブ選択画面を生成する。タブ選択画面は、１以上のタブ画面それぞれの名称を含み、１以上のタブ画面それぞれの名称を選択可能に配列した画面である。部分画面生成部２７は、生成されたタブ選択画面を表示部２０６に表示する。この際、部分画面生成部２７は、タブ選択画面を設定画面中でレイアウト情報によって定められる位置に配置する。
【００７６】
部分画面生成部２７は、表示コマンド取得部１５に取得指示を出力し、表示コマンド取得部１５によって取得された表示コマンドを受け付ける。取得指示は、選択されたタブ画面を識別するためのタブ識別情報を含む。
【００７７】
表示コマンド取得部１５は、部分画面生成部２７から取得指示が入力されることに応じて、ＨＤＤ２０５に記憶された設定画面情報９５に含まれる複数の部分定義データ９７のうちから取得指示に含まれるタブ識別情報で特定されるタブ画面に関連付けられた部分定義データ９７を読出す。そして、表示コマンド取得部１５は、部分定義データ９７に含まれる表示コマンドを、第１設定画面生成部１９に出力する。表示コマンド取得部１５は、取得指示に含まれるタブ識別情報で特定されるタブ画面に関連付けられた部分定義データ９７が複数の場合、複数の部分定義データ９７にそれぞれ含まれる複数の表示コマンドを出力する。
【００７８】
部分画面生成部２７は、表示コマンド取得部１５から１以上の表示コマンドが入力されると、１以上の表示コマンドに従って１以上の部分画面を生成する。部分画面生成部２７は、タブ画面中で表示コマンドに含まれる位置情報で特定される位置に、表示コマンドに含まれる部品特定情報で特定される部品を配置することによって部分画面を表示する。タブ画面の設定画面中の位置は、共通画面生成部２５から入力されるレイアウト情報によって定まる。
【００７９】
タブ画面は、タブ画面に対応する表示コマンドが単数の場合、部分画面生成部２７によって生成される１つの部分画面を含む。また、タブ画面は、タブ画面に対応する表示コマンドが複数の場合、部分画面生成部２７によって生成される複数の部分画面を含む。部分画面生成部２７は、表示部２０６に表示した１以上の部分画面を設定値受付部２１および編集用画面生成部３１に出力する。
【００８０】
部分画面生成部２７は、部分定義データ９７が機能定義データの場合、表示部２０６に機能別画面を部分画面として表示し、部分定義データ９７が指示定義データの場合、表示部２０６に指示別画面を部分画面として表示する。部分画面生成部２７は、指示別画面を表示する場合、ＰＣ２００を操作するユーザーが指示別画面内を指示する操作を入力すると、当該指示別画面に対応する指示定義データに含まれる処理実行コマンドを実行する。処理実行コマンドは、例えば、設定値を確定する処理、ポップアップ画面を表示する処理、プリントジョブを生成する処理、を含む。
【００８１】
設定値受付部２１は、部分画面生成部２７によって機能別画面が表示される場合、ＰＣ２００を操作するユーザーが、機能別画面に従って操作部２０７に入力する設定値を、機能別画面に対応する機能に対して設定された設定値として受け付ける。設定値受付部２１は、機能別画面に対応する機能を識別するための機能識別情報と、受け付けられた設定値との組をコマンド出力部２３に出力する。設定値受付部２１は、部分画面生成部２７によって複数の機能別画面が表示される場合、複数の機能別画面のいずれか１つを、ユーザーが操作部２０７から機能別画面に設定値を入力可能なカレント状態に設定し、ユーザーが入力する設定値を、カレント状態に設定された機能別画面に対応する機能に対して設定された設定値として受け付ける。
【００８２】
プリントコマンド取得部１７は、ＨＤＤ２０５に記憶された設定画面情報９５に含まれる複数の部分定義データ９７のうち機能定義データを読出し、機能定義データに含まれる複数の機能ごとの１以上のプリントコマンドを、コマンド出力部２３に出力する。
【００８３】
コマンド出力部２３は、選択部２９を含む。選択部２９は、設定値受付部２１から入力される機能識別情報と設定値との組に基づいて、プリントコマンド取得部１７から入力される複数の機能ごとの１以上のプリントコマンドのうちから１つのプリントコマンドを選択する。具体的には、選択部２９は、プリントコマンド取得部１７から入力される、複数の機能ごとの１以上のプリントコマンドのうちから、設定値受付部２１から入力される機能識別情報と設定値との組の機能識別情報で特定される機能に対応する１以上のプリントコマンドを抽出する。そして、選択部２９は、抽出された１以上のプリントコマンドのうちから、設定値受付部２１から入力される機能識別情報と設定値との組の設定値に対応する１つのプリントコマンドを選択する。
【００８４】
ＭＦＰ１００に新たな機能が追加されて、新たなプリントコマンドが追加される場合であっても、新たなプリントコマンドと表示コマンドとを含む新たな部品定義データを、ＨＤＤ２０５に記憶された設定画面情報９５に追加すればよい。このため、プリンタードライバープログラム自体を変更する必要がない。また、部品定義データ９７は、ＸＭＬ等のマックアップ言語、Ｃ言語などのプログラム言語で記載されるので、変更が容易である。
【００８５】
コマンド出力部２３は、選択部５１により選択されたプリントコマンドをプリントデータとともにネットワークＩ／Ｆ２０４を介してＭＦＰ１００に送信する。
【００８６】
編集用画面生成部３１は、第１画像処理装置制御部１１が、編集モードで起動される場合、編集用画面を生成する。編集用画面生成部３１は、第１画像処理装置制御部１１が、編集モードで起動されない場合、編集用画面を生成しない。例えば、後述するドライバー生成プログラムを実行するタスクが、第１画像処理装置制御部１１を編集モードで起動する場合、ドライバー生成プログラムを実行するタスクが、ＣＰＵ２０１に第１のドライバープログラムを実行させるコマンドを出力する。この際に、ドライバー生成プログラムを実行するタスクは、第１のドライバープログラムを実行するタスクに、編集モードで起動することを示す信号を入力すれば、第１のドライバープログラムを実行するタスクである第１画像処理装置制御部１１は、編集モードで起動する。例えば、ドライバー生成プログラムを実行するタスクが、ＣＰＵ２０１に第１のドライバープログラムを実行させるコマンドを入力する際に、そのコマンドの引数として編集モードで起動することを示す信号をＣＰＵ２０１に入力する。
【００８７】
編集用画面生成部３１は、第１設定画面生成部１９から１以上の部分画面が入力される。編集用画面生成部３１は、１以上の部分画面それぞれに対して、当該部分画面を識別するための領域識別画像を、表示部２０６に表示された部分画面が配置される位置と同じ位置で設定画面と合成することによって編集用画面を生成する。領域識別画像は、例えば、部分画面を囲む輪郭と同じ形状の輪郭画像を含む。また、領域識別情報は、部分画面に対応する機能定義データを識別するための部分定義データ識別情報の画像を含む。  編集用画面表示制御部３３は、表示部２０６に表示された設定画面中のタブ画面に代えて、編集用画面を表示部２０６に表示する。編集用画面表示制御部３３は、編集用画面を表示する際に、編集用画面に含まれる１以上の領域識別画像を選択可能に表示する。編集用画面表示制御部３３は、編集用画面を部分定義情報出力部３５に出力する。
【００８８】
部分定義情報出力部３５は、編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されると、部分定義情報を、ドライバー生成プログラムを実行するタスクに出力する。部分定義情報出力部３５は、ユーザーが、操作部２０７に、編集用画面に含まれる１以上の領域識別画像のいずれかの内部の位置を指示する操作を入力すれば、当該指示された領域識別情報に対応する部分定義情報をドライバー生成プログラムを実行するタスクに出力する。部分定義情報は、領域識別画像と、領域識別画像が表示部２０６中で表示されている位置を示す位置情報と、領域識別画像に対応する部分定義データと、を含む。
【００８９】
図８は、設定画面の一例を示す図である。なお、図中の点線は説明のために付したもので、実際には存在しない。図８を参照して、設定画面３００は、共通画面の領域３０１と、タブ選択画面の領域３０３と、タブ画面の領域３０５と、を含む。領域３０１に表示される共通画面は、印刷対象のデータの画像をプレビュー表示する領域３１１と、本体ビューの文字が表されたボタン３１３とを含む。
【００９０】
領域３０３に表示されるタブ選択画面は、対応するタブ画面の名称を含み、選択可能な５つの名称が配列される。ここでは、名称「仕上げ」のタブ画面が選択されている場合を例に示している。領域３０５に表示されるタブ画面は、名称「仕上げ」のタブ画面に関連付けられた部分定義データ９７に基づいて生成される部分画面を含む。
【００９１】
領域３０５に表示されるタブ画面は、ＨＤＤ２０５に記憶された部分定義データ９７のうち、名称「仕上げ」のタブ画面に関連付けた部分定義データとして、図６に示したパンチ穴加工処理の機能に対応する機能定義データ９７Ａと、図７に示したステープル加工処理の機能に対応する機能定義データ９７Ｂとが含まれる場合を例に示している。より具体的には、領域３０５に表示されるタブ画面は、パンチ穴加工処理の機能に対応するコンボボックスを含む機能別画面３２１と、ステープル加工処理の機能に対応するコンボボックスを含む機能別画面３２３と、を含む。機能別画面３２１は、コンボボックスと「パンチ」の文字列の組を含み、機能別画面３２３は、コンボボックスと「ステープル」の文字列との組を含む。
【００９２】
さらに、領域３０５に表示されるタブ画面は、適用の文字が表されたボタンを含む指示別画面３２５を含む。指示別画面３２５は、領域３０５に表示されるタブ画面に関連付けられた部分定義データ９７のうち指示定義データのボタン生成コマンドに基づいて表示される。
【００９３】
領域３０５に表示される設定画面がカレント状態の場合、機能別画面３２１のコンボボックスと、機能別画面３２３のコンボボックスと、を指示可能であり、指示別画面３２５のボタンを指示可能である。
【００９４】
図９は、編集用画面の一例を示す図である。ここでは、図８に示した設定画面３００に対応する編集用画面３００Ａを示す。図９を参照して、編集用画面３００Ａは、図８に示した設定画面３００に領域識別画像を合成した画面である。従って、図８に示した設定画面３００に含まれる画面と同じ画面には同じ符号を付している。
【００９５】
図９を参照して、編集用画面３００Ａは、タブ画面の領域３０５に含まれる部分画面３２１、３２３、３２５それぞれに対応して、領域識別画像を含む。具体的には、編集用画面３００Ａは、機能別画面３２１を囲む輪郭画像３２１Ａと、機能別画面３２１に対応する機能定義データを識別するための部分定義データ識別情報「ＩＤ：０２１」の画像３２１Ｂと、を含む。画像３２１Ｂは、輪郭画像３２１Ａの内部に配置される。このため、ユーザーは、機能別画面３２１に対応する機能定義データ（部分定義データ）を、画像３２１Ｂから特定することができる。
【００９６】
また、編集用画面３００Ａは、機能別画面３２３を囲む輪郭画像３２３Ａと、機能別画面３２３に対応する機能定義データを識別するための部分定義データ識別情報「ＩＤ：０２２」の画像３２３Ｂと、を含む。画像３２３Ｂは、輪郭画像３２３Ａの内部に配置される。このため、ユーザーは、機能別画面３２３に対応する機能定義データ（部分定義データ）を、画像３２３Ｂから特定することができる。
【００９７】
また、編集用画面３００Ａは、指示別画面３２５を囲む輪郭画像３２５Ａと、指示別画面３２５に対応する指示定義データを識別するための部分定義データ識別情報「ＩＤ：０２３」の画像３２５Ｂと、を含む。画像３２５Ｂは、輪郭画像３２５Ａの内部に配置される。このため、ユーザーは、指示別画面３２５に対応する指示定義データ（部分定義データ）を、画像３２５Ｂから特定することができる。
【００９８】
また、編集用画面３００Ａは、共通画面の領域３０１に含まれる印刷対象のデータの画像をプレビュー表示する領域３１１と、適用の文字が表されたボタン３１３と、にそれぞれ対応して領域識別画像を含む。具体的には、編集用画面３００Ａは、プレビュー表示する領域３１１を囲む輪郭画像３１１Ａと、プレビュー表示する領域３１１に対応するコマンドを識別するためのコマンド識別情報「ＩＤ：０１０」の画像３１１Ｂと、を含む。画像３１１Ｂは、輪郭画像３１１Ａの内部に配置される。このため、ユーザーは、共通画面の領域３０１に対応するコマンドを、画像３１１Ｂから特定することができる。また、編集用画面３００Ａは、ボタン３１３を囲む輪郭画像３１３Ａと、ボタン３１３に対応するコマンドを識別するためのコマンド識別情報「ＩＤ：０１１」の画像３１３Ｂと、を含む。画像３１３Ｂは、輪郭画像３１３Ａの内部に配置される。このため、ユーザーは、共通画面の領域３０１に対応する指示定義データ（部分定義データ）を、画像３１１Ｂから特定することができる。
【００９９】
＜ドライバー生成プログラム＞
図１０は、ＰＣが備えるＣＰＵがドライバー生成プログラムおよびドライバープログラムを実行する場合の機能の一例をＨＤＤに記憶されるデータとともに示すブロック図である。図１０に示す機能は、ＰＣ２００が備えるＣＰＵ２０１が、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９Ａに記憶されたドライバー生成プログラム、第１のドライバープログラムおよび第３のドライバープログラムを実行することにより、ＣＰＵ２０１に形成される機能である。図１０では、ＣＰＵ２０１がドライバー生成プログラムを実行するタスクをドライバー生成部５０として示し、ＣＰＵ２０１が第１のドライバープログラムを実行するタスクを第１画像処理装置制御部１１Ａとして示し、ＣＰＵ２０１が第３のドライバープログラムを実行するタスクを第２画像処理装置制御部１１Ｂとして示している。
【０１００】
図１０を参照して、ＣＰＵ２０１は、ドライバー生成プログラムを実行するタスクとしてのドライバー生成部５０と、第１のドライバープログラム９１Ａを実行するタスクとしての第１画像処理装置制御部１１Ａと、第３のドライバープログラム９１Ｂを実行するタスクとしての第２画像処理装置制御部１１Ｂと、を含む。
【０１０１】
ドライバー生成部５０は、ユーザーによる操作に基づいて、第１のドライバープログラム９１Ａと第３のドライバープログラム９１Ｂそれぞれの少なくとも一部を利用して第２のドライバープログラム８１を生成する。
【０１０２】
ドライバー生成部５０は、選択部５１と、生成部６０と、を含む。選択部５１は、ドライバー起動部５３と、部分定義情報受付部５５と、移動中表示部５７と、配置位置決定部５９と、を含む。ドライバー起動部５３は、ＣＰＵ２０１にドライバープログラムを実行させる。ドライバー起動部５３は、ＰＣ２００を操作するユーザーが、操作部２０７を用いて指定するドライバープログラムを、ＣＰＵ２０１に実行させる。
【０１０３】
ここでは、ＰＣ２００を操作するユーザーが、第１のドライバープログラムと、第３のドライバープログラムとを指定した場合を例に説明する。ドライバー起動部５３は、ＰＣ２００を操作するユーザーによって第１のドライバープログラムが指定される場合、ＣＰＵ２０１に第１のドライバープログラムを編集モードで実行させる。例えば、第１のドライバープログラムを実行するコマンドを、ＣＰＵ２０１に実行させる。この際に、編集モードでの起動を指示するための引数をコマンドに付加する。ＣＰＵ２０１は、第１のドライバープログラムを実行するコマンドが入力されると、第１のドライバープログラムを編集モードで実行する。これにより、ＣＰＵ２０１に第１画像処理装置制御部１１Ａが形成される。同様に、ドライバー起動部５３は、ＰＣ２００を操作するユーザーによって第３のドライバープログラムが指定される場合、ＣＰＵ２０１に第３のドライバープログラムを編集モードで実行させる。例えば、第３のドライバープログラムを実行するコマンドを、ＣＰＵ２０１に実行させる。この際に、編集モードでの起動を指示するための引数をコマンドに付加する。ＣＰＵ２０１は、第３のドライバープログラムを実行するコマンドが入力されると、第３のドライバープログラムを編集モードで実行する。これにより、ＣＰＵ２０１に第２画像処理装置制御部１１Ｂが形成される。
【０１０４】
第１画像処理装置制御部１１Ａおよび第２画像処理装置制御部１１Ｂそれぞれは、編集モードで起動する場合、編集用画面を表示する。編集用画面は、部分画面を識別するための領域識別画像を選択可能に表示する画面である。また、第１画像処理装置制御部１１Ａおよび第２画像処理装置制御部１１Ｂそれぞれは、領域識別画像がユーザーにより選択される場合、選択された領域識別画像に対応する部分定義情報を、ドライバー生成部５０に出力する。部分定義情報は、領域識別画像情報と、領域識別画像に対応する部分定義データと、を含む、領域識別画像情報は、領域識別画像と、領域識別画像が表示部２０６中で表示されている位置を示す位置情報とを含む。
【０１０５】
部分定義情報受付部５５は、第１画像処理装置制御部１１Ａおよび第２画像処理装置制御１１Ｂのいずれかが出力する部分定義情報を受け付ける。部分定義情報受付部５５は、受け付けられた部分定義情報を、移動中表示部５７に出力する。
【０１０６】
移動中表示部５７は、部分定義情報が入力されることに応じて、部分定義情報に含まれる領域識別画像を表示部２０６に移動可能に表示する。移動中表示部５７は、部分定義情報が部分定義情報受付部５５によって受け付けられた段階では、部分定義情報に含まれる領域識別画像を、表示部２０６の表示面中で部分定義情報に含まれる位置情報で特定される位置に表示する。そして、移動中表示部５７は、ユーザーが操作部２０７に入力する移動を指示する操作に従って、領域識別画像を移動させる。移動中表示部５７は、領域識別画像の移動中は、領域識別画像の表示部２０６の表示面中の位置と、部分定義情報に含まれる部分定義データとの組を配置位置決定部５９に出力する。
【０１０７】
配置位置決定部５９は、移動中表示部５７から領域識別画像の位置と部分定義データとの組が入力される。配置位置決定部５９は、ユーザーが操作部２０７に入力する移動を終了する操作を検出すると、領域識別画像の移動後の位置を決定する。配置位置決定部５９は、領域識別画像の移動後の位置を決定する場合、領域識別画像の移動後の位置と、部分定義データとの組を、生成部６０に出力する。
【０１０８】
生成部６０は、第２のドライバープログラムを生成する。ここでは、生成部６０は、生成した第２のドライバープログラムをＨＤＤ２０５に記憶する場合を例に説明する。第２のドライバープログラム８１は、共通定義データ８３と、設定画面情報８５とを含む。設定画面情報８５は、部分定義データ８７を含む。
【０１０９】
生成部６０は、第２設定画面を生成して表示部２０６に表示するとともに、第２のドライバープログラムを生成してＨＤＤ２０５に記憶する。生成部６０は、第２設定画面生成部６１と、設定画面情報生成部６３と、を含む。第２設定画面生成部６１は、共通画面生成部６５と、部分画面生成部６７と、を含む。共通画面生成部６５は、ＨＤＤ２０５に、第２のドライバープログラム８１の共通定義データを記憶する。共通定義データは、ドライバー生成プログラムによって予め定められている。また、第１のドライバープログラムおよび第２のドライバープログラムのいずれかから共通定義データを取得するようにしてもよい。共通画面生成部６５は、さらに、共通定義データに含まれる共通コマンドに従って共通画面を含む第２設定画面を生成し、生成された第２設定画面を、表示部２０６に表示する。この段階における第２設定画面は、共通画面を含み、タブ選択画面およびタブ画面は領域が確保されるのみで、無地の領域として含まれる。共通画面生成部６５は、共通定義データに含まれるタブ選択画面およびタブ画面をそれぞれ配置する領域を示す領域情報を設定画面情報生成部６３に出力する。
【０１１０】
設定画面情報生成部６３は、配置位置決定部５９から領域識別画像の移動後の位置と、部分定義データとの組が入力され、共通画面生成部６５からタブ選択画面およびタブ画面をそれぞれ配置する領域を示す領域情報が入力される。設定画面情報生成部６３は、領域識別画像の移動後の位置が第２設定画面のタブ画面を配置する領域内か否かを判断する。設定画面情報生成部６５は、領域識別画像の移動後の位置がタブ画面を配置する領域内と判断する場合、配置位置決定部５９から入力される部分定義データを更新し、更新後の部分定義データを、ＨＤＤ２０５に記憶されている第２ドライバープログラム８１の設定画面情報８５に追加して記憶する。これにより、ＨＤＤ８１の設定画面情報８５に、部分定義データ８７が追加される。設定画面情報生成部６５は、配置位置決定部５９から入力される部分定義データに含まれる表示コマンドの位置情報を、領域識別画像の移動後の位置で更新する。設定画面情報生成部６３は、さらに、位置情報を更新した後の部分定義データを、部分画面生成部６７に出力する。
【０１１１】
部分画面生成部６７は、設定画面情報生成部６３から入力される部分定義データに基づいて、タブ画面を生成する。部分画面生成部６７は、設定画面情報生成部６３から部分定義データが入力されると、それに含まれる表示コマンドに従って部分画面を生成する。部分画面生成部６７は、表示部２０６に表示する画面中で部分定義データに含まれる表示コマンドに含まれる位置情報で特定される位置に、表示コマンドに含まれる部品特定情報で特定される部品を配置することによって部分画面を表示する。
【０１１２】
図１１は、表示画面の一例を示す図である。図１１に示す表示画面は、ＣＰＵ１１１が、ドライバー生成プログラムを実行し、ユーザーが第１のドライバープログラム９１Ａおよび第２のドライバープログラム９１Ｂを指定した場合に、表示部２０６に表示される画面を示す。なお、図中の点線は説明のために付したもので、実際には存在しない。
【０１１３】
図１１を参照して、表示画面６００は、第１のドライバープログラムを実行するタスクが表示する第１ウィンドウ６０１と、第３のドライバープログラムを実行するタスクが表示する第２ウィンドウ６０３と、ドライバー生成プログラムを実行するタスクが表示する第３ウィンドウ６０５と、を含む。
【０１１４】
第１ウィンドウ６０１は、第１のドライバープログラムを実行するタスクが表示する編集用画面３００Ａを含む。編集用画面３００Ａは、図９に示した編集用画面３００Ａと同じである。第２ウィンドウ６０３は、第３のドライバープログラムを実行するタスクが表示する編集用画面４００を含む。
【０１１５】
編集用画面４００は、共通画面の領域４０１と、タブ選択画面の領域４０３と、タブ画面の領域４０５と、を含む。領域４０１に表示される共通画面は、印刷対象のデータの画像をプレビュー表示する領域４１１と、本体ビューの文字が表されたボタン４１３とを含む。
【０１１６】
領域４０３に表示されるタブ選択画面は、対応するタブ画面の名称を含み、選択可能な５つの名称が配列される。ここでは、名称「仕上げ」のタブ画面が選択されている場合を例に示している。領域４０５に表示されるタブ画面は、名称「仕上げ」のタブ画面に関連付けられた部分定義データ９７に基づいて生成される３つの部分画面４２１、４２３、４２７を含む。
【０１１７】
領域４０５に表示されるタブ画面は、中とじ処理の機能に対応するチェックボックスを含む部分画面４２１と、折り加工処理の機能に対応するチェックボックスを含む部分画面４２３と、適用の文字が表されたボタンを含む部分画面４２７と、を含む。
【０１１８】
編集用画面４００は、タブ画面の領域４０５に含まれる３つの部分画面４２１，４２３，４２７にそれぞれ対応して、領域識別画像を含む。具体的には、編集用画面４００は、部分画面４２１を囲む輪郭画像４２１Ａと、部分画面４２１に対応する部分定義データの部分定義データ識別情報「ＩＤ：１１１」の画像４２１Ｂと、を含む。編集用画面４００は、部分画面４２３を囲む輪郭画像４２３Ａと、部分画面４２３に対応する部分定義データの部分定義データ識別情報「ＩＤ：１１３」の画像４２３Ｂと、を含む。編集用画面４００は、部分画面４２７を囲む輪郭画像４２７Ａと、部分画面４２７に対応する部分定義データの部分定義データ識別情報「ＩＤ：１１５」の画像４２７Ｂと、を含む。
【０１１９】
また、編集用画面４００は、共通画面の領域４０１に含まれる印刷対象のデータの画像をプレビュー表示する領域４１１と、本体ビューの文字が表されたボタン４１３と、にそれぞれ対応して領域識別画像を含む。具体的には、編集用画面４００は、プレビュー表示する領域４１１を囲む輪郭画像４１１Ａと、プレビュー表示する領域４１１に対応する部分定義データの部分定義データ識別情報「ＩＤ：０１０」の画像４１１Ｂと、を含む。また、編集用画面４００は、ボタン４１３を囲む輪郭画像４１３Ａと、ボタン４１３に対応する部分定義データの部分定義データ識別情報「ＩＤ：０１１」の画像４１３Ｂと、を含む。
【０１２０】
第３ウィンドウ６０５は、ドライバー生成プログラムを実行するタスクが表示する第２設定画面５００を含む。第２設定画面５００は、共通画面の領域５０１と、タブ選択画面の領域５０３と、タブ画面の領域５０５と、を含む。領域５０１に表示される共通画面は、印刷対象のデータの画像をプレビュー表示する領域５１１と、本体ビューの文字が表されたボタン５１３とを含む。
【０１２１】
領域５０５に表示されるタブ画面は、ユーザーが、編集用画面３００Ａの輪郭画像３２３Ａをドラッグして領域５０３にドロップする操作、編集用画面４００の輪郭画像４２３Ａをドラッグして領域５０３にドロップする操作、編集用画面３００Ａの輪郭画像３２５Ａをドラッグして領域５０３にドロップする操作、をすることにより、生成される。
【０１２２】
第２設定画面５００の領域５０５に表示されるタブ画面は、ステープル加工処理の機能に対応するコンボボックスを含む部分画面５２１と、折り加工処理の機能に対応するチェックボックスを含む部分画面５２３と、適用の文字が表されたボタンを含む部分画面５２５と、を含む。
【０１２３】
部分画面５２１は、ユーザーが、編集用画面３００Ａの輪郭画像３２３Ａをドラッグして領域５０５にドロップする操作をすることにより表示される。部分画面５２１は、コンボボックスと「ステープル」の文字列の組を含む。部分画面５２３は、ユーザーが、編集用画面４００の輪郭画像４２３Ａをドラッグして領域５０５にドロップする操作をすることにより表示される。部分画面５２３は、チェックボックスと「折り」の文字列との組を含む。
【０１２４】
部分画面５２５は、ユーザーが編集用画面３００Ａの輪郭画像３２５Ａをドラッグして領域５０５にドロップする操作をすることにより表示される。なお、ユーザーが編集用画面４００の輪郭画像４２７Ａをドラッグして領域５０５にドロップする操作をすることによっても表示される。
【０１２５】
このように、ユーザーが、操作部２０７が備えるマウスを用いて編集用画面３００Ａ，４００中の領域識別画像である輪郭画像にマウスのポインタを合わせてドラッグした段階で、その領域識別画像を選択し、ユーザーが移動させるマウスのポインタの移動に従って、領域識別画像を移動させる。その後、ユーザーが移動を終了させる操作として、例えば、第２設定画面５００の領域５０５にドロップ操作を入力すれば、その位置に部分画面を表示する。このように、マウスを用いたドラッグアンドドロップの簡単な操作で、第２のドライバープログラム８１を生成することができる。
【０１２６】
図１２および図１３は、設定処理の流れの一例を示すフローチャートである。設定処理は、ＰＣ２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９Ａに記憶された、ドライバープログラムを実行することにより、ＣＰＵ２０１により実行される処理である。ここでは、ＣＰＵ２０１が、ＭＦＰ１００に対応する第１のドライバープログラムを実行する場合を例に説明する。
【０１２７】
図１２および図１３を参照して、ＣＰＵ２０１は、ＨＤＤ２０５に記憶された第１のドライバープログラム９１に含まれる共通定義データ９３を読み出す（ステップＳ０１）。そして、共通コマンドを取得する（ステップＳ０２）。読み出された共通定義データ９３から共通コマンドを抽出する。そして、取得された共通コマンドに従って共通画面を含む第１設定画面を生成し、生成された第１設定画面を表示部２０６に表示する（ステップＳ０３）。
【０１２８】
次のステップＳ０４においては、ＨＤＤ２０５に記憶された第１のドライバープログラム９１に含まれる設定画面情報９５を読み出す。設定画面情報９５は、１以上のタブ画面ごとに１以上の部分定義データ９７の組を含む。そして、タブ選択画面を生成し、表示する（ステップＳ０５）。タブ選択画面は、設定画面情報９５によって特定される１以上のタブ画面を選択可能な画面である。タブ選択画面は、１以上のタブ画面それぞれの名称を含む画像であって、タブ画面の名称を選択可能に配列した画面である。生成されたタブ選択画面を、ステップＳ０１において読み出された共通定義データ９３に含まれる領域情報によって定められた位置に配置されるように、表示部２０６に表示する。
【０１２９】
次のステップＳ０６においては、タブ画面を選択する。ステップＳ０５において特定された１以上のタブ画面のうちから、処理対象となるタブ画面として任意の１つを選択する。ここでは、最初のタブ画面を選択するようにしている。そして、ステップＳ０４において読み出された設定画面情報に含まれる部分定義データ９７のうちから処理対象となるタブ画面に対応する１以上の部分定義データ９７を読み出す。１つのタブ画面に１以上の部分定義データが予め割り当てられているので、処理対象のタブ画面に割り当てられたすべての部分定義データ９７を読み出す。
【０１３０】
次のステップＳ０８においては、ステップＳ０７において取得された１以上の部分定義データのうちから１つを処理対象に選択する。そして、処理対象に選択された部分定義データに含まれる表示コマンドに従って部分画面を生成する（ステップＳ０９）。具体的には、表示コマンドに含まれる部品特定情報で特定される部品を取得する。
【０１３１】
次のステップＳ１０においては、表示部２０６に部分画面を表示し、処理をステップＳ１１に進める。部分画面を表示する位置は、表示部２０６に表示された第１設定画面のタブ画面中で処理対象の表示コマンドに含まれる位置情報で特定される位置である。
【０１３２】
ステップＳ１１においては、ステップＳ０７において読み出された１以上の部分定義データのうちで処理対象に選択されていない部分定義データが存在するか否かを判断する。処理対象に選択されていない部分定義データが存在するならば処理をステップＳ０８に戻し、そうでなければ処理をステップＳ１２に進める。１つのタブ画面に複数の部分定義データが割り当てられている場合があり、複数の部分定義データそれぞれを処理対象として、ステップＳ０９およびステップＳ１０の処理を実行するためである。
【０１３３】
ステップＳ１２においては、編集モードか否かを判断する。設定処理は、ＣＰＵ２０１が第１のドライバープログラムを実行するコマンドが入力される場合に、ＣＰＵ２０１によって実行される処理である。第１ドライバープログラムを実行するコマンドの引数として編集モードで起動する値が付加されている場合に、編集モードとなり、そうでなければ編集モードとは異なる通常モードである。編集モードならば処理をステップＳ１３に進めるが、そうでなければ処理をステップＳ２１に進める。
【０１３４】
ステップＳ１３においては、編集用画面表示処理を実行し、処理をステップＳ１４に進める。編集用画面表示処理の詳細は後述するが、第１設定画面に、それに含まれる部分画面それぞれを識別するための領域識別画像を合成した編集用画面を表示する処理である。
【０１３５】
ステップＳ１４においては、編集終了信号が入力されたか否かを判断する。編集終了信号は、第１のドライバープログラムを実行するコマンドを出力したタスク、ここでは、ドライバー生成プログラムを実行するタスクから入力される。これについての詳細は後述する。編集終了信号が入力されたならば処理を終了するが、そうでなければ処理をステップＳ１５に進める。
【０１３６】
ステップＳ１５においては、操作を受け付けたか否かを判断する。ユーザーにより操作部２０７に入力される操作を検出すると処理をステップＳ１６に進めるが、そうでなければ処理をステップＳ１４に戻す。ステップＳ１６においては、受け付けられた操作に基づいて処理を分岐させる。操作が部分画面を選択する操作ならば処理をステップＳ１８に進め、タブ画面を切り換える操作ならば処理をステップＳ１７進める。部分画面を選択する操作は、ステップＳ１３において表示部２０６に表示された編集用画面に含まれる領域識別画像を指示する操作である。
【０１３７】
ステップＳ１７においては、ステップＳ１５において受け付けられた操作により特定されるタブ画面を処理対象に設定し、処理をステップＳ０７に戻す。
【０１３８】
ステップＳ１８においては、ステップＳ１５において受け付けられた操作に基づいて、部分定義データを特定する。具体的には、編集用画面に含まれる領域識別画像のうち、ステップＳ１５において受け付けられた操作により特定される領域識別画像に対応する部分画面を特定する。そして、特定された部分画面に対応する部分定義データを特定する。
【０１３９】
次のステップＳ１９においては、領域識別画像情報を出力する。領域識別画像情報は、ステップＳ１５において受け付けられた操作により特定される領域識別画像と、その領域識別画像の表示部２０６の表示面中の位置と、を含む。
【０１４０】
次のステップＳ２０においては、ステップＳ１８において特定された部分定義データを出力し、処理をステップＳ１４に戻す。領域識別画像情報および機能定義データの出力先は、第１のドライバープログラムを実行するコマンドを出力したタスク、ここでは、ドライバー生成プログラムを実行するタスクである。
【０１４１】
ステップＳ２１においては、操作を受け付けたか否かを判断する。ユーザーが操作部２０７に操作を入力するまで待機状態となり（ステップＳ２１でＮＯ）、操作部２０７に入力される操作を検出すると（ステップＳ２１でＹＥＳ）、処理をステップＳ２２に進める。ステップＳ２２においては、受け付けられた操作に基づいて処理を分岐させる。操作がプリントを指示する操作ならば処理をステップＳ２３に進め、タブ画面を切り換える操作ならば処理をステップＳ２４進め、設定値を入力する操作ならば処理をステップＳ２５に進める。部分画面のうち機能別画面に対する操作を検出する場合、設定値を入力する操作と判断する。
【０１４２】
ステップＳ２３においては、プリントジョブ生成処理を実行し、処理を終了する。プリントジョブ生成処理の詳細は後述する。ステップＳ２４においては、ステップＳ２１において受け付けられた操作により特定されるタブ画面を処理対象に設定し、処理をステップＳ０７に戻す。ステップＳ２５においては、設定値を設定し、処理をステップＳ２１に戻す。具体的には、ＰＣ２００を操作するユーザーが、部分画面のうち機能別画面に従って操作部２０７に入力した設定値を、機能別画面に対応する機能に対して設定された設定値に設定する。より具体的には、機能別画面に対応する機能を識別するための機能識別情報と、受け付けられた設定値との組をＲＡＭ２０２に記憶する。
【０１４３】
図１４は、編集用画面表示処理の流れの一例を示す図である。編集用画面表示処理は、図１２および図１３に示した設定処理のステップＳ１３において実行される処理である。編集用画面表示処理が実行される前の段階で、処理対象のタブ画面が選択されている。図１４を参照して、ＣＰＵ２０１は、処理対象に設定されているタブ画面に含まれる１以上の部分画面のうちから処理対象となる１つの部分画面を選択する（ステップＳ３１）。そして、を処理対象の部分画面に対応する領域識別画像を生成する（ステップＳ３２）。領域識別画像は、部分画面を識別可能な画像である。例えば、領域識別画像は、部分画面を囲む輪郭の画像である。また、領域識別画像は、部分画面に対応する部分定義データを識別するための部分定義データ識別情報の画像を含んでもよい。
【０１４４】
ステップＳ３３においては、生成された領域識別画像を表示部２０６に表示されている設定画面に重畳して表示し、処理をステップＳ３４に進める。ステップＳ３４においては、処理対象の部分画面に対応する領域識別画像と、部分画面に対応する部分定義データとを関連付け、処理をステップＳ３５に進める。ステップＳ３５においては、処理対象のタブ画面に含まれる１以上の部分画面のうちに処理対処に選択されていない部分画面が存在するか否かを判断する。未処理の部分画面が存在するならば処理をステップＳ３１に戻すが、存在しなければ処理を設定処理に戻す。
【０１４５】
図１５は、プリントジョブ生成処理の流れの一例を示すフローチャートである。プリントジョブ生成処理は、図１２および図１３に示した設定処理のステップＳ２３において実行される処理である。図１５を参照して、ＣＰＵ２０１は、ＲＡＭ２０３に記憶されている機能識別情報と設定値との組をすべて読み出す（ステップＳ４１）。そして、読み出された機能識別情報と設定値との組のうちから１つを処理対象に選択する（ステップＳ４２）。そして、プリントコマンドを選択し（ステップＳ４３）、ＲＡＭ２０３に記憶する。ＨＤＤ２０５に記憶されている部分定義データ９７のうちから、処理対象に選択された機能識別情報の機能に対応する１以上の部分定義データを抽出し、抽出された１以上の部分定義データそれぞれに含まれるプリントコマンドのうちから処理対象に設定されている設定値に対応するプリントコマンドを選択する。
【０１４６】
ステップＳ４４においては、ステップＳ４１において読み出された機能識別情報と設定値との組のうち未だ処理対象に設定していない組が存在するか否かを判断する。未処理の組が存在するならば処理をステップＳ４２に戻すが、存在しなければ処理をステップＳ４５に進める。
【０１４７】
ステップＳ４５においては、プリントジョブを生成する。ＲＡＭ２０３に記憶されているプリントコマンドのすべてと、処理対象となるデータとを含むプリントジョブを生成する。そして、生成されたプリントジョブを、ネットワークＩ／Ｆ２０４を介してＭＦＰ１００に送信し（ステップＳ４６）、処理を設定処理に戻す。
【０１４８】
図１６は、ドライバー生成処理の流れの一例を示すフローチャートである。ドライバー生成処理は、ＰＣ２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９Ａに記憶された、ドライバー生成プログラムを実行することにより、ＣＰＵ２０１により実行される処理である。
【０１４９】
図１６を参照して、ＣＰＵ２０１は、共通コマンドを取得する（ステップＳ５１）。ドライバー生成プログラムに予め含まれる共通定義データを読出し、共通定義データに含まれる共通コマンドを取得する。そして、共通画面を含む第２設定画面を表示する（ステップＳ５２）。
【０１５０】
次のステップＳ５３においては、タブ画面を表示部２０６に表示する。ステップＳ５１において読み出された共通定義データに含まれるタブ画面を表示する領域に、タブ画面を表示する。この段階では、タブ画面に含まれる機能別画面は定まっていないので、無地のタブ画面を表示部２０６に表示する。この段階で、共通画面およびタブ画面を含む第２設定画面が表示される。
【０１５１】
次のステップＳ５４においては、ドライバープログラムの指定を受け付けたか否かを判断する。ユーザーが操作部２０７を用いて、ドライバープログラムを指定する操作を入力すると、ドライバープログラムの指定を受け付ける。ドライバープログラムの指定を受け付けたならば処理をステップＳ５５に進めるが、そうでなければステップＳ５５をスキップして処理をステップＳ５６に進める。ステップＳ５５においては、指定されたドライバープログラムを編集モードで起動し、処理をステップＳ５６に進める。具体的には、指定されたドライバープログラムの実行を指示するコマンドに編集モードを指定する引数を付加して、ＣＰＵ２０１にそのコマンドを実行させる。これにより、ＣＰＵ２０１に指定されたドライバープログラムを実行するタスクが生成される。さらに、そのタスクは、編集モードで動作する。
【０１５２】
ステップＳ５６においては、ドライバープログラムの指定が終了したか否かを判断する。ユーザーが操作部２０７を用いて、ドライバープログラムの指定を終了する操作を入力すると、ドライバープログラムの指定が終了したと判断する。ドライバープログラムの指定が終了したと判断しない場合は処理をステップＳ５４に戻し、ドライバープログラムの指定が終了したと判断する場合処理をステップＳ５７に進める。換言すれば、ＣＰＵ２０１に、１以上のドライバープログラムを実行するタスクが生成される。ここでは、第１のドライバープログラムを実行するタスクと、第３のドライバープログラムを実行するタスクと、がＣＰＵ２０１に生成される場合を例に説明する。
【０１５３】
ステップＳ５７においては、領域識別画像情報を受け付けたか否かを判断する。第１のドライバープログラムを実行するタスクおよび第３のドライバープログラムを実行するタスクのいずれかから領域識別画像情報を受け付ける。第１のドライバープログラムを実行するタスクおよび第３のドライバープログラムを実行するタスクは、編集用画面に含まれる機能別画面それぞれに対応する領域識別画像が、ユーザーにより指示されると、領域識別画像情報を出力する。領域識別画像情報は、領域識別画像と、表示部２０６の表示面中の位置とを含む。領域識別画像情報を受け付けたならば処理をステップＳ５８に進めるが、そうでなければ処理をステップＳ６５に進める。
【０１５４】
ステップＳ５８においては、部分定義データを受け付ける。第１のドライバープログラムを実行するタスクおよび第３のドライバープログラムを実行するタスクのうち領域識別情報を出力したタスクから部分定義データを受け付ける。
【０１５５】
次のステップＳ５９においては、領域識別画像を移動可能に表示する。領域識別画像情報に含まれる領域識別画像を表示面中の位置に移動可能に表示する。領域識別画像を最初に表示する位置は、領域識別画像情報に含まれる位置で特定される表示部２０６の位置とするのが好ましい。
【０１５６】
次のステップＳ６０においては、移動可能に表示された領域識別画像が第２設定画面のタブ画面内で移動を終了したか否かを判断する。ユーザーが、ドラッグアンドドロップ操作をすることにより、領域識別画像が移動された後に移動を終了する。領域識別画像がドロップされた時点における位置が、第２設定画面のタブ画面内ならば処理をステップＳ６１に進めるが、そうでなければ処理をステップＳ６５に進める。
【０１５７】
ステップＳ６１においては、第２設定画面内で領域識別画像が移動を終了した位置を決定する。そして、ステップＳ５８において受け付けられた部分定義データを変更する（ステップＳ６２）。具体的には、部分定義データに含まれる表示コマンドの位置情報を、ステップＳ６１において決定された位置で書き換える。そして、位置情報が変更された表示コマンドを含む部分定義データを設定画面情報に追加し（ステップＳ６３）、処理をステップＳ６４に進める。
【０１５８】
ステップＳ６４のいては、部分画面を表示する。部分定義データに含まれ、位置情報が変更された表示コマンドに従って部分画面を表示する。これにより、第２設定画面に、第１のドライバープログラムを実行するタスクおよび第３のドライバープログラムを実行するタスクのいずれかにより表示される部分画面のうち、ユーザーにより指定された部分画面と同じ部分画面が、第２設定画面内に表示される。
【０１５９】
ステップＳ６５においては、編集終了指示を受け付けたか否かを判断する。ユーザーが操作部２０７を用いて、編集を終了する操作を入力すると、編集終了指示を受け付ける。編集終了指示を受け付けたならば処理をステップＳ６６に進めるが、そうでなければ処理をステップＳ５７に戻す。
【０１６０】
ステップＳ６６においては、編集終了信号を出力し、処理をステップＳ６７に進める。ステップＳ５５において起動したドライバープログラムを実行するタスクのすべてに、編集終了信号を出力する。編集モードで起動したタスクのすべてを終了させるためである。
【０１６１】
そして、ステップＳ６７においては、設定画面情報をＨＤＤ２０５に記憶し、処理を終了する。設定画面情報は、ステップＳ６３において追加された部分定義データを含むので、第２のドライバープログラムを容易に生成することができる。
【０１６２】
以上説明したように、本実施の形態におけるＰＣ２００は、ドライバー生成プログラムを実行することによりドライバー生成装置として機能する。また、ＰＣ２００は、ＭＦＰ１００を制御するための第１のドライバープログラム９１Ａによって定められた複数の部分定義データまたはＭＦＰ１００Ａを制御するための第３のドライバープログラム９１Ｂによって定められた複数の部分定義データのうちから１以上がユーザーにより選択されると、その選択された部分定義データを含む第２のドライバープログラムを生成する。第１のドライバープログラム９１Ａに含まれる複数の部分定義データそれぞれは、ＭＦＰ１００を制御するための所定の処理を定めた制御コマンドとその所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付ける。第３のドライバープログラム９１Ｂに含まれる複数の部分定義データそれぞれは、ＭＦＰ１００Ａを制御するための所定の処理を定めた制御コマンドとその所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付ける。このため、ユーザーは、第２のドライバープログラムを生成する段階において、ユーザーの操作に対応して制御コマンドを新たに関連付ける必要がない。このため、第２のドライバープログラムを容易に生成することができるので、ドライバープログラムの開発効率を向上させることができる。
【０１６３】
また、ＰＣ２００は、第２のドライバープログラムの第２設定画面を生成する際に、第１のドライバープログラム９１Ａまたは第３のドライバープログラム９１Ｂの複数の部分定義データのうちから選択された１以上の部分定義データに対応する１以上の部分画面を第２設定画面に配置する位置を決定し、選択された部分定義データを、部分画面が第２設定画面中で決定された位置に配置されるように変更する。このため、第１のドライバープログラム９１Ａまたは第３のドライバープログラム９１Ｂそれぞれで定められる部分画面を、第２のドライバープログラムで定められる第２設定画面中で任意の位置に配置することができる。
【０１６４】
また、ＰＣ２００は、第１のドライバープログラム９１Ａを実行し、第１のドライバープログラム９１Ａによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成し、第１設定画面に対応する編集用画面を生成し、表示する。また、ＰＣ２００は、第３のドライバープログラム９１Ｂを実行し、第３のドライバープログラム９１Ｂによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成し、第１設定画面に対応する編集用画面を生成し、表示する。そして、ＰＣ２００は、２つの編集用画面それぞれに含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データを特定する。このため、第１のドライバープログラム９１Ａによって定められた複数の部分定義データまたは第３のドライバープログラム９１Ｂによって定められた複数の部分定義データを、ユーザーは、第１の設定画面に含まれる複数の部分画面として認識することができるので、部分定義データを選択する操作を容易にすることができる。
【０１６５】
また、ＰＣ２００は、表示部２０６に表示された編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて領域識別画像を特定し、特定された領域識別画像を移動可能に表示する。そして、ＰＣ２００は、領域識別画像の移動が終了した時点における第２設定画面中の位置を領域識別画像に対応する部分画面を第２設定画面中で配置する配置位置に決定する。このため、第１のドライバープログラム９１Ａにより定められる部分定義データを選択する操作を容易にするとともに、第２のドライバープログラムで定められる第２設定画面中で部分画面を配置する位置を決定する操作を容易にすることができる。例えば、マウスを用いて領域識別画像をドラッグする操作、マウスポインタを移動させる操作、マウスポインタを第２設定画面に移動させた後にドロップする操作で、部分定義データの特定と、第２設定画面中の部分画面の位置を指定することができる。
【０１６６】
また、第１のドライバープログラム９１Ａにより定められる複数の部分定義データは、ＭＦＰ１００が有する複数の機能のいずれかに対応する機能定義データであって、ＭＦＰ１００を制御するための複数の制御コマンドのうちその機能に対応する１以上の制御コマンドと、その機能に対する設定値を設定するための機能別画面を表示するための表示コマンドとを関連付けた機能定義データを含む。この機能定義データは、ユーザーが機能別画面に従って入力する操作と、ＭＦＰ１００を制御するための制御コマンドとを関連付ける。また、第３のドライバープログラム９１Ｂにより定められる複数の部分定義データも同様に、ユーザーが機能別画面に従って入力する操作と、ＭＦＰ１００Ａを制御するための制御コマンドとを関連付ける。このため、ユーザーは、第２のプログラムを生成する際に、ユーザーにより入力される設定値と制御コマンドとを関連付ける必要がないので、第２のドライバープログラムを容易に生成することができる。
【０１６７】
また、第１のドライバープログラム９１Ａにより定められる複数の部分定義データ、または第３のドライバープログラム９１Ｂにより定められる複数の部分定義データは、ユーザーが入力可能な複数の操作のいずれかに対応する指示定義データであって、操作に対応する処理を定める処理実行コマンドと、部分画面としてその操作を受け付けるための指示別画面を表示するための表示コマンドとを関連付ける。この指示定義データは、ユーザーが指示別画面に従って入力する操作と、その操作に対応する処理とを関連付ける。このため、ユーザーは、第２のプログラムを生成する際に、ユーザーにより入力される操作とその操作に対応する処理とを関連付ける必要がないので、第２のドライバープログラムを容易に生成することができる。
【０１６８】
ＰＣ２００のＣＰＵ２０１は、ドライバー生成プログラムを生成するタスクが第１のドライバープログラム９１Ａを編集モードで実行する指示が出力する場合、第１のドライバープログラム９１Ａを編集モードで実行する。この場合に、第１のドライバープログラム９１Ａを実行するタスクは、編集用画面を表示し、表示された編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、１以上の部分画面のうち指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データを、ドライバー生成プログラムを実行するタスクに出力する。このため、第１のドライバープログラム９１Ａを実行するタスクは、編集モードで起動される場合に限って、編集用画面を出力するので、ユーザーは、編集用画面を表示するか否かを指定することができる。
【０１６９】
また、編集用画面に表示される輪郭画像（領域識別画像）から所定の距離で定まる位置で複数の部分画面それぞれに対応する部分定義データを識別するための部分定義データ識別情報を合成する。例えば、部分定義データを、輪郭画像の内部に表示する。このため、ユーザーは、編集用画面で輪郭画像を選択する際に、部分定義データを特定することができる。また、第１のドライバープログラム９１Ａ、第２のドライバープログラムおよび第３のドライバープログラム９１Ｂのソースを閲覧する際に、部分定義データ識別情報から部分定義データを探し出すのが容易となる。
【０１７０】
＜変形例＞
上述した実施の形態においては、ドライバー生成プログラムを実行するタスクが、第１のドライバープログラムを実行するタスクと、第３のドライバープログラムを実行するタスクとを編集モードで起動し、タスク間で通信することによって、第１のドライバープログラムまたは第３のドライバープログラムに含まれる部分定義データを含む第２のドライバープログラムを生成する。変形例におけるドライバー生成プログラムは、第１のドライバープログラムを実行するタスクと、第３のドライバープログラムを実行するタスクとを起動することなく、第１のドライバープログラムおよび第３のドライバープログラムから部分定義データを直接読み出すことにより、部分定義データを取得する。以下、上述した実施の形態におけるＰＣ２００と異なる点を主に説明する。
【０１７１】
図１７は、ＰＣが備えるＣＰＵが変形例におけるドライバー生成プログラムを実行する場合の機能の一例をＨＤＤに記憶されるデータとともに示すブロック図である。図１７に示す機能は、ＰＣ２００が備えるＣＰＵ２０１が、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９Ａに記憶された変形例におけるドライバー生成プログラムを実行することにより、ＣＰＵ２０１に形成される機能である。図１７では、ＨＤＤ２０５に第１のドライバープログラム９１Ａと、第３のドライバープログラム９１Ｂとが記憶されている。第１のドライバープログラム９１Ａおよび第３のドライバープログラム９１Ｂそれぞれは、共通定義データと、設定画面情報とを含む。
【０１７２】
図１７を参照して、ＣＰＵ２０１は、変形例におけるドライバー生成プログラムを実行するタスクとしてのドライバー生成部５０Ａを含む。ドライバー生成部５０Ａは、選択部５１Ａと、生成部６０と、を含む。生成部６０は、図１０に示したブロック図における生成部６０と同じである。したがって、ここでは説明を繰り返さない。
【０１７３】
選択部５１Ａは、第１ドライバー画面表示部７１Ａと、第２ドライバー画面表示部７１Ｂと、部分定義情報受付部７３と、移動中表示部５７と、配置位置決定部５９と、を含む。移動中表示部５７と、配置位置決定部５９とは、図１０に示したブロック図における移動中表示部５７と、配置位置決定部５９とそれぞれ同じである。したがって、ここでは説明を繰り返さない。
【０１７４】
第１ドライバー画面表示部７１Ａは、ユーザーが第１のドライバープログラム９１Ａを指定する場合に、ＨＤＤ２０５に記憶された第１のドライバープログラム９１Ａにアクセスし、共通定義データと設定画面情報とを読出し、第１設定画面を表示部２０６に表示する。第２ドライバー画面表示部７１Ｂは、ユーザーが第３のドライバープログラム９１Ａを指定する場合に、ＨＤＤ２０５に記憶された第３のドライバープログラム９１Ｂにアクセスし、共通定義データと設定画面情報とを読出し、第１設定画面を表示部２０６に表示する。第１ドライバー画面表示部７１Ａと第２ドライバー画面表示部７１Ｂとは、処理対象とするドライバープログラムが異なるのみなので、ここでは、第１ドライバー画面表示部７１Ａを例に説明する。なお、ユーザーが第１のドライバープログラム９１Ａおよび第３のドライバープログラム９１Ｂとは別のドライバープログラムを指定する場合には、当該ドライバープログラムにアクセスし、共通定義データと設定画面情報とを読出し、第１設定画面を表示部２０６に表示する機能を選択部５１Ａは含む。
【０１７５】
図１８は、第１ドライバー画面表示部７１Ａの詳細な機能の一例を示す図である。図１８を参照して、第１ドライバー画面表示部７１Ａは、図５に示した第１画像処理装置制御部１１の機能と異なる点は、プリントコマンド取得部１７、コマンド出力部２３、設定値受付部２１を含まない点、部分定義情報出力部３５が部分定義情報出力部３５Ａに変更された点である。その他の機能は同じなのでここでは説明を繰り返さない。
【０１７６】
部分定義情報出力部３５Ａは、編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されると、領域定義情報を部分定義情報受付部７３（図１７参照）に出力する。部分定義情報出力部３５Ａは、ユーザーが、操作部２０７に、編集用画面に含まれる１以上の領域識別画像のいずれかの内部の位置を指示する操作を入力すれば、当該指示された領域識別情報に対応する部分定義情報を部分定義情報受付部７３に出力する。部分定義情報は、領域識別画像情報と、領域識別画像に対応する部分定義データと、を含む。領域識別画像情報は、領域識別画像と、領域識別画像が表示部２０６中で表示されている位置を示す位置情報とを含む。
【０１７７】
図１７に戻って、部分定義情報受付部７３は、第１ドライバー画面表示部７１Ａおよび第２ドライバー画面表示部７１Ｂのいずれかが出力する部分定義情報を受け付ける。部分定義情報受付部５５は、受け付けられた部分定義情報を、移動中表示部５７に出力する。
【０１７８】
図１９は、変形例におけるドライバー生成処理の流れの一例を示すフローチャートである。図１９を参照して、変形例におけるドライバー生成処理が、図１６に示したドライバー生成処理と異なる点は、ステップＳ５５がステップＳ５５Ａに変更された点、ステップＳ５７〜ステップＳ５８がステップＳ７１〜ステップＳ７６に変更された点、ステップＳ６６が削除された点である。その他の処理は、図１６に示した処理と同じなのでここでは説明を繰り返さない。
【０１７９】
ステップＳ５５Ａにおいては、第１設定画面表示処理を実行する。第１設定画面表示処理の詳細は後述するが、ステップＳ５４において指定されたドライバープログラムの共通定義データおよび設定画面情報を読み出して、編集用画面を生成し、表示する処理である。
【０１８０】
したがって、処理がステップＳ７１に進む場合、１以上のドライバープログラムが指定されて、１以上のドライバープログラムにそれぞれ対応する編集用画面が表示される。ここでは、第１のドライバープログラム９１Ａと第３のドライバープログラム９１Ｂが指定されて、第１のドライバープログラム９１Ａに対応する編集用画面と、第３のドライバープログラム９１Ｂに対応する編集用画面と、が表示される場合を例に説明する。
【０１８１】
ステップＳ７１においては、操作を受け付けたか否かを判断する。ユーザーが操作部２０７に入力する操作を検出すると処理をステップＳ７２に進めるが、そうでなければ処理をステップＳ６５に進める。ステップＳ６５においては、編集終了指示を受け付けたか否かを判断する。編集終了指示を受け付けたならば処理をステップＳ６７に進めるが、そうでなければ処理をステップＳ７１に戻す。
【０１８２】
ステップＳ７２においては、ドライバープログラムを特定する。ステップＳ７１において受け付けられた操作が、第１のドライバープログラム９１Ａに対応する編集用画面内を指示する操作ならば第１のドライバープログラム９１Ａを特定し、第３のドライバープログラム９１Ｂに対応する編集用画面内を指示する操作ならば第３のドライバープログラム９１Ｂを特定する。
【０１８３】
ステップＳ７３においては、ステップＳ７１において受け付けられた操作に基づいて処理を分岐させる。タブ画面を切り換える操作ならば処理をステップＳ７４進め、部分画面を選択する操作ならば処理をステップＳ７６に進める。部分画面を選択する操作は、ステップＳ５５Ａにおいて表示部２０６に表示された編集用画面に含まれる領域識別画像を指示する操作である。
【０１８４】
ステップＳ７４においては、ステップＳ７１において受け付けられた操作により特定されるタブ画面を処理対象に設定し、処理をステップＳ７５に進める。ステップＳ７５においては、ステップＳ５５Ａと同様に、第１設定画面表示処理を実行し、処理をステップＳ７１に戻す。
【０１８５】
ステップＳ７６においては、ステップＳ７１において受け付けられた操作に基づいて、部分定義データを特定し、処理をステップＳ５９に進める。具体的には、編集用画面に含まれる領域識別画像のうち、ステップＳ７１において受け付けられた操作により特定される領域識別画像に対応する部分画面を特定する。そして、特定された部分画面に対応する部分定義データを特定する。
【０１８６】
図２０は、第１設定画面表示処理の流れの一例を示す図である。第１設定画面表示処理は、図１９のステップＳ５５ＡおよびステップＳ７５で実行される処理である。図２０を参照して、ステップＳ８１においては、機能定義データを読み出す。第１設定画面表示処理が実行される前の段階で、ドライバープログラムと、タブ画面とが特定されている。したがって。特定されているドライバープログラムに含まれる設定画面情報に含まれる１以上の部分定義データのうち、タブ画面と関連付けられた１以上の部分定義データを読み出す。
【０１８７】
次のステップＳ８２においては、読み出された１以上の部分定義データのうちから１つを処理対象に選択する。そして、処理対象に選択された部分定義データに含まれる表示コマンドに従って機能別画面を生成する（ステップＳ８３）。具体的には、表示部２０６に表示する画面中で処理対象の表示コマンドに含まれる位置情報で特定される位置に、表示コマンドに含まれる部品特定情報で特定される部品を配置することによって機能別画面を生成する。
【０１８８】
次のステップＳ８４においては、表示部２０６に部分画面を表示し、処理をステップＳ８５に進める。ステップＳ８５においては、ステップＳ８１において読み出された１以上の部分定義データのうちで処理対象に選択されていない部分定義データが存在するか否かを判断する。処理対象に選択されていない部分定義データが存在するならば処理をステップＳ８２に戻し、そうでなければ処理をステップＳ８６に進める。１つの設定画面に複数の部分定義データが割り当てられている場合があり、複数の部分定義データそれぞれを処理対象として、ステップＳ０９およびステップＳ１０の処理を実行するためである。ステップＳ８６においては、図１４に示した編集用画面表示処理を実行し、図１８に示したドライバー生成処理に処理を戻す。
【０１８９】
変形例におけるＰＣ２００は、第１のドライバープログラム９１Ａによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成し、第１設定画面に対応する編集用画面を生成し、表示する。また、第３のドライバープログラム９１Ｂによって定められた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成し、第１設定画面に対応する編集用画面を生成し、表示する。そして、ＰＣ２００は、２つの編集用画面それぞれに含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、指示された領域識別画像と同じ位置に配置された部分画面に対応する部分定義データを特定する。このため、第１のドライバープログラムによって定められた複数の部分定義データを、ユーザーは、第１の設定画面に含まれる複数の部分画面として認識することができるので、部分定義データを選択する操作を容易にすることができる。
【０１９０】
なお、上述した実施の形態においては、プリントシステム１において、ＰＣ２００がＭＦＰ１００Ｂを制御するための第２のドライバープログラムを生成するドライバー生成装置として機能する場合を例に説明した。これに加えて、ＰＣ２００をドライバー生成装置として機能させるためにＰＣ２００のＣＰＵ２０１に図１２〜図１６、または図１９に示した処理を実行させるドライバー生成方法またはドライバー生成プログラムとして発明を捉えることができるのは言うまでもない。
【０１９１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１９２】
＜付記＞
（１）  画像処理装置を制御するための第１のドライバープログラムによって定められ、所定の処理を定めた制御コマンドと前記所定の処理に関連してユーザーによる操作を受け付けるための部分画面を表示する表示コマンドとを関連付けた複数の部分定義データそれぞれに含まれる複数の表示コマンドを実行することによって、複数の部分画面を配置した第１設定画面を生成する第１設定画面生成手段と、
前記表示された複数の部分画面のうちユーザーにより選択されたカレント部分画面に入力される設定値を、前記カレント部分画面に対応する機能に対する設定値として受け付ける設定値受付手段と、
前記カレント部分画面に対応する部分定義データに含まれる１以上の制御コマンドのうち前記設定値受付手段によって受け付けられた設定値に対応する制御コマンドを前記画像処理装置に出力するコマンド出力手段と、
前記生成された第１設定画面に含まれる前記複数の部分画面それぞれに対して、当該部分画面を識別するため領域識別画像を、前記第１設定画面中で前記部分画面が配置される位置と同じ位置で前記第１の設定画面と合成した編集用画面を生成する編集用画面生成手段と、
前記生成された編集用画面を表示する編集用画面表示制御手段と、を備えた制御装置。
（２）  前記表示された編集用画面に含まれる１以上の領域識別画像のいずれかがユーザーにより指示されることに応じて、前記１以上の部分画面のうち前記指示された領域識別画像と同じ位置に配置された部分画面に対応する前記部分定義データを出力する部分定義データ出力手段を、さらに備えた（１）に記載の制御装置。
（３）  前記編集用画面表示制御手段は、外部からの所定の指示を受け付けることを条件に、前記編集用画面を表示し、
前記部分定義データ出力手段は、前記所定の指示の出力元に前記部分定義データを出力する、（２）に記載の制御装置。
（４）  編集用画面生成手段は、前記複数の部分画面それぞれに対応する前記部分定義データを識別するための部分定義データ識別情報を、前記第１設定画面中で前記部分画面に対応する領域識別画像から所定の距離で定まる位置で前記生成された設定画面とさらに合成した編集用画面を生成する、（１）〜（３）のいずれかに記載の制御装置。
【符号の説明】
【０１９３】
１  プリントシステム、３  ネットワーク、１００，１００Ａ，１００Ｂ  ＭＦＰ、２００  ＰＣ、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＥＥＰＲＯＭ、１１６  ＨＤＤ、１１７  ファクシミリ部、１１８  ネットワークＩ／Ｆ、１１９  外部記憶装置、１２１  自動原稿搬送装置、１２３  原稿読取部、１２５  画像形成部、１２７  給紙部、１２８  後処理部、１２９  操作パネル、１３１  表示部、１３３  操作部、１３５  タッチパネル、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ネットワークＩ／Ｆ、２０５  ＨＤＤ、２０６  表示部、２０７  操作部、２０８  バス、２０９  外部記憶装置、２０９Ａ  ＣＤ−ＲＯＭ、１１  画像処理装置制御部、１１Ａ  第１画像処理装置制御部、１１Ｂ  第２画像処理装置制御部、１３  共通コマンド取得部、１５  表示コマンド取得部、１７  プリントコマンド取得部、１９  設定画面生成部、２１  設定値受付部、２３  コマンド出力部、２５  共通画面生成部、２７  部分画面生成部、２９  選択部、３１  編集用画面生成部、３３  編集用画面表示制御部、３５，３５Ａ  部分定義情報出力部、５０，５０Ａ  ドライバー生成部、５１，５１Ａ  選択部、５３  ドライバー起動部、５５  部分定義情報受付部、５７  移動中表示部、５９  配置位置決定部、６０  生成部、６１  設定画面生成部、６３  設定画面情報生成部、６５  共通画面生成部、６７  部分画面生成部、７１Ａ  第１ドライバー画面表示部、７１Ｂ  第２ドライバー画面表示部、７３  部分定義情報受付部、７５  部分画面生成部、８１  第２のドライバープログラム、８３  共通定義データ、８５  設定画面情報、８７  部分定義データ、９１Ａ  第１のドライバープログラム、９１Ｂ  第２のドライバープログラム、９３  共通定義データ、９５  設定画面情報、９７  部分定義データ。
【図１】
0005972226.tif 000002
【図２】
0005972226.tif 000003
【図３】
0005972226.tif 000004
【図４】
0005972226.tif 000005
【図５】
0005972226.tif 000006
【図６】
0005972226.tif 000007
【図７】
0005972226.tif 000008
【図８】
0005972226.tif 000009
【図９】
0005972226.tif 000010
【図１０】
0005972226.tif 000011
【図１１】
0005972226.tif 000012
【図１２】
0005972226.tif 000013
【図１３】
0005972226.tif 000014
【図１４】
0005972226.tif 000015
【図１５】
0005972226.tif 000016
【図１６】
0005972226.tif 000017
【図１７】
0005972226.tif 000018
【図１８】
0005972226.tif 000019
【図１９】
0005972226.tif 000020
【図２０】
0005972226.tif 000021