IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特開2023-183239印刷装置、その制御方法及びプログラム
<>
  • 特開-印刷装置、その制御方法及びプログラム 図1
  • 特開-印刷装置、その制御方法及びプログラム 図2
  • 特開-印刷装置、その制御方法及びプログラム 図3
  • 特開-印刷装置、その制御方法及びプログラム 図4
  • 特開-印刷装置、その制御方法及びプログラム 図5
  • 特開-印刷装置、その制御方法及びプログラム 図6
  • 特開-印刷装置、その制御方法及びプログラム 図7
  • 特開-印刷装置、その制御方法及びプログラム 図8
  • 特開-印刷装置、その制御方法及びプログラム 図9
  • 特開-印刷装置、その制御方法及びプログラム 図10
  • 特開-印刷装置、その制御方法及びプログラム 図11
  • 特開-印刷装置、その制御方法及びプログラム 図12
  • 特開-印刷装置、その制御方法及びプログラム 図13
  • 特開-印刷装置、その制御方法及びプログラム 図14
  • 特開-印刷装置、その制御方法及びプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183239
(43)【公開日】2023-12-27
(54)【発明の名称】印刷装置、その制御方法及びプログラム
(51)【国際特許分類】
   B41J 29/38 20060101AFI20231220BHJP
   H04N 1/00 20060101ALI20231220BHJP
   G06F 3/12 20060101ALI20231220BHJP
