以下、実施形態について図面を用いて説明する。
(第1の実施形態)
図1は、画像形成システムの構成の一例を示す図である。画像形成システムは、画像形成装置101、102をはじめとする複数の画像形成装置と、情報処理端末103、104と、サーバ105とを有する。これらは、ネットワーク106を介して相互に接続されて、相互に通信可能な状態である。画像形成装置101、102をはじめとする複数の画像形成装置は、同じ構成で実現することができる。そこで、以下、複数の画像形成装置を代表して画像形成装置101について説明を行い、その他の画像形成装置の詳細な説明を省略する。。尚、ここでいうネットワーク106は、LAN(Local Area Network)やInternet等、画像形成システム内の装置が相互に通信できる方式であれば、どのようなものであってもよい。
画像形成装置101は、例えば、情報処理端末103、104からの画像データの印刷依頼を受信して画像を印刷することや、自装置内のスキャナを用いて画像を読み取ることや、読み取った画像を印刷することが可能である。また、画像形成装置101は、情報処理端末103、104から受信した印刷データを保存することや、自装置内のスキャナで読み取った画像を情報処理端末103、104に送信することが可能である。更に、画像形成装置101は、サーバ105を用いて画像処理を行うことや、サーバ105に格納されている文書に対して印刷を行うことが可能である。その他、画像形成装置101は、例えば、MFP(Multifunction Peripheral)が有する公知の機能を実現することができる。尚、画像形成装置101は、コピー機能等の画像を形成する機能を有する装置であれば、MFPに限定されない。
図2は、画像形成装置101の構成の一例を示す図である。
画像形成装置101は、コントローラ201、プリンタ202、スキャナ203、および操作部204を有する。コントローラ201は、CPU211、RAM212、HDD213、ネットワークI/F214、プリンタI/F215、スキャナI/F216、操作部I/F217、および拡張I/F218を有する。CPU211は、RAM212、HDD213、ネットワークI/F214、プリンタI/F215、スキャナI/F216、操作部I/F217、および拡張I/F218とデータを授受することが可能である。また、CPU211は、HDD213から読み出した命令をRAM212に展開し、RAM212に記憶されている命令を実行する。
HDD213には、CPU211で実行可能な命令、画像形成装置101で使用する設定値、ユーザから依頼された処理に関するデータ等を記憶しておくことが可能である。RAM212は、CPU211がHDD213から読み出した命令を一時的に格納するための領域であり、命令の実行に必要な各種のデータを記憶しておくことが可能である。
ネットワークI/F214は、画像形成システム内の装置とネットワーク通信を行うためのI/F(インターフェース)である。ネットワークI/F214は、データ受信を行ったことをCPU211に伝達することや、RAM212上のデータをネットワーク106に送信することが可能である。プリンタI/F215は、CPU211から送信された印刷データをプリンタ202に送信することや、プリンタ202から受信したプリンタの状態をCPU211に伝達することが可能なI/Fである。スキャナI/F216は、CPU211から送信された画像読み取り指示をスキャナ203に送信しスキャナ203から受信した画像データをCPU211に伝達することや、スキャナ203から受信した状態をCPU211に伝達することが可能なI/Fである。
操作部I/F217は、操作部204から入力されたユーザからの指示をCPU211に伝達することや、ユーザが操作するための画面情報を操作部204に伝達することが可能なI/Fである。拡張I/F218は、画像形成装置101に外部機器を接続することを可能とするI/Fである。拡張I/F218は、例えば、USB(Universal Serial Bus)形式のI/Fを具備する。この場合、拡張I/F218は、USBメモリ等の外部記憶装置と接続され、外部記憶装置に対してデータの読み取り・書き込みを行うことが可能である。
プリンタ202は、プリンタI/F215から受信した画像データを用紙に印刷することや、プリンタ202の状態をプリンタI/F215に伝達することが可能である。スキャナ203は、スキャナI/F216から受信した画像読み取り指示に従って、スキャナ203に置かれた用紙を読み取りデジタル化してスキャナI/F216に伝達することや、スキャナ203の状態をスキャナI/F216に伝達することが可能である。操作部204は、画像形成装置101に対する操作をユーザに行わせるためのI/Fである。操作部204は、例えば、タッチパネルを有する液晶画面を具備し、液晶画面に操作画面を表示することによりユーザに操作画面を提供すると共に、この液晶画面に対するユーザによる操作を受け付ける。
図3は、画像形成装置101のHDD213に記憶されたプログラムに係るソフトウェアの構造の一例を示す模式的な階層図である。尚、HDD213に記憶されたプログラムは、CPU211によって処理される。また、図3において、一部の例外を除いて、下位の階層が提供するサービスを上位の階層が利用する関係になっている。
図3において最下層は、オペレーティングシステム316であり、プログラムの実行の管理やメモリの管理等を行うための階層である。オペレーティングシステム316の中には、プリンタ制御ドライバ317、スキャナ制御ドライバ318、およびネットワークI/F制御ドライバ319が組み込まれる。オペレーティングシステム316は、これらが連携することにより機能する。プリンタ制御ドライバ317は、プリンタI/F215を介してプリンタ202を制御するためのソフトウェアである。スキャナ制御ドライバ318は、スキャナI/F216を介してスキャナ203を制御するためのソフトウェアである。ネットワークI/F制御ドライバ319は、ネットワークI/F214を制御するためのソフトウェアである。
最下層から2段目の層であるデバイス制御ライブラリ309は、後述の単独機能プラグインアプリケーション302またはデバイス制御アプリケーション304と静的あるいは動的にリンクされる。更にデバイス制御ライブラリ309は、各アプリケーションプログラムによる指示に応じて、オペレーティングシステム316を制御する。また、各デバイス制御ライブラリ309は、プラグイン接続ライブラリ314および画像処理ライブラリ315に対して画像処理を依頼する。画像処理を依頼する一連のフローの一例については後述する。
次に、デバイス制御ライブラリ309の制御の一例について説明する。
プリントライブラリ310は、プリンタ制御ドライバ317の機能を利用してプリントジョブの制御を行うためのAPI(Application Programming Interface)を提供するライブラリである。ここでのプリントジョブとは、画像形成装置101のHDD213に保存されている印刷データを印刷することや、ネットワークI/F214を通して情報処理端末103、104から受信した印刷データを印刷するといった一連の処理を表す。
コピーライブラリ311は、スキャナ制御ドライバ318およびプリンタ制御ドライバ317の機能を利用して、コピージョブの制御を行うためのAPIを提供するライブラリである。ここでのコピージョブとは、スキャナ203でスキャンした画像データをプリンタ202で印刷する一連の処理を表す。
スキャン保存ライブラリ312は、スキャナ制御ドライバ318の機能を利用してスキャン保存ジョブの制御を行うためのAPIを提供するライブラリである。ここでのスキャン保存ジョブとは、スキャナ203でスキャンした画像データを印刷データまたは汎用フォーマットに変換した後、HDD213または拡張I/F218に接続されているUSB等の外部記憶装置に保存する一連の処理を表す。尚、前述の汎用フォーマットとは、例えば、PDF(Portable Document Format)やJPEG(Joint Photographic Experts Group)といったデータフォーマットを表す。前述の汎用フォーマットは、その他のデータフォーマット(例えば、TIFF(Tagged Image File Format)やXPS(XML Paper Specification))であってもよい。
スキャン送信ライブラリ313は、スキャナ制御ドライバ318およびネットワークI/F制御ドライバ319の機能を利用してスキャン送信ジョブの制御を行うためのAPIを提供するライブラリである。ここでのスキャン送信ジョブとは、スキャナ203でスキャンした画像データを汎用フォーマットに変換した後、ネットワークI/F214を通してファイルサーバに送信したり、電子メールに添付して送信したりする一連の処理を表す。
管理ライブラリ330は、画像形成装置101の構成に関する情報を保持・管理するためのライブラリである。本実施形態では、画像形成装置101の構成としては、印刷済みの用紙に対してステープルやパンチ穴を付与するためのフィニッシャーや、ソフトウェアライセンスにより有効化された機能の一覧等を指すものとする。しかしながら、画像形成装置101全体として管理すべき情報であれば、画像形成装置101の構成に関する情報は、これらに限らない。
最下層から2段目の層には、更にプラグイン接続ライブラリ314および画像処理ライブラリ315が存在する。
画像処理ライブラリ315は、CPU211によって実行される様々な画像処理を実行するためのAPIを提供するライブラリである。様々な画像処理とは、画像形成装置101に入力された画像データを汎用フォーマットに変換する処理や、工場出荷時より常駐で利用可能な処理を表す。工場出荷時より常駐で利用可能な処理としては、例えば、シャープネス処理やページ集約等がある。尚、画像処理ライブラリ315のそれぞれは、固有の画像処理名326を保有する。例えば、シャープネス機能を持つ画像処理ライブラリ315の画像処理名326には、Sharpnessが設定される。画像処理名326は、デバイス制御ライブラリ309が画像処理ライブラリ315を呼び分けるための識別子として利用される。
プラグイン接続ライブラリ314は、デバイス制御ライブラリ309からの画像処理の実行依頼に応じて、画像形成装置101にインストールされている画像処理プラグインアプリケーション303に対し実行指示を行うライブラリである。プラグイン接続ライブラリ314は、画像処理プラグインアプリケーション303に対し、静的または動的にリンクしている。プラグイン接続ライブラリ314は、後述するデバイス制御アプリケーション304ともリンクしており、実行可能な画像処理プラグインアプリケーション303のリストをデバイス制御アプリケーション304に伝達することも可能である。本実施形態では、例えば、デバイス制御アプリケーション304を用いることにより第1のアプリケーションの一例が実現される。また、本実施形態では、例えば、画像処理プラグインアプリケーション303を用いることにより第2のアプリケーションの一例が実現される。また、本実施形態では、例えば、プラグイン接続ライブラリ314を用いることにより、第1のアプリケーションの少なくとも1つと、プラグインとして追加された第2のアプリケーションとを相互に関連付けて管理する管理手段の一例が実現される。
最上層は、プラグインアプリケーション301およびデバイス制御アプリケーション304によって成り立つアプリケーション層である。デバイス制御アプリケーション304は、デバイス制御ライブラリ309の各APIをコールすることによって様々な機能を提供する。尚、デバイス制御アプリケーション304は、HDD213に書き込まれている常駐のアプリケーションであり、ファームのバージョンアップにより、その機能を拡張することが可能である。各デバイス制御アプリケーション304は、それぞれ画面情報322、323、324、325を有する。CPU211は、操作部I/F217を通して操作部204にそれぞれの画面情報を表示する。また、各デバイス制御アプリケーション304は、プラグイン接続ライブラリ314に対して、画像処理プラグインアプリケーション303の画像処理名321および画面情報327の取得の依頼を行うことが可能である。この処理は、後述するデバイス制御アプリケーション304の画面に対して、画像形成装置101にインストールされている画像処理プラグインアプリケーション303を有効化するための画面情報を表示する処理のために利用される。
次に、デバイス制御アプリケーション304の画面情報322、323、324、325の内容の一例について、図4を用いて説明する。図4は、デバイス制御アプリケーション304の画面情報322、323、324、325の具体的な内容の一例を示す図である。
例えば、画面情報322には、起動用アイコン402、メイン画面403、依存画面405、および設定画面404の夫々の画面を表示するために用いる画面情報が含まれる。画面情報323、324、325についても同様である。以下、起動用アイコン402、メイン画面403、依存画面405、および設定画面404を総称して、デバイス制御アプリケーション画面401と呼ぶ。
起動用アイコン402は、画像形成装置101の起動後に操作部204に表示されるトップ画面に表示されるアイコンである。CPU211は、起動用アイコン402の押下を検知すると、それぞれのアイコンに応じたデバイス制御アプリケーション304に対して起動指示を行う。メイン画面403は、画像形成装置101の起動指示後に表示されるデバイス制御アプリケーション304のトップ画面である。設定画面404は、それぞれのジョブに対して画像処理を設定する際に用いられる画面である。
依存画面405は、各デバイス制御アプリケーション304に固有の設定を行う画面である。例えば、依存画面405は、スキャン送信アプリケーション308における宛先設定を行う画面や、コピーアプリケーション306における印刷設定を行う画面を指す。CPU211は、画面情報322、323、324、325に対するユーザの操作による設定を検知すると、その設定の内容をRAM212に書き込む。各デバイス制御アプリケーション304はこの段階で、必要に応じて各ジョブの設定に画像処理名を設定する。尚、各デバイス制御アプリケーション304は、ユーザが操作部204を押下することによる画像処理の選択に基づいて各ジョブの設定に画像処理名を設定したり、各ジョブに必要な画像処理の画像処理名を自動で各ジョブに設定したりすることも可能である。
また、デバイス制御アプリケーション304のみならずデバイス制御ライブラリ309が、各ジョブの設定に画像処理名を設定することも可能である。例えば、各デバイス制御ライブラリ309は、オペレーティングシステム316を制御するにあたり、必要な画像処理がある場合に画像処理名を設定する。尚、デバイス制御アプリケーション304およびデバイス制御ライブラリ309は、画像処理名を、複数設定することも、設定しないことも可能である。CPU211は、操作部204に対するユーザの操作に基づいてジョブの実行の開始を検知すると、各デバイス制御ライブラリ309のAPIをコールすることによりジョブを開始させる。尚、ジョブの設定方法、および画像処理の設定方法の具体例については後述する。
次に、各デバイス制御アプリケーション304の一例について説明する。プリントアプリケーション305は、プリントライブラリ310のAPIをコールすることによりプリントジョブを実行する。コピーアプリケーション306は、コピーライブラリ311のAPIをコールすることによりコピージョブを実行する。スキャン保存アプリケーション307は、スキャン保存ライブラリ312のAPIをコールすることによりスキャン保存ジョブを実行する。スキャン送信アプリケーション308は、スキャン送信ライブラリ313のAPIをコールすることによりスキャン送信ジョブを実行する。
次に、プラグインアプリケーション301の一例について説明する。プラグインアプリケーション301は、常駐アプリケーションであるデバイス制御アプリケーション304とは別に、プラグインとして、画像形成装置101に対しインストールおよびアンインストールすることが可能なアプリケーションである。プラグインアプリケーション301は、単独機能プラグインアプリケーション302と、画像処理プラグインアプリケーション303とを有する。各プラグインアプリケーション301には、それぞれの動作に必要なプログラムがパッケージングされている。各プラグインアプリケーション301は、リモートUI(UserInterface)等によって、画像形成装置101にインストールされる。尚、リモートUIとは、外部の情報処理端末103においてWebブラウザからネットワークI/F214を経由して画像形成装置101にアクセスし、画像形成装置101の状況の確認、印刷ジョブの操作、および各種設定等を行うことができる仕組みである。また、各プラグインアプリケーション301は、それぞれ個別に起動および停止を行うことが可能である。
次に、単独機能プラグインアプリケーション302の一例について説明する。単独機能プラグインアプリケーション302は、アプリケーション自体が画面情報320を持っており、デバイス制御ライブラリ309のAPIをコールすることで常駐のデバイス制御アプリケーション304とは別の機能や画面をユーザに提供することができる。例えば、ある画像データをコピーすると共にスキャンして送信する機能等、複数の機能を組み合わせることも可能である。また、単独機能プラグインアプリケーション302は、画面情報320に対する画像処理の設定を検知すると、当該画像処理に対応する画像処理名をジョブに設定する。尚、単独機能プラグインアプリケーション302は、ユーザからの明示的な設定がなくても、単独機能プラグインアプリケーション302がデフォルトで実現したい画像処理の画像処理名を設定することも可能である。
次に、画像処理プラグインアプリケーション303の一例について説明する。画像処理プラグインアプリケーション303は、特定の画像処理を提供するアプリケーションである。特定の画像処理とは、画像処理ライブラリ315とは別に画像形成装置101において拡張される画像処理を表す。例えば、特定の画像処理には、入力画像に対するフォーマットの変換、斜行補正、およびOCR(optical character recognition)後の翻訳データの生成といった処理等が含まれる。また、画像処理プラグインアプリケーション303は、それ自体が画像処理の機能を持っていなくてもよい。例えば、サーバ105が、画像処理のプログラムを管理し、画像処理プラグインアプリケーション303が、ネットワークI/F214を通し、サーバ105に対して画像処理の指示を送信することで、画像処理を実現することも可能である。各画像処理プラグインアプリケーション303は、それらの画像処理の内容を識別するための識別子として画像処理名321を保持する。例えば、斜行補正を行う画像処理プラグインアプリケーション303の場合、画像処理名321として"TiltCorrect"が設定される。画像処理名321は固有であり、同じ画像処理名321を持つ複数の画像処理プラグインアプリケーション303は、画像形成装置101のHDD213には存在しない。つまり、画像形成装置101に既にインストールされた画像処理プラグインアプリケーション303の画像処理名321と同じ画像処理名の画像処理プラグインアプリケーション303を画像形成装置101にインストールすることはできない。
また、画像処理プラグインアプリケーション303は、他の画像処理プラグインアプリケーション303との排他関係が記載されている排他情報328を保持する。表1に排他情報328の内容の一例を示す。
排他情報328には、画像処理プラグイン名、排他関係の有無、および情報の更新日が含まれる。表1を例に挙げると、この排他情報328を保持している画像処理プラグインアプリケーション303は、「プラグインA」および「プラグインD」とは排他関係が有り、「プラグインB」とは排他関係が無いことになる。本実施形態では、例えば、排他情報328により、第2のアプリケーションによる処理の実行が可能または不可能になる要因を示す情報の一例が実現される。また、例えば、排他情報328により、第2のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報と、当該第2のアプリケーションと異なる他の第2のアプリケーションを示す情報の一例が実現される。
各デバイス制御ライブラリ309は、プラグイン接続ライブラリ314に対して画像処理を依頼する際、画像処理名および処理の詳細なパラメータをジョブに設定する。プラグイン接続ライブラリ314は、ジョブに設定された画像処理名を元に画像処理プラグインアプリケーション303に対し処理依頼を行う。尚、プラグイン接続ライブラリ314が画像処理プラグインアプリケーション303に対して処理依頼を行う部分は、図3において、下位モジュールが上位モジュールに対してコールすることが可能な唯一の箇所である。画像処理プラグインアプリケーション303は、プラグインアプリケーション301の説明で示した通り、リモートUI等によって画像形成装置101にインストールされ、起動することで、画像形成装置101により認識される。また、画像処理プラグインアプリケーション303は、画面情報327を保持する。
図5は、画像処理プラグインアプリケーション303の画面情報327の具体的な内容の一例を示す図である。画面情報327には、画像処理アイコン501および画像処理個別設定画面502の画像情報が含まれる。画面情報327は、デバイス制御アプリケーション304の起動時において、デバイス制御アプリケーション画面401を生成するのに用いられる。尚、デバイス制御アプリケーション画面401の具体的な生成方法の一例については後述する。画像処理プラグインアプリケーション303は、各画像処理アイコン501および画像処理個別設定画面502を画像データとして保持する構成を採用することができる。また、画像処理プラグインアプリケーション303は、各画像処理アイコン501および画像処理個別設定画面502を文字データとして保持しておき、実際の画面の生成時に、動的に画面を生成する構成を採用することができる。文字データとしては、XML(Extensible Markup Language)や、HTML(Hyper Text Markup Language)等が挙げられる。また、画像処理アイコン501および画像処理個別設定画面502の構成についてはこれ以外でも構わない。
以下に、プラグインアプリケーション301のインストールから起動、停止、アンインストールまでの一連の流れの一例を示す。
CPU211は、プラグインアプリケーション301のインストールを検知すると、当該プラグインアプリケーション301の情報をHDD213に保存する。次に、CPU211は、プラグインアプリケーション301に対する開始指示を検知すると、当該プラグインアプリケーション301に対する起動指示を行う。プラグインアプリケーション301は、起動している間、各プログラムの内容を実行する事が可能である。次に、CPU211は、プラグインアプリケーション301に対する停止指示を検知すると、当該プラグインアプリケーション301に対して停止指示を行う。更にCPU211は、プラグインアプリケーション301に対するアンインストール指示を検知すると、HDD213に保存されたプラグインアプリケーション301の情報を削除する。尚、これらの指示は、リモートUIや操作部204から行うことが可能だが、これ以外でも構わない。
また、画像処理プラグインアプリケーション303のインストール時には、以上の処理に加えて、CPU211は、画像処理プラグインアプリケーション303に同梱されている排他情報328をHDD213に保存する。本実施形態では、例えば、このような排他情報328のHDD213への保存により、第2のアプリケーションが追加される際に、当該第2のアプリケーションに付加されている管理情報を記憶媒体に記憶する記憶手段の一例が実現される。
ここで、図6のフローチャートを参照しながら、排他情報328をHDD213に保存する際の画像形成装置101の処理の一例を説明する。尚、図6のフローチャートで示す処理は、CPU211が画像形成装置101のHDD213に格納されたプラグイン接続ライブラリ314を利用することによって実行されるものとする。また、ここでは前述の表1のような排他情報328を保持する「プラグインC」というプラグイン名の画像処理プラグインアプリケーション303がインストールされることとする。
プラグイン接続ライブラリ314は、画像処理プラグインアプリケーション303のインストール時に、そのプラグイン名と、それに紐づいた排他情報328との登録を受け付ける(S601)。次に、プラグイン接続ライブラリ314は、S601で登録された排他情報328に、排他関係にあるプラグイン名の記載があるか否かを判定する(S602)。本実施形態では、例えば、S602の処理により、管理手段が、第2のアプリケーションに対する管理情報に基づいて、当該第2のアプリケーションにより実行される処理と同時に実行できない他のアプリケーションの処理を特定することの一例が実現される。
この判定の結果、プラグイン名の記載がある場合、処理はS603へ進み、記載がない場合、処理はS603〜S606を省略して後述するS607に進む。「プラグインC」の排他情報328として表1のような排他情報328が登録された場合、排他関係にある画像処理プラグインアプリケーション303として「プラグインA」および「プラグインD」の記載があるので、処理は、S603に進む。次に、プラグイン接続ライブラリ314は、その排他関係にある画像処理プラグインアプリケーション303に紐づいて保存されている排他情報328を参照する(S603)。ここでは、「プラグインA」の排他情報328が、以下の表2のようなものであるとする。
次に、プラグイン接続ライブラリ314は、その排他情報328に、S601で登録を受け付けた画像処理プラグインアプリケーション303(ここでは「プラグインC」)との排他関係の情報の記載がないか否かを判定する(S604)。この判定の結果、排他関係にある画像処理プラグインアプリケーション303の排他情報328に、登録を受け付けた画像処理プラグインアプリケーション303との排他関係の情報の記載がない場合、処理はS606へ進む。表2の例では、「プラグインC」の排他情報328に排他関係にある画像処理プラグインアプリケーション303として記載されている「プラグインA」の排他情報328には「プラグインC」との排他関係の情報の記載がない。このため、処理はS605を省略してS606へ進む。
一方、排他関係にある画像処理プラグインアプリケーション303の排他情報328に、S601で登録を受け付けた画像処理プラグインアプリケーション303との排他関係の情報の記載がある場合、処理はS605へ進む。そして、プラグイン接続ライブラリ314は、その排他関係の情報における更新日が、S601で登録を受け付けた排他情報328に記載されている更新日よりも古いか否かを判定する。この判定の結果、更新日が古い場合、処理はS606へ進み、古くない場合、処理はS606を省略して後述するS607へ進む。
S606に進むと、プラグイン接続ライブラリ314は、排他関係にある画像処理プラグインアプリケーション303に紐づいて保存されている排他情報328の内容を、S601で登録を受け付けた排他情報328の記載と一致するように修正する。そして、処理はS607に進む。表2の例では、「プラグインA」の排他情報328は、表1の「プラグインC」の排他情報328の内容と一致するように、以下の表3のように修正される。本実施形態では、例えば、S606の処理により、管理手段が、同時に処理を実行することができない複数の第2のアプリケーションに対する管理情報の少なくとも何れか1つを変更することが実現される。また、例えば、「プラグインC」、「プラグインA」の排他情報328の「プラグインA」、「プラグインC」の更新日により、同時に処理を実行することができない複数の第2のアプリケーションに対する管理情報の更新のタイミングの一例が実現される。また、例えば、プラグイン接続ライブラリ314が、「プラグインA」の排他情報328を変更すると決定することにより、管理手段が、変更する管理情報を決定することの一例が実現される。
S607に進むと、プラグイン接続ライブラリ314は、S601で登録を受け付けた画像処理プラグインアプリケーション303の排他情報328の中身を修正する。この処理の詳細の一例については後述する。最後に、プラグイン接続ライブラリ314は、S606、S607で修正した排他情報328をHDD213に保存する(S608)。この時、プラグイン接続ライブラリ314は、画像処理プラグインアプリケーション303ごとに排他情報328を異なる領域に保存しても良いこととする。本実施形態では、例えば、S606、S607の処理により、管理手段が、同時に処理を実行することができない複数の第2のアプリケーションに対する管理情報の少なくとも何れか1つを変更することの一例が実現される。
次に、図7のフローチャートを参照しながら、図6のS607の詳細の一例を説明する。尚、図7のフローチャートで示す処理は、CPU211が画像形成装置101のHDD213に格納されたプラグイン接続ライブラリ314を利用することによって実行されるものとする。
初めに、プラグイン接続ライブラリ314は、HDD213に保存されている、登録済みの全ての画像処理プラグインアプリケーション303に紐づいた排他情報328を参照する(S701)。次に、プラグイン接続ライブラリ314は、S601で登録を受け付けた画像処理プラグインアプリケーション303のプラグイン名の記載がある排他情報328が、S701で参照した排他情報328から検出されたか否か判定する(S702)。本実施形態では、例えば、S702の処理により、管理手段が、第2のアプリケーションに対する管理情報に基づいて、当該第2のアプリケーションにより実行される処理と同時に実行することができない他のアプリケーションの処理を特定することが実現される。
この判定の結果、排他情報328が検出された場合、処理はS703へ進み、検出されなかった場合、図7のフローチャートによる処理は終了する。ここでは、「プラグインD」という名前の画像処理プラグインアプリケーション303に紐づいた、表4のような排他情報328が検出されたこととする。
表4の例では、「プラグインD」の排他情報328には、「プラグインC」との排他関係の情報の記載があるため、処理はS703へ進む。尚、このとき、複数の排他情報328が検出された場合は、次のS703、S704、S705、S706の処理はそれぞれの排他情報328に対して繰り返し行われる。S703に進むと、プラグイン接続ライブラリ314は、S601で登録を受け付けた画像処理プラグインアプリケーション303に紐づく排他情報328を参照する。次に、プラグイン接続ライブラリ314は、S703で参照した排他情報328に、S702で検出された排他情報328に紐づく画像処理プラグインアプリケーション303のプラグイン名の記載がないか否かを判定する(S704)。この判定の結果、プラグイン名の記載がある場合、処理はS705へ進み、記載がない場合、処理はS705を省略して後述するS706へ進む。
S705に進むと、プラグイン接続ライブラリ314は、S703で参照した排他情報328とS702で検出された排他情報328とのそれぞれに記載されている更新日を比較する。そして、プラグイン接続ライブラリ314は、S702で検出された排他情報328の方がS703で参照した排他情報328よりも、更新日が新しいか否か判定する(S705)。この判定の結果、更新日が新しい場合、処理はS706へ進み、新しくない場合、図7のフローチャートによる処理は終了する。
表1(S703で参照した排他情報328)と表4(S702で検出された排他情報328)の例では、表4の更新日の方が表1の「プラグインD」の更新日よりも新しいため、処理はS706へ進む。
S706に進むと、プラグイン接続ライブラリ314は、S601で登録を受け付けた排他情報328の中身を、S702で検出された排他情報328の記載と一致するように修正する(S706)。表1の排他情報328は、表4の排他情報328の内容と一致するように、以下の表5のように修正される。本実施形態では、例えば、S706の処理により、管理手段が、同時に処理を実行することができない複数の第2のアプリケーションに対する管理情報の少なくとも何れか1つを変更することが実現される。また、例えば、「プラグインC」、「プラグインD」の排他情報328の「プラグインD」、「プラグインC」の更新日により、同時に処理を実行することができない複数の第2のアプリケーションに対する管理情報の更新のタイミングの一例が実現される。また、例えば、プラグイン接続ライブラリ314が、「プラグインC」の排他情報328を変更すると決定することにより、管理手段が、変更する管理情報を決定することの一例が実現される。
次に、画像形成装置101の起動時の処理の一例について説明する。
図8は、操作部204に表示されるメインメニュー画面801の一例を示す図である。CPU211は、画像形成装置101の起動時に、HDD213からメインメニューを構成するデバイス制御アプリケーション304を取得する。更に、CPU211は、このデバイス制御アプリケーション304のデバイス制御アプリケーション画面401から、起動用アイコン402を取得し、メインメニュー画面801に表示する。プリントアイコン802、コピーアイコン803、スキャン保存アイコン804、およびスキャン送信アイコン805は、起動用アイコン402である。メインメニュー画面801には、常駐のデバイス制御アプリケーション304の他にも、単独機能プラグインアプリケーション302用のアイコン806を表示することが可能である。この場合、CPU211は、画像形成装置101の起動時に、プラグインアプリケーション301から、単独機能プラグインアプリケーション302の画面情報320として、単独機能プラグインアプリケーション302用のアイコン806を取得する。そして、CPU211は、単独機能プラグインアプリケーション302用のアイコン806をメインメニュー画面801に表示する。単独機能プラグインアプリケーション302用のアイコン806は、単独機能プラグインアプリケーション302の画面情報320に含まれている。CPU211は、単独機能プラグインアプリケーション302用のアイコン806の押下を検知すると、単独機能プラグインアプリケーション302を起動する。
次に、デバイス制御アプリケーション304が自身のデバイス制御アプリケーション画面401に対し、画像処理プラグインアプリケーション303を有効化するための画面情報を挿入するまでの一連の流れの一例を説明する。ここでは、デバイス制御アプリケーション304の具体例として、コピーアプリケーション306を用いる。まず、コピーアプリケーション306の画面構成の一例について説明する。尚、以下では、まず、図9、図10および図11において、コピーアプリケーション306の画面構成について説明する。その後、図12において、デバイス制御アプリケーション画面401に対し画像処理プラグインアプリケーション303を有効化する画面を挿入するフローの説明を行う。
図9は、コピーアプリケーション306のメイン画面901の一例を示す図である。依存画面902は、図4を用いて説明した依存画面405に相当する画面であり、コピーアプリケーション306に特化した設定画面である。依存画面902は、印刷の倍率設定や部数設定といった、コピージョブに特化した設定を行うための画面である。設定ボタン903は、コピージョブに対する画像処理を指定する設定画面を表示するためのボタンである。
図10は、設定ボタン903が押下されると表示される画像処理設定画面1001の一例を示す図である。画像処理設定画面1001には、各画像処理を設定するためのアイコン1002、1003、1004、1005、1006、1007が表示される。尚、アイコン1002、1003、1004、1005は、コピーアプリケーション306の設定画面404に含まれる画像処理のアイコンである。また、拡張画像処理アイコン1006、1007は、プラグインとして追加された画像処理プラグインアプリケーション303の画像処理アイコン501である。前述したように、コピーアプリケーション306の画面情報323に含まれるアイコンと、画像処理プラグインアプリケーション303の画面情報327に含まれるアイコンとは、同じ画像処理設定画面1001に表示される。従って、プラグインとして追加された画像処理の設定も、通常のデバイス制御アプリケーション304のデバイス制御アプリケーション画面401の中で設定することが可能となる。尚、拡張画像処理アイコン1007にはハッチングが施されている。これは、現在のアプリケーションの設定ではこの拡張画像処理アイコン1007を選択できないが、他の画像処理の設定を変更することで選択できるようになることを示唆する表示形態である。
図11は、プラグインとして追加された画像処理プラグインアプリケーション303に対する画像処理個別設定画面502の一例を示す図である。画像処理個別設定画面502は、拡張画像処理設定1101、キャンセルボタン1102、および設定ボタン1103を有する。ユーザは、拡張画像処理設定1101に対する操作を行うことにより、画像処理プラグインアプリケーション303により拡張される画像処理に対する設定を個別に行うことができる。拡張画像処理設定1101には、この設定に必要なチェックボックスやスライダ等を表示される。キャンセルボタン1102は、拡張画像処理設定1101に対して入力された項目をキャンセルするためのボタンである。設定ボタン1103は、拡張画像処理設定1101に対して入力された項目を設定するためのボタンである。
図12は、デバイス制御アプリケーション304が、画像処理設定画面1001を表示する際の処理の一例を示すフローチャートである。以下に、コピーアプリケーション306の起動を例に挙げ、デバイス制御アプリケーション304内の画像処理設定画面1001を表示する際のフローについて説明する。尚、図12のフローチャートで示す処理は、画像形成装置101のHDD213に格納されたコピーアプリケーション306のプログラムにより制御されるものであり、RAM212によって呼び出され、CPU211によって実行されるものとする。
コピーアプリケーション306は、画像処理設定画面1001の表示要求を受信すると、画像処理ライブラリ315により実現可能な画像処理に対応するアイコンを表示する(S1201)。図10に示した例では、S1201で表示されるアイコンは、アイコン1002、1003、1004、1005である。本実施形態では、例えば、S1201の処理により、表示手段の一例が実現される。また、例えば、画像処理設定画面1001により第1の画面の一例が実現される。また、例えば、アイコン1002〜1005により、第1のアプリケーションにより実行される処理の設定を選択する部分の一例が実現される。
次に、コピーアプリケーション306は、プラグイン接続ライブラリ314に問い合わせ、画面情報327を含んだ画像処理プラグインアプリケーション303のリストを取得する(S1202)。次に、コピーアプリケーション306は、S1202で取得したリストに含まれる画像処理プラグインアプリケーション303のうち、未選択のものを1つ選択する。S1204〜S1208の処理は、プラグイン接続ライブラリ314の機能を利用し、S1203で選択された画像処理プラグインアプリケーション303について行われる。
まず、コピーアプリケーション306は、S1203で選択した画像処理プラグインアプリケーション303の画面情報327と当該画像処理プラグインアプリケーション303の表示形態とを取得する(S1204)。具体的にコピーアプリケーション306は、リスト内の要素を指定すると共に、メイン画面403や依存画面405で設定された設定内容と現在有効になっている画像処理プラグインアプリケーション303の一覧とをプラグイン接続ライブラリ314に入力する。
プラグイン接続ライブラリ314は、それらの情報と、HDD213に保存されている排他情報328の内容とに基づいて、S1203で選択した画像処理プラグインアプリケーション303が使用可能であるかどうかを判断する。そして、プラグイン接続ライブラリ314は、その判断の結果に基づいて、表示形態を決定し、画像処理プラグインアプリケーション303から取得した画面情報327と表示形態とをコピーアプリケーション306に返却する。本実施形態では、このようにしてプラグイン接続ライブラリ314が表示形態を決定することにより、決定手段の一例が実現される。
本実施形態では、画像処理プラグインアプリケーション303の表示形態を以下のように三つ定義するものとする。一つ目は、ユーザが選択可能な"可視状態(表示)"である。二つ目は、現在のデバイス制御アプリケーション304の状態では選択できないがユーザによる設定の変更により使用可能となり得る"選択不可状態(グレーアウト)"である。三つ目は、現在の装置の状態ではユーザの操作に関わらず使用不可能な"不可視状態(非表示)"である。本実施形態では、これら三つを表示形態として定義するが、他に適切な表示形態があれば、その表示形態が追加されても構わない。
次に、コピーアプリケーション306は、S1204で返却された表示形態の内容を確認する(S1205)。S1205において、プラグイン接続ライブラリ314から"非表示"の表示形態が返却された場合、コピーアプリケーション306は、以下のようにする。即ち、コピーアプリケーション306は、プラグイン接続ライブラリ314から返却された画面情報327に含まれるアイコンを表示することなく、後述するS1209に処理を進める。S1205において、プラグイン接続ライブラリ314から"グレーアウト"の表示形態が返却された場合、コピーアプリケーション306は、以下の処理を行う(S1206)。即ち、コピーアプリケーション306は、ユーザによる選択が不可能な形態で、プラグイン接続ライブラリ314から返却された画面情報327に含まれるアイコンを画像処理設定画面1001に表示する(S1206)。図10の拡張画像処理アイコン1007が"グレーアウト"に対応する表示形態を示す。本実施形態では、例えば、拡張画像処理アイコン1006、1007により、第2のアプリケーションにより実行される処理の設定を選択する部分の一例が実現される。また、例えば、S1206の処理により、表示手段の一例が実現される。
S1205において、プラグイン接続ライブラリ314から"表示"の表示形態が返却された場合、コピーアプリケーション306は、拡張画像処理アイコン1006の押下の検知時に直ちに画像処理個別設定画面502を表示する必要がある。そこで、コピーアプリケーション306は、S1203で選択された画像処理プラグインアプリケーション303の画像処理個別設定画面502の情報を取得する(S1207)。次に、コピーアプリケーション306は、プラグイン接続ライブラリ314から返却された画面情報327に含まれる拡張画像処理アイコンを、ユーザによる選択が可能な形態で画像処理設定画面1001に表示する(S1208)。本実施形態では、例えば、S1208の処理により、表示手段の一例が実現される。
次に、コピーアプリケーション306は、S1202で取得したリストに含まれる画像処理プラグインアプリケーション303のリストに含まれる全ての画像処理プラグインアプリケーション303を選択したか否かを判定する(S1209)。この判定の結果、全ての画像処理プラグインアプリケーション303を選択していない場合、処理は、S1203に戻り、全ての画像処理プラグインアプリケーション303が選択されるまでS1203〜S1209の処理が繰り返し実行される。そして、全ての画像処理プラグインアプリケーション303についてS1203〜S1208の処理が実行されると、図12のフローチャートによる処理は終了する。
以上の処理により、コピーアプリケーション306は、画像処理設定画面1001に、画像処理プラグインアプリケーション303の画像処理アイコン501(拡張画像処理アイコン1006、1007)を挿入することができる。尚、プラグイン接続ライブラリ314からコピーアプリケーション306に表示形態を直接返却しなくてもよい。例えば、画像処理プラグインアプリケーション303が使用できるかどうかの情報をもとにコピーアプリケーション306が画像処理プラグインアプリケーション303の表示形態を判断してもよい。
次に、デバイス制御アプリケーション304におけるユーザによる設定に関する画像形成装置101の処理の一例について説明する。
CPU211は、コピーアプリケーション306のメイン画面901において、依存画面902での設定を検知すると、当該設定の内容をRAM212に書き込む。依存画面902については、それぞれのボタンの押下に応じて別画面に遷移し、遷移した画面で設定が行われるようにしてもよい。CPU211は、設定ボタン903の押下を検知すると、コピーアプリケーション306の画像処理設定画面1001を表示する。CPU211は、画像処理アイコン1002〜1005および拡張画像処理アイコン1006の何れかの押下を検知すると、それぞれのアイコンに紐づいている画像処理に対して、画像処理個別設定画面が存在するか否かを判断する。画像処理個別設定画面とは、各画像処理に対する詳細を設定することが可能な画面であり、図11に示した画像処理個別設定画面502も含められる。画像処理個別設定画面は、各画像処理アイコンに対し、詳細な設定が必要な場合のみ存在する。
CPU211は、画像処理アイコン1002〜1005および拡張画像処理アイコン1006のうち押下されたアイコンに対し画像処理個別設定画面が存在しない場合、画像処理名として当該アイコンに対応する画像処理名を設定し、RAM212に書き込む。一方、画像処理アイコン1002〜1005および拡張画像処理アイコン1006のうち押下されたアイコンに対し画像処理個別設定画面が存在する場合、CPU211は、当該アイコンに対応する画像処理個別設定画面を表示する。拡張画像処理アイコン1006が押下された場合を例として挙げると、CPU211は、図11に示した画像処理個別設定画面502を表示する。
CPU211は、拡張画像処理設定1101に対するユーザの操作を検知すると、その操作の内容を設定情報としてRAM212に書き込む。CPU211は、キャンセルボタン1102の押下を検知すると、RAM212に書き込んだ設定情報を破棄し、画像処理設定画面1001を表示する。一方、CPU211は、設定ボタン1103の押下を検知すると、RAM212に書き込んだ設定情報を読み出す。そして、CPU211は、画像処理名として、画像処理設定画面1001に対して押下されたアイコンに対応する画像処理名を設定した上で、RAM212に書き込み、画像処理設定画面1001を表示する。このとき、操作部204は、画像処理設定画面1001で押下されたアイコンの色を変化させたり、有効化表示をしたりするのが好ましい。拡張画像処理設定1101(画像処理プラグインアプリケーション303による画像処理の設定)が有効化されたことをユーザに認識させることができるからである。ユーザは、以上の操作を所望の設定が完了するまで行い、CPU211は、その都度RAM212に設定情報を追加で書き込む。つまり、ユーザが複数の画像処理を設定した場合には、画像処理名は複数設定されることになる。また、画像処理設定画面1001において、設定の更新ごとに動的にアイコンの選択可否を制御できることが好ましい。従って、CPU211は、画像処理の設定をRAM212に書き込む毎に、図12のフローチャートによる処理を実施する。
次に、ジョブ実行時のフローの一例について、コピーアプリケーション306を例に挙げて説明する。図13は、ジョブ実行時の画像形成装置101の制御の一例を示すフローチャートである。図13のフローチャートで示す処理に係るプログラムは画像形成装置101のHDD213に格納されており、RAM212によって呼び出され、CPU211によって実行されるものとする。
まず、デバイス制御アプリケーション304は、コピージョブの実行指示を検知する(S1301)。そして、デバイス制御アプリケーション304は、コピーライブラリ311のAPIをコールし、更にコピーライブラリ311がスキャナ制御ドライバ318に対してスキャン指示を行う。スキャナ制御ドライバ318は、スキャナ203からスキャンした画像データを、コピーライブラリ311に送信する。
コピーライブラリ311は、コピーアプリケーション306で設定された設定情報をRAM212から取得すると、設定情報に含まれる画像処理名のうち未選択の画像処理名を1つ選択する(S1302)。以下のS1303〜S1306の処理は、S1302で選択された画像処理について行われる。
次に、コピーライブラリ311は、S1302で選択した画像処理名の画像処理が、画像処理ライブラリ315で処理可能であるか否かを判定する(S1303)。具体的にコピーライブラリ311は、設定情報に含まれる画像処理名と等しい画像処理名326を持つ画像処理ライブラリ315が存在するか否かを画像処理ライブラリ315に問い合わせることにより、S1303の判定を行う。この判定の結果、S1302で選択した画像処理名の画像処理が、画像処理ライブラリ315で処理可能である場合、コピーライブラリ311は、画像処理ライブラリ315のAPIをコールして、画像処理を実行する(S1306)。
一方、S1302で選択した画像処理名の画像処理が、画像処理ライブラリ315で処理可能でない場合、コピーライブラリ311は、プラグイン接続ライブラリ314のAPIをコールする(S1304)。プラグイン接続ライブラリ314は、S1302で選択された画像処理名に一致する画像処理名を、画像処理プラグインアプリケーション303の画像処理名321から探索する。そして、プラグイン接続ライブラリ314は、探索した画像処理名321に紐づく画像処理プラグインアプリケーション303のAPIをコールし、画像処理を実行する(S1305)。このとき、画像処理プラグインアプリケーション303は、画像処理個別設定画面502に対して入力された設定値の情報をそれぞれの画像処理に反映する。
次に、コピーライブラリ311は、コピーアプリケーション306で設定された設定情報に含まれる画像処理名の全てを選択したか否かを判定する(S1307)。この判定の結果、全ての画像処理名を選択していない場合、処理は、S1302に戻る。そして、全ての画像処理名が選択されるまで、S1302〜S1307の処理が繰り返し実行される。そして、全ての画像処理名の画像処理が終了すると、コピーライブラリ311は、プリンタ制御ドライバ317に対し印刷指示を送信する。プリンタ制御ドライバ317は、プリンタI/F215より、プリンタ202に対し印刷指示を送信する。プリンタ202は、当該印刷指示に基づいて印刷を実行する。以上によりコピージョブが完結する(S1307)。
以上のように本実施形態では、プラグインとして画像形成装置101に追加される画像処理プラグインアプリケーション303は、自身と同時に実行することができない他の画像処理プラグインアプリケーション303の情報を排他情報328として保持する。そして、プラグイン接続ライブラリ314が排他情報328の内容の変更を行う。例えば、プラグイン接続ライブラリ314は、排他の関係にある複数の画像処理プラグインアプリケーション303の排他情報328について、更新日が相対的に新しい排他情報328に合わせて更新日が相対的に古い排他情報328を変更する。また、プラグイン接続ライブラリ314は、排他情報328に基づいて、画像処理プラグインアプリケーション303が使用可能であるかどうかを判断する。そして、デバイス制御アプリケーション304は、この判断の結果に基づく表示形態で、当該画像処理プラグインアプリケーション303に対する拡張画像処理アイコン1006を画像処理設定画面1001に表示する。従って、画像処理を行うためのプラグインを開発する際、各プラグインの開発者はプラグインに直接関連するジョブに関連する排他の制御のみを考慮すればよくなり、システムの開発効率が向上する。よって、プラグイン同士の排他の管理を容易にすることができる。また、プラグインとして追加された新規の画像処理同士の排他関係を考慮した上で、プラグインの使用可否を判断し、その結果に応じて表示状態を切り替えることが可能になる。よって、ユーザは、プラグインとして追加された新規の画像処理と、既存の画像処理とを意識して使い分けることなく、所望のジョブを実行することが可能となるため、利便性が向上する。
(第2の実施形態)
次に、第2の実施形態を説明する。第1の実施形態では、プラグイン接続ライブラリ314が、画像処理プラグインアプリケーション303の排他情報328を適宜修正しながら利用することで、画像処理プラグインアプリケーション303のアイコンの表示形態を切り替える。しかしながら、画像処理プラグインアプリケーション303のアイコンの表示形態は、排他情報328だけなく、デバイス制御アプリケーション304の設定や現在の機器構成によっても、変化することが考えられる。本実施形態では、プラグイン接続ライブラリ314が、デバイス制御アプリケーション304の設定および現在の機器構成を受け取り、画像処理プラグインアプリケーション303の表示形態をデバイス制御アプリケーション304に返却する。このように本実施形態と第1の実施形態とでは、排他情報に代えて後述する使用可否情報を用いる点と、画像処理プラグインアプリケーション303のアイコンの表示形態に係る処理とが主として異なる。従って、本実施形態の説明において、第1の実施形態と同一の部分については、図1〜図13に付した符号と同一の符号を付す等して詳細な説明を省略する。
図14は、本実施形態の画像形成装置101のソフトウェアの構造の一例を示す模式的な階層図である。本実施形態では、画像処理プラグインアプリケーション303には、排他情報328の代わりに、所与の入力をもとにプラグイン自身の使用可否を判断するための使用可否判断情報328が紐づけられる。使用可否判断情報328には、画像処理プラグインアプリケーション303の使用が可能となるための、デバイス制御アプリケーション304の設定や機器構成等の条件が記載されている。使用可否判断情報328は、第1の実施形態で説明した排他情報328と同じように、画像処理プラグインアプリケーション303のインストール時に登録を受け付け、HDD213に保存される。尚、画像処理プラグインアプリケーション303の使用が不可能になるための、デバイス制御アプリケーション304の設定や機器構成等の条件が、使用可否判断情報328に記載されていてもよい。本実施形態では、例えば、使用可否判断情報328により、第2のアプリケーションの実行が可能または不可能になる条件を示す情報の一例が実現される。また、例えば、使用可否判断情報328により、第2のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報と、プラグインではないアプリケーションにより実行される処理を示す情報の一例が実現される。
デバイス制御アプリケーション304において、画像処理設定画面1001を表示する際の処理は第1の実施形態と同様であり、図12のフローチャートにより実現される。このとき、第1の実施形態では、S1204の処理において、排他情報328を利用する。これに対し、本実施形態では、S1204の処理において、排他情報328を利用せずに使用可否判断情報328を利用する。
S1204において、コピーアプリケーション306は、S1203で選択した画像処理プラグインアプリケーション303の画面情報327と当該画像処理プラグインアプリケーション303の表示形態とを取得する。具体的にコピーアプリケーション306は、リスト内の要素を指定すると共に、メイン画面403や依存画面405に対する設定の内容をプラグイン接続ライブラリ314に入力する。これに対応して、本実施形態では、まず、プラグイン接続ライブラリ314は、管理ライブラリ330から現在の機器構成を取得する。そして、画像処理プラグインアプリケーション303は、プラグイン接続ライブラリ314から受信した情報と、HDD213に保存してある使用可否判断情報328とに基づいて、画像処理プラグインアプリケーション303自身の使用可否を判断する。そして、画像処理プラグインアプリケーション303は、その結果に基づいて自身の表示形態を判断し、プラグイン接続ライブラリ314に出力する。プラグイン接続ライブラリ314は、画面情報327と共に、画像処理プラグインアプリケーション303の表示形態をコピーアプリケーション306に返却する。
本実施形態では、デバイス制御アプリケーション304の設定や現在の機器構成をもとにして、画像処理プラグインアプリケーション303の表示形態を決定し、呼び出し元に返却することが可能になる。尚、使用可否判断情報328と排他情報328との双方を用いて、画像処理プラグインアプリケーション303の使用可否を判断するようにしてもよい。例えば、プラグイン接続ライブラリ314は、使用可否判断情報328からでは使用が可能である場合でも、排他情報328からでは使用が可能でない場合、画像処理プラグインアプリケーション303の使用が可能でないと判断してもよい。
(第3の実施形態)
次に、第3の実施形態を説明する。第2の実施形態では、画像処理プラグインアプリケーション303が、デバイス制御アプリケーション304の設定および現在の機器構成を取得し、自身の表示形態を返却する場合について説明したが、表示形態を直接返却しない場合も考えられる。本実施形態では、プラグイン接続ライブラリ314が、画像処理プラグインアプリケーション303の表示形態を直接返却せず、デバイス制御アプリケーション304が、プラグイン接続ライブラリ314から返却された情報に基づいて、表示形態を判断する。このように本実施形態と第1、第2の実施形態とは、画像処理プラグインアプリケーション303のアイコンの表示形態に係る処理が主として異なる。従って、本実施形態の説明において、第1、第2の実施形態と同一の部分については、図1〜図14に付した符号と同一の符号を付す等して詳細な説明を省略する。
図15は、本実施形態における使用可否判断情報328の構成の一例を示す図である。本実施形態では、使用可否判断情報328は、以下の2つの情報を含む。一つ目は、機器構成条件情報1501である。機器構成条件情報1501は、所与の機器構成で画像処理プラグインアプリケーション303が使用可能であるか否かを判断するための情報である。二つ目は、アプリケーション設定条件情報1502である。アプリケーション設定条件情報1502は、所与のデバイス制御アプリケーション304の設定で画像処理プラグインアプリケーション303が使用可能であるか否かを判断するための情報である。
図16は、デバイス制御アプリケーション304が、画像処理設定画面1001を表示する際の処理の一例を示すフローチャートである。以下に、コピーアプリケーション306の起動を例に挙げ、デバイス制御アプリケーション304内の画像処理設定画面1001を表示する際のフローについて説明する。尚、図16のフローチャートで示す処理は、画像形成装置101のHDD213に格納されたコピーアプリケーション306のプログラムにより制御されるものであり、RAM212によって呼び出され、CPU211によって実行されるものとする。
コピーアプリケーション306は、画像処理設定画面1001の表示要求を受信すると、画像処理ライブラリ315により実現可能な画像処理に対応するアイコンを表示する(S1601)。S1601で表示されるアイコンは、図10に示した例ではアイコン1002、1003、1004、1005である。本実施形態では、例えば、S1601の処理により、表示手段の一例が実現される。
次に、コピーアプリケーション306は、プラグイン接続ライブラリ314に問い合わせ、画面情報327を含んだ画像処理プラグインアプリケーション303のリストを取得する(S1602)。次に、コピーアプリケーション306は、S1602で取得したリストに含まれる画像処理プラグインアプリケーション303のうち、未選択のものを1つ選択する。S1604〜S1608の処理は、プラグイン接続ライブラリ314の機能を利用し、S1603で選択された画像処理プラグインアプリケーション303について行われる。
まず、コピーアプリケーション306は、S1603で選択した画像処理プラグインアプリケーション303が、現在の機器構成で使用可能であるか否かを判定する(S1604)。このとき、プラグイン接続ライブラリ314は、管理ライブラリ330から現在の機器構成を取得する。また、プラグイン接続ライブラリ314は、使用可否判断情報328を取得する。そして、コピーアプリケーション306は、現在の機器構成と、使用可否判断情報328に含まれる機器構成条件情報1501とに基づいて、S1603で選択した画像処理プラグインアプリケーション303の使用可否を判定する。この判定の結果、画像処理プラグインアプリケーション303が使用可能でない場合、処理は、後述するS1609に進む。一方、画像処理プラグインアプリケーション303が使用可能である場合、コピーアプリケーション306は、S1603で選択した画像処理プラグインアプリケーション303に対応する画面情報327を取得する(S1605)。
次に、コピーアプリケーション306は、S1603で選択した画像処理プラグインアプリケーション303が現在のアプリケーション設定で使用可能であるか否かを判定する(S1606)。具体的には、コピーアプリケーション306は、S1603で選択した画像処理プラグインアプリケーション303が現在のアプリケーション設定で使用可能か否かをプラグイン接続ライブラリ314に問い合わせる。このとき、コピーアプリケーション306は、現在のコピーアプリケーション306の設定情報をプラグイン接続ライブラリ314に送信する。これに対応してプラグイン接続ライブラリ314は、現在のコピーアプリケーション306の設定情報と、使用可否判断情報328に含まれるアプリケーション設定条件情報1502とに基づき、当該画像処理プラグインアプリケーションの使用可否を判定する。
この判定の結果、画像処理プラグインアプリケーション303が現在のアプリケーション設定で使用可能でない場合、コピーアプリケーション306は、拡張画像処理アイコンの表示形態を、ユーザによる選択が不可能な形態に決定する。そして、コピーアプリケーション306は、ユーザによる選択が不可能な形態で、拡張画像処理アイコンを画像処理設定画面1001に表示する(S1607)。図10に示す例では、拡張画像処理アイコン1007が、ユーザによる選択を不可能とする表示形態の一例である。本実施形態では、このようにしてコピーアプリケーション306が表示形態を決定することにより、決定手段の一例が実現される。また、本実施形態では、例えば、S1607の処理により、表示手段の一例が実現される。
一方、画像処理プラグインアプリケーションが現在のアプリケーション設定で使用可能である場合、コピーアプリケーション306は、拡張画像処理アイコンの表示形態を、ユーザによる選択が可能な形態に決定する。そして、コピーアプリケーション306は、ユーザによる選択が可能な形態で、拡張画像処理アイコンを画像処理設定画面1001に表示する(S1608)。本実施形態では、このようにしてコピーアプリケーション306が表示形態を決定することにより、決定手段の一例が実現される。また、本実施形態では、例えば、S1608の処理により、表示手段の一例が実現される。
次に、コピーアプリケーション306は、S1602で取得したリストに含まれる画像処理プラグインアプリケーション303のリストに含まれる全ての画像処理プラグインアプリケーション303を選択したか否かを判定する(S1609)。この判定の結果、全ての画像処理プラグインアプリケーション303を選択していない場合、処理は、S1603に戻り、全ての画像処理プラグインアプリケーション303が選択されるまでS1603〜S1609の処理が繰り返し実行される。そして、全ての画像処理プラグインアプリケーション303についてS1603〜S1608の処理が実行されると、図16のフローチャートによる処理は終了する。
以上の処理により、コピーアプリケーション306の画像処理設定画面1001に、画像処理プラグインアプリケーション303の画像処理アイコン501を挿入することができる。
本実施形態で示した方法で画像処理プラグインアプリケーション303の画像処理アイコン501の表示形態を決定することにより、デバイス制御アプリケーション304側の都合で表示形態を制御することが可能になる。例えば、画像形成装置101の管理者向けのデバイス制御アプリケーション304の場合、機器構成を変更することで有効化される機能の確認が必要である可能性がある。このような場合でも、画像処理プラグインアプリケーション303側の制御を変えずに表示形態を柔軟に制御することが可能となる。
(第4の実施形態)
次に、第4の実施形態を説明する。第2の実施形態では、画像処理プラグインアプリケーション303が、デバイス制御アプリケーション304の設定および現在の機器構成を取得し、自身の表示状態を返却する場合について説明した。しかしながら、この他にも、画像処理プラグインアプリケーション303の設定に応じて、従来の画像処理の使用可否を切り替えることが有効な場面がある。そこで、本実施形態では、画像処理プラグインアプリケーション303の設定を考慮した上で、従来の画像処理の使用可否を切り替える。従来の画像処理とは、画像形成装置101のHDD213に常時格納されている画像処理プログラムであり、ファームの更新においてのみ追加可能な画像処理を指す。このように本実施形態と、第1〜第3の実施形態とは、画像処理の使用可否の判断に係る処理が主として異なる。従って、本実施形態の説明において、第1〜第3の実施形態と同一の部分については、図1〜図16に付した符号と同一の符号を付す等して詳細な説明を省略する。
図17は、本実施形態の画像形成装置101のソフトウェアの構造の一例を示す模式的な階層図である。本実施形態では、画像処理プラグインアプリケーション303は、従来の画像処理との排他関係が記載されている表6のような従来画像処理排他情報360を保持しているものとする。前述したように従来の画像処理とは、画像形成装置101のHDD213に常時格納されている画像処理プログラムであり、ファームの更新においてのみ追加可能な画像処理を指す。
従来画像処理排他情報360には、排他対象の従来の画像処理が記載されている。表6を例に挙げると、この従来画像処理排他情報360を保持している画像処理プラグインアプリケーション303は、「画像処理A」および「画像処理C」と排他関係があることを表す。CPU211は、画像処理プラグインアプリケーション303のインストール時に、従来画像処理排他情報360をHDD213に書き込む。本実施形態では、例えば、従来画像処理排他情報360により、第2のアプリケーションによる処理の実行が可能または不可能になる要因を示す情報の一例が実現される。また、例えば、従来画像処理排他情報360により、第2のアプリケーションによる処理と同時に実行することができない処理を実行する他のアプリケーションの情報と、プラグインではないアプリケーションにより実行される処理を示す情報の一例が実現される。
図18は、デバイス制御アプリケーション304が、画像処理設定画面1001を表示する際の処理の一例を示すフローチャートである。図18は、従来の画像処理に対するアイコンの表示の切り替え処理を示したフローチャートである。以下に、コピーアプリケーション306の起動を例に挙げ、画像処理設定画面1001を表示する際のフローについて説明する。尚、図18のフローチャートで示す処理は、画像形成装置101のHDD213に格納されたプログラムにより制御されるものであり、RAM212によって呼び出され、CPU211によって実行されるものとする。
コピーアプリケーション306は、画像処理設定画面1001の表示要求を受信すると、RAM212に書き込まれた設定済み画像処理プラグインアプリケーション303のリストを取得する(S1801)。そして、コピーアプリケーション306は、プラグイン接続ライブラリ314に、RAM212から取得した設定済み画像処理プラグインアプリケーション303のリストを入力する。次に、コピーアプリケーション306は、設定済み画像処理プラグインアプリケーション303のリストから、未選択の設定済み画像処理プラグインアプリケーションを1つ選択する(S1802)。設定済み画像処理プラグインアプリケーション303は、画像処理個別設定画面502により既に設定がなされている画像処理プラグインアプリケーション303を指す。
次に、プラグイン接続ライブラリ314は、S1802で選択した設定済み画像処理プラグインアプリケーション303についての従来画像処理排他情報360をHDD213から取得する(S1803)。次に、プラグイン接続ライブラリ314は、S1803で取得した従来画像処理排他情報360に含まれる従来の画像処理のうち、未選択の画像処理を1つ選択する(S1804)。次に、プラグイン接続ライブラリ314は、S1802で選択した設定済み画像処理プラグインアプリケーション303と、S1804で選択した従来の画像処理とを比較する(S1805)。そして、プラグイン接続ライブラリ314は、S1802で選択した設定済み画像処理プラグインアプリケーション303による画像処理と、S1804で選択した従来の画像処理とが排他の関係にあるか否かを判定する(S1806)。この判定は、S1803で取得された従来画像処理排他情報360に基づいて行われる。本実施形態では、例えば、S1805の処理により、管理手段が、第2のアプリケーションに対する管理情報に基づいて、当該第2のアプリケーションにより実行される処理と同時に実行できない他のアプリケーションの処理を特定することの一例が実現される。
この判定の結果、排他の関係にないと判断した場合(S1806)、プラグイン接続ライブラリ314は、以下の処理を行う。即ち、プラグイン接続ライブラリ314は、ユーザによる選択が可能な形態で、S1802で選択した設定済み画像処理プラグインアプリケーションの従来の画像処理を設定するためのアイコンを表示する旨をコピーアプリケーション306に返却する。コピーアプリケーション306は、ユーザによる選択が可能な形態で、S1802で選択した設定済み画像処理プラグインアプリケーションの従来の画像処理を設定するためのアイコンを画像処理設定画面1001に表示する(S1809)。
一方、排他の関係にある場合(S1806)、プラグイン接続ライブラリ314は、表示設定を判定する(S1807)。表示設定は、HDD213に保存されている設定であり、例えば、画像形成装置101の管理者等が操作部204を用いて設定する。本実施形態では、表示設定として、第1の実施形態で説明した"可視状態(表示)"、"選択不可状態(グレーアウト)"、および"不可視状態(非表示)"の何れかが設定されるものとする。
そして、プラグイン接続ライブラリ314は、表示設定に応じて、排他となる従来の画像処理を設定するためのアイコンに対し、非表示、グレーアウト(S1808)、および選択可能な形で表示(S1809)の何れかの表示形態を決定する。プラグイン接続ライブラリ314は、このようにして決定した表示形態をコピーアプリケーション306に返却する。コピーアプリケーション306は、プラグイン接続ライブラリ314から受信した表示形態に応じて、従来の画像処理を設定するためのアイコンの表示を切り替える(S1808、S1809)。本実施形態では、このようにしてプラグイン接続ライブラリ314が表示形態を決定することにより、決定手段の一例が実現される。また、本実施形態では、例えば、S1808、S1809の処理により、表示手段の一例が実現される。
そして、プラグイン接続ライブラリ314は、S1803で取得した従来画像処理排他情報360に含まれる従来の画像処理の全てを選択したか否かを判定する(S1810)。この判定の結果、従来の画像処理の全てを選択していない場合、処理は、S1804に戻る。そして、従来の画像処理の全てについてS1804〜S1809の処理が終了すると、S1802で選択された設定済み画像処理プラグインアプリケーションに対する処理が完了する。そして、プラグイン接続ライブラリ314は、設定済み画像処理プラグインアプリケーション303のリストから、全ての設定済み画像処理プラグインアプリケーションを選択したか否かを判定する(S1811)。この判定の結果、全ての設定済み画像処理プラグインアプリケーションを選択していない場合、処理は、S1802に戻る。そして、全ての設定済み画像処理プラグインアプリケーションについてS1802〜S1810の処理が終了すると、図18のフローチャートによる全ての処理が終了する。
以上のように本実施形態では、画像処理プラグインアプリケーション303に対する設定に応じて、画像形成装置101に常時格納されている画像処理(従来の画像処理)の設定を行うためのアイコンの表示形態を決定する。従って、アプリケーションに対するプラグインの設定の内容に応じて、従来の画像処理の使用の可否を切り替えることが可能となるため、ユーザの利便性が向上する。尚、本実施形態において、第2の実施形態で説明した使用可否判断情報328を用いた図12のフローチャートによる処理を図18のフローチャートと組み合わせて行うようにしてもよい。
(第5の実施形態)
次に、第5の実施形態を説明する。第2の実施形態では、画像処理プラグインアプリケーション303が、デバイス制御アプリケーション304の設定および現在の機器構成を取得し、自身の表示状態を返却する場合について説明した。その他にも、ユーザによって既に設定された内容とは組み合わせられない画像処理の選択を不可能にするのではなく、ユーザにより画像処理を選択させたうえで、当該画像処理が有効となるように他のアプリケーションの設定を変更することも可能である。本実施形態では、このような場合について説明する。このように本実施形態と第1〜第4の実施形態では、画像処理の使用可否の判断に係る処理が主として異なる。従って、本実施形態の説明において、第1〜第4の実施形態と同一の部分については、図1〜図18に付した符号と同一の符号を付す等して詳細な説明を省略する。
本実施形態では、デバイス制御アプリケーション304としてコピーアプリケーション306を例に挙げて説明を行う。尚、本実施形態においては、プラグイン接続ライブラリ314は、S1204において常に表示形態を"表示"で返却するものとする。
本実施形態では、プラグイン接続ライブラリ314は、画像処理設定画面1001を表示中に拡張画像処理アイコン1006の押下を検知するタイミングに関連付けて、必要に応じて以下の処理を行う。即ち、プラグイン接続ライブラリ314は、拡張画像処理アイコン1006に対応する画像処理プラグインアプリケーション303を妨げるコピーアプリケーション306の設定の変更を実行する。
具体的にプラグイン接続ライブラリ314は、拡張画像処理アイコン1006に対応する画像処理個別設定画面502が存在しない場合、以下の処理を行う。即ち、プラグイン接続ライブラリ314は、拡張画像処理アイコン1006の押下を検知したタイミングで、直ちに現在のコピーアプリケーション306の設定情報を取得する。一方、拡張画像処理アイコン1006に対応する画像処理個別設定画面502が存在する場合、プラグイン接続ライブラリ314は、当該画像処理個別設定画面502を表示する。そして、プラグイン接続ライブラリ314は、設定ボタン1103の押下を検知したタイミングで現在のコピーアプリケーション306の設定情報を取得する。
そして、プラグイン接続ライブラリ314は、現在のコピーアプリケーション306の設定情報に基づいて、コピーアプリケーション306の設定の内容を確認する。プラグイン接続ライブラリ314は、使用可否判断情報328に基づいて、コピーアプリケーション306の設定の内容の中に、拡張画像処理アイコン1006に対応する画像処理プラグインアプリケーション303の実行を妨げる設定があるか否かを判定する。この判定の結果、現在のコピーアプリケーション306の設定の中に、拡張画像処理アイコン1006に対応する画像処理プラグインアプリケーション303の実行を妨げる設定があれば、プラグイン接続ライブラリ314は、以下の処理を行う。即ち、プラグイン接続ライブラリ314は、現在のコピーアプリケーション306の設定を変更し、変更したコピーアプリケーション306の設定の内容を返却する。これに対応し、コピーアプリケーション306は、変更された設定の内容に従い画像処理個別設定画面を含むデバイス制御アプリケーション画面401の内容を再描画する。本実施形態では、以上のようにしてプラグイン接続ライブラリ314が、コピーアプリケーション306の設定を変更することにより、第1の変更手段の一例が実現される。
以上のように本実施形態では、画像処理プラグインアプリケーション303の実行を妨げる設定がコピーアプリケーション306になされている場合、当該実行が妨げられないようにコピーアプリケーション306の設定を変更する。従って、ユーザが頻繁に設定する機能など、予めユーザによる選択を不可能にしてしまうことで利便性が低下してしまう機能を実現することが可能となる。
(第6の実施形態)
次に、第6の実施形態を説明する。第5の実施形態では、プラグイン接続ライブラリ314は、現在のコピーアプリケーション306の設定の内容では使用できない機能であっても、機能が選択された際に、この機能が動作可能になるようにコピーアプリケーション306の設定を変更する。しかしながら、これに限らず、プラグイン接続ライブラリ314は、デバイス制御アプリケーション304の変更後の設定が、ユーザが変更可能な設定であるか否かの情報をさらに付与してデバイス制御アプリケーション304に返却してもよい。本実施形態では、このような場合について説明する。このように本実施形態と第1〜第5の実施形態では、画像処理の設定に係る処理が主として異なる。従って、本実施形態の説明において、第1〜第5の実施形態と同一の部分については、図1〜図18に付した符号と同一の符号を付す等して詳細な説明を省略する。
本実施形態では、デバイス制御アプリケーション304としてコピーアプリケーション306を例に挙げて説明を行う。また、本実施形態では、拡張画像処理アイコン1006に対応する画像処理が、製本面付け機能と排他である場合を例に挙げて説明する。
本実施形態では、プラグイン接続ライブラリ314は、コピーアプリケーション306に、コピーアプリケーション306の変更後の設定の内容を返却する際、各設定内容の表示形態を併せて返却するものとする。本実施形態では、設定内容の表示形態は、第1の実施形態で説明した"可視状態(表示)"、"選択不可状態(グレーアウト)"、および"不可視状態(非表示)"の何れかから選択されるものとする。プラグイン接続ライブラリ314は、製本面付け機能を無効として、コピーアプリケーション306の設定の内容を加工すると共に、製本面付けの表示形態を"グレーアウト"として設定し、コピーアプリケーション306に返信する。これに対応し、コピーアプリケーション306は、変更された設定の内容に従い、画像処理個別設定画面を含むデバイス制御アプリケーション画面401の内容を再描画する。本実施形態では、このようにしてプラグイン接続ライブラリ314が表示形態を決定することにより、決定手段の一例が実現される。
図19は、拡張画像処理アイコン1006に対応する画像処理が有効化された後の画像処理設定画面1001の状態の一例を示す図である。コピーアプリケーション306による再描画の結果、製本面付け機能に対応するアイコン1902が選択不可能な形態で表示される。このため、ユーザは、製本面付け機能に対し設定の変更を行うことはできない。よって、適切な設定でコピー処理を行うことが可能となる。本実施形態では、アイコン1902の表示形態が選択不可能な形態とされることにより、第1のアプリケーションにより実行される処理の設定を選択することができない表示形態に、当該処理の設定を選択する部分の表示形態が決定されることの一例が実現される。
(第7の実施形態)
次に、第7の実施形態を説明する。第5の実施形態では、プラグイン接続ライブラリ314は、現在のコピーアプリケーション306の設定の内容では使用できない機能であっても、機能が選択された際に、この機能が動作可能になるようにコピーアプリケーション306の設定を変更する。このような場合において、特定の機能を有効化するために既に存在する設定を補正するだけではなく、補正すべき情報をユーザに提示する形態としてもよい。本実施形態では、このような場合について説明する。このように本実施形態と第1〜第6の実施形態では、画像処理の設定に係る情報を表示する点が主として異なる。従って、本実施形態の説明において、第1〜第6の実施形態と同一の部分については、図1〜図19に付した符号と同一の符号を付す等して詳細な説明を省略する。
本実施形態で示す処理は、画像形成装置101のHDD213に格納されたデバイス制御アプリケーション304のプログラムにより制御されるものであり、RAM212によって呼び出され、CPU211によって実行されるものとする。
本実施形態では、拡張画像処理アイコン1006に対応する画像処理が、アイコン1002に対応する製本面付け機能と排他である場合を例に挙げて説明する。また、製本面付け設定が既になされているものとする。デバイス制御アプリケーション304は、画像処理設定画面1001を表示中に拡張画像処理アイコン1006の押下を検知すると、プラグイン接続ライブラリ314に対して、現在の自身の設定と、押下されたアイコンの画像処理名321とを送信する。
プラグイン接続ライブラリ314は、HDD213に保存されている排他情報328および従来画像処理排他情報360と、デバイス制御アプリケーション304から受信した現在の設定とを比較し、現在の設定に対し補正を実施すべきか否かを判定する。この判定の結果、補正を実施する必要がない場合、プラグイン接続ライブラリ314は、押下された拡張画像処理アイコン1006に対応する画像処理を有効化する。一方、補正を実施する必要がある場合、コピーアプリケーション306は、デバイス制御アプリケーション304の現在の設定を補正する必要があることを示す補正メッセージ画面を生成して画像処理設定画面1001に対してポップアップで表示する。
図20は、操作部204に表示される補正メッセージ画面の一例を示す図である。補正メッセージ画面は、画像処理設定画面1001の拡張画像処理アイコン1006が押下されると画像処理設定画面1001に対してポップアップで表示される。補正メッセージ表示画面は、補正メッセージ2001およびOKボタン2002を含む。デバイス制御アプリケーション304は、ユーザによるOKボタン2002の押下を検知すると、補正メッセージ2001に記載の内容に従い、以下の処理を行う。即ち、デバイス制御アプリケーション304は、デバイス制御アプリケーション304の現在の設定を補正した上で、操作部204に画像処理設定画面1001を表示する。尚、画像処理設定画面1001において、補正後のアイコン1002は、アイコンの色を変更する等、設定が有効化されたことをユーザが認識できるように表示する形態とするのが望ましい。本実施形態では、例えば、補正メッセージ2001により、第2のアプリケーションによる処理の実行を妨げる第1のアプリケーションの処理の設定を、当該第2のアプリケーションによる処理の実行ができるように変更されたことを示す情報の一例が実現される。
以上のように本実施形態では、拡張画像処理アイコン1006に対応する画像処理を有効化すると共に、当該有効化に伴い補正をする必要がある場合には、デバイス制御アプリケーション304の現在の設定を補正する。そして、そのことを示す補正メッセージ2001を表示する。従って、ユーザは、拡張画像処理アイコン1006に対応する画像処理時に、どのような機能が補正されたのかを知ることが可能となるため、ユーザビリティを向上することができる。
(第8の実施形態)
次に、第8の実施形態を説明する。第5の実施形態では、プラグイン接続ライブラリ314は、現在のコピーアプリケーション306の設定の内容では使用できない機能であっても、機能が選択された際に、この機能が動作可能になるようにコピーアプリケーション306の設定を変更する。一方で、画像処理プラグインアプリケーション303の機能として、コピーアプリケーション306の設定の変更が必要な機能が設定された場合、当該機能と排他となるコピーアプリケーション306の設定の内容を警告メッセージとして表示してもよい。この場合、コピーアプリケーション306の設定を変更しなくてもよい。本実施形態では、このような場合について説明する。このように本実施形態と第1〜第7の実施形態では、画像処理の設定に係る情報を表示する点が主として異なる。従って、本実施形態の説明において、第1〜第7の実施形態と同一の部分については、図1〜図20に付した符号と同一の符号を付す等して詳細な説明を省略する。
本実施形態で示す処理は、画像形成装置101のHDD213に格納されたデバイス制御アプリケーション304のプログラムにより制御されるものであり、RAM212によって呼び出され、CPU211によって実行されるものとする。
本実施形態では、拡張画像処理アイコン1006に対応する画像処理が、アイコン1002に対応する製本面付機能と排他である場合を例に挙げて説明する。また、製本面付け設定が既になされているものとする。デバイス制御アプリケーション304は、画像処理設定画面1001を表示中に拡張画像処理アイコン1006の押下を検知すると、プラグイン接続ライブラリ314に対して、現在の自身の設定と、押下されたアイコンの画像処理名321とを送信する。プラグイン接続ライブラリ314は、HDD213に保存されている排他情報328および従来画像処理排他情報360と、デバイス制御アプリケーション304から受信した現在の設定とを比較する。
そして、プラグイン接続ライブラリ314は、デバイス制御アプリケーション304の現在の設定に対し、押下された拡張画像処理アイコン1006に対応する画像処理の有効化が可能か否かを判定する。この判定の結果、押下された拡張画像処理アイコン1006に対応する画像処理の有効化が可能である場合、プラグイン接続ライブラリ314は、当該画像処理を有効化する。一方、押下された拡張画像処理アイコン1006に対応する画像処理の有効化が不可能である場合、プラグイン接続ライブラリ314は、警告メッセージ画面を生成して画像処理設定画面1001に対してポップアップで表示する。
図21は、操作部204に表示される警告メッセージ画面の一例を示す図である。警告メッセージ表示画面は、画像処理設定画面1001の拡張画像処理アイコン1006が押下されると画像処理設定画面1001に対してポップアップで表示される。警告メッセージ画面は、警告メッセージ2101およびOKボタン2102を含む。デバイス制御アプリケーション304は、ユーザによるOKボタン2102の押下を検知すると、操作部204に画像処理設定画面1001を表示する。本実施形態では、例えば、警告メッセージ2101により、第2のアプリケーションにより実行される処理が実行できないことを示す情報の一例が実現される。
以上のように本実施形態では、デバイス制御アプリケーション304の設定により、拡張画像処理アイコン1006に対応する画像処理を有効化が可能でない場合、そのことを示す情報を表示する。従って、ユーザは、画像処理プラグインアプリケーション303の機能の設定時に、当該機能と、デバイス制御アプリケーション304のどの機能とが排他であるかを知ることが可能となる。このため、ユーザビリティを向上することができる。
(第9の実施形態)
次に、第9の実施形態を説明する。第7および第8の実施形態では、画像処理プラグインアプリケーション303の機能として、現在のデバイス制御アプリケーション304の設定の内容では使用できない機能の設定の選択時に補正メッセージ2001または警告メッセージ2101を表示する。このようにすることで、変更後のデバイス制御アプリケーション304の設定の情報や、選択した画像処理プラグインアプリケーション303の機能と排他の関係にあるデバイス制御アプリケーション304の機能をユーザに提示する。このような場面において、デバイス制御アプリケーション304の機能を変更するか否かをユーザに選択させてもよい。本実施形態では、このような場合について説明する。このように本実施形態と第1〜第8の実施形態では、画像処理の設定に係る情報を表示する点が主として異なる。従って、本実施形態の説明において、第1〜第8の実施形態と同一の部分については、図1〜図21に付した符号と同一の符号を付す等して詳細な説明を省略する。
本実施形態で示す処理は、画像形成装置101のHDD213に格納されたデバイス制御アプリケーション304のプログラムにより制御されるものであり、RAM212によって呼び出され、CPU211によって実行されるものとする。
本実施形態では、拡張画像処理アイコン1006に対応する画像処理が、アイコン1002に対応する製本面付機能と排他である場合を例に挙げて説明する。また、製本面付け設定が既になされているものとする。デバイス制御アプリケーション304は、画像処理設定画面1001を表示中に拡張画像処理アイコン1006の押下を検知すると、プラグイン接続ライブラリ314に対して、現在の自身の設定と、押下されたアイコンの画像処理名321とを送信する。
プラグイン接続ライブラリ314は、HDD213に保存されている排他情報328および従来画像処理排他情報360と、デバイス制御アプリケーション304から受信した現在の設定とを比較する。そして、プラグイン接続ライブラリ314は、押下された拡張画像処理アイコン1006に対応する画像処理と排他の関係になる、デバイス制御アプリケーション304の現在の設定が存在するか否かを判定する。この判定の結果、排他となる設定が存在しない場合、プラグイン接続ライブラリ314は、押下された拡張画像処理アイコン1006に対応する画像処理を有効化する。一方、排他となる設定が存在する場合、プラグイン接続ライブラリ314は、機能選択画面を生成して画像処理設定画面1001に対してポップアップで表示する。
図22は、操作部204に表示される機能選択画面の一例を示す図である。機能選択画面は、画像処理設定画面1001に対して拡張画像処理アイコン1006が押下されると画像処理設定画面1001に対してポップアップで表示される。機能選択画面は、補正選択メッセージ2201、適用ボタン2202、および不適用ボタン2203を含む。本実施形態では、例えば、機能選択画面により、第2の画面の一例が実現される。
デバイス制御アプリケーション304は、ユーザによる適用ボタン2202の押下を検知すると、補正選択メッセージ2201に記載された内容に従い、以下の処理を行う。即ち、デバイス制御アプリケーション304は、デバイス制御アプリケーション304の現在の設定を補正した上で、操作部204に画像処理設定画面1001を表示する。尚、画像処理設定画面1001において、補正後のアイコン1002は、アイコンの色を変更する等、設定が有効化されたことをユーザが認識できるように表示する形態とするのが望ましい。本実施形態では、例えば、デバイス制御アプリケーション304が、デバイス制御アプリケーション304の現在の設定を補正することにより、第2の変更手段の一例が実現される。
一方、不適用ボタン2203の押下を検知すると、デバイス制御アプリケーション304は、デバイス制御アプリケーション304の現在の設定を補正せず、操作部204に画像処理設定画面1001を表示する。
以上のように本実施形態では、拡張画像処理アイコン1006に対応する画像処理と排他の関係にあるコピーアプリケーション306の設定を変更するか否かをユーザに選択させる。従って、ユーザは、拡張画像処理アイコン1006に対応する画像処理と排他の関係となる設定がデバイス制御アプリケーション304に存在する場合、当該設定を補正するか否かを選択することが可能となる。このため、ユーザビリティが向上する。
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
(その他の実施例)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。