以下、本発明の実施の形態について、図面を参照しながら説明する。
<全体構成例>
まず、本実施形態に係る画像処理システム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係る画像処理システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る画像処理システム1には、1以上の画像処理装置10と、1以上のWebサーバ20と、情報処理装置30とが含まれる。また、画像処理装置10とWebサーバ20とは、例えばインターネット等の広域的なネットワークNを介して通信可能に接続されている。
画像処理装置10は、Webブラウザが搭載された複合機等の電子機器である。画像処理装置10のユーザは、Webサーバ20が提供するWebアプリケーションを利用して、例えば、Webサーバ20からダウンロードした電子データを印刷したり、スキャンにより生成した画像データをWebサーバ20にアップロードしたりすることができる。
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は、Webブラウザが搭載されたPC(パーソナルコンピュータ)やスマートフォン、タブレット端末等である。
なお、図1に示す画像処理システム1の構成は一例であって、他の構成であっても良い。例えば、画像処理装置10は、複合機に限られず、例えば、デジタルカメラ、印刷装置、スキャナ装置、コピー機、プロジェクタ、ファクシミリ、電子会議用端末、電子黒板装置等であっても良い。すなわち、画像処理装置10は、Webサーバ20との間でデータの入力及び出力の少なくとも一方を行う電子機器であれば良い。また、例えば、画像処理システム1には、情報処理装置30が含まれていなくても良い。
<画像処理装置10のハードウェア構成例>
次に、本実施形態に係る画像処理装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態に係る画像処理装置10のハードウェア構成の一例を示す図である。
図1に示すように、本実施形態に係る画像処理装置10は、操作装置11と、本体装置12とを有している。
操作装置11は、本体装置12に実行させる画像処理機能の選択、画像処理機能を実行させるための各種設定値の入力、画像処理機能の実行を開始させるための実行指示の入力、表示画面の切り替え等、ユーザが各種操作を行う際に用いられる。
本体装置12は、操作装置11におけるユーザの各種操作に応じて、画像処理機能の実行等の各種の処理を実行する。
図2に示すように、画像処理装置10の操作装置11は、CPU111(Central Processing Unit)と、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が動作していても良い。
<情報処理装置30のハードウェア構成例>
次に、本実施形態に係る情報処理装置30のハードウェア構成について、図4を参照しながら説明する。図4は、本実施形態に係る情報処理装置30のハードウェア構成の一例を示す図である。
図4に示すように、情報処理装置30は、入力装置31と、表示装置32と、外部I/F33と、RAM34と、ROM35と、CPU36と、通信I/F37と、補助記憶装置38とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
入力装置31は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置32は、例えばディスプレイ等であり、情報処理装置30の処理結果を表示する。
外部I/F33は、外部装置とのインタフェースである。外部装置には、記録媒体33a等がある。情報処理装置30は、外部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は、情報処理装置30をネットワークNに接続するためのインタフェースである。補助記憶装置38は、例えばHDDやSSD等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置38に格納されているプログラムやデータには、例えば、OS、当該OS上において各種機能を実現するアプリケーションプログラム等がある。
<ソフトウェア構成例>
次に、本実施形態に係る画像処理システム1に含まれる画像処理装置10及び情報処理装置30のソフトウェア構成について、図5を参照しながら説明する。図5は、本実施形態に係る画像処理システム1のソフトウェア構成の一例を示す図である。
≪画像処理装置10≫
図5に示すように、本実施形態に係る画像処理装置10の操作装置11は、Webブラウザ310と、印刷UIアプリケーション320と、スキャンUIアプリケーション330とを有する。これらWebブラウザ310、印刷UIアプリケーション320及びスキャンUIアプリケーション330は、CPU111により実行される。
また、本実施形態に係る画像処理装置10の本体装置12は、WebAPI340と、印刷アプリケーション350と、スキャンアプリケーション360とを有する。これらWebAPI340、印刷アプリケーション350及びスキャンアプリケーション360は、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を制御して、スキャンを実行する。
以降では、印刷UIアプリケーション320と、WebAPI340と、印刷アプリケーション350とを「印刷サービス部370」と表す。また、スキャンUIアプリケーション330と、WebAPI340と、スキャンアプリケーション360とを「スキャンサービス部380」と表す。
なお、操作装置11には、例えば、コピーに関するUIを提供するアプリケーションやFAXに関するUIを提供するアプリケーション、OCR(Optical Character Recognition)に関するUIを提供するアプリケーション等が含まれていても良い。また、本体装置12には、例えば、コピーを実行するアプリケーションやFAXを実行するアプリケーション、OCRを実現するアプリケーション等が含まれていても良い。したがって、画像処理装置10には、例えば、コピーサービス部やFAXサービス部、OCRサービス等の様々な画像処理サービス部が含まれていても良い。
また、画像処理装置10には、画像処理サービス部以外にも、例えば、画像処理装置10が保持するアドレス帳に関する処理を実行するアドレス帳サービス部、ユーザが画像処理装置10を利用するための認証に関する処理を実行する認証サービス部等が含まれる。
≪情報処理装置30≫
図5に示すように、本実施形態に係る情報処理装置30は、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及び情報処理装置30の動作比較>
情報処理装置30に搭載された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に対して解釈結果に応じた通知(表示通知又はダウンロード)を行う。これは、情報処理装置30と同様に、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ310で表示可能なファイルである場合(例えば、拡張子がhtmlやimg、pdf等である場合)には、表示通知となる。一方で、例えば、aタグの属性「href」に指定されているファイルがWebブラウザ310で表示可能でないファイルである場合(例えば、拡張子がzip等である場合)には、ダウンロード通知となる。
そして、制御部312は、ダウンロード通知を受け取った場合、ダウンロード対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。一方で、制御部312は、表示通知を受け取った場合、表示対象のファイルが印刷可能か否かを判定した上で、印刷可能であるとき、当該ファイルをダウンロードし、ダウンロードしたファイルを印刷させるための制御を行う。
このように、画像処理装置10に搭載されたWebブラウザ310は、情報処理装置30のWebブラウザ410でダウンロード対象又は表示対象と解釈されるファイルが印刷可能である場合、当該ファイルを印刷させるための制御を行う。これにより、画像処理装置10では、汎用的なHTMLを用いたWebアプリケーションにより、コンテンツのダウンロード及び印刷を行うことができる。
また、情報処理装置30に搭載されたWebブラウザ410のUI部411は、例えば、Webページ上でユーザによりファイルの選択操作がなされると、当該操作を受け付ける。次に、解釈部412は、当該操作が行われたボタンのHTMLタグ(inputタグ)を解釈して、UI部411に対して解釈結果に応じた通知(ファイル選択通知)を行う。
そして、Webブラウザ410のUI部411は、ファイル選択通知を受け取った場合、例えば、選択されたファイルを指定されたサーバ等にアップロードする。
一方で、画像処理装置10に搭載されたWebブラウザ310のUI部313は、例えば、Webページ上でユーザによりファイルの選択操作がなされると、当該操作を受け付ける。次に、解釈部314は、当該操作が行われたボタンのHTMLタグ(inputタグ)を解釈して、制御部312に対して解釈結果に応じた通知(ファイル選択通知)を行う。
そして、制御部312は、アップロード通知を受け取った場合、スキャンによりファイルを生成するように制御した上で、生成されたファイルを指定されたサーバ等にアップロードする。
このように、画像処理装置10に搭載されたWebブラウザ310は、情報処理装置30の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に示す印刷処理では、ステップS509に続いて、制御部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アプリケーションにより、スキャンにより生成した画像データをWebサーバ20にアップロードする処理について、図15を参照しながら説明する。図15は、本実施形態に係るスキャン処理の一例を示すシーケンス図である。
まず、ブラウザ機能部311のUI部313は、例えば図16に示すWebページG310を表示する(ステップS1501)。図16に示すWebページG310は、Webサーバ20から取得したコンテンツ(HTMLやCSS、JavaScript等)を解釈部314が解釈することで表示される。このようなコンテンツの取得は、例えば、WebページG110を表示するためのURLを入力したり、当該URLへのリンクを押下したりすることで行うことができる。
図16に示すWebページG310には、Webサーバ20にアップロードするファイルを選択するための選択ボタンG311が含まれている。ここで、ユーザが選択ボタンG311を押下したものとする。なお、画像処理装置10のスキャナには、スキャン対象の原稿がセットされているものとする。
ブラウザ機能部311のUI部313は、ユーザによる選択ボタンG311の押下を受け付ける(ステップS1502)。ここで、図16に示すWebページG310に含まれる選択ボタンG311は、例えば、図17に示すように、属性「type」と、属性「name」と、属性「accept」と、属性「capture」とが設定されたinputタグにより実現される。なお、inputタグには、これら以外にも、種々の属性が設定されていても良い。
ブラウザ機能部311のUI部313は、ユーザにより押下された選択ボタンG311を実現するinputタグの解釈要求を解釈部314に送信する(ステップS1503)。
ブラウザ機能部311の解釈部314は、選択ボタンG311を実現するinputタグを解釈する(ステップS1504)。すなわち、解釈部314は、inputタグを解釈することで、当該inputタグの属性「type」に指定された「file」からファイル選択を特定する。
次に、ブラウザ機能部311の解釈部314は、ファイル選択通知を制御部312に送信する(ステップS1505)。解釈部314は、例えば、機器で保有するファイルを選択するためのファイル選択APIの一例として、openFileChooserを呼び出すことで、ファイル選択通知を行うことができる。なお、このとき、openFileChooserの引数には、応答のためのコールバック先と、属性「accept」に指定された値と、属性「capture」に指定された値とが指定される。openFileChooserは、操作装置11で提供するAPI(操作部API、操作装置API)の1つである。
制御部312は、ファイル選択通知を受信すると、スキャン実行要求をスキャンサービス部380に送信する(ステップS1506)。なお、制御部312は、例えば、intentを用いて、スキャンサービス部380のスキャンUIアプリケーション330を呼び出すことができる。
スキャンサービス部380は、制御部312からスキャン実行要求を受信すると、例えば図16に示すスキャン中画面G320を表示する(ステップS1507)。図16に示すスキャン中画面G320は、スキャンUIアプリケーション330により表示される。図16に示すスキャン中画面G320が表示されることで、ユーザは、原稿がスキャン中であることを知ることができる。
次に、スキャンサービス部380は、スキャナにセットされた原稿のスキャンを実行して画像データを生成する(ステップS1508)。スキャンの実行は、スキャンUIアプリケーション330が、WebAPI340を介して、スキャンアプリケーション360に対してスキャン要求を送信することで行うことができる。これにより、スキャナにセットされた原稿から画像データが生成される。スキャンにより生成された画像データは、例えばフラッシュメモリ114内の予め指定された記憶領域に保存される。
なお、図16に示すスキャン中画面G320には、キャンセルボタンG321が含まれる。ユーザによりキャンセルボタンG321が押下された場合、スキャンUIアプリケーション330は、WebAPI340を介して、スキャン要求をスキャンアプリケーション360に送信する。これにより、原稿のスキャンが中止される。
スキャンが完了すると、スキャンアプリケーション360は、当該スキャン要求に対する応答をスキャンUIアプリケーション330に送信する。一方で、例えば、スキャン中にエラーが発生した場合、スキャンアプリケーション360は、エラーが発生したことを示す通知をスキャンUIアプリケーション330に送信する。スキャンUIアプリケーション330は、エラーが発生したことを示す通知を受信すると、例えば、エラーが発生したことを示す画面を表示する。
次に、スキャンサービス部380は、上記のステップS1208で実行されたスキャンが完了すると、例えば図16に示すスキャン完了画面G330を表示する(ステップS1509)。そして、スキャンサービス部380は、スキャン結果(例えば、スキャンにより生成された画像データ又は当該画像データの保存先を示す情報)を制御部312に送信する。
制御部312は、スキャン結果を受信すると、例えば図16に示すアップロード画面G340を表示する(ステップS1510)。図16に示すアップロード画面G340には、スキャンにより生成された画像データのファイル名G341が表示されている。また、図16に示すアップロード画面G340は、アップロードボタンG342が含まれる。ここで、ユーザがアップロードボタンG342を押下したものとする。
ブラウザ機能部311のUI部313は、ユーザによるアップロードボタンG342の押下を受け付ける(ステップS1511)。なお、アップロードボタンG342は、例えば、制御部312により表示されるポップアップウインドウ等の別ウインドウに含まれていても良い。なお、アップロードボタンG342が押下されなかった場合、例えば、スキャンにより生成された画像データは、画像処理装置10に保存されても良いし、保存せずに破棄されても良い。
ブラウザ機能部311のUI部313は、ユーザによりアップロードボタンG342が押下されると、スキャンにより生成された画像データのアップロード要求を制御部312に送信する(ステップS1512)。
制御部312は、画像データのアップロード要求を受信すると、例えば図16に示すアップロード中画面G350を表示する(ステップS1513)。
次に、制御部312は、画像データのアップロード要求をWebサーバ20に送信する(ステップS1514)。そして、制御部312は、アップロード結果をWebサーバ20から受信する。これにより、スキャンにより生成された画像データがWebサーバ20にアップロードされる。
なお、図16に示すアップロード中画面G350には、キャンセルボタンG351が含まれる。ユーザによりキャンセルボタンG351が押下された場合、制御部312は、画像データのアップロードを中止する。
また、制御部312は、上記のステップS1214のアップロード要求を行う前に、スキャンにより生成された画像データに対して、例えば、ユーザを識別するユーザID等を付加しても良い。また、制御部312は、スキャンにより生成された画像データに対して、例えば、スキャン時の設定(例えば、変倍率やトリミング幅、画像補正値、スキャンした機器の情報等)を示す情報を付加しても良い。
制御部312は、Webサーバ20からアップロード結果を受信すると、アップロード完了通知をUI部313に送信する(ステップS1515)。
ブラウザ機能部311のUI部313は、アップロード完了通知を受信すると、例えば図16に示すアップロード完了画面G360を表示する(ステップS1516)。図16に示すアップロード完了画面G360が表示されることで、ユーザは、原稿のスキャン及びスキャンにより生成された画像データのアップロードが完了したことを知ることができる。
以上のように、本実施形態に係る画像処理装置10は、汎用的なHTMLタグであるinputタグで実現されるボタンがユーザにより押下された場合に、スキャナにより原稿を読み取って画像データを生成し、Webサーバ20にアップロードすることができる。このように、本実施形態に係る画像処理装置10では、スキャン機能を実現するための専用のHTMLタグを用いずに、当該スキャン機能が実現される。
したがって、例えば、Webサーバ20が提供するWebアプリケーションの開発者等は、専用のJavaScriptやHTML等の知識を必要とすることなく、画像処理装置10特有の画像処理機能を実現させるWebアプリケーションを開発することができる。
(実施例2の他の例(その1))
次に、スキャン処理の他の例(その1)について、図18を参照しながら説明する。図18は、本実施形態に係るスキャン処理の他の例(その1)を示すシーケンス図である。なお、図18におけるステップS1501~ステップS1516は、図15と同様であるため、その説明を省略する。
ステップS1506に続いて、スキャンサービス部380は、ブラウザ機能部311からスキャン実行要求を受信すると、例えば図19に示すスキャン設定画面G410を表示する(ステップS1801)。図19に示すスキャン設定画面G410は、スキャンUIアプリケーション330により表示される。
図19に示すスキャン設定画面G410には、スキャン設定欄G411と、スキャン実行ボタンG412とが含まれる。ユーザは、スキャン設定欄G411において、例えば、「原稿種類」、「解像度」、「原稿セット方向」、「原稿面」、「読み取りサイズ」、「ファイル形式」等の種々のスキャン設定を指定することができる。ここで、ユーザがスキャン設定欄G411においてスキャン設定を指定する操作(スキャン設定操作)を行った上で、スキャン実行ボタンG412を押下したものとする。
スキャンサービス部380は、ユーザによるスキャン設定操作及びスキャン実行ボタンG412の押下を受け付ける(ステップS1802)。スキャン設定操作及びスキャン実行ボタンG412の押下は、スキャンUIアプリケーション330により受け付けられる。これにより、ステップS1508において、ユーザにより指定されたスキャン設定で原稿がスキャンされる。
(実施例2の他の例(その2))
次に、スキャン処理の他の例(その2)について、図20を参照しながら説明する。図20は、本実施形態に係るスキャン処理の他の例(その2)を示すシーケンス図である。なお、図20におけるステップS1501~ステップS1516は、図15と同様であるため、その説明を省略する。
ステップS1512に続いて、制御部312は、画像データのアップロード要求を受信すると、スキャンにより生成された画像データに対して所定の画像処理を実行する(ステップS2001)。ここで、制御部312により実行される画像処理としては、例えば、画像データに対して所定の情報(例えば保存先のURLや保存時刻等)を付加する処理、データ形式の変換処理等が挙げられる。これにより、ステップS1514において、画像処理が行われた後の画像データがWebサーバ20にアップロードされる。
(実施例2の他の例(その3))
次に、スキャン処理の他の例(その3)について、図21を参照しながら説明する。図21は、本実施形態に係るスキャン処理の他の例(その3)を示すシーケンス図である。
まず、ブラウザ機能部311のUI部313は、例えば図22に示すWebページG510を表示する(ステップS2101)。図22に示すWebページG510は、Webサーバ20から取得したコンテンツ(HTMLやCSS、JavaScript等)を解釈部314が解釈することで表示される。このようなコンテンツの取得は、例えば、WebページG510を表示するためのURLを入力したり、当該URLへのリンクを押下したりすることで行うことができる。
図22に示すWebページG510には、リンク先として指定されたメールアドレス宛にメールを送信するためのリンクG511が含まれている。ここで、ユーザがリンクG511を押下したものとする。なお、画像処理装置10のスキャナには、スキャン対象の原稿がセットされているものとする。
ブラウザ機能部311のUI部313は、ユーザによるリンクG511の押下を受け付ける(ステップS2102)。ここで、図22に示すWebページG510に含まれるリンクG511は、例えば、図23に示すように、属性「href」が設定されたaタグにより実現される。図23に示すaタグの属性「href」には、スキーム「mailto」で、メールアドレスが指定されている。なお、aタグには、これ以外にも、種々の属性が設定されていても良い。
ブラウザ機能部311のUI部313は、ユーザにより押下されたリンクG511を実現するaタグの解釈要求を解釈部314に送信する(ステップS2103)。
ブラウザ機能部311の解釈部314は、リンクG511を実現するaタグを解釈する(ステップS2104)。すなわち、解釈部314は、aタグを解釈することで、当該aタグの属性「href」に指定されたスキーム「mailto」からメール送信を特定する。
次に、ブラウザ機能部311の解釈部314は、メール送信通知を制御部312に送信する(ステップS2105)。解釈部314は、例えば、操作装置11のWebブラウザ310又はアプリケーションの内部に保持されているメール送信ライブラリのAPIをコールすることで、メール送信通知を行うことができる。又は、解釈部314は、例えば、本体装置12が保持されているメール送信プログラム(又はメール送信モジュール等)を、WebAPIを介してコールすることで、メール送信通知を行っても良い。なお、このとき、コールされるAPIの引数には、属性「href」に指定されたメールアドレスが指定される。
制御部312は、メール送信通知を受信すると、スキャン実行要求をスキャンサービス部380に送信する(ステップS2106)。なお、制御部312は、例えば、intentを用いて、スキャンサービス部380のスキャンUIアプリケーション330を呼び出すことができる。
以降のステップS1507~ステップS1508は、図15と同様であるため、その説明を省略する。
ステップS1508に続いて、スキャンサービス部380は、例えば図22に示すスキャン完了及びメール送信中画面G520を表示する(ステップS2107)。そして、スキャンサービス部380は、スキャン結果(例えば、スキャンにより生成された画像データ又は当該画像データの保存先を示す情報)を制御部312に送信する。
制御部312は、スキャン結果を受信すると、スキャンにより生成された画像データを添付したメールを、aタグの属性「href」に指定されたメールアドレス宛に送信する(ステップS2108)。これにより、スキャンにより生成された画像データが指定されたメールアドレス宛に送信される。
なお、図22に示すスキャン完了及びメール送信中画面G520には、キャンセルボタンG521が含まれる。ユーザによりキャンセルボタンG521が押下された場合、スキャンUIアプリケーション330は、メール送信中止要求を制御部312に送信する。これにより、画像データが添付されたメールの送信が中止される。
制御部312は、メールの送信が完了すると、メール送信完了通知をUI部313に送信する(ステップS2109)。
ブラウザ機能部311のUI部313は、メール送信完了通知を受信すると、例えば図22に示すメール送信完了画面G530を表示する(ステップS2110)。図22に示すメール送信完了画面G530が表示されることで、ユーザは、原稿のスキャン及びスキャンにより生成された画像データのメール送信が完了したことを知ることができる。
このように、実施例2の他の例(その3)では、汎用的なHTMLタグであるaタグで実現されるリンクがユーザにより押下された場合に、スキャナにより原稿を読み取って画像データを生成し、生成した画像データが添付されたメールを送信することができる。
次に、スキャン処理の実行時におけるWebブラウザ310の動作の一例について、図24を参照しながら説明する。図24は、スキャン処理の実行時におけるWebブラウザ310の動作の一例を示すフローチャートである。
まず、Webブラウザ310は、図15のステップS1501で説明したように、Webサーバ20からコンテンツ(Webページ)を取得し、選択ボタンを含む画面を表示する(ステップS2401)。
次に、Webブラウザ310は、図15のステップS1502で説明したように、ユーザによる選択ボタンの押下を受け付ける(ステップS2402)。Webブラウザ310は、選択ボタンの押下を受け付けると、ファイル選択に関する所定のタグ名(inputタグ)を検出する(ステップS2403)。Webブラウザ310は、inputタグを検出すると、図15のステップS1505で説明したように、ファイル選択通知を行う(ステップS2404)。
次に、Webブラウザ310は、図15のステップS1506で説明したように、スキャン実行要求を行う(ステップS2405)。そして、Webブラウザ310は、図15のステップS1510で説明したように、スキャン完了後に、アップロードボタンが含まれる画面(例えば、アップロード画面)を表示する(ステップS2406)。
次に、Webブラウザ310は、アップロードボタンの押下を受け付けたか否かを判定する(ステップS2407)。
ステップS2407において、アップロードボタンの押下を受け付けたと判定された場合、Webブラウザ310は、図15のステップS1512で説明したように、アップロードを行う(ステップS2408)。
ステップS2407において、アップロードボタンの押下を受け付けたと判定されなかった場合(例えば、アップロードがキャンセルされた場合等)、Webブラウザ310は、アップロードを行わない(ステップS2409)。この場合、Webブラウザ310は、スキャンにより生成された画像データを保存する。ただし、Webブラウザ310は、例えば、エラー等によりアップロードを行わない場合には、スキャンにより生成された画像データを削除しても良い。
<他のソフトウェア構成例>
次に、本実施形態に係る画像処理システム1に含まれる画像処理装置10及び情報処理装置30のソフトウェア構成の他の例について、図25を参照しながら説明する。図25は、本実施形態に係る画像処理システム1のソフトウェア構成の他の例を示す図である。
図25に示すように、本実施形態に係る画像処理装置10の操作装置11は、印刷UIアプリケーション320及びスキャンUIアプリケーション330の代わりに、操作部APIアプリケーション390を有していても良い。
操作部APIアプリケーション390は、印刷やスキャン等の画像処理に関するUIを提供するアプリケーションプログラムである。操作部APIアプリケーション390は、印刷UIアプリケーション320やスキャンUIアプリケーション330等の画像処理に関するUIを提供するアプリケーションと同様の機能を有する。
したがって、図25に示すソフトウェア構成の場合、上記で説明した実施例1及び実施例2において、印刷UIアプリケーション320及びスキャンUIアプリケーション330を操作部APIアプリケーション390と読み替えれば良い。操作部APIアプリケーション390を用いることで、印刷やスキャン等の種々の画像処理に関するUIを統一的に提供することができる。
また、操作部APIアプリケーション390は、画像処理に関するUIを提供するアプリケーションをサードベンダ等が開発するためのAPI群を備えている。サードベンダ等は、操作部APIアプリケーション390のAPI群を利用することで、WebAPI340の仕様に関する知識を必要とすることなく、画像に関するUIを提供するアプリケーションを容易に開発することができるようになる。すなわち、操作部APIアプリケーション390は、WebAPI340をラッピングしたAPI群をサードベンダ等に提供するアプリケーションプログラムとも言うことができる。
なお、図25に示すソフトウェア構成では、操作装置11が、印刷UIアプリケーション320及びスキャンUIアプリケーション330の代わりに、操作部APIアプリケーション390を有している構成を示したが、これに限られない。操作装置11は、印刷UIアプリケーション320及びスキャンUIアプリケーション330に加えて、操作部APIアプリケーション390を有していても良い。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。