(57)【要約】【課題】  画像形成装置のリソースを有効に活用できる仕組みを提供する。【解決手段】  ＭＦＰ１０には、拡張アプリケーションプログラムをインストール可能である。ＭＦＰ１０は、拡張アプリケーションプログラムが起動されたことに応じて、印刷ジョブのジョブコントローラ部への投入が成功したか否かを判断するＣＰＵ１０１を備える。印刷ジョブの投入が成功したとＣＰＵ１０１が判断したたことに応じて、拡張アプリケーションプログラムをＣＰＵ１０１が終了させる。アプリケーションプログラムの終了後、ジョブコントローラ部２０３の制御下にて、ＣＰＵ１０１は、前記印刷ジョブのステータスを取得する。【選択図】  図６
2018088117.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアの一部であるジョブ処理プログラムを用いて制御される画像形成装置であって尚且つアプリケーションプログラムをインストール可能な画像形成装置において、
前記アプリケーションプログラムが起動されたことに応じて、印刷ジョブの前記ジョブ処理プログラムへの投入が成功したか否かを判断する判断手段と、
前記印刷ジョブの投入が成功したと前記判断手段により判断されたことに応じて、前記アプリケーションプログラムを終了させる制御手段と、
前記アプリケーションプログラムの終了後、前記ジョブ処理プログラムの制御下にて、前記印刷ジョブのステータスを取得する取得手段と、
前記取得手段が取得したステータスに基づきステータス情報を報知する報知手段と、
備える画像形成装置。
【請求項２】
前記画像形成装置は、前記アプリケーションプログラムが投入すべき印刷ジョブに関する制御情報を登録する登録手段を備え、
前記制御情報は、前記アプリケーションプログラムがジョブを投入する前に確認画面を表示するか否かを制御する情報である請求項１に記載の情報処理装置。
【請求項３】
前記報知手段は、前記ステータス情報に基づき、画像形成装置に対して接続されている表示部を更新する請求項１または２に記載の画像形成装置。
【請求項４】
前記アプリケーションを実行して、前記印刷ジョブの実行の開始指示が前記ジョブ処理プログラムに対して入力された結果、前記開始指示の返り値が肯定値であれば、前記ジョブ処理プログラムの投入が成功したと前記判断手段は判断するとともに、前記制御手段は前記アプリケーションプログラムを終了させ、前記アプリケーションプログラムが終了した後、前記ジョブ処理プログラムの制御下にて、前記印刷ジョブの処理中に前記印刷ジョブに関するエラーが認識されると、前記印刷ジョブに関するエラーの発生を前記報知手段は前記ジョブ処理プログラムの制御下にて前記エラーを報知する請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
印刷ジョブに対して、印刷システムの定義外の設定値が設定されている場合に前記判断手段は前記印刷ジョブの投入が失敗したと判断し、前記アプリケーションプログラムに対して印刷ジョブの投入が失敗したことを通知する請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
ファームウェアの一部であるジョブ処理プログラムを用いて制御される画像形成装置であって尚且つアプリケーションプログラムをインストール可能な画像形成装置の制御方法において、
前記アプリケーションプログラムが起動されたことに応じて、印刷ジョブの前記ジョブ処理プログラムへの投入が成功したか否かを判断する判断ステップと、
前記印刷ジョブの投入が成功したと前記判断ステップにより判断されたことに応じて、前記アプリケーションプログラムを終了させる制御ステップと、
前記アプリケーションプログラムの終了後、前記ジョブ処理プログラムの制御下にて、前記印刷ジョブのステータスを取得する取得ステップと、
前記取得ステップにおいて取得されたステータスに基づきステータス情報を報知する報知ステップと、
備える画像形成装置の制御方法。
【請求項７】
前記画像形成装置は、前記アプリケーションプログラムが投入すべき印刷ジョブに関する制御情報を登録する登録ステップを備え、
前記制御情報は、前記アプリケーションプログラムが印刷ジョブを投入する前に確認画面を表示するか否かを制御する情報である請求項６に記載の画像形成装置の制御方法。
【請求項８】
前記報知ステップは、前記ステータス情報に基づき、画像形成装置に対して接続されている表示部を更新する請求項６または７に記載の画像形成装置の制御方法。
【請求項９】
前記アプリケーションを実行して、前記印刷ジョブの実行の開始指示が前記ジョブ処理プログラムに対して入力された結果、前記開始指示の返り値が肯定値であれば、前記ジョブ処理プログラムの投入が成功したと前記判断ステップは判断するとともに、前記制御ステップは前記アプリケーションプログラムを終了させ、前記アプリケーションプログラムが終了した後、前記ジョブ処理プログラムの制御下にて、前記印刷ジョブの処理中に前記印刷ジョブに関するエラーが認識されると、前記印刷ジョブに関するエラーの発生を前記報知ステップは前記ジョブ処理プログラムの制御下にて前記エラーを報知する請求項６乃至８のいずれか１項に記載の画像形成装置の制御方法。
【請求項１０】
前記判断ステップでは、印刷ジョブに対して、印刷システムの定義外の設定値が設定されている場合は前記印刷ジョブの投入が失敗したと判断され、前記アプリケーションプログラムに対して印刷ジョブの投入が失敗したことを通知する請求項６乃至９のいずれか１項に記載の画像形成装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラム等を動作させることができる画像形成装置を含む組み込み機器及びその制御方法等に関する。
【背景技術】
【０００２】
画像形成装置のファームウェア上で、アプリケーションプログラムを動作させることができる。これらの画像形成装置はアプリケーションプログラムを実行する為の実行環境を持つ。この環境においてアプリケーションプログラムを実行することができる。
【０００３】
また、二つ以上のアプリケーションプログラムが連携してサービスを提供するシステム形態に言及する文献がある。特開２０１４−２３５５７６では、複数のアプリケーションプログラム間でプログラムの終了を通知し合うことで連携し、プログラムの終了に関する情報の表示を行う方法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２３５５７６
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ジョブの実行が終了するまでアプリケーションプログラム側でエラーハンドリングを行うようにすると、アプリケーションプログラムはジョブの処理が終了するまで実行結果を待ち続ける必要があった。この際、エラーハンドリングの為のリソースをアプリケーションプログラムが消費してしまうという問題があった。例えば、リソース制約の為にメインとなるアプリケーションプログラムを排他的に動作させている組み込み機器がある。このような組み込み機器では、ジョブの終了までアプリケーションプログラムがメインとなる処理を占有してしまい、そのジョブの処理が終了するまで他のアプリケーションプログラムの起動／処理を実行することができないという問題があった。本実施形態は、上述の問題点の少なくともひとつを解決するためになされたものである。
本発明は、画像形成装置などの組み込み機器のリソースを有効に活用できる仕組みを提供することをひとつの目的とする。本発明の別の側面は、アプリケーションプログラムを用いてジョブを実行させる際に、画像形成装置のリソースが占有されない仕組みを提供することである。
【課題を解決するための手段】
【０００６】
上述の目的の少なくとも一つの達成するために、本実施形態では、ファームウェアの一部であるジョブ処理プログラムを用いて制御される画像形成装置であって尚且つアプリケーションプログラムをインストール可能な画像形成装置において、前記アプリケーションプログラムが起動されたことに応じて、印刷ジョブの前記ジョブ処理プログラムへの投入が成功したか否かを判断する判断手段と、前記印刷ジョブの投入が成功したと前記判断手段により判断されたことに応じて、前記アプリケーションプログラムを終了させる制御手段と、前記アプリケーションプログラムの終了後、前記ジョブ処理プログラムの制御下にて、前記印刷ジョブのステータスを取得する取得手段と、前記取得手段が取得したステータスに基づきステータス情報を報知する報知手段と、備える画像形成装置を提供する。
【発明の効果】
【０００７】
本発明によれば、画像形成装置などの組み込み機器のリソースを有効に活用することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態におけるＭＦＰハードウェア構成を示すブロック図の一例を示す図である。
【図２】本実施形態におけるＭＦＰのソフトウェア構成の一例を示す図である。
【図３】本実施形態における拡張アプリケーションプログラム起動ボタン設定時のフロー例を示す図である。
【図４】本実施形態における拡張アプリケーションプログラム起動ボタンの登録画面の例を示す図である。
【図５】本実施形態における表示部１０５に表示される画面例を示す図である。
【図６】本実施形態における拡張アプリケーションプログラム起動ボタン押下時の処理のフロー例を示す図である。
【図７】本実施形態におけるジョブ投入時の表示部の画面例を示す図である。
【図８】本実施形態におけるユーザにプリントに関わる制限がかかっている場合の例を示す図である。
【図９】本実施形態におけるジョブ実行中に発生したエラー画面の例を示す図である。
【図１０】本実施形態における図４の設定画面に設定項目を追加した例を示す図である。
【図１１】本実施形態における図１０で追加された設定項目が設定された際の処理の流れを示す図である。
【図１２】本実施形態における実行前確認画面の例を示す図である。
【図１３】本実施形態における情報機器１３０１のハードウェア構成を示すブロック図の位置例を示す図である。
【図１４】本実施形態における情報機器１３０１のソフトウェアブロック図を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
図１は、本実施形態におけるＭＦＰのハードウェア構成を示すブロック図である。ＭＦＰ１０は、画像形成装置の一例である。画像形成装置は、組み込み機器の一例である。組み込み機器にはモバイル機器や、スマートフォンなどのリースの制約のある機器が含まれる。
【００１０】
図１に示すように、ＭＦＰ１０は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、表示コントローラ１０４、表示部１０５、操作コントローラ１０６、操作部１０７を備える。また、ＭＦＰ１０は、ＥＭＭＣホストコントローラ１０８、ＥＭＭＣ１０９、読取コントローラ１１０、読取部１１１、記録コントローラ１１２、記録部１１３を備える。さらに、ＭＦＰ１０は、ＵＳＢホストコントローラ１１４、モデム１１５、網制御ユニット（ＮＣＵ）１１６、ネットワークインタフェースカード１１７を備えている。ＥＭＭＣ１０９は読み書き可能な不揮発性のストレージ装置の一例である。
【００１１】
ＣＰＵ１０１は、システムバス１１８に接続される各デバイスを総括的に制御する。ＣＰＵ１０１は、電源が供給されると、ＲＯＭ１０２に記憶されたブートプログラムを実行する。通常、ブートプログラムは、ストレージに保存されているメインプログラムをＲＡＭ１０３にロードして、ロードされたメインプログラムの先頭にジャンプする。ＲＡＭ１０３は、メインプログラムのロード場所としてだけでなく、メインプログラムのワークエリアなどとして機能する。
【００１２】
表示コントローラ１０４は、表示部１０５に対する描画を制御する。表示部１０５は、ＷＶＧＡサイズのフルビットマップＬＣＤである。一方、操作コントローラ１０６は、ＭＦＰに装備された操作部１０７からの入力を制御する。操作部１０７は、表示部１０５に重畳されたタッチパネルからなる。
【００１３】
読取部１１１は、原稿の読み取りを行う。読取部１１１には、オプションとしてオートドキュメントフィーダ（不図示）が装着されており、複数枚の原稿を自動的に読み取ることができる。読取部１１１は読取コントローラ１１０に接続されており、ＣＰＵ１０１は
読取コントローラ１１０を介して読取部１１１とやり取りする。
【００１４】
また、記録部１１３は、電子写真方式で記録紙に画像形成を行う。記録部１１３は記録コントローラ１１２に接続されており、ＣＰＵ１０１は記録コントローラ１１２を介して記録部１１３とやり取りする。
【００１５】
ＵＳＢホストコントローラ１１４は、ＵＳＢのプロトコル制御を受け持ち、ＵＳＢメモリ（不図示）などＵＳＢデバイスに対するアクセスを仲介する。
【００１６】
モデム１１５は、ファクシミリ通信に必要な信号の変調・復調を行う。また、モデム１１５はＮＣＵ１１６に接続されている。モデム１１５で変調された信号は、ＮＣＵ１１６を介して公衆回線網（ＰＳＴＮ）へ送出される。
【００１７】
ネットワークインタフェースカード１１７は、ＬＡＮを介して、メールやファイルのサーバなどと双方向にデータのやり取りを行う。
【００１８】
本実施例のＭＦＰ１０はストレージとしてＥＭＭＣ１０９を備える。ＣＰＵ１０１は、ＥＭＭＣホストコントローラ１０８を介してＥＭＭＣ１０９にアクセスする。
【００１９】
図２は、本実施形態におけるＭＦＰ１０のソフトウェア構成図である。図２において実線で示した各部は、ＣＰＵ１０１が前述したブートプログラムでＲＡＭ１０３にロードされたメインプログラムに対応するソフトウェアモジュールである。図２に記載のソフトウェアモジュール群は、ＣＰＵ１０１によりＲＡＭ１０３へ読みだされ実行される。
【００２０】
メインプログラムは、ＯＳ（ＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ）によって後述するそれぞれのモジュールの実行が管理・制御されている。ＯＳ部２０１には、デバイスドライバ―部２０８が組み合わされている。デバイスドライバ―部２０８は、表示部コントローラ１０４、操作部コントローラ１０６、読取コントローラ１１０などのハードウェアデバイスとのやり取りを仲介する。
【００２１】
ＵＩ（ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ）部２０２は、表示部１０５および操作部１０７を介して各種情報をユーザに提供するとともに、ユーザからの各種指示を受け付ける。
【００２２】
ジョブコントローラ部２０３は、コピーやプリント、ファックスなどのジョブを受け付け、受け付けたジョブの実行を制御する。
【００２３】
ネットワーク送信部２０５は、アプリーションまたはファームウェアにより実装される。拡張アプリケーションから入力される各種ドキュメントを電子メール形式またはＳＭＢ形式などでネットワークを介して外部の装置へ送信する機能である。
【００２４】
ストレージ部２０６は、例えばファクシミリ送受信する画像やユーザ設定などのデータを、物理的にＥＭＭＣ１０９へ格納して管理するソフトウェアモジュールである。
【００２５】
例えば、本実施形態のＭＦＰ１０において、ジョブコントローラ部２０３がファックスジョブを受け付けると、スキャン部２０７はそのジョブ要求を受けて読取部１１１を制御して原稿をスキャンする。そして、スキャンしたファクシミリ画像データをストレージ部２０６へ格納する。ストレージ部２０６に格納されたファクシミリ画像データはＦＡＸ部２０４によって読み出され、モデム１１５、ＮＣＵ１１６を介して相手先にファクシミリ送信される。あるいは、モデム１１５、ＮＣＵ１１６を介して相手先からファクシミリ受信した画像データは、ファックス部３０４によって取り込まれ、ストレージ部３０６へ格納される。
【００２６】
本実施形態のＭＦＰ１０では、ＶＭ（ＶＩＲＴＵＡＬ  ＭＡＣＨＩＮＥ）／ＦＷ（ＦＲＡＭＥＷＯＲＫ）部２０９を備える。拡張アプリケーションプログラム部２１０は、スクリプト言語で記述された任意のプログラム等から構成される。例えば、バイトコードを解釈して実行するインタープリタであるＪＡＶＡ（登録商標）や、ＬＵＡなどの言語系を用いてもよい。ＶＭ／ＦＷ部２０９は、スクリプト言語や所定の高級言語で記述された任意のプログラムを拡張アプリケーションプログラム部２１０へインストールする、あるいは、拡張アプリケーションプログラム部２１０からアンインストールする役割を受け持つ。また、ＶＭ／ＦＷ部２０９は、拡張アプリケーションプログラム部２１０にインストールされた任意のプログラムで実現される機能と既存機能との調停等も受け持つ。そして、ＶＭ／ＦＷ部２０９は記述されているスクリプト言語を解釈して実行する。また、ＶＭ／ＦＷ部２０９は拡張アプリケーションプログラム部２１０にインストールされた任意のプログラムに関連のあるイベント発生時に拡張アプリケーションプログラム部２１０に対してメッセージを送信する。イベントとは例えばＵＩ２０２で検知されたキー入力やＶＭ／ＦＷ部２０９が管理するタイマーの満了などである。ＶＭ／ＦＷ部２０９は拡張アプリケーションプログラム部２１０に送信したメッセージの応答がない場合など拡張アプリケーションプログラム部２１０にインストールされた任意のプログラムの異常を検知した場合、該プログラムを強制終了する。
【００２７】
例えばネイティブアプリケーションプログラムであるコピー機能を操作部のスタートキー押下で実行する際は、操作部１０７から入力されたスタートキー押下の操作情報が操作部コントローラ１０６を経由してデバイスドライバ―２０８に通知される。デバイスドライバ―２０８はＵＩ  デバイスコントローラ２１１に操作情報を通知すると、ＵＩ  デバイスコントローラ２１１はネイティブアプリケーションプログラム実行時であることからＵＩ２０２に操作情報を通知する。ＵＩ２０２はスタートキー押下であることを認識すると、コピー機能のスタートキー押下であると判断してジョブコントローラ部２０３にコピー開始を通知してコピーを実行する。また拡張アプリケーションプログラムが起動している場合は操作情報をＶＭ／ＦＭ２０９に通知する。例えば拡張アプリケーションプログラムであるＩＤカードスキャンを操作部のスタートキー押下で実行する際は、操作部１０７から入力されたスタートキー押下の操作情報が操作部コントローラ１０６を経由してデバイスドライバ―２０８に通知される。デバイスドライバ―２０８はＵＩ  デバイスコントローラ２１１に操作情報を通知すると、ＵＩ  デバイスコントローラ２１１は拡張アプリケーションプログラム実行時であることからＶＭ／ＦＷ２０９に操作情報を通知する。ＶＭ／ＦＷ２０９はスタートキー押下であることを認識すると、拡張アプリケーションプログラム２１０であるＩＤカードコピーにスタートキー押下を通知する。拡張アプリケーションプログラム２１０であるＩＤカードコピーはスタートキー押下であると判断してＶＭ／ＦＷ２０９経由でジョブコントローラ部２０３にＩＤカードコピー開始を通知してＩＤカードコピーを実行する。
【００２８】
これらによって、本実施形態のＭＦＰ１０は、機能の着脱性を維持しつつ、ログインアプリケーションプログラムや拡張アプリケーションプログラム２１０および２１２などの任意の機能を実装することができる。
【００２９】
ＵＩ  デバイスコントローラ２１１は、ＵＩ２０２および拡張アプリケーションプログラム２１０による表示部１０５への各種情報の出力や、操作部１０７によるユーザ操作のＵＩ２０２および拡張アプリケーションプログラム３１０への伝達を仲介する。拡張アプリケーションプログラムは２１０のみならず、複数が追加登録できる。
【００３０】
図１３は本実施形態における情報機器１３０１のハードウェア構成を示すブロック図である。情報機器１３０１は、モデム１３０２、ＣＰＵ１３０３、ＲＯＭ１３０４、ＲＡＭ１３０５、ＨＤＤ１３０６、Ｉ／Ｏ１３０７を備える。モデム１３０２はＭＦＰ１０との通信を行う装置であるが、ネットワークインターフェースを用いても良い。ＲＯＭ１３０４は制御プログラムを格納し、ＲＡＭ１３０５はワークメモリとして使用される。ＨＤＤ１３０６は各種データが格納され、Ｉ／Ｏ１３０７は外部とのデータ授受を行う。ＣＰＵ１３０３はモデム、ＣＰＵ１３０３、ＲＯＭ１３０４、ＲＡＭ１３０５、ＨＤＤ１３０６、Ｉ／Ｏ１３０７の制御を行う。
【００３１】
図１４は、本実施形態のＨＤＤ１３０６に記憶されるソフトウェアモジュール図である。ＨＤＤ１３０６に記憶されている図１４に示すプログラムは、ＣＰＵ１３０４によりＲＡＭ１３０５へ読みだされて実行される。情報機器１３０１の一例としては、パーソナルコンピュータや、ワークステーション、スマートフォンなどがある。例えば、図１４のスクリプト１４０３は、ＣＰＵ１３０３により実行されると、図３のボタン設定画面側処理３００−１の処理などを実現する。１４０１はウェブブラウザ、１４０３はスクリプト、１４０２はオペレーティングシステムである。
【００３２】
以下、本発明を実施するための形態について図面を用いて説明する。
【００３３】
本実施形態における拡張アプリケーションプログラムは、表示部１０５に表示される拡張アプリケーションプログラム起動ボタンが押下された際に、次の動作をする。拡張アプリケーションプログラムは、予め設定されたファイルを予め設定されたプリント設定に基づきプリントを実行し処理を終了する。
【００３４】
図３は本実施形態における、表示部１０５に拡張アプリケーションプログラム起動ボタンを設定する際の流れを示す図である。図３中の３００−１は拡張アプリケーションプログラム起動ボタンを設定する、ＭＦＰ１０とＬＡＮ経由で接続された情報機器１３０１側の処理を示す。
【００３５】
この処理は、ウェブブラウザ１４０１を用いてＭＦＰ１０からダウンロードされるスクリプト１４０３をＣＰＵ１３０４が実行することにより実行される。３００−２はＭＦＰ１０側の処理を示す。この処理は、図２の拡張アプリケーションプログラムをＣＰＵ１０１が実行することで実現される。
【００３６】
図４は拡張アプリケーションプログラム起動ボタンの設定画面４０１の例を示す図である。ここでは、この設定画面はＭＦＰ１０とＬＡＮ経由で接続された情報機器１３０１のＷＥＢブラウザ画面に表示する画面例を示す。この画面は、図１３の表示部１３０８に表示される。また、図５は本実施形態におけるＭＦＰ１０の表示部１０５に表示される画面例を示す図である。例えば、プリント（会合）５０２のボタンはひとつの拡張アプリケーションに対応している。このボタンは図４の操作で登録することができる。なお、新規登録時には、ボタン名４０４にプリント（会合）と記載してその他の必要な設定を入力する。そして、ＯＫ４０２を押下すると、プリントジョブを投入するための拡張アプリケーションが設定値とともに情報機器１３０１からＭＦＰ１０へ送信され、ＭＦＰ１０において登録されるようにしてもよい。その結果、プリント（会合）５０２のボタンがＭＦＰ１０側に現れるように構成されてもよい。
【００３７】
図３の３００―１は、情報処理機器１３０１の電源が導入されると開始する。まず、ステップ３０１において情報機器１３０１のウェブブラウザ１４０１からＭＦＰ１０に対し、拡張アプリケーションプログラム起動ボタンの設定画面４０１へのアクセス要求を行ったか否かの判断が行われる。この処理は、アクセス要求を行っていないと判断された際は、ステップ３０１に戻り処理を繰り返す。アクセス要求を行ったと判断された場合は、ＭＦＰ１０から拡張アプリケーションプログラム起動ボタンの設定画面４０１を受信し、情報機器１３０１のウェブブラウザ１４０１に設定画面が表示される。続いて、ステップ３０２へ移行する。ここで、拡張アプリケーションプログラム起動ボタンの設定画面４０１には図４に示すように、ボタン名４０４、ファイルのパス４０５、プリント設定４０６〜４１０等の設定項目を含む。これらの設定項目およびファイルパスで指定されたデータは、発行される印刷ジョブを生成する際に使用される。
【００３８】
次にステップ３０２において拡張アプリケーションプログラム起動ボタンの設定画面４０１でＯＫボタンまたはキャンセルボタンが押下されたか否かの判断が行われる。つまり、ステップ３０２で入力待ちの間、図４の画面を介して設定が入力されるとその設定値や制御情報は保持される。ＯＫボタン、キャンセルボタンのどちらも押下されていない場合はステップ３０２に戻り、キャンセルボタンが押下されたと判断された際は、ステップ３０１に戻り処理を繰り返す。ステップ３０２の判断でＯＫボタンが押下されたと判断された際は、ステップ３０３で拡張アプリケーションプログラム起動ボタンの設定画面４０１で設定された内容に不備が無いかの確認が行われる。つまり、先ほど保持された設定値のチェックが行われる。ここで設定された内容の不備とは、例えば、図４のボタン名４０４、ファイルのパス４０５が設定されないままＯＫボタンが押下された場合や、入力が許可されていない文字種が入力された状態でＯＫボタンが押下された場合等である。
【００３９】
ステップ３０４ではステップ３０３の確認の結果、設定に不備があったか否かの判断が行われる。設定に不備があったと判断された場合はステップ３０６で設定に不備がある旨を示すエラー画面の表示が行われた後、ステップ３０２に戻る。
【００４０】
ステップ３０４の判断の結果、設定に不備が無いと判断された場合は、ステップ３０５で、情報機器１３０１からＭＦＰ１０に対し設定情報の送信を行う。これにより、設定の登録処理が行われ、拡張アプリケーションプログラム起動ボタン設定画面側の処理を終了する。設定情報は制御情報の一例である。設定の登録処理には、表示部１０５に表示するボタンのリストへのボタン情報追加も含む。ここで、ステップ３０３の設定の確認は、ウェブブラウザ１４０１に表示されたコンテンツに含まれるＪＡＶＡＳＣＲＩＰＴ（登録商標）等のスクリプト言語で行うことを想定している。また、ウェブブラウザ１４０１からＭＦＰ１０側に設定内容を送信し、ＭＦＰ１０側で確認を行い、確認結果をウェブブラウザ１４０１に返しても良い。
【００４１】
図３のＭＦＰ１０側の処理は電源ＯＮに応じて開始される。ＭＦＰ１０側ではステップ３０７で、表示部１０５に表示するボタンのリスト情報が更新されたか否かの判断が行われる。つまり、ステップ３０５の設定登録に応じてＭＦＰ１０から情報機器１０３１へ送信されるボタンのリスト情報を確認する。そして、ボタンのリスト情報が更新されていないと判断された場合はステップ３０７に戻り処理が繰り返される。リスト情報が更新されていると判断された場合は、ステップ３０８において表示部１０５に拡張アプリケーションプログラム起動ボタンの表示を行い、ＭＦＰ１０側の処理を終了する。ここで表示部１０５に表示される拡張アプリケーションプログラム起動ボタンの例を図５の５０２に示す。ここで拡張アプリケーションプログラム起動ボタンのボタン名は拡張アプリケーションプログラム起動ボタンの設定画面４０１のボタン名で設定された名称が表示される。また、表示部１０５にはカウンターの値を確認するカウンター確認画面に遷移する為のボタン５０５や、ジョブやデバイスの状況を確認する状況確認画面に遷移する為のボタン５０６を含んでも良い。図４で入力された情報に基づいて、図５で表示されるボタンが追加される。なお、情報処理機器１３０１は、既存のアプリケーションボタンの設定情報をＭＦＰ１０から取得して、その設定情報を更新して同様にベリファイし、ＭＦＰ１０へ書きもどすこともできる。
【００４２】
図６は本実施形態における、拡張アプリケーションプログラム起動ボタン押下時の処理の流れを示す図である。図６中の６００−１は拡張アプリケーションプログラム側の処理を示し、６００−２はネイティブ側の処理を示す。ここで６００−２の処理はＶＭ／ＦＷ２０９、ジョブコントローラ部２０３で主に行われる。図６のネイティブ側の処理６００−２の処理をすべてジョブコントローラ部２０３にて実行してもよい。６００−１の処理は特に断らない限り、拡張アプリケーションによる処理である。
【００４３】
図６の６００−１および６００−２はＭＦＰ１０の電源ＯＮに応じて開始する。開始当初、拡張アプリケーションは、停止、中断、もしくは終了状態である。まず、ステップ６０１において、表示部１０５に表示されている拡張アプリケーションプログラム起動ボタンが押下されたか否かの判断が行われる。この判断は、ＣＰＵ１０１により行われる。サスペンド中の拡張アプリケーションにより行われてもよい。また、ＶＭ／ＦＷ２０９により行われてもよい。拡張アプリケーションプログラム起動ボタンが押下されていないと判断された場合はステップ６０１に戻り処理を繰り返す。拡張アプリケーションプログラム起動ボタンが押下されたと判断された場合は、ステップ６０２で前記拡張アプリケーションプログラム起動ボタンに対応する拡張アプリケーションプログラムを起動する。次にステップ６０３において、図４の拡張アプリケーションプログラム起動ボタンの設定画面４０１で設定された内容に基づき、印刷対象のファイルの取得や印刷実行権限の確認を行い、実行可能か否かの判断が行われる。
【００４４】
拡張アプリケーションプログラムを実行して、前記印刷ジョブの実行の開始指示が前記ジョブ処理プログラムに対して入力された結果、前記開始指示の返り値が肯定値であれば、前記ジョブ処理プログラムの投入が成功したとＣＰＵ１０１は判断してもよい。また、
ステップ６０３で実行不可であると判断された場合は、ステップ６１１でエラー画面の表示を行い、ステップ６０１の処理に戻る。この処理は、拡張アプリケーションプログラムが、各種認証および権限データベースとの照合結果に基づき行ってもよい。
【００４５】
ここで、エラー画面の例を図８に示す。図８はユーザにプリントに関わる制限がかかっている場合の例である。表示部１０５の８０１に各エラーに対応するメッセージの表示を行う。この表示は拡張アプリケションプログラムによりなされてもよいし、ジョブコントローラ部２０３によりなされてもよい。
【００４６】
ステップ６０３で実行可能であると判断された場合は、ステップ６０４にてジョブの投入を行う。ジョブの投入は拡張アプリケーションプログラム２１０がＶＭ／ＦＷ２０９経由でジョブコントローラ部２０３に対してジョブの実行を指示することで行われる。
ジョブ投入時の表示部１０５の画面例を図７に示す。例えば図７のように拡張アプリケーションプログラム起動ボタンのボタン名と、処理を実行する旨のメッセージを表示する。拡張アプリケーションプログラムは図７の画面を表示した後、即座にまたは所定時間の経過後に、終了するようにするとよい。その後、図７の画面は、拡張アプリケーション実行前の画面（ファームウェアの制御下になる。）に戻すようにするとよい。
【００４７】
ネイティブ側はステップ６０５において、拡張アプリケーションプログラム２１０からＶＭ／ＦＷ２０９経由でジョブコントローラ部２０３に対してジョブの実行指示があったか否かの判断を行う。ジョブの投入が無かったと判断された場合は、ステップ６０５に戻り処理を繰り返す。ジョブの投入があったと判断された場合は、ステップ６０６でジョブの実行が可能か否かの受付判断が行われ、ステップ６０７でその結果が拡張アプリケーションプログラム側に送信される。ここでは、ジョブコントローラ部２０３は、投入されたジョブの設定値の確認などを行う。例えば、ジョブに対して、システムの定義外の設定値が設定されている場合などはジョブの投入を受け付けない。たとえば、ジョブに対してユーザ定義用紙を使用するよう指定されている場合に、当該ユーザ定義用紙がＭＦＰ１０の中で設定されていない場合などには、ジョブの投入を受け付けないようにジョブコントローラ部２０３が判断する。また、拡張アプリケーションプログラムのバグなどで、システムの定義外の設定値が設定された場合も同様である。
【００４８】
ステップ６０８で拡張アプリケーションプログラムはステップ６０７で送信された受け付け結果を受信する。ステップ６０９においてステップ６０８で受信した受け付け結果がジョブ実行可能であるか否かの判断が行われる。あくまでも、ジョブが実行が可能かどうかを判定するのは、ステップ６１２においてネイティブ側が行う。
【００４９】
受信した受け付け結果がジョブ実行不可であると拡張アプリケーションプログラムが判断した場合は、ステップ６１１において該当するエラー画面を表示し、ステップ６０１に戻り処理を繰り返す。受信した受け付け結果がジョブ実行可能であると判断した場合は、拡張アプリケーションプログラムはステップ６１０でスクリプト言語の処理を終了しアプリケーションプログラムが終了する。
【００５０】
ネイティブ側ではステップ６０７でジョブの受け付け結果を送信した後、ステップ６１２において、ステップ６０６の判断の結果に基づき、ジョブが実行可能か否かの判断が行われる。ジョブ実行可能でないと判断された場合は、ステップ６０５に戻り処理を繰り返す。ジョブが実行可能であると判断された場合は、ステップ６１３においてジョブを実行する。次にステップ６１４においてジョブ実行中エラーが発生したか否かの判断が行われる。ジョブ実行中エラーが発生したと判断された場合は、ステップ６１５においてエラー画面を表示した後処理を終了する。ここで、ジョブ実行中エラーとは図９に示すような用紙無しエラーや、紙詰まりエラー等、ジョブの実行中に発生するエラーのことである。ステップ６１４においてジョブ実行中エラーが発生していないと判断された場合は、ステップ６１６でジョブが終了か否かの判断が行われる。ジョブが終了していないと判断された場合は、ステップ６１４に戻り処理を繰り返し、ジョブが終了していると判断された場合は、そのまま処理を終了する。
【００５１】
本実施形態では、ジョブの実行が可能とステップ６１２で判断された後、処理を進める中で、エラーが発生する（ステップ６１４）こともある。ただし、ステップ６１２でジョブが実行可能と判断されると、いち早く拡張アプリケーションに通知され、拡張アプリケーションはジョブ受け付け結果を受信する（ステップ６０８）のに応じて終了する（ステップ６１０）。従って、ステップ６１０のタイミングは、ステップ６１４よりも早いことが想定されている。すなわち、ステップ６１５におけるエラー画面の表示は、拡張アプリケーションが終了しているときでも、ジョブコントローラ部２０３が、ＵＩ２０２を通じて行うことができる。つまり拡張アプリケーションの終了後に、ネイティブのファームウェアの一部であるジョブコントローラ部２０３およびＵＩ２０２が、エラー判定およびエラー表示を行う。なお、拡張アプリケーションプログラム終了（ステップ６０８）の後、ＶＭ／ＦＷ２０９経由で、別の拡張アプリケーションプログラム２１２を動作させるよう指示することもできる。この別の拡張アプリケーションプログラム２１２が動作中に、拡張アプリケーションプログラム２１０が投入したジョブがエラーになった場合、ジョブコントローラ部２０３はエラーが生じたと判定する。そして、ジョブコントローラ部２０３は、生じたエラーの内容をＵＩ２０２に通知する。エラーを通知されたＵＩ２０２は、動作中の拡張アプリケーションプログラム２１２の上にオーバーライドするか切り換える形で、図９に示す画面をエラーを表示部１０５の上に表示してもよい。また、ネットワークを介してネットワークインタフェースカード１１７を通じて図９と同様の意味内容を含むエラーを所定の形式で通知したりする。この際、ＵＩ２０２は、図９などのほか、生じたエラーの内容に応じて、ジョブのリカバリー処理（紙詰まり解除方法などの手順）などを表示部１０５の上に表示してもよい。図９の画面が表示された場合の後は、ユーザが用紙を補給するなどしてエラーの原因を取り除くと、もとの画面に戻る。もとの画面とは、エラーが発生する直前の画面である。ホーム画面に戻ることもあれば、拡張アプリケーションプログラム２１２の処理画面にもどることもある。
【００５２】
図１０は拡張アプリケーションプログラム起動ボタンの設定画面４０１の設定項目に「実行前に確認画面を表示する／しない」の設定（１００１）を追加した際の設定画面の例を示す図である。
【００５３】
図１１は拡張アプリケーションプログラム起動ボタンの設定画面４０１で「実行前に確認画面を表示する」が設定された際の処理の流れを示す図である。ここで、ステップ６０３とステップ６０４間以外の処理は図６の処理と同様である為ここでは割愛する。
ステップ６０３で実行可能であると判断された際は、ステップ１１０１において実行前確認画面表示の設定がされているか否かの判断が行われる。実行前確認画面表示の設定が設定されていないと判断された場合はステップ６０４に進みジョブの投入を行う。実行前確認画面表示の設定が設定されていると判断された場合は、ステップ１１０２で実行前確認画面の表示を行う。実行前確認画面表示の設定は図４と同様情報機器１３０１のウェブブラウザ１４０１から行われ、ＬＡＮ経由でＭＦＰ１０側に送信される。この設定情報はＥＭＭＣ１０９に格納され、アプリケーションプログラム起動時にＲＡＭ１０３に展開される。このＲＡＭ１０３の情報をアプリケーションプログラムが確認することで、実行前確認画面を表示するか否かの動きを切り替える。ここで実行前確認画面の例を図１２に示す。例えば実行前確認画面には実行するファイルのファイル名や部数、用紙サイズ等の設定値の表示と、ジョブを実行するか否か指示する為のボタンを有する。
【００５４】
次にステップ１１０３において、実行前確認画面において、ボタンが押下されたか否かの判断が行われる。何もボタンが押下されていないと判断された際は、ステップ１１０２に戻り処理を繰り返す。「いいえ」ボタンが押下されたと判断された際は、ステップ６０１に戻り処理を繰り返す。「はい」ボタンが押下されたと判断された際は、ステップ６０４に進みジョブの投入を行う。
【００５５】
以上説明したことを整理すると下記のようになる。画像形成装置の一例であるＭＦＰ１０は、ファームウェアの一部であるジョブ処理プログラムの一例であるジョブコントローラ部２０３を用いて制御される。また、ＭＦＰ１０には、アプリケーションプログラムの一例である拡張アプリケーションプログラムをインストール可能である。ＭＦＰ１０は、拡張アプリケーションプログラムが起動されたことに応じて、印刷ジョブの前記ジョブ処理プログラムへの投入が成功したか否かを判断するＣＰＵ１０１を備える。印刷ジョブの投入が成功したとＣＰＵ１０１が判断したたことに応じて、前記拡張アプリケーションプログラムをＣＰＵ１０１が終了させる。拡張アプリケーションプログラムの終了後、ジョブコントローラ部２０３の制御下にて、ＣＰＵ１０１は、前記印刷ジョブのステータスを取得する。
【００５６】
さらにＣＰＵ１０１が取得したステータスに基づきステータス情報を報知する処理をＣＰＵ１０１が制御する。具体的には、ＣＰＵ１０１が取得したステータスは、例えば図９のように表示部１０５において表示される。
【００５７】
さらに、ＣＰＵ１０１は、拡張アプリケーションプログラムが投入すべき印刷ジョブに関する制御情報を登録することができる。制御情報の一例としては、図１０の情報機器１３０１の表示部１３０８上に表示される入力画面から入力される情報がある。この情報は、ネットワークを介してＭＦＰ１０に対して情報機器１３０１から送信される。ＭＦＰ１０のＣＰＵ１０１は、受信した制御情報をＲＯＭ１０２やＥＭＭＣ１０９などへ記録登録する処理を制御する。制御情報は、拡張アプリケーションプログラムがジョブを投入する前に確認画面（例えば図１２）をＭＦＰ１０の表示部１０５へ表示するか否かを制御する情報を含む。これは、図１０のチェックボックス１００１の操作を介して入力されうる。
また、ステータス情報に基づき、ＭＦＰ１０に対して接続されている表示部１０５を更新することもできる。
【００５８】
さらに、拡張アプリケーションプログラムを実行して、前記印刷ジョブの実行の開始指示が前記ジョブ処理プログラムに対して入力されたとする。その結果、前記開始指示の返り値が肯定値であれば、前記ジョブ処理プログラムの投入が成功したとＣＰＵ１０１は判断してもよい。ＣＰＵ１０１は拡張アプリケーションプログラムを終了させる。
【００５９】
さらに、前記拡張アプリケーションプログラムが終了した後、ジョブコントローラ部２０３の制御下にて、前記印刷ジョブの処理中に前記印刷ジョブに関するエラーが認識される。すると、印刷ジョブに関するエラーの発生をＣＰＵ１０１はジョブコントローラ部２０３の制御下にてエラーを報知する処理を制御する。
【００６０】
また、印刷ジョブに対して、印刷システムの定義外の設定値が設定されている場合に前記ＣＰＵ１０１は前記印刷ジョブの投入が失敗したと判断する。そして、拡張アプリケーションプログラムに対してジョブコントローラ部２０３は印刷ジョブの投入が失敗したことを通知する。
【符号の説明】
【００６１】
１０  ＭＦＰ
２０３  ジョブコントローラ部
【図１】
2018088117.tif 000003
【図２】
2018088117.tif 000004
【図３】
2018088117.tif 000005
【図４】
2018088117.tif 000006
【図５】
2018088117.tif 000007
【図６】
2018088117.tif 000008
【図７】
2018088117.tif 000009
【図８】
2018088117.tif 000010
【図９】
2018088117.tif 000011
【図１０】
2018088117.tif 000012
【図１１】
2018088117.tif 000013
【図１２】
2018088117.tif 000014
【図１３】
2018088117.tif 000015
【図１４】
2018088117.tif 000016