(57)【要約】      （修正有）【課題】画像形成装置に追加された処理を含むジョブの設定を容易に行えるようにする。【解決手段】画像形成装置は、メインメニュー画面で選択されたアイコンに対応するアプリケーションを選択するための画面として、例えば、画像処理設定画面８０１を表示する。画像処理設定画面８０１は、既存のアプリケーションを選択するための画像処理アイコン８０２〜８０５と、プラグインとして追加されたアプリケーションを選択するための拡張画像処理アイコン８０６とを表示する。【選択図】図８
2018015947.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
前記画像形成装置がジョブを実行するために用いられる第１のアプリケーションを記憶する第１の記憶手段と、
前記ジョブを実行するために必要な処理を選択するための第１の画面を表示する第１の表示手段と、
前記第１のアプリケーションの実行に伴って前記画像形成装置に第１の処理を実行させるために用いる第２のアプリケーションを記憶する第２の記憶手段と、
前記第１のアプリケーションの実行に伴って前記画像形成装置または外部装置に第２の処理を実行させるために用いられる第３のアプリケーションを外部の記憶媒体または記憶装置から取得する取得手段と、
前記取得手段により取得された前記第３のアプリケーションを記憶する第３の記憶手段と、
を有し、
前記第１の表示手段は、前記第１の処理を選択させるための情報と、前記第２の処理を選択させるための情報とを前記第１の画面に表示することを特徴とする画像形成装置。
【請求項２】
前記第３の記憶手段は、前記第３のアプリケーションと、当該第３のアプリケーションを用いて実行される前記第２の処理を選択させるための情報とを相互に関連付けて記憶することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記第１の画面において、前記第３のアプリケーションを用いて実行される前記第２の処理が選択されると、当該第２の処理に関する設定を行うための第２の画面を表示する第２の表示手段を更に有することを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記第３の記憶手段は、前記第３のアプリケーションと、当該第３のアプリケーションにより実行される前記第２の処理を選択させるための情報と、当該第２の処理に関する設定を行うための第２の画面の情報とを相互に関連付けて記憶することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記第３の記憶手段は、前記第２のアプリケーションに、当該第２のアプリケーションにより実行される前記第２の処理の識別情報を更に関連付けて記憶することを特徴とする請求項２または４に記載の画像形成装置。
【請求項６】
前記第１のアプリケーションと、前記第２のアプリケーションおよび前記第３のアプリケーションとの少なくとも何れか一方とを用いて前記ジョブを実行するジョブ実行手段を更に有し、
前記ジョブ実行手段は、前記第１の処理と前記第２の処理のうち、前記第１の画面で選択された処理を行って、前記ジョブを実行することを特徴とする請求項１〜５の何れか１項に記載の画像形成装置。
【請求項７】
前記第１の表示手段は、前記第１の処理を選択させるための情報と、前記第２の処理のうち、前記第１のアプリケーションの実行に伴って実行することが可能な前記第３のアプリケーションにより実行される前記第２の処理を選択させるための情報とを前記第１の画面に表示することを特徴とする請求項１〜６の何れか１項に記載の画像形成装置。
【請求項８】
前記第１のアプリケーションで利用可能な前記第２の処理に関する情報を記憶媒体または記憶装置に記憶する第４の記憶手段と、
前記第４の記憶手段により記憶された前記情報に基づいて、前記第１のアプリケーションの実行に伴って実行することが可能な前記第３のアプリケーションを特定する特定手段と、を更に有することを特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記第２のアプリケーションと前記第３のアプリケーションは、画像処理を含む処理を行うためのアプリケーションであることを特徴とする請求項１〜８の何れか１項に記載の画像形成装置。
【請求項１０】
前記第１の処理を選択させるための情報と、前記第２の処理を選択させるための情報は、画像情報を含むことを特徴とする請求項１〜９の何れか１項に記載の画像形成装置。
【請求項１１】
画像形成装置がジョブを実行するために用いられる第１のアプリケーションを記憶媒体または記憶装置に記憶する第１の記憶工程と、
前記ジョブを実行するために必要な処理を選択するための第１の画面を表示装置に表示する第１の表示工程と、
前記第１のアプリケーションの実行に伴って前記画像形成装置に第１の処理を実行させるために用いる第２のアプリケーションを記憶媒体または記憶装置に記憶する第２の記憶工程と、
前記第１のアプリケーションの実行に伴って前記画像形成装置または前記画像形成装置の外部の装置に第２の処理を実行させるために用いられる第３のアプリケーションを外部の記憶媒体または記憶装置から取得する第１の取得工程と、
前記第１の取得工程により取得された前記第３のアプリケーションを記憶媒体または記憶装置に記憶する第３の記憶工程と、
を有し、
前記第１の表示工程は、前記第１の処理を選択させるための情報と、前記第２の処理を選択させるための情報とを前記第１の画面に表示することを特徴とする画像形成方法。
【請求項１２】
請求項１〜１０の何れか１項に記載の画像形成装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成方法、およびプログラムに関し、特に、画像形成装置でジョブを実行するために用いて好適なものである。
【背景技術】
【０００２】
画像形成装置において工場出荷時から提供されていない画像処理を含む各種ジョブを実行する技術として特許文献１に記載の技術がある。特許文献１には、常駐エージェント（プリンタ制御オブジェクトおよびイメージスキャナ制御オブジェクト）を有する画像形成装置に、プリントデータに対する処理を代行するモバイルエージェントを転送することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−４８７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の構成では、モバイルエージェントと常駐エージェントとが独立して存在する。その結果、モバイルエージェントと常駐エージェントは共通の制御ライブラリを利用することはできても、それぞれが連携して動作することができない。従って、特許文献１の構成で新規の画像処理をジョブに挿入する場合、新規の画像処理を含むジョブを実行するプログラムをプラグインアプリケーションとして作成し、画像形成装置にインストールする必要がある。この場合、常駐アプリケーションと、プログラムをプラグインアプリケーションとが混在し、常駐アプリケーションの画面情報と、新規の画像処理を実現するプラグインアプリケーションの画面情報との両者が画像形成装置に存在することになる。その結果、ユーザは、ジョブに関する設定を行う際に、利用したい処理に応じて、常駐エージェントとプラグインアプリケーションとを使い分ける必要がある。このため、ユーザの利便性の低下を招く虞がある。
【０００５】
本発明は、以上の問題点に鑑みてなされたものであり、画像形成装置に追加された処理を含むジョブの設定を容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像形成装置は、画像形成装置であって、前記画像形成装置がジョブを実行するために用いられる第１のアプリケーションを記憶する第１の記憶手段と、前記ジョブを実行するために必要な処理を選択するための第１の画面を表示する第１の表示手段と、前記第１のアプリケーションの実行に伴って前記画像形成装置または外部装置に処理を実行させるために用いられる第２のアプリケーションを外部の記憶媒体または記憶装置から取得する第１の取得手段と、前記第１の取得手段により取得された前記第２のアプリケーションを記憶する第３の記憶手段と、を有し、前記第１の表示手段は、前記第１のアプリケーションにより実行される処理を選択させるための情報と、前記第２のアプリケーションにより実行される処理を選択させるための情報とを前記第１の画面に表示することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像形成装置に追加された処理を含むジョブの設定を容易に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成システムの構成を表す図である。
【図２】画像形成装置の構成を表す図である。
【図３】画像形成装置におけるソフトウェアの構造を表す図である。
【図４】デバイス制御アプリケーション画面を表す図である。
【図５】画像処理プラグインアプリケーションの画面情報の内容を表す図である。
【図６】メインメニュー画面を表す図である。
【図７】コピーアプリケーションのメイン画面を表す図である。
【図８】画像処理設定画面を表す図である。
【図９】拡張画像処理個別設定画面を表す図である。
【図１０】画像形成装置の第１の処理を説明するフローチャートである。
【図１１】画像形成装置の第２の処理を説明するフローチャートである。
【図１２】スキャン送信アプリケーションのメイン画面を表す図である。
【図１３】フォーマット設定画面を表す図である。
【図１４】画像形成装置の第３の処理を説明するフローチャートである。
【図１５】画像形成装置の第４の処理を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、実施形態を説明する。
（第１の実施形態）
まず、第１の実施形態を説明する。
図１は、画像形成システムの構成の一例を表す図である。画像形成システムは、画像形成装置１０１、１０２と、情報処理端末１０３、１０４と、サーバ１０５とを有する。画像形成装置１０１、１０２と、情報処理端末１０３、１０４と、サーバ１０５は、ネットワーク１０６により相互に接続されて、通信可能である。図１では、画像形成装置１０１、１０２が２つである場合を例に挙げて示すが、画像形成装置の数は任意（１つまたは２以上）である。また、それぞれの画像形成装置１０１、１０２は、同じもので実現することができる。従って、以下では、画像形成装置１０１、１０２を代表して画像形成装置１０１について説明し、画像形成装置１０２についての詳細な説明を省略する。尚、ネットワーク１０６は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｉｎｔｅｒｎｅｔ等、画像形成システム内の装置が相互に通信できるものであればよい。
【００１０】
画像形成装置１０１は、情報処理端末１０３、１０４から画像データの印刷依頼（印刷データ）を受信して印刷することや、画像形成装置１０１に備わるスキャナで画像データを読み取ることや、スキャナで読み取られた画像データを印刷することが可能である。また、画像形成装置１０１は、情報処理端末１０３、１０４から受信した印刷データを保存したり、画像形成装置１０１のスキャナで読み取られた画像を情報処理端末１０３、１０４に送信したりすることが可能である。更に画像形成装置１０１は、サーバ１０５を用いて画像処理を行ったり、サーバ１０５に格納されている文書を印刷したりすることが可能である。画像形成装置１０１は、この他に、ＭＦＰ（Multifunction Peripheral）等の公知の画像形成装置が有する機能を実現することが可能である。
【００１１】
図２は、画像形成装置１０１の構成の一例を表す図である。
画像形成装置１０１は、コントローラ２０１、プリンタ２０２、スキャナ２０３、および操作部２０４を有する。コントローラ２０１は、ＣＰＵ２１１、ＲＡＭ２１２、ＨＤＤ２１３、ネットワークＩ／Ｆ２１４、プリンタＩ／Ｆ２１５、スキャナＩ／Ｆ２１６、操作部Ｉ／Ｆ２１７、および拡張Ｉ／Ｆ２１８を有する。ＣＰＵ２１１は、ＲＡＭ２１２、ＨＤＤ２１３、ネットワークＩ／Ｆ２１４、プリンタＩ／Ｆ２１５、スキャナＩ／Ｆ２１６、操作部Ｉ／Ｆ２１７、および拡張Ｉ／Ｆ２１８とデータを授受することが可能である。また、ＣＰＵ２１１は、ＨＤＤ２１３から読み出した命令をＲＡＭ２１２に展開し、ＲＡＭ２１２に展開した命令を実行する。
【００１２】
ＨＤＤ２１３には、ＣＰＵ２１１で実行可能な命令、画像形成装置１０１で使用する設定値、およびユーザから依頼された処理に関するデータ等を記憶しておくことが可能である。ＲＡＭ２１２は、ＣＰＵ２１１がＨＤＤ２１３から読み出した命令を一時的に格納するための領域である。ＲＡＭ２１２は、命令の実行に必要な各種のデータを記憶しておくことが可能である。ネットワークＩ／Ｆ２１４は、画像形成システム内の装置とネットワーク通信を行うためのインターフェイスである。ネットワークＩ／Ｆ２１４は、データ受信を行ったことをＣＰＵ２１１に伝達することや、ＲＡＭ２１２上のデータをネットワーク１０６に送信することが可能である。
【００１３】
プリンタＩ／Ｆ２１５は、ＣＰＵ２１１から送信された印刷データをプリンタ２０２に送信することや、プリンタ２０２から受信したプリンタの状態をＣＰＵ２１１に伝達することが可能である。スキャナＩ／Ｆ２１６は、ＣＰＵ２１１から送信された画像読み取り指示をスキャナ２０３に送信し、スキャナ２０３から受信した画像データをＣＰＵ２１１に伝達することや、スキャナ２０３から受信した状態をＣＰＵ２１１に伝達することが可能である。
【００１４】
操作部Ｉ／Ｆ２１７は、操作部２０４から入力されたユーザからの指示をＣＰＵ２１１に伝達することや、ユーザが操作するための画面情報を操作部２０４に伝達することが可能である。拡張Ｉ／Ｆ２１８は、画像形成装置１０１に外部機器を接続することを可能とするインターフェイスである。拡張Ｉ／Ｆ２１８は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）形式のインターフェイスを具備する。画像形成装置１０１は、ＵＳＢメモリ等の外部記憶装置が拡張Ｉ／Ｆ２１８に接続されることにより、当該外部記憶装置に記憶されているデータの読み取りおよび当該外部記憶装置に対するデータの書き込みを行うことが可能である。
【００１５】
プリンタ２０２は、プリンタＩ／Ｆ２１５から受信した画像データを用紙に印刷することや、プリンタ２０２の状態をプリンタＩ／Ｆ２１５に伝達することが可能である。スキャナ２０３は、スキャナＩ／Ｆ２１６から受信した画像読み取り指示に従って、自身に置かれた用紙に表示されている情報を読み取ってデジタル化してスキャナＩ／Ｆ２１６に伝達することが可能である。また、スキャナ２０３は、自身の状態をスキャナＩ／Ｆ２１６に伝達することが可能である。操作部２０４は、画像形成装置１０１に対して各種の指示を行うための操作をユーザに行わせるためのインターフェイスである。例えば、操作部２０４は、タッチパネルを有する液晶画面を具備し、ユーザに操作画面を提供すると共に、ユーザからの操作を受け付ける。
【００１６】
図３は、ＣＰＵ２１１が処理するソフトウェアの構造の一例を模式的に表す階層図である。図３に示す構造を有するソフトウェアは、例えば、画像形成装置１０１のＨＤＤ２１３に記憶されたプログラムを用いることにより構成される。図３において、一部の例外を除いて、下位の階層が提供するサービスを上位の階層が利用する関係になっている。
図３において、最下層は、オペレーティングシステム３１６を含み、プログラムの実行の管理やメモリ管理等を行う階層である。オペレーティングシステム３１６の中には、プリンタ制御ドライバ３１７、スキャナ制御ドライバ３１８、およびネットワークＩ／Ｆ制御ドライバ３１９が組み込まれる。プリンタ制御ドライバ３１７、スキャナ制御ドライバ３１８、およびネットワークＩ／Ｆ制御ドライバ３１９は、相互に連携することにより機能することが可能である。プリンタ制御ドライバ３１７はプリンタＩ／Ｆ２１５を介してプリンタ２０２を制御するためのソフトウェアである。スキャナ制御ドライバ３１８はスキャナＩ／Ｆ２１６を介してスキャナ２０３を制御するためのソフトウェアである。ネットワークＩ／Ｆ制御ドライバ３１９はネットワークＩ／Ｆ２１４を制御するためのソフトウェアである。
【００１７】
最下層から２段目の層には、デバイス制御ライブラリ３０９が含まれる。デバイス制御ライブラリ３０９は、後述の単独機能プラグインアプリケーション３０２またはデバイス制御アプリケーション３０４と静的あるいは動的にリンクされる。さらにデバイス制御ライブラリ３０９は、各アプリケーションプログラムによる指示に基づいて、オペレーティングシステム３１６を制御する。また、デバイス制御ライブラリ３０９は、接続ライブラリ３１４および画像処理ライブラリ３１５に対して画像処理を依頼する。画像処理を依頼する一連のフローの一例については後述する。
【００１８】
次に、デバイス制御ライブラリ３０９の一例について説明する。
プリントライブラリ３１０は、プリンタ制御ドライバ３１７の機能を利用してプリントジョブの制御を行うためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を提供するライブラリである。プリントジョブは、画像形成装置１０１のＨＤＤ２１３に保存されている印刷データを印刷することや、ネットワークＩ／Ｆ２１４を通して外部装置から受信した印刷データを印刷するといった一連の処理を指す。外部装置は、例えば、情報処理端末１０３、１０４である。
【００１９】
コピーライブラリ３１１は、スキャナ制御ドライバ３１８およびプリンタ制御ドライバ３１７の機能を利用して、コピージョブの制御を行うためのＡＰＩを提供するライブラリである。コピージョブは、スキャナ２０３でスキャンされた画像データをプリンタ２０２で印刷する一連の処理を指す。
【００２０】
スキャン保存ライブラリ３１２は、スキャナ制御ドライバ３１８の機能を利用してスキャン保存ジョブの制御を行うためのＡＰＩを提供するライブラリである。スキャン保存ジョブは、スキャナ２０３でスキャンされた画像データを印刷データまたは汎用フォーマットに変換後、ＨＤＤ２１３または拡張Ｉ／Ｆ２１８に接続されているＵＳＢ等の外部記憶装置に保存する一連の処理を指す。尚、汎用フォーマットは、例えば、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）といったデータフォーマットである。この他、汎用フォーマットは、ＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）またはＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）であってもよい。
【００２１】
スキャン送信ライブラリ３１３は、スキャナ制御ドライバ３１８およびネットワークＩ／Ｆ制御ドライバ３１９の機能を利用して、スキャン送信ジョブの制御を行うためのＡＰＩを提供するライブラリである。スキャン送信ジョブは、スキャナ２０３でスキャンされた画像データを汎用フォーマットに変換後、ネットワークＩ／Ｆ２１４を通してファイルサーバに送信したり、電子メールに添付して外部装置に送信したりする一連の処理を指す。ファイルサーバは、例えば、サーバ１０５であり、外部装置は、例えば、情報処理端末１０３、１０４である。
【００２２】
最下層から２段目の層には、さらに接続ライブラリ３１４および画像処理ライブラリ３１５が含まれる。
画像処理ライブラリ３１５は、ＣＰＵ２１１によって実行される様々な画像処理を実行するためのＡＰＩを提供するライブラリである。ここでの様々な画像処理は、工場出荷時より画像形成装置１０１で利用可能な処理を指す。かかる画像処理は、例えば、画像形成装置１０１に入力された画像データを汎用フォーマットに変換する処理、シャープネス処理、およびページ集約を含む。尚、画像処理ライブラリ３１５の数は１つであっても複数であってもよい。画像処理ライブラリ３１５のそれぞれは固有の画像処理名３２６を保有する。例えば、シャープネス機能を持つ画像処理ライブラリ３１５は、画像処理名３２６としてＳｈａｒｐｎｅｓｓを保有する。尚、画像処理名３２６は、デバイス制御ライブラリ３０９が、複数の画像処理ライブラリ３１５を識別するための識別子として利用される。
【００２３】
接続ライブラリ３１４は、デバイス制御ライブラリ３０９からの画像処理実行依頼に応じて、画像形成装置１０１にインストールされている画像処理プラグインアプリケーション３０３に対し実行指示を行うライブラリである。接続ライブラリ３１４は、画像処理プラグインアプリケーション３０３に対し、静的または動的にリンクしている。接続ライブラリ３１４は、後述するデバイス制御アプリケーション３０４ともリンクしている。接続ライブラリ３１４は、実行可能な画像処理プラグインアプリケーション３０３のリストをデバイス制御アプリケーション３０４に伝達することが可能である。画像処理プラグインアプリケーション３０３のリストは、例えば、画像形成装置１０１にインストールされている１つまたは複数の画像処理プラグインアプリケーション３０３のそれぞれについての画像処理名３２１および画面情報３２７を含む。
【００２４】
最上層は、プラグインアプリケーション３０１およびデバイス制御アプリケーション３０４を含むアプリケーション層である。デバイス制御アプリケーション３０４は、デバイス制御ライブラリ３０９の各ＡＰＩをコールすることによって様々な機能を提供する。尚、デバイス制御アプリケーション３０４は、ＨＤＤ２１３に記憶されている常駐のアプリケーションである。デバイス制御アプリケーション３０４は、ファームのバージョンアップにより、その機能を拡張することが可能である。デバイス制御アプリケーション３０４に含まれるプリントアプリケーション３０５、コピーアプリケーション３０６、スキャン保存アプリケーション３０７、スキャン送信アプリケーション３０８は、それぞれ画面情報３２２、３２３、３２４、３２５を有する。ＣＰＵ２１１は、操作部Ｉ／Ｆ２１７を通して操作部２０４にそれぞれの画面情報３２２、３２３、３２４、３２５を表示する。デバイス制御アプリケーション３０４は、接続ライブラリ３１４に対し、画像処理プラグインアプリケーション３０３のリスト（画像処理名３２１および画面情報３２７）の取得依頼を行うことが可能である。この処理は、後述するデバイス制御アプリケーション３０４の画面上に、画像形成装置１０１にインストールされている画像処理プラグインアプリケーション３０３を有効化するための画面情報を表示する処理のために利用される。
【００２５】
ここで、デバイス制御アプリケーション３０４の画面情報３２２、３２３、３２４、３２５の内容の一例について、図４を用いて説明する。
例えば、画面情報３２２には、起動用アイコン４０２、メイン画面４０３、メイン設定画面４０５、および画像処理設定画面４０４の夫々の画面を表示するために用いる画面情報が含まれる。画面情報３２３、３２４、３２５についても同様である。以下の説明では、必要に応じて、起動用アイコン４０２、メイン画面４０３、メイン設定画面４０５、および画像処理設定画面４０４を、デバイス制御アプリケーション画面４０１と総称する。
【００２６】
起動用アイコン４０２は、画像形成装置１０１の起動後に操作部２０４に表示されるメインメニュー画面に表示されるアイコンである。ＣＰＵ２１１は、起動用アイコン４０２の押下を検知すると、それぞれのアイコンに応じたデバイス制御アプリケーション３０４に対する起動指示が行われる。
【００２７】
メイン画面４０３は、前記起動指示の後に操作部２０４に表示されるデバイス制御アプリケーション３０４のトップ画面である。画像処理設定画面４０４は、それぞれのジョブに対して画像処理を設定する際に用いられる画面である。メイン設定画面４０５は、デバイス制御アプリケーション３０４に固有の設定を行うための画面である。メイン設定画面４０５は、例えば、スキャン送信アプリケーション３０８における宛先設定を行うための画面や、コピーアプリケーション３０６における印刷設定を行うための画面である。ＣＰＵ２１１は、画面情報３２２、３２３、３２４、３２５に対するユーザの操作による設定を検知すると、当該設定の内容をＲＡＭ２１２に書き込む。
【００２８】
デバイス制御アプリケーション３０４は、画像処理設定画面４０４に対する操作に応じて各ジョブの設定に画像処理名を付与する。このとき、デバイス制御アプリケーション３０４は、ユーザが操作部２０４を押下して画像処理を選択することによって各ジョブの設定に画像処理名を付与することが可能である。また、デバイス制御アプリケーション３０４は、各ジョブに必要な画像処理についての画像処理名を自動で設定することも可能である。
【００２９】
また、デバイス制御アプリケーション３０４のみならずデバイス制御ライブラリ３０９が画像処理名を設定することも可能である。デバイス制御ライブラリ３０９が画像処理名を設定するケースとして、例えば、デバイス制御ライブラリ３０９がオペレーティングシステム３１６を制御するにあたり必要な画像処理がある場合、当該画像処理についての画像処理名を設定するケースがある。尚、ジョブに用いられる画像処理の数が複数である場合には、それぞれの画像処理に対応する画像処理名が設定される（即ち、複数の画像処理名が設定される）。また、ジョブの実行に際し、画像処理プラグインアプリケーション３０３等、画像処理を伴うアプリケーション（即ち、画像処理を行うこと）が選択されなかった場合、画像処理名は設定されない。ＣＰＵ２１１（デバイス制御アプリケーション３０４）は、ユーザによる操作部２０４の操作に基づくジョブ実行の指示を検知すると、デバイス制御ライブラリ３０９のＡＰＩをコールすることによりジョブを開始する。尚、具体的なジョブの設定方法および画像処理の設定方法の一例については後述する。
【００３０】
次に、デバイス制御アプリケーション３０４の一例について説明する。プリントアプリケーション３０５は、プリントライブラリ３１０のＡＰＩをコールすることによりプリントジョブを実行する。コピーアプリケーション３０６は、コピーライブラリ３１１のＡＰＩをコールすることによりコピージョブを実行する。スキャン保存アプリケーション３０７は、スキャン保存ライブラリ３１２のＡＰＩをコールすることによりスキャン保存ジョブを実行する。スキャン送信アプリケーション３０８は、スキャン送信ライブラリ３１３のＡＰＩをコールすることでスキャン送信ジョブを実行する。
【００３１】
次に、プラグインアプリケーション３０１の一例について説明する。プラグインアプリケーション３０１は、常駐アプリケーションであるデバイス制御アプリケーション３０４とは別に、プラグインとしてインストールおよびアンインストールが可能なアプリケーションである。プラグインアプリケーション３０１は、単独機能プラグインアプリケーション３０２と、画像処理プラグインアプリケーション３０３とを有する。プラグインアプリケーション３０１には、それぞれ動作に必要なプログラムがパッケージングされている。プラグインアプリケーション３０１は、リモートＵＩ（ＵｓｅｒＩｎｔｅｒｆａｃｅ）等を用いることにより、画像形成装置１０１にインストールされる。尚、リモートＵＩは、外部装置におけるＷｅｂブラウザからネットワークＩ／Ｆ２１４を経由して画像形成装置１０１にアクセスし、画像形成装置１０１の状況の確認、印刷ジョブの操作、および各種設定等を行うことができる仕組みである。外部装置は、例えば、情報処理端末１０３、１０４である。また、プラグインアプリケーション３０１のそれぞれ（単独機能プラグインアプリケーション３０２および画像処理プラグインアプリケーション３０３）は、それぞれ個別に起動および停止を行うことが可能である。
【００３２】
以下に、プラグインアプリケーション３０１のインストールから起動、停止、アンインストールまでの一連の流れの一例を示す。
ＣＰＵ２１１は、プラグインアプリケーション３０１のインストールを検知すると、当該プラグインアプリケーション３０１の情報をＨＤＤ２１３に保存する。続いてＣＰＵ２１１は、プラグインアプリケーション３０１に対する開始指示を検知すると、当該プラグインアプリケーション３０１に対する起動指示を行う。プラグインアプリケーション３０１は起動している間、各プログラムの内容を実行する事が可能である。続いてＣＰＵ２１１は、プラグインアプリケーション３０１に対する停止指示を検知すると、当該プラグインアプリケーション３０１に対して停止指示を行う。更にＣＰＵ２１１は、プラグインアプリケーション３０１に対するアンインストール指示を検知すると、当該プラグインアプリケーション３０１の情報をＨＤＤ２１３から削除する。尚、これらの指示は、例えば、リモートＵＩや操作部２０４から行うことが可能であるが、これ以外の方法でこれらの指示が行われても構わない。
【００３３】
次に、単独機能プラグインアプリケーション３０２の一例について説明する。単独機能プラグインアプリケーション３０２は、画面情報３２０を有する。単独機能プラグインアプリケーション３０２は、デバイス制御ライブラリ３０９のＡＰＩをコールすることで常駐のデバイス制御アプリケーション３０４とは別の機能や画面をユーザに提供することができる。例えば、単独機能プラグインアプリケーション３０２は、或る画像データをコピーすると共にスキャンして送信する機能等、複数の機能を組み合わせて提供することが可能である。また、単独機能プラグインアプリケーション３０２は、画面情報３２０に対するユーザの操作に基づく画像処理の設定を検知すると、ジョブの設定に、当該画像処理に対応する画像処理名を設定する。単独機能プラグインアプリケーション３０２は、ユーザからの明示的な設定がなくても、デフォルトで実現したい画像処理に対応する画像処理名を設定することが可能である。尚、単独機能プラグインアプリケーション３０２は、画像処理を行う機能を有していなくてもよい。この場合、画像処理の設定は行われない。
【００３４】
次に、画像処理プラグインアプリケーション３０３の一例について説明する。画像処理プラグインアプリケーション３０３は、特定の画像処理を提供するアプリケーションである。画像処理プラグインアプリケーション３０３は、１つであっても複数であってもよい。ここでの特定の画像処理は、画像処理ライブラリ３１５とは別に拡張する画像処理を指す。例えば、入力画像に対するフォーマット変換や、斜行補正や、ＯＣＲ（ｏｐｔｉｃａｌ  ｃｈａｒａｃｔｅｒ  ｒｅｃｏｇｎｉｔｉｏｎ）後の翻訳データの生成といった処理等が、特定の画像処理に含まれる。
【００３５】
画像処理プラグインアプリケーション３０３は、それ自体が画像処理機能を持っていなくてもよい。例えば、サーバ１０５に画像処理のプログラムが存在している場合、画像処理プラグインアプリケーション３０３は、ネットワークＩ／Ｆ２１４を通し、サーバ１０５に対して画像処理の指示を送信することで、画像処理を実現することが可能である。画像処理プラグインアプリケーション３０３のそれぞれは、自身が実行する画像処理の内容を識別するための識別子として画像処理名３２１を保持する。例えば、斜行補正を行う画像処理プラグインアプリケーション３０３には、画像処理名３２１として"ＴｉｌｔＣｏｒｒｅｃｔ"が設定される。画像処理名３２１は固有であり、同じ画像処理名３２１を持つ複数の画像処理プラグインアプリケーション３０３は画像形成装置１０１のＨＤＤ２１３に存在しない。即ち、画像形成装置１０１に既にインストールされた画像処理プラグインアプリケーション３０３と画像処理名３２１が同じ画像処理プラグインアプリケーション３０３を画像形成装置１０１にインストールすることはできない。デバイス制御ライブラリ３０９は、接続ライブラリ３１４に対して画像処理を依頼する際、画像処理名および処理の詳細なパラメータを設定する。接続ライブラリ３１４は、ジョブに設定された画像処理名を元に画像処理プラグインアプリケーション３０３に対し処理の実行指示を行う。具体的な画像処理プラグインアプリケーション３０３の呼び出し方の一例については、図１１のフローチャートを参照しながら後述する。
【００３６】
尚、接続ライブラリ３１４が画像処理プラグインアプリケーション３０３に対して処理の実行指示を行う部分は、図３において、下位モジュールが上位モジュールに対してコールすることが可能な部分である。画像形成装置１０１は、プラグインアプリケーション３０１と同様に、リモートＵＩ等を用いて、画像処理プラグインアプリケーション３０３を画像形成装置１０１にインストールし起動することで、画像処理プラグインアプリケーション３０３を認識できる。
【００３７】
また、画像処理プラグインアプリケーション３０３は画面情報３２７を保持する。図５は、画像処理プラグインアプリケーション３０３の画面情報３２７の内容の一例を表す図である。画像処理プラグインアプリケーション３０３の画面情報３２７には、画像処理アイコン５０１および画像処理設定画面５０２の画像情報が含まれる。画面情報３２７は、デバイス制御アプリケーション３０４の起動時において、デバイス制御アプリケーション画面４０１を生成するのに用いられる。尚、具体的なデバイス制御アプリケーション画面４０１の生成方法の一例については後述する。画像処理プラグインアプリケーション３０３は、画像処理アイコン５０１および画像処理設定画面５０２のそれぞれを画像データとして保持することが可能である。また、画像処理プラグインアプリケーション３０３は、画像処理アイコン５０１および画像処理設定画面５０２のそれぞれを文字データとして保持しておき、実際の画面生成時に、当該文字データに基づいて動的に画面を生成してもよい。文字データとしては、例えば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）またはＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等が挙げられる。また、画像処理アイコン５０１および画像処理設定画面５０２の構成はこれ以外の構成でも構わない。
【００３８】
以上の例では、例えば、デバイス制御アプリケーション３０４が、ＨＤＤ２１３に記憶されることにより、画像形成装置がジョブを実行するために用いられる第１のアプリケーションを記憶する第１の記憶処理の一例が実現される。また、画像処理ライブラリ３１５および画像処理名３２６が、ＨＤＤ２１３に記憶されることにより第２の記憶処理の一例が実現される。また、例えば、外部の記憶媒体または記憶装置に記憶されているプラグインアプリケーション３０１のインストールにより、画像形成装置または外部装置に処理を実行させるために用いられる第３のアプリケーションを取得する取得処理の一例が実現される。また、例えば、インストールされたプラグインアプリケーション３０１をＨＤＤ２１３に記憶することにより第３の記憶処理の一例が実現される。また、例えば、画像処理設定画面４０４に含まれるアイコンにより、第１の処理を選択させるための情報の一例が実現される。また、例えば、画像処理アイコン５０１により、第２の処理を選択させるための情報の一例が実現される。また、例えば、画像処理設定画面５０２の画像情報により、第３のアプリケーションにより実行される第２の処理に関する設定を行うための第２の画面の情報の一例が実現される。また、例えば、画像処理名３２１により、第３のアプリケーションにより実行される第２の処理の識別情報の一例が実現される。尚、情報の記憶は、ＨＤＤ２１３以外の記憶媒体または記憶装置で行われてもよい。
【００３９】
次に、画像形成装置１０１の起動時の処理の一例について説明する。
図６は、メインメニュー画面６０１の一例を表す図である。メインメニュー画面６０１は、操作部２０４に表示される。ＣＰＵ２１１は、画像形成装置１０１の起動時に、ＨＤＤ２１３から、メインメニューを構成するデバイス制御アプリケーション３０４を取得する。更に、ＣＰＵ２１１は、デバイス制御アプリケーション３０４の起動用アイコン４０２を取得し、メインメニュー画面６０１に表示する。図６において、プリントアイコン６０２、コピーアイコン６０３、スキャン保存アイコン６０４、およびスキャン送信アイコン６０５は、図４に示す起動用アイコン４０２の一例である。メインメニュー画面６０１には、常駐のデバイス制御アプリケーション３０４の起動用アイコン４０２の他にも、単独機能プラグインアプリケーション３０２の起動用アイコン６０６を表示することが可能である。
【００４０】
ＣＰＵ２１１は、画像形成装置１０１の起動時に、プラグインアプリケーション３０１から、単独機能プラグインアプリケーション３０２の画面情報３２０として起動用アイコン６０６を取得し、メインメニュー画面６０１に表示する。このように、単独機能プラグインアプリケーション３０２の起動用アイコン６０６は、単独機能プラグインアプリケーション３０２の画面情報３２０に含まれる。ＣＰＵ２１１は、単独機能プラグインアプリケーション３０２の起動用アイコン６０６の押下を検知すると、単独機能プラグインアプリケーション３０２を起動する。
【００４１】
次に、デバイス制御アプリケーション３０４が自身のデバイス制御アプリケーション画面４０１に対し、画像処理プラグインアプリケーション３０３を有効化するための画面情報を挿入する際の処理の一例を説明する。ここでは、デバイス制御アプリケーション３０４の具体例としてコピーアプリケーション３０６を挙げて説明する。まず、コピーアプリケーション３０６の画面構成の一例について説明する。
【００４２】
図７は、コピーアプリケーション３０６のメイン画面７０１の一例を表す図である。メイン設定画面７０２は、図４に示すメイン設定画面４０５の一例であり、コピーアプリケーション３０６に特化した設定画面である。メイン設定画面７０２は、印刷の倍率設定および部数設定といった、コピージョブに特化した設定をするための画面である。画像処理設定ボタン７０３は、コピージョブに対する画像処理を設定する画面（画像処理設定画面４０４）を表示するためのボタンである。
【００４３】
図８は、画像処理設定画面８０１の一例を表す図である。画像処理設定画面８０１は、画像処理設定ボタン７０３が押下された後に表示される画面である。尚、画像処理設定画面８０１は、画像処理設定画面４０４の一例である。
【００４４】
画像処理設定画面８０１には、各画像処理を設定するための画像処理アイコン８０２、８０３、８０４、８０５、８０６が表示される。尚、画像処理アイコン８０２、８０３、８０４、８０５は、コピーアプリケーション３０６についての画像処理設定画面４０４に含まれる画像処理を選択するためのアイコンである。また、拡張画像処理アイコン８０６は、プラグインとして追加された画像処理プラグインアプリケーション３０３の画像処理アイコン５０１である。コピーアプリケーション３０６の画面情報３２３に含まれる画像処理アイコン８０２〜８０５と、画像処理プラグインアプリケーション３０３の画面情報３２７に含まれる拡張画像処理アイコン８０６は、同じ画像処理設定画面８０１に配置される。従って、プラグインして追加された画像処理の設定も、通常のデバイス制御アプリケーション３０４の画面（デバイス制御アプリケーション画面４０１）の中で設定することが可能となる。尚、図８では、拡張画像処理アイコン８０６が１つだけ表示されている場合を例に挙げて示す。図８に示す例では、画像処理設定画面８０１に配置される拡張画像処理アイコン８０６の数は、画像形成装置１０１にインストールされている画像処理プラグインアプリケーション３０３と同数になる。
【００４５】
図９は、拡張画像処理個別設定画面９０１の一例を表す図である。拡張画像処理個別設定画面９０１は、拡張画像処理アイコン８０６の押下をＣＰＵ２１１が検知すると表示される。拡張画像処理個別設定画面９０１は、プラグインとして追加された画像処理プラグインアプリケーション３０３に対する画像処理設定画面５０２の一例である。拡張画像処理個別設定画面９０１は、設定部９０２、キャンセルボタン９０３、および設定ボタン９０４を有する。設定部９０２においては、プラグインして追加された画像処理（拡張画像処理）に対する設定が行われる。図９に示す例では、この設定に必要なチェックボックスおよびバーアイコン等が設定部９０２に表示される。キャンセルボタン９０３は、設定部９０２に対して入力された項目をキャンセルするためのボタンである。設定ボタン９０４は、設定部９０２において入力された項目を設定するためのボタンである。
【００４６】
図８に示す例では、例えば、画像処理設定画面８０１を表示することにより、ジョブを実行するために必要な処理を選択するための第１の画面を表示する第１の表示処理の一例が実現される。また、例えば、画像処理アイコン８０２〜８０５により、第１の処理を選択させるための情報の一例が実現される。また、例えば、拡張画像処理アイコン８０６により、第２の処理を選択させるための情報の一例が実現される。また、図９に示す例では、例えば、拡張画像処理個別設定画面９０１を表示することにより、第３のアプリケーションを用いて実行される第２の処理に関する設定を行うための第２の画面を表示する第２の表示処理の一例が実現される。
【００４７】
図１０は、デバイス制御アプリケーション３０４の起動時の画像形成装置１０１の処理の一例を説明するフローチャートである。ここでは、デバイス制御アプリケーション３０４としてコピーアプリケーション３０６を例に挙げて、デバイス制御アプリケーション３０４の起動時の画像形成装置１０１の処理の一例を説明する。尚、本フローチャートで示す処理に係るプログラムは画像形成装置１０１のＨＤＤ２１３に格納されており、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行される。
【００４８】
コピーアプリケーション３０６は、自身の起動を検知すると（Ｓ１００１）、接続ライブラリ３１４のＡＰＩをコールし、画面情報３２７を含んだ画像処理プラグインアプリケーション３０３のリストを取得する（Ｓ１００２）。次に、ＣＰＵ２１１は、対象の画像処理プラグインアプリケーション３０３から画面情報３２７を取得する（Ｓ１００３）。対象の画像処理プラグインアプリケーション３０３は、画像処理プラグインアプリケーション３０３のリストに含まれる未選択の画像処理プラグインアプリケーション３０３のうち、先頭の画像処理プラグインアプリケーション３０３である。
【００４９】
次に、ＣＰＵ２１１は、Ｓ１００３で取得した画面情報３２７を、画像処理設定画面８０１に表示する（Ｓ１００４）。また、ＣＰＵ２１１は、画像処理設定画面５０２が存在する画像処理プラグインアプリケーション３０３に関しては、画像処理設定画面５０２の表示データを生成する。これにより、ＣＰＵ２１１は、拡張画像処理アイコン８０６の押下が検知されるとすぐに画像処理設定画面５０２を呼び出すことができる。
【００５０】
次に、ＣＰＵ２１１は、Ｓ１００２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について、Ｓ１００３、Ｓ１００４の処理を行ったか否かを判定する（Ｓ１００５）。この判定の結果、Ｓ１００２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について処理が行われていない場合、処理はＳ１００３に戻る。そして、Ｓ１００２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について処理が行われるまで、Ｓ１００３〜Ｓ１００５の処理が繰り返し行われる。
【００５１】
Ｓ１００２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について処理が行われると、図１０のフローチャートによる処理が終了する。図８に示す例では、ＣＰＵ２１１は、コピーアプリケーション３０６の画像処理設定画面８０１に対し、コピーアプリケーション３０６の画面情報３２３に含まれる画像処理アイコン８０２〜８０５と、拡張画像処理アイコン８０６とを表示する。前述したように、拡張画像処理アイコン８０６は、画像処理プラグインアプリケーション３０３の画面情報３２７に含まれる画像処理アイコン５０１の一例である。
【００５２】
以上の処理により、コピーアプリケーション３０６の画像処理設定画面４０４（８０１）に、画像処理プラグインアプリケーション３０３の画像処理アイコン５０１（９０６）を挿入することができる。尚、画像処理設定画面の生成は、デバイス制御アプリケーション３０４の起動時の他にも、画像形成装置１０１の起動時や、画像処理設定ボタン７０３の押下が検知されたとき等のタイミングで実施しても構わない。
【００５３】
次に、デバイス制御アプリケーション３０４で実現される画像処理を設定する際の画像形成装置１０１の処理の一例について説明する。ここでは、デバイス制御アプリケーション３０４としてコピーアプリケーション３０６を例に挙げて、デバイス制御アプリケーション３０４で実現される画像処理を設定する際の画像形成装置１０１の処理の一例を説明する。
【００５４】
ＣＰＵ２１１は、コピーアプリケーション３０６のメイン画面７０１のメイン設定画面７０２に対するユーザの操作を検知すると、その操作に基づく設定の内容を設定情報としてＲＡＭ２１２に書き込む。メイン設定画面７０２内のボタンの押下に応じて別の画面に遷移し、当該別の画面に対する操作に基づいて設定が行われるようにしてもよい。続いて、ＣＰＵ２１１は、画像処理設定ボタン７０３の押下を検知すると、コピーアプリケーション３０６の画像処理設定画面８０１を表示する。続いてＣＰＵ２１１は、画像処理アイコン８０２〜８０５および拡張画像処理アイコン８０６の何れかの押下を検知すると、当該押下を検知したアイコンに関連付けられている画像処理に対して、画像処理個別設定画面が存在するか否かを判定する。画像処理個別設定画面とは、各画像処理に対する詳細を設定することが可能な画面である。画像処理個別設定画面には、拡張画像処理個別設定画面９０１が含まれる。画像処理個別設定画面は、各画像処理に対し、詳細な設定が必要な場合にのみ存在する。
【００５５】
ＣＰＵ２１１は、押下されたアイコンに対し、画像処理個別設定画面が存在しないと判定した場合、当該押下されたアイコンに関連付けられている画像処理の画像処理名を設定し、ＲＡＭ２１２に書き込む。図８に示す例では、画像処理設定画面８０１において押下されたアイコンに対し、画像処理個別設定画面が存在しない場合、当該アイコンを含む画面情報に関連付けられている画像処理名がコピージョブに対する設定情報に付与される。一方、ＣＰＵ２１１は、押下されたアイコンに対し、画像処理個別設定画面が存在すると判定した場合、当該画像処理個別設定画面を表示する。拡張画像処理アイコン８０６が押下された場合を例として挙げると、ＣＰＵ２１１は、拡張画像処理個別設定画面９０１を表示する。続いて、ＣＰＵ２１１は、設定部９０２に対するユーザの操作を検知すると、当該操作に基づく設定の内容を設定情報としてＲＡＭ２１２に書き込む。
【００５６】
ＣＰＵ２１１は、キャンセルボタン９０３の押下を検知すると、前記ＲＡＭ２１２に書き込んだ設定情報を破棄し、画像処理設定画面８０１を表示する。一方、ＣＰＵ２１１は、設定ボタン９０４の押下を検知すると、前記ＲＡＭ２１２に書き込んだ設定情報を読み出す。そして、ＣＰＵ２１１は、画像処理設定画面８０１において押下されたアイコンに関連付けられている画像処理の画像処理名を設定した上で、当該設定情報をＲＡＭ２１２に書き込む。例えば、画面情報３２７に含まれる拡張画像処理アイコン８０６が押下されると、当該画面情報３２７に関連付けられている画像処理名３２１がコピージョブに対する設定情報に付与される。そして、ＣＰＵ２１１は、画像処理設定画面８０１を表示する。このとき、操作部２０４においては、色を変化させたり、有効化表示をしたりすることによって、ユーザが指定した画像処理が有効化されたことをユーザに認識させるようにすることが好ましい。ユーザは、前述の操作を所望の設定が完了するまで行う。ＣＰＵ２１１は、その都度ＲＡＭ２１２に設定情報を追加で書き込む。つまり、ユーザが複数の画像処理を設定した場合には、画像処理名は複数設定されることになる。図８に示す例では、画像処理アイコン８０２〜８０５および拡張画像処理アイコン８０６の中から２つ以上のアイコンが押下された場合、それら押下されたアイコンを含む画面情報に関連付けられている画像処理名がそれぞれ設定される。このとき、複数の拡張画像処理アイコン８０６が押下される場合がある。
【００５７】
次に、ジョブ実行時の画像形成装置１０１の処理の一例について、コピーアプリケーション３０６を例に挙げて説明する。図１１は、ジョブ実行時の画像形成装置１０１の処理の一例を説明するフローチャートである。本フローチャートで示す処理に係るプログラムは画像形成装置１０１のＨＤＤ２１３に格納されており、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行される。
【００５８】
まず、コピーアプリケーション３０６は、コピージョブの実行指示を検知すると（Ｓ１１０１）、コピーライブラリ３１１のＡＰＩをコールする。さらにコピーライブラリ３１１は、スキャナ制御ドライバ３１８に対してスキャン指示を行う。スキャナ制御ドライバ３１８は、スキャナ２０３からスキャンした画像データを、コピーライブラリ３１１に送信する。
【００５９】
コピーライブラリ３１１は、コピーアプリケーション３０６で設定された設定情報のうち、未選択の画像処理に対する設定情報をＲＡＭ２１２から取得する。そして、コピーライブラリ３１１は、取得した設定情報により特定される画像処理を画像処理ライブラリ３１５で処理可能か否かを判定する（Ｓ１１０２）。具体的にコピーライブラリ３１１は、ＲＡＭ２１２から取得した設定情報に含まれる画像処理名と等しい画像処理名３２６を持つ画像処理ライブラリ３１５があるか否かを画像処理ライブラリ３１５に問い合わせることにより、Ｓ１１０２の判定を行う。
【００６０】
コピーライブラリ３１１は、画像処理ライブラリ３１５で画像処理が可能であると判定した場合、画像処理ライブラリ３１５のＡＰＩをコールして、画像処理を実行させる（Ｓ１１０３）。このとき、画像処理ライブラリ３１５は、コピーアプリケーション３０６で設定された設定情報をそれぞれの画像処理に反映する。
【００６１】
コピーライブラリ３１１は、画像処理ライブラリ３１５で画像処理が可能でないと判定した場合、接続ライブラリ３１４のＡＰＩをコールする（Ｓ１１０４）。接続ライブラリ３１４は、ＲＡＭ２１２から取得した設定情報に含まれる画像処理名と等しい画像処理名３２１を持つ画像処理プラグインアプリケーション３０３を探索する。そして、接続ライブラリ３１４は、探索した画像処理プラグインアプリケーション３０３のＡＰＩをコールし、画像処理を実行させる（Ｓ１１０５）。このとき、画像処理プラグインアプリケーション３０３は、コピーアプリケーション３０６で設定された設定情報をそれぞれの画像処理に反映する。
【００６２】
そして、コピーライブラリ３１１は、以上のＳ１１０２〜Ｓ１１０５の処理を、画像処理設定画面８０１で設定された画像処理の全てについて行ったか否かを判定する（Ｓ１１０６）。この判定の結果、Ｓ１１０２〜Ｓ１１０５の処理が、画像処理設定画面８０１で設定された画像処理の全てについて行われていない場合、処理は、Ｓ１１０２に戻る。そして、Ｓ１１０２〜Ｓ１１０５の処理が、画像処理設定画面８０１で設定された画像処理の全てについて行われるまで、Ｓ１１０２〜Ｓ１１０５の処理が繰り返し行われる。
【００６３】
そして、Ｓ１１０２〜Ｓ１１０５の処理が、画像処理設定画面８０１で設定された画像処理の全てについて行われると、コピーライブラリ３１１は、プリンタ制御ドライバ３１７に対し印刷指示を送信する。プリンタ制御ドライバ３１７は、プリンタＩ／Ｆ２１５を通して、プリンタ２０２に対し印刷指示を送信する。プリンタ２０２は、当該印刷指示に基づいて印刷を実行する。以上によりコピージョブが完結する（Ｓ１１０７）。図１１に示す例では、例えば、コピーライブラリ３１１とプリンタ制御ドライバ３１７とを用いることにより、ジョブを実行するジョブ実行処理の一例が実現される。
【００６４】
以上、図７〜図１１では、コピーアプリケーション３０６に、画像処理プラグインアプリケーション３０３を有効化する画面情報を追加する場合を例に挙げて説明した。デバイス制御アプリケーション３０４に含まれるその他のアプリケージョンでも、コピーアプリケーション３０６と同様に、画像処理プラグインアプリケーション３０３を有効化する画面情報を追加することができる。そこで、以下では、スキャン送信アプリケーション３０８を具体例とし、新規のファイルフォーマットを有効化するための画面情報を追加する場合について説明する。
【００６５】
まず、スキャン送信アプリケーション３０８の画面情報３２５の具体例について説明する。図１２は、スキャン送信アプリケーション３０８のメイン画面１２０１の一例を表す図である。メイン画面１２０１は、図４に示すメイン画面４０３の一例である。メイン画面１２０１は、メイン設定画面４０５として、送信先指定画面１２０２、送信画像設定画面１２０３、および画像処理設定ボタン１２０７を有する。
【００６６】
送信先指定画面１２０２には、スキャナ２０３でスキャンされた画像データをネットワークＩ／Ｆ２１４を通して送信する先のデバイスの情報が入力される。具体的に送信先指定画面１２０２では、例えば、ＩＰアドレスや、Ｅｍａｉｌアドレス等の指定が行われる。
【００６７】
送信画像設定画面１２０３は、カラーモノクロ設定ボタン１２０４、解像度設定ボタン１２０５、および送信画像フォーマット設定ボタン１２０６を有する。カラーモノクロ設定ボタン１２０４では、送信画像の色の設定が行われる。具体例を説明すると、カラーモノクロ設定ボタン１２０４では、自動、フルカラー、グレースケール、および白黒２値の中から、色の選択が行われる。尚、前記自動は、ＣＰＵ２１１が、スキャナ２０３でスキャンされた画像の配色を自動で検知し、色の設定を自動で行うモードを指す。解像度設定ボタン１２０５では、送信画像の解像度の選択が行われる。具体的に解像度設定ボタン１２０５では、１００×１００ｄｐｉ（ｄｏｔ  ｐｅｒ  ｉｎｃｈ）、３００×３００ｄｐｉ、６００×６００ｄｐｉ等の中から、解像度の選択が行われる。送信画像フォーマット設定ボタン１２０６では、送信画像のフォーマットの設定が行われる。尚、送信先指定画面１２０２および送信画像設定画面１２０３においては、それらに表示されるボタンが押下されることで、それぞれの設定を行うための画面が表示され、当該画面においてユーザからの入力を受け付けるようにしても構わない。画像処理設定ボタン１２０７は、図７に示す画像処理設定ボタン７０３と同様に、画像処理設定画面４０４を表示するためのボタンである。
【００６８】
図１３は、フォーマット設定画面１３０１の一例を表す図である。フォーマット設定画面１３０１は、送信画像フォーマット設定ボタン１２０６の押下をＣＰＵ２１１が検知すると表示される。フォーマット設定画面１３０１は、フォーマット選択画面１３０２、選択フォーマット詳細設定画面１３０４、キャンセルボタン１３０５、および設定ボタン１３０６を有する。フォーマット選択画面１３０２においては、フォーマットボタン１３０３の押下により、送信画像のフォーマットを選択することが可能である。具体的にフォーマット選択画面１３０２では、ＰＤＦ、ＪＰＥＧ、ＴＩＦＦ、ＸＰＳといったフォーマットの中から、送信画像のフォーマットが選択される。フォーマット選択画面１３０２で選択されたフォーマットボタン１３０３、１３０７に対し色付けしたり、有効化表示をしたりすることによって、ユーザが指定した画像処理が有効化されたことをユーザに認識させるようにすることが好ましい。
【００６９】
選択フォーマット詳細設定画面１３０４では、フォーマット選択画面１３０２において選択されたフォーマットの詳細な設定が行われる。尚、フォーマット選択画面１３０２では、フォーマットボタン１３０３、１３０７の押下により動的に選択されたフォーマットの設定画面を表示することが可能となる。また、フォーマットボタン１３０３、１３０７の押下により選択されたフォーマットに、詳細な設定項目がない場合には、このような設定画面は表示されない。キャンセルボタン１３０５は、フォーマット選択画面１３０２および選択フォーマット詳細設定画面１３０４における設定をキャンセルするためのボタンである。設定ボタン１３０６は、フォーマット選択画面１３０２および選択フォーマット詳細設定画面１３０４における設定を有効化するためのボタンである。
【００７０】
続いて、新規のファイルフォーマットを有効化するための画面情報を表示する際の画像形成装置１０１の処理の一例について説明する。図１４は、スキャン送信アプリケーション３０８の起動時の画像形成装置１０１の処理の一例を説明するフローチャートである。尚、本フローチャートで示す処理に係るプログラムは画像形成装置１０１のＨＤＤ２１３に格納されており、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行される。
【００７１】
スキャン送信アプリケーション３０８は自身の起動を検知すると（Ｓ１４０１）、接続ライブラリ３１４のＡＰＩをコールし、画面情報３２７を含んだ画像処理プラグインアプリケーション３０３のリストを取得する（Ｓ１４０２）。次に、ＣＰＵ２１１は、対象の画像処理プラグインアプリケーション３０３から画面情報３２７を取得する（Ｓ１４０３）。対象の画像処理プラグインアプリケーション３０３は、画像処理プラグインアプリケーション３０３のリストに含まれる未選択の画像処理プラグインアプリケーション３０３のうち、先頭の画像処理プラグインアプリケーション３０３である。
【００７２】
次に、ＣＰＵ２１１は、対象の画像処理プラグインアプリケーション３０３が、フォーマット拡張のためのアプリケーションである否かを判定する（Ｓ１４０４）。具体的には、画像処理プラグインアプリケーション３０３の画面情報３２７が、フォーマット拡張用画面情報、拡張画像処理用画面情報をそれぞれ分けた形で含むようにする。ＣＰＵ２１１は、対象の画像処理プラグインアプリケーション３０３の画面情報３２７に、どちらの情報が含まれているかを判定することによりＳ１４０４の判定を行う。尚、Ｓ１４０４の判定方法はこれ以外の方法でも構わない。
【００７３】
Ｓ１４０４の判定の結果、対象の画像処理プラグインアプリケーション３０３がフォーマット拡張のためのアプリケーションである場合、処理はＳ１４０５に進む。そして、ＣＰＵ２１１は、Ｓ１４０３で取得された画面情報３２７をフォーマット選択画面１３０２に表示する（Ｓ１４０５）。尚、Ｓ１４０５における表示は、バックグラウンドで画面を生成することを表しており、実際には、送信画像フォーマット設定ボタン１２０６の押下が検知されるまで実行されない。具体的にＣＰＵ２１１は、Ｓ１４０３で取得された画面情報３２７から画像処理アイコン５０１を取得する。そして、ＣＰＵ２１１は、取得した画像処理アイコン５０１を拡張フォーマットボタン１３０７として、フォーマット設定画面１３０１内のフォーマット選択画面１３０２に、フォーマットボタン１３０３と並べて表示する。図１３においては、"拡張フォーマット"の文字が拡張フォーマットボタン１３０７に表示される場合を例に挙げて示す。しかしながら、必ずしもこのようにする必要はない。例えば、ＣＰＵ２１１は、Ｓ１４０２で取得される画像処理プラグインアプリケーション３０３から画像処理名３２１を取得し、取得した画像処理名３２１を、"拡張フォーマット"に代えて表示してもよい。以上のＳ１４０５の処理によって、ユーザは、フォーマット選択画面１３０２において、既存のフォーマットボタン１３０３も拡張フォーマットボタン１３０７も区別なく選択することが可能となる。さらに、ＣＰＵ２１１は、画像処理設定画面５０２が画面情報３２７に含まれているか否かを判定する。そして、ＣＰＵ２１１は、画像処理設定画面５０２が画面情報３２７に含まれている場合、選択フォーマット詳細設定画面１３０４に、それぞれの拡張フォーマットの設定を行うための選択フォーマット詳細設定画面１３０４を表示する。尚、図１３においては、ユーザの操作部２０４に対する操作に応じて、拡張フォーマットが選択されたことを明示的に示すため、拡張フォーマットボタン１３０７の色を反転して表示している。
【００７４】
ＣＰＵ２１１は、Ｓ１４０４において、対象の画像処理プラグインアプリケーション３０３がフォーマット拡張のためのアプリケーションではないと判定すると、処理をＳ１４０６に進める。この場合、ＣＰＵ２１１は、対象の画像処理プラグインアプリケーション３０３が拡張画像処理のためのアプリケーションであると判定する。そして、ＣＰＵ２１１は、Ｓ１４０２で取得した画面情報３２７をスキャン送信アプリケーション３０８の画像処理設定画面４０４に表示する（Ｓ１４０６）。尚、スキャン送信アプリケーション３０８の画像処理設定画面４０４は、コピーアプリケーション３０６の画像処理設定画面８０１と同じ構成であるが、共有はしていない。従って、画像処理設定ボタン１２０７の押下により、画像処理設定画面８０１と同じ構成の画面が表示され、スキャン送信アプリケーション３０８で処理可能な画像処理の設定が可能になる。
【００７５】
そして、ＣＰＵ２１１は、Ｓ１４０２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について、Ｓ１４０３〜Ｓ１４０６の処理を行ったか否かを判定する（Ｓ１４０７）。この判定の結果、Ｓ１４０２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について処理が行われていない場合、処理はＳ１４０３に戻る。そして、Ｓ１４０２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について処理が行われるまで、Ｓ１４０３〜Ｓ１４０７の処理が繰り返し行われる。Ｓ１４０２で取得したリストに含まれる全ての画像処理プラグインアプリケーション３０３について処理が行われると、図１４のフローチャートによる処理が終了する。
【００７６】
以上の処理により、画像形成装置１０１は、画像処理プラグインアプリケーション３０３をスキャン送信アプリケーション３０８の画面情報３２５から利用することが可能となる。尚、ユーザからの操作部２０４に応じて、自身の画像処理プラグインアプリケーション３０３の実行を有効化する処理およびジョブの実行のフローは、コピーアプリケーション３０６の場合と同じであるので、その詳細な説明を省略する。
【００７７】
図１３に示す例では、例えば、フォーマット設定画面１３０１を表示することにより、ジョブを実行するために必要な処理を選択するための第１の画面を表示する第１の表示処理の一例が実現される。また、例えば、フォーマットボタン１３０３により、第１の処理を選択させるための情報の一例が実現される。また、例えば、拡張フォーマットボタン１３０７により、第２の処理を選択させるための情報の一例が実現される。また、図１３に示す例では、例えば、選択フォーマット詳細設定画面１３０４を表示することにより、第３のアプリケーションを用いて実行される第２の処理に関する設定を行うための第２の画面を表示する第２の表示処理の一例が実現される。
【００７８】
以上のように本実施形態では、画像形成装置１０１は、メインメニュー画面６０１で選択されたアイコンに対応するアプリケーションを選択するための画面を表示する。例えば、画像形成装置１０１は、コピーアプリケーション３０６を選択するための画面として、画像処理設定画面８０１を表示する。画像処理設定画面８０１は、既存のアプリケーションを選択するための画像処理アイコン８０２〜８０５と、プラグインとして追加されたアプリケーションを選択するための拡張画像処理アイコン８０６とを表示する。従って、既存のデバイス制御アプリケーション３０４の画面構成を保ったまま、画像処理プラグインアプリケーション３０３の有効化のためのアイコンを当該画面に挿入することが可能となる。そして、当該アイコンの操作により、画像処理プラグインアプリケーション３０３に対する設定画面（拡張画像処理個別設定画面９０１等）を表示することが可能になる。このように、本実施形態では、プラグインとして追加された新規の画像処理の選択と既存の画像処理の選択とを、同一の画面（画像処理設定画面８０１等）で実行することが可能となる。これにより、ユーザは、プラグインとして追加された新規の画像処理と、既存の画像処理とを意識して使い分けることなくなる。よって、従来のように、新規の画像処理を含むジョブを実行するプラグインアプリケーションから新規の画像処理を実行する場合に比べ、ユーザの利便性が向上する。
【００７９】
（第２の実施形態）
次に、第２の実施形態を説明する。第１の実施形態では、画像形成装置１０１に登録されている全ての画像処理プラグインアプリケーション３０３を、画像処理設定画面４０４から有効化できる場合を例に挙げて説明した。しかしながら、実際の画像処理プラグインアプリケーション３０３では、それぞれ設定可能なデバイス制御アプリケーション３０４が異なる場合がある。そこで、本実施形態では、有効化する画像処理プラグインアプリケーション３０３を選択する場合について説明する。このように本実施形態は、第１の実施形態に対し、有効化する画像処理プラグインアプリケーション３０３を選択する処理が追加されたものとなる。従って、本実施形態の説明において第１の実施形態と同一の部分については、図１〜図１４に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００８０】
表１は、デバイス制御アプリケーション３０４のそれぞれにおいて、画像処理プラグインアプリケーション３０３の設定が可能か否かの関係の一例を表す。
【００８１】
【表１】
2018015947.tif 000003
【００８２】
表１において、ＯＣＲ自動翻訳は、画像処理プラグインアプリケーション３０３で実行される画像処理の一例である。ＯＣＲ自動翻訳は、スキャナ２０３でスキャンされた画像データや、画像形成装置１０１のＨＤＤ２１３に格納されている画像データから文字情報を抽出し、翻訳を行う画像処理である。よって、ＯＣＲ自動翻訳は、プリントアプリケーション３０５およびコピーアプリケーション３０６の何れからも利用可能な画像処理である。斜行補正は、画像が傾いている場合、その傾きを検知し、正す処理である。従って、斜行補正は、スキャナ２０３等を必要としないジョブを実行するデバイス制御アプリケーション３０４においては、必要ない処理である。表１に示す例の場合、コピーアプリケーション３０６では、斜行補正が設定されるようにしたい。一方、プリントアプリケーション３０５ではスキャナ２０３を用いないので、斜行補正は必要ない。このため、斜行補正が設定されないようにしたい。そこで、本実施形態では、このような画像処理プラグインアプリケーション３０３に対し、明示的に有効化を許可するデバイス制御アプリケーション３０４を指定する。
【００８３】
画像処理プラグインアプリケーション３０３のそれぞれには、当該画像処理プラグインアプリケーション３０３を利用可能なデバイス制御アプリケーション３０４のジョブ名を示す利用可能ジョブリストが登録される。表１において、ＯＣＲ自動翻訳を実行する画像処理プラグインアプリケーション３０３に対する利用可能ジョブリストには、文字列で"Ｐｒｉｎｔ"および"Ｃｏｐｙ"が、デバイス制御アプリケーション３０４のジョブ名として設定される。一方、斜行補正を実行する画像処理プラグインアプリケーション３０３に対する利用可能ジョブリストには、文字列で"Ｃｏｐｙ"のみが、デバイス制御アプリケーション３０４のジョブ名として設定される。
【００８４】
利用可能ジョブリストを登録する方法として、画像処理プラグインアプリケーション３０３のそれぞれの実装時に利用可能ジョブリストを登録する方法が挙げられるが、利用可能ジョブリストを登録する方法は、それ以外の方法ででも構わない。また、利用可能ジョブリストに文字列が登録される場合を示したが、利用可能ジョブリストに登録される情報は、文字列以外でも構わない。
本実施形態では、例えば、利用可能ジョブリストがＨＤＤ２１３に登録されることにより、第４の記憶処理の一例が実現される。尚、情報の記憶は、ＨＤＤ２１３以外の記憶媒体または記憶装置で行われてもよい。
【００８５】
次に、デバイス制御アプリケーション３０４の起動時の画像形成装置１０１の処理の一例を説明する。図１５は、デバイス制御アプリケーション３０４の起動時の画像形成装置１０１の処理の一例を説明するフローチャート図である。図１５のフローチャートでは、図１０のフローチャートでは考慮されなかった利用可能ジョブリストが考慮される。尚、本フローチャートで示す処理に係るプログラムは画像形成装置１０１のＨＤＤ２１３に格納されており、ＲＡＭ２１２によって呼び出され、ＣＰＵ２１１によって実行される。
【００８６】
デバイス制御アプリケーション３０４のそれぞれは、自身のアプリケーションの起動を検知すると（Ｓ１５０１）、接続ライブラリ３１４のＡＰＩをコールする。このとき、デバイス制御アプリケーション３０４は、自身のジョブ名を接続ライブラリ３１４に渡す。これによりデバイス制御アプリケーション３０４は、画面情報３２７を含み、かつ、自身のデバイス制御アプリケーション３０４のジョブ名が利用可能ジョブリストに記載されている画像処理プラグインアプリケーション３０３のリストを取得する（Ｓ１５０２）。例えば、表１において、起動したデバイス制御アプリケーション３０４がプリントアプリケーション３０５である場合、画像処理プラグインアプリケーション３０３のリストとしてＯＣＲ翻訳プラグインアプリケーションのみが挿入されているリストが取得される。一方、起動したデバイス制御アプリケーション３０４がコピーアプリケーション３０６である場合、ＯＣＲ翻訳プラグインアプリケーションおよび斜行補正プラグインアプリケーションが挿入されているリストが取得される。本実施形態では、例えば、デバイス制御アプリケーション３０４が、自身のジョブ名が利用可能ジョブリストに含まれる画像処理プラグインアプリケーション３０３のリストを接続ライブラリ３１４から取得することにより、特定処理の一例が実現される。
【００８７】
以上の処理によって、画像処理プラグインアプリケーション３０３のリストには、デバイス制御アプリケーション３０４ごとに利用可能な画像処理プラグインアプリケーション３０３のみが含まれることになる。尚、Ｓ１５０３、Ｓ１５０４、Ｓ１５０５の処理は、それぞれ、図１０のＳ１００３、Ｓ１００４、Ｓ１００５の処理と同様なため詳細な説明を省略する。
以上のように本実施形態では、デバイス制御アプリケーション３０４のそれぞれは、自身が利用可能な画像処理プラグインアプリケーション３０３のみを自身の画面情報３２７に挿入することが可能となる。
【００８８】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００８９】
（その他の実施例）
本発明は、前述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９０】
１０１〜１０２：画像形成装置、１０３〜１０４：情報処理端末、１０５：サーバ
【図１】
2018015947.tif 000004
【図２】
2018015947.tif 000005
【図３】
2018015947.tif 000006
【図４】
2018015947.tif 000007
【図５】
2018015947.tif 000008
【図６】
2018015947.tif 000009
【図７】
2018015947.tif 000010
【図８】
2018015947.tif 000011
【図９】
2018015947.tif 000012
【図１０】
2018015947.tif 000013
【図１１】
2018015947.tif 000014
【図１２】
2018015947.tif 000015
【図１３】
2018015947.tif 000016
【図１４】
2018015947.tif 000017
【図１５】
2018015947.tif 000018