以下、本発明の実施の形態について、図面を参照しながら説明する。
<実施形態1>
<全体構成例>
まず、本実施形態に係る画像処理システム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係る画像処理システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る画像処理システム1には、1以上の画像処理装置10と、1以上のWebサーバ20と、1以上のメールサーバ30と、情報処理装置40とが含まれる。また、画像処理装置10とWebサーバ20とは、例えばインターネット等の広域的なネットワークNを介して通信可能に接続されている。また、画像処理装置10とメールサーバ30とは、例えばインターネット等の広域的なネットワークNを介して通信可能に接続されている。
画像処理装置10は、Webブラウザが搭載された複合機等の電子機器である。画像処理装置10のユーザは、Webサーバ20が提供するWebアプリケーションを利用して、例えば、Webサーバ20からダウンロードした電子データを印刷したり、スキャンにより生成した画像データをメールサーバ30にメール送信したりすることができる。
Webサーバ20は、ネットワークNを介して、汎用的なHTMLを用いたWebアプリケーションを提供するコンピュータ又はコンピュータシステムである。汎用的なHTMLとは、W3C(World Wide Web Consortium)で規定されたHTML5やHTML 5.1等のことである。また、汎用的とは、例えば画像処理装置等の機器でのみ解釈可能や処理可能なように定義されたコンテンツ(拡張HTMLや拡張JavaScript等の拡張されたコンテンツ)とは異なり、汎用Webブラウザであれば機器の種類を問わず解釈や処理が可能なコンテンツを指す。汎用HTMLは、個人端末であるPCや携帯端末、スマートフォン等で利用可能であり、一般的なWebサーバやWebアプリケーションに共通して用いられている。
Webサーバ20によりWebアプリケーションが提供されることで、種々のWebサービスが実現される。このようなWebサービスとしては、例えば、クラウドストレージサービス、SNS(Social Networking Service)、クラウドプリントサービス、ブログサービス、掲示板サービス、オンラインゲームサービス、オンラインショッピングサービス等が挙げられる。
メールサーバ30は、ネットワークNを介して画像処理装置10がメール送信した画像データを受信して、指定されたメールアドレス宛に送信するコンピュータ又はコンピュータシステムである。
情報処理装置40は、Webブラウザが搭載されたPC(パーソナルコンピュータ)やスマートフォン、タブレット端末等である。
なお、図1に示す画像処理システム1の構成は一例であって、他の構成であっても良い。例えば、画像処理装置10は、複合機に限られず、例えば、デジタルカメラ、印刷装置、スキャナ装置、コピー機、プロジェクタ、ファクシミリ、電子会議用端末、電子黒板装置等であっても良い。すなわち、画像処理装置10は、Webサーバ20との間でデータの入力及び出力の少なくとも一方を行う電子機器であれば良い。また、例えば、画像処理システム1には、情報処理装置40が含まれていなくても良い。
<画像処理装置10のハードウェア構成例>
次に、本実施形態に係る画像処理装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態に係る画像処理装置10のハードウェア構成の一例を示す図である。
図2に示すように、本実施形態に係る画像処理装置10は、操作装置11と、本体装置12とを有している。
操作装置11は、本体装置12に実行させる画像処理機能の選択、画像処理機能を実行させるための各種設定値の入力、画像処理機能の実行を開始させるための実行指示の入力、表示画面の切り替え等、ユーザが各種操作を行う際に用いられる。
本体装置12は、操作装置11におけるユーザの各種操作に応じて、画像処理機能の実行等の各種の処理を実行する。
図2に示すように、画像処理装置10の操作装置11は、CPU(Central Processing Unit)111と、ROM(Read Only Memory)112と、RAM(Random Access Memory)113とを有している。また、操作装置11は、フラッシュメモリ114と、操作パネル115と、接続I/F116と、通信I/F117とを有している。これら各ハードウェアは、バス118を介して相互に接続されている。
CPU111は、RAM113をワークエリアとしてROM112又はフラッシュメモリ114に記憶された各種プログラムを実行することで、操作装置11全体を制御する演算装置である。
ROM112は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。RAM113は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
フラッシュメモリ114は、不揮発性の記憶装置であり、CPU111が実行する各種プログラム(例えば、本実施形態を実現するプログラム等)や各種データを記憶する。
操作パネル115は、ユーザが各種操作を行う際に用いられる。また、操作パネル115は、ユーザに対して各種画面等を表示する。
接続I/F116は、通信路13を介して本体装置12と通信するためのインタフェースである。接続I/F116には、例えばUSB(Universal Serial Bus)規格のインタフェースが用いられる。
通信I/F117は、他の機器等と通信するためのインタフェースである。通信I/F117には、例えば、Wi−Fi規格の無線LAN(Local Area Network)等が用いられる。
同様に、画像処理装置10の本体装置12は、CPU121と、ROM122と、RAM123とを有している。また、本体装置12は、HDD(Hard Disk Drive)124と、画像処理エンジン125と、接続I/F126と、通信I/F127とを有している。これら各ハードウェアは、バス128を介して相互に接続されている。
CPU121は、RAM123をワークエリアとしてROM122又はHDD124に記憶された各種プログラムを実行することで、本体装置12全体を制御する演算装置である。
ROM122は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。RAM123は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
HDD124は、不揮発性の記憶装置であり、CPU121が実行する各種プログラム(例えば、本実施形態を実現するプログラム等)や各種データを記憶する。
画像処理エンジン125は、印刷機能、スキャン機能、コピー機能、及びFAX機能等の各種の画像処理機能を実現するための画像処理を行うハードウェアである。
画像処理エンジン125には、例えば、用紙等のシート材への印刷を行うプロッタ、原稿を光学的に読み取って画像データを生成するスキャナ、及びFAX通信を行うFAX通信装置等が含まれる。また、画像処理エンジン125には、例えば、印刷済みのシート材を仕分けるフィニッシャや原稿を自動給送するADF(自動原稿給送装置)等が含まれていても良い。
接続I/F126は、通信路13を介して操作装置11と通信するためのインタフェースである。接続I/F126には、例えば、USB規格のインタフェースが用いられる。
通信I/F127は、他の機器等と通信するためのインタフェースである。通信I/F127には、例えば、Wi−Fi規格の無線LAN等が用いられる。
本実施形態に係る画像処理装置10は、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
なお、図2では、画像処理装置10が操作装置11を有している構成を一例として示したが、これに限られず、例えば、タブレット端末、スマートフォン、携帯電話、PDA等の情報処理端末が画像処理装置10の操作装置として機能しても良い。すなわち、これらの情報処理端末は、操作装置11の通信I/F117又は本体装置12の通信I/F127を介して画像処理装置10と通信することにより、当該画像処理装置10を制御することができても良い。
<画像処理装置10のソフトウェア群の階層構造>
次に、本実施形態に係る画像処理装置10の操作装置11及び本体装置12に含まれるソフトウェア群の階層構造について、図3を参照しながら説明する。図3は、本実施形態に係る画像処理装置10の操作装置11及び本体装置12に含まれるソフトウェア群の階層構造の一例を示す図である。
図3は、操作装置11に含まれるソフトウェア群の階層構造と、本体装置12に含まれるソフトウェア群の階層構造とを示している。
まず、本体装置12に含まれるソフトウェア群(すなわち、本体装置12のROM122やHDD124に記憶されているプログラム群)の階層構造について説明する。本体装置12に含まれるソフトウェア群は、アプリケーション層221と、サービス層222と、OS層223とに大別することができる。
アプリケーション層221に区分されるソフトウェアは、ハードウェア資源を動作させて画像処理機能を実現させるためのソフトウェアである。具体的には、印刷アプリケーション、スキャンアプリケーション、コピーアプリケーション、及びFAXアプリケーション等が挙げられる。
サービス層222に区分されるソフトウェアは、アプリケーション層221とOS層223との間を介在するソフトウェアである。当該ソフトウェアは、本体装置12が備えるハードウェア資源を、アプリケーション層221のソフトウェアが利用したり、本体装置12が備えるハードウェア資源の状態を通知したりするインタフェースとしての役割を果たす。
具体的には、ハードウェア資源に対する実行要求を受け付けたり、受け付けた実行要求の調停を行ったりする。サービス層222が受け付ける実行要求には、例えば、画像処理エンジン125による画像処理の実行要求(スキャナによるスキャン実行要求やプロッタによる印刷実行要求等)が含まれる。
なお、サービス層222に区分されるソフトウェアが果たす上記インタフェースとしての役割は、操作装置11のアプリケーション層211に対しても同様である。すなわち、操作装置11のアプリケーション層211に区分されるソフトウェアも、サービス層222にアクセスすることにより、本体装置12のハードウェア資源を動作させて、画像処理機能を実現させることができる。
OS層223に区分されるソフトウェアは、基本ソフトウェア(OS:Operating System)と呼ばれるプログラムであり、本体装置12が有するハードウェア資源を制御する基本機能を提供する。OS層223に区分されるソフトウェアは、アプリケーション層221に区分されるソフトウェアからのハードウェア資源に対する実行要求を、サービス層222に区分されるソフトウェアを介して受け付けて、当該実行要求に応じた処理を実行する。
次に、操作装置11に含まれるソフトウェア群(すなわち、操作装置11のROM112やフラッシュメモリ114に記憶されているプログラム群)の階層構造について説明する。本体装置12と同様に、操作装置11に含まれるソフトウェア群も、アプリケーション層211と、サービス層212と、OS層213とに大別することができる。
ただし、アプリケーション層211に区分されるソフトウェアが提供する機能やサービス層212が受け付け可能な実行要求の種類は、本体装置12とは異なる。操作装置11のアプリケーション層211に区分されるソフトウェアは、主として、各種操作や表示を行うためのユーザインタフェース機能を提供する。
なお、本実施形態では、操作装置11と本体装置12とで、OSは独立して動作するものとする。また、操作装置11と本体装置12とが相互に通信可能であれば、OSが同じ種類である必要はない。例えば、操作装置11ではOSにAndroid(登録商標)を用いる一方で、本体装置12ではOSにLinux(登録商標)を用いることも可能である。
このように、本実施形態に係る画像処理装置10は、操作装置11と本体装置12とが異なるOSにより制御される。このため、操作装置11と本体装置12との間の通信は、一装置内のプロセス間通信ではなく、異なる情報処理装置間の通信として行われる。
ただし、本実施形態に係る画像処理装置10は、操作装置11と本体装置12とで異なる種類のOSが動作している場合に限られず、操作装置11と本体装置12とで同一種類のOSが動作していても良い。また、本実施形態に係る画像処理装置10は、操作装置11と本体装置12とでOSが独立して動作している場合に限られず、操作装置11及び本体装置12上で一のOSが動作していても良い。
<情報処理装置40のハードウェア構成例>
次に、本実施形態に係る情報処理装置40のハードウェア構成について、図4を参照しながら説明する。図4は、本実施形態に係る情報処理装置40のハードウェア構成の一例を示す図である。
図4に示すように、情報処理装置40は、入力装置31と、表示装置32と、外部I/F33と、RAM34と、ROM35と、CPU36と、通信I/F37と、補助記憶装置38とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
入力装置31は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置32は、例えばディスプレイ等であり、情報処理装置40の処理結果を表示する。
外部I/F33は、外部装置とのインタフェースである。外部装置には、記録媒体33a等がある。情報処理装置40は、外部I/F33を介して、記録媒体33a等の読み取りや書き込みを行うことができる。
記録媒体33aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
RAM34は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM35は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM35には、例えば、OS設定やネットワーク設定等が格納されている。
CPU36は、ROM35や補助記憶装置38等からプログラムやデータをRAM34上に読み出して処理を実行する演算装置である。
通信I/F37は、情報処理装置40をネットワークNに接続するためのインタフェースである。補助記憶装置38は、例えばHDDやSSD等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置38に格納されているプログラムやデータには、例えば、OS、当該OS上において各種機能を実現するアプリケーションプログラム等がある。
<ソフトウェア構成例>
次に、本実施形態に係る画像処理システム1に含まれる画像処理装置10及び情報処理装置40のソフトウェア構成について、図5を参照しながら説明する。図5は、本実施形態に係る画像処理システム1のソフトウェア構成の一例を示す図である。
≪画像処理装置10≫
図5に示すように、本実施形態に係る画像処理装置10の操作装置11は、Webブラウザ310と、印刷UIアプリケーション320と、スキャンUIアプリケーション330と、メールUIアプリケーション392とを有する。これらWebブラウザ310、印刷UIアプリケーション320、スキャンUIアプリケーション330、メールUIアプリケーション392は、CPU111により実行される。
また、本実施形態に係る画像処理装置10の本体装置12は、WebAPI340と、印刷アプリケーション350と、スキャンアプリケーション360と、メール送信アプリケーション390とを有する。これらWebAPI340、印刷アプリケーション350、スキャンアプリケーション360、メール送信アプリケーション390は、CPU121により実行される。
Webブラウザ310は、Webサーバ20からWebコンテンツ(例えば、HTML、CSS(Cascading Style Sheets)、JavaScript、各種電子ファイル等)を取得することで、Webアプリケーションを実現する。
例えば、Webブラウザ310は、SNSを提供するWebサーバ20からWebコンテンツを取得することで、SNSの閲覧やSNS上でのファイル共有等を行うWebアプリケーションを実現する。また、例えば、Webブラウザ310は、クラウドストレージサービスを提供するWebサーバ20からWebコンテンツを取得することで、ストレージの閲覧やストレージへのファイルのアップロード等を行うWebアプリケーションを実現する。
なお、Webアプリケーションは、一般に、Webサーバ20から取得したJavaScript等のコンテンツをWebブラウザ310上で動作させて、Webサーバ20と協働した処理を実行させることで実現される。
Webブラウザ310には、ブラウザ機能部311と、制御部312とが含まれる。なお、以降では、Webコンテンツを単に「コンテンツ」とも表す。
ブラウザ機能部311は、コンテンツの解釈及び表示等を行う。ブラウザ機能部311には、UI部313と、解釈部314とが含まれる。解釈部314は、UI部313により表示されたWebページ上でリンクが押下された場合、当該リンクに対応するHTMLタグを解釈して、制御部312に対して解釈結果に応じた通知を行う。
UI部313は、Webサーバ20から取得したコンテンツに応じたWebページ等を表示する。また、UI部313は、Webページ上におけるユーザの各種操作(例えば、リンク押下)等を受け付ける。なお、ブラウザ機能部311は、例えば、WebView等を用いて実現することができる。
制御部312は、ブラウザ機能部311の解釈部314からの通知に応じて、画像処理装置10の画像処理機能を実行させる制御を行う。例えば、リンク先のコンテンツをWebサーバ20からダウンロードすることを示すダウンロード通知を解釈部314から受け取った場合、制御部312は、当該コンテンツをダウンロードして印刷する制御を行う。また、例えば、リンク先のコンテンツを表示させることを示す表示通知を解釈部314から受け取った場合であっても、当該コンテンツが所定の形式(例えば、JPEG形式)である場合、制御部312は、当該コンテンツをダウンロードして印刷する制御を行う。
なお、Webブラウザ310は、Webアプリケーションを実現するブラウザ機能部311と、画像処理装置10の画像処理機能を制御する制御部312とを備えるため、いわゆるハイブリッドアプリケーションと言うこともできる。Webブラウザ310は、例えば、Java(登録商標)等のプログラミング言語で実装される。すなわち、Webブラウザ310を構成するブラウザアプリケーションは、その基礎部分がJavaアプリケーションプログラムから構成されている。このJavaアプリケーションが、操作装置11が提供するAPIを用いて、操作装置11が備えるブラウザ機能部311(例えば、WebView)を呼び出すことで、解釈部314及びUI部313を含むWebブラウザ310を構成している。基礎部分であるJavaアプリケーションプログラムは、制御部312を含み、この制御部312が制御を行うことで、Webコンテンツ解釈後の動作に柔軟性を持たせ、汎用的なHTMLで可能な動作(ダウンロード及びアップロード)だけでなく、画像処理(プリント、スキャン、メール送信)動作の要求ができるようになっている。
印刷UIアプリケーション320は、印刷に関するUI(ユーザインタフェース)を提供するアプリケーションプログラムである。印刷UIアプリケーション320は、例えば、印刷実行中であることを示す画面や印刷が完了したことを示す画面等を表示する。
また、印刷UIアプリケーション320は、制御部312からの要求に応じて、WebAPI340を介して、印刷アプリケーション350に対して印刷の実行を要求する。
スキャンUIアプリケーション330は、スキャンに関するUIを提供するアプリケーションプログラムである。スキャンUIアプリケーション330は、例えば、スキャン中であることを示す画面やスキャンが完了したことを示す画面、スキャンにより生成した画像データのメール送信中であることを示す画面やメール送信が完了したことを示す画面等を表示する。
また、スキャンUIアプリケーション330は、制御部312からの要求に応じて、WebAPI340を介して、スキャンアプリケーション360に対してスキャンの実行及びスキャンにより生成した画像データのメール送信を要求する。
メールUIアプリケーション392は、メールに関するUIを提供するアプリケーションプログラムである。メールUIアプリケーション392は、例えば、メール送受信中であることを示す画面やメール送受信が完了したことを示す画面等を表示する。
WebAPI340は、印刷UIアプリケーション320、スキャンUIアプリケーション330、メールUIアプリケーション392が画像処理の実行を要求するためのAPI(Application Programming Interface)である。
印刷アプリケーション350は、印刷UIアプリケーション320からの要求に応じて、画像処理エンジン125を制御して、印刷を実行する。
スキャンアプリケーション360は、スキャンUIアプリケーション330からの要求に応じて、画像処理エンジン125を制御して、スキャンを実行する。また、スキャンアプリケーション360は、メール送信アプリケーション390に対して、スキャンにより生成した画像データのメール送信を要求する。
メール送信アプリケーション390は、スキャンアプリケーション360からの要求に応じて、画像処理エンジン125を制御して、メール送信を実行する。
以降では、印刷UIアプリケーション320と、WebAPI340と、印刷アプリケーション350とを「印刷サービス部370」と表す。また、スキャンUIアプリケーション330と、WebAPI340と、スキャンアプリケーション360とを「スキャンサービス部380」と表す。また、メールUIアプリケーション392と、WebAPI340と、メール送信アプリケーション390とを「メールサービス部391」と表す。
なお、操作装置11には、例えば、コピーに関するUIを提供するアプリケーションやFAXに関するUIを提供するアプリケーション、OCR(Optical Character Recognition)に関するUIを提供するアプリケーション等が含まれていても良い。また、本体装置12には、例えば、コピーを実行するアプリケーションやFAXを実行するアプリケーション、OCRを実現するアプリケーション等が含まれていても良い。したがって、画像処理装置10には、例えば、コピーサービス部やFAXサービス部、OCRサービス等の様々な画像処理サービス部が含まれていても良い。
また、画像処理装置10には、画像処理サービス部以外にも、例えば、画像処理装置10が保持するアドレス帳に関する処理を実行するアドレス帳サービス部、ユーザが画像処理装置10を利用するための認証に関する処理を実行する認証サービス部等が含まれる。
≪情報処理装置40≫
図5に示すように、本実施形態に係る情報処理装置40は、Webブラウザ410を有する。Webブラウザ410は、CPU36により実行される。
Webブラウザ410には、UI部411と、解釈部412とが含まれる。UI部411は、Webサーバ20から取得したコンテンツに応じたWebページ等を表示する。また、UI部411は、Webページ上におけるユーザの各種操作(例えば、リンク押下)等を受け付ける。
解釈部412は、UI部411により表示されたWebページ上でリンクが押下された場合、当該リンクに対応するHTMLを解釈して、UI部411に対して解釈結果に応じた通知を行う。
<画像処理装置10及び情報処理装置40の動作比較>
情報処理装置40に搭載されたWebブラウザ410のUI部411は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部412は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、UI部411に対して解釈結果に応じた通知(表示通知又はダウンロード通知)を行う。例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能なファイルである場合(例えば、拡張子がhtmlやimg、pdf等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能でないファイルである場合(例えば、拡張子がzip等である場合)には、ダウンロード通知となる。ただし、例えば、aタグの属性「href」に指定されているファイルの拡張子がpdf等のWebブラウザ410で表示可能なファイルの拡張子であっても、属性「download」が指定されている場合には、ダウンロード通知となる。
そして、Webブラウザ410のUI部411は、表示通知を受け取った場合、ファイルを表示する。一方で、Webブラウザ410のUI部411は、ダウンロード通知を受け取った場合、例えば、ファイルをダウンロードするための画面(例えば、ダウンロードの開始又はキャンセルをユーザが選択するための画面)を表示する。
一方で、画像処理装置10に搭載されたWebブラウザ310のUI部313は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部314は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、制御部312に対して解釈結果に応じた通知(表示通知又はダウンロード)を行う。これは、情報処理装置40と同様に、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ310で表示可能なファイルである場合(例えば、拡張子がhtmlやimg、pdf等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ310で表示可能でないファイルである場合(例えば、拡張子がzip等である場合)には、ダウンロード通知となる。
そして、制御部312は、ダウンロード通知を受け取った場合、ダウンロード対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。一方で、制御部312は、表示通知を受け取った場合、表示対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。
このように、画像処理装置10に搭載されたWebブラウザ310は、情報処理装置40のWebブラウザ410でダウンロード対象又は表示対象と解釈されるファイルが印刷可能である場合、当該ファイルを印刷させるための制御を行う。これにより、画像処理装置10では、汎用的なHTMLを用いたWebアプリケーションにより、コンテンツのダウンロード及び印刷を行うことができる。
また、情報処理装置40に搭載されたWebブラウザ410のUI部411は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部412は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、UI部411に対して解釈結果に応じた通知(メール送信通知)を行う。このメール送信通知は、aタグの属性「href」においてスキーム「mail to」で指定された電子メールアドレスにメール送信させる通知である。
そして、Webブラウザ410のUI部411は、メール送信通知を受け取った場合、メールソフトを起動して、指定された電子メールアドレスが宛先欄に入力された新規メール作成画面を表示する。
一方で、画像処理装置10に搭載されたWebブラウザ310のUI部313は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部314は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、制御部312に対して解釈結果に応じた通知(メール送信通知)を行う。このメール送信通知は、aタグの属性「href」においてスキーム「mail to」で指定された電子メールアドレスへ、スキャンにより生成した画像データをメール送信させる通知である。
そして、制御部312は、メール送信通知を受け取った場合、スキャンにより画像データを生成するように制御した上で、生成された画像データを指定された電子メールアドレスにメール送信する。
このように、画像処理装置10に搭載されたWebブラウザ310は、情報処理装置40のWebブラウザ410でメールの送信先と解釈される電子メールアドレス宛へ、スキャンにより生成した画像データをメール送信する。これにより、画像処理装置10では、汎用的なHTMLを用いたWebアプリケーションにより、画像データの生成及びメール送信を行うことができる。
<処理の詳細>
次に、本実施形態に係る画像処理システム1の処理の詳細について説明する。
(実施例1)
以降では、ユーザが画像処理装置10を用いて、汎用的なHTMLを用いたWebアプリケーションにより、Webサーバ20からコンテンツをダウンロードして印刷する処理について、図6を参照しながら説明する。図6は、本実施形態に係る印刷処理の一例を示すシーケンス図である。
まず、ブラウザ機能部311のUI部313は、例えば図7に示すWebページG110を表示する(ステップS601)。図7に示すWebページG110は、Webサーバ20から取得したコンテンツ(HTMLやCSS、JavaScript等)を解釈部314が解釈することで表示される。このようなコンテンツの取得は、例えば、WebページG110を表示するためのURL(Uniform Resource Locator)を入力したり、当該URLへのリンクを押下したりすることで行うことができる。
図7に示すWebページG110には、Webサーバ20に格納されているPDF(Portable Document Format)ファイルへのリンクG111が含まれている。ここで、ユーザがリンクG111を押下したものとする。
ブラウザ機能部311のUI部313は、ユーザによるリンクG111の押下を受け付ける(ステップS602)。ここで、図7に示すWebページG110に含まれるリンクG111は、例えば、図8に示すように、属性「href」や属性「download」、属性「type」等が設定されたaタグ(アンカータグ)により実現される。図8に示すaタグの属性「href」には、相対パスにより、ファイル名「file.pdf」のPDFファイルの格納先URL(なお、スキームは「http」である)が指定されている。なお、aタグには、これら以外にも、種々の属性が設定されていても良い。
ブラウザ機能部311のUI部313は、ユーザにより押下されたリンクG111を実現するaタグの解釈要求を解釈部314に送信する(ステップS603)。
ブラウザ機能部311の解釈部314は、リンクG111を実現するaタグを解釈する(ステップS604)。すなわち、解釈部314は、aタグを解釈することで、当該aタグの属性「href」に指定されたリンク先のコンテンツが、Webブラウザ310上に表示するコンテンツ又はダウンロードするコンテンツのいずれであるかを判定する。
Webブラウザ310上に表示するコンテンツ又はダウンロードするコンテンツのいずれであるかは、例えば、属性「href」に指定されたリンク先のコンテンツの拡張子で判定される。例えば、拡張子が「html」や「htm」、「jpeg」、「gif」等である場合、Webブラウザ310上に表示するコンテンツであると判定される。一方で、例えば、拡張子が「pdf」や「doc」、「xls」、「zip」等である場合、ダウンロードするコンテンツであると判定される。なお、Webブラウザ310上に表示するか又はダウンロードするかは、例えば、拡張子毎に、Webブラウザ310の設定ファイル等に定義される。なお、「jpeg」をダウンロード対象にする等、個々の拡張子に対してダウンロードするか表示するかの設定が可能である。
上記のステップS604において、ダウンロードするコンテンツであると判定された場合、ブラウザ機能部311の解釈部314は、ダウンロード通知を制御部312に送信する(ステップS605)。解釈部314は、ブラウザが搭載されている機器にダウンロードを実行させるためのダウンロードAPIの一例として、例えば、onDwonloadStartを呼び出すことで、ダウンロード通知を行うことができる。なお、このとき、onDownloadStartの引数には、属性「href」に指定されたURLと、属性「type」に指定されたMIMEタイプとが指定される。onDwonloadStartは、操作装置11で提供するAPI(操作部API、操作装置API)の1つである。
制御部312は、ダウンロード対象のコンテンツ(すなわち、属性「href」に指定されたリンク先のコンテンツ)が印刷可能であるか否かを確認する(ステップS606)。
ダウンロード対象のコンテンツが印刷可能であるか否かは、例えば、属性「type」に指定されているMIMEタイプや当該コンテンツの拡張子等により判定される。例えば、属性「type」に指定されているMIMEタイプが「application/pdf」や「application/msword」、「application/msexcel」等である場合、印刷可能であると判定される。一方で、例えば、属性「type」に指定されているMIMEタイプが「application/zip」等である場合(すなわち、コンテンツが圧縮されている場合)には、印刷可能でないと判定される。これ以外にも、例えば、ダウンロード対象のコンテンツが暗号化されている場合等には、印刷可能でないと判定される。
ただし、例えば、コンテンツが圧縮されている場合、当該コンテンツをダウンロード及び解凍した上で、解凍後のコンテンツが印刷可能であるか否かを確認しても良い。このとき、解凍後のコンテンツが印刷可能でない場合は、例えば、エラー画面等をWebブラウザ310上に表示すれば良い。解凍後のコンテンツが印刷可能でない場合には、例えば、解凍後のコンテンツが暗号化されている、動画ファイル(例えば、拡張子「.mp4」等)や音声ファイル(例えば、拡張子「.mp3」等)等が挙げられる。
なお、MIMEタイプは、例えば、onDownloadStartの引数に指定される。また、コンテンツの拡張子は、例えば、onDownloadStartの引数に指定されるURLから特定することができる。
以降では、上記のステップS606において、ダウンロード対象のコンテンツが印刷可能であると判定されたものとして説明する。なお、上記のステップS606において、ダウンロード対象のコンテンツが印刷可能でないと判定された場合、制御部312は、例えば、ダウンロード許可通知を解釈部314に返信する。これにより、例えば、ユーザに対して保存先を指定させるためのダイアログが表示された上で、ブラウザ機能部311により、当該コンテンツがWebサーバ20からダウンロードされる。
ただし、ダウンロード対象のコンテンツが圧縮や暗号化されていることで印刷可能でないと判定された場合には、解凍後のコンテンツや復号後のコンテンツが印刷可能であるか否かを判定しても良い。このとき、コンテンツの解凍や復号は、制御部312が行っても良いし、外部のサーバ等に依頼しても良い。なお、コンテンツの解凍を開始するための開始操作や復号に用いられるパスワードの入力操作等がユーザにより行われても良い。
これにより、解凍後のコンテンツや復号後のコンテンツが印刷可能である場合には、後述するステップS607〜ステップS619が実行される。
制御部312は、ダウンロード対象のコンテンツが印刷可能であると判定された場合、ダウンロード中画面の表示要求をUI部313に送信する(ステップS607)。
ブラウザ機能部311のUI部313は、ダウンロード中画面の表示要求を受信すると、例えば図7に示すダウンロード中画面G120を表示する(ステップS608)。図7に示すダウンロード中画面G120が表示されることで、ユーザは、コンテンツがダウンロード中であることを知ることができる。
制御部312は、ダウンロード対象のコンテンツ(すなわち、aタグの属性「href」に指定されたリンク先のコンテンツ)のダウンロード要求をWebサーバ20に送信する(ステップS609)。これにより、当該コンテンツがWebサーバ20からダウンロードされる。Webサーバ20からダウンロードされたコンテンツは、例えばフラッシュメモリ114内の予め指定された記憶領域に保存される。
なお、制御部312は、ダウンロードしたコンテンツに対して、例えば、画像処理装置10のユーザを識別するユーザID等を付加しても良い。また、制御部312は、ダウンロードしたコンテンツに対して、例えば、印刷設定を示す情報を付加しても良い。
制御部312は、Webサーバ20からコンテンツをダウンロードすると、ダウンロード完了画面の表示要求をUI部313に送信する(ステップS610)。
ブラウザ機能部311のUI部313は、ダウンロード完了画面の表示要求を受信すると、例えば図7に示すダウンロード完了画面G130を表示する(ステップS611)。図7に示すダウンロード完了画面G130が表示されることで、ユーザは、コンテンツのダウンロードが完了したことを知ることができる。
また、図7に示すダウンロード完了画面G130には、印刷実行ボタンG131が含まれている。ユーザは、印刷実行ボタンG131を押下することで、ダウンロードしたコンテンツの印刷を開始することができる。ここで、ユーザにより印刷実行ボタンG131が押下されたものとする。
ブラウザ機能部311のUI部313は、ユーザによる印刷実行ボタンG131の押下を受け付ける(ステップS612)。なお、印刷実行ボタンG131が押下されなかった場合(又は後述するキャンセルボタンG141が押下された場合)、ダウンロードされたコンテンツは削除されても良いし、画像処理装置10に保存されても良い。
ブラウザ機能部311のUI部313は、ダウンロードされたコンテンツの印刷実行要求を制御部312に送信する(ステップS613)。
制御部312は、ブラウザ機能部311から印刷実行要求を受信すると、当該印刷実行要求を印刷サービス部370に送信する(ステップS614)。当該印刷実行要求には、上記のステップS609でダウンロードされたコンテンツの保存先を示す情報が含まれる。当該印刷実行要求には、これ以外にも、例えば、予め決められた印刷設定を示す情報(すなわち、デフォルトの印刷設定を示す情報や制御部312により決定された印刷設定を示す情報等)が含まれていても良い。
なお、制御部312は、例えば、機器の他のアプリケーションを呼び出すためのアプリ連携APIの一例として、intentを用いて、印刷サービス部370の印刷UIアプリケーション320を呼び出すことができる。intentは、操作装置11で提供するAPI(操作部API、操作装置API)の1つである。呼び出された印刷UIアプリケーション320を用いて、例えば、画像処理機能を実行するための印刷設定、印刷実行ボタン、印刷中、印刷キャンセル等の表示を行っても良い。
印刷サービス部370は、制御部312から印刷実行要求を受信すると、例えば図7に示す印刷実行中画面G140を表示する(ステップS615)。図7に示す印刷実行中画面G140は、印刷UIアプリケーション320により表示される。図7に示す印刷実行中画面G140が表示されることで、ユーザは、ダウンロードしたコンテンツが印刷中であることを知ることができる。
次に、印刷サービス部370は、上記のステップS609でダウンロードされたコンテンツの印刷を実行する(ステップS616)。印刷の実行は、印刷UIアプリケーション320が、WebAPI340を介して、印刷アプリケーション350に対して印刷要求を送信することで行うことができる。これにより、Webサーバ20からダウンロードされたコンテンツが印刷される。
なお、図7に示す印刷実行中画面G140には、キャンセルボタンG141が含まれる。ユーザによりキャンセルボタンG141が押下された場合、印刷UIアプリケーション320は、WebAPI340を介して、印刷中止要求を印刷アプリケーション350に送信する。これにより、ダウンロードしたコンテンツの印刷が中止される。
印刷が完了すると、印刷アプリケーション350は、当該印刷要求に対する応答を印刷UIアプリケーション320に送信する。一方で、例えば、印刷中にエラーが発生した場合、印刷アプリケーション350は、エラーが発生したことを示す通知を印刷UIアプリケーション320に送信する。印刷UIアプリケーション320は、エラーが発生したことを示す通知を受信すると、例えば、エラーが発生したことを示す画面を表示する。
次に、印刷サービス部370は、上記のステップS616で実行された印刷が完了すると、印刷完了通知を制御部312に送信する(ステップS617)。印刷完了通知は、印刷UIアプリケーション320により送信される。
制御部312は、印刷完了通知を印刷サービス部370から受信すると、当該印刷完了通知をUI部313に送信する(ステップS618)。
ブラウザ機能部311のUI部313は、印刷完了通知を受信すると、例えば図7に示す印刷完了画面G150を表示する(ステップS619)。図7に示す印刷完了画面G150が表示されることで、ユーザは、コンテンツの印刷が完了したことを知ることができる。
以上のステップS605〜ステップS619により、ステップS604でリンク先のコンテンツが、ダウンロードするコンテンツであると判定された場合に、当該コンテンツが印刷される。
一方で、上記のステップS604において、Webブラウザ310上に表示するコンテンツであると判定された場合、ブラウザ機能部311の解釈部314は、表示通知を制御部312に送信する(ステップS620)。解釈部314は、例えば、ブラウザのUIで表示している画面を更新するための画面更新APIの一例として、shouldOverrideUrlLoadingを呼び出すことで、表示通知を行うことができる。なお、このとき、shouldOverrideUrlLoadingの引数には、属性「href」に指定されたURLが指定される。shouldOverrideUrlLoadingは、操作装置11で提供するAPI(操作部API、操作装置API)の1つである。
制御部312は、表示対象のコンテンツ(すなわち、属性「href」に指定されたリンク先のコンテンツ)が印刷可能であるか否かを確認する(ステップS621)。
表示対象のコンテンツが印刷可能であるか否かは、例えば、当該コンテンツの拡張子等により判定される。例えば、当該コンテンツの拡張子が「jpg」や「jpeg」、「tiff」等である場合、印刷可能であると判定される。一方、例えば、当該コンテンツの拡張子が「html」や「htm」等である場合には、印刷可能でないと判定される。
ただし、例えば、当該コンテンツの拡張子が「html」や「htm」等である場合には、当該コンテンツをWebブラウザ310上に表示すると共に、印刷実行ボタンを表示させても良い。これにより、ユーザは、当該印刷実行ボタンを押下することで、Webブラウザ310上に表示されているコンテンツ(Webページ)を印刷することができる。
なお、コンテンツの拡張子は、例えば、shouldOverrideUrlLoadingの引数に指定されるURLから特定することができる。
ただし、表示対象のコンテンツが印刷対象であるか否を、例えば、属性「type」に指定されているMIMEタイプから判定しても良い。この場合、属性「type」に指定されているMIMEタイプが「image/jpeg」や「image/gif」、「image/png」等である場合、印刷可能である判定される。一方で、例えば、属性「type」に指定されているMIMEタイプが「text/html」等である場合には、印刷可能でないと判定される。
以降では、上記のステップS621において、表示対象のコンテンツが印刷可能であると判定されたものとして説明する。なお、上記のステップS621において、表示対象のコンテンツが印刷可能でないと判定された場合、制御部312は、例えば、表示許可通知を解釈部314に返信する。これにより、例えば、ブラウザ機能部311により、当該コンテンツがWebサーバ20から取得された上で、Webブラウザ310上に表示される。
制御部312は、表示対象のコンテンツが印刷可能であると判定された場合、印刷実行通知を解釈部314に送信する(ステップS622)。そして、画像処理装置10は、ステップS607〜ステップS619を実行する。このように、ユーザにより押下されたリンクのリンク先コンテンツが表示対象のコンテンツである場合であっても、例えば、当該コンテンツがJPEG形式の画像データ等であるときには、当該コンテンツが印刷される。
以上のように、本実施形態に係る画像処理装置10は、汎用的なHTMLタグであるaタグで実現されるリンクがユーザにより押下された場合に、リンク先のコンテンツの種別に応じて、当該コンテンツをダウンロード及び印刷することができる。このように、本実施形態に係る画像処理装置10では、印刷機能を実現するための専用のHTMLタグを用いずに、当該印刷機能が実現される。
したがって、例えば、Webサーバ20が提供するWebアプリケーションの開発者等は、専用のJavaScriptやHTML等の知識を必要とすることなく、画像処理装置10特有の画像処理機能を実現させるWebアプリケーションを開発することができる。
なお、図6で説明した印刷処理は、JavaScript等を用いる場合の他に、例えば、PHPを用いて実現することもできる。例えば、図9に示すようなPHPコードを作成し、「dl.php」という名称でWebサーバ20側に保存しておくと共に、Webブラウザ310が受け取るHTML中に、例えば、<a href="./dl.php">ダウンロード</a>と定義しておく。これにより、このHTML中に定義されたダウンロードリンクをユーザが押下した場合、Webサーバ20上で「dl.php」が実行され、Webサーバ20からWebブラウザ310に対してダウンロード指示を示すHTTPヘッダが送信される。
ここで、図9に示すPHPコードの場合、ダウンロード指示を示すHTTPヘッダには、「Content−Type:application/force−download」と、「Content−disposition:attachment;filename="myfile.pdf"」とが含まれる。これより、上記のステップS604において、Webブラウザ310の解釈部314により、「myfile.pdf」がダウンロードするコンテンツであると判定される。
(実施例1の他の例(その1))
次に、印刷処理の他の例(その1)について、図10を参照しながら説明する。図10は、本実施形態に係る印刷処理の他の例(その1)を示すシーケンス図である。なお、図10におけるステップS601〜ステップS622は、図6と同様であるため、その説明を省略する。
ステップS614に続いて、印刷サービス部370は、ブラウザ機能部311から印刷実行要求を受信すると、例えば図11に示す印刷設定画面G210を表示する(ステップS1001)。図11に示す印刷設定画面G210は、印刷UIアプリケーション320により表示される。
図11に示す印刷設定画面G210には、印刷設定欄G211と、印刷実行ボタンG212とが含まれる。ユーザは、印刷設定欄G211において、例えば、「部数」、「カラー」、「印刷面」、「用紙サイズ」等の種々の印刷設定を指定することができる。ここで、ユーザが印刷設定欄G211において印刷設定を指定する操作(印刷設定操作)を行った上で、印刷実行ボタンG212を押下したものとする。
印刷サービス部370は、ユーザによる印刷設定操作及び印刷実行ボタンG212の押下を受け付ける(ステップS1002)。印刷設定操作及び印刷実行ボタンG212の押下は、印刷UIアプリケーション320により受け付けられる。これにより、ステップS616において、ユーザにより指定された印刷設定でコンテンツが印刷される。
(実施例1の他の例(その2))
次に、印刷処理の他の例(その2)について、図12を参照しながら説明する。図12は、本実施形態に係る印刷処理の他の例(その2)を示すシーケンス図である。
図12に示す印刷処理では、図6のステップS610〜ステップS613が実行されない。すなわち、図12に示す印刷処理では、aタグで実現されるリンクがユーザにより押下された場合、ユーザによる印刷実行ボタンの押下が行われることなく、リンク先のコンテンツのダウンロード及び印刷が行われる。これにより、ユーザは、一度の操作(aタグで実現されるリンクの押下操作)を行うことで、リンク先のコンテンツを印刷することができるようになる。
また、図12に示す印刷処理では、ステップS609に続いて、制御部312は、ダウンロード中画面の消去要求をUI部313に送信する(ステップS1201)。そして、UI部313は、ダウンロード中画面の消去要求を受信すると、ダウンロード中画面G120を消去する(ステップS1202)。
(実施例1の他の例(その3))
次に、印刷処理の他の例(その3)について、図13を参照しながら説明する。図13は、本実施形態に係る印刷処理の他の例(その3)を示すシーケンス図である。なお、図13におけるステップS601〜ステップS622は、図6と同様であるため、その説明を省略する。
ステップS614に続いて、印刷サービス部370は、ステップS609でダウンロードしたコンテンツに対して所定の画像処理を実行する(ステップS1301)。ここで、印刷サービス部370により実行される画像処理としては、例えば、コンテンツに対して所定の情報(例えばダウンロード先のURLや時刻等)を付加する処理、データ形式の変換処理等が挙げられる。これにより、ステップS616において、画像処理が行われた後のコンテンツが印刷される。
次に、印刷処理の実行時におけるWebブラウザ310の動作の一例について、図14を参照しながら説明する。図14は、印刷処理の実行時におけるWebブラウザ310の動作の一例を示すフローチャートである。
まず、Webブラウザ310は、図6のステップS601で説明したように、Webサーバ20からコンテンツ(Webページ)を取得し、リンクを含む画面を表示する(ステップS1401)。
次に、Webブラウザ310は、図6のステップS602で説明したように、ユーザによるリンクの押下を受け付ける(ステップS1402)。Webブラウザ310は、リンクの押下を受け付けると、ダウンロードを示す所定のタグ名(aタグ)を検出する(ステップS1403)。
次に、Webブラウザ310は、図6のステップS604で説明したように、リンク先のコンテンツ(ファイル)のファイル形式(拡張子)が、ダウンロードする形式又はWebブラウザ310上に表示する形式のいずれであるかを判定する(ステップS1404)。ここで、ダウンロードする形式としては、例えば、「PDF」、「JPEG」、「doc」、「xls」、「zip」、「mp3」、「mp4」等の拡張子のファイル形式が挙げられる。また、Webブラウザ310上に表示する形式としては、例えば、「html」、「gif」、「png」等の拡張子のファイル形式が挙げられる。
ステップS1404において、ファイル形式がダウンロードする形式であると判定された場合、Webブラウザ310は、図6のステップS606で説明したように、当該ファイル形式が、ダウンロード後に印刷できる形式又は印刷できない形式のいずれであるかを判定する(ステップS1405)。ここで、ダウンロード後に印刷できる形式としては、例えば、「PDF」、「JPEG」、「doc」、「xls」等の拡張子のファイル形式が挙げられる。また、ダウンロード後に印刷できない形式としては、例えば、「zip」、「mp3」、「mp4」等の拡張子のファイル形式が挙げられる。
ステップS1405において、ファイル形式がダウンロード後に印刷できる形式であると判定された場合、Webブラウザ310は、図6のステップS609で説明したように、コンテンツ(ファイル)をダウンロードする(ステップS1406)。すなわち、このとき、Webブラウザ310は、コンテンツを表示しない。ただし、例えば、ビューワアプリ等の別のアプリケーションにより、当該コンテンツを表示しても良い。この場合、後述するステップS1408で印刷実行ボタンが押下された後に、当該別のアプリケーションにより当該コンテンツを表示しても良い。
次に、Webブラウザ310は、図6のステップS611で説明したように、印刷実行ボタンが含まれる画面(例えばダウンロード完了画面)を表示する(ステップS1407)。
次に、Webブラウザ310は、上記のステップS1407で表示された画面に含まれる印刷実行ボタンの押下を受け付けたか否かを判定する(ステップS1408)。なお、このとき、Webブラウザ310は、印刷設定を行うための印刷設定画面上における印刷実行ボタンの押下を受け付けても良い。
ステップS1408において、印刷実行ボタンの押下を受け付けたと判定された場合、Webブラウザ310は、図6のステップS613で説明したように、コンテンツの印刷を実行する(ステップS1409)。
ステップS1408において、印刷実行ボタンの押下を受け付けたと判定されなかった場合(例えば、印刷がキャンセルされた場合等)、Webブラウザ310は、コンテンツの印刷は実行しない(ステップS1410)。この場合、Webブラウザ310は、当該コンテンツを消去する。なお、Webブラウザ310は、印刷がキャンセルされた場合以外である場合、例えば、エラー画面等を表示しても良い。
ステップS1405において、ファイル形式がダウンロード後に印刷できない形式であると判定された場合、Webブラウザ310は、ダウンロードして所定の処理を行ってから印刷を実行する(ステップS1411)。例えば、拡張子が「zip」である場合、コンテンツ(ファイル)を解凍して、解凍後のファイルの印刷を実行する。ただし、例えば、解凍後のファイルも印刷できない形式である場合(例えば、解凍後のファイルの拡張子が「mp3」や「mp4」等である場合)、Webブラウザ310は、印刷を行わない。
ステップS1404において、ファイル形式がWebブラウザ310に表示する形式であると判定された場合、Webブラウザ310は、当該ファイル形式が、印刷する形式又は印刷しない形式のいずれであるかを判定する(ステップS1412)。ここで、印刷する形式としては、例えば、「gif」、「png」等の拡張子のファイル形式が挙げられる。また、印刷しない形式としては、例えば、「html」等の拡張子のファイル形式が挙げられる。
ステップS1412において、ファイル形式が印刷する形式であると判定された場合、Webブラウザ310は、当該コンテンツ(ファイル)をダウンロードして表示する(ステップS1413)。このとき、Webブラウザ310は、表示したコンテンツを印刷するための印刷実行ボタンも画面上に表示する。
次に、Webブラウザ310は、上記のステップS1413で表示された画面に含まれる印刷実行ボタンの押下を受け付けたか否かを判定する(ステップS1414)。なお、このとき、Webブラウザ310は、印刷設定を行うための印刷設定画面上における印刷実行ボタンの押下を受け付けても良い。
ステップS1414において、印刷実行ボタンの押下を受け付けたと判定された場合、Webブラウザ310は、コンテンツの印刷を実行する(ステップS1415)。
ステップS1414において、印刷実行ボタンの押下を受け付けたと判定されなかった場合(例えば、印刷がキャンセルされた場合等)、Webブラウザ310は、コンテンツの印刷は実行しない(ステップS1416)。この場合、Webブラウザ310は、当該コンテンツを消去する。なお、Webブラウザ310は、印刷がキャンセルされた場合以外である場合、例えば、エラー画面等を表示しても良い。
ステップS1412において、ファイル形式が印刷しない形式であると判定された場合、Webブラウザ310は、当該コンテンツ(ファイル)をダウンロードして表示する(ステップS1417)。このとき、Webブラウザ310は、上記のステップS1413と異なり、表示したコンテンツを印刷するための印刷実行ボタンは画面上に表示しない。
(実施例2)
以降では、ユーザが画像処理装置10を用いて、汎用的なHTMLを用いたWebアプリケーションにより、スキャンにより生成した画像データをメールサーバ30に送信する処理について、図15を参照しながら説明する。図15は、本実施形態に係るスキャン及びメール送信処理の一例を示すシーケンス図である。
まず、ブラウザ機能部311のUI部313は、例えば図16に示すWebページG510を表示する(ステップS2101)。図16に示すWebページG510は、Webサーバ20から取得したコンテンツ(HTMLやCSS、JavaScript等)を解釈部314が解釈することで表示される。このようなコンテンツの取得は、例えば、WebページG510を表示するためのURLを入力したり、当該URLへのリンクを押下したりすることで行うことができる。
図16に示すWebページG510には、リンク先として指定された電子メールアドレス宛にメールを送信するためのリンクG511が含まれている。ここで、ユーザがリンクG511を押下したものとする。なお、画像処理装置10のスキャナには、スキャン対象の原稿がセットされているものとする。
ブラウザ機能部311のUI部313は、ユーザによるリンクG511の押下を受け付ける(ステップS2102)。ここで、図16に示すWebページG510に含まれるリンクG511は、例えば、図17に示すように、属性「href」が設定されたaタグにより実現される。図17に示すaタグの属性「href」には、スキーム「mail to」で、電子メールアドレスが指定されている。なお、aタグには、これ以外にも、種々の属性が設定されていても良い。
ブラウザ機能部311のUI部313は、ユーザにより押下されたリンクG511を実現するaタグの解釈要求を解釈部314に送信する(ステップS2103)。
ブラウザ機能部311の解釈部314は、リンクG511を実現するaタグを解釈する(ステップS2104)。すなわち、解釈部314は、aタグを解釈することで、当該aタグの属性「href」に指定されたスキーム「mail to」からスキャン及びメール送信を特定する。
次に、ブラウザ機能部311の解釈部314は、メール送信通知を制御部312に送信する(ステップS2105)。解釈部314は、例えば、操作装置11のWebブラウザ310又はアプリケーションの内部に保持されているメール送信ライブラリのAPIをコールすることで、メール送信通知を行うことができる。又は、解釈部314は、例えば、本体装置12が保持されているメール送信プログラム(又はメール送信モジュール等)を、WebAPIを介してコールすることで、メール送信通知を行っても良い。なお、このとき、コールされるAPIの引数には、属性「href」に指定された電子メールアドレスが指定される。
制御部312は、メール送信通知を受信すると、スキャン実行及び指定された電子メールアドレスへのメール送信要求をスキャンサービス部380に送信する(ステップS2106)。なお、制御部312は、例えば、intentを用いて、スキャンサービス部380のスキャンUIアプリケーション330を呼び出すことができる。
スキャンサービス部380は、制御部312からスキャン実行及びメール送信要求を受信すると、例えば図16に示すスキャン中画面G320を表示する(ステップS1507)。図16に示すスキャン中画面G320は、スキャンUIアプリケーション330により表示される。図16に示すスキャン中画面G320が表示されることで、ユーザは、原稿がスキャン中であることを知ることができる。
次に、スキャンサービス部380は、スキャナにセットされた原稿のスキャンを実行して画像データを生成する(ステップS1508)。スキャンの実行は、スキャンUIアプリケーション330が、WebAPI340を介して、スキャンアプリケーション360に対してスキャン要求を送信することで行うことができる。これにより、スキャナにセットされた原稿から画像データが生成される。スキャンにより生成された画像データは、例えばフラッシュメモリ114内の予め指定された記憶領域に保存される。
スキャン中にエラーが発生した場合、スキャンアプリケーション360は、エラーが発生したことを示す通知をスキャンUIアプリケーション330に送信する。スキャンUIアプリケーション330は、エラーが発生したことを示す通知を受信すると、例えば、エラーが発生したことを示す画面を表示する。
なお、図16に示すスキャン中画面G320には、キャンセルボタンG321が含まれる。ユーザによりキャンセルボタンG321が押下された場合、スキャンUIアプリケーション330は、WebAPI340を介して、スキャン要求をスキャンアプリケーション360に送信する。これにより、原稿のスキャンが中止される。
ステップS1508に続いて、スキャンサービス部380は、例えば図16に示すスキャン完了及びメール送信中画面G520を表示する(ステップS2107)。そして、スキャンサービス部380のスキャンアプリケーション360は、スキャン結果(例えば、スキャンにより生成された画像データ又は当該画像データの保存先を示す情報)をメールサービス部391のメール送信アプリケーション390に送信する。
メールサービス部391のメール送信アプリケーション390は、スキャン結果を受信すると、スキャンにより生成された画像データを、aタグの属性「href」に指定された電子メールアドレス宛にメール送信する(ステップS2108)。これにより、スキャンにより生成された画像データが指定された電子メールアドレス宛にメール送信される。
なお、図16に示すスキャン完了及びメール送信中画面G520には、キャンセルボタンG521が含まれる。ユーザによりキャンセルボタンG521が押下された場合、スキャンUIアプリケーション330は、メール送信中止要求をメール送信アプリケーション390に送信する。これにより、画像データのメール送信が中止される。
スキャンアプリケーション360は、メール送信アプリケーション390にスキャン結果を送信後、メール送信完了通知をUI部313に送信する(ステップS2109)。なお、スキャンアプリケーション360は、メール送信アプリケーション390からメール送信完了通知を受信後、UI部313にメール送信完了通知を送信するようにしてもよい(この場合、Webアプリケーション側では、メール送信完了を前提として動作することが可能となる)。
ブラウザ機能部311のUI部313は、メール送信完了通知を受信すると、例えば図16に示すメール送信完了画面G530を表示する(ステップS2110)。図16に示すメール送信完了画面G530が表示されることで、ユーザは、原稿のスキャン及びスキャンにより生成された画像データのメール送信が完了したことを知ることができる。
以上のように、本実施形態に係る画像処理装置10は、汎用的なHTMLタグであるaタグで実現されるリンクがユーザにより押下された場合に、スキャナにより原稿を読み取って画像データを生成し、生成した画像データをメール送信することができる。このように、本実施形態に係る画像処理装置10では、スキャン機能を実現するための専用のHTMLタグを用いずに、当該スキャン機能が実現される。
したがって、例えば、Webサーバ20が提供するWebアプリケーションの開発者等は、専用のJavaScriptやHTML等の知識を必要とすることなく、画像処理装置10特有の画像処理機能を実現させるWebアプリケーションを開発することができる。
(実施例2の他の例(その1))
次に、スキャン処理の他の例(その1)について、図18を参照しながら説明する。図18は、本実施形態に係るスキャン処理の他の例(その1)を示すシーケンス図である。以下、図15の実施例2と異なる点を説明する。
ステップS2106に続いて、スキャンサービス部380は、制御部312からスキャン実行及びメール送信要求を受信すると、例えば図19に示すスキャン設定画面G410を表示する(ステップS1801)。図19に示すスキャン設定画面G410は、スキャンUIアプリケーション330により表示される。
図19に示すスキャン設定画面G410には、スキャン設定欄G411と、スキャン実行ボタンG412とが含まれる。ユーザは、スキャン設定欄G411において、例えば、「原稿種類」、「解像度」、「原稿セット方向」、「原稿面」、「読み取りサイズ」、「ファイル形式」等の種々のスキャン設定を指定することができる。ここで、ユーザがスキャン設定欄G411においてスキャン設定を指定する操作(スキャン設定操作)を行った上で、スキャン実行ボタンG412を押下したものとする。
スキャンサービス部380は、ユーザによるスキャン設定操作及びスキャン実行ボタンG412の押下を受け付ける(ステップS1802)。スキャン設定操作及びスキャン実行ボタンG412の押下は、スキャンUIアプリケーション330により受け付けられる。これにより、ステップS1508において、ユーザにより指定されたスキャン設定で原稿がスキャンされる。
図20は、本実施形態に係る汎用HTMLタグの解釈に基づく画像処理の一例を示すシーケンス図である。
ステップS1において、UI部313は、ユーザによるWebページ上のリンクの押下を受け付ける。
ステップS2において、UI部313は、解釈部314に、S1で押下されたリンクに対応するHTMLタグの解釈を要求する。
ステップS3において、解釈部314は、S2で要求されたHTMLタグを解釈する。具体的には、解釈部314は、アンカータグ(aタグ)の属性「href」が「mail to」で開始しているか否かを判断する。
ステップS4において、解釈部314は、S3でアンカータグ(aタグ)の属性「href」が「mail to」で開始している場合、「mail to」以降の文字列(つまり、電子メールアドレス)を抽出する。
ステップS5において、解釈部314は、上述したメール送信通知を制御部312に通知する。
ステップS6において、制御部312は、スキャン実行及びメール送信をスキャンUIアプリケーション330に要求する。この際、制御部312は、パラメータとしてS3で抽出した電子メールアドレスを付与する。
ステップS7において、スキャンUIアプリケーション330は、スキャンの実行をスキャンアプリケーション360に要求する。この際、制御部312は、パラメータとしてS3で抽出した電子メールアドレスを付与する。
ステップS8において、スキャンアプリケーション360は、S7で要求されたスキャンを実行して、画像データを生成する。
ステップS9において、スキャンアプリケーション360は、S8でスキャンにより生成した画像データのメール送信をメール送信アプリケーション390に要求する。
ステップS10において、メール送信アプリケーション390は、S9で要求されたメール送信を行う。つまり、メール送信アプリケーション390は、S8でスキャンにより生成した画像のデータを、S6でパラメータとして付与された電子メールアドレス宛にメール送信する。
なお、ステップS3においてアンカータグ(aタグ)の属性「href」が「mail to」で開始しない場合、(実施例1)で説明した処理が実行されうる。例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能なファイルである場合(例えば、拡張子がhtmlやimg、pdf等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能でないファイルである場合(例えば、拡張子がzip等である場合)には、ダウンロード通知となる。そして、制御部312は、ダウンロード通知を受け取った場合、ダウンロード対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。一方で、制御部312は、表示通知を受け取った場合、表示対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。
次に、スキャン及びメール送信処理の実行時におけるWebブラウザ310の動作の一例について、図21を参照しながら説明する。図21は、スキャン及びメール送信処理の実行時におけるWebブラウザ310の動作の一例を示すフローチャートである。
まず、Webブラウザ310は、図15のステップS2101で説明したように、Webサーバ20からコンテンツ(Webページ)を取得し、リンクを含む画面を表示する(ステップS2401)。
次に、Webブラウザ310は、図15のステップS2102で説明したように、ユーザによるリンクの押下を受け付ける(ステップS2402)。Webブラウザ310は、リンクの押下を受け付けると、メール送信に関する所定のタグ(aタグ)を検出する(ステップS2403)。Webブラウザ310は、aタグを検出すると、図15のステップS2105で説明したように、メール送信通知を行う(ステップS2404)。
次に、Webブラウザ310は、図15のステップS2106で説明したように、スキャン実行及びメール送信要求を行う(ステップS2405)。
その後、図15のステップS1508で説明したように、スキャンアプリケーション360が、スキャンを実行して画像データを生成する。そして、図15のステップS2108で説明したように、メール送信アプリケーション390が、スキャンにより生成した画像データをメール送信する(ステップS2406)。
<アンカータグの例>
以下、スキャン及びメール送信処理において用いられうるアンカータグ(aタグ)の例である。
<他のソフトウェア構成例>
次に、本実施形態に係る画像処理システム1に含まれる画像処理装置10及び情報処理装置40のソフトウェア構成の他の例について、図22を参照しながら説明する。図22は、本実施形態に係る画像処理システム1のソフトウェア構成の他の例を示す図である。
図22に示すように、本実施形態に係る画像処理装置10の操作装置11は、印刷UIアプリケーション320、スキャンUIアプリケーション330、メールUIアプリケーション392の代わりに、操作部APIアプリケーション400を有していても良い。
操作部APIアプリケーション400は、印刷やスキャン等の画像処理に関するUIを提供するアプリケーションプログラムである。操作部APIアプリケーション400は、印刷UIアプリケーション320、スキャンUIアプリケーション330、メールUIアプリケーション392等の画像処理に関するUIを提供するアプリケーションと同様の機能を有する。
したがって、図22に示すソフトウェア構成の場合、上記で説明した実施例1及び実施例2において、印刷UIアプリケーション320、スキャンUIアプリケーション330、メールUIアプリケーション392を操作部APIアプリケーション400と読み替えれば良い。操作部APIアプリケーション400を用いることで、印刷やスキャン等の種々の画像処理に関するUIを統一的に提供することができる。
また、操作部APIアプリケーション400は、画像処理に関するUIを提供するアプリケーションをサードベンダ等が開発するためのAPI群を備えている。サードベンダ等は、操作部APIアプリケーション400のAPI群を利用することで、WebAPI340の仕様に関する知識を必要とすることなく、画像に関するUIを提供するアプリケーションを容易に開発することができるようになる。すなわち、操作部APIアプリケーション400は、WebAPI340をラッピングしたAPI群をサードベンダ等に提供するアプリケーションプログラムとも言うことができる。
なお、図22に示すソフトウェア構成では、操作装置11が、印刷UIアプリケーション320、スキャンUIアプリケーション330、メールUIアプリケーション392の代わりに、操作部APIアプリケーション400を有している構成を示したが、これに限られない。操作装置11は、印刷UIアプリケーション320、スキャンUIアプリケーション330、メールUIアプリケーション392に加えて、操作部APIアプリケーション400を有していても良い。
本発明の一実施形態は、例えば、店舗のホームページ等で顧客からメールにて問い合わせを受ける場合に利用可能である。問い合わせにおいて手書きの情報を載せたい場合、従来であればその手書きの情報を写真等で電子化のうえメールに添付する必要があったが、本発明の一実施形態であれば、手書きの情報をスキャンしてメールに添付することができる。
<実施形態2>
複合機(MFP:Multifunction Peripheral)等の画像処理装置において、Webブラウザ上で動作するWebアプリケーションを利用して、印刷やスキャン等の各種画像処理機能を実現する技術が従来から知られている(例えば特許文献1参照)。
ところで、上述したような印刷やスキャン等の各種画像処理機能は、複合機等の画像処理装置特有の機能である。このような画像処理装置特有の機能を実現させるWebアプリケーションでは、画像処理装置専用のJavaScript(登録商標)を用いてHTML(HyperText Markup Language)が記述されている必要がある。
一方で、スマートフォンやタブレット端末、PC(パーソナルコンピュータ)等の情報処理装置が利用するWebアプリケーションでは、汎用的なHTMLで記述されている。汎用的なHTMLでは、上述したような印刷やスキャン等の画像処理装置特有の機能を実現させるためのHTMLタグ等が用意されていない。
このため、汎用的なHTMLを用いたWebアプリケーションでは、印刷やスキャン等の画像処理装置特有の機能を実現させることが困難であった。
本発明の実施の形態は、上記の点に鑑みてなされたものであり、汎用的なHTMLを利用して画像処理装置特有の機能を実現させることを目的とする。
本発明の実施の形態によれば、汎用的なHTMLを利用して画像処理装置特有の機能を実現させることができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
<全体構成例>
まず、本実施形態に係る画像処理システム1の全体構成について、図23を参照しながら説明する。図23は、本実施形態に係る画像処理システム1の全体構成の一例を示す図である。
図23に示すように、本実施形態に係る画像処理システム1には、1以上の画像処理装置10と、1以上のWebサーバ20と、1以上のファクス受信機30と、情報処理装置40とが含まれる。また、画像処理装置10とWebサーバ20とは、例えばインターネット等の広域的なネットワークNを介して通信可能に接続されている。また、画像処理装置10とファクス受信機30とは、例えば電話回線やインターネット等のネットワークNを介して通信可能に接続されている。
画像処理装置10は、Webブラウザが搭載された複合機等の電子機器である。画像処理装置10のユーザは、Webサーバ20が提供するWebアプリケーションを利用して、例えば、Webサーバ20からダウンロードした電子データを印刷したり、スキャンにより生成した画像データをファクス受信機30にファクス送信したりすることができる。
Webサーバ20は、ネットワークNを介して、汎用的なHTMLを用いたWebアプリケーションを提供するコンピュータ又はコンピュータシステムである。汎用的なHTMLとは、W3C(World Wide Web Consortium)で規定されたHTML5やHTML 5.1等のことである。また、汎用的とは、例えば画像処理装置等の機器でのみ解釈可能や処理可能なように定義されたコンテンツ(拡張HTMLや拡張JavaScript等の拡張されたコンテンツ)とは異なり、汎用Webブラウザであれば機器の種類を問わず解釈や処理が可能なコンテンツを指す。汎用HTMLは、個人端末であるPCや携帯端末、スマートフォン等で利用可能であり、一般的なWebサーバやWebアプリケーションに共通して用いられている。
Webサーバ20によりWebアプリケーションが提供されることで、種々のWebサービスが実現される。このようなWebサービスとしては、例えば、クラウドストレージサービス、SNS(Social Networking Service)、クラウドプリントサービス、ブログサービス、掲示板サービス、オンラインゲームサービス、オンラインショッピングサービス等が挙げられる。
ファクス受信機30は、電話回線やインターネット等のネットワークNを介して、画像処理装置10がファクス送信した画像データを受信する機器(ファクシミリ、FAXとも呼ばれる)である。なお、ファクス受信機30は、電話回線を用いるファクスに限られず、インターネットを用いるインターネットファクスであっても良い。
情報処理装置40は、Webブラウザが搭載されたPC(パーソナルコンピュータ)やスマートフォン、タブレット端末等である。
なお、図23に示す画像処理システム1の構成は一例であって、他の構成であっても良い。例えば、画像処理装置10は、複合機に限られず、例えば、デジタルカメラ、印刷装置、スキャナ装置、コピー機、プロジェクタ、ファクシミリ、電子会議用端末、電子黒板装置等であっても良い。すなわち、画像処理装置10は、Webサーバ20との間でデータの入力及び出力の少なくとも一方を行う電子機器であれば良い。また、例えば、画像処理システム1には、情報処理装置40が含まれていなくても良い。
<画像処理装置10のハードウェア構成例>
本実施形態に係る画像処理装置10のハードウェア構成については<実施形態1>と同様であるので説明を省略する。
<画像処理装置10のソフトウェア群の階層構造>
本実施形態に係る画像処理装置10の操作装置11及び本体装置12に含まれるソフトウェア群の階層構造については<実施形態1>と同様であるので説明を省略する。
<情報処理装置40のハードウェア構成例>
本実施形態に係る情報処理装置40のハードウェア構成については<実施形態1>と同様であるので説明を省略する。
<ソフトウェア構成例>
次に、本実施形態に係る画像処理システム1に含まれる画像処理装置10及び情報処理装置40のソフトウェア構成について、図24を参照しながら説明する。図24は、本実施形態に係る画像処理システム1のソフトウェア構成の一例を示す図である。
≪画像処理装置10≫
図24に示すように、本実施形態に係る画像処理装置10の操作装置11は、Webブラウザ310と、印刷UIアプリケーション320と、スキャンUIアプリケーション330とを有する。これらWebブラウザ310、印刷UIアプリケーション320及びスキャンUIアプリケーション330は、CPU111により実行される。
また、本実施形態に係る画像処理装置10の本体装置12は、WebAPI340と、印刷アプリケーション350と、スキャンアプリケーション360と、ファクス送信アプリケーション390とを有する。これらWebAPI340、印刷アプリケーション350、スキャンアプリケーション360、ファクス送信アプリケーション390は、CPU121により実行される。
Webブラウザ310は、Webサーバ20からWebコンテンツ(例えば、HTML、CSS(Cascading Style Sheets)、JavaScript、各種電子ファイル等)を取得することで、Webアプリケーションを実現する。
例えば、Webブラウザ310は、SNSを提供するWebサーバ20からWebコンテンツを取得することで、SNSの閲覧やSNS上でのファイル共有等を行うWebアプリケーションを実現する。また、例えば、Webブラウザ310は、クラウドストレージサービスを提供するWebサーバ20からWebコンテンツを取得することで、ストレージの閲覧やストレージへのファイルのアップロード等を行うWebアプリケーションを実現する。
なお、Webアプリケーションは、一般に、Webサーバ20から取得したJavaScript等のコンテンツをWebブラウザ310上で動作させて、Webサーバ20と協働した処理を実行させることで実現される。
Webブラウザ310には、ブラウザ機能部311と、制御部312とが含まれる。なお、以降では、Webコンテンツを単に「コンテンツ」とも表す。
ブラウザ機能部311は、コンテンツの解釈及び表示等を行う。ブラウザ機能部311には、UI部313と、解釈部314とが含まれる。解釈部314は、UI部313により表示されたWebページ上でリンクが押下された場合、当該リンクに対応するHTMLタグを解釈して、制御部312に対して解釈結果に応じた通知を行う。
UI部313は、Webサーバ20から取得したコンテンツに応じたWebページ等を表示する。また、UI部313は、Webページ上におけるユーザの各種操作(例えば、リンク押下)等を受け付ける。なお、ブラウザ機能部311は、例えば、WebView等を用いて実現することができる。
制御部312は、ブラウザ機能部311の解釈部314からの通知に応じて、画像処理装置10の画像処理機能を実行させる制御を行う。例えば、リンク先のコンテンツをWebサーバ20からダウンロードすることを示すダウンロード通知を解釈部314から受け取った場合、制御部312は、当該コンテンツをダウンロードして印刷する制御を行う。また、例えば、リンク先のコンテンツを表示させることを示す表示通知を解釈部314から受け取った場合であっても、当該コンテンツが所定の形式(例えば、JPEG形式)である場合、制御部312は、当該コンテンツをダウンロードして印刷する制御を行う。
なお、Webブラウザ310は、Webアプリケーションを実現するブラウザ機能部311と、画像処理装置10の画像処理機能を制御する制御部312とを備えるため、いわゆるハイブリッドアプリケーションと言うこともできる。Webブラウザ310は、例えば、Java(登録商標)等のプログラミング言語で実装される。すなわち、Webブラウザ310を構成するブラウザアプリケーションは、その基礎部分がJavaアプリケーションプログラムから構成されている。このJavaアプリケーションが、操作装置11が提供するAPIを用いて、操作装置11が備えるブラウザ機能部311(例えば、WebView)を呼び出すことで、解釈部314及びUI部313を含むWebブラウザ310を構成している。基礎部分であるJavaアプリケーションプログラムは、制御部312を含み、この制御部312が制御を行うことで、Webコンテンツ解釈後の動作に柔軟性を持たせ、汎用的なHTMLで可能な動作(ダウンロード及びアップロード)だけでなく、画像処理(プリント、スキャン、ファクス送信)動作の要求ができるようになっている。
印刷UIアプリケーション320は、印刷に関するUI(ユーザインタフェース)を提供するアプリケーションプログラムである。印刷UIアプリケーション320は、例えば、印刷実行中であることを示す画面や印刷が完了したことを示す画面等を表示する。
また、印刷UIアプリケーション320は、制御部312からの要求に応じて、WebAPI340を介して、印刷アプリケーション350に対して印刷の実行を要求する。
スキャンUIアプリケーション330は、スキャンに関するUIを提供するアプリケーションプログラムである。スキャンUIアプリケーション330は、例えば、スキャン中であることを示す画面やスキャンが完了したことを示す画面、スキャンにより生成した画像データのファクス送信中であることを示す画面やファクス送信が完了したことを示す画面等を表示する。
また、スキャンUIアプリケーション330は、制御部312からの要求に応じて、WebAPI340を介して、スキャンアプリケーション360に対してスキャンの実行及びスキャンにより生成した画像データのファクス送信を要求する。
WebAPI340は、印刷UIアプリケーション320やスキャンUIアプリケーション330が画像処理の実行を要求するためのAPI(Application Programming Interface)である。
印刷アプリケーション350は、印刷UIアプリケーション320からの要求に応じて、画像処理エンジン125を制御して、印刷を実行する。
スキャンアプリケーション360は、スキャンUIアプリケーション330からの要求に応じて、画像処理エンジン125を制御して、スキャンを実行する。また、スキャンアプリケーション360は、ファクス送信アプリケーション390に対して、スキャンにより生成した画像データのファクス送信を要求する。
ファクス送信アプリケーション390は、スキャンアプリケーション360からの要求に応じて、画像処理エンジン125を制御して、ファクス送信を実行する。
以降では、印刷UIアプリケーション320と、WebAPI340と、印刷アプリケーション350とを「印刷サービス部370」と表す。また、スキャンUIアプリケーション330と、WebAPI340と、スキャンアプリケーション360と、ファクス送信アプリケーション390とを「スキャンサービス部380」と表す。
なお、操作装置11には、例えば、コピーに関するUIを提供するアプリケーションやFAXに関するUIを提供するアプリケーション、OCR(Optical Character Recognition)に関するUIを提供するアプリケーション等が含まれていても良い。また、本体装置12には、例えば、コピーを実行するアプリケーションやFAXを実行するアプリケーション、OCRを実現するアプリケーション等が含まれていても良い。したがって、画像処理装置10には、例えば、コピーサービス部やFAXサービス部、OCRサービス等の様々な画像処理サービス部が含まれていても良い。
また、画像処理装置10には、画像処理サービス部以外にも、例えば、画像処理装置10が保持するアドレス帳に関する処理を実行するアドレス帳サービス部、ユーザが画像処理装置10を利用するための認証に関する処理を実行する認証サービス部等が含まれる。
≪情報処理装置40≫
図24に示すように、本実施形態に係る情報処理装置40は、Webブラウザ410を有する。Webブラウザ410は、CPU36により実行される。
Webブラウザ410には、UI部411と、解釈部412とが含まれる。UI部411は、Webサーバ20から取得したコンテンツに応じたWebページ等を表示する。また、UI部411は、Webページ上におけるユーザの各種操作(例えば、リンク押下)等を受け付ける。
解釈部412は、UI部411により表示されたWebページ上でリンクが押下された場合、当該リンクに対応するHTMLを解釈して、UI部411に対して解釈結果に応じた通知を行う。
<画像処理装置10及び情報処理装置40の動作比較>
情報処理装置40に搭載されたWebブラウザ410のUI部411は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部412は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、UI部411に対して解釈結果に応じた通知(表示通知又はダウンロード通知)を行う。例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能なファイルである場合(例えば、拡張子がhtmlやimg、pdf等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能でないファイルである場合(例えば、拡張子がzip等である場合)には、ダウンロード通知となる。ただし、例えば、aタグの属性「href」に指定されているファイルの拡張子がpdf等のWebブラウザ410で表示可能なファイルの拡張子であっても、属性「download」が指定されている場合には、ダウンロード通知となる。
そして、Webブラウザ410のUI部411は、表示通知を受け取った場合、ファイルを表示する。一方で、Webブラウザ410のUI部411は、ダウンロード通知を受け取った場合、例えば、ファイルをダウンロードするための画面(例えば、ダウンロードの開始又はキャンセルをユーザが選択するための画面)を表示する。
一方で、画像処理装置10に搭載されたWebブラウザ310のUI部313は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部314は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、制御部312に対して解釈結果に応じた通知(表示通知又はダウンロード)を行う。これは、情報処理装置40と同様に、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ310で表示可能なファイルである場合(例えば、拡張子がhtmlやimg、pdf等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ310で表示可能でないファイルである場合(例えば、拡張子がzip等である場合)には、ダウンロード通知となる。
そして、制御部312は、ダウンロード通知を受け取った場合、ダウンロード対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。一方で、制御部312は、表示通知を受け取った場合、表示対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。
このように、画像処理装置10に搭載されたWebブラウザ310は、情報処理装置40のWebブラウザ410でダウンロード対象又は表示対象と解釈されるファイルが印刷可能である場合、当該ファイルを印刷させるための制御を行う。これにより、画像処理装置10では、汎用的なHTMLを用いたWebアプリケーションにより、コンテンツのダウンロード及び印刷を行うことができる。
また、情報処理装置40に搭載されたWebブラウザ410のUI部411は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部412は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、UI部411に対して解釈結果に応じた通知(電話発信通知)を行う。この電話発信通知は、aタグの属性「href」においてスキーム「tel」で指定された電話番号に架電させる通知である。
そして、Webブラウザ410のUI部411は、電話発信通知を受け取った場合、指定された電話番号に架電するよう処理を実行する。
一方で、画像処理装置10に搭載されたWebブラウザ310のUI部313は、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作を受け付ける。次に、解釈部314は、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、制御部312に対して解釈結果に応じた通知(ファクス送信通知)を行う。このファクス送信通知は、aタグの属性「href」においてスキーム「tel」で指定された電話番号へ、スキャンにより生成した画像データをファクス送信させる通知である。
そして、制御部312は、ファクス送信通知を受け取った場合、スキャンにより画像データを生成するように制御した上で、生成された画像データを指定された電話番号にファクス送信する。
このように、画像処理装置10に搭載されたWebブラウザ310は、情報処理装置40のWebブラウザ410で電話の発信先と解釈される電話番号宛へ、スキャンにより生成した画像データをファクス送信する。これにより、画像処理装置10では、汎用的なHTMLを用いたWebアプリケーションにより、画像データの生成及びファクス送信を行うことができる。
<処理の詳細>
次に、本実施形態に係る画像処理システム1の処理の詳細について説明する。
(実施例1)
実施例1については<実施形態1>と同様であるので説明を省略する。
(実施例2)
以降では、ユーザが画像処理装置10を用いて、汎用的なHTMLを用いたWebアプリケーションにより、スキャンにより生成した画像データをファクス受信機30に送信する処理について、図25を参照しながら説明する。図25は、本実施形態に係るスキャン及びファクス送信処理の一例を示すシーケンス図である。
まず、ブラウザ機能部311のUI部313は、例えば図26に示すWebページG510を表示する(ステップS2101)。図26に示すWebページG510は、Webサーバ20から取得したコンテンツ(HTMLやCSS、JavaScript等)を解釈部314が解釈することで表示される。このようなコンテンツの取得は、例えば、WebページG510を表示するためのURLを入力したり、当該URLへのリンクを押下したりすることで行うことができる。
図26に示すWebページG510には、リンク先として指定された電話番号宛にファクスを送信するためのリンクG511が含まれている。ここで、ユーザがリンクG511を押下したものとする。なお、画像処理装置10のスキャナには、スキャン対象の原稿がセットされているものとする。
ブラウザ機能部311のUI部313は、ユーザによるリンクG511の押下を受け付ける(ステップS2102)。ここで、図26に示すWebページG510に含まれるリンクG511は、例えば、図27に示すように、属性「href」が設定されたaタグにより実現される。図27に示すaタグの属性「href」には、スキーム「tel」で、電話番号が指定されている。なお、aタグには、これ以外にも、種々の属性が設定されていても良い。
ブラウザ機能部311のUI部313は、ユーザにより押下されたリンクG511を実現するaタグの解釈要求を解釈部314に送信する(ステップS2103)。
ブラウザ機能部311の解釈部314は、リンクG511を実現するaタグを解釈する(ステップS2104)。すなわち、解釈部314は、aタグを解釈することで、当該aタグの属性「href」に指定されたスキーム「tel」からスキャン及びファクス送信を特定する。
次に、ブラウザ機能部311の解釈部314は、ファクス送信通知を制御部312に送信する(ステップS2105)。解釈部314は、例えば、操作装置11のWebブラウザ310又はアプリケーションの内部に保持されているファクス送信ライブラリのAPIをコールすることで、ファクス送信通知を行うことができる。又は、解釈部314は、例えば、本体装置12が保持されているファクス送信プログラム(又はファクス送信モジュール等)を、WebAPIを介してコールすることで、ファクス送信通知を行っても良い。なお、このとき、コールされるAPIの引数には、属性「href」に指定された電話番号が指定される。
制御部312は、ファクス送信通知を受信すると、スキャン実行及び指定された電話番号へのファクス送信要求をスキャンサービス部380に送信する(ステップS2106)。なお、制御部312は、例えば、intentを用いて、スキャンサービス部380のスキャンUIアプリケーション330を呼び出すことができる。
スキャンサービス部380は、制御部312からスキャン実行及びファクス送信要求を受信すると、例えば図26に示すスキャン中画面G320を表示する(ステップS1507)。図26に示すスキャン中画面G320は、スキャンUIアプリケーション330により表示される。図26に示すスキャン中画面G320が表示されることで、ユーザは、原稿がスキャン中であることを知ることができる。
次に、スキャンサービス部380は、スキャナにセットされた原稿のスキャンを実行して画像データを生成する(ステップS1508)。スキャンの実行は、スキャンUIアプリケーション330が、WebAPI340を介して、スキャンアプリケーション360に対してスキャン要求を送信することで行うことができる。これにより、スキャナにセットされた原稿から画像データが生成される。スキャンにより生成された画像データは、例えばフラッシュメモリ114内の予め指定された記憶領域に保存される。
スキャン中にエラーが発生した場合、スキャンアプリケーション360は、エラーが発生したことを示す通知をスキャンUIアプリケーション330に送信する。スキャンUIアプリケーション330は、エラーが発生したことを示す通知を受信すると、例えば、エラーが発生したことを示す画面を表示する。
なお、図26に示すスキャン中画面G320には、キャンセルボタンG321が含まれる。ユーザによりキャンセルボタンG321が押下された場合、スキャンUIアプリケーション330は、WebAPI340を介して、スキャン要求をスキャンアプリケーション360に送信する。これにより、原稿のスキャンが中止される。
ステップS1508に続いて、スキャンサービス部380は、例えば図26に示すスキャン完了及びファクス送信中画面G520を表示する(ステップS2107)。そして、スキャンサービス部380のスキャンアプリケーション360は、スキャン結果(例えば、スキャンにより生成された画像データ又は当該画像データの保存先を示す情報)をファクス送信アプリケーション390に送信する。
ファクス送信アプリケーション390は、スキャン結果を受信すると、スキャンにより生成された画像データを、aタグの属性「href」に指定された電話番号宛にファクス送信する(ステップS2108)。これにより、スキャンにより生成された画像データが指定された電話番号宛にファクス送信される。なお、ファクス送信アプリケーション390は、ファクス送信のための複数の送信回線(例えば、電話回線、インターネットなど)の中から選択した送信回線を用いるようにしてもよい。
なお、図26に示すスキャン完了及びファクス送信中画面G520には、キャンセルボタンG521が含まれる。ユーザによりキャンセルボタンG521が押下された場合、スキャンUIアプリケーション330は、ファクス送信中止要求をファクス送信アプリケーション390に送信する。これにより、画像データのファクス送信が中止される。
ファクス送信アプリケーション390は、ファクス送信が完了すると、ファクス送信完了通知をUI部313に送信する(ステップS2109)。
ブラウザ機能部311のUI部313は、ファクス送信完了通知を受信すると、例えば図26に示すファクス送信完了画面G530を表示する(ステップS2110)。図26に示すファクス送信完了画面G530が表示されることで、ユーザは、原稿のスキャン及びスキャンにより生成された画像データのファクス送信が完了したことを知ることができる。なお、画像処理装置10は、スキャンにより生成された画像データのファクス送信の履歴を記録して用紙に印刷することもできる。
以上のように、本実施形態に係る画像処理装置10は、汎用的なHTMLタグであるaタグで実現されるリンクがユーザにより押下された場合に、スキャナにより原稿を読み取って画像データを生成し、生成した画像データをファクス送信することができる。このように、本実施形態に係る画像処理装置10では、スキャン機能を実現するための専用のHTMLタグを用いずに、当該スキャン機能が実現される。
したがって、例えば、Webサーバ20が提供するWebアプリケーションの開発者等は、専用のJavaScriptやHTML等の知識を必要とすることなく、画像処理装置10特有の画像処理機能を実現させるWebアプリケーションを開発することができる。
(実施例2の他の例(その1))
次に、スキャン処理の他の例(その1)について、図28を参照しながら説明する。図28は、本実施形態に係るスキャン処理の他の例(その1)を示すシーケンス図である。以下、図25の実施例2と異なる点を説明する。
ステップS2106に続いて、スキャンサービス部380は、ブラウザ機能部311からスキャン実行及びファクス送信要求を受信すると、例えば図29に示すスキャン設定画面G410を表示する(ステップS1801)。図29に示すスキャン設定画面G410は、スキャンUIアプリケーション330により表示される。
図29に示すスキャン設定画面G410には、スキャン設定欄G411と、スキャン実行ボタンG412とが含まれる。ユーザは、スキャン設定欄G411において、例えば、「原稿種類」、「解像度」、「原稿セット方向」、「原稿面」、「読み取りサイズ」、「ファイル形式」等の種々のスキャン設定を指定することができる。ここで、ユーザがスキャン設定欄G411においてスキャン設定を指定する操作(スキャン設定操作)を行った上で、スキャン実行ボタンG412を押下したものとする。
スキャンサービス部380は、ユーザによるスキャン設定操作及びスキャン実行ボタンG412の押下を受け付ける(ステップS1802)。スキャン設定操作及びスキャン実行ボタンG412の押下は、スキャンUIアプリケーション330により受け付けられる。これにより、ステップS1508において、ユーザにより指定されたスキャン設定で原稿がスキャンされる。
図30は、本実施形態に係る汎用HTMLタグの解釈に基づく画像処理の一例を示すシーケンス図である。
ステップS1において、UI部313は、ユーザによるWebページ上のリンクの押下を受け付ける。
ステップS2において、UI部313は、解釈部314に、S1で押下されたリンクに対応するHTMLタグの解釈を要求する。
ステップS3において、解釈部314は、S2で要求されたHTMLタグを解釈する。具体的には、解釈部314は、アンカータグ(aタグ)の属性「href」が「tel」で開始しているか否かを判断する。
ステップS4において、解釈部314は、S3でアンカータグ(aタグ)の属性「href」が「tel」で開始している場合、「tel」以降の文字列(つまり、電話番号)を抽出する。
ステップS5において、解釈部314は、上述したファクス送信通知を制御部312に通知する。
ステップS6において、制御部312は、スキャン実行及びファクス送信をスキャンUIアプリケーション330に要求する。この際、制御部312は、パラメータとしてS3で抽出した電話番号を付与する。
ステップS7において、スキャンUIアプリケーション330は、スキャンの実行をスキャンアプリケーション360に要求する。この際、制御部312は、パラメータとしてS3で抽出した電話番号を付与する。
ステップS8において、スキャンアプリケーション360は、S7で要求されたスキャンを実行して、画像データを生成する。
ステップS9において、スキャンアプリケーション360は、S8でスキャンにより生成した画像データのファクス送信をファクス送信アプリケーション390に要求する。
ステップS10において、ファクス送信アプリケーション390は、S9で要求されたファクス送信を行う。つまり、ファクス送信アプリケーション390は、S8でスキャンにより生成した画像のデータを、S6でパラメータとして付与された電話番号宛にファクス送信する。
なお、ステップS3においてアンカータグ(aタグ)の属性「href」が「tel」で開始しない場合、(実施例1)で説明した処理が実行されうる。例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能なファイルである場合(例えば、拡張子がhtmlやimg、pdf等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能でないファイルである場合(例えば、拡張子がzip等である場合)には、ダウンロード通知となる。そして、制御部312は、ダウンロード通知を受け取った場合、ダウンロード対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。一方で、制御部312は、表示通知を受け取った場合、表示対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。
次に、スキャン及びファクス送信処理の実行時におけるWebブラウザ310の動作の一例について、図31を参照しながら説明する。図31は、スキャン及びファクス送信処理の実行時におけるWebブラウザ310の動作の一例を示すフローチャートである。
まず、Webブラウザ310は、図25のステップS2101で説明したように、Webサーバ20からコンテンツ(Webページ)を取得し、リンクを含む画面を表示する(ステップS2401)。
次に、Webブラウザ310は、図25のステップS2102で説明したように、ユーザによるリンクの押下を受け付ける(ステップS2402)。Webブラウザ310は、リンクの押下を受け付けると、電話発信に関する所定のタグ(aタグ)を検出する(ステップS2403)。Webブラウザ310は、aタグを検出すると、図25のステップS2105で説明したように、ファクス送信通知を行う(ステップS2404)。
次に、Webブラウザ310は、図25のステップS2106で説明したように、スキャン実行及びファクス送信要求を行う(ステップS2405)。
その後、図25のステップS1508で説明したように、スキャンアプリケーション360が、スキャンを実行して画像データを生成する。そして、図25のステップS2108で説明したように、ファクス送信アプリケーション390が、スキャンにより生成した画像データをファクス送信する(ステップS2406)。
<他のソフトウェア構成例>
次に、本実施形態に係る画像処理システム1に含まれる画像処理装置10及び情報処理装置40のソフトウェア構成の他の例について、図32を参照しながら説明する。図32は、本実施形態に係る画像処理システム1のソフトウェア構成の他の例を示す図である。
図32に示すように、本実施形態に係る画像処理装置10の操作装置11は、印刷UIアプリケーション320及びスキャンUIアプリケーション330の代わりに、操作部APIアプリケーション400を有していても良い。
操作部APIアプリケーション400は、印刷やスキャン等の画像処理に関するUIを提供するアプリケーションプログラムである。操作部APIアプリケーション400は、印刷UIアプリケーション320やスキャンUIアプリケーション330等の画像処理に関するUIを提供するアプリケーションと同様の機能を有する。
したがって、図32に示すソフトウェア構成の場合、上記で説明した実施例1及び実施例2において、印刷UIアプリケーション320及びスキャンUIアプリケーション330を操作部APIアプリケーション400と読み替えれば良い。操作部APIアプリケーション400を用いることで、印刷やスキャン等の種々の画像処理に関するUIを統一的に提供することができる。
また、操作部APIアプリケーション400は、画像処理に関するUIを提供するアプリケーションをサードベンダ等が開発するためのAPI群を備えている。サードベンダ等は、操作部APIアプリケーション400のAPI群を利用することで、WebAPI340の仕様に関する知識を必要とすることなく、画像に関するUIを提供するアプリケーションを容易に開発することができるようになる。すなわち、操作部APIアプリケーション400は、WebAPI340をラッピングしたAPI群をサードベンダ等に提供するアプリケーションプログラムとも言うことができる。
なお、図32に示すソフトウェア構成では、操作装置11が、印刷UIアプリケーション320及びスキャンUIアプリケーション330の代わりに、操作部APIアプリケーション400を有している構成を示したが、これに限られない。操作装置11は、印刷UIアプリケーション320及びスキャンUIアプリケーション330に加えて、操作部APIアプリケーション400を有していても良い。
本発明の一実施形態は、例えば、次のようなシーンで利用可能である。店舗サイト等のWebアプリケーションをMFP等の画像処理装置10の操作装置11のWebブラウザ310で開いた際に掲載されているファクス番号へ、画像処理装置10の操作装置11から簡単にスキャン及びファクス送信することができる。また、取引先のWebページに掲載されているファクス番号に見積書をファクス送信するなどの作業が簡単になる。これによって、例えば、MFPなどの画像処理装置10でのジョブ実行を意識せずに作成されたWebページを画像処理装置10の操作装置11のWebブラウザ310に表示したときでも、ユーザは簡単にジョブの実行を指示可能になる。また、Webページの開発者は、MFP等の画像処理装置10にジョブ実行させる専用のWebページを作成しなくても、画像処理装置10とWebページ(Webアプリケーション)とが連携することができる。
<実施形態3>
近年、MFP(Multifunction Peripheral:複合機)等の画像形成装置において、操作パネルにWebブラウザがインストールされ、Webサーバから受信したコンテンツ等を表示する技術が知られている。ここで、MFPとは、コピー機能、プリンタ機能、スキャナ機能、およびファックス機能のうち少なくとも2つの機能を有する複合機である。
このような、操作パネルにWebブラウザがインストールされたMFPとして、Webブラウザ上で動作するWebアプリケーションを利用して、印刷およびスキャン等の各種画像形成機能を実現する技術が開示されている。
しかしながら、Webブラウザ上で動作するWebアプリケーションを利用して、印刷およびスキャン等の各種画像形成機能を実現するためには、画像形成機能特有のJavaScript(登録商標)等を用いてHTML(HyperText Markup Language)を記述する必要がある。この場合、Webアプリケーションにおいて上述の画像形成機能特有のHTMLを記述することなく、スキャンおよび印刷の機能を呼び出すようにすると、スキャンおよび印刷のUI(User Interface)が個々に起動することになる。したがって、個々のUIにおいてスキャンおよび印刷の設定を行わなければならず、かつ、スキャン動作および印刷動作を連続して実行させることができないという問題があった。
本発明は、上記に鑑みてなされたものであって、ジョブの設定を1回のみとしてスキャン動作および印刷動作を一連の動作で実行することができる画像形成装置、画像処理システム、画像処理方法およびプログラムを提供することを目的とする。
本発明によれば、ジョブの設定を1回のみとしてスキャン動作および印刷動作を一連の動作で実行することができる。
以下に、図面を参照しながら、本発明に係る画像形成装置、画像処理システム、画像処理方法およびプログラムの実施形態を詳細に説明する。また、以下の実施形態によって本発明が限定されるものではなく、以下の実施形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、およびいわゆる均等の範囲のものが含まれる。さらに、以下の実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更および組み合わせを行うことができる。
(画像処理システムの構成)
図33は、実施形態に係る画像処理システムの構成の一例を示す図である。図33を参照しながら、本実施形態に係る画像処理システム1の構成について説明する。
図33に示すように、本実施形態に係る画像処理システム1は、1以上のMFP(MFP10a、10b、・・・)と、Webサーバ20(第1サーバ、第2サーバの一例)と、を含む。なお、図33では、MFP10a、10b、・・・が示されているが、これらのうち任意の通信端末を示す場合または総称する場合、単に「MFP10」と称する。また、MFP10とWebサーバ20とは、例えば、インターネット等の広域的なネットワークNを介して互いに通信可能となっている。なお、ネットワークNは、有線だけなく無線によるネットワークが含まれるものとしてもよい。
MFP10は、Webブラウザがインストールされた画像形成装置である。MFP10のユーザは、Webサーバ20から提供されるWebアプリケーションを利用して、例えば、スキャンにより生成したが画像データをWebサーバ20へアップロードし、Webサーバ20からダウンロードした画像データを印刷したりすることができる。
Webサーバ20は、ネットワークNを介して、汎用的なHTMLを用いたWebアプリケーションをMFP10へ提供する情報処理装置または情報処理システムである。ここで、汎用的なHTMLとは、W3C(World Wide Web Consortium)で規定されたHTML5またはHTML 5.1等である。また、汎用的とは、例えば、画像形成装置等の機器でのみ解釈可能なように定義されたコンテンツ(拡張HTML、拡張JavaScript(登録商標)等の拡張されたコンテンツ)とは異なり、汎用のWebブラウザであれば機器の種類を問わず、解釈可能なコンテンツであることを示す。
Webサーバ20によりWebアプリケーションが提供されることで、種々のWebサービスが実現される。このようなWebサービスとしては、例えば、クラウドストレージサービス、SNS(Social Networking Service)、クラウドプリントサービス、ブログサービス、掲示板サービス、オンラインゲームサービス、オンラインショッピングサービス等が挙げられる。
なお、図33に示す画像処理システム1の構成は一例であって、他の構成であってもよい。例えば、画像処理システム1には、MFP10以外の画像処理装置が含まれるものとしてもよい。また、Webサーバ20は、MFP10にWebアプリケーションを提供すると共に、後述するように、MFP10から送信されたスキャナで読み取られた画像に対して画像処理を行う機能を有しているが、当該画像処理は、Webサーバ20(第1サーバ)とは異なるサーバ(第2サーバの一例)が行うものとしてもよい。
(MFPのハードウェア構成)
図34は、実施形態に係るMFPのハードウェア構成の一例を示す図である。図34を参照しながら、本実施形態に係るMFP10のハードウェア構成について説明する。
図34に示すように、MFP10は、ユーザの操作を受け付ける操作部11と、スキャナ機能およびプリンタ機能等の各種の画像形成機能を実現する本体12と、を備える。ここで、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。
操作部11および本体12は、専用の通信路13を介して、相互に通信可能に接続されている。通信路13は、例えば、USB(Universal Serial Bus)規格のものを用いることができるが、これに限定されるものではなく、有線か無線かを問わず任意の規格のものであってよい。本体12は、操作部11で受け付けた操作に応じた動作を行う。また、本体12は、外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
<操作部のハードウェア構成>
図34に示すように、操作部11は、CPU(Central Processing Unit)111と、ROM(Read Only Memory)112と、RAM(Random Access Memory)113と、フラッシュメモリ114と、操作パネル115と、接続I/F116と、通信I/F117と、バス118と、を備えている。
CPU111は、操作部11の動作を統括的に制御する演算装置である。CPU111は、RAM113をワークエリア(作業領域)としてROM112またはフラッシュメモリ114等に格納されたプログラムを実行することにより、操作部11全体の動作を制御する。例えば、CPU111は、ユーザから受け付けた入力に応じた情報(画像)を操作パネル115に表示させる等の各種機能を実現する。
ROM112は、例えば、操作部111の起動時に実行されるBIOS(Basic Input/Output System)、および各種の設定等を記憶する不揮発性のメモリである。RAM113は、CPU111のワークエリア等として用いられる揮発性のメモリである。フラッシュメモリ114は、例えば、OS(Operating System)、アプリケーションプログラム、および各種データ等を記憶する不揮発性の記憶装置である。
操作パネル115は、ユーザの操作に応じた各種の入力を受け付けると共に、各種の情報(例えば、受け付けた操作に応じた情報、MFP10の動作状況を示す情報、および設定情報等)を表示する、入力機能および表示機能を有する装置である。操作パネル115は、例えば、タッチパネル機能を搭載した液晶表示装置(LCD:Liquid Crystal Display)で構成される。なお、操作パネル115は、液晶表示装置に限定されるものではなく、例えば、タッチパネル機能が搭載された有機EL(Electro−Luminescence)の表示装置で構成されていてもよい。また、操作パネル115は、タッチパネル機能に加えてまたはこれに代えて、ハードウェアキー等の操作部、またはランプ等の表示部を設けることもできる。
接続I/F116は、通信路13を介して、本体12と通信するためのインターフェースである。
通信I/F117は、操作部11をネットワークNに接続し、ネットワークNに接続された外部装置との通信を行うためのネットワークインターフェースである。通信I/F117は、例えば、イーサネット(登録商標)に対応し、TCP(Transmission Control Protocol)/IP(Internet Protocol)等に準拠した通信が可能なインターフェースである。
バス118は、上述の各構成要素を互いに接続し、アドレス信号、データ信号、および各種制御信号等を伝送する伝送路である。
なお、図34に示した操作部11のハードウェア構成は一例を示すものであり、図34に示した構成要素以外の構成要素を含むものとしてもよい。
<本体のハードウェア構成>
図34に示すように、本体12は、CPU121と、ROM122と、RAM123と、ストレージ124と、スキャナエンジン125と、プリンタエンジン126と、接続I/F127と、通信I/F128と、バス129と、を備えている。
CPU121は、本体12の動作を統括的に制御する演算装置である。CPU121は、RAM123をワークエリア(作業領域)としてROM122またはストレージ124等に格納されたプログラムを実行することにより、本体12全体の動作を制御する。例えば、CPU121は、コピー機能、スキャナ機能、ファックス機能、およびプリンタ機能等の各種機能を実現する。
ROM122は、例えば、本体12の起動時に実行されるBIOS、および各種の設定等を記憶する不揮発性のメモリである。RAM123は、CPU121のワークエリア等として用いられる揮発性のメモリである。ストレージ124は、例えば、OS、アプリケーションプログラム、および各種データ等を記憶する不揮発性の記憶装置である。ストレージ124は、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等で構成される。
スキャナエンジン125は、画像形成機能のうち、原稿をスキャンして画像として読み取るスキャナ機能を実現させるための、汎用的な情報処理および通信以外の処理を行うハードウェアである。プリンタエンジン126は、画像形成機能のうち、用紙等の印刷媒体への印刷を行うプリンタ機能を実現させるための、汎用的な情報処理および通信以外の処理を行うハードウェアである。
接続I/F127は、通信路13を介して、操作部11と通信するためのインターフェースである。
通信I/F128は、本体12をネットワークNに接続し、ネットワークNに接続された外部装置との通信を行うためのネットワークインターフェースである。通信I/F128は、例えば、イーサネットに対応し、TCP/IP等に準拠した通信が可能なインターフェースである。
バス129は、上述の各構成要素を互いに接続し、アドレス信号、データ信号、および各種制御信号等を伝送する伝送路である。
なお、図34に示した本体12のハードウェア構成は一例を示すものであり、図34に示した構成要素以外の構成要素を含むものとしてもよい。例えば、印刷済みの印刷媒体を仕分けるフィニッシャ、または原稿を自動給送するADF(Auto Document Feeder:自動原稿給送装置)のような特定のオプションが含まれていてもよい。
(Webサーバのハードウェア構成)
図35は、実施形態に係るWebサーバのハードウェア構成の一例を示す図である。図35を参照しながら、本実施形態に係るWebサーバ20のハードウェア構成について説明する。
図35に示すように、Webサーバ20は、CPU201と、ROM202と、RAM203と、補助記憶装置205と、メディアドライブ207と、ディスプレイ208と、ネットワークI/F209と、キーボード211と、マウス212と、DVD(Digital Versatile Disc)ドライブ214と、を備えている。
CPU201は、Webサーバ20全体の動作を制御する演算装置である。ROM202は、Webサーバ20用のプログラムを記憶している不揮発性記憶装置である。RAM203は、CPU201のワークエリアとして使用される揮発性記憶装置である。
補助記憶装置205は、MFP10によりスキャン機能で読み取られた画像等を記憶するHDDまたはSSD等の記憶装置である。メディアドライブ207は、CPU201の制御に従って、フラッシュメモリ等の記録メディア206に対するデータの読み出しおよび書き込みを制御する装置である。
ディスプレイ208は、カーソル、メニュー、ウィンドウ、文字または画像等の各種情報を表示する液晶または有機EL等によって構成された表示装置である。
ネットワークI/F209は、ネットワークNを利用してMFP10等の外部装置とデータを通信するためのインターフェースである。ネットワークI/F209は、例えば、イーサネットに対応し、TCP/IP等に準拠した通信が可能なNIC(Network Interface Card)等である。
キーボード211は、文字、数字、各種指示の選択、およびカーソルの移動等を行う入力装置である。マウス212は、各種指示の選択および実行、処理対象の選択、ならびにカーソルの移動等を行うための入力装置である。
DVDドライブ214は、着脱自在な記憶媒体の一例としてのDVD−ROMまたはDVD−R(Digital Versatile Disk Recordable)等のDVD213に対するデータの読み出しおよび書き込みを制御する装置である。
上述のCPU201、ROM202、RAM203、補助記憶装置205、メディアドライブ207、ディスプレイ208、ネットワークI/F209、キーボード211、マウス212およびDVDドライブ214は、アドレスバスおよびデータバス等のバスライン210によって互いに通信可能に接続されている。
なお、図35に示したWebサーバ20のハードウェア構成は一例を示すものであり、図35に示した構成要素を全て含む必要はなく、または、その他の構成要素を含むものとしてもよい。
(MFPのソフトウェアの階層構造)
図36は、実施形態に係るMFPのソフトウェアの階層構造の一例を示す図である。図36を参照しながら、本実施形態に係るMFP10のソフトウェアの階層構造について説明する。
図36に示すように、MFP10の本体12は、アプリ層321と、サービス層322と、OS層323と、を含む。アプリ層321、サービス層322、およびOS層323の実体は、ROM122またはストレージ124等に格納されている各種ソフトウェアである。CPU121が、これらのソフトウェア(プログラム)を実行することにより、本体12の各種の機能が提供される。
アプリ層321は、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下、単に「アプリ」という場合がある)である。アプリとしては、例えば、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
サービス層322は、アプリ層321とOS層323との間に介在し、アプリ層321のアプリに対し、本体12が備えるハードウェア資源を利用するためのインターフェースを提供するソフトウェアである。具体的には、サービス層322は、ハードウェア資源に対する動作要求を受け付け、動作要求の調停を行う機能を提供する。サービス層322が受け付ける動作要求としては、スキャナによる読み取りおよびプロッタによる印刷等の要求が挙げられる。なお、サービス層322によるインターフェースの機能は、本体12のアプリ層321だけではなく、操作部11のアプリ層311に対しても提供される。すなわち、操作部11のアプリ層311も、本体12のサービス層322のインターフェース機能を介して、本体12のハードウェア資源(例えば、スキャナエンジン125およびプリンタエンジン126等)を利用した機能を実現することができる。
OS層323は、本体12が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム)である。サービス層322は、各種アプリからのハードウェア資源の利用要求を、OS層323が解釈可能なコマンドに変換してOS層323に渡す。そして、OS層323によりコマンドが実行されることにより、ハードウェア資源は、アプリの要求に従った動作を行う。
図36に示すように、MFP10の操作部11は、アプリ層311と、サービス層312と、OS層313と、を含む。操作部11が含むアプリ層311、サービス層312、およびOS層313も、階層構造については本体12側と同様である。ただし、アプリ層311のアプリにより提供される機能や、サービス層312が受け付け可能な動作要求の種類は、本体12側とは異なる。
アプリ層311のアプリは、操作部11が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体12が備える機能に関する操作および表示を行うためのUIの機能を提供する。
なお、本実施形態では、機能の独立性を保つために、本体12側のOS層323のソフトウェアと、操作部11側のOS層313のソフトウェアとが互いに異なる。つまり、本体12および操作部11は、別々のオペレーティングシステムにより互いに独立して動作する。例えば、本体12側のOS層323のソフトウェアとしてLinux(登録商標)を用い、操作部11側のOS層313のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
以上のように、本実施形態のMFP10において、本体12および操作部11は、別々のオペレーティングシステムで動作するため、本体12と操作部11との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部11が受け付けた情報(ユーザからの操作指示内容)を本体12へ送信する動作(コマンド通信)、および、本体12が操作部11へ情報を送信する動作等がこれに該当する。ここでは、操作部11が本体12へコマンド通信を行うことにより、本体12の機能を使用することができる。また、本体12から操作部11に送信する情報には、例えば、本体12における動作の実行状況、および本体12側で設定された内容等が含まれる。
(画像処理システムの機能ブロック構成)
図37は、実施形態に係る画像処理システムの機能ブロックの構成の一例を示す図である。図37を参照しながら、本実施形態に係る画像処理システム1の機能ブロックの構成について説明する。
<MFPの機能ブロック構成>
図37に示すように、本実施形態に係るMFP10の操作部11は、Webブラウザ410と、通信部415と、入力部416と、表示部417と、スキャンUIアプリケーション420と、印刷UIアプリケーション430と、を有する。このうち、Webブラウザ410、スキャンUIアプリケーション420および印刷UIアプリケーション430は、CPU111により実行される。
また、本実施形態に係るMFP10の本体12は、WebAPI(Application Program Interface)440と、スキャンアプリケーション450と、印刷アプリケーション460と、を有する。WebAPI440、スキャンアプリケーション450および印刷アプリケーション460は、CPU121により実行される。
Webブラウザ410は、Webサーバ20からWebコンテンツ(例えば、HTML、CSS(Cascading Style Sheets)、JavaScript、各種電子ファイル等)を取得することで、Webアプリケーションの機能を実現する。
例えば、Webブラウザ410は、SNSを提供するWebサーバ20からWebコンテンツを取得することで、SNSの閲覧やSNS上でのファイル共有等を行うWebアプリケーションの機能を実現する。また、例えば、Webブラウザ410は、クラウドストレージサービスを提供するWebサーバ20からWebコンテンツを取得することで、ストレージの閲覧またはストレージへのファイルのアップロード等を行うWebアプリケーションの機能を実現する。
なお、Webアプリケーションは、一般に、Webサーバ20から取得したJavaScript等のコンテンツをWebブラウザ410上で動作させて、Webサーバ20と協働した処理を実行させることで実現される。
Webブラウザ410は、ブラウザ機能部411と、制御部412と、を含む。なお、以降では、Webコンテンツを、単に「コンテンツ」と称する場合がある。
ブラウザ機能部411は、コンテンツの解釈および表示等を行う。ブラウザ機能部411は、UI部413(表示制御部)と、解釈部414と、を含む。
UI部413は、Webサーバ20から取得したコンテンツに応じたWebページ等、すなわちWebアプリケーションが提供するWebページ等を、表示部417に表示する。また、UI部413は、入力部416へのユーザの操作入力により、Webページ上において各種操作(例えば、リンク押下)等を受け付ける。
解釈部414は、Webページに含まれるHTMLタグを解釈して、制御部412に対して解釈結果に応じた通知を行う。
制御部412は、ブラウザ機能部411の解釈部414からの通知に応じて、MFP10の画像形成機能を実行させる制御を行う。例えば、制御部412は、解釈部414から、ファイルを選択することを示すファイル選択通知を受け取った場合、MFP10にセットされた原稿をスキャンし、その読み取り画像をWebサーバ20へアップロードする制御を行う。また、例えば、制御部412は、解釈部414から、リンク先のコンテンツを表示することを示す表示通知を受け取った場合であって、当該コンテンツが所定の形式(例えば、PDF(Portable Document Format)形式等)である場合、当該コンテンツをダウンロードして印刷する制御を行う。
なお、Webブラウザ410は、Webアプリケーションの機能を実現するブラウザ機能部411と、MFP10の画像形成機能を制御する制御部412とを有するため、いわゆるハイブリッドアプリケーションと言うこともできる。Webブラウザ410は、例えば、Java(登録商標)等のプログラミング言語で実装される。すなわち、Webブラウザ410を構成するブラウザアプリケーションは、その基礎部分がJavaアプリケーションプログラムから構成されている。このJavaアプリケーションが、操作部11が提供するAPIを用いて、操作部11が有するブラウザ機能部411を呼び出すことにより、解釈部414およびUI部413を含むWebブラウザ410を構成している。基礎部分であるJavaアプリケーションプログラムは、制御部412を含み、この制御部412が制御を行うことで、Webコンテンツのタグの解釈後の動作に柔軟性を持たせ、汎用的なHTMLで可能な動作(ダウンロードおよびアップロード)だけでなく、画像形成(スキャンおよびプリント)動作の要求ができるようになっている。
通信部415は、Webブラウザ410の制御に従って、ネットワークNを介してWebサーバ20とデータ通信を行う。通信部415は、図34に示す通信I/F117によって実現される。
入力部416は、ユーザからの操作入力を受け付ける。入力部416は、図34に示す操作パネル115の入力機能によって実現される。
表示部417は、UI部413、スキャンUIアプリケーション420および印刷UIアプリケーション430の指令に従って、各種情報を表示する。表示部417は、図34に示す操作パネル115の表示機能によって実現される。
スキャンUIアプリケーション420は、スキャンに関するUIを提供するアプリケーションプログラムである。スキャンUIアプリケーション420は、例えば、スキャン中であることを示す画面、およびスキャンが完了したことを示す画面等を、表示部417に表示させる。
また、スキャンUIアプリケーション420は、制御部412からの要求に応じて、WebAPI440を介して、スキャンアプリケーション450に対してスキャンの実行を要求する。
印刷UIアプリケーション430は、印刷に関するUIを提供するアプリケーションプログラムである。印刷UIアプリケーション430は、例えば、印刷実行中であることを示す画面、および印刷が完了したことを示す画面等を、表示部417に表示させる。
また、印刷UIアプリケーション430は、制御部412からの要求に応じて、WebAPI440を介して、印刷アプリケーション460に対して印刷の実行を要求する。
WebAPI440は、スキャンUIアプリケーション420および印刷UIアプリケーション430が画像形成の実行を要求するためのAPIである。
スキャンアプリケーション450は、スキャンUIアプリケーション420からの要求に応じて、スキャナエンジン125を制御して、スキャンを実行する。
印刷アプリケーション460は、印刷UIアプリケーション430からの要求に応じて、プリンタエンジン126を制御して、印刷を実行する。
以下、スキャンUIアプリケーション420と、WebAPI440と、スキャンアプリケーション450とを「スキャンサービス部470」(第1画像形成部)と表す。また、印刷UIアプリケーション430と、WebAPI440と、印刷アプリケーション460とを「印刷サービス部480」(第2画像形成部)と表す。
なお、操作部11には、例えば、コピーに関するUIを提供するアプリケーション、ファックスに関するUIを提供するアプリケーション、またはOCR(Optical Character Recognition)に関するUIを提供するアプリケーション等が含まれていてもよい。また、本体12には、例えば、コピーを実行するアプリケーション、ファックスを実行するアプリケーション、またはOCRを実現するアプリケーション等が含まれていてもよい。したがって、MFP10には、例えば、コピーサービス部、FAXサービス部、OCRサービス等の様々な画像形成(画像処理)サービス部が含まれていてもよい。
また、MFP10には、画像形成(画像処理)サービス部以外にも、例えば、MFP10が保持するアドレス帳に関する処理を実行するアドレス帳サービス部、ユーザがMFP10を利用するための認証に関する処理を実行する認証サービス部等が含まれる。
<Webサーバの機能ブロック構成>
図37に示すように、本実施形態に係るWebサーバ20は、通信部511と、記憶部512と、画像処理部513と、を有する。
通信部511は、画像処理部513の制御に従って、ネットワークNを介してMFP10とデータ通信を行う。通信部511は、図35に示すネットワークI/F209によって実現される。
記憶部512は、MFP10からアップロードされた画像等を記憶する。記憶部512は、図35に示すRAM203または補助記憶装置205によって実現される。
画像処理部513は、MFP10からアップロードされた画像に対して、広告を挿入したり、または、ロゴマーク等のウォーターマークを付加する等の画像処理を実行する機能部である。例えば、画像処理部513は、画像に対して広告を挿入する場合、後でMFP10で印刷される場合に裏面に当該広告が印刷されるように、各画像間に挿入するようにするものとしてもよい。画像処理部513は、図35に示すCPU201がプログラムを実行することによって実現される。
<MFPおよび汎用的な情報処理装置の動作比較>
汎用的な情報処理装置としては、例えば、PC(Personal Computer)等が想定される。以下、汎用的な情報処理装置、単に「情報処理装置」と称する。
情報処理装置にインストールされたWebブラウザは、例えば、Webページ上でユーザによりファイルの選択操作がなされると、当該操作が行われたボタンのHTMLタグ(inputタグ)を解釈して、解釈結果に応じた通知(ファイル選択通知)を行う。そして、Webブラウザは、例えば、選択されたファイルを指定されたサーバ等にアップロードする。
一方で、MFP10にインストールされたWebブラウザ410のUI部413は、例えば、Webページ上でユーザによりファイルの選択操作がなされると、当該操作を受け付ける。次に、解釈部414は、当該操作が行われたボタンのHTMLタグ(inputタグ)を解釈して、制御部412に対して解釈結果に応じた通知(ファイル選択通知)を行う。
そして、制御部412は、解釈部414から、ファイル選択通知を受け取った場合、MFP10にセットされた原稿をスキャンして、その読み取り画像をWebサーバ20へアップロードする。
このように、MFP10に搭載されたWebブラウザ410は、情報処理装置のWebブラウザでファイル選択対象と解釈されるファイルを、スキャンにより読み取り画像として生成する制御を行って、生成されたファイルをアップロードする。これにより、MFP10では、汎用的なHTMLを用いたWebアプリケーションにより、画像形成機能を実現するための専用のHTMLタグを用いることなく、一定の規則に沿って設定のパラメータを付与するのみで、画像形成機能を追加してコンテンツの生成およびアップロードを行うことができる。
また、情報処理装置にインストールされたWebブラウザは、例えば、Webページ上でユーザによりリンク押下操作がなされると、当該リンク押下操作が行われたリンクのHTMLタグ(aタグ(アンカータグ))を解釈して、解釈結果に応じた通知(表示通知またはダウンロード通知)を行う。
例えば、aタグの属性「href」に指定されているファイルがWebブラウザで表示可能なファイルである場合(例えば、拡張子が「html」、「img」または「pdf」等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザで表示可能でないファイルである場合(例えば、拡張子が「zip」等である場合)には、ダウンロード通知となる。ただし、例えば、aタグの属性「href」に指定されているファイルの拡張子が「pdf」等のWebブラウザで表示可能なファイルの拡張子であっても、属性「download」が指定されている場合には、ダウンロード通知となる。
そして、Webブラウザは、表示通知を受け取った場合、ファイルを表示する。一方、Webブラウザは、ダウンロード通知を受け取った場合、例えば、ファイルをダウンロードするための画面(例えば、ダウンロードの開始またはキャンセルをユーザが選択するための画面)を表示する。
一方で、MFP10にインストールされたWebブラウザ410の解釈部414は、リンク押下操作が行われた場合に相当するHTMLタグ(aタグ(アンカータグ))を解釈すると、制御部412に対して解釈結果に応じた通知(表示通知またはダウンロード通知)を行う。これは、MFP10と同様に、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能なファイルである場合(例えば、拡張子が「html」、「img」または「pdf」等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ410で表示可能でないファイルである場合(例えば、拡張子が「zip」等である場合)には、ダウンロード通知となる。
そして、制御部412は、ダウンロード通知を受け取った場合、ダウンロード対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。一方で、制御部412は、表示通知を受け取った場合、表示対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。
このように、MFP10に搭載されたWebブラウザ410は、情報処理装置のWebブラウザでダウンロード対象または表示対象と解釈されるファイルが印刷可能である場合、当該ファイルを印刷させるための制御を行う。これにより、MFP10では、汎用的なHTMLを用いたWebアプリケーションにより、画像形成機能を実現するための専用のHTMLタグを用いることなく、一定の規則に沿って設定のパラメータを付与するのみで、画像形成機能を追加してコンテンツのダウンロードおよび印刷を行うことができる。
(画像処理システムのスキャン・印刷処理)
図38は、実施形態に係る画像処理システムのスキャン・印刷処理の一例を示すシーケンス図である。図39は、スキャン・印刷処理における画面遷移の一例を示す図である。図40は、スキャン実行タグの一例を示す図である。図41は、印刷実行タグの一例を示す図である。図38〜図41を参照しながら、本実施形態に係る画像処理システム1のスキャン・印刷処理について説明する。なお、MFP10には予めスキャン・印刷処理の対象となる原稿がセットされているものとする。
<ステップS101>
まず、ブラウザ機能部411のUI部413は、例えば図39に示すWebアプリケーションが提供する設定画面1001を、表示部417に表示させる。図39に示す設定画面1001は、Webサーバ20から取得したコンテンツ(HTML、CSS、JavaScript等)を、解釈部414が解釈することで表示される。このようなコンテンツの通信部415を介した解釈部414による取得は、例えば、設定画面1001を表示するためのURL(Uniform Resource Locator)を入力したり、当該URLへのリンクを押下したりすることで行うことができる。
<ステップS102>
図39に示す設定画面1001には、印刷部数(コピー部数)、スキャナの読み取り面、読み取りの解像度、および印刷面の設定の入力部が含まれる。設定画面1001において、ユーザは、これらの設定を入力部416から入力して、スタートボタンを押下し、当該押下情報がUI部413へ送られる。
<ステップS103>
設定画面1001のスタートボタンは、例えば、図40に示すように、属性「type」と、属性「Job」とが設定されたinputタグにより実現される。なお、inputタグには、これら以外にも、種々の属性が設定されていてもよい。ブラウザ機能部411のUI部413は、ユーザにより押下されたスタートボタンを実現するinputタグ(スキャン実行タグ)の解釈要求を解釈部414へ送る。
<ステップS104、S105>
ブラウザ機能部411の解釈部414は、UI部413から受け取った解釈要求に応じて、inputタグ(スキャン実行タグ)(第1タグの一例)を解釈する。すなわち、解釈部414は、inputタグを解釈することで、ファイルを選択することを示すことを解釈し、当該inputタグの属性「Job」で指定されたスキャナの読み取り面、および読み取りの解像度をスキャンパラメータ(第1パラメータ)として取得する。図40に示すinputタグでは、デフォルトの設定として、スキャナの読み取り面が両面、読み取りの解像度が200[dpi]として指定されている。また、設定画面1001でスキャナの読み取り面、および読み取りの解像度がユーザによりデフォルトとは異なる値に設定されると、解釈部414は、inputタグの属性「Job」を、設定された値で解釈して、当該値をスキャンパラメータとして取得する。そして、解釈部414は、タグの解釈結果としてファイルを選択することを示すファイ選択通知と、取得したスキャンパラメータとを、制御部412へ送る。
<ステップS106>
制御部412は、解釈部414からファイ選択通知と、スキャンパラメータとを受け取ると、スキャン実行要求をスキャンパラメータと共に、スキャンサービス部470へ送信する。
<ステップS107、S108>
また、制御部412は、ユーザにスキャン中であることを通知するために、ブラウザ機能部411のUI部413へスキャン中画面表示要求を送る。UI部413は、スキャン中画面表示要求を受け取ると、図40に示すスキャン中画面1002を表示部417に表示させる。これによって、ユーザは、実行中のスキャン・印刷処理のうち、スキャン処理の段階であることを認識することができる。
なお、このようなスキャン中画面1002の表示は、Webアプリケーションの機能により実現されるものとしてもよく、または、スキャンUIアプリケーション420の機能によって実現されるものとしてもよい。
<ステップS109>
スキャンサービス部470は、制御部412からスキャン実行要求およびスキャンパラメータを受信すると、図34に示すスキャナエンジン125に、セットされた原稿のスキャンをさせる。スキャンの実行は、スキャンUIアプリケーション420が、WebAPI440を介して、スキャンアプリケーション450に対してスキャン要求を送信することで行うことができる。これによって、セットされた原稿から画像データ(読み取り画像)が生成される。スキャンにより生成された読み取り画像は、例えば図34に示すフラッシュメモリ114内の予め指定された記憶領域に記憶される。
なお、図39に示すスキャン中画面1002には、キャンセルボタンが含まれるものとしてもよい。この場合、ユーザによりキャンセルボタンが押下されると、スキャンUIアプリケーション420は、WebAPI440を介して、スキャン停止要求をスキャンアプリケーション450へ送信する。これによって、原稿のスキャン処理が中止される。
<ステップS110>
スキャンサービス部470によるスキャン処理中において、例えばスキャナエンジン125の動作に異常等のエラーが発生すると、スキャンアプリケーション450は、スキャン処理を中断し、スキャンUIアプリケーション420へエラー通知を送信する。スキャンUIアプリケーション420は、エラー通知を受信すると、表示部417にスキャン処理中にエラーが発生した旨を表示させる。
<ステップS111>
スキャンサービス部470のスキャンアプリケーション450は、スキャン処理が完了すると、スキャンした読み取り画像を、スキャンUIアプリケーション420へ送信する。スキャンUIアプリケーション420は、受信した読み取り画像(第1画像)を、制御部412へ送る。
<ステップS112>
制御部412は、読み取り画像を受け取ると、続いて、通信部415を介して、Webサーバ20へ当該読み取り画像をアップロードする。
なお、制御部412は、読み取り画像のアップロード中に、アップロード中画面の表示要求を、ブラウザ機能部411のUI部413へ送るものとしてもよい。この場合、UI部413は、アップロード中画面の表示要求を受け取ると、アップロード中画面を表示部417に表示させる。これによって、ユーザは、実行中のスキャン・印刷処理のうち、スキャンされた読み取り画像がWebサーバ20へアップロード中の段階であることを認識することができる。
<ステップS113>
Webサーバ20の画像処理部513は、MFP10から通信部511を介して読み取り画像を受信すると、当該読み取り画像に対して所定の画像処理を実行する。例えば、画像処理部513は、読み取り画像に対して、広告を挿入したり、または、ロゴマーク等のウォーターマークを付加する等の画像処理を実行する。
<ステップS114>
画像処理部513は、読み取り画像に対して画像処理が終了すると、終了した旨を示す処理完了通知を、通信部511を介してMFP10へ送信する。
<ステップS115>
制御部412は、通信部415を介して処理完了通知を受信すると、続いて、印刷実行タグの解釈要求を、ブラウザ機能部411の解釈部414へ送る。
<ステップS116、S117>
ブラウザ機能部411の解釈部414は、印刷実行タグの解釈要求を受け取ると、例えば、図41に示す属性「href」が設定された印刷実行タグとしてのaタグ(アンカータグ)(第2タグの一例)を解釈する。なお、aタグには、これら以外にも、種々の属性が設定されていてもよい。図41に示すように、aタグ(アンカータグ)は、属性「href」として、相対パスにより、読み取り画像のPDFファイルの格納先URLが指定され、さらに、印刷部数(コピー部数)、および印刷面が指定されている。例えば、読み取り画像のPDFファイルの格納先URLは、ステップS114の処理完了通知に含まれているものとし、当該URLが、aタグ(アンカータグ)の属性「href」に設定された態様で、解釈部414により解釈されるものとすればよい。すなわち、解釈部414は、aタグ(アンカータグ)を解釈することで、Webサーバ20に保存されているコンテンツへのリンクを示すことを解釈し、当該aタグの属性「href」で指定された印刷部数(コピー部数)、および印刷面を印刷パラメータ(第2パラメータ)として取得し、さらに、読み取り画像のファイルの格納先URLを取得する。図41に示すaタグ(アンカータグ)では、デフォルトの設定として、印刷部数(コピー部数)が両面、印刷面が両面として指定されている。
また、ステップS102において、設定画面1001で印刷部数(コピー部数)、および印刷面がユーザによりデフォルトとは異なる値に設定されると、解釈部414は、aタグ(アンカータグ)の属性「href」を、設定された値で解釈して、当該値を印刷パラメータとして取得する。そして、解釈部414は、取得した印刷パラメータ、および、読み取り画像のファイルの格納先URLを、制御部412へ送る。
<ステップS118、S119>
制御部412は、aタグの属性「href」で指定されたリンク(URL)先のコンテンツ(読み取り画像)のダウンロード要求を、通信部415を介して、Webサーバ20へ送信する。これによって、当該コンテンツ(読み取り画像)がWebサーバ20から制御部412へダウンロードされる。ただし、読み取り画像は、ステップS113で画像処理がなされているので、この画像処理後の読み取り画像を、以下、「処理後画像」と称する。制御部412は、Webサーバ20からダウンロードした処理後画像(第2画像)を、例えばフラッシュメモリ114内の予め指定された記憶領域に記憶させる。
なお、制御部412は、処理後画像のダウンロード中に、ダウンロード中画面の表示要求を、ブラウザ機能部411のUI部413へ送るものとしてもよい。この場合、UI部413は、ダウンロード中画面の表示要求を受け取ると、ダウンロード中画面を表示部417に表示させる。これによって、ユーザは、実行中のスキャン・印刷処理のうち、処理後画像がWebサーバ20からダウンロード中の段階であることを認識することができる。
<ステップS120>
制御部412は、Webサーバ20から処理後画像のダウンロードが完了すると、続いて、印刷実行要求を、処理後画像および印刷パラメータと共に、印刷サービス部480へ送信する。
<ステップS121、S122>
また、制御部412は、ユーザに印刷中であることを通知するために、ブラウザ機能部411のUI部413へ印刷中画面表示要求を送る。UI部413は、印刷中画面表示要求を受け取ると、図39に示す印刷中画面1003を表示部417に表示させる。これによって、ユーザは、実行中のスキャン・印刷処理のうち、印刷処理の段階であることを認識することができる。
なお、このような印刷中画面1003の表示は、Webアプリケーションの機能により実現されるものとしてもよく、または、印刷UIアプリケーション430の機能によって実現されるものとしてもよい。
<ステップS123>
印刷サービス部480は、制御部412から印刷実行要求、処理後画像および印刷パラメータを受信すると、図34に示すプリンタエンジン126に、印刷パラメータに従って処理後画像の印刷をさせる。印刷の実行は、印刷UIアプリケーション430が、WebAPI440を介して、印刷アプリケーション460に対して印刷要求を送信することで行うことができる。これによって、Webサーバ20からダウンロードされた処理後画像が印刷される。
なお、図39に示す印刷中画面1003には、キャンセルボタンが含まれるものとしてもよい。この場合、ユーザによりキャンセルボタンが押下されると、印刷UIアプリケーション430は、WebAPI440を介して、印刷停止要求を印刷アプリケーション460へ送信する。これによって、処理後画像の印刷処理が中止される。
<ステップS124>
印刷サービス部480による印刷処理中において、例えばプリンタエンジン126の動作に異常等のエラーが発生すると、印刷アプリケーション460は、印刷処理を中断し、印刷UIアプリケーション430へエラー通知を送信する。印刷UIアプリケーション430は、エラー通知を受信すると、表示部417に印刷処理中にエラーが発生した旨を表示させる。
<ステップS125>
印刷サービス部480の印刷アプリケーション460は、印刷処理が完了すると、印刷処理の結果通知(完了通知)を、制御部412へ送る。
<ステップS126、S127>
また、制御部412は、ユーザに印刷処理が完了したことを通知するために、ブラウザ機能部411のUI部413へ設定画面表示要求を送る。UI部413は、設定画面表示要求を受け取ると、図39に示す設定画面1001を表示部417に表示させる。このように元の設定画面1001が表示されることによって、ユーザは、スキャン・印刷処理が終了したことを認識することができる。なお、設定画面1001を再表示するのではなく、所定の完了画面を表示させるものとしてもよい。
以上のように、本実施形態に係るMFP10では、スキャン動作および印刷動作のジョブの設定を、例えば、図39に示す設定画面1001にて1回行うのみで、原稿のスキャン動作、および当該スキャン動作で得られた画像に基づいた印刷動作を一連の動作で実行することができる。すなわち、スキャン動作および印刷動作の処理毎に設定画面が起動して、ユーザが処理毎に設定をする必要がないので、利便性が向上する。
また、本実施形態に係るMFP10では、汎用的なHTMLタグであるinputタグが解釈された場合に、スキャナにより原稿を読み取って読み取り画像を生成し、Webサーバ20にアップロードすることができる。したがって、スキャン機能を実現するための専用のHTMLタグ等を用いずに、一定の規則に沿って設定のパラメータを付与するのみで、当該スキャン機能が実現される。また、汎用的なHTMLタグであるaタグが解釈された場合に、リンク先のコンテンツ(処理後画像)をダウンロードして印刷することができる。したがって、印刷機能を実現するための専用のHTMLタグ等を用いずに、一定の規則に沿って設定のパラメータを付与するのみで、当該印刷機能が実現される。すなわち、Webサーバ20が提供するWebアプリケーションの開発者等は、専用のJavaScriptおよびHTML等の知識を必要とすることなく、MFP10特有の画像形成機能を利用したWebアプリケーションを開発することができる。
また、本実施形態に係る画像処理システム1では、スキャン処理により読み取られた読み取り画像に対して、Webサーバ20において所定の画像処理が施された上で、当該が画像処理後の画像を印刷出力することができる。すなわち、スキャン動作および印刷動作の一連の動作内に、読み取り画像に対して所定の画像処理を組み込むことができるので、原稿の単なるコピー処理ではなく、付加価値のある画像形成機能を発揮させることができる。また、上述と同様に、このような画像処理を行わせるための専用のHTMLタグ等を用いずに実現することができる。
(変形例1)
以下、図42および図43を参照しながら、本実施形態の変形例1に係る画像処理システムについて、本実施形態に係る画像処理システム1と相違する点を中心に説明する。本変形例では、Webサーバへアップロードされた画像の画像ログを記憶する動作について説明する。なお、本変形例に係るMFP10のハードウェア構成および機能ブロックの構成、ならびにWebサーバのハードウェア構成は、上述の実施形態で説明したそれぞれの構成と同様である。
<画像処理システムの機能ブロックの構成>
図42は、実施形態の変形例1に係る画像処理システムの機能ブロックの構成の一例を示す図である。図42を参照しながら、本変形例に係る画像処理システム1aの機能ブロックの構成について説明する。なお、図42に示すように、MFP10の機能ブロックの構成は、上述の図37に示す構成と同様である。
図42に示すように、本変形例に係る画像処理システム1aのWebサーバ20aは、通信部511と、記憶部512と、画像処理部513と、画像管理部514と、を有する。なお、通信部511、記憶部512および画像処理部513の動作は、図37で上述した通りである。
画像管理部514は、MFP10からアップロードされた画像を、記憶部512に画像ログとして記憶させる機能部である。なお、画像管理部514は、画像ログとして、画像処理部513により画像処理が行われた画像(処理後画像)を記憶部512に記憶させるものとしてもよい。画像管理部514は、図35に示すCPU201がプログラムを実行することによって実現される。
<画像処理システムのスキャン・印刷処理>
図43は、実施形態の変形例1に係る画像処理システムのスキャン・印刷処理の一例を示す図である。図43を参照しながら、本変形例に係る画像処理システム1aのスキャン・印刷処理について説明する。
<<ステップS101〜S112>>
図43におけるステップS101〜S112の処理は、それぞれ図38におけるステップS101〜S112の処理と同様である。
<<ステップS112a>>
Webサーバ20aの画像管理部514は、MFP10から通信部511を介して読み取り画像を受信すると、当該読み取り画像を記憶部512に画像ログとして記憶させる。
<<ステップS113〜S127>>
図43におけるステップS113〜S127の処理は、それぞれ図38におけるステップS113〜S127の処理と同様である。
このように、スキャン動作、画像処理および印刷動作の一連の動作において、Webサーバ20a側で画像ログを記憶しておくことができるので、どのような画像が取り扱われたのかを一括で管理することができ、情報漏洩に対するセキュリティを強化することが可能になる。また、上述のように、処理後画像を画像ログとして記憶してもよく、この場合は、実際に印刷媒体に印刷出力される画像が画像ログとして残せることになる。
(変形例2)
以下、図44を参照しながら、本実施形態の変形例2に係る画像処理システムについて、本実施形態に係る画像処理システム1と相違する点を中心に説明する。なお、本変形例に係るMFP10のハードウェア構成の構成、ならびにWebサーバのハードウェア構成および機能ブロックは、上述の実施形態で説明したそれぞれの構成と同様である。
図44は、実施形態の変形例2に係る画像処理システムの機能ブロックの構成の一例を示す図である。
図44に示すように、本変形例に係るMFP10の操作部11は、スキャンUIアプリケーション420および印刷UIアプリケーション430の代わりに、操作部APIアプリケーション490を有するものとしてもよい。
操作部APIアプリケーション490は、印刷およびスキャン等の画像形成機能に関するUIを提供するアプリケーションプログラムである。操作部APIアプリケーション490は、スキャンUIアプリケーション420および印刷UIアプリケーション430等の画像形成機能に関するUIを提供するアプリケーションと同様の機能を有する。
したがって、図44に示す構成の場合、上述の実施形態および変形例1において、スキャンUIアプリケーション420および印刷UIアプリケーション430を操作部APIアプリケーション490と読み替えればよい。操作部APIアプリケーション490を用いることで、印刷およびスキャン等の種々の画像形成機能に関するUIを統一的に提供することができる。
また、操作部APIアプリケーション490は、画像形成に関するUIを提供するアプリケーションをサードベンダ等が開発するためのAPI群を備えている。サードベンダ等は、操作部APIアプリケーション490のAPI群を利用することで、WebAPI440の仕様に関する知識を必要とすることなく、画像形成に関するUIを提供するアプリケーションを容易に開発することができるようになる。すなわち、操作部APIアプリケーション490は、WebAPI440をラッピングしたAPI群をサードベンダ等に提供するアプリケーションプログラムとも言うことができる。
なお、図44に示す構成では、操作部11が、スキャンUIアプリケーション420および印刷UIアプリケーション430の代わりに、操作部APIアプリケーション490を有している構成を示したが、これに限られない。すなわち、操作部11は、スキャンUIアプリケーション420および印刷UIアプリケーション430に加えて、操作部APIアプリケーション490を有していてもよい。
なお、上述の実施形態および各変形例では、操作部11と本体12とは、別々のオペレーティングシステムで、互いに独立して動作しているが、これに限定されるものではなく、例えば、同じオペレーティングシステムで動作する形態であってもよい。
また、上述の実施形態および各変形例において、MFP10およびWebサーバ20(20a)の各機能部の少なくともいずれかがプログラムの実行によって実現される場合、そのプログラムは、ROM等に予め組み込まれて提供される。また、上述の実施形態および各変形例に係るMFP10およびWebサーバ20(20a)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk−Recordable)、またはDVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。また、上述の実施形態および各変形例に係るMFP10およびWebサーバ20(20a)で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の実施形態および各変形例に係るMFP10およびWebサーバ20(20a)で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、上述の実施形態および各変形例に係るMFP10およびWebサーバ20(20a)で実行されるプログラムは、上述した各機能部のうち少なくともいずれかを含むモジュール構成となっており、実際のハードウェアとしてはCPUが上述の記憶装置からプログラムを読み出して実行することにより、上述の各機能部が主記憶装置上にロードされて生成されるようになっている。
また、上述の実施形態および各変形例に係るMFP10は、通信機能を備えた装置であれば、画像形成装置に限られない。すなわち、MFP10の代わりに、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、製造装置、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
また、上述の実施形態および各変形例での各機能は、一または複数の処理回路によって実現することが可能である。ここで、「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上述した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)や従来の回路モジュール等のデバイスを含むものとする。
なお、MFP等を操作する操作装置としてユーザのPC端末、携帯端末、スマートフォン等の情報処理端末にブラウザアプリを搭載するようにしてもよい。また、サーバ装置は、機能ごとに1台の装置、または、複数のサーバ装置を用いたサーバシステムによって、クラウドサービスやWebサービスを提供してもよい。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。