以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
図1は、本実施形態に係るシステム100の概略図である。図1に示されるシステム100は、MFP10A、10B(以下、これらを総称して、「MFP10」と表記することがある。)と、携帯端末50とで構成されている。MFP10及び携帯端末50は、通信ネットワーク101を通じて通信可能に構成されている。通信ネットワーク101は、例えば、有線LAN、無線LAN、或いはこれらの組み合わせであってもよい。
MFP10(MultiFunction Peripheralの略)は、図2(A)に示されるように、プリンタ11と、スキャナ12と、ディスプレイ23と、入力I/F24と、通信I/F25と、CPU31と、メモリ32と、通信バス33とを主に備える。MFP10を構成する各構成要素は、通信バス33を通じて相互に接続されている。
プリンタ11は、画像データで示される画像をシートに記録するプリント動作を実行する。プリンタ11の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ12は、原稿に記録されている画像を読み取って画像データ(以下、「スキャンデータ」と表記する。)を生成するスキャン動作を実行する。なお、MFP10A、10Bが実行可能な動作は、同一であってもよいし、異なっていてもよい。
プリンタ11は画像出力部の一例であり、プリント動作は出力動作の一例である。但し、画像出力部の具体例はプリンタ11に限定されず、出力データを出力する出力動作を実行するハードウェアであればよい。画像出力部の他の例としては、FAXプロトコルに従って画像データを外部装置にFAX送信するFAX送信動作を実行するFAX部等が挙げられる。
スキャナ12は画像入力部の一例であり、スキャン動作は入力動作の一例である。但し、画像入力部の具体例はスキャナ12に限定されず、後述する端末プログラム65の指示に従って入力した入力データを携帯端末50に送信する入力動作を実行するハードウェアであればよい。換言すれば、画像入力部は、携帯端末50の端末プログラムに入力データを入力するハードウェアであればよい。画像入力部の他の例としては、被写体を撮影して写真データを生成する撮影動作を実行可能なカメラ等が挙げられる。また、画像入力部の他の例としては、USBメモリ等の可搬記憶媒体が着脱可能であり、装着された可搬記憶媒体から画像データを読み出す装着部等が挙げられる。
また、携帯端末50は、通信ネットワーク101を通じてMFP10のプリンタ11、スキャナ12、或いは不図示の装着部と接続されてもよいし、内部バスの一例である通信バス63を通じて不図示のカメラと接続されてもよい。入力データ及び出力データは、いずれも画像データである。
スキャナ12は、実行条件に従ってスキャン動作を実行する。実行条件は、複数の項目(例えば、“サイズ”、“画質”、“読取色”)それぞれに対応する複数のパラメータの組み合わせによって特定される。項目“サイズ”のパラメータは、読取対象の画像が記録された原稿の大きさ(例えば、“A4”、“B5”、“名刺”)を示す。項目“画質”のパラメータは、スキャン動作の読取解像度(例えば、“ノーマル”、“ファイン”)を示す。項目“読取色”のパラメータは、スキャン動作で読み取る画像の色(例えば、“カラー”、“モノクロ”)を示す。なお、プリンタ11も実行条件に従ってプリント動作を実行するが、本明細書では説明を省略する。
ディスプレイ23は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示面を備える。
入力I/F24は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力I/F24はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU31へ出力する。さらに、入力I/F24は、ディスプレイ23の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ23の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ23に表示された文字列、アイコン、ボタン、リンク、ラジオボタン、チェックボックス、プルダウンメニュー等である。
タッチセンサとして実現される入力I/F24は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ23に表示されたオブジェクトの位置のタップするユーザ操作は、当該オブジェクトを指定するユーザ操作の一例である。
通信I/F25は、通信ネットワーク101を通じて外部装置と通信可能なインタフェースである。すなわち、MFP10は、通信I/F25を通じて外部装置に各種情報を送信し、通信I/F25を通じて外部装置から各種情報を受信する。通信I/F25の具体的な通信手順は特に限定されないが、例えば、Wi−Fi(Wi-Fi Allianceの登録商標)を採用することができる。また、MFP10及び携帯端末50がUSBケーブル等で接続される場合、通信I/F25は、USBケーブルを着脱可能なUSBインタフェースであってもよい。
CPU31は、MFP10の全体動作を制御するものである。CPU31は、入力I/F24から出力される各種情報、通信I/F25を通じて外部装置から受信した各種情報等に基づいて、後述する各種プログラムをメモリ32から取得して実行する。CPU31及びメモリ32は、コントローラの一例を構成する。
メモリ32は、OS34と、装置プログラム35とを記憶している。装置プログラム35は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ32は、装置プログラム35の実行に必要なデータ或いは情報等を記憶する。メモリ32は、例えば、RAM、ROM、EEPROM、HDD、MFP10に着脱されるUSBメモリ等の可搬記憶媒体、CPU31が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ32は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する携帯端末50のメモリ62についても同様である。
携帯端末50は、図2(B)に示されるように、ディスプレイ53と、入力I/F54と、通信I/F55と、CPU61と、メモリ62と、通信バス63とを主に備える。携帯端末50に含まれるディスプレイ53、入力I/F54、通信I/F55、CPU61、メモリ62、及び通信バス63は、MFP10に含まれるディスプレイ23、入力I/F24、通信I/F25、CPU31、メモリ32、及び通信バス33と同様の構成であるので、説明は省略する。CPU61及びメモリ62は、コントローラの一例である。
携帯端末50は、例えば、携帯電話、スマートフォン、或いはタブレット端末、或いはPC等である。より詳細には、携帯端末50のディスプレイ53は、表示画面のサイズが12インチ以下、より好ましくは8インチ以下であるのが望ましい。また、携帯端末50の入力I/F54は、ディスプレイ53の表示画面に重ねられたタッチセンサであるのが望ましい。メモリ62は、OS64と、端末プログラム65と、外部プログラム66とを記憶している。
OS64は、例えば、Android(Google inc.の登録商標) OS、iOS(Cisco Systems,Inc.の登録商標)、Windows Phone(Microsoft Corporationの登録商標) Operating System等であってもよい。OS64は、携帯端末50にインストールされた複数のプログラムを並行して実行することができる。複数のプログラムは、例えば、時分割多重方式によって仮想的に並行して実行される。また、OS64は、並行して実行する複数のプログラムのうちの1つをフォアグラウンドで実行し、その他のプログラムをバックグラウンドで実行する。
フォアグラウンドは、例えば、当該プログラムの実行に拠る画面がディスプレイ53の表示領域の大部分に表示されている状態である。バックグラウンドは、例えば、当該プログラムと異なるプログラムの実行に拠る画面がディスプレイ53の表示領域の大部分に表示されている状態である。すなわち、携帯端末50は、並行して実行する複数のプログラムのうち、フォアグラウンドで実行されているプログラムの実行に拠る画面のみをディスプレイ53に表示させることができる。
端末プログラム65は、通信I/F55を通じて接続されたMFP10に、プリント動作或いはスキャン動作を実行させる主プログラムの一例である。端末プログラム65は、例えば、プリント動作を実行させるためのプリント指示情報、スキャン動作を実行させるためのスキャン指示情報を、通信IF/55を通じてMFP10に送信する。また、端末プログラム65は、携帯端末50にインストールされた外部プログラム66を、所謂プラグインとして起動することができる。
外部プログラム66は、例えば、入力I/F54を通じたユーザの指示に従って、携帯端末50に対してインストールされ或いはアンインストールされる。端末プログラム65によって起動可能な外部プログラム66は、例えば、端末プログラム65の処理を補助するための機能を有する。なお、外部プログラム66は、端末プログラム65とは別個のプログラムで且つ独立して実行可能なプログラムであって、端末プログラム65のサブルーチンとは異なるものである。
外部プログラム66は、例えば、OS64が提供するAPI(以下、「起動API」と表記する。)によって起動される。端末プログラム65は、例えば、外部プログラム66のプログラムIDを引数として指定して、起動APIを実行する。OS64は、起動APIが実行されたことに応じて、指定されたプログラムIDで識別される外部プログラム66を起動する。そして、外部プログラム66は、例えば、所定の動作を実行し、当該動作の実行結果を起動APIの戻り値として端末プログラム65に提供する。
メモリ62は、例えば図3(A)に示されるように、プログラムリストを記憶することができる。プログラムリストは、1以上のプログラムレコードを含む。プログラムレコードは、例えば、端末プログラム65のインストール時にメモリ62に記憶される。プログラムレコードは、端末プログラム65が起動可能な複数の外部プログラム66のうちの1つに対応する。プログラムレコードは、プログラムIDと、プログラム名と、機能情報と、初回起動フラグと、入力後起動フラグとを含む。
プログラムIDは、外部プログラム66を識別するプログラム識別情報の一例である。以下、プログラムID“xxx”で識別される外部プログラム66を「外部プログラム“xxx”」と表記することがある。プログラム名は、外部プログラム66の名称である。機能情報は、対応する外部プログラム66が有する機能を示す情報である。初回起動フラグは、対応する外部プログラム66が既に起動されたか否かを示す情報である。換言すれば、初回起動フラグは、対応する外部プログラム66のEULA(End-User License Agreementsの略)画面が既に表示された否かを示す情報である。入力後起動フラグは、対応する外部プログラム66の起動タイミングを示すタイミング情報の一例である。
より詳細には、機能情報には、画像入力部から取得した入力データに対する処理を実行する第1機能を示す“入力”、及び画像出力部に出力させる出力データをユーザに指定させる第2機能を示す“出力”の一方或いは両方が設定される。初回起動フラグには、対応する外部プログラム66が、既に起動されたことを示す第1値“ON”、或いは未だ起動されていないことを示す第2値“OFF”が設定される。入力後起動フラグは、対応する外部プログラム66を、後述するS43の後に起動することを示す第1値“ON”、或いはS43を実行せずに起動することを示す第2値“OFF”が設定される。
初回起動フラグ及び入力後起動フラグの初期値は、第2値“OFF”である。初回起動フラグ及び入力後起動フラグの設定値は、例えば、端末プログラム65或いは外部プログラム66によって変更することができる。また、入力後起動フラグは、機能情報“入力”を含むプログラムレコードにのみ含まれる。
プログラム名“レーベル印刷”で示される外部プログラム“001”は、入力I/F54を通じたユーザ操作に従って、入力データで示される画像からCD−ROMに記録する画像を生成する第1機能を有する。また、外部プログラム“001”は、入力I/F54を通じたユーザ操作に従って生成した画像を示す画像データを、出力データとして端末プログラム65に提供する第2機能を有する。プログラム名“OCR”で示される外部プログラム“002”は、入力データに含まれる文字列をテキストデータとして抽出する第1機能を有する。プログラム名“地図”で示される外部プログラム“003”は、不図示のサーバから取得した地図画像データのうち、入力I/F54を通じたユーザ操作に従って抽出した地図画像データを、出力データとして端末プログラム65に提供する第2機能を有する。
また、メモリ62は、例えば図3(B)に示されるように、プログラムIDと、プログラムIDに対応付けられた画像データとを記憶することができる。図3(B)に示される画像データは、例えば、端末プログラム65或いは対応するプログラムIDで識別される外部プログラム66のインストール時には記憶されておらず、端末プログラム65或いは外部プログラム66によってメモリ62に記憶される。図3(B)に示される画像データは、入力データ或いは出力データになり得るデータである。
また図示は省略するが、メモリ62には、写真データが格納される写真データフォルダが設けられている。さらに図示は省略するが、メモリ62は、指定装置IDを記憶することができる。指定装置IDは、通信ネットワーク101を通じて携帯端末50と通信可能なMFP10A、10Bのうち、端末プログラム65を通じてユーザが指定したMFP10(以下、「指定装置」と表記する。)を識別する装置IDである。本実施形態では、MFP10Aが装置ID“MFP−A”で識別され、MFP10Bが装置ID“MFP−B”で識別される。
[システム100の動作]
図4〜図7を参照して、本実施形態に係るシステム100の動作を説明する。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU31、61の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU31、61の処理を表している。CPU31、61による処理は、OS34、64を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
まず、携帯端末50のOS64は、図8(A)に示されるメニュー画面をディスプレイ53に表示させる。メニュー画面は、複数のプログラムアイコン111、112、113、114を含む。プログラムアイコン111〜114は、携帯端末50にインストールされたプログラムに対応する。例えば、プログラムアイコン111〜113は携帯端末50にインストールされた外部プログラム66に対応し、プログラムアイコン114は端末プログラム65に対応する。そして、OS64は、プログラムアイコン111〜114の1つを指定するユーザ操作を、入力I/F54を通じて受け付ける。
一例として、OS64は、プログラムアイコン111の指定を入力I/F54を通じて受け付けたことに応じて、外部プログラム“001”を起動させ且つ当該プログラムをフォアグラウンドで実行する。他の例として、OS64は、プログラムアイコン114の指定を入力I/F54を通じて受け付けたことに応じて、端末プログラム65を起動させ、且つ当該プログラムをフォアグラウンドで実行する。以下、プログラムアイコン114が指定された場合の処理を説明する。
携帯端末50の端末プログラム65は、OS64によって起動されたことに応じて、プログラムリストに登録された全てのプログラムレコードを読み出す(S11)。S11の処理は、機能情報、初回起動フラグ、及び入力後起動フラグを取得する取得処理の一例である。次に、端末プログラム65は、図8(B)に示されるメイン画面をディスプレイ53に表示させる(S12)。そして、端末プログラム65は、メイン画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S13)。S12の処理は第1表示処理の一例であり、S13の処理は第1受付処理の一例である。
メイン画面は、動作アイコン121、122と、プラグインアイコン123、124、125と、切替アイコン126とを含む第1画面の一例である。動作アイコン121は、プリント動作の実行指示を受け付けるためのオブジェクトである。動作アイコン122は、スキャン動作の実行指示を受け付けるためのオブジェクトである。プラグインアイコン123〜125は、外部プログラム“001”、“002”、“003”に対応する第1オブジェクトの一例である。切替アイコン126は、指定装置の切替指示を受け付けるためのオブジェクトである。
なお、メイン画面において、機能情報に“出力”が設定された外部プログラム“001”、“003”に対応するプラグインアイコン123、125と、機能情報に“入力”のみが設定された外部プログラム“002”に対応するプラグインアイコン124とは、区別して表示される。また、指定装置IDがメモリ62に記憶されていない場合、切替アイコン126には、指定装置が選択されていないことを示す「未選択」の文字列が記述される。一方図示は省略するが、指定装置IDがメモリ62に記憶されている場合、切替アイコン126には、当該指定装置IDが記述される。
次に、端末プログラム65は、例えば、切替アイコン126の指定を入力I/F54を通じて受け付けたことに応じて(S13:切替)、デバイス選択処理を実行する(S14)。図4(B)を参照して、デバイス選択処理の詳細を説明する。
[デバイス選択処理]
まず、端末プログラム65は、例えば、SNMP(Simple Network Management Protocolの略)を用いて、通信I/F55を通じて通信が可能な複数のMFP10を検索する(S21)。具体的には、端末プログラム65は、通信I/F55を通じて通信ネットワーク101に送信要求情報をブロードキャストする。次に、端末プログラム65は、送信要求情報の応答としてMFP10A、10Bが送信した装置IDを、通信I/F55を通じて受信する。すなわち、端末プログラム65は、装置IDの送信元のMFP10A、10Bを、通信可能なMFP10と特定する。なお、通信可能なMFP10を検索する方法は、周知の他の方法であってもよい。
次に、端末プログラム65は、図9(A)に示されるデバイス選択画面をディスプレイ53に表示させる(S22)。デバイス選択画面は、デバイスアイコン131、132を含む。デバイスアイコン131、132は、ステップS21で特定したMFP10A、10Bに対応する。また、デバイスアイコン131、132には、対応するMFP10A、10Bの装置IDが記述されている。次に、端末プログラム65は、デバイス選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S23)。
次に、端末プログラム65は、例えばデバイスアイコン131の指定を入力I/F54を通じて受け付けたことに応じて(S23:Yes)、デバイスアイコン131に対応する複合機10Aから受信した装置IDを、指定装置IDとしてメモリ62に記憶させる(S24)。メモリ62に既に指定装置IDが記憶されている場合、端末プログラム65は、当該指定装置IDを新たな指定装置IDで上書きする。
次に図4(A)に戻って、端末プログラム65は、メイン画面をディスプレイ53に表示させる(S12)。デバイスアイコン131が指定された後のメイン画面において、切替アイコン126には、指定装置ID“MFP−A”が記述される。次に、端末プログラム65は、動作アイコン121の指定を入力I/F54を通じて受け付けたことに応じて(S13:動作)、図5に示されるプリント処理を実行する(S15)。
[プリント処理]
まず、端末プログラム65は、図9(B)に示される取得元選択画面をディスプレイ53に表示させる(S31)。取得元選択画面は、取得元アイコン141、142と、プラグインアイコン143、144を含む。取得元アイコン141は写真データの取得元であるメモリ62の写真データフォルダに対応し、取得元アイコン142はインターネット上の不図示のサーバに対応する。また、プラグインアイコン143は外部プログラム“001”に対応し、プラグインアイコン144は外部プログラム“003”に対応する。そして、端末プログラム65は、取得元選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S32)。
次に、端末プログラム65は、例えば取得元アイコン141の指定を入力I/F54を通じて受け付けたことに応じて(S32:取得元)、写真データフォルダに記憶された写真データの一覧をディスプレイ53に表示させ、一覧表示された写真データの1つを指定するユーザ操作を入力I/F54を通じて受け付ける。そして、端末プログラム65は、指定された写真データを、出力データとしてメモリ62から読み出す(S34)。
また、端末プログラム65は、例えば取得元アイコン142の指定を入力I/F54を通じて受け付けたことに応じて(S32:取得元)、不図示のサーバに記憶された画像データの一覧をディスプレイ53に表示させ、一覧表示された画像データの1つを指定するユーザ操作を入力I/F54を通じて受け付ける。そして、端末プログラム65は、指定された画像データを、出力データとして通信I/F55を通じてサーバから受信する(S34)。
次に、端末プログラム65は、図10(A)に示されるプレビュー画面をディスプレイ53に表示させる(S35)。プレビュー画面は、プレビュー画像151と、[プリント]アイコン152とを含む。プレビュー画像151は、取得した出力データで示される画像がシートに記録されたイメージを示す。そして、端末プログラム65は、プレビュー画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S36)。
次に、端末プログラム65は、[プリント]アイコン152の指定を入力I/F54を通じて受け付けたことに応じて(S36:Yes)、指定装置であるMFP10Aに通信I/F55を通じてプリント指示情報を送信する(S37)。プリント指示情報は、指定装置にプリント動作を実行させるための情報である。プリント指示情報は、例えば、出力データを含む。S37の処理は、出力指示処理の一例である。
一方、図示は省略するが、MFP10Aの装置プログラム35は、通信I/F25を通じて携帯端末50からプリント指示情報を受信する。そして、装置プログラム35は、受信したプリント指示情報に従ったプリント動作をプリンタ11に実行させる。すなわち、プリンタ11は、プリント指示情報に含まれる出力データで示される画像をシートに記録する。
また、端末プログラム65は、例えばプラグインアイコン143の指定を入力I/F54を通じて受け付けたことに応じて(S32:PI)、プラグインアイコン143に対応付けられた外部プログラム“001”を起動する(S33)。すなわち、端末プログラム65は、プログラムID“001”を引数として指定して、起動APIを実行する。そして、OS64は、起動APIの引数であるプログラムID“001”で識別される外部プログラム“001”を、フォアグラウンドで起動する。また、OS64は、端末プログラム65をフォアグラウンドからバックグラウンドに切り替える。
外部プログラム“001”は、起動APIによって端末プログラム65から起動されたことに応じて、図10(B)に示されるレーベル編集画面をディスプレイ53に表示させる。レーベル編集画面は、レーベル画像161と、編集アイコン162、163、164と、[プレビュー]アイコン165とを含む。レーベル画像161は、編集アイコン162〜164を用いて編集された画像である。編集アイコン162は、レーベル画像161に文字列を追加する指示に対応する。編集アイコン163は、レーベル画像161に色を付加する指示に対応する。編集アイコン164は、レーベル画像161に写真を追加する指示に対応する。そして、外部プログラム“001”は、レーベル編集画面に対するユーザ操作を、入力I/F54を通じて受け付ける。
次に、外部プログラム“001”は、編集アイコン162〜164を通じてレーベル画像161が編集されたことに応じて、編集後のレーベル画像161を示すレーベル画像データをメモリ62に一時記憶させる。そして、外部プログラム“001”は、[プレビュー]アイコン165の指定を入力I/F54を通じて受け付けたことに応じて、レーベル画像データを一時記憶させたメモリ領域の先頭アドレスを示すポインタを、起動APIの戻り値として端末プログラム65に提供して、処理を終了する。これらの処理は、出力データをユーザに指定させる処理の一例である。
さらに、端末プログラム65は、例えばプラグインアイコン144の指定を入力I/F54を通じて受け付けたことに応じて(S32:PI)、プラグインアイコン144に対応付けられた外部プログラム“003”を起動する(S33)。すなわち、端末プログラム65は、プログラムID“003”を引数として指定して、起動APIを実行する。そして、OS64は、起動APIの引数であるプログラムID“003”で識別される外部プログラム“003”を、フォアグラウンドで起動する。また、OS64は、端末プログラム65をフォアグラウンドからバックグラウンドに切り替える。
外部プログラム“003”は、起動APIによって端末プログラム65から起動されたことに応じて、図11(A)に示される地図指定画面をディスプレイ53に表示させる。地図指定画面は、地図画像171と、[プレビュー]アイコン172とを含む。外部プログラム“003”は、不図示のサーバから通信I/F55を通じて受信した地図画像データをメモリ62に一時記憶させると共に、当該地図画像データで示される地図画像171を地図指定画面に表示させる。そして、外部プログラム“003”は、地図指定画面に対するユーザ操作を、入力I/F54を通じて受け付ける。
外部プログラム“003”は、例えば、地図画像171の位置におけるスライド操作を入力I/F54を通じて受け付けたことに応じて、スライド量に応じてスライドされた領域を示す地図画像データをサーバから受信し、受信した地図画像データをメモリ62に一時記憶させ、当該地図画像データで示される地図画像171を地図指定画面に表示させる。そして、外部プログラム“003”は、[プレビュー]アイコン172の指定を入力I/F54を通じて受け付けたことに応じて、地図画像データを一時記憶させたメモリ領域の先頭アドレスを示すポインタを、起動APIの戻り値として端末プログラム65に提供して、処理を終了する。これらの処理は、出力データをユーザに指定させる処理の一例である。
次に、端末プログラム65は、起動APIの戻り値としてポインタを取得すると共に、OS64によってバックグラウンドからフォアグラウンドに切り替えられる。次に、端末プログラム65は、取得したポインタで示されるメモリ領域に記憶されたレーベル画像データ或いは地図画像データを、出力データとしてメモリ62から読み出す。S33の処理は、前処理の一例である。そして、端末プログラム65は、外部プログラム“001”、“003”から取得した出力データを用いて、S35以降の処理を実行する。
図4(A)に戻って、端末プログラム65は、図8(B)に示される動作アイコン122の指定を入力I/F54を通じて受け付けたことに応じて(S13:動作)、図6に示されるスキャン処理を実行する(S15)。
[スキャン処理]
まず、端末プログラム65は、図11(B)に示されるスキャン設定画面をディスプレイ53に表示させる(S41)。スキャン設定画面は、プルダウンメニュー181、182、183と、[スキャン]アイコン184とを含む第3画面の一例である。プルダウンメニュー181〜183は、スキャン動作の実行条件を構成する項目“サイズ”、“画質”、“読取色”に対応する第3オブジェクトの一例である。そして、端末プログラム65は、スキャン設定画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S42)。S41の処理は第3表示処理の一例であり、S42の処理は第3受付処理の一例である。
プルダウンメニュー181〜183は、対応する項目に対して指定可能な複数のパラメータの候補のうちの1つが指定された状態になっている。指定されたパラメータは、プルダウンメニュー181〜183に表示される。さらに、プルダウンメニュー181〜183は、パラメータの候補に対応する複数の選択肢を有する。項目“サイズ”に対応するプルダウンメニュー181は、パラメータの候補“A4”、“B5”、“名刺”に対応する3つの選択肢を有する。、項目“画質”に対応するプルダウンメニュー182は、パラメータの候補“ノーマル”、“ファイン”に対応する2つの選択肢を有する。項目“読取色”に対応するプルダウンメニュー183は、パラメータの候補“カラー”、“モノクロ”に対応する2つの選択肢を有する。
端末プログラム65は、例えば、プルダウンメニュー181で指定された条件“A4”を“名刺”に変更するユーザ操作を入力I/F54を通じて受け付けたことに応じて、プルダウンメニュー181に表示されたパラメータを、“A4”から“名刺”に変更する。そして、端末プログラム65は、[スキャン]アイコン184の指定を入力I/F54を通じて受け付けたことに応じて(S42:Yes)、指定装置であるMFP10Aに通信I/F55を通じてスキャン指示情報を送信する(S43)。スキャン指示情報は、指定装置にスキャン動作を実行させるための情報である。スキャン指示情報は、例えば、プルダウンメニュー181〜183で指定されたパラメータ“名刺”、“ファイン”、“カラー”を含む。S43の処理は、入力指示処理の一例である。
一方図示は省略するが、MFP10Aの装置プログラム35は、通信I/F25を通じて携帯端末50からスキャン指示情報を受信する。そして、装置プログラム35は、スキャン指示情報に含まれるパラメータに従って、スキャナ12にスキャン動作を実行させる。スキャナ12は、不図示のコンタクトガラス或いはADF(Auto Document Feederの略)にセットされた原稿に記録された画像を読み取って、当該画像を示すスキャンデータを生成する。そして、装置プログラム35は、スキャナ12が生成したスキャンデータを、スキャン指示情報の応答として、通信I/F25を通じて携帯端末50に送信する。
次に、携帯端末50の端末プログラム65は、通信I/F55を通じてMFP10Aからスキャンデータを入力データとして受信し、受信した入力データをメモリ62に一時記憶させる。次に、端末プログラム65は、指定プログラムIDがメモリ62に記憶されているか否かを判断する(S44)。指定プログラムIDの詳細は後述するが、動作アイコン122がタップされた場合、指定プログラムIDはメモリ62に記憶されていない。
そして、端末プログラム65は、指定プログラムIDがメモリ62に記憶されていないと判断したことに応じて(S44:なし)、図12(A)に示されるスキャン結果画面をディスプレイ53に表示させる(S45)。スキャン結果画面は、入力画像191と、プラグインアイコン192、193と、[保存]アイコン194とを含む。入力画像191は、S43で取得した入力データで示される画像である。プラグインアイコン192、193は、機能情報に“入力”が設定された外部プログラム“001”、“002”に対応する。そして、端末プログラム65は、スキャン結果画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S46)。
次に、端末プログラム65は、例えばプラグインアイコン193の指定を入力I/F54を通じて受け付けたことに応じて(S46:PI)、指定されたプラグインアイコン193に対応する外部プログラム“002”を起動する(S47)。S47の処理は第1後処理の一例であって、詳細は後述する。一方、端末プログラム65は、[保存]アイコン194の指定を入力I/F54を通じて受け付けたことに応じて(S46:保存)、入力データをメモリ62に記憶させて(S46)、スキャン処理を終了する。なお、端末プログラム65は、複数の外部プログラム66のうちの1つを入力I/F54を通じてユーザに指定させ、図3(B)に示されるように、指定された外部プログラム66のプログラムIDと対応付けて、入力データをメモリ62に記憶させてもよい。
再び図4(A)に戻って、端末プログラム65は、図8(B)に示されるプラグインアイコン123、124、125の指定を入力I/F54を通じて受け付けたことに応じて(S13:PI)、図7に示されるPG起動処理を実行する(S16)。
[PG起動処理]
まず、端末プログラム65は、指定されたプラグインアイコン123〜125に対応する外部プログラムのプログラムIDを、指定プログラムIDとしてメモリ62に一時記憶させる。すなわち、指定プログラムIDは、指定されたプラグインアイコン123〜125に対応する外部プログラムである「指定プログラム」を識別するプログラムIDである。また、端末プログラム65は、S11で取得したプログラムレコードのうち、指定プログラムのプログラムレコードに含まれる機能情報の設定値を判断する(S51)。S51の処理は、第1判断処理の一例である。
一例として、プラグインアイコン123、125が指定された場合、端末プログラム65は、指定プログラムの機能情報に“出力”が設定されていると判断し(S51:出力)、図5のS33以降の処理を実行する。すなわち、端末プログラム65は、S33において、起動APIを用いて指定プログラムを起動する。S33以降の処理は既に説明したので、再度の説明は省略する。他の例として、プラグインアイコン124が指定された場合、端末プログラム65は、指定プログラム(以下、「指定プログラム“002”」と表記する。)の機能情報に“入力”のみが設定されていると判断し(S51:入力のみ)、指定プログラム“002”の初回起動フラグの設定値を判断する(S52)。S52の処理は、第3判断処理の一例である。
次に、端末プログラム65は、指定プログラム“002”の初回起動フラグに第2値“OFF”が設定されていると判断したことに応じて(S52:OFF)、S55以降の処理を実行することなく、指定プログラム“002”を起動する。すなわち、端末プログラム65は、プログラムID“002”を引数として指定して、起動APIを実行する。そして、OS64は、起動APIの引数であるプログラムID“002”で識別される外部プログラム“002”を、フォアグラウンドで起動する。また、OS64は、端末プログラム65をフォアグラウンドからバックグラウンドに切り替える。この処理は、初回起動処理の一例である。
次に、指定プログラム“002”は、起動APIによって端末プログラム65から初めて起動されたことに応じて、図12(B)に示されるEULA画面をディスプレイ53に表示させる(S53)。EULA画面は、ソフトウェア使用許諾契約に記載された指定プログラム“002”の使用条件に同意するか否かを、携帯端末50のユーザに確認するための画面である。EULA画面は、「ソフトウェア使用許諾契約に同意しますか?」とのメッセージと、チェックボックス201と、[契約書]アイコン202と、[同意]アイコン203とを含む。そして、指定プログラム“002”は、EULA画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S54)。これらの処理は、初期処理の一例である。
チェックボックス201は、入力後起動フラグの設定値を切り替える指示に対応する。より詳細には、チェックされた状態のチェックボックス201は、入力後起動フラグに第1値“ON”を設定する指示に対応する。また、チェックが解除された状態のチェックボックス201は、入力後起動フラグに第2値“OFF”を設定する指示に対応する。[契約書]アイコン202は、ソフトウェア使用許諾契約の本文をディスプレイ53に表示させる指示に対応する。[同意]アイコン203は、使用条件に同意することに対応する。
次に、端末プログラム65は、チェックボックス201の位置をタップするユーザ操作を入力I/F54を通じて受け付けたことに応じて、チェックボックス201の状態を、チェックされた状態及びチェックが解除された状態の一方から他方に切り替える。また、端末プログラム65は、[契約書]アイコン202の指定を入力I/F54を通じて受け付けたことに応じて、図示は省略するが、ソフトウェア使用許諾契約の本文をディスプレイ53に表示させる。
さらに、端末プログラム65は、[同意]アイコン203の指定を入力I/F54を通じて受け付けたことに応じて(S54:Yes)、指定プログラム“002”のプログラムレコードにおいて、初回起動フラグを第2値“OFF”から第1値“ON”に変更し、チェックボックス201の状態に対応する設定値を入力後起動フラグに設定し、処理を終了する。次に、端末プログラム65は、OS64によってバックグラウンドからフォアグラウンドに切り替えられる。そして、端末プログラム65は、例えば、メイン画面をディスプレイ53に表示させてもよい。
また、端末プログラム65は、指定プログラム“002”の初回起動フラグに第1値“ON”が設定されていると判断したことに応じて(S52:ON)、指定プログラム“002”の入力後起動フラグの設定値を判断する(S55)。S55の処理は、第4判断処理の一例である。そして、端末プログラム65は、指定プログラム“002”の入力後起動フラグに第2値“OFF”が設定されていると判断したことに応じて(S55:OFF)、S56以降の処理を実行することなく、起動APIを用いて指定プログラム“002”を起動させる(S62)。
また、端末プログラム65は、指定プログラム“002”の入力後起動フラグに第1値“ON”が設定されていると判断したことに応じて(S55:ON)、図3(B)に示されるテーブルを参照して、指定プログラムID“002”が対応付けられた画像データ(以下、「関連データ」と表記する。)がメモリ62に記憶されているか否かを判断する(S56)。S56の処理は、第2判断処理の一例である。端末プログラム65は、関連データがメモリ62に記憶されていないと判断したことに応じて(S56:No)、後述するS57、S58の処理を実行することなく、S59以降の処理を実行する。
また、端末プログラム65は、関連データがメモリ62に記憶されていると判断したことに応じて(S56:Yes)、図13(A)に示されるデータ選択画面をディスプレイ53に表示させる(S57)。データ選択画面は、データアイコン211、212と、[新規]アイコン213とを含む第2画面の一例である。データアイコン211、212は、複数の関連データの1つに対応する第2オブジェクトの一例である。[新規]アイコン213は、S43の実行指示に対応する。そして、端末プログラム65は、データ選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S58)。S57の処理は第2表示処理の一例であり、S58の処理は第2受付処理の一例である。
次に、端末プログラム65は、例えばデータアイコン211の指定を入力I/F54を通じて受け付けたことに応じて(S58:データ)、S59以降の処理を実行することなく、データアイコン211に対応する画像データを入力データとして、指定プログラム“002”を起動する(S62)。すなわち、端末プログラム65は、プログラムID“002”と、入力データが記憶されたメモリ領域の先頭アドレスを示すポインタとを引数として指定して、起動APIを実行する。そして、OS64は、起動APIの引数であるプログラムID“002”で識別される外部プログラム“002”を、フォアグラウンドで起動する。また、OS64は、端末プログラム65をフォアグラウンドからバックグラウンドに切り替える。この処理は、第2後処理の一例である。
次に、外部プログラム“002”は、起動APIによって端末プログラム65から起動されたことに応じて、図13(B)に示されるOCR画面をディスプレイ53に表示させる。OCR画面は、入力画像221と、[読取]アイコン222とを含む。入力画像221は、指定されたポインタで示されるメモリ領域に記憶された入力データで示される画像である。[読取]アイコン222は、入力画像221に含まれる文字列を抽出する指示に対応する。そして、外部プログラム“002”は、OCR画面に対するユーザ操作を、入力I/F54を通じて受け付ける。
外部プログラム“002”は、[読取]アイコン222の指定を入力I/F54を通じて受け付けたことに応じて、入力画像221に含まれる文字列“○×株式会社”、“特許太郎”、“xx−yyyy−zzzz”を、周知のアルゴリズムで抽出する。そして、外部プログラム“002”は、抽出した文字列をメモリ62のアドレス帳等に登録し、処理を終了する。この処理は、入力データに対する処理の一例である。次に、OS64は、端末プログラム65をバックグラウンドからフォアグラウンドに切り替える。そして、フォアグラウンドに切り替えられた端末プログラム65は、PG起動処理を終了する。
また、端末プログラム65は、[新規]アイコン213の指定を入力I/F54を通じて受け付けたことに応じて(S58:新規)、携帯端末50が複数の画像入力部(例えば、MFP10のスキャナ12及び不図示の装着部、携帯端末50の不図示のカメラ)と接続されているか否かを判断する(S59)。端末プログラム65は、携帯端末50が1つの画像入力部のみと接続されていると判断したことに応じて(S59:No)、後述するS60、S61の処理を実行することなく、図6のS41以降の処理を実行する。
また、端末プログラム65は、携帯端末50が複数の画像入力部と接続されていると判断したことに応じて(S59:Yes)、図14(A)に示される入力元選択画面をディスプレイ53に表示させる(S60)。入力元選択画面は、入力元アイコン231、232、233を含む第4画面の一例である。入力元アイコン231は、MFP10のスキャナ12、MFP10の不図示の装着部、携帯端末50の不図示のカメラに対応する第4オブジェクトの一例である。そして、端末プログラム65は、入力元選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S61)。S60の処理は第4表示処理の一例であり、S61の処理は第4受付処理の一例である。
次に、端末プログラム65は、例えば入力元アイコン231の指定を入力I/F54を通じて受け付けたことに応じて(S61:Yes)、図14(B)に示されるスキャン設定画面をディスプレイ53に表示させる(S41)。そして、端末プログラム65は、[スキャン]アイコン184の指定を入力I/F54を通じて受け付けたことに応じて(S42:Yes)、MFP10のスキャナ12にスキャン動作を実行させる(S43)。S43の処理は既に説明したので、再度の説明は省略する。
なお、図14(B)に示されるスキャン設定画面は、プルダウンメニュー181がパラメータ“名刺”が指定された状態から変更不可である点において、図11(B)と相違する。項目“サイズ”のパラメータ“名刺”は、例えば、名刺に記録された画像を読み取った入力データから文字列を抽出する指定プログラム“002”に固有のパラメータである。固有のパラメータとは、例えば、当該項目の他のパラメータと比較して、対応する外部プログラム66の機能を適切に発揮できるパラメータである。各外部プログラム66に固有のパラメータは、例えば、図3(A)に示されるプログラムレコードに含まれていてもよい。
また、端末プログラム65は、図14(A)の入力元アイコン232が指定された場合のS43において、通信I/F55を通じてMFP10に読出指示情報を送信する。読出指示情報は、装着部に装着された不図示の可搬記録媒体に記憶された画像データを読み出すことを指示する情報である。そして、端末プログラム65は、通信I/F55を通じてMFP10から入力データを受信し、受信した入力データをメモリ62に一時記憶させる。さらに、端末プログラム65は、図14(A)の入力元アイコン233が指定された場合のS43において、携帯端末50のカメラに撮影動作を実行させ、当該カメラから取得した入力データをメモリ62に一時記憶させる。
次に、端末プログラム65は、指定プログラムID“002”がメモリ62に記憶されていると判断したことに応じて(S44:Yes)、S45、S46の処理を実行することなく、指定プログラム“002”を起動させる(S47)。すなわち、端末プログラム65は、プログラムID“002”と、S43で入力データを一時記憶させたメモリ領域の先頭アドレスを示すポインタとを引数として指定して、起動APIを実行する。これ以降の処理は、図13(A)を参照して既に説明したS62と共通するので、再度の説明は省略する。
[本実施形態の作用効果]
上記の実施形態によれば、指定されたプラグインアイコン123〜125に対応する外部プログラム66を、入力指示処理の後のS47及び出力指示処理の前のS33のうち、機能情報に従った適切なタイミングで起動することができる。これにより、画像データに対する一連の処理をスムーズに実行することができる。また、上記の実施形態によれば、入力後実行フラグの設定値に基づいて、ユーザの所望のタイミングで指定プログラムを起動することができる。
また、上記の実施形態によれば、機能情報“出力”のプラグインアイコン123、125と、機能情報“入力”のプラグインアイコン124とを、メイン画面上で区別して表示するので、プラグインアイコン123〜125に対応する外部プログラムの機能をユーザに認識させることができる。なお、機能情報に“入力”、“出力”の両方が設定された外部プログラム“001”に対応するプラグインアイコン123は、入力グループに含めてもよいし、出力グループに含めてもよい。
また、外部プログラム66は、例えば、使用許諾契約への同意をユーザに求める等の初期処理を、初めて起動されたタイミングで実行する。そこで上記の実施形態のように、外部プログラム66が初めて起動されるか否かを判断することによって、当該外部プログラム66に初期処理を適切に実行させることができる。但し、初期処理の具体例は使用許諾契約への同意に限定されず、設定情報の入力等であってもよい。
また、上記の実施形態によれば、入力データが既にメモリ62に記憶されている場合に、S43で画像入力部から入力される入力データに代えて、メモリ62に記憶された入力データに対する処理を指定プログラムに実行させることができる。これにより、指定プログラムに処理させる入力データを多様な方法で指定することができる。また、メモリ62に複数の画像データが記憶されている場合に、指定プログラムに処理させるべき入力データを、データ選択画面を通じてユーザに選択させることができる。これにより、画像データに対する一連の処理をスムーズに実行することができる。
また、上記の実施形態によれば、携帯端末50に接続された複数の画像入力部のうちの1つを、入力元選択画面を通じてユーザに選択させることができる。これにより、指定プログラムに処理させる入力データを多様な方法で取得することができる。また、上記の実施形態によれば、図14(B)に示されるスキャン設定画面において、実行条件を構成する複数の項目“サイズ”、“画質”、“読取色”のうちの一部を、指定プログラムに固有のパラメータに固定することによって、指定プログラムに適した入力データを画像入力部に入力させることができる。
なお、上記の実施形態では、機能情報に“入力”、“出力”の両方が設定された外部プログラム“001”に対応するプラグインアイコン123がタップされた場合に、S33以降の処理を実行する例を説明した(S51:出力)。しかしながら、S51の判断は前述の例に限定されず、S52以降の処理を実行させてもよいし、S33及びS52のどちらに進むかを入力I/F54を通じてユーザに指定させてもよい。
また、上記の実施形態のMFP10及び携帯端末50において、メモリ32、62に記憶された各種プログラムがCPU31、61によって実行されることによって、本発明のントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、MFP10及び携帯端末50として実現できるだけでなく、MFP10及び携帯端末50に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワーク101を通じてMFP10及び携帯端末50に接続可能なサーバに搭載された記憶部を含んでもよい。そして、サーバの記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワーク101を通じて配信されてもよい。