(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-12
(45)【発行日】2024-04-22
(54)【発明の名称】印刷装置および制御方法
(51)【国際特許分類】
G06F 3/12 20060101AFI20240415BHJP
H04N 1/00 20060101ALI20240415BHJP
B41J 29/38 20060101ALI20240415BHJP
【FI】
G06F3/12 330
G06F3/12 320
G06F3/12 324
G06F3/12 353
G06F3/12 358
G06F3/12 359
H04N1/00 912
H04N1/00 127A
B41J29/38 201
(21)【出願番号】P 2022207798
(22)【出願日】2022-12-26
(62)【分割の表示】P 2021076249の分割
【原出願日】2016-11-29
【審査請求日】2023-01-10
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】小池 宏明
【審査官】白石 圭吾
(56)【参考文献】
【文献】特開2013-030131(JP,A)
【文献】特開2011-138395(JP,A)
【文献】特開2003-248637(JP,A)
【文献】特開2010-214710(JP,A)
【文献】特開2007-041911(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/09-3/12
H04N 1/00
B41J 29/00-29/70
(57)【特許請求の範囲】
【請求項1】
アプリケーションに対応する表示アイテムを表示部に表示させる表示制御手段と、
前記アプリケーションを解釈する仮想マシン
を含むシステムプログラムと、前記表示アイテムの選択に従って前記仮想マシンにより解釈され尚且つ実行指示を出力させる前記アプリケーションと、前記実行指示に基づいて実行される印刷処理を制御するジョブコントロールプログラムと、を記憶する記憶手段を有し、
前記仮想マシンにおける前記アプリケーションの実行は、前記表示アイテムの選択に従って前記仮想マシンが実行指示を前記ジョブコントロールプログラムに出力した後、
前記ジョブコントロールプログラムで前記実行指示に従い印刷処理が実行可能である場合に、前記実行指示に基づいて実行される印刷処理の完了を待たずに終了される、ことを特徴とする印刷装置。
【請求項2】
前記仮想マシンにより解釈および実行されるアプリケーションはスクリプトにより記述され、
前記仮想マシンは、前記スクリプトの解釈および実行に基づいて前記実行指示を前記ジョブコントロールプログラムに出力する、ことを特徴とする請求項1に記載の印刷装置。
【請求項3】
前記仮想マシンは、前記スクリプトを含む複数のスクリプトを解釈および実行可能である、ことを特徴とする請求項2に記載の印刷装置。
【請求項4】
外部装置のWebブラウザで設定された設定情報を受信する受信手段を有し、
前記受信手段は、前記設定情報とともに前記アプリケーションを受信する、ことを特徴とする請求項1乃至3の何れか1項に記載の印刷装置。
【請求項5】
前記設定情報は、前記表示部に表示される表示アイテムの名称を含む、ことを特徴とする請求項4に記載の印刷装置。
【請求項6】
前記表示部に表示するボタンのリストと、
前記設定情報に基づいて前記リストに、前記設定情報に基づく印刷を実行させる前記ボタンを登録する登録手段と、をさらに有することを特徴とする請求項4に記載の印刷装置。
【請求項7】
前記アプリケーションは、前記表示部に表示された前記ボタンの選択に従って起動され、そして、前記設定情報に基づく印刷の実行指示を出力する、ことを特徴とする請求項
6に記載の印刷装置。
【請求項8】
前記印刷処理のステータスを通知する通知手段をさらに有し、
前記通知手段は、前記仮想マシンにおけるアプリケーションの実行が終了されていても、前記ステータスを通知することができる、ことを特徴とする請求項1乃至7の何れか1項に記載の印刷装置。
【請求項9】
前記仮想マシンが前記実行指示を出力する前に確認画面を表示するよう設定する設定手段をさらに有する、ことを特徴とする請求項1乃至8の何れか1項に記載の印刷装置。
【請求項10】
前記外部装置のWebブラウザで設定情報を設定するためのスクリプトを前記外部装置に送信する送信手段をさらに有する、ことを特徴とする請求項
4に記載の印刷装置。
【請求項11】
アプリケーションを解釈する仮想マシンを含むシステムプログラムと
、表示アイテムの選択に従って前記仮想マシンにより解釈され尚且つ実行指示を出力させる前記アプリケーションと、前記実行指示に基づいて実行される印刷処理を制御するジョブコントロールプログラムとを記憶している印刷装置
の制御方法であって、
アプリケーションに対応する表示アイテムを表示部に表示させる表示制御ステップと、
実行された前記
ジョブコントロールプログラムが出力した前記実行指示に従い印刷処理を実行する印刷実行ステップと、
前記仮想マシンにおける前記アプリケーションの実行は、前記表示アイテムの選択に従って前記仮想マシンが実行指示を前記ジョブコントロールプログラムに対して出力した後、
前記ジョブコントロールプログラムで前記実行指示に従い印刷処理が実行可能である場合に、前記印刷処理の完了を待たずに終了する終了ステップと、を有することを特徴とする印刷装置の制御方法。
【請求項12】
前記仮想マシンで解釈および実行されるアプリケーションはスクリプトにより記述され、
前記仮想マシンは、前記スクリプトの解釈および実行に基づいて前記実行指示を前記ジョブコントロー
ルプログラムに出力する、ことを特徴とする請求項11に記載の印刷装置の制御方法。
【請求項13】
前記仮想マシンは、前記スクリプトを含む複数のスクリプトを解釈および実行可能である、ことを特徴とする請求項12に記載の印刷装置の制御方法。
【請求項14】
外部装置のWebブラウザで設定された設定情報を受信する受信ステップを有し、
前記受信ステップは、前記設定情報とともに前記アプリケーションを受信する、ことを特徴とする請求項11乃至13の何れか1項に記載の印刷装置の制御方法。
【請求項15】
前記設定情報は、前記表示部に表示される前記
表示アイテムの名称を含む、ことを特徴とする請求項14に記載の印刷装置の制御方法。
【請求項16】
前記受信した前記設定情報に基づいて前記表示部に表示するボタンのリストに、前記設定情報に基づく印刷を実行させる前記ボタンを登録する登録ステップ、をさらに有することを特徴とする請求項14に記載の印刷装置の制御方法。
【請求項17】
前記
ジョブコントロールプログラムは、前記表示部に表示された前記ボタンの選択に従って起動され、そして、前記設定情報に基づく印刷の実行指示を出力する、ことを特徴とする請求項
16に記載の印刷装置の制御方法。
【請求項18】
前記
ジョブコントロールプログラムの実行が終了されていても、前記印刷処理のステータスを通知する通知ステップをさらに有する、ことを特徴とする請求項11乃至17の何れか1項に記載の印刷装置の制御方法。
【請求項19】
前記仮想マシンが前記実行指示を出力する前に確認画面を表示するよう設定する設定ステップをさらに有する、ことを特徴とする請求項11乃至18の何れか1項に記載の印刷装置の制御方法。
【請求項20】
前記外部装置のWebブラウザで設定情報を設定するためのスクリプトを前記外部装置に送信する送信ステップをさらに有する、ことを特徴とする請求項
14に記載の印刷装置の制御方法。
【請求項21】
前記仮想マシンにおける前記アプリケーションは、前記表示アイテムの選択に従って前記仮想マシンが実行指示を前記ジョブコントロールプログラムに出力した後、前記ジョブコントロールプログラムで前記実行指示に従い印刷処理が実行できない場合に、終了しない
ことを特徴とする請求項1に記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションプログラム等を動作させることができる印刷装置を含む組み込み機器及びその制御方法等に関する。
【背景技術】
【0002】
画像形成装置のファームウェア上で、アプリケーションプログラムを動作させることができる。これらの画像形成装置はアプリケーションプログラムを実行する為の実行環境を持つ。この環境においてアプリケーションプログラムを実行することができる。
【0003】
また、二つ以上のアプリケーションプログラムが連携してサービスを提供するシステム形態に言及する文献がある。特開2014-235576では、複数のアプリケーションプログラム間でプログラムの終了を通知し合うことで連携し、プログラムの終了に関する情報の表示を行う方法が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ジョブの実行が終了するまでアプリケーションプログラム側でエラーハンドリングを行うようにすると、アプリケーションプログラムはジョブの処理が終了するまで実行結果を待ち続ける必要があった。この際、エラーハンドリングの為のリソースをアプリケーションプログラムが消費してしまうという問題があった。例えば、リソース制約の為にメインとなるアプリケーションプログラムを排他的に動作させている組み込み機器がある。このような組み込み機器では、ジョブの終了までアプリケーションプログラムがメインとなる処理を占有してしまい、そのジョブの処理が終了するまで他のアプリケーションプログラムの起動/処理を実行することができないという問題があった。本実施形態は、上述の問題点の少なくともひとつを解決するためになされたものである。
本発明は、画像形成装置などの組み込み機器のリソースを有効に活用できる仕組みを提供することをひとつの目的とする。本発明の別の側面は、アプリケーションプログラムを用いてジョブを実行させる際に、画像形成装置のリソースが占有されない仕組みを提供することである。
【課題を解決するための手段】
【0006】
上述の目的の少なくとも一つの達成するために、本実施形態では、アプリケーションに対応する表示アイテムを表示部に表示させる表示制御手段と、前記アプリケーションを解釈する仮想マシンを含むシステムプログラムと、前記表示アイテムの選択に従って前記仮想マシンにより解釈され尚且つ実行指示を出力させる前記アプリケーションと、前記実行指示に基づいて実行される印刷処理を制御するジョブコントロールプログラムと、を記憶する記憶手段を有し、前記仮想マシンにおける前記アプリケーションの実行は、前記表示アイテムの選択に従って前記仮想マシンが実行指示を前記ジョブコントロールプログラムに出力した後、前記ジョブコントロールプログラムで前記実行指示に従い印刷処理が実行可能である場合に、前記実行指示に基づいて実行される印刷処理の完了を待たずに終了される、ことを特徴とする印刷装置を提供する。
【発明の効果】
【0007】
本発明によれば、画像形成装置などの組み込み機器のリソースを有効に活用することができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態におけるMFPハードウェア構成を示すブロック図の一例を示す図である。
【
図2】本実施形態におけるMFPのソフトウェア構成の一例を示す図である。
【
図3】本実施形態における拡張アプリケーションプログラム起動ボタン設定時のフロー例を示す図である。
【
図4】本実施形態における拡張アプリケーションプログラム起動ボタンの登録画面の例を示す図である。
【
図5】本実施形態における表示部105に表示される画面例を示す図である。
【
図6】本実施形態における拡張アプリケーションプログラム起動ボタン押下時の処理のフロー例を示す図である。
【
図7】本実施形態におけるジョブ投入時の表示部の画面例を示す図である。
【
図8】本実施形態におけるユーザにプリントに関わる制限がかかっている場合の例を示す図である。
【
図9】本実施形態におけるジョブ実行中に発生したエラー画面の例を示す図である。
【
図10】本実施形態における
図4の設定画面に設定項目を追加した例を示す図である。
【
図11】本実施形態における
図10で追加された設定項目が設定された際の処理の流れを示す図である。
【
図12】本実施形態における実行前確認画面の例を示す図である。
【
図13】本実施形態における情報機器1301のハードウェア構成を示すブロック図の位置例を示す図である。
【
図14】本実施形態における情報機器1301のソフトウェアブロック図を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本実施形態におけるMFPのハードウェア構成を示すブロック図である。MFP10は、画像形成装置の一例である。画像形成装置は、組み込み機器の一例である。組み込み機器にはモバイル機器や、スマートフォンなどのリースの制約のある機器が含まれる。
【0010】
図1に示すように、MFP10は、CPU101、ROM102、RAM103、表示コントローラ104、表示部105、操作コントローラ106、操作部107を備える。また、MFP10は、EMMCホストコントローラ108、EMMC109、読取コントローラ110、読取部111、記録コントローラ112、記録部113を備える。さらに、MFP10は、USBホストコントローラ114、モデム115、網制御ユニット(NCU)116、ネットワークインタフェースカード117を備えている。EMMC109は読み書き可能な不揮発性のストレージ装置の一例である。
【0011】
CPU101は、システムバス118に接続される各デバイスを総括的に制御する。CPU101は、電源が供給されると、ROM102に記憶されたブートプログラムを実行する。通常、ブートプログラムは、ストレージに保存されているメインプログラムをRAM103にロードして、ロードされたメインプログラムの先頭にジャンプする。RAM103は、メインプログラムのロード場所としてだけでなく、メインプログラムのワークエリアなどとして機能する。
【0012】
表示コントローラ104は、表示部105に対する描画を制御する。表示部105は、WVGAサイズのフルビットマップLCDである。一方、操作コントローラ106は、MFPに装備された操作部107からの入力を制御する。操作部107は、表示部105に重畳されたタッチパネルからなる。
【0013】
読取部111は、原稿の読み取りを行う。読取部111には、オプションとしてオートドキュメントフィーダ(不図示)が装着されており、複数枚の原稿を自動的に読み取ることができる。読取部111は読取コントローラ110に接続されており、CPU101は
読取コントローラ110を介して読取部111とやり取りする。
【0014】
また、記録部113は、電子写真方式で記録紙に画像形成を行う。記録部113は記録コントローラ112に接続されており、CPU101は記録コントローラ112を介して記録部113とやり取りする。
【0015】
USBホストコントローラ114は、USBのプロトコル制御を受け持ち、USBメモリ(不図示)などUSBデバイスに対するアクセスを仲介する。
【0016】
モデム115は、ファクシミリ通信に必要な信号の変調・復調を行う。また、モデム115はNCU116に接続されている。モデム115で変調された信号は、NCU116を介して公衆回線網(PSTN)へ送出される。
【0017】
ネットワークインタフェースカード117は、LANを介して、メールやファイルのサーバなどと双方向にデータのやり取りを行う。
【0018】
本実施例のMFP10はストレージとしてEMMC109を備える。CPU101は、EMMCホストコントローラ108を介してEMMC109にアクセスする。
【0019】
図2は、本実施形態におけるMFP10のソフトウェア構成図である。
図2において実線で示した各部は、CPU101が前述したブートプログラムでRAM103にロードされたメインプログラムに対応するソフトウェアモジュールである。
図2に記載のソフトウェアモジュール群は、CPU101によりRAM103へ読みだされ実行される。
【0020】
メインプログラムは、OS(OPERATING SYSTEM)によって後述するそれぞれのモジュールの実行が管理・制御されている。OS部201には、デバイスドライバ―部208が組み合わされている。デバイスドライバ―部208は、表示部コントローラ104、操作部コントローラ106、読取コントローラ110などのハードウェアデバイスとのやり取りを仲介する。
【0021】
UI(USER INTERFACE)部202は、表示部105および操作部107を介して各種情報をユーザに提供するとともに、ユーザからの各種指示を受け付ける。
【0022】
ジョブコントローラ部203は、コピーやプリント、ファックスなどのジョブを受け付け、受け付けたジョブの実行を制御する。
【0023】
ネットワーク送信部205は、アプリーションまたはファームウェアにより実装される。拡張アプリケーションから入力される各種ドキュメントを電子メール形式またはSMB形式などでネットワークを介して外部の装置へ送信する機能である。
【0024】
ストレージ部206は、例えばファクシミリ送受信する画像やユーザ設定などのデータを、物理的にEMMC109へ格納して管理するソフトウェアモジュールである。
【0025】
例えば、本実施形態のMFP10において、ジョブコントローラ部203がファックスジョブを受け付けると、スキャン部207はそのジョブ要求を受けて読取部111を制御して原稿をスキャンする。そして、スキャンしたファクシミリ画像データをストレージ部206へ格納する。ストレージ部206に格納されたファクシミリ画像データはFAX部204によって読み出され、モデム115、NCU116を介して相手先にファクシミリ送信される。あるいは、モデム115、NCU116を介して相手先からファクシミリ受信した画像データは、ファックス部304によって取り込まれ、ストレージ部306へ格納される。
【0026】
本実施形態のMFP10では、VM(VIRTUAL MACHINE)/FW(FRAMEWORK)部209を備える。拡張アプリケーションプログラム部210は、スクリプト言語で記述された任意のプログラム等から構成される。例えば、バイトコードを解釈して実行するインタープリタであるJAVA(登録商標)や、LUAなどの言語系を用いてもよい。VM/FW部209は、スクリプト言語や所定の高級言語で記述された任意のプログラムを拡張アプリケーションプログラム部210へインストールする、あるいは、拡張アプリケーションプログラム部210からアンインストールする役割を受け持つ。また、VM/FW部209は、拡張アプリケーションプログラム部210にインストールされた任意のプログラムで実現される機能と既存機能との調停等も受け持つ。そして、VM/FW部209は記述されているスクリプト言語を解釈して実行する。また、VM/FW部209は拡張アプリケーションプログラム部210にインストールされた任意のプログラムに関連のあるイベント発生時に拡張アプリケーションプログラム部210に対してメッセージを送信する。イベントとは例えばUI202で検知されたキー入力やVM/FW部209が管理するタイマーの満了などである。VM/FW部209は拡張アプリケーションプログラム部210に送信したメッセージの応答がない場合など拡張アプリケーションプログラム部210にインストールされた任意のプログラムの異常を検知した場合、該プログラムを強制終了する。
【0027】
例えばネイティブアプリケーションプログラムであるコピー機能を操作部のスタートキー押下で実行する際は、操作部107から入力されたスタートキー押下の操作情報が操作部コントローラ106を経由してデバイスドライバ―208に通知される。デバイスドライバ―208はUI デバイスコントローラ211に操作情報を通知すると、UI デバイスコントローラ211はネイティブアプリケーションプログラム実行時であることからUI202に操作情報を通知する。UI202はスタートキー押下であることを認識すると、コピー機能のスタートキー押下であると判断してジョブコントローラ部203にコピー開始を通知してコピーを実行する。また拡張アプリケーションプログラムが起動している場合は操作情報をVM/FM209に通知する。例えば拡張アプリケーションプログラムであるIDカードスキャンを操作部のスタートキー押下で実行する際は、操作部107から入力されたスタートキー押下の操作情報が操作部コントローラ106を経由してデバイスドライバ―208に通知される。デバイスドライバ―208はUI デバイスコントローラ211に操作情報を通知すると、UI デバイスコントローラ211は拡張アプリケーションプログラム実行時であることからVM/FW209に操作情報を通知する。VM/FW209はスタートキー押下であることを認識すると、拡張アプリケーションプログラム210であるIDカードコピーにスタートキー押下を通知する。拡張アプリケーションプログラム210であるIDカードコピーはスタートキー押下であると判断してVM/FW209経由でジョブコントローラ部203にIDカードコピー開始を通知してIDカードコピーを実行する。
【0028】
これらによって、本実施形態のMFP10は、機能の着脱性を維持しつつ、ログインアプリケーションプログラムや拡張アプリケーションプログラム210および212などの任意の機能を実装することができる。
【0029】
UI デバイスコントローラ211は、UI202および拡張アプリケーションプログラム210による表示部105への各種情報の出力や、操作部107によるユーザ操作のUI202および拡張アプリケーションプログラム310への伝達を仲介する。拡張アプリケーションプログラムは210のみならず、複数が追加登録できる。
【0030】
図13は本実施形態における情報機器1301のハードウェア構成を示すブロック図である。情報機器1301は、モデム1302、CPU1303、ROM1304、RAM1305、HDD1306、I/O1307を備える。モデム1302はMFP10との通信を行う装置であるが、ネットワークインターフェースを用いても良い。ROM1304は制御プログラムを格納し、RAM1305はワークメモリとして使用される。HDD1306は各種データが格納され、I/O1307は外部とのデータ授受を行う。CPU1303はモデム、CPU1303、ROM1304、RAM1305、HDD1306、I/O1307の制御を行う。
【0031】
図14は、本実施形態のHDD1306に記憶されるソフトウェアモジュール図である。HDD1306に記憶されている
図14に示すプログラムは、CPU1304によりRAM1305へ読みだされて実行される。情報機器1301の一例としては、パーソナルコンピュータや、ワークステーション、スマートフォンなどがある。例えば、
図14のスクリプト1403は、CPU1303により実行されると、
図3のボタン設定画面側処理300-1の処理などを実現する。1401はウェブブラウザ、1403はスクリプト、1402はオペレーティングシステムである。
【0032】
以下、本発明を実施するための形態について図面を用いて説明する。
【0033】
本実施形態における拡張アプリケーションプログラムは、表示部105に表示される拡張アプリケーションプログラム起動ボタンが押下された際に、次の動作をする。拡張アプリケーションプログラムは、予め設定されたファイルを予め設定されたプリント設定に基づきプリントを実行し処理を終了する。
【0034】
図3は本実施形態における、表示部105に拡張アプリケーションプログラム起動ボタンを設定する際の流れを示す図である。
図3中の300-1は拡張アプリケーションプログラム起動ボタンを設定する、MFP10とLAN経由で接続された情報機器1301側の処理を示す。
【0035】
この処理は、ウェブブラウザ1401を用いてMFP10からダウンロードされるスクリプト1403をCPU1304が実行することにより実行される。300-2はMFP10側の処理を示す。この処理は、
図2の拡張アプリケーションプログラムをCPU101が実行することで実現される。
【0036】
図4は拡張アプリケーションプログラム起動ボタンの設定画面401の例を示す図である。ここでは、この設定画面はMFP10とLAN経由で接続された情報機器1301のWEBブラウザ画面に表示する画面例を示す。この画面は、
図13の表示部1308に表示される。また、
図5は本実施形態におけるMFP10の表示部105に表示される画面例を示す図である。例えば、プリント(会合)502のボタンはひとつの拡張アプリケーションに対応している。このボタンは
図4の操作で登録することができる。なお、新規登録時には、ボタン名404にプリント(会合)と記載してその他の必要な設定を入力する。そして、OK402を押下すると、プリントジョブを投入するための拡張アプリケーションが設定値とともに情報機器1301からMFP10へ送信され、MFP10において登録されるようにしてもよい。その結果、プリント(会合)502のボタンがMFP10側に現れるように構成されてもよい。
【0037】
図3の300―1は、情報処理機器1301の電源が導入されると開始する。まず、ステップ301において情報機器1301のウェブブラウザ1401からMFP10に対し、拡張アプリケーションプログラム起動ボタンの設定画面401へのアクセス要求を行ったか否かの判断が行われる。この処理は、アクセス要求を行っていないと判断された際は、ステップ301に戻り処理を繰り返す。アクセス要求を行ったと判断された場合は、MFP10から拡張アプリケーションプログラム起動ボタンの設定画面401を受信し、情報機器1301のウェブブラウザ1401に設定画面が表示される。続いて、ステップ302へ移行する。ここで、拡張アプリケーションプログラム起動ボタンの設定画面401には
図4に示すように、ボタン名404、ファイルのパス405、プリント設定406~410等の設定項目を含む。これらの設定項目およびファイルパスで指定されたデータは、発行される印刷ジョブを生成する際に使用される。
【0038】
次にステップ302において拡張アプリケーションプログラム起動ボタンの設定画面401でOKボタンまたはキャンセルボタンが押下されたか否かの判断が行われる。つまり、ステップ302で入力待ちの間、
図4の画面を介して設定が入力されるとその設定値や制御情報は保持される。OKボタン、キャンセルボタンのどちらも押下されていない場合はステップ302に戻り、キャンセルボタンが押下されたと判断された際は、ステップ301に戻り処理を繰り返す。ステップ302の判断でOKボタンが押下されたと判断された際は、ステップ303で拡張アプリケーションプログラム起動ボタンの設定画面401で設定された内容に不備が無いかの確認が行われる。つまり、先ほど保持された設定値のチェックが行われる。ここで設定された内容の不備とは、例えば、
図4のボタン名404、ファイルのパス405が設定されないままOKボタンが押下された場合や、入力が許可されていない文字種が入力された状態でOKボタンが押下された場合等である。
【0039】
ステップ304ではステップ303の確認の結果、設定に不備があったか否かの判断が行われる。設定に不備があったと判断された場合はステップ306で設定に不備がある旨を示すエラー画面の表示が行われた後、ステップ302に戻る。
【0040】
ステップ304の判断の結果、設定に不備が無いと判断された場合は、ステップ305で、情報機器1301からMFP10に対し設定情報の送信を行う。これにより、設定の登録処理が行われ、拡張アプリケーションプログラム起動ボタン設定画面側の処理を終了する。設定情報は制御情報の一例である。設定の登録処理には、表示部105に表示するボタンのリストへのボタン情報追加も含む。ここで、ステップ303の設定の確認は、ウェブブラウザ1401に表示されたコンテンツに含まれるJAVASCRIPT(登録商標)等のスクリプト言語で行うことを想定している。また、ウェブブラウザ1401からMFP10側に設定内容を送信し、MFP10側で確認を行い、確認結果をウェブブラウザ1401に返しても良い。
【0041】
図3のMFP10側の処理は電源ONに応じて開始される。MFP10側ではステップ307で、表示部105に表示するボタンのリスト情報が更新されたか否かの判断が行われる。つまり、ステップ305の設定登録に応じてMFP10から情報機器1031へ送信されるボタンのリスト情報を確認する。そして、ボタンのリスト情報が更新されていないと判断された場合はステップ307に戻り処理が繰り返される。リスト情報が更新されていると判断された場合は、ステップ308において表示部105に拡張アプリケーションプログラム起動ボタンの表示を行い、MFP10側の処理を終了する。ここで表示部105に表示される拡張アプリケーションプログラム起動ボタンの例を
図5の502に示す。ここで拡張アプリケーションプログラム起動ボタンのボタン名は拡張アプリケーションプログラム起動ボタンの設定画面401のボタン名で設定された名称が表示される。また、表示部105にはカウンターの値を確認するカウンター確認画面に遷移する為のボタン505や、ジョブやデバイスの状況を確認する状況確認画面に遷移する為のボタン506を含んでも良い。
図4で入力された情報に基づいて、
図5で表示されるボタンが追加される。なお、情報処理機器1301は、既存のアプリケーションボタンの設定情報をMFP10から取得して、その設定情報を更新して同様にベリファイし、MFP10へ書きもどすこともできる。
【0042】
図6は本実施形態における、拡張アプリケーションプログラム起動ボタン押下時の処理の流れを示す図である。
図6中の600-1は拡張アプリケーションプログラム側の処理を示し、600-2はネイティブ側の処理を示す。ここで600-2の処理はVM/FW209、ジョブコントローラ部203で主に行われる。
図6のネイティブ側の処理600-2の処理をすべてジョブコントローラ部203にて実行してもよい。600-1の処理は特に断らない限り、拡張アプリケーションによる処理である。
【0043】
図6の600-1および600-2はMFP10の電源ONに応じて開始する。開始当初、拡張アプリケーションは、停止、中断、もしくは終了状態である。まず、ステップ601において、表示部105に表示されている拡張アプリケーションプログラム起動ボタンが押下されたか否かの判断が行われる。この判断は、CPU101により行われる。サスペンド中の拡張アプリケーションにより行われてもよい。また、VM/FW209により行われてもよい。拡張アプリケーションプログラム起動ボタンが押下されていないと判断された場合はステップ601に戻り処理を繰り返す。拡張アプリケーションプログラム起動ボタンが押下されたと判断された場合は、ステップ602で前記拡張アプリケーションプログラム起動ボタンに対応する拡張アプリケーションプログラムを起動する。次にステップ603において、
図4の拡張アプリケーションプログラム起動ボタンの設定画面401で設定された内容に基づき、印刷対象のファイルの取得や印刷実行権限の確認を行い、実行可能か否かの判断が行われる。
【0044】
拡張アプリケーションプログラムを実行して、前記印刷ジョブの実行の開始指示が前記ジョブ処理プログラムに対して入力された結果、前記開始指示の返り値が肯定値であれば、前記ジョブ処理プログラムの投入が成功したとCPU101は判断してもよい。また、
ステップ603で実行不可であると判断された場合は、ステップ611でエラー画面の表示を行い、ステップ601の処理に戻る。この処理は、拡張アプリケーションプログラムが、各種認証および権限データベースとの照合結果に基づき行ってもよい。
【0045】
ここで、エラー画面の例を
図8に示す。
図8はユーザにプリントに関わる制限がかかっている場合の例である。表示部105の801に各エラーに対応するメッセージの表示を行う。この表示は拡張アプリケーションプログラムによりなされてもよいし、ジョブコントローラ部203によりなされてもよい。
【0046】
ステップ603で実行可能であると判断された場合は、ステップ604にてジョブの投入を行う。ジョブの投入は拡張アプリケーションプログラム210がVM/FW209経由でジョブコントローラ部203に対してジョブの実行を指示することで行われる。
ジョブ投入時の表示部105の画面例を
図7に示す。例えば
図7のように拡張アプリケーションプログラム起動ボタンのボタン名と、処理を実行する旨のメッセージを表示する。拡張アプリケーションプログラムは
図7の画面を表示した後、即座にまたは所定時間の経過後に、終了するようにするとよい。その後、
図7の画面は、拡張アプリケーション実行前の画面(ファームウェアの制御下になる。)に戻すようにするとよい。
【0047】
ネイティブ側はステップ605において、拡張アプリケーションプログラム210からVM/FW209経由でジョブコントローラ部203に対してジョブの実行指示があったか否かの判断を行う。ジョブの投入が無かったと判断された場合は、ステップ605に戻り処理を繰り返す。ジョブの投入があったと判断された場合は、ステップ606でジョブの実行が可能か否かの受付判断が行われ、ステップ607でその結果が拡張アプリケーションプログラム側に送信される。ここでは、ジョブコントローラ部203は、投入されたジョブの設定値の確認などを行う。例えば、ジョブに対して、システムの定義外の設定値が設定されている場合などはジョブの投入を受け付けない。たとえば、ジョブに対してユーザ定義用紙を使用するよう指定されている場合に、当該ユーザ定義用紙がMFP10の中で設定されていない場合などには、ジョブの投入を受け付けないようにジョブコントローラ部203が判断する。また、拡張アプリケーションプログラムのバグなどで、システムの定義外の設定値が設定された場合も同様である。
【0048】
ステップ608で拡張アプリケーションプログラムはステップ607で送信された受け付け結果を受信する。ステップ609においてステップ608で受信した受け付け結果がジョブ実行可能であるか否かの判断が行われる。あくまでも、ジョブが実行が可能かどうかを判定するのは、ステップ612においてネイティブ側が行う。
【0049】
受信した受け付け結果がジョブ実行不可であると拡張アプリケーションプログラムが判断した場合は、ステップ611において該当するエラー画面を表示し、ステップ601に戻り処理を繰り返す。受信した受け付け結果がジョブ実行可能であると判断した場合は、拡張アプリケーションプログラムはステップ610でスクリプト言語の処理を終了しアプリケーションプログラムが終了する。
【0050】
ネイティブ側ではステップ607でジョブの受け付け結果を送信した後、ステップ612において、ステップ606の判断の結果に基づき、ジョブが実行可能か否かの判断が行われる。ジョブ実行可能でないと判断された場合は、ステップ605に戻り処理を繰り返す。ジョブが実行可能であると判断された場合は、ステップ613においてジョブを実行する。次にステップ614においてジョブ実行中エラーが発生したか否かの判断が行われる。ジョブ実行中エラーが発生したと判断された場合は、ステップ615においてエラー画面を表示した後処理を終了する。ここで、ジョブ実行中エラーとは
図9に示すような用紙無しエラーや、紙詰まりエラー等、ジョブの実行中に発生するエラーのことである。ステップ614においてジョブ実行中エラーが発生していないと判断された場合は、ステップ616でジョブが終了か否かの判断が行われる。ジョブが終了していないと判断された場合は、ステップ614に戻り処理を繰り返し、ジョブが終了していると判断された場合は、そのまま処理を終了する。
【0051】
本実施形態では、ジョブの実行が可能とステップ612で判断された後、処理を進める中で、エラーが発生する(ステップ614)こともある。ただし、ステップ612でジョブが実行可能と判断されると、いち早く拡張アプリケーションに通知され、拡張アプリケーションはジョブ受け付け結果を受信する(ステップ608)のに応じて終了する(ステップ610)。従って、ステップ610のタイミングは、ステップ614よりも早いことが想定されている。すなわち、ステップ615におけるエラー画面の表示は、拡張アプリケーションが終了しているときでも、ジョブコントローラ部203が、UI202を通じて行うことができる。つまり拡張アプリケーションの終了後に、ネイティブのファームウェアの一部であるジョブコントローラ部203およびUI202が、エラー判定およびエラー表示を行う。なお、拡張アプリケーションプログラム終了(ステップ608)の後、VM/FW209経由で、別の拡張アプリケーションプログラム212を動作させるよう指示することもできる。この別の拡張アプリケーションプログラム212が動作中に、拡張アプリケーションプログラム210が投入したジョブがエラーになった場合、ジョブコントローラ部203はエラーが生じたと判定する。そして、ジョブコントローラ部203は、生じたエラーの内容をUI202に通知する。エラーを通知されたUI202は、動作中の拡張アプリケーションプログラム212の上にオーバーライドするか切り換える形で、
図9に示す画面をエラーを表示部105の上に表示してもよい。また、ネットワークを介してネットワークインタフェースカード117を通じて
図9と同様の意味内容を含むエラーを所定の形式で通知したりする。この際、UI202は、
図9などのほか、生じたエラーの内容に応じて、ジョブのリカバリー処理(紙詰まり解除方法などの手順)などを表示部105の上に表示してもよい。
図9の画面が表示された場合の後は、ユーザが用紙を補給するなどしてエラーの原因を取り除くと、もとの画面に戻る。もとの画面とは、エラーが発生する直前の画面である。ホーム画面に戻ることもあれば、拡張アプリケーションプログラム212の処理画面にもどることもある。
【0052】
図10は拡張アプリケーションプログラム起動ボタンの設定画面401の設定項目に「実行前に確認画面を表示する/しない」の設定(1001)を追加した際の設定画面の例を示す図である。
【0053】
図11は拡張アプリケーションプログラム起動ボタンの設定画面401で「実行前に確認画面を表示する」が設定された際の処理の流れを示す図である。ここで、ステップ603とステップ604間以外の処理は
図6の処理と同様である為ここでは割愛する。
ステップ603で実行可能であると判断された際は、ステップ1101において実行前確認画面表示の設定がされているか否かの判断が行われる。実行前確認画面表示の設定が設定されていないと判断された場合はステップ604に進みジョブの投入を行う。実行前確認画面表示の設定が設定されていると判断された場合は、ステップ1102で実行前確認画面の表示を行う。実行前確認画面表示の設定は
図4と同様情報機器1301のウェブブラウザ1401から行われ、LAN経由でMFP10側に送信される。この設定情報はEMMC109に格納され、アプリケーションプログラム起動時にRAM103に展開される。このRAM103の情報をアプリケーションプログラムが確認することで、実行前確認画面を表示するか否かの動きを切り替える。ここで実行前確認画面の例を
図12に示す。例えば実行前確認画面には実行するファイルのファイル名や部数、用紙サイズ等の設定値の表示と、ジョブを実行するか否か指示する為のボタンを有する。
【0054】
次にステップ1103において、実行前確認画面において、ボタンが押下されたか否かの判断が行われる。何もボタンが押下されていないと判断された際は、ステップ1102に戻り処理を繰り返す。「いいえ」ボタンが押下されたと判断された際は、ステップ601に戻り処理を繰り返す。「はい」ボタンが押下されたと判断された際は、ステップ604に進みジョブの投入を行う。
【0055】
以上説明したことを整理すると下記のようになる。画像形成装置の一例であるMFP10は、ファームウェアの一部であるジョブ処理プログラムの一例であるジョブコントローラ部203を用いて制御される。また、MFP10には、アプリケーションプログラムの一例である拡張アプリケーションプログラムをインストール可能である。MFP10は、拡張アプリケーションプログラムが起動されたことに応じて、印刷ジョブの前記ジョブ処理プログラムへの投入が成功したか否かを判断するCPU101を備える。印刷ジョブの投入が成功したとCPU101が判断したたことに応じて、前記拡張アプリケーションプログラムをCPU101が終了させる。拡張アプリケーションプログラムの終了後、ジョブコントローラ部203の制御下にて、CPU101は、前記印刷ジョブのステータスを取得する。
【0056】
さらにCPU101が取得したステータスに基づきステータス情報を報知する処理をCPU101が制御する。具体的には、CPU101が取得したステータスは、例えば
図9のように表示部105において表示される。
【0057】
さらに、CPU101は、拡張アプリケーションプログラムが投入すべき印刷ジョブに関する制御情報を登録することができる。制御情報の一例としては、
図10の情報機器1301の表示部1308上に表示される入力画面から入力される情報がある。この情報は、ネットワークを介してMFP10に対して情報機器1301から送信される。MFP10のCPU101は、受信した制御情報をROM102やEMMC109などへ記録登録する処理を制御する。制御情報は、拡張アプリケーションプログラムがジョブを投入する前に確認画面(例えば
図12)をMFP10の表示部105へ表示するか否かを制御する情報を含む。これは、
図10のチェックボックス1001の操作を介して入力されうる。
また、ステータス情報に基づき、MFP10に対して接続されている表示部105を更新することもできる。
【0058】
さらに、拡張アプリケーションプログラムを実行して、前記印刷ジョブの実行の開始指示が前記ジョブ処理プログラムに対して入力されたとする。その結果、前記開始指示の返り値が肯定値であれば、前記ジョブ処理プログラムの投入が成功したとCPU101は判断してもよい。CPU101は拡張アプリケーションプログラムを終了させる。
【0059】
さらに、前記拡張アプリケーションプログラムが終了した後、ジョブコントローラ部203の制御下にて、前記印刷ジョブの処理中に前記印刷ジョブに関するエラーが認識される。すると、印刷ジョブに関するエラーの発生をCPU101はジョブコントローラ部203の制御下にてエラーを報知する処理を制御する。
【0060】
また、印刷ジョブに対して、印刷システムの定義外の設定値が設定されている場合に前記CPU101は前記印刷ジョブの投入が失敗したと判断する。そして、拡張アプリケーションプログラムに対してジョブコントローラ部203は印刷ジョブの投入が失敗したことを通知する。
【符号の説明】
【0061】
10 MFP
203 ジョブコントローラ部