A.第1実施例:
図1は、一実施例としての画像処理システムを示す説明図である。この画像処理システムは、サーバ100と、複合機200と、コンピュータ300と、を含んでいる。これらの装置100、200、300は、ネットワークNTに接続されており、互いに通信可能である。なお、後述するように、サーバ100と複合機200とを含むシステム1000は、画像データを用いて画像を印刷する印刷システムである。
サーバ100は、コンピュータを含む装置である。本実施例では、サーバ100は、プロセッサ110と、記憶装置115と、インタフェース190と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置115は、揮発性記憶装置120と、不揮発性記憶装置130と、を含んでいる。
プロセッサ110は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置120は、例えば、DRAMであり、不揮発性記憶装置130は、例えば、ハードディスクドライブである。不揮発性記憶装置130は、プログラム132と、アカウント情報テーブル134と、画像データテーブル135と、画像データ137と、を格納している。プロセッサ110は、プログラム132を実行することによって、ネットワークNTに接続された端末(例えば、コンピュータ300)から、印刷用の画像データを取得し、取得した画像データを複合機200に供給して、複合機200に画像を印刷させる処理を実行する。プロセッサ110は、これらの処理を実行する際に、アカウント情報テーブル134に基づく認証を行う(詳細は後述)。認証に成功した場合に、プロセッサ110は、サーバ100への画像データのアップロードを許容し、そして、複合機200への画像データの供給を許容する(詳細は後述)。プロセッサ110は、プログラム132の実行に利用される種々の中間データを、記憶装置115(例えば、揮発性記憶装置120、不揮発性記憶装置130のいずれか)に、一時的に格納する。
インタフェース190は、他の装置と通信するためのインタフェースである(例えば、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、インタフェース190は、有線または無線のネットワークインタフェースであり、ネットワークNTに接続されている。
複合機200は、プリンタの例であり、制御装置202と、スキャナ部280と、印刷部290と、カードリーダ295と、を有している。制御装置202は、プロセッサ210と、記憶装置215と、画像を表示する表示部240と、ユーザによる操作を受け入れる操作部250と、通信インタフェース270と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230とを、含んでいる。
プロセッサ210は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム232を格納している。プロセッサ210は、プログラム232を実行することによって、サーバ100から画像データを取得し、取得した画像データに従って印刷部290に画像を印刷させる処理を実行する(詳細は、後述)。プロセッサ210は、プログラム232の実行に利用される種々の中間データを、記憶装置215(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。本実施例では、プログラム232は、例えば、複合機200の製造者によって、ファームウェアとして、不揮発性記憶装置230に予め格納されている。ただし、プログラム232の少なくとも一部が、外部の装置(例えば、サーバ)から取得されて不揮発性記憶装置230に格納されるように、複合機200が構成されていてもよい。
表示部240は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部250は、ユーザによる操作を受け取る装置であり、例えば、表示部240上に重ねて配置されたタッチパネルである。ユーザは、操作部250を操作することによって、種々の指示を複合機200に入力可能である。
インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、インタフェース270は、有線または無線のネットワークインタフェースであり、ネットワークNTに接続されている。
スキャナ部280は、CCDやCMOSなどの光電変換素子を用いて光学的に文書等の対象物を読み取ることによって、読み取った画像(「スキャン画像」と呼ぶ)を表すスキャンデータを生成する。
印刷部290は、所定の方式(例えば、レーザ方式や、インクジェット方式)で、用紙(印刷媒体の一例)上に画像を印刷する装置である。本実施例では、印刷部290は、シアンC、マゼンタM、イエロY、ブラックKの4種類のインクを用いてカラー画像を印刷可能なインクジェット方式の印刷装置である。
カードリーダ295は、ICカード等のカードに記録されたデータを、接触、または、非接触で読み取る装置である。本実施例では、カードリーダ295は、例えば、NFC(Near Field Communication)、Bluetooth(登録商標)などの比較的近距離での無線通信によって、カードからデータを取得する装置である。
コンピュータ300は、サーバ100に印刷用の画像データを送信するために利用される装置であり、例えば、デスクトップコンピュータやタブレットコンピュータである。コンピュータ300は、プロセッサと、揮発性記憶装置と、不揮発性記憶装置と、ネットワークNTに接続するためのインタフェースと、を有している(図示省略)。
図2は、サーバ100に印刷用の画像データをアップロードする処理の例を示すシーケンス図である。図2の例は、コンピュータ300が、ユーザの指示に応じて、サーバ100に画像データを送信する場合を示している。
S100では、コンピュータ300は、ユーザの指示に応じて、認証のためのアカウント情報を、サーバ100に送信する。例えば、サーバ100のプロセッサ110は、アカウント情報を入力するためのログイン画面を提供するウェブサーバとして、動作する。ユーザは、コンピュータ300上で動作するウェブブラウザを操作し、サーバ100のログイン画面にアカウント情報を入力する。アカウント情報は、サーバ100の利用を認められたユーザを識別する情報である。本実施例では、アカウント情報として、認証IDが入力される。また、認証のために、パスワードも入力される。コンピュータ300は、入力された認証IDとパスワードとを、サーバ100へ送信する。
S110では、サーバ100のプロセッサ110は、アカウント情報テーブル134を参照して、S100で受信したアカウント情報の認証を行う。図示を省略するが、本実施例では、アカウント情報テーブル134は、認証IDとパスワードとの対応関係を表している。パスワードは、認証用のパスワードである。アカウント情報テーブル134の情報は、アカウント情報を管理する管理者によって、予め決定されている。
図2のS110では、プロセッサ110は、コンピュータ300からの認証IDが、アカウント情報テーブル134に登録済であり、かつ、コンピュータ300からのパスワードが、アカウント情報テーブル134によって認証IDに対応付けられたパスワードと一致する場合に、認証が成功したと判断する。図示を省略するが、認証に失敗した場合(認証IDが未登録、または、パスワードが誤っている場合)、プロセッサ110は、認証失敗をコンピュータ300に通知して、処理を終了する。以下、認証に成功したこととして、説明を行う。S120では、プロセッサ110は、認証成功をコンピュータ300に通知する。
S125では、コンピュータ300は、印刷用の画像データを準備する。例えば、ユーザは、コンピュータ300上で動作する文書作成プログラム、画像作成プログラム、画像閲覧プログラムなどのアプリケーションプログラムに対して、印刷するための文書や写真などの画像を選択する指示と、選択した画像を印刷するための画像データを作成する指示と、印刷の総部数N(以下、初期部数Nとも呼ぶ)を指定する指示と、を入力する。総部数Nは、1以上の整数に設定される。コンピュータ300は、指示に応じて、印刷用の画像データを生成する。生成される画像データは、Q頁(Qは1以上の整数)の画像を表すQ個のデータを含んでいる(以下、1頁の画像を表す画像データを、ページ画像データと呼ぶ)。また、生成される画像データは、複合機200の制御装置202によって解釈可能なデータ形式で表されたデータである。画像データは、例えば、印刷画素毎、かつ、インクの種類毎に、ドットの状態を表す画像データである。ドットの状態は、例えば、ドットの有無を含む。また、ドットの状態は、ドットの有無と、ドットのサイズと、を含んでもよい。このようなドットの状態を表す画像データは、印刷データとも呼ばれる。印刷データは、ユーザによって選択された画像を表す選択画像データから、生成され得る。例えば、選択画像データによって表される複数の画素のそれぞれの色値(例えば、RGBの色値)は、印刷に利用可能な色材の種類に対応する色成分(ここでは、CMYK)で表された色値に変換される。そして、変換済の色値を用いるハーフトーン処理によって、印刷データが生成される。
S130では、コンピュータ300は、印刷用の画像データと、総部数を表すデータである総部数データと、を含む印刷要求を、サーバ100に送信する。S135では、サーバ100のプロセッサ110は、コンピュータ300からの画像データと総部数データとを受信(すなわち、取得)する。このような画像データのアップロードは、アカウント情報の認証に成功した場合に、許可される。従って、コンピュータ300からの印刷要求は、アカウント情報に対応付けられている、と言える。
S140では、プロセッサ110は、取得した画像データを、記憶装置115(本実施例では、不揮発性記憶装置130)に格納する。S145では、プロセッサ110は、取得した画像データに関する情報を生成し、生成した情報を画像データテーブル135に追加する。
図3は、画像データテーブル135の例を示す概略図である。本実施例では、画像データテーブル135は、印刷IDと、認証IDと、画像データを示すパスと、総部数と、生成日時と、の対応関係を表している。印刷IDは、サーバ100による処理で用いられる識別番号である。プロセッサ110は、画像データがアップロードされるたびに、画像データテーブル135に含まれるいずれの印刷IDとも異なる番号を、アップロードされた画像データに割り付ける。印刷IDは、画像データを用いる印刷のための処理(印刷ジョブとも呼ぶ)毎に異なっている。認証IDは、画像データのアップロードのために認証された認証IDである。パスは、記憶装置115(ここでは、不揮発性記憶装置130)における画像データの格納位置を示している。総部数Tcは、印刷部数を示している。S145では、プロセッサ110は、総部数Tcを、印刷要求(図2:S130)に含まれる総部数データによって表される部数に、設定する。生成日時は、画像データがアップロードされた日時である。なお、画像データテーブル135を表すデータのうちの総部数Tcを表す部分データは、総部数Tcを表す総部数データである、といえる。
図2のS150では、プロセッサ110は、画像データのアップロードが完了したことを、コンピュータ300に通知する。以上により、図2の処理が終了する。
図4、図5は、サーバ100に格納された画像データを用いて画像を印刷する処理の例を示すシーケンス図である。図5は、図4の続きを示している。ユーザは、複合機200の操作部250を操作して、印刷処理の開始指示を入力する。これにより、図4、図5の処理が開始する。
S200では、ユーザは、複合機200に、アカウント情報(ここでは、認証ID)を入力する。本実施例では、ユーザは、認証IDとパスワードとが記録されたICカードを持っており、このICカードを複合機200のカードリーダ295に近づけることによって、認証IDとパスワードとを複合機200に入力する。なお、パスワードは、ICカードに記録されずに、操作部250の操作によって入力されてもよい。また、ユーザは、ICカードを用いずに、操作部250を操作することによって、認証IDとパスワードとを入力してもよい。
S210では、複合機200のプロセッサ210は、入力された認証IDとパスワードを表すデータを、サーバ100に送信する。サーバ100のプロセッサ110は、複合機200からの認証IDとパスワードを表すデータを、取得する。S220では、プロセッサ110は、アカウント情報テーブル134(図1)を参照して、S210で取得した認証IDの認証を行う。この認証の処理は、図2のS110と同じである。以下、認証に成功したこととして、説明を行う。また、複合機200に入力され、そして、認証に成功した認証IDを、対象認証IDとも呼ぶ。なお、図示を省略するが、認証に失敗した場合、プロセッサ110は、認証失敗を複合機200に通知して、処理を終了する。
S240では、プロセッサ110は、画像データテーブル135(図3)を参照して、対象認証IDに対応付けられた画像データを検索する。S250では、プロセッサ110は、認証結果(ここでは、成功)を表すデータと、対象認証IDに対応付けられた画像データの一覧を表すデータとを、複合機200に送信する。画像データの一覧は、画像データに対応付けられた情報(本実施例では、印刷IDと生成日時)のリストを表している。
S280では、複合機200のプロセッサ210は、表示部240に、サーバから取得したリストを用いて、画像データの一覧を表示する。S290では、ユーザは、操作部250を操作して、表示された一覧のうちの印刷したい画像データを選択する指示を、入力する。本実施例では、選択された画像データは、印刷IDによって特定される。以下、選択された画像データを表す印刷DIを「選択印刷ID」とも呼ぶ。
S310では、複合機200のプロセッサ210は、選択印刷IDを表すデータを、サーバ100へ送信する。また、プロセッサ210は、S380で、印刷部数を変更するための変更画面を、表示部240に表示する。
図6は、変更画面の例を示す概略図である。この変更画面400は、印刷中の画像の部数を示す現行部数領域410と、総部数を示す総部数領域420と、総部数を増やすための増加ボタン430と、総部数を減らすための減少ボタン440と、を含んでいる。後述するように、複合機200のプロセッサ210は、画像の印刷の進行に応じて、現行部数領域410に表示される現行の部数を更新する。また、後述するように、ユーザは、操作部250のうちの増加ボタン430に重なる部分を操作する(具体的には、押す)ことによって、総部数を増加させることができ、また、操作部250のうちの減少ボタン440に重なる部分を操作することによって、総部数を減少させることができる。以下、ユーザが、操作部250のうちのボタン430、440に重なる部分を操作することを、単に、ボタン430、440を操作する、とも言う。本実施例では、増加ボタン430の操作回数(例えば、押下回数)が、総部数の増加数を示し、減少ボタン440の操作回数が、総部数の減少数を示している。
図4のS350では、サーバ100のプロセッサ110は、画像データテーブル135(図3)を参照して、複合機200から取得した選択印刷IDに対応付けられた画像データ(以下、対象画像データと呼ぶ)のパスを検索する。S360では、プロセッサ110は、画像データテーブル135を参照して、総部数を特定し、そして、検索された対象画像データを解析して、総頁数を特定する。S370では、プロセッサ110は、図4、図5の処理で用いられるパラメータTc、Tp、Dcを初期化する。具体的には、総部数Tcは、S360で特定された総部数N(すなわち、初期部数N)に設定され、総頁数Tpは、S360で特定された総頁数Qに設定され、現行部数Dcは、1に設定される。
次に図5の処理について、説明する。先ず、サーバ100の処理について、説明する。以下に説明するように、サーバ100は、1頁毎にその頁の画像を表すページ画像データを、複合機200に送信する。そして、サーバ100は、総頁数Tp分のページ画像データの送信を、総部数Tcと同じ回数、繰り返す。すなわち、サーバ100は、総頁数Tp×総部数Tcと同じ回数、ページ画像データの送信を行う。
S400では、プロセッサ110は、現行の頁を表すパラメータDpを、1に初期化する(現行頁Dpとも呼ぶ)。S410では、プロセッサ110は、対象画像データのうちの現行頁Dpを表す部分であるページ画像データを、記憶装置(ここでは、不揮発性記憶装置130)から取得する。そして、プロセッサ110は、取得したページ画像データと、補足データとを、複合機200に送信する。補足データは、送信されるページ画像データに関連する情報を表している。本実施例では、補足データは、現行部数Dcと総部数Tcと現行頁Dpと総頁数Tpとを表している。なお、本実施例では、プロセッサ110は、先に補足データを送信し、補足データの送信に続いてページ画像データを送信する。
S420では、プロセッサ110は、現行頁Dpが総頁数Tpと同じであるか否かを判断する。未送信の頁が残っている場合、現行頁Dpは、総頁数Tpと異なる(具体的には、Dp<Tp)。この場合(S420:No)、プロセッサ110は、S430で現行頁Dpに1を加算し、S410へ移行する。現行頁Dpが総頁数Tpと同じ場合(S420:Yes)、S440で、プロセッサ110は、現行部数Dcが総部数Tcと同じであるか否かを判断する。総部数Tc分のデータ送信が完了していない場合、現行部数Dcは、総部数Tcと異なる(具体的には、Dc<Tc)。この場合(S440:No)、プロセッサ110は、S450で現行部数Dcに1を加算し、S400へ移行する。以上の処理により、プロセッサ110は、総頁数Tp×総部数Tcと同じ回数、ページ画像データの送信を行う。なお、後述するように、総部数Tcは、図5の処理の途中で、変更され得る。
現行部数Dcが総部数Tcと同じ場合、すなわち、総部数Tcの総頁数Tp分のページ画像データの送信が完了した場合(S440:Yes)、プロセッサ110は、S460で、総部数Tcが増大したか否かを判断する。総部数Tcが増大した場合(S460:Yes)、プロセッサ110は、S400へ移行し、増大した部数のためのページ画像データの送信処理を、実行する。
総部数Tcが増大していない場合(S460:No)、S470で、プロセッサ110は、複合機200からの印刷完了通知を受信したか否かを判断する。印刷完了通知は、総部数Tcの総頁数Tp分の画像の印刷が完了したことを示す通知である。印刷完了通知を受信していない場合(S470:No)、プロセッサ110は、S460へ移行する。このように、プロセッサ110は、総部数Tcの総頁数Tp分のページ画像データの送信が完了した場合であっても、複合機200からの印刷完了通知を受信するまでは、総部数Tcの増大に応じて、増大した部数のためのページ画像データの送信処理を、実行できる。
複合機200からの印刷完了通知を受信した場合(S470:Yes)、S480で、プロセッサ110は、対象画像データの全体(すなわち、対象画像データのうちの全ての頁のページ画像データ)を、記憶装置115(ここでは、不揮発性記憶装置130)から消去する。また、プロセッサ110は、画像データテーブル135(図3)から、選択印刷IDの情報を、消去する。そして、プロセッサ110は、図5の処理のうちのサーバ100の処理を終了する。
次に、複合機200の処理について説明する。以下に説明するように、複合機200は、サーバ100から1頁分のページ画像データを受信したことに応じて、受信済のページ画像データによって表される1頁の画像を印刷する。また、複合機200は、1頁の画像の印刷が完了したことに応じて、その1頁の画像を表すページ画像データを記憶装置から消去する。複合機200は、このような処理を、サーバ100からページ画像データを受信する毎に、実行する。上記の通り、サーバ100は、総頁数Tp×総部数Tcと同じ回数、ページ画像データの送信を行う。従って、複合機200は、総頁数Tp×総部数Tcと同じ回数、ページ画像データの受信と画像の印刷とページ画像データの消去とを、行う。
S500では、複合機200のプロセッサ210は、総部数の印刷が完了したか否かを判断する。プロセッサ210は、総部数Tcと現行部数Dcと総頁数Tpと現行頁Dpとを表す補足データを、後述するS700で、サーバ100から受信する。プロセッサ210は、受信した補足データを用いることによって、総部数の印刷が完了したか否かを、判断できる。補足データを受信する前の段階では、プロセッサ210は、総部数Tcの印刷が完了していないと判断する。
総部数Tcの印刷が完了していない場合(S500:No)、プロセッサ210は、ページ画像データをサーバ100から受信する処理(S700〜S710)と、受信したページ画像データを用いて画像を印刷する処理(S600〜S660)とを、並行して進行する。
先ず、データを受信する処理(S700〜S710)について、説明する。S700では、プロセッサ210は、サーバ100によってS410で送信されたページ画像データと補足データとを、受信する。S710では、プロセッサ210は、受信したデータを、記憶装置215(揮発性記憶装置220と不揮発性記憶装置230とのいずれか。本実施例では、不揮発性記憶装置230)に格納する。ここで、プロセッサ210は、ページ画像データと補足データとの対応関係を表すデータも、記憶装置215に格納する。そして、プロセッサ210は、S500へ移行する。プロセッサ210は、サーバ100からデータが届く毎に、S700、S710の処理を繰り返す。
次に、画像を印刷する処理(S600〜S660)について、説明する。S600では、プロセッサ210は、記憶装置215(ここでは、不揮発性記憶装置230)に1以上のページ画像データが格納されているか否かを判断する。上述したように、ページ画像データは、S710で、記憶装置に格納される。記憶装置215にページ画像データが格納されていない場合(S600:No)、プロセッサ210は、ページ画像データが記憶装置に格納されるまで、S600を繰り返す。
記憶装置215に1以上のページ画像データが格納されている場合(S600:Yes)、S610で、プロセッサ210は、記憶装置に格納済の1以上のページ画像データから、最も古い(すなわち、最も先に格納された)1つのページ画像データを取得する(以下、対象ページデータとも呼ぶ)。
S620では、プロセッサ210は、記憶装置に格納された補足データを参照し、処理に用いられるパラメータPc、PTcを更新する。具体的には、対象ページデータの部数を示す印刷現行部数Pcが、対象ページデータの現行部数Dcに設定される。また、総部数PTcが、最新の補足データの総部数Tcに設定される。なお、後述するように、総部数PTcは、図4、図5の処理の最中に、変更され得る。従って、総部数PTc(すなわち、最新の総部数Tc)は、対象ページデータに対応付けられた補足データの総部数Tcとは、異なる場合がある。
S630では、プロセッサ210は、変更画面400(図6)を更新する。具体的には、プロセッサ210は、現行部数領域410に表示される値を、印刷現行部数Pcと同じ値に更新し、総部数領域420に表示される値を、総部数PTcと同じ値に更新する。
S640では、プロセッサ210は、対象ページデータを用いる印刷を開始する。具体的には、プロセッサ210は、対象ページデータを用いて印刷部290(図1)を制御することによって、印刷部290に画像の印刷を開始させる。そして、S650で、印刷が完了する。これにより、1頁の画像が印刷される。S660では、印刷が完了したことに応じて、プロセッサ210は、記憶装置215(ここでは、不揮発性記憶装置230)から、対象ページデータを消去する。そして、プロセッサ210は、S500へ移行する。プロセッサ210は、記憶装置にページ画像データが格納される毎に、S600〜S660の処理を繰り返す。
なお、補足データが記憶装置に格納された後は、S500で、プロセッサ210は、記憶装置に格納された補足データを参照することによって、総部数PTcの印刷が完了したか否かを判断できる。具体的には、最後に印刷が完了したページ画像データの現行部数Dcが最新の補足データの総部数Tc(すなわち、総部数PTc)と同じであり、かつ、最後に印刷が完了したページ画像データの現行頁Dpが総頁数Tpと同じである場合に、総部数PTcの印刷が完了したと判断できる。
総部数PTcの印刷が完了した場合(S500:Yes)、S510で、プロセッサ210は、変更画面400(図6)の表示を終了する。これにより、ボタン430、440の操作による総部数の変更指示の受付が、終了する。S520では、プロセッサ210は、印刷完了通知を、サーバ100へ送信する。上述したように、サーバ100のプロセッサ110は、この印刷完了通知を受信したことに応じて(S470:Yes)、S480へ移行する。S530では、複合機200のプロセッサ210は、印刷が完了したことを表す画面(図示せず)を、表示部240に表示する。そして、プロセッサ210は、図5の処理のうち複合機200の処理を終了する。
図7は、総部数Tcを変更する処理の例を示すフローチャートである。図中には、サーバ100の処理と複合機200の処理とが示されている。図7の処理は、図4、図5の処理とは並行して、進行する。先ず、複合機200の処理について、説明する。複合機200のプロセッサ210は、変更画面400(図6)が表示部240(図1)に表示されている最中に、図7の処理を実行する。変更画面400が表示部240に表示されていない状態では、プロセッサ210は、図7の処理を実行しない。
S800では、複合機200(図1)のプロセッサ210は、総部数の変更可能範囲の下限を、少なくとも一部を受信済のページ画像データの最新の現行部数Dcに設定する。最新の現行部数Dcは、図5のS710で記憶装置215(ここでは、不揮発性記憶装置230)に格納された最新の補足データによって表される現行部数Dcである。最新の現行部数Dcは、印刷中の画像の部数とは異なり得る。例えば、複合機200は、3部目の画像の印刷中に、4部目のページ画像データを受信し得る。この場合、総部数の変更可能範囲の下限は、4部に設定される。
S805では、プロセッサ210は、操作部250(図1)からのデータを用いて、変更画面400(図6)のボタン430、440(具体的には、操作部250のうちボタン430、440に重なる部分)の操作状況を確認する。S810では、プロセッサ210は、変更画面400(図6)のボタン430、440が操作されたか否かを判断する。ボタン430、440が操作されていない場合(S810:No)、プロセッサ210は、S800へ移行する。
ボタン430、440が操作された場合(S810:Yes)、S820で、プロセッサ210は、操作に基づく変更要求を、サーバ100に送信する。変更要求は、ボタン430、440の操作に基づく変更後の総部数を特定するためのデータを含んでいる。例えば、増加ボタン430が操作された場合、変更要求は、増加数(例えば、増加ボタン430の操作回数)を表すデータを含んでよい。サーバ100のプロセッサ110は、現行の総部数Tcを、変更要求によって表される増加数だけ増加させることによって、変更後の総部数を特定できる。また、減少ボタン440が操作された場合、変更要求は、減少数(例えば、減少ボタン440の操作回数)を表すデータを含んでよい。プロセッサ110は、現行の総部数Tcを、変更要求によって表される減少数だけ減少させることによって、変更後の総部数を特定できる。また、プロセッサ210は、ボタン430、440の操作に基づいて、変更後の総部数を算出し、算出された変更後の総部数を表すデータを含む変更要求を、サーバ100に送信してもよい。いずれの場合も、プロセッサ210は、変更後の総部数が、S800で設定された下限未満である場合には、変更後の総部数が下限になるように、変更要求のデータを調整する。
後述するように、サーバ100のプロセッサ110は、変更要求を受け入れて総部数Tcを変更し得る。また、プロセッサ110は、総部数Tcを変更せずに変更要求を破棄し得る。いずれの場合も、プロセッサ110は、変更要求に応じて総部数Tcを変更するか否かの判断結果を、複合機200に通知する。S825では、複合機200のプロセッサ210は、サーバ100からの通知を受信する。S830では、プロセッサ210は、受信した通知に基づいて、総部数が変更されたか否かを判断する。
総部数が変更されない場合(S830:No)、プロセッサ210は、図4、図5の処理で利用される総部数PTcを変更せずに、S800へ移行する。
総部数が変更される場合(S830:Yes)、S840で、プロセッサ210は、図4、図5の処理で利用される総部数PTcを、変更要求に基づく変更後の総部数に、変更する。具体的には、プロセッサ210は、記憶装置215(例えば、不揮発性記憶装置230)に格納された総部数PTcを表すデータを、変更後の総部数を表すように、変更する。S850では、プロセッサ210は、変更画面400(図6)の総部数領域420に表示される値を、更新済の総部数PTcと同じ値に更新する。そして、プロセッサ210は、S800へ移行する。
次に、サーバ100(図1)の処理について説明する。複合機200によってサーバ100に変更要求が送信された場合(S820)、サーバ100のプロセッサ110は、変更要求を受信する(S900)。S910では、プロセッサ110は、変更要求を受信したか否かを判断する。変更要求を受信していない場合(S910:No)、プロセッサ110は、変更要求を受信するまで、S910を繰り返す。
変更要求を受信した場合(S910:Yes)、S920で、プロセッサ110は、変更要求に基づいて変更後の総部数を特定し、変更後の総部数が、送信中のページ画像データの現行部数Dc以上であるか否かを判断する。変更後の総部数が現行部数Dc未満である場合(S920:No)、現行部数Dcのページ画像データの送信が既に開始されているので、総部数を変更要求に応じて変更することができない。従って、プロセッサ110は、変更要求を破棄し(S950)、総部数を変更せずに変更要求を破棄したことを、複合機200に通知する(S960)。そして、プロセッサ110は、S910へ移行して、新たな変更要求を待つ。
変更後の総部数が送信中のページ画像データの現行部数Dc以上である場合(S920:Yes)、S930で、プロセッサ110は、画像データテーブル135(図3)の総部数Tcを、変更要求に基づく変更後の総部数に、変更する。具体的には、プロセッサ110は、画像データテーブル135を表すデータのうち、選択印刷IDの総部数Tcを表すデータを、変更後の総部数を表すように、変更する。そして、S940で、プロセッサ110は、総部数を変更したことを、複合機200に通知する。そして、そして、プロセッサ110は、S910へ移行して、新たな変更要求を待つ。
以上のように、サーバ100のプロセッサ110は、図2のS130で、Q枚の画像をそれぞれ表すQ個のページ画像データと、Q枚の画像の総部数N(すなわち、初期部数N)を表す総部数データとを、ネットワークNTを介して受信する。そして、S140で、プロセッサ110は、受信した画像データを記憶装置115(ここでは、不揮発性記憶装置130)に格納する。また、S145で、プロセッサ110は、受信した総部数データによって表される総部数N(すなわち、初期部数N)を表す情報を、記憶装置115(ここでは、不揮発性記憶装置130)に格納された画像データテーブル135(図3)に追加する。これにより、総部数を表すデータが、記憶装置115に格納される。画像データテーブル135を表すデータのうちの総部数を表す部分が、総部数を表す総部数データに相当する。そして、図5のS400〜S450で説明したように、プロセッサ110は、総部数データによって表される総部数Tcに従って、Q個のページ画像データを1部毎に複合機200に送信する。以上により、プロセッサ110は、Q頁の画像の総部数Tcの印刷を、適切に、複合機200に実行させることができる。
さらに、図5で説明したように、ページ画像データの送信の開始後、複合機200での総部数の印刷が完了するよりも前に(S470:No)、プロセッサ110は、総部数の変更を許容する。具体的には、図7のS900で、プロセッサ110は、総部数Tcを変更するための変更要求を受信し得る。そして、変更要求を受信した場合(S910:Yes)、S930で、プロセッサ110は、画像データテーブル135(図3)を表すデータのうちの総部数Tcを表すデータである総部数データを、変更要求に応じて変更された総部数を表すように変更する。そして、図5で説明したように、総部数データによって表される総部数Tcが変更された場合には、プロセッサ110は、変更後の総部数Tcに従って、Q個のページ画像データを、1部毎に、複合機200に送信する。このように、ページ画像データの送信の開始後であっても、総部数TcのQ枚の画像の印刷が完了するよりも前に、総部数Tcが変更され得るので、利便性を向上できる。
また、図7で説明したように、プロセッサ110は、複合機200から、変更要求を受信する(S900)。このように、画像を印刷する複合機200からの変更要求に応じて、総部数Tcが変更され得るので、複合機200を利用するユーザの利便性を向上できる。
また、図6、図7で説明したように、変更要求は、総部数Tcを増やすための要求であり得る。このように、総部数Tcを増やすことができるので、利便性を向上できる。また、図5のS460、S470で説明したように、プロセッサ110は、画像データテーブル135(図3)によって表される総部数TcのQ個のページ画像データの送信が完了した後であっても、総部数Tcを増やすための変更要求を受け付ける。このように、総部数Tcを柔軟に増やすことができるので、利便性を向上できる。
また、図6、図7で説明したように、変更要求は、総部数Tcを減らすための要求であり得る。このように、総部数Tcを減らすことができるので、利便性を向上できる。また、図7のS920で説明したように、サーバ100のプロセッサ110は、変更要求に基づく変更後の総部数が、送信中のページ画像データの現行部数Dc以上である場合に、変更要求に基づいて、総部数Tcを変更する。従って、現行部数Dcが変更前の総部数Tcよりも少ない場合に、すなわち、画像データテーブル135(図3)によって表される総部数Tc目のページ画像データの送信が開始される前に、総部数Tcを減らすための変更要求が受け付けられ得る。これにより、総部数を適切に減らすことができるので、利便性を向上できる。
また、図5のS410で説明したように、プロセッサ110は、ページ画像データに加えて、現行部数Dcを表す補足データを、複合機200に送信する。従って、プロセッサ110は、K部目(Kは1以上、総部数Tc以下の整数)の最初のページ画像データを送信する際には、現行部数DcがKであることを示す補足データを、複合機200に送信する。そして、図7のS920で説明したように、プロセッサ110は、K部目のページ画像データの送信が開始された後には、総部数Tcを、現行の部数K以上の部数Lに、変更するための前記変更要求を、受け付ける。この結果、総部数を適切に変更できるので、利便性を向上できる。
また、図7のS920、S950で説明したように、プロセッサ110は、総部数Tcを送信中のページ画像データの現行部数Dc未満の部数に変更するための変更要求を受信した場合には、受信した変更要求を受け付けずに、破棄する。従って、プロセッサ110は、総部数Tcを、適切に、変更できる。なお、図7のS800で説明したように、複合機200のプロセッサ210は、総部数の変更可能範囲の下限を、少なくとも一部を受信済のページ画像データの最新の現行部数Dcに設定する。このように、複合機200は、総部数を現行部数Dc未満の部数に変更するための変更要求を送信しないように、構成されている。従って、図7のS920、S950が省略されてもよい。この場合も、サーバ100のプロセッサ110は、総部数を現行部数Dc未満の部数に変更するための変更要求を受信することはないので、そのような変更要求を受け付けずに済む。また、図7のS800が省略されてもよい。この場合、サーバ100のプロセッサ110は、図7のS920のように、変更要求による変更後の総部数に基づいて、受信した変更要求を受け付けるか否かを判断することが好ましい。
また、図5のS440、S460、S470、S480で説明したように、サーバ100のプロセッサ110は、総部数TcのQ個のページ画像データの送信が完了した後であっても(S440:Yes)、総部数TcのQ枚の画像の印刷が複合機200にて完了したことを示す印刷完了通知を複合機200から受信するまでは(S470:No)、Q個のページ画像データを記憶装置115から消去しない。そして、プロセッサ110は、印刷完了通知を受信したことに応じて(S470:Yes)、Q個のページ画像データを記憶装置115から消去する(S480)。従って、ページ画像データの送信が完了した後であっても、印刷完了通知を受信するまでは、プロセッサ110は、ページ画像データを送信可能である。この結果、プロセッサ110は、印刷完了通知を受信するまでは、総部数Tcの変更要求を、受け付けることができる。
また、複合機200(図1)は、画像を印刷する印刷実行部としての印刷部290を備えている。そして、図5のS700、S710で説明したように、複合機200のプロセッサ210は、Q個のページ画像データを1部毎にサーバ100から受信する。また、図5のS640、S650で説明したように、プロセッサ210は、ページ画像データを用いて印刷部290を制御することによって、ページ画像データによって表される画像を、印刷部290に印刷させる。また、図5のS400〜S450で説明したように、サーバ100において総部数Tcが変更された場合には、サーバ100のプロセッサ110は、変更後の総部数Tcに従って、Q個のページ画像データを1部毎に複合機200に送信する。そして、複合機200のプロセッサ210は、変更後の総部数のQ個のページ画像データを受信し(S700)、変更後の総部数のQ枚の画像を印刷部290に印刷させる(S640、S650)。サーバ100が変更後の総部数Tcに従ってQ個のページ画像データを1部毎に複合機200に送信する場合に、複合機200は、適切に、変更後の総部数のQ枚の画像を印刷できる。
また、図7のS800、S810、S820で説明したように、複合機200は、K部目(Kは、1以上、総部数以下の整数)のページ画像データの受信が開始された後に、ユーザからの総部数をL部(LはK以上の整数)に変更するための変更指示(例えば、ボタン430、ボタン440の操作)を受け付ける。そして、S820では、プロセッサ210は、変更指示に応じて、総部数をL部に変更するための変更要求を、サーバ100に送信する。そして、変更要求がサーバ100に受け入れられた場合には(S830:Yes)、プロセッサ210は、処理に用いられる総部数PTcを、変更する。そして、図5のS500、S700、S710では、プロセッサ210は、変更後の総部数PTcであるL部の印刷を完了するために、K部目からL部目までのそれぞれのQ個のページ画像データを、1部毎に、サーバ100から受信する。このように、K部目の画像の印刷が実行されている最中に、総部数が変更され得るので、利便性を向上できる。
また、図5のS710で説明したように、プロセッサ210は、サーバ100から受信したページ画像データを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、図5のS650、S660で説明したように、1枚の画像の印刷が完了したことに応じて、その1枚の画像を表す1個のページ画像データを記憶装置215(ここでは、不揮発性記憶装置230)から消去する。従って、記憶装置215(ここでは、不揮発性記憶装置230)の容量が少ない場合であっても、プロセッサ210は、適切に、画像を印刷できる。特に、1部の総頁数が多い場合であっても、プロセッサ210は、全頁分のページ画像データを同時に記憶装置215に格納せずに、印刷の処理を進行できる。
また、図4のS380、図5のS510、で説明したように、プロセッサ210は、総部数の変更指示を入力するための変更画面400(図6)を、印刷の開始から完了までの間、表示部240(図1)に表示させる。そして、プロセッサ210は、印刷が完了したことに応じて(S500:Yes)、変更画面400の表示を終了する(S510)。また、図7で説明したように、プロセッサ210は、変更画面400が表示部240に表示されている最中に、図7の処理を実行する。従って、プロセッサ210は、変更画面400が表示部240に表示されている最中に、操作部250が操作された場合に、変更指示を受け付ける。以上により、プロセッサ210は、印刷の開始から完了までの間、変更指示を受け付ける。このように、印刷の開始から完了までの間、総部数が変更され得るので、利便性を向上できる。
B.変形例:
(1)サーバ100による総部数Tcを変更する処理は、上記の実施例の処理に代えて、総部数Tcを変更する他の種々の処理であってよい。例えば、サーバ100のプロセッサ110は、総部数Tcの増加を許容せずに低減のみを許容してもよい。また、プロセッサ110は、総部数Tcの低減を許容せずに増加のみを許容してもよい。いずれの場合も、プロセッサ110は、印刷完了通知を受信するよりも前に、変更要求の受付を終了してもよい。例えば、プロセッサ110は、総部数Tcの全頁のページ画像データの送信が完了したことに応じて、印刷完了通知を受信する前に、変更要求の受付を終了してもよい。
また、サーバ100は、複合機200などのプリンタとは異なる装置からの変更要求を受信してもよい。例えば、サーバ100のプロセッサ110は、総部数Tcの変更指示を入力するための管理画面を提供するウェブサーバ(例えば、HTTPサーバ)として動作してもよい。そして、ユーザは、スマートフォンやパーソナルコンピュータなどの端末装置で動作するウェブブラウザを操作して、サーバ100によって提供される管理画面に、総部数を変更する指示を入力してもよい。そして、サーバ100のプロセッサ110は、管理画面に入力された変更指示に応じて、総部数Tcを変更してよい。
(2)サーバ100がプリンタ(例えば、複合機200)に補足データを送信する処理は、図5で説明した処理に代えて、他の種々の処理であってよい。例えば、サーバ100のプロセッサ110は、現行部数Dcを表すデータを、Q個のページ画像データのうちの1つ目のページ画像データを送信する際のみに、プリンタに送信し、2つ目以降のページ画像データを送信する際には、現行部数Dcを表す補足データを送信しなくてもよい。すなわち、プロセッサ110は、1つ増えた現行部数Dcの最初のページ画像データを送信する際にのみ、新しい現行部数Dcを表す補足データをプリンタに送信してもよい。このように、プロセッサ110は、少なくとも先頭頁の画像を表すページ画像データを送信する際に、現行部数Dcを表す補足データをプリンタに送信することが好ましい。ここで、プロセッサ110は、現行部数Dcを表す補足データを、最初のページ画像データに先行して、プリンタに送信してよい。これに代えて、プリンタに送信される最初のページ画像データに、現行部数Dcを表すデータが含まれていてもよい。いずれの場合も、プロセッサ110は、新しい現行部数Dcの最初のページ画像データを送信する際に、現行部数Dcを表す情報をプリンタに送信している、と言える。
なお、総部数Tcは、印刷のための処理の途中で変更され得る。従って、総部数Tcを表す補足データは、ページ画像データが送信される毎に、プリンタに送信されることが好ましい。ただし、総部数Tcを表す補足データが、Q個のページ画像データのうちの一部のページ画像データ(例えば、先頭のページ画像データ)の送信の際のみに、プリンタに送信されてもよい。
現行頁Dpは、ページ画像データ毎に異なっている。従って、現行頁Dpを表す補足データは、ページ画像データが送信される毎に、プリンタに送信されることが好ましい。ただし、現行頁Dpを表す補足データの送信が、省略されてもよい。この場合も、プリンタ(例えば、複合機200のプロセッサ210)は、現行部数Dcが更新されてから受信したページ画像データの総数をカウントすることによって、各ページ画像データの頁番号を特定できる。
総頁数Tpは、印刷のための処理の途中で変更されない。従って、総頁数Tpを表す補足データは、少なくとも1部目の1頁目のページ画像データの送信の際に、プリンタに送信されればよい。
また、サーバ100のプロセッサ110は、総部数Tcの最後の頁の画像を表すページ画像データを送信する際に、最後のデータであることを示す補足データ(最後フラグとも呼ぶ)を、プリンタに送信してもよい。プリンタは、最後フラグを受信したことに応じて、受信したページ画像データが最後のデータであることを特定できる。
一般的に、プロセッサ110は、ページ画像データに関連する情報を表す補足データを、そのページ画像データの送信に先行して、プリンタに送信してよい。これに代えて、プロセッサ110は、補足データを含むページ画像データを、プリンタに送信してもよい。これらのいずれの場合も、プロセッサ110は、ページ画像データを送信する際に、補足データをプリンタに送信している、と言える。
(3)サーバ100がページ画像データ(すなわち、対象画像データ)を記憶装置115から消去するための条件は、図5の実施例で説明した条件(具体的には、プリンタから印刷完了通知を受信すること)に代えて、他の種々の条件であってよい。例えば、サーバ100のプロセッサ110は、総部数Tcの全頁のページ画像データの送信が完了したことに応じて、印刷完了通知を受信したか否かに拘わらずに、対象画像データを記憶装置115から消去してもよい。
(4)複合機200(より一般的には、プリンタ)がページ画像データを記憶装置215から消去するための条件は、図5の実施例で説明した条件(具体的には、ページ画像データを用いる画像の印刷が完了したこと)に代えて、他の種々の条件であってよい。例えば、複合機200の記憶装置215は、総部数PTcの全頁の印刷が完了するまでは、ページ画像データを消去せずに、全ての印刷が完了したことに応じて、ページ画像データを記憶装置215から消去してもよい。
(5)サーバ100にアップロードされる画像データは、印刷データに代えて、他の任意のデータ形式の画像データであってよい。例えば、JPEG形式などのビットマップ形式を採用してもよく、EMF(Enhanced Meta File)形式のようにページ記述言語で記述されたデータ形式を採用してもよく、特定のアプリケーションのための専用のデータ形式を採用してもよい。一般的には、プリンタが利用可能なデータ形式を採用することが好ましい。この構成によれば、サーバ100のプロセッサ110は、アップロードされた画像データである入力画像データを、そのまま、プリンタに送信すべきページ画像データとして利用できる。なお、サーバ100のプロセッサ110は、アップロードされた入力画像データを用いて、プリンタに送信すべきページ画像データを生成してもよい。例えば、サーバ100のプロセッサ110は、アップロードされた入力画像データを用いて、画像処理を実行して、プリンタに送信すべきページ画像データ(例えば、印刷データ)を生成し、生成したページ画像データを、記憶装置115に格納してもよい。
(6)印刷のための処理は、図2、図4、図5、図7で説明した処理に代えて、他の種々の処理であってよい。例えば、図4のS250では、認証された認証IDに拘わらず、サーバ100の記憶装置115(例えば、揮発性記憶装置120、または、不揮発性記憶装置130)に格納された全ての画像データのリストが、複合機200に送信されてもよい。また、アカウント情報を用いる認証が、省略されてもよい。
(7)プリンタの構成は、図1の複合機200の構成に代えて、サーバから受信したページ画像データを用いて画像を印刷可能な種々の構成であってよい。例えば、スキャナ部280とカードリーダ295との少なくとも一方が省略されてもよい。
(8)プリンタに画像データを送信するサーバの構成は、図1のサーバ100の構成に代えて、他の種々の構成であってよい。例えば、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、印刷のための処理の機能を一部ずつ分担して、全体として、サーバの機能を提供してもよい(これらの装置を備えるシステムがサーバに対応する)。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図5のS410の機能を、専用のハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。