【FI】
B41J29/38 301
B41J29/38 201
B41J29/38 401
H04N1/00 127A
G06F3/12 311
G06F3/12 367
G06F3/12 374
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022096756
(22)【出願日】2022-06-15
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】藤沢 実
【テーマコード(参考)】
2C061
5C062
【Fターム(参考)】
2C061AP01
2C061AP03
2C061AP04
2C061AP07
2C061AQ05
2C061AQ06
2C061AS02
2C061HJ08
2C061HK16
2C061HN15
2C061HV13
2C061HV14
2C061HV46
5C062AA05
5C062AA13
5C062AA35
5C062AB22
5C062AB38
5C062AB42
5C062AC04
5C062AC22
5C062AC34
(57)【要約】
【課題】ダウンロード済の印刷データを有効に活用する。
【解決手段】印刷装置は、論理プリンタを提供する印刷サーバから、インターネットプリンティングプロトコル(IPP)によって印刷ジョブを受信する受信部と、印刷ジョブに基づいて印刷を行う印刷部と、印刷ジョブで指定される印刷データのうちダウンロードが終了した部分を記憶領域に記憶する記憶制御部と、を有する。受信部は、印刷データのダウンロードが途中で中止された後に印刷データのダウンロードを再開する場合に、ハイパーテキストトランスファープロトコル(HTTP)の範囲リクエストを使用して、印刷データのうち記憶領域に記憶されていない部分をダウンロードする。
【選択図】図8
【特許請求の範囲】
【請求項1】
印刷装置であって、
論理プリンタを提供する印刷サーバから、インターネットプリンティングプロトコル(IPP)によって印刷ジョブを受信する受信手段と、
前記印刷ジョブに基づいて印刷を行う印刷手段と、
前記印刷ジョブで指定される印刷データのうちダウンロードが終了した部分を記憶領域に記憶する記憶制御手段と、を備え、
前記受信手段は、前記印刷データのダウンロードが途中で中止された後に前記印刷データのダウンロードを再開する場合に、ハイパーテキストトランスファープロトコル(HTTP)の範囲リクエストを使用して、前記印刷データのうち前記記憶領域に記憶されていない部分をダウンロードする、印刷装置。
【請求項2】
前記記憶制御手段は、前記印刷データのダウンロードが途中で中止された場合に、第1条件が満たされるならば、前記印刷データのうちダウンロードが終了した部分を前記記憶領域に記憶し続け、第2条件が満たされるならば、前記印刷データのうちダウンロードが終了した部分を前記記憶領域から削除する、請求項1に記載の印刷装置。
【請求項3】
前記第1条件は、前記印刷データのダウンロードが通信エラーによって中止されることと、前記印刷データのダウンロードが前記印刷装置のユーザの指示によって中止されることと、の少なくとも一方を含み、
前記第2条件は、前記印刷ジョブがキャンセルされたことに伴って前記印刷データのダウンロードが中止されることを含む、請求項2に記載の印刷装置。
【請求項4】
前記第1条件は、前記印刷ジョブが前記印刷装置のユーザによってキャンセルされ、かつ前記印刷データのうちダウンロードが終了した部分を維持するように前記ユーザによって指示されたことを含み、
前記第2条件は、前記印刷ジョブが前記印刷装置のユーザによってキャンセルされ、かつ前記印刷データのうちダウンロードが終了した部分を削除するように前記ユーザによって指示されたことを含む、請求項2に記載の印刷装置。
【請求項5】
前記印刷装置は、前記印刷データのうちダウンロードが終了した部分が前記記憶領域から削除された場合に、前記印刷データを前記印刷サーバから削除するように前記印刷サーバに通知する通知手段をさらに備える、請求項1に記載の印刷装置。
【請求項6】
前記記憶制御手段は、前記印刷ジョブに基づく印刷が完了した場合に、前記印刷データを前記記憶領域から削除する、請求項1に記載の印刷装置。
【請求項7】
前記記憶領域は、揮発領域と不揮発領域とを含み、
前記記憶制御手段は、
前記論理プリンタを使用する印刷における前記不揮発領域の使用容量が上限サイズを下回る場合に、当該印刷における前記不揮発領域への新たな記憶を許可し、
前記論理プリンタを使用する印刷における前記不揮発領域の使用容量が前記上限サイズを上回る場合に、当該印刷における前記不揮発領域への新たな記憶を禁止する、請求項1に記載の印刷装置。
【請求項8】
前記記憶制御手段は、前記印刷データのうちダウンロードが終了した部分を前記記憶領域に記憶してからの経過時間が上限時間に到達した場合に、当該部分を前記記憶領域から削除する、請求項1に記載の印刷装置。
【請求項9】
請求項1乃至8の何れか1項に記載の印刷装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項10】
印刷ジョブに基づいて印刷を行う印刷手段を備える印刷装置の制御方法であって、
論理プリンタを提供する印刷サーバから、インターネットプリンティングプロトコル(IPP)によって印刷ジョブを受信する工程と、
前記印刷ジョブで指定される印刷データのうちダウンロードが終了した部分を記憶領域に記憶する工程と、 前記印刷データのダウンロードが途中で中止された後に前記印刷データのダウンロードを再開する場合に、ハイパーテキストトランスファープロトコル(HTTP)の範囲リクエストを使用して、前記印刷データのうち前記記憶領域に記憶されていない部分をダウンロードする工程と、を有する制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷装置、その制御方法及びプログラムに関する。
【背景技術】
【0002】
クラウドを利用したクラウドプリントサービスが提案されている。クラウドプリントサービスは論理プリンタを提供し、論理プリンタに対する印刷ジョブは、論理プリンタに関連付けられた物理プリンタによって実行される(特許文献1)。物理プリンタにおいて印刷ジョブがキャンセルされると、その印刷ジョブで指定された印刷データが物理プリンタからキャンセルされる。特許文献2は、受信装置に送信された画像データが破棄された場合に、受信装置がデータの損失部分を補完することを提案する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012-133489号公報
【特許文献2】特開2016-178611号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
物理プリンタにおいて印刷ジョブがキャンセルされた後に、同じ印刷ジョブが再実行される場合がある。このような場合に、印刷データを最初からダウンロードしなおすと、印刷開始までの時間が長くなるとともに、通信量も増加する。本発明の一部の側面は、ダウンロード済の印刷データを有効に活用するための技術を提供することを目的とする。
【課題を解決するための手段】
【0005】
一部の実施形態によれば、印刷装置であって、論理プリンタを提供する印刷サーバから、インターネットプリンティングプロトコル(IPP)によって印刷ジョブを受信する受信手段と、前記印刷ジョブに基づいて印刷を行う印刷手段と、前記印刷ジョブで指定される印刷データのうちダウンロードが終了した部分を記憶領域に記憶する記憶制御手段と、を備え、前記受信手段は、前記印刷データのダウンロードが途中で中止された後に前記印刷データのダウンロードを再開する場合に、ハイパーテキストトランスファープロトコル(HTTP)の範囲リクエストを使用して、前記印刷データのうち前記記憶領域に記憶されていない部分をダウンロードする、印刷装置が提供される。
【発明の効果】
【0006】
一部の実施形態によれば、ダウンロード済の印刷データを有効に活用できる。
【図面の簡単な説明】
【0007】
図1】第1実施形態の印刷システムの構成例を説明する模式図。
図2】第1実施形態のコンピュータのハードウェア構成例を説明するブロック図。
図3】第1実施形態の印刷サーバの機能構成例を説明するブロック図。
図4】第1実施形態の情報処理装置の機能構成例を説明するブロック図。
図5】第1実施形態の印刷装置のハードウェア構成例を説明するブロック図。
図6】第1実施形態の印刷装置の機能構成例を説明するブロック図。
図7】第1実施形態のクラウドプリントの全体的な処理を説明するシーケンス図。
図8】第1実施形態の印刷データのダウンロード処理の動作例を説明するフロー図。
図9】第1実施形態のダウンロード状況情報の例を説明する図。
図10】第1実施形態の印刷データを印刷する処理の動作例を説明するフロー図。
図11】第1実施形態で通信されるパケットの例を説明する図。
図12】第1実施形態の印刷ジョブの実行結果を表示する画面の例を説明する図。
図13】第2実施形態の印刷装置の動作例を説明するフロー図。
図14】第3実施形態の印刷装置の動作例を説明するフロー図。
図15】第4実施形態の印刷装置の動作例を説明するフロー図。
【発明を実施するための形態】
【0008】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0009】
<第1実施形態>
[印刷システムの構成例]
図1を参照して、第1実施形態に係る印刷システムの構成例について説明する。印刷システムは、例えば、情報処理装置110と、印刷装置120、121と、印刷サーバ130とを含む。印刷システムの各構成要素の個数は図1の例に限られない。また、印刷システムは、図1に示されていない構成要素を有していてもよい。
【0010】
情報処理装置110及び印刷装置120は、同一のローカルエリアネットワーク(LAN)101に接続されている。LAN101は、有線LANであってもよいし、無線LANであってもよいし、両者の組み合わせであってもよい。LAN101は、ファイアウォール102を通じて、広域ネットワーク103(例えば、インターネット)に接続されている。広域ネットワーク103には、印刷装置121及び印刷サーバ130も接続されている。情報処理装置110と印刷装置120とは、LAN101内で(すなわち、広域ネットワーク103を経由せずに)互いに通信可能である。また、情報処理装置110と印刷装置120とのそれぞれは、LAN101、ファイアウォール102及び広域ネットワーク103を通じて印刷サーバ130と通信可能である。印刷装置121は、LANやセルラーネットワーク(例えば、第4世代通信規格(4G)や第5世代通信規格(5G)に準拠するネットワーク)を通じて広域ネットワーク103に接続してもよい。情報処理装置110も、セルラーネットワークを通じて広域ネットワーク103に接続してもよい。
【0011】
印刷装置120、121は、印刷ジョブに基づいて印刷を行う印刷機能を有する。印刷装置120、121は、印刷機能以外に、スキャナ機能とファクス機能との少なくとも一方を含んでもよい。このように複数の機能を有する印刷装置は、複合機(MFP:multifunction printer)と呼ばれてもよい。これに代えて、印刷装置120、121は、印刷機能のみを有する専用機(SFP:Single Function Peripheral)であってもよい。印刷は、紙などのシート状の記録媒体に対する印刷であってもよいし、立体物の成形(いわゆる3次元印刷)であってもよい。
【0012】
印刷サーバ130は、情報処理装置110によって生成された印刷ジョブに従って、何れかの印刷装置(例えば、印刷装置120)に印刷ジョブを送信するプリントサービスを提供する。例えば、印刷サーバ130は、論理プリンタを情報処理装置110に提供し、論理プリンタに対する印刷ジョブを受け付ける。論理プリンタとは、印刷サーバ130によって提供される仮想的な印刷装置(例えば、プリンタオブジェクト)のことである。論理プリンタは、クラウドプリンタとも呼ばれうる。情報処理装置110は、印刷装置120、121と同様に、論理プリンタについても印刷キューを生成できる。論理プリンタと対比して、印刷装置120、121のような物理的な印刷装置は、物理プリンタとも呼ばれうる。物理プリンタは、印刷ジョブを投入する情報処理装置と同一のLANに接続されている場合に、ローカルプリンタとも呼ばれうる。以下の説明において、論理プリンタと物理プリンタとを総称して単にプリンタと表す。
【0013】
印刷サーバ130は、広域ネットワーク103に接続されたオンプレミス環境内のサーバであってもよいし、クラウドコンピューティング環境(以下、単にクラウドと表す)内のサーバであってもよい。クラウド内の印刷サーバ130によって提供されるプリントサービスは、クラウドプリントサービス(以下、CPSと呼ぶ)と呼ばれてもよい。クラウドプリントサービスの一例として、Microsoft(登録商標)社が提供するUniversal Print(登録商標)がある。以下の説明において、印刷サーバ130がクラウド内にある場合について説明する。しかし、印刷サーバ130がオンプレミス環境内にある場合についても以下の説明が同様に当てはまる。
【0014】
情報処理装置110は、情報処理装置110のユーザに印刷機能を提供する。情報処理装置110は、同一のLAN101に接続された物理プリンタ(例えば、印刷装置120)を出力先として指定してもよいし、印刷サーバ130によって提供される論理プリンタを出力先として指定してもよい。論理プリンタが出力先として指定された場合に、論理プリンタに関連付けられた物理プリンタ(例えば、印刷装置120)が印刷を行う。CPSを利用する情報処理装置110は、クライアントやクライアント端末と呼ばれてもよい。論理プリンタに印刷ジョブを投入することによって行われる印刷は、クラウドプリントとも呼ばれうる。クラウドプリントによる印刷は、情報処理装置110と同一のLAN101に接続された印刷装置120によって実行されてもよいし、LAN101に接続されていない印刷装置121によって実行されてもよい。物理プリンタに印刷ジョブを直接に(すなわち、LAN内で)投入することによって行われる印刷は、ローカルプリントとも呼ばれうる。
【0015】
[コンピュータのハードウェア構成例]
図2を参照して、本実施形態に係るコンピュータ200のハードウェア構成例について説明する。コンピュータ200は、情報処理装置110として使用されてもよいし、印刷サーバ130として使用されてもよい。コンピュータ200は、図2に示される構成要素を有してもよい。
【0016】
中央演算処理ユニット(CPU)201は、コンピュータ200の全体的な動作を制御する汎用処理回路である。ランダムアクセスメモリ(RAM)202は、揮発性のメモリ回路であり、CPU201による処理のためのワークエリア等の一時記憶領域として使用される。リードオンリメモリ(ROM)203は、不揮発性のメモリ回路であり、CPU201の処理で使用されるプログラムやデータを記憶する。記憶装置204は、不揮発性の記憶装置であり、CPU201の処理で使用されるプログラムやデータを記憶する。記憶装置204は、例えばハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)であってもよい。記憶装置204は、二次記憶装置とも呼ばれうる。コンピュータ200による動作は、記憶装置204からRAM202に読み出されたプログラムをCPU201が実行することによって実現されてもよい。
【0017】
入力インタフェース(I/F)205は、入力装置210との間で信号を交換するためのI/Fである。入力装置210は、コンピュータ200のユーザから入力を取得する装置である。入力装置210は、例えばキーボード、タッチパネル、マイク、マウス、又はこれらの任意の組み合わせであってもよい。出力I/F206は、出力装置220との間で信号を交換するためのI/Fである。出力装置220は、コンピュータ200のユーザへ情報を提供する装置である。出力装置220は、例えばディスプレイ、スピーカ、又はこれらの任意の組み合わせであってもよい。ネットワークI/F207は、コンピュータ200の外部の装置と通信するためのI/Fである。CPU201、RAM202、ROM203、記憶装置204、入力I/F205、出力I/F206、及びネットワークI/F207のそれぞれはシステムバス208に接続されている。図2の例では、入力装置210及び出力装置220がコンピュータ200とは別個の装置として示されている。これに代えて、コンピュータ200が入力装置210及び出力装置220を含んでもよい。
【0018】
[印刷サーバの機能構成例]
図3を参照して、印刷サーバ130の機能構成例について説明する。印刷サーバ130は、図3に示される機能部を有してもよい。印刷サーバ130は、図3に示されていない機能部を有してもよい。図3の各機能部は、RAM202に読み出されたプログラムをCPU201が実行することによって実現されてもよい。これに代えて、図3の機能部の一部又は全部は、特定用途向け集積回路(ASIC)のような専用処理回路によって実現されてもよい。
【0019】
登録制御部301は、論理プリンタを登録するための処理を行う。例えば、登録制御部301は、印刷装置からの登録開始要求に応じて、物理プリンタに関連付けられた論理プリンタを生成し、プリンタ情報311に登録する。プリンタ情報311に登録された論理プリンタは、情報処理装置110からプリンタとして認識される。論理プリンタに関連付けられた物理プリンタとは、論理プリンタに対して投入された印刷ジョブに従って印刷を行う物理プリンタのことであってもよい。論理プリンタは1つの物理プリンタのみに関連付けられてもよい。物理プリンタは1つの論理プリンタのみに関連付けられてもよいし、複数の論理プリンタに関連付けられてもよい。
【0020】
印刷制御部302は、論理プリンタに対する印刷ジョブに関連する処理を行う。例えば、印刷制御部302は、論理プリンタに対する印刷ジョブを情報処理装置110から受信し、これに基づいて、論理プリンタに関連付けられた物理プリンタに印刷ジョブを送信する。また、印刷制御部302は、印刷ジョブに関連するイベントを制御してもよい。印刷ジョブに関連するイベントは、例えば印刷ジョブの受信などを含んでもよい。印刷制御部302は、物理プリンタからイベント要求を受信したことに応じて、当該物理プリンタに関連するイベントを応答してもよい。
【0021】
プリンタ管理部303は、印刷サーバ130に登録されている論理プリンタに関する情報を、プリンタ情報311として管理する。プリンタ情報311は、論理プリンタに関連付けられた物理プリンタの能力情報、論理プリンタに一意に割り当てられたクラウドプリンタID、印刷ジョブがスプールされる印刷キューの情報などを含む。
【0022】
ジョブ管理部304は、情報処理装置110から受信した印刷ジョブに関する情報を、ジョブ情報312として管理する。ジョブ情報312は、印刷ジョブの情報や状態、印刷ジョブで指定される印刷データなどを含む。
【0023】
記憶制御部310は、他の機能部からの指示に従って情報をRAM202や記憶装置204に記憶したり、RAM202や記憶装置204から情報を読み出したりする。本実施形態によれば、記憶制御部310は、プリンタ情報311及びジョブ情報312を記憶する。
【0024】
[情報処理装置の機能構成例]
図4を参照して、情報処理装置110の機能構成例について説明する。情報処理装置110は、図4に示される機能部を有してもよい。情報処理装置110は、図4に示されていない機能部を有してもよい。図4の各機能部は、RAM202に読み出されたプログラムをCPU201が実行することによって実現されてもよい。これに代えて、図4の機能部の一部又は全部は、ASICのような専用処理回路によって実現されてもよい。
【0025】
入力取得部401は、入力I/F205を用いて情報処理装置110のユーザから入力を取得する。情報出力部402は、出力I/F206を用いて情報処理装置110のユーザへ情報を出力する。
【0026】
登録制御部403は、論理プリンタを印刷サーバ130に登録するための処理を行う。印刷制御部404は、プリンタによる印刷に関連する処理を行う。例えば、印刷制御部404は、情報処理装置110のユーザからの印刷指示に従って、印刷サーバ130に登録された論理プリンタに印刷ジョブを送信してもよい。印刷制御部404は、情報処理装置110のユーザからの印刷指示に従って、物理プリンタに直接に(すなわち、同一のLAN内で)印刷ジョブを送信してもよい。
【0027】
プリンタ管理部405は、情報処理装置110が印刷ジョブを投入可能なプリンタに関する情報を、プリンタ情報411として管理する。プリンタ情報411は、プリンタの能力情報などを含む。
【0028】
記憶制御部410は、他の機能部からの指示に従って情報をRAM202や記憶装置204に記憶したり、RAM202や記憶装置204から情報を読み出したりする。本実施形態によれば、記憶制御部410は、プリンタ情報411を記憶する。
【0029】
[印刷装置のハードウェア構成例]
図5を参照して、本実施形態に係る印刷装置500のハードウェア構成例について説明する。印刷装置500は、印刷装置120として使用されてもよいし、印刷装置121として使用されてもよい。印刷装置500は、図5に示される構成要素を有してもよい。印刷装置500は物理的な印刷装置であるため、物理プリンタとも呼ばれうる。
【0030】
CPU501は、印刷装置500の全体的な動作を制御する汎用処理回路である。RAM502は、揮発性のメモリ回路であり、CPU501による処理のためのワークエリア等の一時記憶領域として使用される。ROM503は、不揮発性のメモリ回路であり、CPU501の処理で使用されるプログラムやデータを記憶する。記憶装置504は、不揮発性の記憶装置であり、CPU501の処理で使用されるプログラムやデータ(例えば、印刷ジョブ、画像データ、設定情報)を記憶する。記憶装置504は、例えばHDDやSSDであってもよい。記憶装置504は、二次記憶装置とも呼ばれうる。印刷装置500による動作は、記憶装置504からRAM502に読み出されたプログラムをCPU501が実行することによって実現されてもよい。
【0031】
プリンタI/F505は、プリンタエンジン520との間で信号を交換するためのI/Fである。プリンタエンジン520は、プリンタI/F505を通じて制御部510から供給された信号(例えば、画像信号や印刷コマンド)に基づいて印刷を行う。印刷は、トナーを紙に転写して定着させる電子写真方式の印刷であってもよいし、紙にインクを吐出することによって印刷するインクジェット方式の印刷であってもよいし、3次元印刷であってもよい。
【0032】
スキャナI/F506は、スキャナエンジン530との間で信号を交換するためのI/Fである。スキャナエンジン530は、原稿を読み取ることによって得られた信号(例えば、画像信号)を、スキャナI/F506を通じて制御部510に供給する。CPU501は、スキャナエンジン530から供給された画像信号を処理し、これによって得られた記録画像信号をプリンタエンジン520に供給してもよい。また、CPU501は、スキャナエンジン530から供給された画像信号に基づいて画像データを生成し、これを外部の装置へ送信してもよい。
【0033】
操作部I/F507は、操作部540との間で信号を交換するためのI/Fである。操作部540は、印刷装置500のユーザから入力を取得し、印刷装置500のユーザへ情報を提供する装置である。操作部540は、例えば表示パネル(例えば、液晶ディスプレイ)、スピーカ、タッチパネル、キーボード、ボタン、タッチスクリーン、又はこれらの任意の組み合わせで構成されてもよい。
【0034】
ネットワークI/F508は、印刷装置500の外部の装置と通信するためのI/Fである。CPU501、RAM502、ROM503、記憶装置504、プリンタI/F505、スキャナI/F506、操作部I/F507、及びネットワークI/F508によって制御部510が構成される。制御部510に含まれる各構成要素はシステムバス509に接続されている。
【0035】
[印刷装置の機能構成例]
図6を参照して、印刷装置500の機能構成例について説明する。印刷装置500は、図6に示される機能部を有してもよい。印刷装置500は、図6に示されていない機能部を有してもよい。図6の各機能部は、RAM502に読み出されたプログラムをCPU501が実行することによって実現されてもよい。これに代えて、図6の機能部の一部又は全部は、ASICのような専用処理回路によって実現されてもよい。
【0036】
入力取得部601は、操作部I/F507を用いて印刷装置500のユーザから入力を取得する。情報出力部602は、操作部I/F507を用いて印刷装置500のユーザへ情報を出力する。画像処理部603は、印刷ジョブを印刷用の画像データにレンダリングする。印刷処理部604は、画像処理部603によってレンダリングされた画像データを印刷する。
【0037】
登録制御部605は、印刷装置500に関連付けられた論理プリンタを印刷サーバ130に登録するための処理を行う。プリンタ管理部606は、印刷装置500に関する情報を、プリンタ情報621として管理する。プリンタ情報621は、例えば印刷装置500の状態、印刷装置500の能力、印刷装置500に関連付けられた論理プリンタに対して印刷サーバ130によって一意に割り当てられたクラウドプリンタIDを含んでもよい。また、プリンタ情報621は、情報処理装置110が同一のLAN101内の印刷装置を識別するためのローカルプリンタIDを含んでもよい。
【0038】
クラウドプリント(CP)制御部607は、クラウドプリントに関する処理を行う。例えば、CP制御部607は、印刷サーバ130から受信した印刷データを画像処理部603に転送してもよい。また、CP制御部607は、印刷サーバ130へイベント要求を送信してもよい。
【0039】
ローカルプリント(LP)制御部608は、ローカルプリントに関する処理を行う。例えば、LP制御部608は、情報処理装置110からのプリンタ検索に応答してもよい。また、LP制御部608は、情報処理装置110から直接に受信した印刷データを画像処理部603に転送してもよい。
【0040】
ジョブ管理部609は、印刷ジョブに関する情報を、ジョブ情報622として管理する。ジョブ情報622は、印刷ジョブの処理状態や処理結果を含んでもよい。さらに、ジョブ管理部609は、印刷ジョブで指定される印刷データのダウンロードの状況に関する情報を、ダウンロード(DL)状況情報623として管理する。DL状況情報623の詳細については後述する。
【0041】
タイマー制御部610は、時間に関する制御を行う。例えば、タイマー制御部610は、設定されたタイマーの満了に応じて通知を行って利、印刷装置500の機能部からの現在時刻と問い合わせに応答したりしてもよい。タイマーは、例えば1秒単位で設定可能であってもよい。
【0042】
記憶制御部620は、他の機能部からの指示に従って情報をRAM502や記憶装置504に記憶したり、RAM502や記憶装置504から情報を読み出したりする。本実施形態によれば、記憶制御部620は、プリンタ情報621、ジョブ情報622及びDL状況情報623を記憶する。記憶制御部620は、ファイルシステムとしてデータを管理してもよい。記憶制御部620は、各データの記憶先を、不揮発領域である記憶装置504と、揮発領域であるRAM502とに振り分けてもよい。例えば、記憶制御部620は、プリンタ情報621及びジョブ情報622を不揮発性領域に記憶してもよい。
【0043】
[クラウドプリントの全体的な処理シーケンス]
図7を参照して、クラウドプリントを行うための全体的な処理のシーケンスについて説明する。図7の例では、印刷装置500が印刷サーバ130に登録され、印刷装置500に関連付けられた論理プリンタに情報処理装置110から印刷ジョブが投入される場合を扱う。印刷装置500を印刷サーバ130に登録するとは、印刷装置500に関連付けられた論理プリンタを印刷サーバ130に登録することであってもよい。印刷装置500は、例えば図1の印刷装置120であってもよいし、印刷装置121であってもよい。通信は、インターネットプリンティングプロトコル(IPP)を用いて行われてもよい。IPPは、PWG5100.18、RFC3995、RFC3996などに規定されている。
【0044】
S701で、印刷装置500の登録制御部605は、例えばユーザからの指示に従って、印刷装置500を印刷サーバ130に登録することを要求するためにプリンタ登録要求を印刷サーバ130へ送信する。この要求に応じて、印刷サーバ130の登録制御部301は、印刷装置500に関連付けられた論理プリンタを印刷サーバ130に登録する。
【0045】
S702で、印刷装置500のCP制御部607は、印刷装置500がサポートする属性情報及び属性値を通知するためにプリンタ情報通知を印刷サーバ130へ送信する。プリンタ情報通知の送信は、IPPのUpdate-Output-Device-Attributesオペレーションを使用して行われてもよい。印刷サーバ130のプリンタ管理部303は、プリンタ情報通知によって通知された情報をプリンタ情報311に反映する。
【0046】
S703で、印刷装置500のCP制御部607は、印刷サーバ130にイベントの通知登録を行う。イベントの通知登録は、IPPのCreate-Printer-Subscriptionオペレーションを使用して行われてもよい。S704で、印刷装置500のCP制御部607は、印刷装置500に関するイベントの発生を確認するために、イベント確認を印刷サーバ130へ送信する。イベント確認の送信は、IPPのGet-Notificationオペレーションを使用して行われてもよい。
【0047】
S705で、情報処理装置110のプリンタ管理部405は、例えばユーザからの指示に従って、印刷サーバ130に登録されている論理プリンタを検索し、発見された論理プリンタを情報処理装置110に追加する。S706で、情報処理装置110のプリンタ管理部405は、追加した論理プリンタの属性情報及び属性値を取得し、これらをプリンタ情報411に反映する。論理プリンタの属性情報及び属性値の取得は、IPPのGet-Printer-Attributesオペレーションを使用して行われてもよい。
【0048】
S706で、情報処理装置110の印刷制御部302は、ユーザに指定された印刷属性に従って、印刷サーバ130が提供する論理プリンタを対象として印刷ジョブを印刷サーバ130へ送信する。印刷ジョブの送信は、IPPのSend-DocumentオペレーションやPrint-Jobオペレーション、Create-Jobオペレーションなどで行われてもよい。
【0049】
S708で、印刷サーバ130の印刷制御部302は、印刷ジョブを受信したことに応じて、イベント通知を印刷装置500へ送信する。イベント通知の送信は、IPPのNotificationオペレーションを使用して行われてもよい。S709で、印刷装置500のCP制御部607は、イベント通知を受信したことに応じて、印刷サーバ130から印刷装置500に関するジョブ一覧を取得する。ジョブ一覧の取得は、IPPのGet-Jobsオペレーションを使用して行われてもよい。
【0050】
S710で、印刷装置500のCP制御部607は、ジョブ一覧に含まれる1つ以上の印刷ジョブのうち、いずれかの印刷ジョブ(例えば、ユーザによって指定された印刷ジョブ)を取得する。印刷ジョブの取得は、IPPのFetch-Jobオペレーションを使用して行われてもよい。印刷ジョブは、印刷データ及び印刷設定(例えば、属性値)を含んでもよい。
【0051】
印刷装置500の印刷処理部604は、印刷ジョブを受信したことに応じて、印刷ジョブに従って印刷を行う。S711及びS713で、印刷装置500のCP制御部607は、印刷ジョブの処理状況に応じて、プリンタ情報を通知する。プリンタ情報の通知は、IPPのUpdate-Output-Device-Attributesオペレーションを使用して行われてもよい。例えば、S711で、属性値として"printer-state=processing"が送信されてもよく、S713で、属性値として"printer-state=idle"が送信されてもよい。また、S712で、印刷装置500のCP制御部607は、印刷ジョブの処理状況に応じて、ジョブ情報を通知する。ジョブ情報の通知は、IPPのUpdate-Job-Statusオペレーションを使用して行われてもよい。例えば、S712で、属性値として"job-state=completed"が送信されてもよい。S714で、印刷サーバ130の印刷制御部302は、印刷装置500での印刷が完了したことに応じて、印刷完了通知を情報処理装置110へ送信する。
【0052】
<印刷データのダウンロード処理の動作フロー>
図8を参照して、印刷装置500が印刷サーバ130から印刷データをダウンロードする処理の例を説明する。図8の動作は、図7のS710で印刷装置500が印刷ジョブを受信したことに応じて開始されてもよい。印刷装置500は、1つの印刷ジョブを受信するごとに図8の動作を実行してもよい。以下の説明において、S710で印刷装置500から受信した印刷ジョブを対象ジョブと呼ぶ。
【0053】
S801で、印刷装置500のCP制御部607は、DL状況情報623に対象ジョブのレコードがあるかどうかを判定する。CP制御部607は、DL状況情報623に対象ジョブのレコードがあると判定された場合(S801で「YES」)に処理をS802に遷移し、それ以外の場合(S801で「NO」)に処理をS804に遷移する。
【0054】
図9を参照して、DL状況情報623の具体例について説明する。図9の例で、DL状況情報623は、テーブル形式で記憶されている。DL状況情報623の各レコードは、ジョブを表す。DL状況情報623は、記憶制御部620によって印刷装置500の不揮発領域(例えば、記憶装置504)に記憶されている。
【0055】
カラム901は、印刷サーバ130によって印刷ジョブに個別に割り当てられた一意の識別情報を表す。CP制御部607は、カラム901に対象ジョブのジョブIDが含まれるかどうかに基づいて、DL状況情報623に対象ジョブのレコードがあるかどうかを判定してもよい。カラム902は、記憶制御部620がファイルシステムに格納した印刷データのファイルハンドル値を表す。記憶制御部620は、印刷ジョブに示される印刷データをファイルシステムに格納する。
【0056】
カラム903は、印刷データのうちダウンロードがすでに終了した部分のデータサイズを表す。カラム904は、印刷データの総データサイズを表す。総データサイズが不明な場合に、カラム904の値は「UNKNOWN(不明)」となってもよい。カラム905は、印刷ジョブが保留状態となった時刻を表す。カラム905は、後述の実施形態で使用される。そのため、本実施形態において、カラム905は省略されてもよい。
【0057】
DL状況情報623に対象ジョブのレコードがない場合に、S802で、印刷装置500のジョブ管理部609は、対象ジョブを表すレコードをDL状況情報623に追加する。このレコードのカラム901は、対象ジョブのジョブIDとなる。このレコードのカラム902は、対象ジョブの印刷データのために記憶制御部620が新たに作成したファイルハンドルとなる。このレコードのカラム903は、この時点でダウンロードが開始されていないため、0となる。このレコードのカラム904は、印刷サーバ130から印刷サイズの総データサイズを取得できた場合にはそのサイズとなり、不明な場合には「UNKNOWN」となる。さらに、印刷装置500のジョブ管理部609は、対象ジョブを表すレコードをジョブ情報622にも追加する。
【0058】
S801でDL状況情報623に対象ジョブのレコードがないと判定された場合に、S803で、印刷装置500のCP制御部607は、対象ジョブの印刷データのダウンロードを開始する。一方、S801でDL状況情報623に対象ジョブのレコードがあると判定された場合に、S804で、印刷装置500のCP制御部607は、対象ジョブの印刷データのダウンロードを再開する。後述するように、S801でDL状況情報623に対象ジョブのレコードがある場合に、印刷データの少なくとも一部が印刷装置500に記憶されている。そのため、CP制御部607は、ダウンロード済のデータの続きからダウンロードを再開する。ダウンロードの開始及び再開は、受信した対象ジョブのジョブIDを使用してIPPメッセージを送信することによって行われてもよい。
【0059】
S805で、印刷装置500のCP制御部607は、印刷データのダウンロードが途中で中止されたかどうかを判定する。CP制御部607は、ダウンロードが途中で中止されたと判定された場合(S805で「YES」)に処理をS808に遷移し、それ以外の場合(S805で「NO」)に処理をS806に遷移する。ダウンロードの中止は、例えば印刷サーバ130と印刷装置500との間の通信エラーと、印刷装置500のユーザによるダウンロードの中止指示との少なくとも一方を含む条件が満たされたことに応じて発生しうる。例えば、印刷装置500のユーザは、印刷データのダウンロード速度が低い場合に、ダウンロードをいったん中止し、通信帯域が混雑していない時間にダウンロードを再開したり、別の通信回線を使用してダウンロードを再開したりしうる。
【0060】
S806で、印刷装置500のCP制御部607は、印刷データのダウンロードが継続されているならば、ダウンロードの経過をDL状況情報623に反映する。具体的に、CP制御部607は、これまでにダウンロードが完了したデータのサイズをDL状況情報623のカラム903に反映する。印刷サーバ130からダウンロードされたデータは、記憶制御部620によってRAM502又は記憶装置504に記憶される。
【0061】
S807で、印刷装置500のCP制御部607は、印刷データのダウンロードが完了したかどうかを判定する。CP制御部607は、ダウンロードが完了したと判定された場合(S807で「YES」)に処理を終了し、それ以外の場合(S807で「NO」)に処理をS805に遷移する。このように、印刷データのダウンロードが完了するまで、印刷データのダウンロードが中止されたかどうかが繰り返し判定される。
【0062】
ダウンロードの完了の判定は、ダウンロード済のデータサイズが印刷データの総データサイズに到達したかどうかに基づいて行われてもよい。これに代えて、ダウンロードの完了の判定は、IPP通信のベースとなるハイパーテキストトランスファープロトコル(HTTP)通信の技術であるCHUNK通信においてデータの終端であることが示されるかどうかに基づいて行われてもよい。さらに、ダウンロードの完了の判定は、ダウンロード済のデータを他のように解析することによって行われてもよい。
【0063】
ダウンロードが中止されたと判定された場合に、S808で、印刷装置500のCP制御部607は、対象ジョブのダウンロードが中止されたことを示すようにジョブ情報622を更新する。また、印刷装置500の情報出力部602は、印刷データのダウンロードが中止されたことを印刷装置500のユーザに通知してもよい。S809で、印刷装置500の記憶制御部620は、印刷データのうちダウンロード済の部分を記憶し続ける。すなわち、記憶制御部620は、印刷データのダウンロードが中止されたとしても、ダウンロード済のデータを削除しない。また、ジョブ管理部609は、DL状況情報623内の対象ジョブのレコードを削除せずに残しておく。
【0064】
<印刷データの印刷処理の動作フロー>
図10を参照して、印刷装置500が印刷データを印刷する処理の例を説明する。図10の動作は、図7のS710で印刷装置500が印刷ジョブを受信したことに応じて開始されてもよい。印刷装置500は、1つの印刷ジョブを受信するごとに図10の動作を実行してもよい。以下の説明において、印刷装置500から受信した印刷ジョブを対象ジョブと呼ぶ。図10の動作は、図8の動作を並行して実行されてもよいし、図8の動作が完了してから開始されてもよい。
【0065】
S1001で、印刷装置500のCP制御部607は、印刷処理部604に対して対象ジョブに基づく印刷を指示する。この指示において、CP制御部607は、印刷データとして印刷処理部604に、印刷データが保持されるRAM502のバッファポインタを渡してもよいし、ファイルシステムのファイルハンドル(カラム902)を渡してもよい。ファイルハンドルが渡された場合に、印刷処理部604は、ファイルハンドルを使用して、ファイルハンドルから印刷データを読み出してもよい。S1001の時点で、印刷データのダウンロードは完了していてもよいし、していなくてもよい。
【0066】
S1002で、印刷装置500の印刷処理部604は、対象ジョブに基づく印刷可能かどうかを判定する。印刷処理部604は、印刷可能であると判定された場合(S1002で「YES」)に処理をS1006に遷移し、それ以外の場合(S1002で「NO」)に処理をS1003に遷移する。例えば、印刷装置500で紙詰まり、トナー切れ、用紙切れなどのエラーが発生している場合に、対象ジョブに基づいて印刷できないと判定されてもよい。
【0067】
S1003で、印刷装置500の情報出力部602は、印刷装置500のユーザに、対象ジョブに従う印刷をキャンセルするかどうかを問い合わせる。S1004で、印刷装置500の入力取得部601は、印刷装置500のユーザから対象ジョブをキャンセルすることのキャンセル指示を取得したかどうかを判定する。入力取得部601は、キャンセル指示を取得したと判定された場合(S1004で「YES」)に処理をS1005に遷移し、それ以外の場合(S1004で「NO」)に処理をS1001に遷移する。ユーザからキャンセル指示が取得されない場合に、S1001で、印刷装置500のCP制御部607は、印刷処理部604に対して対象ジョブに従う印刷を再び指示する。このようにして、印刷装置500は、印刷装置500のエラーが解消されるか、ユーザによって対象ジョブがキャンセルされるまで印刷指示を繰り返す。再度の印刷指示は、所定の待機時間の経過後に行われてもよいし、印刷装置500のエラーが解消したことに応じて行われてもよい。ユーザからキャンセル指示が取得された場合に、S1005で、印刷装置500の印刷処理部604は、対象ジョブに従う印刷を中止する。
【0068】
対象ジョブに従って印刷可能である場合に、S1006で、印刷装置500のCP制御部607は、印刷データのダウンロードが完了したかどうかを判定する。CP制御部607は、ダウンロードが完了したと判定された場合(S1006で「YES」)に処理をS1007に遷移し、それ以外の場合(S1006で「NO」)にS1006を繰り返し、ダウンロードが完了するまで待機する。ダウンロードの完了の判定は、S807と同様の手法を用いて行われてもよい。また、CP制御部607は、S807が先に完了している場合に、S1006でその結果を利用してもよい。
【0069】
S1007で、印刷装置500の印刷処理部604は、対象ジョブを留め置くかどうかを判定する。印刷処理部604は、対象ジョブを留め置くと判定された場合(S1007で「YES」)に処理をS1008に遷移し、それ以外の場合(S1007で「NO」)に処理をS1009に遷移する。
【0070】
留置き印刷とは、印刷装置500への印刷要求に対して要求受信時に直ちに印刷せず、印刷データを印刷装置500の不揮発領域に格納しておき、印刷装置500のユーザによる印刷指示に応じて排紙処理する技術でのことである。図10の方法の開始時点で留置き印刷が指定されていたとしても、S1007の実行時点で留置き印刷の指定が解除されている場合には、対象ジョブを留め置かないと判定される。
【0071】
S1008で、印刷装置500の印刷処理部604は、対象ジョブの留置きを解除するかどうかを判定する。印刷処理部604は、留置きを解除すると判定された場合(S1008で「YES」)に処理をS1001に遷移し、それ以外の場合(S1008で「NO」)にS1008を繰り返す。S1009で、印刷装置500の印刷処理部604は、対象ジョブに従って印刷を行う。
【0072】
S1010で、印刷装置500のCP制御部607は、対象ジョブの状態を印刷サーバ130に通知する。具体的に、S1005で対象ジョブがユーザ指示に応じてキャンセルされた場合に、CP制御部607は、対象ジョブがキャンセルされたことを印刷サーバ130に通知する。例えば、この通知は、IPPのUpdate-Job-Statusオペレーションで、属性値として"job-state=cancel"として送信されてもよい。印刷サーバ130のジョブ管理部304は、この通知を受信したことに応じて、印刷ジョブをキャンセルし、印刷ジョブの印刷データを記憶装置204から削除する。S1009で対象ジョブに従う印刷が完了した場合に、CP制御部607は、対象ジョブが完了したことを印刷サーバ130に通知する。例えば、この通知は、IPPのUpdate-Job-Statusオペレーションで、属性値として"job-state=completed"として送信されてもよい。印刷サーバ130のジョブ管理部304は、この通知を受信したことに応じて、印刷ジョブを完了し、印刷ジョブの印刷データを記憶装置204から削除する。このようにS1010で通知を行うことによって、印刷サーバ130と印刷装置500との間で印刷ジョブの処理状態が同期される。
【0073】
S1011で、印刷装置500のジョブ管理部609は、対象ジョブがキャンセルされた場合であっても、対象ジョブに従う印刷が完了した場合であっても、DL状況情報623から対象ジョブのレコードを削除する。また、印刷装置500の記憶制御部620は、対象ジョブがキャンセルされた場合であっても、対象ジョブに従う印刷が完了した場合であっても、対象ジョブの印刷データを削除する。例えば、S1005で対象ジョブがユーザ指示に応じてキャンセルされた場合に、記憶制御部620は、対象ジョブのダウンロードが途中までであったとしても、この途中までのデータを削除する。また、印刷ジョブがキャンセルされたことに伴って、対象ジョブのダウンロードは中止される。このように不要となったデータを削除することによって、印刷装置500の記憶領域が有効に活用される。また、印刷装置500のジョブ管理部609は、印刷ジョブの実行状況に応じて、ジョブ情報622を更新する。
【0074】
図8のS805で印刷データのダウンロードが中止された場合に、印刷装置500は、印刷サーバ130に対して対象ジョブをキャンセルすることの通知や、対象ジョブを完了することの通知を行わない。そのため、図8のS805で印刷データのダウンロードが中止されたとしても、印刷サーバ130において対象ジョブの印刷データは記憶されたままとなる。また、上述したように、図8のS805で印刷データのダウンロードが中止されたとしても、印刷装置500においても、対象ジョブの印刷データのうちダウンロード済の部分は記憶されたままとなる。
【0075】
印刷装置500は、印刷データのダウンロードが中止された印刷ジョブについて、図8の動作を再実行してもよい。例えば、印刷装置500は、ユーザからダウンロードの再実行を指示された場合や、印刷サーバ130と印刷装置500との間の通信エラーが解消した場合に、この印刷ジョブについて図8の動作を再実行してもよい。この場合に、印刷装置500は、印刷データを途中からダウンロードできるため、再実行から印刷終了までの時間と短縮でき、また、通信量を低減できる。また、S1004のようにユーザから明示的にキャンセル指示を取得した場合に、印刷データを削除することによって、印刷装置500の記憶容量を有効に活用できる。さらに、印刷ジョブが留置き状態の場合にも、印刷データは削除されない。
【0076】
<印刷データのダウンロードのためのパケット>
図11を参照して、印刷装置500が印刷サーバ130から印刷データをダウンロードするために使用されるパケットの例について説明する。IPPのベースはHTTPであるため、図11では、HTTPパケットを例として説明する。IPPはHTTPパケットを通信可能である。
【0077】
図11(a)は、印刷データをダウンロードするために印刷装置500が印刷サーバ130へ送信するパケット1100の例を示す。パケット1100のヘッダは、レンジフィールド1101を含む。レンジフィールド1101は、印刷データのうち、ダウンロード対象の範囲を指定する範囲リクエストのためのフィールドである。パケット1100の例では、0Byteから65535Byteまでの範囲が指定されている。図8のS803のように、印刷データを最初からダウンロードする場合には、このような範囲指定となる。また、初回のダウンロードであっても、印刷装置500は、オフセットした範囲を指定してもよい。
【0078】
レンジフィールド1101は、印刷データの途中の範囲を指定することもできる。そのため、図8のS804のように、印刷データを途中からダウンロードする場合に、印刷装置500は、ダウンロード済の部分を除外してレンジフィールド1101を指定する。これによって、印刷装置500は印刷データを途中から(オフセットして)ダウンロードできる。
【0079】
図11(b)は、パケット1100の応答として、印刷サーバ130が印刷装置500へ送信するパケット1110の例を示す。パケット1110のヘッダは、応答データのサイズの単位を示すフィールド1111を示す。また、パケット1110のヘッダは、パケット1110のボディ1114に含まれるデータのサイズを示すフィールド1112を含む。さらに、パケット1110のヘッダは、パケット1100のボディ1114に含まれるデータの範囲と、データの総サイズとを示すフィールド1113を含む。印刷データのサイズがまだ決まっていない場合に、フィールド1113の総サイズは存在しないこともありうる。
【0080】
印刷装置500は、印刷サーバ130との間に複数のHTTPコネクションを確立し、別個のオフセット範囲を設定した複数のパケットを並列に受信してもよい。これによって、印刷データのダウンロードが高速化される。
【0081】
<印刷ジョブの実行結果の表示画面>
図12を参照して、印刷ジョブの実行結果を表示する画面1200の例について説明する。印刷装置500の情報出力部602は、ユーザからの指示に従って画面1200を生成し、操作部540に表示してもよい。これに代えて、印刷装置500の情報出力部602は、印刷ジョブの実行状況の変化に応じて(例えば、S808、S1005、S1009の実行後に)画面1200を生成し、操作部540に表示してもよい。画面1200は、クラウドプリントに関する印刷ジョブだけでなく、ローカルプリントに関する印刷ジョブの情報も含む。画面1200では、テーブル形式で印刷ジョブの状況が示されている。
【0082】
カラム1201は、印刷ジョブに従う印刷の開始日時を示す。開始日時は、印刷装置500が印刷を開始した日時であってもよい。カラム1202は、印刷ジョブに従う印刷の終了日時を示す。終了日時は、印刷装置500が印刷を終了した日時であってもよい。カラム1203は、各レコードが表す印刷ジョブの名称を示す。この名称は、印刷データのファイル名であってもよい。
【0083】
カラム1204は、印刷装置500における印刷ジョブの状況を示す。例えば、通信エラーによって図8のS805で印刷データのダウンロードが中止された場合に、「通信エラー」と表示されてもよい。カラム1205は、印刷データの形式と、印刷ジョブがクラウドプリントに関するか、ローカルプリントに関するかとを示す。カラム1206は、印刷ジョブに対して実行可能なユーザ操作を示す。例えば、ユーザは「中止」を押下することによって、印刷ジョブに対するキャンセル指示(図10のS1004)を入力できる。ユーザは「印刷」を押下することによって、印刷ジョブを再実行することができる。この場合に、上述のように、印刷ジョブの印刷データが途中までダウンロード済みであるならば、印刷データが途中からダウンロードされる。
【0084】
<第2実施形態>
第2実施形態に係る印刷装置500について説明する。第1実施形態に係る印刷装置500と同様であってもよい内容については重複する記載を省略する。印刷装置500によっては、印刷データを格納できる十分な不揮発領域を有しないことがある。また、十分な不揮発領域を有していたとしても、印刷データが不揮発領域に多く残されていると、新たな印刷データをダウンロードするために不揮発領域を利用できない場合がありうる。そこで、本実施形態では、印刷データのダウンロードのために使用可能な不揮発領域の上限サイズを設定し、この上限サイズを超えないように印刷データをダウンロードする。
【0085】
図12を参照して、第2実施形態に係る印刷装置500の動作について説明する。第2実施形態に係る印刷装置500は、第1実施形態の動作に追加して、図12の動作を実行する。図12の動作は、印刷装置500の稼働中に継続して実行されてもよい。印刷装置500には、クラウドプリントで使用可能な不揮発領域の上限サイズが設定されている。上限サイズは、印刷装置500の不揮発領域(記憶装置504)のサイズに応じて固定的に設定されていてもよいし、接続された外部ストレージの容量に基づいて可変的に設定されてもよい。
【0086】
S1301で、印刷装置500の記憶制御部620は、クラウドプリントにおける不揮発領域への新たな記憶を許可する。この場合に、印刷データなどのクラウドプリントに関するデータは制限なく不揮発領域に記憶されてもよい。
【0087】
S1302で、印刷装置500の記憶制御部620は、クラウドプリントにおける不揮発領域の使用容量が上限サイズを上回っているかどうかを判定する。記憶制御部620は、クラウドプリントにおける不揮発領域の使用容量が上限サイズを上回っていると判定された場合(S1302で「YES」)に処理をS1303に遷移し、それ以外の場合(S1302で「NO」)にS1302を繰り返す。
【0088】
S1303で、印刷装置500の記憶制御部620は、クラウドプリントにおける不揮発領域への新たな記憶を禁止する。この場合に、クラウドプリントに関するデータは、揮発領域(RAM502)には記憶できるものの、不揮発領域(記憶装置504)に記憶できない。そのため、図8のS803及びS805でダウンロードされる印刷データは、揮発領域にのみ記憶され、不揮発領域には記憶されない。
【0089】
また、留置き印刷は、不揮発領域への印刷データの記憶を前提とした機能であるため、留置き印刷を実行することができない。そのため、留置き印刷を指示する印刷ジョブはエラーとなる。すでに印刷データが不揮発領域に記憶されている印刷ジョブについては、引き続き留置き印刷が利用可能であってもよい。
【0090】
S1304で、印刷装置500の記憶制御部620は、クラウドプリントにおいて使用されている不揮発領域の容量が上限サイズを下回っているかどうかを判定する。記憶制御部620は、クラウドプリントにおいて使用されている不揮発領域の容量が上限サイズを下回っていると判定された場合(S1304で「YES」)に処理をS1301に遷移し、それ以外の場合(S1304で「NO」)にS1303を繰り返す。
【0091】
以上のように、本実施形態によれば、印刷装置500の不揮発領域のサイズに基づいて、クラウドプリントを効率的に実行できる。
【0092】
<第3実施形態>
第3実施形態に係る印刷装置500について説明する。第1実施形態に係る印刷装置500と同様であってもよい内容については重複する記載を省略する。また、本実施形態は第2実施形態と組み合わされてもよい。第1実施形態では、印刷装置500によって明示的に削除されるまで、印刷データが記憶領域に記憶される。留置き印刷やダウンロード再開のために印刷データが長時間記憶され続けると、記憶領域の容量を有効に活用できない。そこで、本実施形態では、印刷データの記憶時間に上限時間を設定し、この上限時間を超えた場合に、印刷データが削除される。上限時間は固定値であってもよいし、印刷装置500のユーザによって設定可能であってもよい。
【0093】
図13を参照して、第3実施形態に係る印刷装置500の動作について説明する。第3実施形態に係る印刷装置500は、第1実施形態の動作に追加して、図13の動作を実行する。図13の動作は、S807又はS1006で印刷データのダウンロードが完了したと判定されるか、S805でダウンロードが中止されたと判定された印刷ジョブについて実行される。以下の説明では、このような印刷ジョブを対象ジョブと呼ぶ。印刷装置500は、複数の印刷ジョブについて図13の動作を並列して実行してもよい。
【0094】
S1401で、印刷装置500のタイマー制御部610は、対象印刷ジョブのダウンロードが完了又は中止した時刻を、DL状況情報623のカラム905に記録する。この時刻は、保留開始時刻とも呼ばれうる。対象ジョブの印刷データは、印刷装置500の不揮発領域に記憶されてもよい。
【0095】
S1402で、印刷装置500のタイマー制御部610は、保留開始時刻からの経過時間が上限時間に到達したかどうかを判定する。タイマー制御部610は、保留開始時刻からの経過時間が上限時間に到達したと判定された場合(S1403で「YES」)に処理をS1403に遷移し、それ以外の場合(S1403で「NO」)にS1402を繰り返す。
【0096】
S1403で、印刷装置500のジョブ管理部609は、DL状況情報623から対象ジョブのレコードを削除する。これによって、カラム905に記録された保留開始時刻も削除される。また、印刷装置500の記憶制御部620は、対象ジョブの印刷データを削除する。このように印刷データが削除された印刷ジョブについて再実行や留置き印刷の実行が指示された場合に、印刷装置500は、この印刷データを再び最初からダウンロードすることになる。
【0097】
以上のように、本実施形態によれば、印刷装置500の記憶領域を有効活用できるようになる。
【0098】
<第4実施形態>
第4実施形態に係る印刷装置500について説明する。第1実施形態に係る印刷装置500と同様であってもよい内容については重複する記載を省略する。また、本実施形態は第2実施形態又は第3実施形態と組み合わされてもよい。第1実施形態では、図10のS1004で印刷ジョブのキャンセル指示をユーザから取得した場合に、S1001で印刷データを削除する。これに代えて、本実施形態に係る印刷装置は、キャンセル指示をユーザから取得した場合に、印刷データを削除するかどうかをユーザに問い合わせる。
【0099】
図15を参照して、第4実施形態に係る印刷装置500の動作について説明する。この方法は、S1005とS1010との間にS1501及びS1502をさらに有する点で、図10の方法とは異なり、他の点は同様であってもよい。
【0100】
S1501で、印刷装置500の情報出力部602は、印刷装置500のユーザに、対象ジョブの印刷データのうちダウンロードが終了した部分を削除するかどうかを問い合わせる。S1502で、印刷装置500の入力取得部601は、印刷装置500のユーザから印刷データのうちダウンロードが終了した部分を削除することの削除指示を取得したかどうかを判定する。入力取得部601は、削除指示を取得したと判定された場合(S1502で「YES」)に処理をS1010に遷移し、印刷データのうちダウンロードが終了した部分を維持する指示を取得したと判定された場合(S1502で「NO」)に処理を終了する。
【0101】
削除指示を取得した場合に、印刷装置500は、図10のS1010及びS1011を実行することによって、印刷装置500内の印刷データを削除するとともに、印刷サーバ130に印刷データを削除させる。一方、削除指示を取得しなかった場合に、印刷装置500は、図10のS1010及びS1011を実行しない。これによって、印刷装置500内の印刷データが記憶され続け、印刷サーバ130内の印刷データも記憶され続ける。これによって、この印刷データを使用する印刷ジョブの再実行時に、ダウンロードされるデータ量が低減される。
【0102】
<実施形態のまとめ>
[項目1]
印刷装置であって、
論理プリンタを提供する印刷サーバから、インターネットプリンティングプロトコル(IPP)によって印刷ジョブを受信する受信手段と、
前記印刷ジョブに基づいて印刷を行う印刷手段と、
前記印刷ジョブで指定される印刷データのうちダウンロードが終了した部分を記憶領域に記憶する記憶制御手段と、を備え、
前記受信手段は、前記印刷データのダウンロードが途中で中止された後に前記印刷データのダウンロードを再開する場合に、ハイパーテキストトランスファープロトコル(HTTP)の範囲リクエストを使用して、前記印刷データのうち前記記憶領域に記憶されていない部分をダウンロードする、印刷装置。
[項目2]
前記記憶制御手段は、前記印刷データのダウンロードが途中で中止された場合に、第1条件が満たされるならば、前記印刷データのうちダウンロードが終了した部分を前記記憶領域に記憶し続け、第2条件が満たされるならば、前記印刷データのうちダウンロードが終了した部分を前記記憶領域から削除する、項目1に記載の印刷装置。
[項目3]
前記第1条件は、前記印刷データのダウンロードが通信エラーによって中止されることと、前記印刷データのダウンロードが前記印刷装置のユーザの指示によって中止されることと、の少なくとも一方を含み、
前記第2条件は、前記印刷ジョブがキャンセルされたことに伴って前記印刷データのダウンロードが中止されることを含む、項目2に記載の印刷装置。
[項目4]
前記第1条件は、前記印刷ジョブが前記印刷装置のユーザによってキャンセルされ、かつ前記印刷データのうちダウンロードが終了した部分を維持するように前記ユーザによって指示されたことを含み、
前記第2条件は、前記印刷ジョブが前記印刷装置のユーザによってキャンセルされ、かつ前記印刷データのうちダウンロードが終了した部分を削除するように前記ユーザによって指示されたことを含む、項目2又は3に記載の印刷装置。
[項目5]
前記印刷装置は、前記印刷データのうちダウンロードが終了した部分が前記記憶領域から削除された場合に、前記印刷データを前記印刷サーバから削除するように前記印刷サーバに通知する通知手段をさらに備える、項目1乃至4の何れか1項に記載の印刷装置。
[項目6]
前記記憶制御手段は、前記印刷ジョブに基づく印刷が完了した場合に、前記印刷データを前記記憶領域から削除する、項目1乃至5の何れか1項に記載の印刷装置。
[項目7]
前記記憶領域は、揮発領域と不揮発領域とを含み、
前記記憶制御手段は、
前記論理プリンタを使用する印刷における前記不揮発領域の使用容量が上限サイズを下回る場合に、当該印刷における前記不揮発領域への新たな記憶を許可し、
前記論理プリンタを使用する印刷における前記不揮発領域の使用容量が前記上限サイズを上回る場合に、当該印刷における前記不揮発領域への新たな記憶を禁止する、項目1乃至6の何れか1項に記載の印刷装置。
[項目8]
前記記憶制御手段は、前記印刷データのうちダウンロードが終了した部分を前記記憶領域に記憶してからの経過時間が上限時間に到達した場合に、当該部分を前記記憶領域から削除する、項目1に記載の印刷装置。
[項目9]
項目1乃至8の何れか1項に記載の印刷装置の各手段としてコンピュータを機能させるためのプログラム。
[項目10]
印刷ジョブに基づいて印刷を行う印刷手段を備える印刷装置の制御方法であって、
論理プリンタを提供する印刷サーバから、インターネットプリンティングプロトコル(IPP)によって印刷ジョブを受信する工程と、
前記印刷ジョブで指定される印刷データのうちダウンロードが終了した部分を記憶領域に記憶する工程と、 前記印刷データのダウンロードが途中で中止された後に前記印刷データのダウンロードを再開する場合に、ハイパーテキストトランスファープロトコル(HTTP)の範囲リクエストを使用して、前記印刷データのうち前記記憶領域に記憶されていない部分をダウンロードする工程と、を有する制御方法。
【0103】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0104】
110 情報処理装置、120 印刷装置、130 印刷サーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15