(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された機器にインストールされた機器側プラグインが提供する機能を、利用するためのプラグインと、
前記プラグインが利用可能な前記機器側プラグインを識別する第１識別情報を含む、プラグイン利用先情報を記憶する記憶手段と、
前記機器から、当該機器にインストールされた機器側プラグインを識別する第２識別情報と、前記機器側プラグインが利用可能であるか否かを示す利用可否情報と、を含む機器側プラグイン一覧情報を取得する取得手段と、
前記記憶手段に記憶された前記プラグイン利用先情報に含まれる前記第１識別情報と、前記取得手段により取得された前記機器側プラグイン一覧情報に含まれる前記第２識別情報とを比較することにより、前記第１識別情報で識別される前記機器側プラグインが前記機器にインストールされているか否かを判別し、インストールされている場合に、インストールされている前記機器側プラグインが利用可能か否かを前記利用可否情報に基づいて判別する判別手段と、
前記判別手段によって利用可能と判別された前記プラグインのみ利用して、前記機器を制御する印刷制御手段と、
を備えたことを特徴とする機器制御装置。
【請求項２】
前記プラグイン利用先情報は、前記プラグインが利用可能な前記機器のプラットフォームを識別する情報を、さらに含み、
前記取得手段は、さらに、前記機器のプラットフォームを識別するプラットフォーム情報を取得し、
前記判別手段は、さらに、前記プラットフォーム情報と、前記プラグイン利用先情報と、に基づいて、前記プラグインが前記機器に対して利用可能か否かを判別すること、
を特徴とする請求項１に記載の機器制御装置。
【請求項３】
前記印刷制御手段の設定を行う設定画面を表示する際、前記判別手段によって利用可能と判別された前記プラグインの項目を表示し、利用できないと判別された前記プラグインの項目を非表示又は半輝度で表示する表示手段を、
さらに備えることを特徴とする請求項１又は２に記載の機器制御装置。
【請求項４】
前記記憶手段が記憶する前記プラグイン利用先情報は、前記機器側プラグインのバージョン情報を含み、
前記取得手段が取得する前記機器側プラグイン一覧情報は、前記機器側プラグイン毎のバージョン情報を含み、
前記判別手段は、前記機器側プラグイン一覧情報に含まれる前記バージョン情報と、前記プラグイン利用先情報に含まれる前記バージョン情報と、が一致した場合に、当該バージョン情報が一致した前記機器側プラグインの機能を、前記プラグインが利用可能と判別すること、
を特徴とする請求項１乃至３のいずれか１つに記載の機器制御装置。
【請求項５】
前記判別手段は、前記プラグイン毎に備えていることを、特徴とする請求項１乃至４のいずれか１つに記載の機器制御装置。
【請求項６】
ネットワークを介して接続された機器が有する機器側プラグインの機能を利用するためのプラグインをインストール可能な、コンピュータで実行される機器制御プログラムであって、
前記コンピュータが、前記プラグインが利用可能な前記機器側プラグインを識別する第１識別情報を含む、プラグイン利用先情報を記憶する記憶手段を備え、
前記機器から、当該機器にインストールされた機器側プラグインを識別する第２識別情報と、前記機器側プラグインが利用可能であるか否かを示す利用可否情報と、を含む機器側プラグイン一覧情報を取得する取得ステップと、
前記記憶手段に記憶された前記プラグイン利用先情報に含まれる前記第１識別情報と、前記取得ステップにより取得された前記機器側プラグイン一覧情報に含まれる前記第２識別情報とを比較することにより、前記第１識別情報で識別される前記機器側プラグインが前記機器にインストールされているか否かを判別し、インストールされている場合に、インストールされている前記機器側プラグインが利用可能か否かを前記利用可否情報に基づいて判別する判別ステップと、
前記判別ステップによって利用可能と判別された前記プラグインのみ利用して、前記機器を制御する制御ステップと、
を前記コンピュータに実行させるための機器制御プログラム。
【請求項７】
前記プラグイン利用先情報は、前記プラグインが利用可能な前記機器のプラットフォームを識別する情報を、さらに含み、
前記取得ステップは、さらに、前記機器のプラットフォームを識別するプラットフォーム情報を取得し、
前記判別ステップは、さらに、前記プラットフォーム情報と、前記プラグイン利用先情報に含まれる前記プラットフォームを識別する情報と、に基づいて、前記プラグインが前記機器に対して利用可能か否かを判別すること、
を特徴とする請求項６に記載の機器制御プログラム。
【請求項８】
前記機器制御プログラムの設定を行う設定画面を表示する際、前記判別ステップによって利用可能と判別された前記プラグインの項目を表示し、利用できないと判別された前記プラグインの項目を非表示又は半輝度で表示する表示ステップを、
さらに備えることを特徴とする請求項６又は７に記載の機器制御プログラム。
【請求項９】
前記記憶手段が記憶する前記プラグイン利用先情報は、前記機器側プラグインのバージョン情報を含み、
前記取得ステップが取得する前記機器側プラグイン一覧情報は、前記機器側プラグイン毎のバージョン情報を含み、
前記判別ステップは、前記機器側プラグイン一覧情報に含まれる前記バージョン情報と、前記プラグイン利用先情報に含まれる前記バージョン情報と、が一致した場合に、当該バージョン情報が一致した前記機器側プラグインの機能を、前記プラグインが利用可能と判別すること、
を特徴とする請求項６乃至８のいずれか１つに記載の機器制御プログラム。
【請求項１０】
前記判別ステップは、前記プラグイン毎に備えていることを、特徴とする請求項６乃至９のいずれか１つに記載の機器制御プログラム。
【請求項１１】
請求項６乃至１０のいずれか１つに記載の機器制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１２】
機器側プラグインのインストールで機能を追加することが可能な機器と、前記機器とネットワークを介して接続された機器制御装置と、で構成された機器制御システムであって、
前記機器は、
前記機器制御装置から利用可能なものとしてインストールされた前記機器側プラグインの一覧を示した機器側プラグイン一覧情報を、前記機器制御装置に対して出力する出力手段を備え、
前記機器制御装置は、
ネットワークを介して接続された機器にインストールされた機器側プラグインが提供する機能を、利用するためのプラグインと、
前記プラグインが利用可能な前記機器側プラグインを識別する第１識別情報を含む、プラグイン利用先情報を記憶する記憶手段と、
前記機器から、当該機器にインストールされた機器側プラグインを識別する第２識別情報と、前記機器側プラグインが利用可能であるか否かを示す利用可否情報と、を含む機器側プラグイン一覧情報を取得する取得手段と、
前記記憶手段に記憶された前記プラグイン利用先情報に含まれる前記第１識別情報と、前記取得手段により取得された前記機器側プラグイン一覧情報に含まれる前記第２識別情報とを比較することにより、前記第１識別情報で識別される前記機器側プラグインが前記機器にインストールされているか否かを判別し、インストールされている場合に、インストールされている前記機器側プラグインが利用可能か否かを前記利用可否情報に基づいて判別する判別手段と、
前記判別手段によって利用可能と判別された前記プラグインのみ利用して、前記機器を制御する印刷制御手段と、を備えたこと、
を特徴とする機器制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器制御装置、機器制御プログラム、記憶媒体、及び機器制御システムに関する。
【背景技術】
【０００２】
従来より、プリンタは、機種によって搭載されている機能が異なっている。そして、ユーザの要求の多様化に伴い、プリンタに対して、必要な機能のみ利用できるようにカスタマイズした上で、販売することへのニーズが向上している。このようなニーズに対応するために、各機能をプラグインとして追加できるプリンタが提案されている。当該プリンタに対して機能が追加される場合、当該プリンタを制御するためのプリンタドライバに対しても、追加された機能を使えるように機能拡張する必要がある。
【０００３】
このような機能拡張を行うために、プリンタドライバを再コンパイルし、顧客の環境に再インストールすることは、ユーザの利便性が低下する。そこで、再コンパイレーションや再インストールを行わずに、機能拡張を行う技術として、プラグインとしてプリンタドライバに機能を追加する技術が既に知られている。
【０００４】
このプラグイン技術を用いた場合、プリンタドライバ側が当該プラグインに対応できていないにも拘わらず、インストールできてしまうという問題が生じていた。そこで、特許文献１に記載された技術では、プリンタドライバのバージョンと対応ＰＤＬとを参照して、プラグインを追加可能か否か判断する技術が提案されている。これによりプリンタドライバとプラグインとの間の不整合を抑止することは可能となった。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、引用文献１を含む従来のプラグイン技術では、ＰＣ側にインストールしたプラグインに対応するプリンタ側の本体プラグインが有効になっていない場合、当該プラグインの機能を利用した印刷コマンドが送信できるにもかかわらず、当該印刷コマンドを用いた印刷処理はプリンタでできないという問題が生じていた。この本体プラグインが有効になっていない場合の例としては、プリンタに本体プラグインがインストールされていない場合、プリンタにインストールされた本体プラグインとＰＣにインストールされたプラグインとの間のバージョンが違うため利用できない場合、又は本体プラグインはインストールされているものの利用不可に設定されている場合などがある。
【０００６】
さらに、これらのような状況が生じた場合、利用できないプラグインの機能が設定画面等表示されるため、ユーザに対して、当該プラグインの機能を利用できるという誤解を与えてることにもなる。
【０００７】
本発明は、上記に鑑みてなされたものであって、ＰＣにインストールされたドライバ側のプラグインと、当該ドライバで制御する対象となる機器側の本体プラグインとの間の整合性を合わせることで、利用者に対して機器を利用する時の信頼性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明にかかる機器制御装置は、ネットワークを介して接続された機器にインストールされた機器側プラグインが提供する機能を、利用するためのプラグインと、前記プラグインが利用可能な前記機器側プラグインを識別する第１識別情報を含む、プラグイン利用先情報を記憶する記憶手段と、前記機器から、当該機器にインストールされた機器側プラグインを識別する第２識別情報と、前記機器側プラグインが利用可能であるか否かを示す利用可否情報と、を含む機器側プラグイン一覧情報を取得する取得手段と、前記記憶手段に記憶された前記プラグイン利用先情報に含まれる前記第１識別情報と、前記取得手段により取得された前記機器側プラグイン一覧情報に含まれる前記第２識別情報とを比較することにより、前記第１識別情報で識別される前記機器側プラグインが前記機器にインストールされているか否かを判別し、インストールされている場合に、インストールされている前記機器側プラグインが利用可能か否かを前記利用可否情報に基づいて判別する判別手段と、前記判別手段によって利用可能と判別された前記プラグインのみ利用して、前記機器を制御する印刷制御手段と、を備えたことを特徴とする。
【０００９】
また、本発明にかかる機器制御プログラムは、ネットワークを介して接続された機器が有する機器側プラグインの機能を利用するためのプラグインをインストール可能な、コンピュータで実行される機器制御プログラムであって、前記コンピュータが、前記プラグインが利用可能な前記機器側プラグインを識別する第１識別情報を含む、プラグイン利用先情報を記憶する記憶手段を備え、前記機器から、当該機器にインストールされた機器側プラグインを識別する第２識別情報と、前記機器側プラグインが利用可能であるか否かを示す利用可否情報と、を含む機器側プラグイン一覧情報を取得する取得ステップと、前記記憶手段に記憶された前記プラグイン利用先情報に含まれる前記第１識別情報と、前記取得ステップにより取得された前記機器側プラグイン一覧情報に含まれる前記第２識別情報とを比較することにより、前記第１識別情報で識別される前記機器側プラグインが前記機器にインストールされているか否かを判別し、インストールされている場合に、インストールされている前記機器側プラグインが利用可能か否かを前記利用可否情報に基づいて判別する判別ステップと、前記判別ステップによって利用可能と判別された前記プラグインのみ利用して、前記機器を制御する制御ステップと、を前記コンピュータに実行させるための機器制御プログラムである。
【００１０】
また、本発明にかかる記憶媒体は、上記のプログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
【００１１】
また、本発明にかかる機器制御システムは、機器側プラグインのインストールで機能を追加することが可能な機器と、前記機器とネットワークを介して接続された機器制御装置と、で構成された機器制御システムであって、前記機器は、前記機器制御装置から利用可能なものとしてインストールされた前記機器側プラグインの一覧を示した機器側プラグイン一覧情報を、前記機器制御装置に対して出力する出力手段を備え、前記機器制御装置は、ネットワークを介して接続された機器にインストールされた機器側プラグインが提供する機能を、利用するためのプラグインと、前記プラグインが利用可能な前記機器側プラグインを識別する第１識別情報を含む、プラグイン利用先情報を記憶する記憶手段と、前記機器から、当該機器にインストールされた機器側プラグインを識別する第２識別情報と、前記機器側プラグインが利用可能であるか否かを示す利用可否情報と、を含む機器側プラグイン一覧情報を取得する取得手段と、前記記憶手段に記憶された前記プラグイン利用先情報に含まれる前記第１識別情報と、前記取得手段により取得された前記機器側プラグイン一覧情報に含まれる前記第２識別情報とを比較することにより、前記第１識別情報で識別される前記機器側プラグインが前記機器にインストールされているか否かを判別し、インストールされている場合に、インストールされている前記機器側プラグインが利用可能か否かを前記利用可否情報に基づいて判別する判別手段と、前記判別手段によって利用可能と判別された前記プラグインのみ利用して、前記機器を制御する印刷制御手段と、を備えたこと、を特徴とする。
【発明の効果】
【００１２】
本発明によれば、機器にインストールされた機器側プラグインと、自装置のプラグインとの不整合を抑止し、信頼性を向上させるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施の形態にかかるプリンタ制御システムの構成を示すブロック図である。
【図２】図２は、第１の実施の形態にかかるＰＣの構成を示したブロック図である。
【図３】図３は、第１の実施の形態にかかるプリンタのプラットフォーム情報の例を示した図である。
【図４】図４は、プラグイン一覧情報の例を示した図である。
【図５】図５は、プリンタドライバに追加されているBorderLineプラグインのプラグイン利用先情報を示す図である。
【図６】図６は、プリンタドライバに追加されているStampプラグインのプラグイン利用先情報を示す図である。
【図７】図７は、プリンタドライバに追加されているAdvancedSecurityプラグインのプラグイン利用先情報を示す図である。
【図８】図８は、第１の実施の形態にかかるプリンタの構成を示したブロック図である。
【図９】図９は、BorderLineプラグインの本体プラグイン情報の例を示した図である。
【図１０】図１０は、第１の実施の形態にかかるＰＣにおける、各プラグインの有効／無効の設定処理の手順を示すフローチャートである。
【図１１】図１１は、第１の実施の形態にかかる、コアドライバの設定管理部における、プラットフォーム情報とプラグイン一覧情報との取得処理の手順を示すフローチャートである。
【図１２】図１２は、第１の実施の形態にかかる、各プラグインの設定管理部における、当該プラグインの利用可能か否かの設定処理の手順を示すフローチャートである。
【図１３】図１３は、第１の実施の形態にかかる、各プラグインの画面表示部における、表示処理の手順を示すフローチャートである。
【図１４】図１４は、第１の実施の形態にかかる、コアドライバの画面表示部及び各プラグインの画面表示部により表示された設定画面の例を示した図である。
【図１５】図１５は、 第１の実施の形態にかかる、各プラグインの描画部２２３による描画処理の手順を示すフローチャートである。
【図１６】図１６は、第２の実施の形態のＰＣの構成を示したブロック図である。
【図１７】図１７は、第２の実施の形態にかかる、各プラグインの設定管理部における、当該プラグインの利用可能か否かの設定処理の手順を示すフローチャートである。
【図１８】図１８は、第２の実施の形態にかかる、各プラグインの画面表示部における、表示処理の手順を示すフローチャートである。
【図１９】図１９は、第２の実施の形態にかかる、コアドライバの画面表示部及び各プラグインの画面表示部により表示された設定画面の例を示した図である。
【図２０】図２０は、第２の実施の形態にかかる、各プラグインの描画部による描画処理の手順を示すフローチャートである。
【図２１】図２１は、実施の形態にかかるＰＣのハードウェア構成を示した図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明にかかる機器制御装置、機器制御プログラム、記憶媒体、及び機器制御システムの一実施の形態を詳細に説明する。
【００１５】
（第１の実施の形態）
図１は、第１の実施の形態にかかるプリンタ制御システムの構成を示すブロック図である。図１に示すように、本実施の形態にかかるプリンタ制御システムでは、ネットワーク１６０を介して、ＰＣ１００と、プリンタ１５０と、が接続されているものとする。
【００１６】
ネットワーク１６０は、ＰＣ１００と、プリンタ１５０と、を接続可能なネットワークであればよく、例えばＬＡＮ(Local  Area  Network)などが考えられる。また、ＰＣ１００と、プリンタ１５０と、をＵＳＢ（Universal  Serial  Bus）やシリアルポートで接続してもよい。さらに、ＰＣ１００と、プリンタ１５０と、を公衆ネットワーク回線で接続しても良い。そして、ＰＣ１００は、プリンタ１５０を制御するためのプリンタドライバ１１０を備えている。
【００１７】
そして、本実施の形態にかかるプリンタ制御システムでは、プリンタ１５０に機能を追加したい場合、当該機能のプラグインのインストールにより実現する。そして、プリンタ１５０に対してプラグイン（以下、プリンタ１５０側のプラグインを本体プラグインと称す）をインストールする場合、ＰＣ１００のプリンタ１５０を制御するためのプリンタドライバ１１０に対しても、当該機能に対応するプラグインを追加する必要がある。
【００１８】
このように、本実施の形態においては、プラグインは、プリンタドライバ１１０とプリンタ１５０との各々にインストールする必要がある。このため、プリンタドライバ１１０とプリンタ１５０との間で、ユーザが意図しない差異が生じることもある。この差異の例としては、プリンタドライバ１１０とプリンタ１５０のどちらかにプラグインがインストールされていない、プリンタドライバ１１０とプリンタ１５０とにインストールされたプラグイン間のバージョンが異なる、又は、プリンタ１５０側で当該プラグインによる利用不可設定になっている等がある。
【００１９】
このバージョンが異なる例としては、プリンタ１５０に対応するプリンタドライバは、ネットワークに接続された複数の情報処理装置のＯＳにインストールする必要があるため、プリンタ１５０のプラグインのバージョンアップが行われた場合に、複数の情報処理装置のうちのいずれかについて、プリンタドライバのバージョンアップを忘れてしまう等がある。
【００２０】
また、プリンタ１５０側で当該プラグインによる利用不可設定になる例としては、プリンタ１５０の利用不可設定は、ユーザにより選択可能な環境も考えられるが、当該環境において、ユーザがプラグインの利用を不可能にする操作を行った場合、ＰＣ１００のプリンタドライバ１１０において、対応するプラグインが利用可能なために、不整合が生じる場合がある。
【００２１】
さらには、他の例としては、プリンタ１５０の標準機能の設定や、プリンタ１５０にインストールされた他の本体プラグインの設定の影響により、本体プラグインが利用不可である場合なども考えられる。
【００２２】
具体的には、プリンタ１５０本体で、複数種類の認証機能に関するプラグインが追加されている場合に、より強い認証機能（例えば地紋印刷）のみ利用可能として、もう一方の認証機能（例えばスタンプ印字）を利用不可設定にするのが望ましい場合がある。つまり、プリンタ１５０本体で、地紋のような印刷結果に情報を付加する機能を使う場合に、Ｓｔａｍｐ機能でスタンプ印字してしまうと、地紋により付加された情報が失われてしまう可能性が生じるからである。このような場合にプリンタ１５０側では、スタンプ印字の機能を利用不可能にしているにもかかわらず、ＰＣ１００のプリンタドライバ１１０にインストールされたプラグインでは選択可能になってしまうということも考えられる。
【００２３】
そこで、本実施の形態の印刷制御システムでは、プリンタ１５０の本体プラグインが解釈可能且つ反映可能な場合に限って、対応するプリンタドライバ１１０のプラグインが利用可能となるよう制御を行うこととした。これにより、本実施の形態のＰＣ１００を含む印刷制御システムでは、プリンタ１５０側で本体プラグインが利用できないにも拘わらず、ユーザに対して、プラグインの機能が使えるという誤解を与えることを抑止する。さらに、印刷制御システムでは、ネットワークに接続されたプリンタ１５０及び当該プリンタ１５０による印刷結果に悪影響を与えることを抑止する。
【００２４】
図２は、第１の実施の形態にかかるＰＣ(Personal  Computer)の構成を示したブロック図である。図２に示すように、ＰＣ１００は、通信インターフェイス２０１と、プラグインインストーラ２０２と、プリンタドライバ１１０と、ＯＳ２０４と、アプリケーション２０５と、を備える。
【００２５】
通信インターフェイス２０１は、外部ネットワークと接続するためのインターフェイスとする。これにより、ＰＣ１００は、プリンタ１５０と通信することができる。
【００２６】
アプリケーション２０５は、ユーザが必要とする機能を組み込んだソフトウェアとする。このアプリケーション２０５としては、例えば、文書作成ソフトウェアや、画像作成ソフトウェア、又は表計算ソフトウェアなどとする。また、アプリケーション２０５は、プリンタ１５０に対応する描画データの生成や印刷コマンドの生成などは直接的には行わない。そして、アプリケーション２０５は、印刷を行いたい場合には、印刷の対象に関する情報をＯＳ２０４に受け渡す。
【００２７】
ＯＳ２０４は、ＰＣ１００の制御を行う。例えば、ＯＳ２０４は、アプリケーション２０５から、印刷の対象に関する情報を受け付けた場合に、その情報をプリンタドライバ１１０に受け渡す。これにより、プリンタドライバ１１０で、受け渡された情報から、プリンタ１５０が解釈可能な印刷命令を生成する。
【００２８】
プラグインインストーラ２０２は、プリンタドライバ１１０に対してプラグインをインストール（追加）するコントローラとする。このプラグインインストーラ２０２が追加するプラグインは、プリンタ１５０のプラットフォームに依存して動作するものとする。このため、本実施の形態では、プラグインを利用するために、プリンタ１５０のプラットフォームに対応しているか確認する。
【００２９】
プリンタドライバ１１０は、プリンタドライバとしての標準機能を備えたコアドライバ２１０と、コアドライバに機能を追加するプラグインで構成されたプラグイン群２２０と、を備え、プリンタ（例えば、プリンタ１５０）を制御するドライバとする。
【００３０】
本実施の形態にかかるプリンタドライバ１１０は、複数種類のプリンタに対応したプリンタドライバ１１０とする。当該複数種類のプリンタでは、ＰＤＬが共通するものとする。このため、コアドライバ２１０は、複数種類のプリンタに共通するＰＤＬによる印刷命令（描画データ含む）を生成する。そして、プリンタの種類間の違いは、インストールされたプラグインで吸収する。このため、本実施の形態にかかるＰＣ１００のプリンタドライバ１１０では、プリンタの種類に応じて異なるプラットフォームに応じたプラグインを利用する必要がある。
【００３１】
コアドライバ２１０は、画面表示部２１１と、描画部２１２と、設定管理部２１３と、通信部２１４と、を備え、ＰＤＬに従って、描画データを含む印刷命令を生成する。
【００３２】
そして、本実施の形態においては、コアドライバ２１０に機能を追加するプラグインの集合として、プラグイン群２２０がある。このプラグイン群２２０により、１つのコアドライバ２１０に対して、１又は複数のプラグインが追加されることで、コアドライバ２１０にない様々な機能を提供する。なお、プラグイン群２２０では、初期状態においては、プラグインが０個であってもよい。
【００３３】
通信部２１４は、通信インターフェイス２０１を介して、プリンタ１５０とデータの送受信を行う。そして、通信部２１４は、プリンタ１５０に対して、描画データを含む印刷命令を送信することで、プリンタ１５０による印刷を実現する。
【００３４】
設定管理部２１３は、プリンタドライバ１１０全体の設定を管理する。例えば、設定管理部２１３は、印刷設定の禁則処理や、各種印刷のための設定を行う。また、設定管理部２１３は、双方向通信結果を、印刷設定に対して反映させる。
【００３５】
取得部２１５は、通信部２１４によるプリンタ１５０との通信制御により、プリンタ１５０から、プリンタ１５０のプラットフォーム情報と、本体プラグイン一覧情報と、を取得する。
【００３６】
プラットフォーム情報は、プリンタ１５０に搭載されたプラットフォームを識別する情報とする。図３は、プリンタ１５０のプラットフォーム情報の例を示した図である。図３に示す例では、プラットフォーム情報として、プラットフォームの名称である“PlatformＡ”が含まれている。なお、プリンタ１５０に搭載されたプラットフォームとは、当該プリンタ１５０に搭載されたＯＳ、ファームウェアなど、プリンタ１５０の機種等に応じて異なる情報であればよい。
【００３７】
本体プラグイン一覧情報は、プリンタ１５０にインストールされた本体プラグインを特定するための一覧を示した情報とする。図４は、本体プラグイン一覧情報の例を示した図である。図４に示すように本体プラグイン一覧情報には、プラグイン名と、プラグインのバージョンと、利用可能フラグと、を有している。プラグイン名は、プリンタの本体プラグインの名前とする。利用可能フラグは、当該本体プラグインが利用可能であるか否かを示すフラグとする。このように、本体プラグイン一覧情報には、プリンタ１５０上で動作可能な本体プラグインを識別する情報が含まれている。
【００３８】
図４に示す例では、プリンタ１５０に追加された本体プラグインとして、BorderLineプラグインと、Stampプラグインと、AdvancedSecurityプラグインと、の３種類が追加されたことを示している。プリンタ１５０にインストールされたBorderLineプラグインは、バージョンが２．０であり、利用可能フラグは利用可能に設定されていることを示している。プリンタ１５０にインストールされたStampプラグインは、バージョンが２．０であり、利用可能フラグは利用可能に設定されていることを示している。プリンタ１５０にインストールされたAdvancedSecurityプラグインは、バージョンが１．０であり、利用可能フラグは利用不可に設定されていることを示している。
【００３９】
このように、取得部２１５は、通信部２１４による双方向通信によって、プリンタ１５０本体のプラットフォーム名と、インストールされている本体プラグイン一覧情報と、を取得する。そして、設定管理部２１３が、取得部２１５が取得したプラットフォーム名と、本体プラグイン一覧情報と、を、プラグイン群２２０に含まれている各プラグインの設定管理部２２４に受け渡す。これにより、各プラグインが、プリンタ１５０で対応する機能が利用可能か否かを判別する。
【００４０】
画面表示部２１１は、プリンタドライバ１１０を用いた印刷に関する印刷設定画面を表示する。また、画面表示部２１１は、プラグイン群２２０に含まれる各プラグインの画面表示部２２２を呼び出し、各プラグインに関する表示を行わせる。
【００４１】
描画部２１２は、ＯＳ２０４を介して、アプリケーション２０５から印刷の対象として受け付けた情報を、プリンタ１５０が解釈可能な、描画データを含む印刷命令に変換する。また、描画部２１２は、プラグイン群２２０に含まれる各プラグインの描画部２２３を呼び出し、描画処理を行わせる。ただし、描画部２１２が、各プラグインの描画部２２３を呼び出したとしても、各プラグインの判別部２２６で描画部による描画処理を行わないと判定された場合には、各プラグインによる描画処理は行われない。
【００４２】
プラグイン群２２０は、プリンタドライバ１１０に対してインストールされたプラグインの集合を示している。そして、プラグイン群２２０に含まれる各プラグインは、プリンタ１５０にインストールされた本体プラグインの機能を利用するプラグインとする。本実施の形態においては、BorderLineプラグイン２２１Ａと、Stampプラグイン２２１Ｂと、AdvancedSecurityプラグイン２２１Ｃと、が含まれている。
【００４３】
BorderLineプラグイン２２１Ａは、集約時の罫線の追加機能であり、画面表示部２２２と、描画部２２３と、設定管理部２２４と、プラグイン利用先情報記憶部２２５と、を備えている。
【００４４】
プラグイン利用先情報記憶部２２５は、当該プラグインが利用可能な、プリンタの本体プラグインを識別する情報を含んだ、プラグイン利用先情報を記憶する。プラグイン利用先情報は、プリンタのプラットフォームと、自プラグイン（BorderLineプラグイン２２１Ａ）が利用可能な本体プラグインを識別するプラグイン情報と、を含むものとする。本実施の形態では、自プラグイン（BorderLineプラグイン２２１Ａ）が利用可能な本体プラグインを識別する情報として、本体プラグイン名、及び本体プラグインのバージョンを含むものとする。
【００４５】
図５は、プリンタドライバに追加されているBorderLineプラグイン２２１Ａのプラグイン利用先情報を示す図である。図５に示すプラグイン利用先情報の例では、１行毎に、BorderLineプラグイン２２１Ａが利用可能なプリンタ１５０側の本体プラグインを示している。例えば、１行目は、PlatformＡに追加されたBorderLineプラグインのバージョン２．０が利用可能であることを示している。また、２行目は、PlatformＡに追加されたBorderLineプラグインのバージョン１．０が利用可能であることを示している。また、３行目は、PlatformＢに追加されたEnhancedBorderLineプラグインのバージョン１．０が利用可能であることを示している。
【００４６】
設定管理部２２４は、判別部２２６を備え、プラグイン毎の設定を管理する。例えば、設定管理部２２４は、プラグインに関する、印刷設定の禁則処理や、各種印刷のための設定を行う。
【００４７】
判別部２２６は、プラグイン利用先情報記憶部２２５に記憶されたプラグイン利用先情報と、コアドライバ２１０の設定管理部２１３から受け渡された本体プラグイン一覧情報とプラットフォーム情報と、に基づいて、自プラグイン（例えばBorderLineプラグイン２２１Ａ）が利用可能か否かを判別する。第１の実施の形態では、判別部２２６が判別した結果を、有効／無効フラグに設定する。この有効／無効フラグは、自プラグインが利用可能であるか否かを示すフラグであり、ＰＣ１００上のレジストリ上に格納される。
【００４８】
具体的な処理としては、判別部２２６は、プラグイン情報利用先記憶部２２５に記憶されたプラグイン利用先情報に含まれるプラットフォーム名と、受け取ったプラットフォーム情報とが一致する行があるか否かを判別する。そして、判別部２２６は、本体プラグイン一覧情報に含まれるバージョン情報と、一致するものとしてプラグイン利用先情報から抽出された行に含まれている本体プラグイン名及びバージョン情報が、受け取った本体プラグイン一覧情報に含まれているプラグイン名及びバージョンと一致するか否かを判別する。そして、判別部２２６は、一致すると判別された本体プラグイン一覧情報の行に含まれている利用可能フラグが利用可能であるか否かを判別する。そして、判別部２２６は、利用可能と示されていた場合に、自プラグインが利用可能と判別する。
【００４９】
このように、本実施の形態においては、プラグイン毎に備えている判別部２２６で判別処理を行うこととした。これにより、コアドライバ２１０の構成、処理が簡素化される。そして、プリンタドライバ１１０は、判別部２２６により利用可能と判別されたプラグインのみ利用して、プリンタ１５０を制御する。
【００５０】
画面表示部２２２は、ドライバの設定を行う設定画面を表示する際、コアドライバ２１０の画面表示部２１１から呼び出され、当該プラグインの項目に関する表示を行う。その際、画面表示部２２２は、同じプラグインに含まれている判別部２２６で利用可能と判別された場合、つまり有効／無効フラグが有効と設定されている場合に限って当該プラグインの項目を表示し、利用不可能と判別された場合、つまり有効／無効フラグが無効に設定されている場合に当該プラグインの項目を非表示とする。なお、本実施の形態では無効に設定されている場合に非表示としたが、当該プラグインの項目が選択できなければよく、例えば半輝度表示等でもよい。
【００５１】
そして、本実施の形態では、画面表示部２２２は、当該プラグインの項目を表示する際、設定管理部２２４が管理している各種設定情報を参照した上で、当該プラグインの管理している機能について選択を行うための項目を、設定画面上に表示する。
【００５２】
描画部２２３は、プリンタ１５０に対する印刷命令を生成する際に、コアドライバ２１０の描画部２１２から呼び出され、当該プラグインの機能に基づく描画処理を行う。その際、描画部２２３は、同じプラグインに含まれている判別部２２６で利用可能と判別された場合、つまり有効／無効フラグが有効と設定されている場合に限って当該プラグインの機能による描画処理を行い、利用不可能と判別された場合、つまり有効／無効フラグが無効に設定されている場合に当該プラグインの機能による描画処理を行わない。そして、描画部２２３は、設定管理部２２４が管理している各種設定情報を参照し、コアドライバ２１０の生成する、描画データを含む印刷命令に対して、当該プラグインの描画処理で生成された情報の付加を行ったり、修正を行ったりする。
【００５３】
Stampプラグイン２２１Ｂは、スタンプ付加機能である。また、Stampプラグイン２２１Ｂも、BorderLineプラグイン２２１Ａと同様に、画面表示部２２２と、描画部２２３と、設定管理部２２４と、プラグイン利用先情報記憶部２２５とを備えている。プラグイン利用先情報記憶部２２５以外は、BorderLineプラグイン２２１Ａと同様として説明を省略する。
【００５４】
Stampプラグイン２２１Ｂのプラグイン利用先情報記憶部２２５は、Stampプラグイン２２１Ｂが利用可能な、プリンタの本体プラグインを識別する情報を含んだ、プラグイン利用先情報を、記憶する。図６は、プリンタドライバに追加されているStampプラグイン２２１Ｂのプラグイン利用先情報を示す図である。図６に示すプラグイン利用先情報の例では、１行毎に、Stampプラグイン２２１Ｂが利用可能なプリンタ１５０側の本体プラグインを示している。例えば、１行目は、PlatformＡに追加されたStampプラグインのバージョン１．０が利用可能であることを示している。また、２行目は、PlatformＢに追加されたStampプラグインのバージョン１．０が利用可能であることを示している。
【００５５】
AdvancedSecurityプラグイン２２１Ｃは、ジョブの認証機能である。また、AdvancedSecurityプラグイン２２１Ｃも、BorderLineプラグイン２２１Ａと同様に、画面表示部２２２と、描画部２２３と、設定管理部２２４と、プラグイン利用先情報記憶部２２５とを備えている。プラグイン利用先情報記憶部２２５以外は、BorderLineプラグイン２２１Ａと同様として説明を省略する。
【００５６】
AdvancedSecurityプラグイン２２１Ｃのプラグイン利用先情報記憶部２２５は、AdvancedSecurityプラグイン２２１Ｃが利用可能な、プリンタの本体プラグインを識別する情報を含んだ、プラグイン利用先情報を、記憶する。図７は、プリンタドライバに追加されているAdvancedSecurityプラグイン２２１Ｃのプラグイン利用先情報を示す図である。図７に示すプラグイン利用先情報の例では、１行毎に、AdvancedSecurityプラグイン２２１Ｃが利用可能なプリンタ１５０側の本体プラグインを示している。例えば、１行目は、PlatformＡに追加されたAdvancedSecurityプラグインのバージョン１．０が利用可能であることを示している。また、２行目は、PlatformＢに追加されたAdvancedSecurityプラグインのバージョン２．０が利用可能であることを示している。
【００５７】
図８は、プリンタ１５０の構成を示したブロック図である。図８に示すように、プリンタ１５０は、通信インターフェイス８０１と、情報制御部８０２と、プラットフォーム８０３と、本体プラグイン群８１０と、を備えている。
【００５８】
通信インターフェイス８０１は、外部ネットワークと接続するためのインターフェイスとする。これにより、プリンタ１５０は、ＰＣ１００と通信することができる。例えば、通信インターフェイス８０１は、ＰＣ１００から、印刷命令を受信する。さらに、通信インターフェイス８０１は、ＰＣ１００からの双方向通信要求を受け付け、ファームウェア情報と、本体プラグイン一覧情報と、をＰＣ１００に対して送信する。
【００５９】
プラットフォーム８０３は、プリンタ１５０の印刷に関する標準的な機能を提供する。プラットフォーム８０３は、プリンタの種類等に応じて異なるものとする。また、プラットフォーム８０３は、追加された本体プラグインを利用する（呼び出す）機能を有する。なお、プラットフォームの種類によって追加可能な本体プラグインの種類が異なるものとする。また、プラットフォーム８０３から、情報制御部８０２は、当該プラットフォーム８０３を識別するプラットフォーム名を取得できる。本実施の形態にかかるプラットフォーム名は、PlatformＡとする。
【００６０】
本体プラグイン群８１０は、プリンタ１５０にインストールされた本体プラグインを含む構成とする。本実施の形態にかかる本体プラグイン群８１０は、BorderLine本体プラグイン８１１Ａと、Stamp本体プラグイン８１１Ｂと、AdvancedSecurity本体プラグイン８１１Ｃと、を含む構成とする。
【００６１】
そして、各本体プラグインは、印刷命令に付加した情報を解釈し、当該プラグインの有する機能を印刷結果に反映させる。また、本体プラグインはバージョンを有し、各バージョンによって解釈できる印刷命令が異なる。このため、ＰＣ１００側のプリンタドライバ１１０のプラグインと、プリンタ１５０に追加されている本体プラグインとの間では、種類だけでなくバージョン間の整合性がなければならない。また、本体プラグインは、常に利用可能とは限らず、他からの設定や自装置の設定により、利用不可能となる。
【００６２】
また、各本体プラグインは、本体プラグイン情報８１５を有する。図９は、プリンタ１５０の、BorderLineプラグイン８１５に格納された本体プラグイン情報の例を示した図である。図９に示すように、本体プラグイン情報には、当該プラグインを示すプラグイン名と、当該プラグインのバージョンと、利用可能フラグと、が含まれている。図９に示すように、BorderLineプラグインの本体プラグイン情報では、バージョンが２．０であり、利用可能フラグが利用可能であることを示している。
【００６３】
また、Stampプラグインの本体プラグイン情報では、バージョンが２．０であり、利用可能フラグが利用可能とする。AdvancedSecurityプラグインの本体プラグイン情報では、バージョンが１．０であり、利用可能フラグが利用不可とする。
【００６４】
情報制御部８０２は、通信インターフェイス８０１がＰＣ１００と双方向通信要求を受け付けた際に、プラットフォーム８０３から、プラットフォーム名をプラットフォーム情報として取得する。さらに、情報制御部８０２は、本体プラグイン群８１０に含まれている各本体プラグイン８１１Ａ〜８１１Ｃから、各本体プラグインに含まれている本体プラグイン情報を取得し、取得した本体プラグイン情報から本体プラグイン一覧情報を生成する。そして、情報制御部８０２が取得したプラットフォーム情報、及び生成した本体プラグイン一覧情報は、通信インターフェイス８０１により、双方向通信要求をしたＰＣ１００に対して送信される。
【００６５】
次に、本実施の形態にかかるＰＣ１００における、各プラグインの有効／無効の設定処理について説明する。図１０は、本実施の形態にかかるＰＣ１００における上述した処理の手順を示すフローチャートである。
【００６６】
本実施の形態にかかるＰＣ１００の各プラグインの有効／無効の設定は、ＰＣ１００にドライバがインストールされた時や、印刷先のポートを切り替える時とする。このように印刷するプリンタの切り替えと考えられるタイミングで設定を行うこととした。これにより、ＰＣ１００がモバイル機器である場合に、接続先のプリンタに応じた利用が可能となる。
【００６７】
また、ＰＣ１００に対して、プリンタドライバ１１０のプラグインが追加された時も、図１０に示す各プラグインの有効／無効の設定を行う。さらに、プリンタドライバ１１０の設定画面を表示する際に、有効／無効の設定を行っても良い。これにより、プリンタ１５０に新たに本体側プラグインが追加された場合や、プリンタ１５０の本体側プラグインの有効／無効が切り替えられた場合等に迅速に対応することができる。
【００６８】
まず、コアドライバ２１０の取得部２１５が、プリンタ１５０との双方向通信により、接続先プリンタのプラットフォーム情報と、本体プラグイン一覧情報と、を取得する（ステップＳ１００１）。そして、取得部２１５が取得したプラットフォーム情報と、本体プラグイン一覧情報とは、インストールされている各プラグインに受け渡される。
【００６９】
そして、プラグインでは、受け渡されたプラットフォーム情報と本体プラグイン一覧情報とに基づいて、利用可能か否か示す設定を行う（ステップＳ１００２）。本実施の形態では、利用可能か否かを示す設定として、プラグイン毎に有効／無効フラグを設定する。
【００７０】
そして、設定管理部２１３が、全てのプラグインで利用可能か否かを示す設定が終了したか判別する（ステップＳ１００３）。終了していない場合（ステップＳ１００３：Ｎｏ）、ステップＳ１００２の処理を全てのプラグインで終了するまで待機する。
【００７１】
そして、設定管理部２１３は、全てのプラグインで利用可能か否かを示す設定が終了したと判別した場合（ステップＳ１００３：Ｙｅｓ）、処理を終了する。
【００７２】
上述した処理手順で、各プラグインの有効／無効フラグの設定がなされることとなる。次に、図１０の各ステップの具体的な処理について説明する。
【００７３】
次に、図１０のステップＳ１００１で示した、コアドライバ２１０の設定管理部２１３におけるプラットフォーム情報と本体プラグイン一覧情報との取得処理について説明する。図１１は、本実施の形態にかかる設定管理部２１３における上述した処理の手順を示すフローチャートである。
【００７４】
まず、設定管理部２１３は、接続先のプリンタ１５０との間で双方向通信を開始する（ステップＳ１１０１）。そして、設定管理部２１３内の取得部２１５が、双方向通信中に、プリンタ１５０から、プラットフォーム情報を取得する（ステップＳ１１０２）。
【００７５】
さらに、取得部２１５は、プリンタ１５０から、本体プラグイン一覧情報を取得する（ステップＳ１１０３）。その後、設定管理部２１３が、プリンタ１５０との間の双方向通信を終了する（ステップＳ１１０４）。
【００７６】
その後、設定管理部２１３が、プラットフォーム情報と、本体プラグイン一覧情報と、をインストールされている全てのプラグインに対して受け渡す（ステップＳ１１０５）。
【００７７】
上述した処理手順の後、各プラグインによる設定が行われる。次に、本実施の形態にかかるプラグインの設定管理部２２４における、当該プラグインの利用可能か否かの設定処理について説明する。図１２は、本実施の形態にかかる各プラグインの設定管理部２２４における上述した処理の手順を示すフローチャートである。なお、全てのプラグインで図１２に示す処理を行い、プラグイン毎に、利用可能か否かの設定が行われるものとする。
【００７８】
まず、プラグインの設定管理部２２４は、プラットフォーム情報と、本体プラグイン一覧情報と、を受け取る（ステップＳ１２０１）。そして、設定管理部２２４内の判別部２２６は、プラグイン利用先情報記憶部２２５に記憶されたプラグイン利用先情報に含まれているプラットフォーム名が、受け取ったプラットフォーム情報と一致する行があるか否か判別する（ステップＳ１２０２）。一致する行がないと判別した場合（ステップＳ１２０２：Ｎｏ）、当該プラグインの有効／無効フラグを無効に設定して処理を終了する（ステップＳ１２０８）。
【００７９】
一方、判別部２２６が、一致する行があると判別した場合（ステップＳ１２０２：Ｙｅｓ）、プラグイン利用先情報から、プラットフォーム名が一致した行を抽出する（ステップＳ１２０３）。
【００８０】
その後、判別部２２６が、抽出した行と、本体プラグイン一覧情報との間で本体側プラグイン名及びバージョンが一致する行があるか否か判別する（ステップＳ１２０４）、一致する行がないと判別した場合（ステップＳ１２０４：Ｎｏ）、当該プラグインの有効／無効フラグを無効に設定して処理を終了する（ステップＳ１２０８）。
【００８１】
一方、判別部２２６が、本体側プラグイン名及びバージョンが一致する行があると判別した場合（ステップＳ１２０４：Ｙｅｓ）、一致した行を本体プラグイン一覧情報から抽出する（ステップＳ１２０５）。
【００８２】
そして、判別部２２６は、抽出した行の利用可能フラグが“Enable”か否か判別する（ステップＳ１２０６）。そして、“Enable”ではない、つまり“Disable”と判別した場合（ステップＳ１２０６：Ｎｏ）、当該プラグインの有効／無効フラグを無効に設定して処理を終了する（ステップＳ１２０８）。
【００８３】
一方、判別部２２６が、抽出した行の利用可能フラグが“Enable”と判別した場合（ステップＳ１２０６：Ｙｅｓ）、当該プラグインの有効／無効フラグを有効に設定して処理を終了する（ステップＳ１２０７）。
【００８４】
上述した処理手順により、有効／無効フラグが設定される。この有効／無効フラグは、設定画面を表示する際、又は印刷命令に基づく描画処理を行う際に、参照される。
【００８５】
次に、本実施の形態の各プラグインにおける、上述した処理手順で設定される有効／無効フラグについて説明する。BorderLineプラグイン２２１Ａの場合、BorderLineプラグイン２２１Ａの判別部２２６は、判別処理により、図５に示されるプラグイン利用先情報から、図３のプラグイン情報で示されたPlatformＡが記載されている１行目と２行目とを、ステップＳ１２０３において抽出する。その後、判別部２２６は、抽出された１行目が、図４の本体プラグイン一覧情報の１行目と一致すると判定する。このため、判別部２２６は、本体プラグイン一覧情報から１行目を抽出する。この抽出された行が“Enable”のため、BorderLineプラグインの設定管理部２２４は、有効/無効フラグを有効と設定する。
【００８６】
次に、Stampプラグイン２２１Ｂの場合、Stampプラグイン２２１Ｂの判別部２２６は、判別処理により、図６に示されるプラグイン利用先情報から、図３のプラグイン情報で示されたPlatformＡが記載されている１行目を、ステップＳ１２０３において抽出する。その後、判別部２２６は、抽出された１行目が、図４の本体プラグイン一覧情報と一致する行がないと判別する。このため、Stampプラグイン２２１Ｂの設定管理部２２４は、有効/無効フラグを無効と設定する。
【００８７】
次に、AdvancedSecurityプラグイン２２１Ｃの場合、AdvancedSecurityプラグイン２２１Ｃの判別部２２６は、判別処理により、図７に示されるプラグイン利用先情報から、図３のプラグイン情報で示されたPlatformＡが記載されている１行目を、ステップＳ１２０３において抽出する。その後、判別部２２６は、抽出された１行目が、図４の本体プラグイン一覧情報の３行目と一致すると判別する。このため、判別部２２６は、本体プラグイン一覧情報から３行目を抽出する。この抽出された行が“Disable”のため、AdvancedSecurityプラグイン２２１Ｃの設定管理部２２４は、有効/無効フラグを無効と設定する。
【００８８】
このように、本実施の形態においては、プリンタドライバ１１０は、BorderLineプラグインの機能のみ利用可能となる。
【００８９】
本実施の形態にかかる各プラグインの画面表示部２２２による表示処理について説明する。図１３は、本実施の形態にかかる各プラグインの画面表示部２２２における上述した処理の手順を示すフローチャートである。図１３に示す処理手順では、すでにコアドライバ２１０の画面表示部２１１による画面表示処理が開始されており、当該画面表示部２１１から呼び出されたものとする。このコアドライバ２１０の画面表示部２１１からの呼び出しは、全てのプラグインの画面表示部２１１に対して行われるものとする。
【００９０】
まず、各プラグインの画面表示部２２２は、コアドライバ２１０の画面表示部２１１から、表示命令を受け付ける（ステップＳ１３０１）。次に、画面表示部２２２は、設定管理部２２４を介して、レジストリに登録されていた有効／無効フラグを取得する（ステップＳ１３０２）。
【００９１】
そして、画面表示部２２２は、取得した有効／無効フラグが“有効”か否か判別する（ステップＳ１３０３）。そして、画面表示部２２２が“有効”ではない（“無効”である）と判別した場合（ステップＳ１３０３：Ｎｏ）、表示は行わないものとして処理を終了する。
【００９２】
一方、画面表示部２２２が有効／無効フラグが“有効”であると判別した場合（ステップＳ１３０３：Ｙｅｓ）、設定管理部２２４を介して、レジストリやＤＥＶＭＯＤＥに格納されている各種設定の状態を示す情報を取得する（ステップＳ１３０４）。
【００９３】
その後、画面表示部２２２が、取得した各種設定の状態に従って、自プラグインに対応する各項目の設定を表示する（ステップＳ１３０５）。なお、画面表示部２２２は、表示する項目が、禁則状態である場合は、半輝度固定値で表示する。
【００９４】
上述した処理手順により、プリンタドライバ１１０の設定画面で、各プラグインに対応する項目が表示される。
【００９５】
図１４は、コアドライバ２１０の画面表示部２１１及び各プラグインの画面表示部２２２により表示された設定画面の例を示した図である。図１４に示す設定画面では、コアドライバ２１０の標準機能として、Layout、Paper Size、Booklet、Copies、及びUseridが表示される。そして、図１４は、ＰＣ１００において、BorderLineプラグイン２２１Ａの判別部２２６のみが有効と判定された例とする。このため、設定画面では、標準機能以外の項目としてBorderLineのチェックボックス１４０１のみが表示されている。
【００９６】
このように、第１の実施の形態にかかるＰＣ１００のプリンタドライバ１１０では、プリンタドライバ１１０に追加されているプラグインと、プリンタ１５０に追加されている本体プラグインとの間で整合性を検証し、整合性が取れないプラグインに関する項目は設定画面に表示されないようにしている。これにより、ユーザに利用できない項目を認識することを抑止し、当該項目に関する操作を抑止することができる。
【００９７】
次に、本実施の形態にかかる各プラグインの描画部２２３による描画処理について説明する。図１５は、本実施の形態にかかる各プラグインの描画部２２３における上述した処理の手順を示すフローチャートである。図１５に示す処理手順では、すでにコアドライバ２１０の描画部２１２による描画処理が開始されており、当該描画部２１２から呼び出されたものとする。このコアドライバ２１０の描画部２１２からの呼び出しは、全てのプラグインの描画部２２３に対して行われるものとする。そして、呼び出される際に、描画データを含む印刷命令の受け渡しも行われる。
【００９８】
まず、各プラグインの描画部２２３は、コアドライバ２１０の描画部２１２から、描画命令を受け付ける（ステップＳ１５０１）。次に、描画部２２３は、設定管理部２２４を介して、レジストリに登録されていた有効／無効フラグを取得する（ステップＳ１５０２）。
【００９９】
そして、描画部２２３は、取得した有効／無効フラグが“有効”か否か判別する（ステップＳ１５０３）。そして、描画部２２３が“有効”ではない（“無効”である）と判別した場合（ステップＳ１５０３：Ｎｏ）、描画処理は行わず、受け取った印刷命令をコアドライバ２１０の描画部２１２に返して処理を終了する。
【０１００】
一方、描画部２２３が有効／無効フラグが“有効”であると判別した場合（ステップＳ１５０３：Ｙｅｓ）、設定管理部２２４を介して、レジストリやＤＥＶＭＯＤＥに格納されている各種設定の状態を示す情報を取得する（ステップＳ１５０４）。なお、各種設定の状態とは、設定値や選択肢の種類や禁則状態であるか等とする。
【０１０１】
その後、描画部２２３が、取得した各種設定の状態に従って、自プラグインに対応する描画処理を行い、受け取った印刷命令に対して追加、変更等を行う（ステップＳ１５０５）。
【０１０２】
本実施の形態においては、上述した処理手順により、有効なプラグインによる描画処理が行われる。このようにして、ＰＣ１００のプリンタドライバ１１０では、プリンタ１５０が利用可能な本体プラグインに対応するプラグインのみ用いて、印刷命令を生成することができる。
【０１０３】
なお、本実施の形態においては、各プラグインの判別部２２６は、プラグイン名とバージョンとが一致する他に、受け取ったプラグイン情報と、プラグイン利用先情報に含まれているプラットフォーム名と、が一致する場合に利用可能と判断した。しかしながら、プラグイン情報とプラットフォーム名と一致することを必要条件とするものではなく、判別部２２６が、（プラグイン名やバージョンなどの）プラグイン情報のみが一致しただけで、当該プラグインを利用可能と判断しても良い。
【０１０４】
このように、本実施の形態にかかる印刷制御システムでは、プリンタ１５０にインストールされた本体プラグインと、ＰＣ１００のプラグインとの不整合を抑止することで、印刷時の信頼性を向上させることができる。
【０１０５】
このように、本実施の形態にかかる印刷制御システムでは、上述した構成を備えることで、プリンタドライバのプラグインが利用できない場合に設定画面からの表示を抑止することで、ユーザに当該プラグインの機能を利用できないことを認識させることができる。さらに、当該プラグインの機能による描画処理を抑止することで、プリンタ１５０及び印刷結果に対する悪影響を抑止する。
【０１０６】
（第１の実施の形態の変形例）
上述した実施の形態では、コアドライバが複数種類のプリンタ間で共通する例について説明した。しかしながら、コアドライバが、複数種類のプリンタで共通する場合に制限するものではない。例えば、コアドライバが、プリンタの種類毎の作成されたものでも良い。そこで、第１の実施の形態の変形例では、プリンタドライバが、プリンタの種類毎に用意する例とする。本変形例では、プリンタドライバは、接続するプリンタの種類に応じてインストールされる。そして、プラグインは、当該プリンタドライバで利用可能なもの、つまりプリンタの種類に対応したもののみインストールされる。
【０１０７】
このため、変形例では、プリンタドライバが、プリンタの種類毎に作成されたものなので、プラグインを利用する際に、プリンタのファームウェアの判別を行う必要はない。しかしながら、プラグインのバージョン等で不整合が生じる可能性はある。そこで、プリンタドライバのプラグインに含まれる判別部が、プリンタドライバのプラグインと、プリンタの本体プラグインと、の間のバージョンを確認して、利用可能であるか否かを判別する。この判別結果により、当該プラグインに関する項目の非表示や、当該プラグインを用いた描画処理を抑止できる。これにより、第１の実施の形態と同様の効果を得ることができる。
【０１０８】
（第２の実施の形態）
第１の実施の形態では、プラグインが利用できない場合に、非表示とする例について説明した。しかしながら、非表示することに制限するものではなく、プラグインが利用できない場合に、当該プラグインについて利用できない設定を行った上で、禁則状態として対応しても良い。そこで、第２の実施の形態は、プラグインが利用できない場合に、禁則状態として対応する例について説明する。
【０１０９】
図１６は、第２の実施の形態のＰＣ１６００の構成を示したブロック図である。図１６に示すようにＰＣ１６００は、第１の実施の形態のＰＣ１００と比べて、プリンタドライバ１１０が、プリンタドライバ１６１０に変更された点が異なる。なお、第１の実施の形態と同様の構成については、同一符号を付し説明を省略する。
【０１１０】
プリンタドライバ１６１０は、第１の実施の形態のプリンタドライバ１１０と比べて、プラグイン群２２０が、プラグイン群１６２０に変更されたものとする。
【０１１１】
このプラグイン群１６２０に含まれている各プラグイン１６２１Ａ〜１６２１Ｃは、第１の実施の形態のプラグイン２２１Ａ〜２２１Ｃと比べて、画面表示部１６２２と、描画部１６２３と、設定管理部１６２４の判別部１６２６とが、第１の実施の形態の画面表示部２２２と、描画部２２３と、設定管理部２２４の判別部２２６と、比べて処理が異なる。さらに、第２の実施の形態の処理では、第１の実施の形態と比べて、有効／無効フラグを用いない点が主な違いとなる。
【０１１２】
つまり、第１の実施の形態にかかる設定管理部２２４の判別部２２６は自プラグインが利用できないと判別した場合に、有効／無効フラグを無効と設定していたが、第２の実施の形態の設定管理部１６２４の判別部１６２６は、自プラグインが利用できないと判別した場合に、当該プラグインを利用するための項目について無効値を設定し、禁則状態を設定する。
【０１１３】
これにより、画面表示部１６２２は、判別部１６２６の設定に従って、利用できないプラグインの項目について、無効値を示した上で、禁則状態で表示する。さらに、描画部１６２３は、設定に従って描画処理を行う。その際、利用できない機能について無効値が設定されているため、何ら処理が行われない。
【０１１４】
次に、第２の実施の形態にかかるＰＣ１６００の処理手順について説明する。第２の実施の形態においても、第１の実施の形態の図１０と同様に、コアドライバ２１０の取得部２１５が、プリンタ１５０との双方向通信により、接続先プリンタのプラットフォーム情報と、本体プラグイン一覧情報と、を取得し、プラグインで、これらプラットフォーム情報と本体プラグイン一覧情報とによる利用可能であるか否かの設定が行われる。この利用可能であるか設定の詳細な手順が、第１の実施の形態と異なる。
【０１１５】
そこで、第２の実施の形態にかかる設定管理部１６２４による利用可能か否かの設定手順について説明する。図１７は、本実施の形態にかかる各プラグインの設定管理部１６２４における上述した処理の手順を示すフローチャートである。なお、全てのプラグインで図１７に示す処理を行い、プラグイン毎に、利用可能か否かの設定が行われるものとする。
【０１１６】
まず、第１の実施の形態のステップＳ１２０１〜Ｓ１２０６と同様の手順で、設定管理部１６２４の判別部１６２６による、抽出した行の利用可能フラグが“Enable”か否かの判別まで行われる（ステップＳ１７０１〜Ｓ１７０２、ステップＳ１７０４〜１７０７）。そして判別部１６２６が、抽出する行がないと判別した場合（ステップＳ１７０２：Ｎｏ、ステップＳ１７０５：Ｎｏ）、またはステップＳ１７０７で“Enable”ではない、つまり“Disable”と判別した場合（ステップＳ１７０７：Ｎｏ）、当該プラグインの利用有無に関する項目について、すべて無効値を設定し、禁則状態とする設定を行う（ステップＳ１７０３）。
【０１１７】
一方、判別部１６２６が、抽出した行の利用可能フラグが“Enable”と判別した場合（ステップＳ１７０７：Ｙｅｓ）、特に処理を行わずに終了する。
【０１１８】
上述した処理手順により、利用できないプラグインの各項目について無効値が設定されてるとともに禁則状態にされる。
【０１１９】
本実施の形態にかかる各プラグインの画面表示部２２２による表示処理について説明する。図１８は、本実施の形態にかかる各プラグインの画面表示部１６２２における上述した処理の手順を示すフローチャートである。
【０１２０】
まず、各プラグインの画面表示部１６２２は、コアドライバ２１０の画面表示部２１１から、表示命令を受け付ける（ステップＳ１８０１）。次に、画面表示部１６２２は、設定管理部１６２４を介して、レジストリやＤＥＶＭＯＤＥに格納されている各種設定の状態を示す情報を取得する（ステップＳ１８０２）。この取得する各種設定の状態に中には、図１７で設定された無効値や、禁則状態なども含まれている。
【０１２１】
その後、画面表示部１６２２が、取得した各種設定の状態に従って、自プラグインに対応する各項目の設定を表示する（ステップＳ１８０３）。なお、画面表示部１６２２は、表示する項目が、禁則状態である場合は、半輝度固定値で表示する。
【０１２２】
上述した処理手順により、プリンタドライバ１１０の設定画面で、各プラグインに対応する項目が表示される。その際、図１７の判別部１６２６で利用できないと判別されたプラグインについては、無効値が設定された上、禁則状態で表示される。
【０１２３】
図１９は、コアドライバ２１０の画面表示部２１１及び各プラグインの画面表示部１６２２により表示された設定画面の例を示した図である。図１９に示す設定画面では、コアドライバ２１０の標準機能として、Layout、Paper  Size、Booklet、Copies、及びUseridが表示される。
【０１２４】
そして、図１９は、ＰＣ１６００において、BorderLineプラグイン１６２１Ａの判別部１６２６のみが利用可能と判別されているため、BorderLineプラグイン１６２１Ａの画面表示部１６２２が、BorderLineのチェックボックス１９０１を設定可能な状態で表示する。
【０１２５】
プラグインStampに関する設定として、Stampのチェックボックス１９０２と、Stamp  Typeのリストボックスとがある。Stampのチェックボックスは、Stamp機能を利用するか否かを設定する。Stamp  Typeのリストボックスは、Stamp機能の種類を設定する。また、AdvancedSecurityプラグインに関して、Advanced  Securityのチェックボックス１９０３と、Advanced  Passwordのエディットボックスとがある。Advanced  Securityのチェックボックスは、Job認証機能を使用する否かを設定する。また、Advanced  Passwordのエディットボックスは、Job認証機能を用いるときのPasswordである。
【０１２６】
そして、各プラグインの判別部１６２６が、StampプラグインとAdvancedSecurityプラグインを利用しないと判別した。このため、各プラグインの画面表示部１６２２は、Stampプラグインのチェックボックス１９０２と、AdvancedSecurityプラグインのチェックボックス１９０３と、をチェックせず、禁則状態として半輝度状態で表示する。また、AdvancedSecurity のAdvanced Passwordは、空欄で、半輝度で表示される。
【０１２７】
このように、第２の実施の形態にかかるＰＣ１６００のプリンタドライバ１６１０では、プリンタドライバ１６１０に追加されているプラグインと、プリンタ１５０に追加されている本体プラグインとの間で整合性を検証し、整合性が取れないプラグインに関する項目は設定画面で無効値が設定された上で半輝度状態で表示されることにより、ユーザに利用できない項目について設定できないことを認識させ、当該項目に関する操作を抑止することができる。
【０１２８】
次に、本実施の形態にかかる各プラグインの描画部１６２３による描画処理について説明する。図２０は、本実施の形態にかかる各プラグインの描画部１６２３における上述した処理の手順を示すフローチャートである。図２０に示す処理手順では、すでにコアドライバ２１０の描画部２１２による描画処理が開始されており、当該描画部２１２から呼び出されたものとする。
【０１２９】
まず、各プラグインの描画部１６２３は、コアドライバ２１０の描画部２１２から、描画命令を受け付ける（ステップＳ２００１）。
【０１３０】
その後、描画部１６２３は、設定管理部１６２４を介して、レジストリやＤＥＶＭＯＤＥに格納されている各種設定の状態を示す情報を取得する（ステップＳ２００２）。なお、各種設定の状態とは、設定値や選択肢の種類や禁則状態であるか等とする。
【０１３１】
その後、描画部１６２３が、取得した各種設定の状態に従って、自プラグインに対応する描画処理を行い、受け取った印刷命令に対して追加、変更等を行う（ステップＳ２００３）。この際、自プラグインが利用できない場合については、利用するか否かを示す項目に無効値が設定されているため、特に描画処理は行われないこととなる。
【０１３２】
上述したように第２の実施の形態にかかるＰＣ１６００は、プラグインの各機能が利用できない場合に、機能に関する設定について禁則情報を付加することとした。これにより、プラグインが利用できない場合に、禁則状態として半輝度で表示されるので、利用者の操作を抑止する。
【０１３３】
（変形例）
上述した実施の形態では、プリンタドライバの例について説明した。しかしながら、上述した処理は、プリンタドライバに適用することに制限するものではなく、他のドライバに対して適用しても良い。例えば、ＰＣとネットワークを介して接続されているネットワークスキャナとで構成されたシステムに対して適用しても良い。つまり、ＰＣにインストールされたドライバと、当該ドライバで制御される機器と、を用いたシステムであって、ＰＣと機器との両方にドライバをインストールすることで機能を拡張できるシステムであれば、上述した実施の形態の構成及び処理を適用できる。
【０１３４】
図２１は、上述した実施の形態にかかるＰＣ１００、１６００のハードウェア構成を示した図である。上述した実施の形態のＰＣ１００、１６００は、ＣＰＵ２１０１と、ＲＯＭ（Read  Only  Memory）２１０２やＲＡＭ２１０３と、ディスプレイ装置などの表示装置２１０５と、通信Ｉ／Ｆ２１０４と、これらを接続するバス２１０６と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１３５】
上述した実施の形態にかかるＰＣ１００、１６００で実行されるプリンタドライバ、及び当該プリンタドライバのプラグインは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１３６】
また、上述した実施の形態にかかるＰＣ１００、１６００で実行されるプリンタドライバ、及び当該プリンタドライバのプラグインを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した実施の形態にかかるＰＣ１００、１６００で実行されるプリンタドライバ、及び当該プリンタドライバのプラグインをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１３７】
また、上述した実施の形態にかかるＰＣ１００、１６００を、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１３８】
本実施の形態にかかるＰＣ１００、１６００で実行されるプリンタドライバ、及び当該プリンタドライバのプラグインは、上述した各部（コアドライバ、プラグイン群）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からプリンタドライバ、及び当該プリンタドライバのプラグインを読み出して実行することにより上記各部が主記憶装置上にロードされ、コアドライバ、プラグイン群が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１３９】
１００、１６００  ＰＣ
１１０、１６１０  プリンタドライバ
１５０  プリンタ
１６０  ネットワーク
２０１  通信インターフェイス
２０２  プラグインインストーラ
２０４  ＯＳ
２０５  アプリケーション
２１０  コアドライバ
２１１  画面表示部
２１２  描画部
２１３  設定管理部
２１４  通信部
２１５  取得部
２２０、１６２０  プラグイン群
２２１Ａ〜２２１Ｃ、１６２１Ａ〜１６２１Ｃ  プラグイン
２２２、１６２２  画面表示部
２２３、１６２３  描画部
２２４、１６２４  設定管理部
２２５  プラグイン利用先情報記憶部
２２６、１６２６  判別部
８０１  通信インターフェイス
８０２  情報制御部
８０３  プラットフォーム
８１０  本体プラグイン群
８１１Ａ〜８１１Ｃ  本体プラグイン
８１５  本体プラグイン情報
【先行技術文献】
【特許文献】
【０１４０】
【特許文献１】特開２００５−１７３７０１号公報
【図１】
0005589574.tif 000002
【図２】
0005589574.tif 000003
【図３】
0005589574.tif 000004
【図４】
0005589574.tif 000005
【図５】
0005589574.tif 000006
【図６】
0005589574.tif 000007
【図７】
0005589574.tif 000008
【図８】
0005589574.tif 000009
【図９】
0005589574.tif 000010
【図１０】
0005589574.tif 000011
【図１１】
0005589574.tif 000012
【図１２】
0005589574.tif 000013
【図１３】
0005589574.tif 000014
【図１４】
0005589574.tif 000015
【図１５】
0005589574.tif 000016
【図１６】
0005589574.tif 000017
【図１７】
0005589574.tif 000018
【図１８】
0005589574.tif 000019
【図１９】
0005589574.tif 000020
【図２０】
0005589574.tif 000021
【図２１】
0005589574.tif 000022