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