以下に添付図面を参照して、画像処理装置、画像処理方法、およびプログラムの実施の形態を詳細に説明する。
図1は、実施形態の画像処理システムの全体構成図である。図1に示すように、画像処理システムは、MFP(Multifunction Peripheral)100、200と、ファイルサーバ300とがネットワーク30を介して接続されている。
本実施形態の画像処理システムは、例えば、商社の営業部等の営業本部において営業担当がポップなどの広告の印刷対象ファイル(Word、PDFやJPEG等)を作成してファイルサーバに保存しておく。そして、小売店頭の各店舗の販売員が店舗に設置したMFPでファイルサーバにアクセスし印刷対象ファイル(一例として印刷ファイル)を取得して印刷(出力の一例)し、印刷した広告を店舗に掲示するような場合に利用できる。これにより、各店舗で共通の広告を印刷し、店頭に掲示することができる。
MFP100、200は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を有する装置であって、画像処理装置の一例である。図1に示す画像処理システムでは、2台のMFP100、200が接続されているが、MFPの台数は任意であって、1台または3台以上設置されていてもよい。また、MFP100、200には、印刷アプリケーション(以下、「印刷アプリ」と称する。)50がインストールされている。
印刷アプリ50は、MFP100、200の機能を利用して、画像データやドキュメントなどの印刷ファイル(出力対象ファイル)を紙などの記録媒体に印刷(出力)する機能を提供するためのソフトウェアである。印刷アプリ50は、例えば、操作部20(図3等参照)で実行されるAndroid(登録商標)上で動作するJava(登録商標)のアプリケーションである。本実施形態では、印刷アプリ50は、MFP100、200にインストールするタイプのアプリケーションであるが、ブラウザアプリケーションを介してMFP100、200にて操作可能なWebタイプのアプリケーションでもよい。印刷アプリ50は、出力対象ファイルを出力する機能を提供するアプリケーションの一例である。なお、出力には印刷以外の例として、ファイルを添付したメール送信や、ファイル転送、FAX送信などがある。
ファイルサーバ300は、MFP100、200によって印刷可能な形式の画像や文書等の印刷ファイルや、当該印刷ファイルに関する情報等を保存する装置であって、外部装置の一例である。ファイルサーバ300は、MFP100、200からの要求により、印刷ファイル等を送信したり、印刷ファイルに関する各種情報を保存する装置である。
MFP100、200とファイルサーバ300との間の通信には、例えば、ネットワークファイル共有プロトコルとして広く利用されているSMB(Server Message Block)が用いられている。印刷アプリ50は、ファイル共有プロトコルであるSMBプロトコルを用いて、汎用のファイルサーバ300やPCのフォルダにある印刷ファイルにアクセスする。なお、その他のプロトコルとして、CIFS(Common Internet File System)、WebDAV(Web-based Distributed Authoring and Versioning)を用いてもよい。また、印刷アプリ50の別形態として、WebAPI(Web Application Programming Interface)を利用したオンラインストレージのファイルにアクセスする仕組みを用いてもよい。
次に、ファイルサーバ300のハードウェア構成について説明する。図2は、実施形態のファイルサーバのハードウェア構成の一例を示す図である。図2に示すように、ファイルサーバ300は、CPU(Central Processing Unit)601と、ROM(Read Only Memory)602と、RAM(Random Access Memory)603と、HDD(Hard Disk Drive)604と、ディスプレイ605と、通信I/F(インターフェース)606と、キーボード607と、マウス608と、を備えている。
CPU601は、ファイルサーバ300全体の動作を制御する。CPU601は、RAM603をワークエリアとしてROM602またはHDD604等に格納されたプログラムを実行することで、ファイルサーバ300全体の動作を制御する。
ディスプレイ605は、文字または画像等の各種情報を表示する表示部である。ディスプレイ605は、例えば、CRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)、または有機EL(Electro−Luminescence)ディスプレイ等である。
通信I/F606は、ネットワーク30と接続してデータ通信をするためのインターフェースである。通信I/F606は、例えば、10Base-T、100Base-TXまたは1000Base-T等のEthernet(登録商標)に対応したインターフェースである。
キーボード607は、文字、数字、各種指示の選択等を行う入力装置である。マウス608は、各種指示の選択および実行、処理対象の選択等を行うための入力装置である。
上述のCPU601、ROM602、RAM603、HDD604、ディスプレイ605、通信I/F606、キーボード607、およびマウス608は、アドレスバスおよびデータバス等のバス611によって互いに通信可能に接続されている。
次に、MFP100のハードウェア構成について説明する。なお、MFP200についても同様である。図3は、実施形態のMFPのハードウェア構成の一例を示す図である。図3に示すように、MFP100は、コピー機能、スキャナ機能、ファクス機能、およびプリンタ機能などの各種の機能を実現可能な本体10と、ユーザによる操作入力を受け付ける操作部20とを備えている。
なお、ユーザによる操作入力を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む。)を受け付けることを含む概念である。本体10と操作部20は、専用の通信路40を介して相互に通信可能に接続されている。通信路40は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
なお、本体10は、操作部20で受け付けた操作入力に応じた動作を行うことができる。また、本体10は、ファイルサーバ300等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
まず、本体10のハードウェア構成例について説明する。図3に示すように、本体10は、CPU11と、ROM12と、RAM13と、HDD14と、通信I/F15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
CPU11は、本体10の動作を統括的に制御するものであって、第1のCPUに相当する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
通信I/F15は、ネットワーク30と接続するためのインターフェースである。接続I/F16は、通信路40を介して操作部20と通信するためのインターフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理および通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等の記録媒体への印刷を行うプリンタ(画像形成部)、ファクス通信を行うファクスなどを備えている。さらに、印刷済み記録媒体を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置:Auto Document Feeder)のような特定のオプションを備えることもできる。
次に、操作部20のハードウェア構成例について説明する。図3に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27と、外部接続I/F28とを備え、これらがシステムバス29を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御するものであって、第2のCPUに相当する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
通信I/F25は、ネットワーク30と接続するためのインターフェースである。接続I/F26は、通信路40を介して本体10と通信するためのインターフェースである。外部接続I/F28は、ICカードリーダなどと接続するためのインターフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば、受け付けた操作入力に応じた情報、各種画面など)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えてまたはこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。なお、操作パネル27は表示部の一例である。
なお、本実施形態では、機能の独立性を保つために、本体10側のソフトウェアと操作部20側のソフトウェアが互いに異なる。つまり、本体10と操作部20は、別々のオペレーティングシステム(OS:Operating System)で互いに独立して動作する。例えば、本体10側のソフトウェアとしてLinux(登録商標)を用い、操作部20側のソフトウェアとしてAndroid(登録商標)を用いることも可能である。本体10のOSが第1のOSの一例であって、操作部20のOSが第2のOSの一例である。
以上のように、本実施形態のMFP100において、本体10と操作部20は別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた情報(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)や、本体10が操作部20へイベントを通知する動作などがこれに該当する。
ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に通知するイベントには、本体10における動作の実行状況、本体10側で設定された内容などが挙げられる。
次に、ファイルサーバ300の機能構成について説明する。図4は、実施形態のファイルサーバの構成を示す機能ブロック図である。図4に示すように、ファイルサーバ300は、通信制御部301と、保存制御部302と、記憶部310とを備えており、互いに接続されている。
記憶部310は、各種情報や画面等を保存するものであって、ROM602やHDD604(図2参照)により実現される。本実施形態では、記憶部310は、画像や文書等の印刷ファイルを保存している。印刷ファイルは、画像データやドキュメントなどのファイルであって、上述した店舗と本部の例では、画像や文書を用いて作成された広告や告知等の顧客に提示する情報である。
記憶部310は、印刷ファイルを、印刷ファイルを識別するファイル識別情報に関連付けて保存している。具体的には、例えば、本実施形態の記憶部310は、印刷ファイルに、印刷ファイルを識別する固有のファイル名(ファイル識別情報の一例)を付して保存している。さらに、記憶部310では、フォルダ名を付したフォルダに、関連する複数の印刷ファイルをまとめて保存している。フォルダには、当該フォルダを識別する固有のフォルダ名が付けられている。
通信制御部301は、MFP100、200などのネットワーク30を介して接続された外部装置との間で、通信I/F606(図2参照)により行われる通信を制御する。例えば、本実施形態の通信制御部301は、MFP100、200からの要求を受信し、当該要求に応じた情報をMFP100、200に送信する。
具体的には、例えば、通信制御部301は、MFP100、200から、複数の印刷ファイルを保存しているフォルダのフォルダ名の一覧の要求を受信した場合、記憶部310を参照し、フォルダのフォルダ名の一覧をMFP100、200に送信する。
また、通信制御部301は、MFP100、200から、ルートフォルダのフォルダ名を受信し、印刷ファイルのファイル名の一覧および当該ファイル名が示す印刷ファイルの更新日時の要求を受信した場合、記憶部310を参照し、受信したルートフォルダのフォルダ名が示すフォルダに保存されている印刷ファイルのファイル名の一覧および更新日時をMFP100、200に送信する。
また、通信制御部301は、MFP100、200から、印刷ファイルの要求を受信した場合、記憶部310を参照し、要求された印刷ファイルをMFP100、200に送信する。
ここで、ファイルサーバ300は、このような各種情報の要求を受信してそれに応じた情報の送信(情報の要求および送信)を行う際には、ユーザがMFP100、200を介して各種情報を取得する権限を有するか否かを判断する認証処理を行う。このため、通信制御部301は、MFP100、200との間で情報の要求および送信を行う場合、まずは、情報の要求を送信したMFP100、200に認証情報の要求を送信し、MFP100、200からユーザによって入力された認証情報を受信する。そして、ファイルサーバ300は、受信した認証情報を用いて認証処理を行い、認証成功した場合に要求された情報の送信を行う。認証情報とは、ユーザを識別可能な情報であって、例えば、ユーザIDおよびパスワードなどである。
本実施形態の認証処理は、例えば、MFP100、200から要求した認証情報を受信すると、その受信した認証情報と、ファイルサーバ300に予め登録されている認証情報(情報を取得する権限を有するユーザの認証情報)とを比較する。そして、受信した認証情報と登録されている認証情報とが一致する場合は、ユーザは情報を取得する権限を有すると判断する。一方、受信した認証情報と登録されている認証情報とが一致しない場合は、ユーザは情報を取得する権限を有していないと判断する。そして、その判断結果をMFP100、200に送信する。
保存制御部302は、記憶部310に各種情報の保存や更新、削除を行う。本実施形態では、保存制御部302は、例えば、記憶部310に、外部装置から受信した印刷ファイル等の保存や更新、削除を行う。
次に、MFP100の機能構成について説明する。MFP200も同様の構成となっているため省略する。図5は、実施形態のMFPの構成を示す機能ブロック図である。図5に示すように、MFP100の操作部20は、入力受付部101と、表示制御部102と、通信制御部103と、取得部104と、登録制御部105と、判定部106と、サムネイル生成部107と、接続制御部108と、記憶部110とを備えており、関連機能は互いに接続されている。また、MFP100の本体10は、通信制御部121と、印刷制御部122と、接続制御部123と、記憶部120とを備えており、関連機能は互いに接続されている。また、操作部20と本体10は互いに、接続制御部108と接続制御部123によって接続されている。接続制御部108は、図3の接続I/F26、接続制御部123は、接続I/F16であるWebAPIで実現される。
ここで、本実施形態のMFP100は、本体10と操作部20とが1つの装置に含まれている構成となっているが、複数の装置に分かれて構成されていてもよい。すなわち、本実施形態のように本体装置(本体)と操作装置(操作部)とが1つの装置であってもよいし、操作装置がタブレット端末装置のように、本体装置とは別体の装置であってもよい。
記憶部110は、操作部20に備えられ、各種情報や画面等を登録するものであって、ROM22やフラッシュメモリ24(図3参照)により実現される。本実施形態では、例えば、記憶部110は、各種画面を構成する情報や、印刷ファイルが未出力(一例としては印刷)である旨を示す未出力情報(詳細は、後述する図11のバッヂP1a、P5aを参照)などを登録する。
記憶部120は、本体10に備えられ、各種情報や画面等を登録するものであって、HDD14(図3参照)により実現される。本実施形態では、記憶部120は、ファイルサーバ300に関する情報であるサーバ情報、印刷済みの印刷ファイルのファイル名等を登録した印刷済情報、印刷ファイルから生成されたサムネイル、および登録されているサムネイルに関する情報を管理するキャッシュ管理情報等を登録する。
ここで、サーバ情報とは、MFP100からファイルサーバ300にアクセスする際に必要となる情報であって、例えば、ファイルサーバのアドレス(IPアドレス等)、認証情報(ユーザID、パスワード)、およびルートフォルダのフォルダ名が登録されている。なお、本実施形態では、ファイルサーバ300のサーバ情報のみを登録しているが、複数台のファイルサーバと接続されている場合は接続されている全てのサーバ情報を登録してもよい。
また、印刷済情報とは、MFP100において既に印刷された印刷ファイルを識別可能な情報が登録されており、印刷ファイルが既に印刷済みのファイルであるか否かの判定に用いる情報であって、出力済情報の一例である。図6は、MFPの記憶部120に登録されている印刷済情報の一例を示す図である。図6に示すように、印刷済情報には、例えば、印刷ファイルの印刷日時と、印刷ファイルのファイル名と、印刷ファイルの更新日時とを含み、それぞれが対応付けられて登録されている。この印刷済情報は、例えば、印刷ファイルが印刷された場合に登録される。
「印刷日時」とは、印刷ファイルの印刷を実行した日時である。図6では、例えば、「2016/03/24/12:00:00」と登録されており、印刷ファイルを実行した日時が2016年3月24日12時00分00秒であることを示している。この印刷日時は、例えば、印刷済情報の容量が予め定めた既定サイズより大きくなった場合、印刷日時の古い印刷ファイルの登録から順に削除する場合等に利用できる。
なお、ここでは、印刷済情報の容量が規定サイズより大きくなった場合に、印刷日時の古い印刷ファイルの登録から削除する構成について説明したが、ファイルサーバ300から印刷ファイルが削除された場合に、対応する印刷済情報の印刷ファイルの登録を削除する構成としてもよい。この場合、例えば、定期的にMFP100がファイルサーバ300からファイル名の一覧を取得して、取得したファイル名の一覧と印刷済情報を照合する。そして、印刷済情報に登録されたファイル名が取得したファイル名の一覧にない場合、当該ファイル名が示す印刷ファイルは削除されていると判断し、当該ファイル名を印刷済情報から削除する。
「印刷ファイルのファイル名」とは、印刷済の印刷ファイルを識別できるファイル名であって、本実施形態では、ファイルサーバ300における印刷ファイルの所在を示す所在情報である。具体的には、印刷ファイルのファイル名は、例えば、印刷済の印刷ファイルのフルパスである。図6では、「\\192.168.0.1\SharedFiles\POPFiles\チラシA.pdf」と登録されている。フルパスとは、ファイルやフォルダの所在を示す文字列(パス)の表記法であって、階層構造の頂点である最上位階層(ここでは、ファイルサーバ300のアドレス)から目的の印刷ファイルまでの道筋を省略なくすべて記述した情報である。このように、印刷済情報に、印刷ファイルのフルパスを登録することで、別のフォルダや別のファイルサーバに存在する同一ファイル名の印刷ファイル等と区別することができる。
「印刷ファイルの更新日時」とは、印刷ファイルの作成者が最後に印刷ファイルを修正した日時である。また、印刷ファイルを修正していない場合は、印刷ファイルの作成日時となる。図6では、例えば、「2016/02/25/13:00:05」と登録されており、印刷ファイルを更新した日時が2016年2月25日13時00分05秒であることを示している。印刷ファイルの更新日時は、ファイルサーバ300において標準的に登録されているものである。印刷ファイルの更新日時を、印刷ファイルが印刷済みか否かの判定に利用することで、既に印刷済みの印刷ファイルに対して、印刷ファイルの作成者が再編集(修正)を行った場合、再度、未印刷の印刷ファイルとしてユーザに印刷を促すことができる。
本実施形態の印刷済情報では、印刷日時、印刷ファイルのファイル名、および印刷ファイルの更新日時を、印刷ファイルのファイル識別情報の一例として登録しているが、これに限定されることはない。すなわち、印刷ファイルを識別可能な情報であればいずれでもよく、例えば、印刷ファイルのファイルサイズ等でもよい。
また、キャッシュ管理情報とは、MFP100に登録されている印刷ファイルのサムネイルに関する情報であって、印刷ファイルのサムネイルが登録されているか否かの判断に用いる。図7は、MFPの記憶部120に登録されているキャッシュ管理情報の一例を示す図である。図7に示すように、キャッシュ管理情報には、例えば、印刷ファイルのファイル名と、サムネイルの生成日時と、サムネイルの登録場所とが対応付けて登録されている。
図7では、例えば、印刷ファイルのファイル名「\\192.168.0.1\SharedFiles\POPサンプル\SALE.pdf」と、サムネイルの生成日時「2016/02/27/12:00:30」と、サムネイルの登録場所「Cache\1231248yt3.jpg」とが対応付けられている。これにより、ファイル名「\\192.168.0.1\SharedFiles\POPサンプル\SALE.pdf」のサムネイルが、2016年2月27日12時00分30秒に生成され、記憶部120における「Cache\1231248yt3.jpg」に登録されていることがわかる。
次に、MFP100の本体10の機能について説明する。通信制御部121は、通信I/F15により、ネットワーク30を介してファイルサーバ300などの外部装置との間で各種情報や画面等を送受信する。また、接続制御部123は、接続I/F16により、操作部20との間で各種情報や画面等を送受信する。
印刷制御部122は、エンジン部17により、ユーザにより指定された印刷ファイルを印刷するものであって、印刷ファイルの印刷を実行するプリンタアプリケーション(プリンタアプリ)により実現される。印刷制御部122は、出力制御部の一例である。
次に、MFP100の操作部20の機能について説明する。入力受付部101は、操作パネル27から、ユーザによる各種操作入力を受け付ける制御を行う。具体的には、入力受付部101は、印刷ファイルの印刷処理を実行する印刷アプリ50の起動を受け付ける。また、入力受付部101は、サーバアドレス入力画面(入力画面の一例)から、接続を所望するファイルサーバを特定するアドレス(IPアドレス等)の入力を受け付ける。また、入力受付部101は、認証情報入力画面から、認証情報の入力を受け付ける。また、入力受付部101は、フォルダ選択画面から、一階層下のフォルダに移動する場合のフォルダの選択や、ルートフォルダとして登録するフォルダの選択を受け付ける。
また、入力受付部101は、ファイル一覧表示画面から、印刷を所望する印刷ファイルの指定、当該印刷ファイルの印刷指示(出力指示の一例)の入力、および印刷設定(出力設定の一例)等を受け付ける。また、入力受付部101は、印刷ファイル一覧表示画面を再表示する場合、印刷ファイル一覧表示画面を再表示する旨の再表示指示の入力を受け付ける。なお、各種画面の詳細は後述する。
表示制御部102は、操作パネル27に、設定画面等の各種画面や各種情報を表示する制御を行う。具体的には、表示制御部102は、接続を所望するファイルサーバのアドレスを入力するためのサーバアドレス入力画面を表示する。図8は、サーバアドレス入力画面の一例を示す図である。図8に示すように、サーバアドレス入力画面D1では、ファイルサーバのアドレスの入力を促す文字が表示されるとともに、ファイルサーバ300のアドレス(コンピュータ名またはIPアドレス)を入力する入力領域aが表示されている。ユーザは、入力領域aにカーソルを移動させ、ファイルサーバ300のアドレスを入力する。
また、表示制御部102は、認証情報を入力するための認証情報入力画面を表示する。図9は、認証情報入力画面の一例を示す図である。図9に示すように、認証情報入力画面D2では、認証情報であるユーザIDとパスワードの入力を促す文字が表示されるとともに、ユーザIDを入力する入力領域bと、パスワードを入力する入力領域cと、処理を戻す「戻る」ボタンd、および処理を進める「次へ」ボタンeが表示されている。ユーザは、入力領域b、cにそれぞれユーザID、パスワードを入力することで認証情報を入力する。
また、表示制御部102は、フォルダを選択するためのフォルダ選択画面を表示する。図10は、フォルダ選択画面の一例を示す図である。図10に示すように、フォルダ選択画面D3では、フォルダの選択を促す文字が表示されるとともに、選択されたフォルダが表示される表示領域fと選択可能な複数のフォルダ群gが画面中央に表示され、処理を戻す「戻る」ボタンh、および処理を進める「次へ」ボタンiが表示されている。ユーザは、複数のフォルダ群gのうちのいずれかのフォルダを長押しすると、さらに一階層下のフォルダ群が表示され、さらにその中のいずれかのフォルダを選択することで一階層下のフォルダに移動できる。また、ユーザが複数のフォルダ群gのうちのいずれかのフォルダを押下することでフォルダが選択されると、表示領域fに選択されたフォルダが表示され、さらに「次へ」ボタンiを押下すると、選択したフォルダがルートフォルダとして決定され、登録される。
また、表示制御部102は、印刷ファイルを指定するためのファイル一覧表示画面を表示する。図11は、ファイル一覧表示画面の一例を示す図である。図11に示すように、ファイル一覧表示画面D4では、印刷ファイルのサムネイルP1〜6が表示されている。そして、未印刷の印刷ファイルのサムネイルP1、P5には、サムネイルの右上に未印刷である旨を示すバッヂP1a、P5a(未出力情報の一例)がそれぞれ付されて表示されている。これにより、未印刷の印刷ファイルを特定できるため、サムネイルP1、P5が示す印刷ファイルが未印刷であることをユーザが識別できる。そして、ユーザは、この未出力情報であるバッヂが付されている印刷ファイルを指定することで、未印刷の印刷ファイルを印刷することができる。図11のバッヂP1a、P5aは、「未印刷」という文字が表示されているが、未印刷であることをユーザが認識可能であればどのような表示でもよい。また、ファイル一覧表示画面D4は、印刷ファイルのサムネイルの一覧が表示されており、印刷ファイルの選択画面の一例である印刷ファイルの一覧に相当する。ファイル一覧表示画面を表示するタイミングとしては、印刷アプリ50の起動を受け付けた場合、印刷ファイル一覧表示画面の再表示指示の入力を受け付けた場合、および印刷ファイルが印刷された場合がある。
通信制御部103は、通信I/F25により、例えば、スマートフォンやタブレット等の携帯端末との間で各種情報を送受信する。また、接続制御部108は、接続I/F26により、本体10と間で各種情報や画面等を送受信する。従って、接続制御部108は、接続I/F26により、本体10の接続制御部123を経由して通信制御部121によってファイルサーバ300などの外部装置から受信した各種情報を受信したり、各種情報をファイルサーバ300などの外部装置に送信する。
取得部104は、記憶部120から所望の情報を取得する。具体的には、例えば、取得部104は、ファイル一覧表示画面を表示する際にファイルサーバ300と接続するため、記憶部120からファイルサーバ300のサーバ情報を検索して取得する。また、取得部104は、判定部106により印刷ファイルが未印刷か否かの判定を行う際に、記憶部120から印刷済情報を取得する。また、取得部104は、ファイル一覧表示画面を表示する際、記憶部120にサムネイルが登録されている場合は当該サムネイルを取得する。また、取得部104は、未印刷の印刷ファイルがあった場合、記憶部110から未出力情報を取得する。
登録制御部105は、記憶部120に情報を登録する制御を行う。具体的には、登録制御部105は、サーバ情報として、ユーザから入力されたファイルサーバ300のアドレス(IPアドレス等)、認証情報(ユーザID、パスワード等)、およびフォルダ選択画面から選択されたルートフォルダのフォルダ名を記憶部120に登録する。また、登録制御部105は、印刷ファイルを印刷した場合、印刷した印刷ファイルのファイル名、更新日時、および印刷日時を対応付けた印刷済情報を記憶部120に登録する。
判定部106は、記憶部120に登録されている印刷済情報を用いて、印刷ファイルが未印刷か否かを判定する。具体的には、判定部106は、ファイルサーバ300から受信したファイル名の一覧および更新日時と、印刷済情報のファイル名および更新日時を比較する。そして、受信したファイル名および更新日時のうち、印刷済情報のファイル名および更新日時と、少なくともいずれか一方が一致しない印刷ファイルを未印刷と判定する。具体例を用いた判定方法については後述する。そして、未印刷と判定した印刷ファイルのサムネイルには未出力情報(一例として未印刷である旨を示すバッヂ)が付されてファイル一覧表示画面に表示されることになる。
また、判定部106は、ファイル一覧表示画面を表示する際に、記憶部120に登録されたキャッシュ管理情報に表示を所望する印刷ファイルのサムネイルが登録されているか否かを判定する。
サムネイル生成部107は、印刷ファイルを縮小してサムネイルを生成する。サムネイルは、多数の画像や文書を一覧表示するために印刷ファイルを本来のサイズより縮小した画像データである。本実施形態では、記憶部120に登録されたキャッシュ管理情報に表示を所望する印刷ファイルのサムネイルが登録されていない場合に、サムネイル生成部107は、サムネイルを生成する。具体的には、サムネイル生成部107は、通信制御部121によりファイルサーバ300から受信した印刷ファイルを、接続制御部108および接続制御部123を経由して取得し、取得した印刷ファイルを縮小してサムネイルを生成する。
以下に、サムネイルを取得または生成して、ファイル一覧表示画面を表示する処理について画面を参照しながら説明する。図12は、サムネイルが表示されていないファイル一覧表示画面の一例を示す図である。図13は、1つ目のサムネイルが表示されたファイル一覧表示画面の一例を示す図である。
まず、表示制御部102は、ファイル一覧表示画面にサムネイルを表示する場合の初期状態において、図12に示すように全ての印刷ファイルのサムネイルを読み込み待ちのアイコンとし、サムネイルが全て表示されていないファイル一覧表示画面D5を表示する。
記憶部120には、サムネイルの情報を登録したキャッシュ管理情報が登録されている(図7参照)。図7および図12を参照して説明すると、「SALE.pdf」の印刷ファイルのサムネイルを表示する場合、判定部106は、まず、サムネイルP1「SALE.pdf」の情報が、キャッシュ管理情報(図7参照)に存在するかを検索する。検索の結果、キャッシュ管理情報に存在するため、判定部106は、「SALE.pdf」の印刷ファイルの最終更新日時と、サムネイル生成日時を比較する。
比較の結果、サムネイル生成日時の方が新しければ、判定部106は、キャッシュデータあり(サムネイルあり)と判定する。一方、印刷ファイルの最終更新日時の方が新しければ、判定部106は、MFP100にキャッシュされたサムネイルの生成後に、ファイルサーバ300の印刷ファイルが更新(修正)された可能性があるため、キャッシュデータなし(サムネイルなし)と判定する。
キャッシュデータありと判定された場合、記憶部120から「SALE.pdf」の印刷ファイルのサムネイルを取得して、ファイル一覧表示画面D6に表示する(図13参照)。一方、キャッシュデータなしと判定された場合、通信制御部121を介して「SALE.pdf」の印刷ファイルを取得して、サムネイル生成部107は、取得した印刷ファイルから新規にサムネイルを生成する。そして、生成されたサムネイルをファイル一覧表示画面D6に表示する(図13参照)。登録制御部105は、生成したサムネイルをキャッシュデータとして、サムネイルキャッシュの登録場所である記憶部120に登録した後、図7に示すキャッシュ管理情報に生成したサムネイルの情報(印刷ファイルのファイル名、サムネイル生成日時、サムネイルの登録場所)を登録する。
また、登録制御部105は、追加された際にサムネイルの合計サイズが予め規定したサイズを超えた場合、サムネイル生成日時の古い順にサムネイルの削除を行う。このように、登録したサムネイルが規定したサイズを超えないようにすることで、MFP100の記憶部120を必要以上に圧迫することがない。
次に、MFP100に接続するファイルサーバ300のサーバ情報をMFP100に登録する処理について説明する。以下では、MFP100での処理について説明するが、MFP200についでも同様である。図14は、実施形態のMFPにおけるファイルサーバのサーバ情報の登録処理を示すシーケンス図である。
まず、操作部20は、ユーザから印刷アプリ50の起動を受け付けると(ステップS10)、記憶部120に対してサーバ情報があるか否かの検索を行う(ステップS11)。MFP100の初回起動時には、ファイルサーバ300と接続されたことがないため、サーバ情報は未登録である(ステップS12)。
従って、操作部20は、サーバアドレス入力画面(図8参照)を表示して(ステップS13)、ユーザに利用するファイルサーバのアドレスの入力を促す。そして、操作部20は、サーバアドレス入力画面から、ユーザからのファイルサーバのアドレスの入力を受け付ける(ステップS14)。ここでは、ファイルサーバ300のアドレスが入力された場合について説明する。従って、例えば、ユーザにより、図8に示すサーバアドレス入力画面D1の入力領域aにファイルサーバ300のIPアドレスが入力される。
次に、操作部20は、サーバアドレス入力画面D1の画面遷移ボタン(図8における「次へ」ボタンk)が押下されることで画面遷移指示の入力を受け付けた場合、フォルダ情報の要求コマンド(フォルダ名の一覧の要求コマンド)を送信し、フォルダ名の一覧をファイルサーバ300に要求する(ステップS15)。その応答として、SMBプロトコルにより、ファイルサーバ300から認証情報の要求を送信する(ステップS16)。フォルダ名の一覧の要求後には、ファイルサーバ300からフォルダ名の一覧を送信する応答を行ってもよい。
当該要求を受けた操作部20は、認証情報入力画面(図9参照)を表示し(ステップS17)、ユーザに認証情報の入力を促す。そして、操作部20は、認証情報入力画面から、ユーザからの認証情報の入力を受け付け(ステップS18)、受け付けた認証情報をファイルサーバ300に送信する(ステップS19)。例えば、ユーザにより、図9に示す認証情報入力画面D2の入力領域bにユーザIDが入力され、入力領域cにパスワードが入力される。
ファイルサーバ300においてユーザの認証処理が成功すると、ファイルサーバ300は、操作部20にフォルダ名の一覧を送信する(ステップS20)。フォルダ名の一覧を受信した操作部20は、フォルダ名を用いてフォルダ選択画面(図10参照)を表示し(ステップS21)、ユーザにルートフォルダの選択を促す。
必要に応じて、フォルダ選択画面に表示されたフォルダ名の一階層下のフォルダへ移動する場合、ユーザからのフォルダの移動を受け付ける(ステップS22)。その場合、操作部20は、ファイルサーバ300に、再度、選択されたフォルダ名とともに一階層下のフォルダ名の一覧を要求し(ステップS23)、ファイルサーバ300は、操作部20に一階層下のフォルダのフォルダ名の一覧を送信する(ステップS24)。フォルダ名の一覧を受信した操作部20は、フォルダ名を用いてフォルダ選択画面(図10参照)を表示し(ステップS25)、ユーザにルートフォルダの選択を促す。
一階層下のフォルダに移動しない場合は、ステップS22〜25までの処理は行わない。また、さらに一階層下のフォルダに移動する場合は、ステップS22〜25までの処理を繰り返す。
そして、操作部20は、フォルダ選択画面(図10参照)から、ユーザからのルートフォルダとして登録するフォルダの選択を受け付ける(ステップS26)。例えば、ユーザにより、図10のフォルダ選択画面D3のフォルダ群gのうちいずれかのフォルダが押下されることでフォルダが選択される。操作部20は、選択されたフォルダをルートフォルダとして、次回以降のファイルサーバ300へのアクセスに必要なサーバ情報(アドレス、認証情報、ルートフォルダ)を、記憶部120に登録する(ステップS27、28)。そして、操作部20は、サーバ情報が登録完了した旨を表示する(ステップS29)。これにより、ユーザがファイルサーバ300と接続可能であることを認識する。
次に、ファイルサーバ300に保存された印刷ファイルの一覧をMFP100に表示する処理について説明する。図15は、実施形態のMFPにおける印刷ファイルの一覧の表示処理を示すシーケンス図である。
まず、操作部20は、ユーザから印刷アプリ50の起動を受け付けると(ステップS40)、記憶部120に対してサーバ情報があるか否かの検索を行い(ステップS41)、登録済みであるファイルサーバ300のサーバ情報を取得する(ステップS42)。
操作部20は、取得したサーバ情報のアドレスによってファイルサーバ300にアクセスし、認証情報・ルートフォルダのフォルダ名を送信し、ファイル名の一覧・ファイル更新日時を要求する(ステップS43)。
ここで、MFP100からファイルサーバ300に送信する認証情報およびルートフォルダのフォルダ名を送信し、ファイル名の一覧および更新日時を要求する処理について、図16を参照して具体的に説明する。図16は、MFPからファイルサーバに送信する認証情報およびルートフォルダのフォルダ名を送信し、ファイル名の一覧および更新日時を要求する際の説明図である。図16に示すように、ファイルサーバ300に送信する情報の項目として、コマンド、ルートフォルダのフォルダ名、および認証情報であるユーザID、パスワードがある。そして、図16では、これらの項目に対応する具体的な内容が示されている。すなわち、MFP100は、コマンドである“ファイル名の一覧および更新時刻の取得”と、ルートフォルダのフォルダ名である“\\192.168.0.1\SharedFiles\POPFiles”(フルパス)と、認証情報であるユーザ名である“userB”と、認証情報であるパスワードである“password”とをファイルサーバ300に送信する。
図15に戻り、操作部20は、ルートフォルダに保存されている印刷ファイルのファイル名の一覧および更新日時を受信する(ステップS44)。
ここで、MFP100がファイルサーバ300から受信するファイル名の一覧および更新日時(図16の情報に対する応答)について、図17、18を参照して具体的に説明する。図17は、MFPがファイルサーバから受信するファイル名の一覧および更新日時の説明図である。図17に示すように、ファイルサーバ300から受信する情報の項目として、種別と、名前、アクセス許可情報、所有者、作成日時、最終更新日時、およびサイズがある。そして、図17では、これらの項目に対応する具体的な内容が示されている。
すなわち、「種別」は、フラグ型であって、フォルダ/印刷ファイルのいずれかを示すものである。また、「名前」は、文字型のデータ形式であって、印刷ファイルのファイル名または印刷ファイルが保存されたフォルダのフォルダ名を示すものである。図17では、種別が印刷ファイルであった場合の名前の例であって、印刷ファイル名「\\192.168.0.1\SharedFiles\POPFiles\チラシA.pdf」を示している。また、「アクセス許可情報」は、フラグ型であって、読み書き可能/読み込みのみ/アクセス不可のいずれかを示すものである。また、「所有者」は、文字型のデータ形式であって、印刷ファイルを生成した者を示しており、図17では、“userB”を示している。また、印刷ファイルの「作成日時」および「最終更新日時」は、整数のデータ形式であり、図17では、両者とも日時「2016/02/25/13:00:05」である旨を示している。また、「サイズ」は、整数のデータ形式であり、印刷ファイルのサイズとして、図17では、1048576バイトである旨を示している。
また、ファイルサーバ300に保存されている1つのフォルダには、例えば、複数のフォルダや印刷ファイルが存在する場合がある。このため、図18を参照して、ファイルサーバ300から図17に示した項目に対して複数の情報が応答として送信される場合について説明する。図18は、ファイルサーバからMFPに送信するファイル名の一覧および更新日時の説明図である。
ファイルサーバ300に保存されているフォルダに複数のフォルダや印刷ファイルが存在する場合、図18に示すように、各項目(種別と、名前、アクセス許可情報、所有者、作成日時、最終更新日時、およびサイズ)に対応して複数の情報が応答される。図18では、3つの印刷ファイルと、1つのフォルダが保存されている例を示している。
図15に戻り、操作部20は、受信した印刷ファイルのファイル名および更新日時と、記憶部120に登録された印刷済情報とを比較することで、ルートフォルダに保存された印刷ファイルが印刷済みか否かを判断し、印刷済の印刷ファイルまたは未印刷の印刷ファイルのいずれかの判定を行う(ステップS45、46)。フォルダ内における印刷ファイルに対して全て判定されるまで、ステップS45、46の処理を繰り返す(L1)。
なお、操作部20の印刷アプリ50は、ステップS44において、ファイルサーバ300から取得したファイル名の一覧および更新日時を、本体10に送らず操作部20のメモリ(記憶部110)に保持しておく。そして、印刷アプリ50は、未出力情報の表示時のために、印刷済情報を操作部20に呼び出して、取得したファイル名の一覧と更新日時を印刷済情報と比較する。印刷済情報は本体10の記憶部120または操作部20の記憶部110に保存されている。印刷アプリ50は、印刷済情報が本体10の記憶部120に保存されている場合は、操作部20に呼び出して比較する。
ここで、印刷済情報の一例である図6と、ファイルサーバ300から受信したファイル名の一覧および更新日時等の一例である図18とを参照して、印刷ファイルが未印刷か否かの判定について具体的に説明する。
まず、操作部20は、図18の1番目の印刷ファイルと、図6の印刷済情報とを比較する。図18の1番目の名前(印刷ファイルのファイル名)「\\192.168.0.1\SharedFiles\POPFiles\チラシA.pdf」が、印刷済情報に登録されている印刷ファイルのファイル名に存在するかの検索を行う。検索の結果、印刷済情報の1番目の印刷ファイルのファイル名と一致しているため、操作部20は、図18の1番目の印刷ファイルが図6の印刷済情報に存在すると判断する。次に、操作部20は、図18の1番目の印刷ファイルの最終更新日時と、印刷済情報の1番目の印刷ファイルの更新日時とが一致するか否かを判断する。判断の結果、両者は一致しているため、操作部20は、図18の1番目の印刷ファイルは、既に印刷済みであると判定する。
次に、操作部20は、図18の2番目の印刷ファイルと、図6の印刷済情報とを比較する。図18の2番目の印刷ファイルの名前「\\192.168.0.1\SharedFiles\POPFiles\チラシB.pdf」が、印刷済情報に登録されている印刷ファイルのファイル名に存在するかの検索を行う。検索の結果、印刷済情報の2番目の印刷ファイルのファイル名と一致しているため、操作部20は、図18の2番目の印刷ファイルが図6の印刷済情報に存在すると判断する。次に、上記と同様に、操作部20は、図18の2番目の印刷ファイルの最終更新日時と、印刷済情報の2番目の印刷ファイルの更新日時とが一致するか否かを判断する。判断の結果、両者は一致しないため、操作部20は、図18の2番目の印刷ファイルは、印刷後に内容が変更されたと判断し、未印刷の印刷ファイルであると判定する。
次に、操作部20は、図18の3番目の印刷ファイルと、図6の印刷済情報とを比較する。図18の3番目の印刷ファイルの名前「\\192.168.0.1\SharedFiles\POPFiles\チラシC.pdf」が、印刷済情報に登録されている印刷ファイルのファイル名に存在するかの検索を行う。検索の結果、印刷済情報に存在しないことがわかり、図18の3番目の印刷ファイルは、未印刷の印刷ファイルであると判定する。
次に、図18の最後(4番目)はフォルダなので、再度、ファイルサーバ300からフォルダ「\\192.168.0.1\SharedFiles\POPFiles\FolderA」のファイル名の一覧および更新日時を取得し、取得した印刷ファイルそれぞれと印刷済情報とを上述と同様の方法で判定する。そして、フォルダ内の1つでも未印刷の印刷ファイルが存在した場合は、操作部20は、図18の最後のフォルダは、未印刷のフォルダであると判定する。
図15に戻り、操作部20は、未印刷であると判定された印刷ファイルのサムネイルには、ユーザが未印刷と認識可能なように、未出力情報(一例として未印刷である旨のバッヂ)を付してファイル一覧表示画面(図11参照)を表示する(ステップS47)。
これにより、ユーザは、印刷ファイルそれぞれに対して印刷済か否かを視覚的に区別できるため、それぞれの印刷ファイルが印刷済みであるか未印刷であるかを容易に識別することができる。例えば、図11に示すファイル一覧表示画面D4では、サムネイルP1に未印刷である旨のバッヂP1aが表示され、サムネイルP5に未印刷である旨のバッヂP5aが表示されているため、サムネイルP1、P5は未印刷であることが視覚的に区別可能となっている。
図15では、印刷アプリ50が起動された場合に、ファイル一覧表示画面を表示する処理について説明したが、他のタイミングでファイル一覧表示画面を表示してもよい。具体的には、例えば、ファイル一覧表示画面の再表示指示の入力を受け付けた場合、および印刷ファイルが印刷された場合にも、ファイル一覧表示画面を表示する構成としてもよい。すなわち、操作部20によりユーザからの再表示指示の入力を受け付けた場合、または、本体10により印刷ファイルが印刷された場合、記憶部120に対してサーバ情報があるか否かの検索を行って、ファイル一覧表示画面を表示する(ステップS41〜47)。
次に、印刷ファイルのサムネイルを生成する処理について説明する。MFP100では、図15に示した印刷ファイルの一覧の表示処理の実行に並行して、サムネイルの生成処理を非同期で行っている。図19は、実施形態のMFPにおけるサムネイル生成処理の流れを示すフローチャートである。印刷アプリ50は、アプリ起動時やファイル一覧表示画面の表示時に、ファイルサーバ300から取得したファイル名の一覧のうちサムネイルのない印刷ファイルがあれば、すべての印刷ファイルを操作部20に取得してまとめてサムネイルを作成する。
まず、操作部20は、ファイル一覧表示画面を表示する際、キャッシュ管理情報を参照して、印刷ファイルのサムネイルが記憶部120に登録されているか否かを検索する(ステップS60)。サムネイルが登録されている場合(ステップS61:Yes)、記憶部120に登録されているサムネイルを取得する(ステップS62)。
一方、サムネイルが登録されていない場合(ステップS61:No)、操作部20は、ファイルサーバ300に印刷ファイルを要求する(ステップS63)。ファイルサーバ300は、要求された印刷ファイルを操作部20に送信する(ステップS64)。
操作部20は、ファイルサーバ300から印刷ファイルを受信し(ステップS65)、受信した印刷ファイルからサムネイルを生成する(ステップS66)。操作部20は、生成したサムネイルを記憶部120に登録するとともに、キャッシュ管理情報に生成したサムネイルの情報を登録する(ステップS67)。
そして、操作部20は、図15のステップS47において、図19のステップS62において取得したサムネイルと、図19のステップS66において生成したサムネイルとを用いてファイル一覧表示画面を表示する。この時、操作部20は、図15の判定結果(ステップS45、46)に基づいて、未印刷の印刷ファイルのサムネイルには、記憶部110から取得した未出力情報(一例として未印刷である旨のバッヂ)を付して表示する。
次に、印刷アプリ50からファイルサーバ300に保存された印刷ファイルを指定して印刷指示を行った場合に、ファイルサーバ300から指定された印刷ファイルを取得してMFP100で印刷する処理について説明する。図20は、実施形態のMFPにおける印刷ファイルの印刷処理を示すシーケンス図である。
まず、操作部20の印刷アプリ50は、ユーザにより、ファイル一覧表示画面から、印刷を所望する印刷ファイルの指定、および印刷指示を受け付ける(ステップS80)。次に、印刷アプリ50は、ファイルサーバ300にユーザにより指定された印刷ファイルを要求し(ステップS81)、当該印刷ファイルを取得すると、操作部20の記憶部110に一次記憶する(ステップS82)。
そして、印刷アプリ50は、取得した印刷ファイルを本体10の記憶部120に書き込む(ステップS83)。この時、操作部20は、本体10の記憶部120をマウントしており、印刷アプリ50は、印刷ファイルをローカルフォルダのように書き込む(記憶させる)。なお、操作部20から本体10へ印刷ファイルを書き込みする際には、本体10のWebAPIを使わずに直接書き込む。
書き込みが完了すると、書き込み完了の応答(書き込み完了通知)が操作部20に送られる(ステップS84)。この時、本体10の記憶部120への書込み完了の応答には、記憶部120のファイルパスが含まれている。
ここで、本体10のWebAPIを使って本体の記憶部120に印刷ファイルを書き込み(記憶)する場合には、操作部20から本体10のWebAPIに対して書き込み指示をすると、本体10の記憶部120のファイルパスがWebAPIから操作部20に返され、そのファイルパスに対して書き込みを実行する。
次に、印刷アプリ50は、本体10のWebAPIに対して、記憶部120に記憶した印刷ファイルのファイルパスと印刷設定(出力設定)を含む印刷指示(出力指示)を送信する(ステップS85)。印刷指示を受けた本体10のWebAPIは、当該印刷指示を本体10内のプリンタアプリに渡す(ステップS86)。これにより、プリンタアプリは、受けた印刷指示に基づく印刷ファイルを記憶部120に取りに行き、当該印刷ファイルを取得する(ステップS87、88)。そして、プリンタアプリは、取得した印刷ファイルを印刷する(ステップS89)。その後、操作部20は、印刷した印刷ファイルのファイル名および更新日時等を、記憶部120の印刷済情報に登録する。
なお、ユーザから印刷アプリ50によりサムネイルの選択を受け付け、印刷ボタンの押下を受け付けると、印刷アプリ50は、ファイルサーバ300から操作部20に印刷ファイルを取得し、操作部20から本体10に印刷ファイルを書き込み、印刷指示を送信するまでを全て実行する。
次に、MFP100におけるサーバ情報の登録処理の流れを説明する。図21は、実施形態のMFPにおけるサーバ情報の登録処理の流れを示すフローチャートである。
まず、入力受付部101は、ユーザから印刷アプリ50の起動を受け付けると(ステップS100)、取得部104は、記憶部120にサーバ情報が登録されているか否かを判断し(ステップS101)、登録されている場合(ステップS101:Yes)、ファイル一覧表示画面の表示処理(図22)へ進む。
一方、記憶部120にサーバ情報が登録されていない場合(ステップS101:No)、MFP100はファイルサーバ300と接続されたことがないと判断し、表示制御部102は、サーバアドレス入力画面(図8参照)を表示する(ステップS102)。
入力受付部101は、サーバアドレス入力画面からファイルサーバ300のアドレスの入力を受け付けるまで待機する(ステップS103:No)。入力受付部101がファイルサーバ300のアドレスの入力を受け付けた場合(ステップS103:Yes)、印刷アプリ50は、接続制御部108、接続制御部123、および通信制御部121を介して、ファイルサーバ300にフォルダ名の一覧を要求する(ステップS104)。
次に、印刷アプリ50は、接続制御部108、接続制御部123、および通信制御部121を介して、ファイルサーバ300が送信した認証情報の要求を受信する(ステップS105)。表示制御部102は、認証情報を入力するための認証情報入力画面(図9参照)を表示する(ステップS106)。
入力受付部101は、認証情報入力画面から認証情報の入力を受け付けるまで待機する(ステップS107:No)。入力受付部101が認証情報の入力を受け付けた場合(ステップS107:Yes)、印刷アプリ50は、接続制御部108、接続制御部123、および通信制御部121を介して、ファイルサーバ300に認証情報を送信する(ステップS108)。
ファイルサーバ300においてユーザの認証処理が成功した場合、印刷アプリ50は、接続制御部108、接続制御部123、および通信制御部121を介して、ファイルサーバ300が送信したフォルダ名の一覧を受信する(ステップS109)。表示制御部102は、受信したフォルダ名を基に、フォルダ選択画面(図10参照)を表示する(ステップS110)。
入力受付部101がフォルダの移動を受け付けた場合(ステップS111:Yes)、印刷アプリ50は、接続制御部108、接続制御部123、および通信制御部121を介して、ファイルサーバ300に一階層下のフォルダ名の一覧を要求して(ステップS112)、フォルダ名の一覧を受信し(ステップS113)、ステップS110の処理に戻る。
一方、入力受付部101がフォルダの移動を受け付けず(ステップS111:No)、
フォルダの選択を受け付けた場合(ステップS114:Yes)、登録制御部105は、選択されたフォルダをルートフォルダと判断し、ファイルサーバ300のアドレス、認証情報、およびルートフォルダをサーバ情報として記憶部120に登録する(ステップS115)。
一方、入力受付部101がフォルダの移動を受け付けず(ステップS111:No)、フォルダの選択も受け付けなかった場合(ステップS114:No)、ステップS111に戻って処理を繰り返す。
次に、MFP100にサーバ情報が登録されている場合におけるファイル一覧表示画面(図11参照)の表示処理の流れを説明する。図22は、実施形態のMFPにおけるファイル一覧表示画面の表示処理の流れを示すフローチャートである。
図21のステップS101において、記憶部120にサーバ情報が登録されている場合(ステップS101:Yes)、取得部104は、記憶部120からサーバ情報を取得する(ステップS120)。
次に、印刷アプリ50は、接続制御部108、接続制御部123、および通信制御部121を介して、ファイルサーバ300にサーバ情報に含まれている認証情報とルートフォルダのフォルダ名を送信するとともに、ファイル名の一覧および更新日時を要求(図16参照)する(ステップS121)。そして、印刷アプリ50は、接続制御部108、接続制御部123、および通信制御部121を介して、ファイルサーバ300から、ルートフォルダに保存されている印刷ファイルのファイル名の一覧および更新日時(図18参照)を受信する(ステップS122)。
次に、判定部106は、受信したファイル名と、記憶部120に登録されている印刷済情報のファイル名とが一致するか否かを判断する(ステップS123)。一致しない場合(ステップS123:No)、判定部106は、当該ファイル名が示す印刷ファイルは、未印刷の印刷ファイルと判定する(ステップS126)。
一方、ステップS123において、一致する場合(ステップS123:Yes)、判定部106は、一致すると判定されたファイル名が示す印刷ファイルの更新日時(受信した更新日時)と、印刷済情報においてファイル名が一致した印刷ファイルの更新日時とが一致するか否かを判断する(ステップS124)。一致しない場合(ステップS124:No)、判定部106は、当該ファイル名が示す印刷ファイルは、未印刷ファイルと判定する(ステップS126)。
一方、ステップS124において、一致する場合(ステップS124:Yes)、判定部106は、当該ファイル名が示す印刷ファイルは、印刷済の印刷ファイルと判定する(ステップS125)。判定部106は、受信した全てのファイル名を判定したか否かを判断し(ステップS127)、全てのファイル名を判定していない場合(ステップS127:No)、ステップS123に戻って判定処理を繰り返す(ステップS123〜126)。
一方、全てのファイル名を判定した場合(ステップS127:Yes)、表示制御部102は、未印刷と判定された印刷ファイルに、記憶部110から取得した未出力情報(一例として未印刷である旨を示すバッヂ)を付して、ファイル一覧表示画面(図11参照)を表示する(ステップS128)。
なお、図22のステップS128では、未印刷の印刷ファイルに未出力情報であるバッジを付して、ファイル一覧表示画面(図11参照)を表示しているが、未出力情報であるバッジではなく、印刷済の印刷ファイルに出力済情報であるバッジを付してファイル一覧表示画面を表示してもよい。また、未出力情報であるバッジおよび出力済情報であるバッジの両方を付してファイル一覧表示画面を表示してもよい。具体的に図を用いて説明する。図23−1、図23−2は、ファイル一覧表示画面の他の一例を示す図である。
例えば、図23−1に示すように、ファイル一覧表示画面D40−1では、印刷ファイルのサムネイルP1〜6が表示されている。そして、印刷済の印刷ファイルのサムネイルP2、P3、P4、P6には、サムネイルの右上に印刷済である旨を示すバッジP2a、P3a、P4a、P6a(出力済情報)がそれぞれ付されて表示されている。これにより、印刷済の印刷ファイルを特定できるため、バッジが付されていないサムネイルP1、P5が示す印刷ファイルが未印刷であることをユーザが識別できる。そして、ユーザは、バッヂが付されていない印刷ファイルを指定することで、未印刷の印刷ファイルを印刷することができる。
また、例えば、図23−2に示すように、ファイル一覧表示画面D40−2では、印刷ファイルのサムネイルP1〜6が表示されている。そして、未印刷の印刷ファイルのサムネイルP1、P5には、サムネイルの右上に未印刷である旨を示すバッヂP1a、P5aがそれぞれ付されて表示されている。また、印刷済の印刷ファイルのサムネイルP2、P3、P4、P6には、サムネイルの右上に印刷済である旨を示すバッジP2a、P3a、P4a、P6aがそれぞれ付されて表示されている。これにより、未印刷および印刷済の印刷ファイルを特定できるため、サムネイルP1、P5が示す印刷ファイルが未印刷であることをユーザが識別できる。そして、ユーザは、この未出力情報であるバッヂP1a、P5aが付されている印刷ファイルを指定することで、未印刷の印刷ファイルを印刷することができる。
このように、本実施形態のMFP100は、ファイルサーバ300に保存されている印刷ファイルの印刷時に、MFP100の記憶部120に印刷済情報(印刷ファイルの印刷日時、ファイル名、更新日時)を登録する。その後、ファイル一覧表示画面によって印刷ファイルの一覧を表示する際に、各々の印刷ファイルが印刷済情報におけるファイル名および更新日時と一致しているか否かにより、ファイルサーバ300に保存されている印刷ファイルが印刷済みであるか否かを判断する。そして、未出力の印刷ファイルには、未出力情報(一例として未印刷である旨を示すバッヂ)を付して、印刷ファイル一覧表示画面を表示する。これにより、市販のファイルサーバとMFP100が接続された環境でファイルサーバに機能を追加することなく、MFP100または操作部20にアプリをインストールするだけで、複数のMFP自身(MFP100、200等)で、簡単にファイルサーバ300の印刷ファイルがMFP100で印刷済みであるか否かの印刷状況を管理し、ユーザに視覚的に区別できるようにわかり易く表示することができる。
ここで、上述した実施形態の画像処理システムでは、ファイルサーバ300から受信した印刷ファイルを印刷する際に、ファイル一覧表示画面を表示する構成となっていたが、これに限定されることはない。すなわち、出力の印刷以外の例として、ファイルのスキャン送信、ファイルを添付したメール送信、ファイル転送、またはファクス送信する際に、ファイル一覧表示画面を表示する構成としてもよい。
なお、本実施形態のMFP100で実行されるプログラム(印刷アプリ50)は、ROM等に予め組み込まれて提供される。本実施形態のMFP100で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態のMFP100で実行されるプログラム(印刷アプリ50)を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のMFP100で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施形態のMFP100で実行されるプログラム(印刷アプリ50)は、上述した各部(入力受付部、表示制御部、通信制御部、取得部、登録制御部、判定部、サムネイル生成部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。また、例えば、上述した各部の機能のうちの一部または全部が専用のハードウェア回路で実現されてもよい。
なお、上記の実施形態では、本発明の画像処理装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機(MFP)に適用した例を挙げて説明したが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の表示パネルを備えた画像処理装置であればいずれにも適用することができる。