(57)【要約】【課題】  プリンタが、対象画像を表わす画像データを利用した印刷データの生成に失敗しても、対象画像の印刷を実行することができる技術を開示すること。【解決手段】  プリンタは、サーバから、対象画像を表わす第１の画像データであって、第１のデータフォーマットを有する第１の画像データを受信し、サーバから、対象画像を表わす第２の画像データであって、第２のデータフォーマットを有する第２の画像データを受信し、第１の画像データを利用して第１の印刷データを生成することを試行し、第１の印刷データの生成に成功する場合に、第１の印刷データを利用して印刷し、第１の画像データが特定情報を含むことに起因して第１の印刷データの生成に失敗する場合に、特定情報を含まない第２の画像データを利用して第２の印刷データを生成し、第１の印刷データの生成に失敗する場合に、第２の印刷データを利用して印刷する。【選択図】図９
2020138391.tif 000002
【特許請求の範囲】
【請求項１】
プリンタであって、
印刷実行部と、
通信インターフェースと、
サーバから、前記通信インターフェースを介して、対象画像を表わす第１の画像データであって、第１のデータフォーマットを有する前記第１の画像データを受信する第１の受信部と、
前記サーバから、前記通信インターフェースを介して、前記対象画像を表わす第２の画像データであって、前記第１のデータフォーマットとは異なる第２のデータフォーマットを有する前記第２の画像データを受信する第２の受信部と、
前記第１の画像データを利用して、前記対象画像の印刷を前記印刷実行部に実行させるための第１の印刷データを生成することを試行する第１の生成部と、
前記第１の印刷データの生成に成功する場合に、生成済みの前記第１の印刷データを利用して、前記対象画像の印刷を前記印刷実行部に実行させる第１の印刷制御部と、
前記第１の画像データが特定情報を含むことに起因して前記第１の印刷データの生成に失敗する場合に、前記特定情報を含まない前記第２の画像データを利用して、前記対象画像の印刷を前記印刷実行部に実行させるための第２の印刷データを生成する第２の生成部と、
前記第１の印刷データの生成に失敗する場合に、生成済みの前記第２の印刷データを利用して、前記対象画像の印刷を前記印刷実行部に実行させる第２の印刷制御部と、
を備えるプリンタ。
【請求項２】
前記プリンタは、さらに、
前記通信インターフェースを介して、第１のデータ要求を前記サーバに送信する第１の要求送信部であって、前記第１のデータ要求は、前記第１の画像データの送信を前記サーバに要求するための信号である、前記第１の要求送信部を備え、
前記第１の受信部は、前記第１のデータ要求の送信に応じて、前記サーバから前記第１の画像データを受信し、
前記プリンタは、さらに、
前記第１の印刷データの生成に失敗する場合に、前記通信インターフェースを介して、第２のデータ要求を前記サーバに送信する第２の要求送信部であって、前記第２のデータ要求は、前記第２の画像データの送信を前記サーバに要求するための信号であり、前記第１の印刷データの生成に成功する場合に、前記第２のデータ要求は送信されない、前記第２の要求送信部を備え、
前記第２の受信部は、前記第２のデータ要求の送信に応じて、前記サーバから前記第２の画像データを受信する、請求項１に記載のプリンタ。
【請求項３】
前記第１の画像データのデータサイズは、前記第２の画像データのデータサイズよりも小さい、請求項２に記載のプリンタ。
【請求項４】
前記プリンタは、さらに、
前記第１の印刷データの生成に成功し、かつ、前記第１の印刷データを利用した前記対象画像の印刷が前記印刷実行部において失敗する場合に、前記通信インターフェースを介して、前記対象画像の印刷を中止することを示す中止通知を前記サーバに送信する通知送信部であって、前記第１の印刷データの生成に失敗する場合に、前記中止通知は送信されない、前記通知送信部を備える、請求項２又は３に記載のプリンタ。
【請求項５】
前記サーバは、ＧＣＰ（Google（登録商標） Cloud Printの略）サーバであり、
前記中止通知は、前記対象画像の印刷を前記プリンタに実行させるための印刷ジョブであって、前記サーバに記憶されている前記印刷ジョブのステータスをABORTEDに変更するための通知である、請求項４に記載のプリンタ。
【請求項６】
前記プリンタは、さらに、
前記第１のデータフォーマットを有する画像データを利用した印刷データの生成に失敗した回数である失敗回数を記憶するメモリと、
前記メモリに記憶されている前記失敗回数が所定回数以下であるのか否かを判断する判断部と、を備え、
前記第１の要求送信部は、前記失敗回数が前記所定回数以下であると判断される場合に、前記第１のデータ要求を前記サーバに送信し、
前記失敗回数が前記所定回数より大きいと判断される場合に、前記第１のデータ要求は送信されず、
前記通信装置は、さらに、
前記失敗回数が前記所定回数より大きいと判断される場合に、前記通信インターフェースを介して、前記第２のデータ要求を前記サーバに送信する第３の要求送信部を備える、請求項２から５のいずれか一項に記載のプリンタ。
【請求項７】
前記プリンタは、さらに、
前記通信インターフェースを介して、ＸＭＰＰ（eXtensible Messaging and Presence Protocolの略）接続を前記サーバと確立する確立部と、
前記サーバから、前記ＸＭＰＰ接続を利用して、前記通信インターフェースを介して、記憶通知を受信する通知受信部であって、前記記憶通知は、前記対象画像を表わす対象画像データが前記サーバに記憶されたことを前記通信装置に通知するための信号である、前記通知受信部と、を備え、
前記第１の要求送信部は、前記サーバから前記記憶通知が受信される場合に、前記第１のデータ要求を前記サーバに送信する、請求項２から６のいずれか一項に記載のプリンタ。
【請求項８】
前記プリンタは、さらに、
前記通信インターフェースを介して、能力情報を前記サーバに送信する能力情報送信部であって、前記能力情報は、前記プリンタが前記第１のデータフォーマットと前記第２のデータフォーマットとを含む複数個のデータフォーマットを解釈可能であることを示す、前記能力情報送信部を備え、
前記第１の受信部は、前記サーバから、送信済みの前記能力情報によって示される前記複数個のデータフォーマットのうちの前記第１のデータフォーマットを有する前記第１の画像データを受信し、
前記第２の受信部は、前記サーバから、送信済みの前記能力情報によって示される前記複数個のデータフォーマットのうちの前記第２のデータフォーマットを有する前記第２の画像データを受信する、請求項１から７のいずれか一項に記載のプリンタ。
【請求項９】
前記特定情報は、前記対象画像に含まれるオブジェクトの透明度を示す透明度情報を含む、請求項１から８のいずれか一項に記載のプリンタ。
【請求項１０】
前記特定情報は、前記対象画像に含まれる文字を記述するための特定のフォントを示す特定のフォント情報であって、前記プリンタが解釈不可能である前記特定のフォント情報を含む、請求項１から９のいずれか一項に記載のプリンタ。
【請求項１１】
前記第１のデータフォーマットは、ＰＤＦ（Portable Document Formatの略）であり、
前記第２のデータフォーマットは、ＰＷＧ（Printer Working Groupの略）ラスタである、請求項１から１０のいずれか一項に記載のプリンタ。
【請求項１２】
プリンタのためのコンピュータプログラムであって、
前記プリンタのコンピュータを、以下の各部、即ち、
サーバから、前記プリンタの通信インターフェースを介して、対象画像を表わす第１の画像データであって、第１のデータフォーマットを有する前記第１の画像データを受信する第１の受信部と、
前記サーバから、前記通信インターフェースを介して、前記対象画像を表わす第２の画像データであって、前記第１のデータフォーマットとは異なる第２のデータフォーマットを有する前記第２の画像データを受信する第２の受信部と、
前記第１の画像データを利用して、前記対象画像の印刷を前記プリンタの印刷実行部に実行させるための第１の印刷データを生成することを試行する第１の生成部と、
前記第１の印刷データの生成に成功する場合に、生成済みの前記第１の印刷データを利用して、前記対象画像の印刷を前記印刷実行部に実行させる第１の印刷制御部と、
前記第１の画像データが特定情報を含むことに起因して前記第１の印刷データの生成に失敗する場合に、前記特定情報を含まない前記第２の画像データを利用して、前記対象画像の印刷を前記印刷実行部に実行させるための第２の印刷データを生成する第２の生成部と、
前記第１の印刷データの生成に失敗する場合に、生成済みの前記第２の印刷データを利用して、前記対象画像の印刷を前記印刷実行部に実行させる第２の印刷制御部と、
として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、サーバから受信される画像データによって表わされる対象画像の印刷を実行するプリンタに関する技術を開示する。
【背景技術】
【０００２】
特許文献１には、端末装置と記憶サーバとＰＤＬ（Page Description Languageの略）プリンタとＢＭＩ（Bitmap Imageの略）プリンタとを備えるシステムが開示されている。端末装置は、ＰＤＬ形式を有する印刷データを含むＰＤＬジョブと、ＢＭＩ形式を有する印刷データを含むＢＭＩジョブと、を生成して、これらのジョブを記憶サーバに記憶させる。例えば、ユーザが端末装置においてＰＤＬジョブ及びＢＭＩジョブのうちのＰＤＬジョブを選択すると、選択済みのＰＤＬジョブが記憶サーバからＰＤＬプリンタに送信され、ＰＤＬプリンタによって印刷が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−５０８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の特許文献１の技術では、ＰＤＬプリンタがＰＤＬジョブに従った印刷を実行可能であることが前提となっている。しかしながら、ＰＤＬプリンタが、ＰＤＬジョブに含まれる情報を解釈不可能である等の理由に起因して、ＰＤＬジョブに従った印刷を実行することができない事象が起こり得る。
【０００５】
本明細書では、プリンタが、対象画像を表わす画像データを利用した印刷データの生成に失敗しても、対象画像の印刷を実行することができる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書によって開示されるプリンタは、印刷実行部と、通信インターフェースと、サーバから、前記通信インターフェースを介して、対象画像を表わす第１の画像データであって、第１のデータフォーマットを有する前記第１の画像データを受信する第１の受信部と、前記サーバから、前記通信インターフェースを介して、前記対象画像を表わす第２の画像データであって、前記第１のデータフォーマットとは異なる第２のデータフォーマットを有する前記第２の画像データを受信する第２の受信部と、前記第１の画像データを利用して、前記対象画像の印刷を前記印刷実行部に実行させるための第１の印刷データを生成することを試行する第１の生成部と、前記第１の印刷データの生成に成功する場合に、生成済みの前記第１の印刷データを利用して、前記対象画像の印刷を前記印刷実行部に実行させる第１の印刷制御部と、前記第１の画像データが特定情報を含むことに起因して前記第１の印刷データの生成に失敗する場合に、前記特定情報を含まない前記第２の画像データを利用して、前記対象画像の印刷を前記印刷実行部に実行させるための第２の印刷データを生成する第２の生成部と、前記第１の印刷データの生成に失敗する場合に、生成済みの前記第２の印刷データを利用して、前記対象画像の印刷を前記印刷実行部に実行させる第２の印刷制御部と、を備えてもよい。
【０００７】
上記の構成によると、プリンタは、対象画像を表わす第１の画像データが特定情報を含むことに起因して第１の印刷データの生成に失敗する場合に、同じ対象画像を表わすと共に特定情報を含まない第２の画像データを利用して第２の印刷データを生成し、第２の印刷データを利用して対象画像の印刷を実行する。従って、プリンタは、対象画像を表わす第１の画像データを利用した第１の印刷データの生成に失敗しても、第２の印刷データを利用して対象画像の印刷を実行することができる。
【０００８】
上記のプリンタによって実行される方法、上記のプリンタを実現するためのコンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。また、上記のプリンタと上記のサーバとを備えるシステムも、新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成を示す。
【図２】登録プロセスのシーケンス図を示す。
【図３】サブミットプロセスのシーケンス図を示す。
【図４】印刷制御処理のフローチャートを示す。
【図５】第１の印刷データ生成処理のフローチャートを示す。
【図６】第２の印刷データ生成処理のフローチャートを示す。
【図７】印刷処理のフローチャートを示す。
【図８】第１の印刷データの生成が成功するケースＡのシーケンス図を示す。
【図９】第１の印刷データの生成が失敗するケースＢのシーケンス図を示す。
【発明を実施するための形態】
【００１０】
（通信システム２の構成；図１）
図１に示すように、通信システム２は、プリンタ１０とＰＣ９０とＧＣＰ（Google（登録商標） Cloud Printの略）サーバ１００とを備える。プリンタ１０及びＰＣ９０は、ＬＡＮ６を介して、インターネット４に接続されている。ＧＣＰサーバ１００は、インターネット４に接続されている。従って、プリンタ１０及びＰＣ９０は、インターネット４を介して、ＧＣＰサーバ１００と通信可能である。以下では、ＧＣＰサーバ１００のことを単に「サーバ１００」と記載する。
【００１１】
（プリンタ１０の構成）
プリンタ１０は、印刷機能を実行可能な周辺装置（即ちＰＣ９０等の周辺装置）である。なお、プリンタ１０は、印刷機能に加えて、スキャン機能、コピー機能、ファクシミリ機能等を実行可能な多機能機であってもよい。プリンタ１０には、プリンタ名「ｐｒ１」が割当てられている。プリンタ１０は、操作部１２と、表示部１４と、ネットワークインターフェース（以下ではインターフェースを「Ｉ／Ｆ」と記載する）１６と、印刷実行部１８と、制御部３０と、を備える。
【００１２】
操作部１２は、複数のキーを備える。ユーザは、操作部１２を操作することによって、様々な指示をプリンタ１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。表示部１４は、いわゆるタッチパネル（即ち操作部）として機能してもよい。ネットワークＩ／Ｆ１６は、ＬＡＮ６に接続されている。ネットワークＩ／Ｆ１６は、無線Ｉ／Ｆであってもよいし、有線Ｉ／Ｆであってもよい。印刷実行部１８は、インクジェット方式、レーザ方式等の印刷機構を備える。
【００１３】
制御部３０は、ＣＰＵ３２とメモリ３４とを備える。ＣＰＵ３２は、メモリ３４に記憶されているプログラム３６に従って、様々な処理を実行する。メモリ３４は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ３４は、さらに、能力情報ＣＩ１を記憶する。能力情報ＣＩ１は、プリンタ１０が解釈可能なデータフォーマットを示す情報を含む。本実施例では、プリンタ１０が解釈可能なデータフォーマットは、ＰＤＦ（Portable Document Formatの略）及びＰＷＧ（Printer Working Groupの略）ラスタである。
【００１４】
（ＰＣ９０の構成）
ＰＣ９０は、本実施例では、据置型の端末装置（例えばデスクトップＰＣ等）であるが、変形例では、ノートＰＣ、タブレットＰＣ、スマートフォン、ＰＤＡ等の可搬型の端末装置であってもよい。ＰＣ９０は、プリンタ１０に印刷を実行させるためのプリンタドライバを備えていない。また、ＰＣ９０は、例えば、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（登録商標）等のブラウザプログラム（図示省略）を備える。
【００１５】
（サーバ１００の構成）
サーバ１００は、Ｇｏｏｇｌｅ（登録商標）によってインターネット上に設置されるサーバである。サーバ１００は、プリンタ１０とＰＣ９０との間で印刷の仲介を実行するためのサーバである。即ち、サーバ１００は、ＰＣ９０からサブミットされる画像ファイルを変換して、プリンタ１０が解釈可能なデータフォーマットを有する画像データを生成し、当該画像データをプリンタ１０に送信する。従って、ＰＣ９０は、画像ファイルを変換するためのプリンタドライバを備えていなくても、画像ファイルをサーバ１００にサブミットすれば、プリンタ１０に印刷を実行させることができる。
【００１６】
サーバ１００は、ネットワークＩ／Ｆ１１６と、制御部１３０と、を備える。ネットワークＩ／Ｆ１１６は、インターネット４に接続されている。制御部１３０は、ＣＰＵ１３２と、メモリ１３４と、を備える。ＣＰＵ１３２は、メモリ１３４に記憶されているプログラム１３６に従って、様々な処理を実行する。メモリ１３４は、さらに、アカウントテーブル１３８とジョブテーブル１４０とを記憶する。
【００１７】
アカウントテーブル１３８では、アカウント情報とプリンタ情報とトークンとが関連付けられる。アカウント情報は、ユーザを識別する情報（例えばGoogle Account）である。プリンタ情報は、当該ユーザによって利用されるプリンタに関係する情報であり、プリンタ名と能力情報とデバイスＩＤとを含む。デバイスＩＤは、サーバ１００によって生成されるＩＤである。トークンは、当該プリンタとサーバ１００との間の通信で利用される認証情報である。
【００１８】
ジョブテーブル１４０では、ジョブＩＤとデバイスＩＤとチケットＵＲＬとデータＵＲＬとステータスとが関連付けられる。ジョブＩＤは、印刷ジョブを識別する情報である。チケットＵＲＬは、当該印刷ジョブに対応する印刷条件情報が記憶されるサーバ１００内の位置を示すＵＲＬである。データＵＲＬは、当該印刷ジョブに対応する画像データが記憶されるサーバ１００内の位置を示すＵＲＬである。図１の例に示されるように、１個のジョブＩＤ「ｊｏｂ１」に対して２個のデータＵＲＬ「ｉＵＲＬ１」，「ｉＵＲＬ２」が関連付けられることがあり得る。ステータスは、当該印刷ジョブのステータスを示す情報である。ステータスは、予め決められている複数個の文字列のいずれに設定される。複数個の文字列は、「IN_PROGRESS」と「STOPPED」と「ABORTED」と「DONE」とを含む。「IN_PROGRESS」は、当該印刷ジョブに従った印刷が現在実行されていることを示す。「STOPPED」は、当該印刷ジョブに従った印刷が中断されていることを示す。「ABORTED」は、当該印刷ジョブに従った印刷が中止されたことを示す。「DONE」は、当該印刷ジョブに従った印刷が完了したことを示す。
【００１９】
（登録プロセス：図２）
続いて、図２を参照して、サーバ１００のアカウントテーブル１３８に情報を登録するための登録プロセスを説明する。図２の初期状態において、サーバ１００には、ＰＣ９０のユーザを識別するアカウント情報ＡＩ１が登録済みである。なお、以下では、理解の容易化のために、各デバイスのＣＰＵ（例えばプリンタ１０のＣＰＵ３２）が実行する動作を、ＣＰＵを主体として記載せずに、各デバイス（例えばプリンタ１０）を主体として記載することがある。また、プリンタ１０及びサーバ１００によって実行される全ての通信は、それぞれ、ネットワークＩ／Ｆ１６，１１６を介して実行される。従って、以下では、「ネットワークＩ／Ｆ１６（又は１１６）を介して」という記載を省略する。また、ＰＣ９０によって実行される以下の各処理は、ブラウザプログラムに従って実行される。従って、以下では、「ブラウザプログラムに従って」という記載を省略する。
【００２０】
ＰＣ９０は、アカウント情報ＡＩ１の入力とサーバ１００へのログインの指示とをユーザから受け付けると、Ｔ１０において、アカウント情報ＡＩ１を含むログイン要求をサーバ１００に送信する。
【００２１】
サーバ１００は、Ｔ１０において、ＰＣ９０からログイン要求を受信すると、当該ログイン要求に含まれるアカウント情報ＡＩ１が登録済みであると判断し、アカウント情報ＡＩ１を利用したログイン状態を構築する。
【００２２】
ＰＣ９０は、アカウントテーブル１３８に情報を登録するための指示をユーザから受け付けると、Ｔ１２において、検索選択要求をサーバ１００に送信する。
【００２３】
サーバ１００は、Ｔ１２において、ＰＣ９０から検索選択要求を受信すると、Ｔ１４において、検索選択画面データをＰＣ９０に送信する。
【００２４】
ＰＣ９０は、Ｔ１４において、サーバ１００から検索選択画面データを受信すると、Ｔ１６において、検索選択画面データを利用して検索選択画面を表示する。当該画面は、ＰＣ９０の周囲に存在するプリンタを検索して登録することを確認するためのメッセージと、検索ボタンと、を含む。ＰＣ９０は、Ｔ１８において、検索選択画面内の検索ボタンの選択をユーザから受け付けると、Ｔ２０において、検索信号をブロードキャストによってＬＡＮ６に送信する。
【００２５】
プリンタ１０は、Ｔ２０において、ＰＣ９０から検索信号を受信すると、Ｔ２２において、プリンタ名「ｐｒ１」を含む応答信号をＰＣ９０に送信する。なお、ＬＡＮ６に他のプリンタが接続されている場合には、当該プリンタも、プリンタ名を含む応答信号をＰＣ９０に送信する。
【００２６】
ＰＣ９０は、Ｔ２２において、１個以上のプリンタ１０等から１個以上の応答信号を受信すると、Ｔ２４において、１個以上の応答信号に含まれる１個以上のプリンタ名「ｐｒ１」を含む検索結果を表示する。ＰＣ９０は、Ｔ２６において、検索結果に含まれるプリンタ名「ｐｒ１」の選択をユーザから受け付けると、Ｔ３０において、ログイン済みのアカウント情報ＡＩ１を含む登録指示をプリンタ１０に送信する。登録指示は、プリンタ１０に関する情報の登録をサーバ１００に指示するための信号である。
【００２７】
プリンタ１０は、Ｔ３０において、ＰＣ９０から登録指示を受信すると、Ｔ３２において、登録指示に含まれるアカウント情報ＡＩ１と、プリンタ１０のプリンタ名「ｐｒ１」と、メモリ３４内の能力情報ＣＩ１と、を含む登録要求をサーバ１００に送信する。登録要求は、プリンタ１０に関する情報の登録をサーバ１００に要求するための信号である。
【００２８】
サーバ１００は、Ｔ３２において、プリンタ１０から登録要求を受信すると、Ｔ３４において、デバイスＩＤ「ｄｖ１」及びトークンｔｋ１を生成する。ここで、サーバ１００は、過去に生成されたデバイスＩＤ及びトークンに重複しないように、ユニークなデバイスＩＤ「ｄｖ１」及びトークンｔｋ１を生成する。そして、サーバ１００は、Ｔ３６において、ログイン済みのアカウント情報ＡＩ１と、Ｔ３０で受信されたプリンタ名「ｐｒ１」と、Ｔ３０で受信された能力情報ＣＩ１と、生成済みのデバイスＩＤ「ｄｖ１」と、生成済みのトークンｔｋ１と、を関連付けて、メモリ１３４内のアカウントテーブル１３８（図１参照）に記憶する。ここで、サーバ１００は、プリンタ名「ｐｒ１」と能力情報ＣＩ１とデバイスＩＤ「ｄｖ１」とをプリンタ情報ＰＩ１として記憶する。次いで、サーバ１００は、Ｔ４０において、デバイスＩＤ「ｄｖ１」及びトークンｔｋ１をプリンタ１０に送信する。
【００２９】
プリンタ１０は、Ｔ４０において、サーバ１００からデバイスＩＤ「ｄｖ１」及びトークンｔｋ１を受信すると、Ｔ４２において、デバイスＩＤ「ｄｖ１」及びトークンｔｋ１をメモリ３４に記憶する。そして、プリンタ１０は、Ｔ４４において、トークンｔｋ１を含む接続要求をサーバ１００に送信する。接続要求は、いわゆる常時接続であるＸＭＰＰ（eXtensible Messaging and Presence Protocolの略）接続の確立をサーバ１００に要求するための信号である。
【００３０】
サーバ１００は、Ｔ４４において、プリンタ１０から接続要求を受信すると、当該接続要求に含まれるトークンｔｋ１がアカウントテーブル１３８に記憶済みであると判断し（即ちトークンｔｋ１を利用した認証が成功し）、プリンタ１０とのＸＭＰＰ接続を確立する。このようにＸＭＰＰ接続が確立されると、サーバ１００は、プリンタ１０から信号を受信しなくても、ＸＭＰＰ接続を利用して、ＬＡＮ６のファイヤウォールを越えて信号（例えば後述のジョブ通知）をプリンタ１０に送信することができる。
【００３１】
なお、以降の処理では、プリンタ１０からサーバ１００に送信される全ての信号にはトークンｔｋ１が含まれ、サーバ１００においてトークンｔｋ１を利用した認証が実行される。以下では、これらの説明及び図示を省略する。
【００３２】
（サブミットプロセス；図３）
続いて、図３を参照して、ＰＣ９０を利用して印刷対象の画像を表わす画像ファイルをサーバ１００にサブミットするサブミットプロセスについて説明する。図３は、図２の後の状態であり、サーバ１００のアカウントテーブル１３８には、アカウント情報ＡＩ１とプリンタ情報ＰＩ１とトークンｔｋ１とが関連付けて記憶されている（図２のＴ３６）。
【００３３】
Ｔ２１０は、図２のＴ１０と同様である。ＰＣ９０は、画像ファイルをサブミットするための指示をユーザから受け付けると、Ｔ２１２において、プリンタ選択画面要求をサーバ１００に送信する。
【００３４】
サーバ１００は、Ｔ２１２において、ＰＣ９０からプリンタ選択画面要求を受信すると、アカウントテーブル１３８から、Ｔ２１０でログイン済みのアカウント情報ＡＩ１に関連付けられているプリンタ情報ＰＩ１を取得する。そして、サーバ１００は、Ｔ２１４において、取得済みのプリンタ情報ＰＩ１内のプリンタ名「ｐｒ１」を含むプリンタ選択画面データをＰＣ９０に送信する。
【００３５】
ＰＣ９０は、Ｔ２１４において、サーバ１００からプリンタ選択画面データを受信すると、Ｔ２１６において、プリンタ選択画面データを利用してプリンタ選択画面を表示する。ＰＣ９０は、Ｔ２１８において、プリンタ選択画面に含まれるプリンタ名「ｐｒ１」の選択をユーザから受け付けると、Ｔ２２０において、選択済みのプリンタ名「ｐｒ１」を含む設定画面要求をサーバ１００に送信する。
【００３６】
サーバ１００は、Ｔ２２０において、ＰＣ９０から設定画面要求を受信すると、Ｔ２２２において、設定画面データをＰＣ９０に送信する。
【００３７】
ＰＣ９０は、Ｔ２２２において、サーバ１００から設定画面データを受信すると、Ｔ２２４において、設定画面データを利用して設定画面を表示する。当該画面は、画像ファイルを選択するファイル選択欄と、用紙サイズを選択するサイズ選択欄と、印刷部数を選択する部数選択欄と、ＯＫボタンと、Ｃａｎｃｅｌボタンと、を含む。ＰＣ９０は、Ｔ２２６において、画像ファイルＦ１の選択、印刷条件（即ち、用紙サイズ「Ａ４」、印刷部数「１」）の入力、及び、ＯＫボタンの選択をユーザから受け付けると、Ｔ２３０において、選択済みの画像ファイルＦ１と、入力済みの印刷条件を示す印刷条件情報Ｃ１と、を含む印刷要求をサーバ１００に送信する。印刷要求は、画像ファイルＦ１によって表わされる対象画像の印刷をプリンタ１０に実行させることを要求するための信号である。画像ファイルＦ１は、例えば、ＰＣ９０にインストールされている文書ソフト、表計算ソフト等によって生成されたファイルである。
【００３８】
サーバ１００は、Ｔ２３０において、ＰＣ９０から印刷要求を受信すると、Ｔ２３２において、ＸＭＰＰ接続（図２のＴ４６参照）を利用して、ジョブ通知をプリンタ１０に送信する。ジョブ通知は、画像ファイルＦ１がサーバ１００に記憶されたこと、換言すると、印刷ジョブが存在すること、をプリンタ１０に通知するための信号である。
【００３９】
プリンタ１０は、Ｔ２３２において、サーバ１００からジョブ通知を受信すると、Ｔ２３４において、アドレス要求をサーバ１００に送信する。アドレス要求は、対象画像を表わす画像データの位置（即ちアドレス）、印刷条件情報ＣＩ１の位置等の送信を要求するための信号である。
【００４０】
サーバ１００は、Ｔ２３４において、プリンタ１０から印刷要求を受信すると、Ｔ２３６において、ジョブＩＤ「ｊｏｂ１」を生成する。ここで、サーバ１００は、過去に生成されたジョブＩＤに重複しないように、ユニークなジョブＩＤ「ｊｏｂ１」を生成する。次いで、サーバ１００は、アカウントテーブル１３８から、ログイン済みのアカウント情報ＡＩ１に関連付けられているデバイスＩＤ「ｄｖ１」及び能力情報ＣＩ１を取得する。また、サーバ１００は、Ｔ２３０で受信された印刷条件情報Ｃ１の記憶位置を示すチケットＵＲＬ「ｔＵＲＬ１」と、取得済みの能力情報ＣＩ１によって示される２個のデータフォーマット（即ち「ＰＤＦ」及び「ＰＷＧラスタ」）に対応する２個の画像データの記憶位置を２個のデータＵＲＬ「ｉＵＲＬ１」，「ｉＵＲＬ２」と、を生成する。この段階では、画像ファイルＦ１から画像データがまだ生成されていないので、データＵＲＬは、当該画像データが生成される際に記憶される位置を示す。本実施例では、「ｉＵＲＬ１」がデータフォーマット「ＰＤＦ」を有する画像データ（以下では「ＰＤＦデータ」と記載する）の記憶位置を示し、「ｉＵＲＬ２」がデータフォーマット「ＰＷＧラスタ」を有する画像データ（以下では「ＰＷＧデータ」と記載する）の記憶位置を示す。そして、サーバ１００は、Ｔ２３６において、生成済みのジョブＩＤ「ｊｏｂ１」と、取得済みのデバイスＩＤ「ｄｖ１」と、生成済みのチケットＵＲＬ「ｔＵＲＬ１」と、生成済みの２個のデータＵＲＬ「ｉＵＲＬ１」，「ｉＵＲＬ２」と、を関連付けて、メモリ１３４内のジョブテーブル１４０（図１参照）に記憶する。この段階では、ステータスはブランクである。次いで、サーバ１００は、Ｔ２３８において、ジョブＩＤ「ｊｏｂ１」とチケットＵＲＬ「ｔＵＲＬ１」と２個のデータＵＲＬ「ｉＵＲＬ１」，「ｉＵＲＬ２」とをプリンタ１０に送信する。
【００４１】
プリンタ１０は、Ｔ２３８において、サーバ１００からジョブＩＤ「ｊｏｂ１」等を受信すると、Ｔ２４０において、受信済みのジョブＩＤ「ｊｏｂ１」と文字列「IN_PROGRESS」とを含むステータス通知をサーバ１００に送信する。ステータス通知は、当該通知に含まれるジョブＩＤに関連付けられているステータスを、当該通知に含まれるステータスに変更することを要求するための信号である。
【００４２】
サーバ１００は、Ｔ２４０において、プリンタ１０からステータス通知を受信すると、Ｔ２４２において、当該通知に含まれるジョブＩＤ「ｊｏｂ１」に関連付けて、当該通知に含まれる文字列「IN_PROGRESS」をジョブテーブル１４０に記憶する。
【００４３】
次いで、プリンタ１０は、Ｔ２５０において、Ｔ２３８で受信済みのチケットＵＲＬ「ｔＵＲＬ１」を含むチケット要求をサーバ１００に送信する。チケット要求は、当該要求に含まれるチケットＵＲＬ「ｔＵＲＬ１」によって示される位置に記憶されている印刷条件情報Ｃ１の送信を要求するための信号である。
【００４４】
サーバ１００は、Ｔ２５０において、プリンタ１０からチケット要求を受信すると、メモリ１３４から、チケット要求に含まれるチケットＵＲＬ「ｔＵＲＬ１」によって示される位置に記憶されている印刷条件情報Ｃ１を取得する。そして、サーバ１００は、Ｔ２５２において、取得済みの印刷条件情報Ｃ１をプリンタ１０に送信する。
【００４５】
プリンタ１０は、Ｔ２５２において、サーバ１００から印刷条件情報Ｃ１を受信すると、図４の印刷制御処理を開始する。上述したように、本実施例では、プリンタ１０は、データフォーマット「ＰＤＦ」及び「ＰＷＧラスタ」とを解釈可能である。しかしながら、プリンタ１０は、例えば、対象画像を表わすＰＤＦデータが特殊なコマンドを含む場合には、当該ＰＤＦデータから、印刷実行部１８が解釈可能な印刷データを生成することができない。即ち、プリンタ１０は、ＰＤＦデータに従って対象画像の印刷を実行することができない。このような状況において、プリンタ１０は、同じ対象画像を表わすＰＷＧデータから印刷データを生成し、当該印刷データを利用して対象画像の印刷を実行する。これを実現するために、図４の処理が実行される。
【００４６】
（印刷制御処理；図４）
以下では、図３のＴ２３８及びＴ２５２でプリンタ１０によって受信された情報（ジョブＩＤ「ｊｏｂ１」、チケットＵＲＬ「ｔＵＲＬ１」、データＵＲＬ「ｉＵＲＬ１」，「ｉＵＲＬ２」、及び、印刷条件情報Ｃ１）が利用される状況を例として、図４の処理の内容を説明する。
【００４７】
プリンタ１０のＣＰＵ３２は、サーバ１００から印刷条件情報Ｃ１を受信すると、Ｓ１０において、メモリ３４に記憶されている失敗回数が所定回数（例えば１０回）以下であるのか否かを判断する。失敗回数は、ＰＤＦデータを利用した印刷データの生成に失敗した回数である。ＣＰＵ３２は、失敗回数が所定回数以下であると判断する場合（Ｓ１０でＹＥＳ）にはＳ２０に進み、失敗回数が所定回数より大きいと判断する場合（Ｓ１０でＮＯ）にはＳ１２０に進む。
【００４８】
Ｓ２０では、ＣＰＵ３２は、ＰＤＦデータの送信を要求するためのＰＤＦ要求をサーバ１００に送信する。ＰＤＦ要求は、ＰＤＦデータの記憶位置を示すデータＵＲＬ「ｉＵＲＬ１」を含む。ＰＤＦ要求がサーバ１００によって受信されると、対象画像を表わす画像ファイルＦ１から同じ対象画像を表わすＰＤＦデータへのデータ変換がサーバ１００によって実行され、データＵＲＬ「ｉＵＲＬ１」によって示される位置に当該ＰＤＦデータが記憶される。その後、当該ＰＤＦデータがプリンタ１０に送信される。なお、データ変換がサーバ１００によって実行されるタイミングは、ＰＤＦ要求がサーバ１００によって受信されるタイミングに限られない。例えば、図３のＴ２３０において、画像ファイルＦ１を含む印刷要求がサーバ１００によって受信されるタイミングで、ＰＤＦデータとＰＷＧデータとの双方がサーバ１００によって生成されてもよい。
【００４９】
Ｓ２２では、ＣＰＵ３２は、サーバ１００からＰＤＦデータを受信する。ここで、ＣＰＵ３２は、サーバ１００から全てのＰＤＦデータを受信して、全てのＰＤＦデータをメモリ３４に一時的に記憶する。
【００５０】
Ｓ３０では、ＣＰＵ３２は、第１の印刷データ生成処理（図５参照）を実行する。第１の印刷データ生成処理は、ＰＤＦデータを利用して、対象画像の印刷を印刷実行部１８に実行させるための印刷データ（以下では「第１の印刷データ」と記載する）を生成することを試行する処理である。
【００５１】
Ｓ４０では、ＣＰＵ３２は、第１の印刷データの生成に成功したのか失敗したのかを判断する。ＣＰＵ３２は、第１の印刷データの生成に成功したと判断する場合（Ｓ４０でＹＥＳ）にはＳ５０に進み、第１の印刷データの生成に失敗したと判断する場合（Ｓ４０でＮＯ）にはＳ４２に進む。
【００５２】
Ｓ４２では、ＣＰＵ３２は、メモリ３４内の失敗回数を１だけインクリメントする。Ｓ４２が終了すると、Ｓ１２０に進む。
【００５３】
Ｓ５０では、ＣＰＵ３２は、Ｓ３０で生成された第１の印刷データを利用して、対象画像の印刷を印刷実行部１８に実行させるための印刷処理（図７参照）を実行する。Ｓ５０が終了すると、図４の処理が終了する。
【００５４】
Ｓ１２０では、ＣＰＵ３２は、ＰＷＧデータの送信を要求するためのＰＷＧ要求をサーバ１００に送信する。ＰＷＧ要求は、ＰＷＧデータの記憶位置を示すデータＵＲＬ「ｉＵＲＬ２」を含む。ＰＷＧ要求がサーバ１００によって受信されると、対象画像を表わす画像ファイルＦ１から同じ対象画像を表わすＰＷＧデータへのデータ変換がサーバ１００によって実行され、データＵＲＬ「ｉＵＲＬ２」によって示される位置に当該ＰＷＧデータが記憶される。その後、当該ＰＷＧデータがプリンタ１０に送信される。
【００５５】
Ｓ１２２では、ＣＰＵ３２は、サーバ１００からＰＷＧデータを受信する。ここで、ＣＰＵ３２は、サーバ１００から所定サイズのＰＷＧデータを受信して、当該ＰＷＧデータをメモリ３４に一時的に記憶する。サーバ１００によって生成されたＰＷＧデータの全データサイズが上記の所定サイズ以下であれば、Ｓ１２２において、ＣＰＵ３２は、全てのＰＷＧデータを受信する。一方、ＰＷＧデータの全データサイズが上記の所定サイズ未満であれば、Ｓ１２２において、ＣＰＵ３２は、ＰＷＧデータのうち、所定サイズを有する一部のデータのみを受信する。この場合、ＣＰＵ３２は、Ｓ１２２〜Ｓ１６０の処理を経てＳ１２２を再び実行して、残りのデータを受信する。
【００５６】
Ｓ１３０では、ＣＰＵ３２は、第２の印刷データ生成処理（図６参照）を実行する。第２の印刷データ生成処理は、ＰＷＧデータを利用して、対象画像の印刷を印刷実行部１８に実行させるための印刷データ（以下では「第２の印刷データ」と記載する）を生成することを試行する処理である。
【００５７】
Ｓ１４０では、ＣＰＵ３２は、第２の印刷データの生成に成功したのか失敗したのかを判断する。ＣＰＵ３２は、第２の印刷データの生成に成功したと判断する場合（Ｓ１４０でＹＥＳ）にはＳ１５０に進み、第２の印刷データの生成に失敗したと判断する場合（Ｓ１４０でＮＯ）にはＳ１４２に進む。
【００５８】
Ｓ１４２では、ＣＰＵ３２は、ジョブＩＤ「ｊｏｂ１」と文字列「ABORTED」とを含むステータス通知をサーバ１００に送信する。当該ステータス通知がサーバ１００によって受信されると、ジョブテーブル１４０において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスが「IN_PROGRESS」（図３のＴ２４０及びＴ２４２参照）から「ABORTED」に変更される。その後、所定のタイミング（例えば「ABORTED」に変更されてから所定時間経過後のタイミング）において、ジョブテーブル１４０から、ジョブＩＤ「ｊｏｂ１」と、それに関連付けられている各情報（デバイスＩＤ「ｄｖ１」等）と、が消去される。また、上記の所定のタイミングにおいて、メモリ１３４から、画像ファイルＦ１と、チケットＵＲＬ「ｔＵＲＬ１」に示される位置に記憶されている印刷条件情報Ｃ１と、データＵＲＬ「ｉＵＲＬ１」，「ｉＵＲＬ２」に示される各位置に記憶されている各画像データと、が消去される。Ｓ１４２が終了すると、図４の処理が終了する。即ち、対象画像の印刷が実行されることなく、図４の処理が終了する。
【００５９】
Ｓ１５０では、ＣＰＵ３２は、Ｓ１３０で生成された第２の印刷データを利用して、対象画像の印刷を印刷実行部１８に実行させるための印刷処理（図７参照）を実行する。
【００６０】
Ｓ１６０では、ＣＰＵ３２は、Ｓ１２２でサーバ１００から全てのＰＷＧデータを受信済みであるのか否かを判断する。ＣＰＵ３２は、ＰＷＧデータの最後を示す情報を受信済みである場合には、全てのＰＷＧデータを受信済みであると判断し（Ｓ１６０でＹＥＳ）、Ｓ１６２に進む。一方、ＣＰＵ３２は、ＰＷＧデータの最後を示す情報をまだ受信していない場合には、全てのＰＷＧデータを受信済みでないと判断し（Ｓ１６０でＮＯ）、Ｓ１２２において、データの送信の再開をサーバ１００に要求して、前回のＳ１２２で受信されたデータの続きのデータを受信する。
【００６１】
Ｓ１６２では、ＣＰＵ３２は、ジョブＩＤ「ｊｏｂ１」と文字列「DONE」とを含むステータス通知をサーバ１００に送信する。当該ステータス通知がサーバ１００によって受信されると、ジョブテーブル１４０において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスが「IN_PROGRESS」（図３のＴ２４０及びＴ２４２参照）から「DONE」に変更される。その後、Ｓ１４２の処理に起因して「ABORTED」に変更される場合と同様に、所定のタイミングにおいて、ジョブテーブル１４０からジョブＩＤ「ｊｏｂ１」等が消去され、メモリ１３４から画像ファイルＦ１等が消去される。Ｓ１６２が終了すると、図４の処理が終了する。
【００６２】
（第１の印刷データ生成処理；図５）
続いて、図５を参照して、図４のＳ３０で実行される第１の印刷データ生成処理の内容を説明する。ＰＤＦデータは、複数個のオブジェクトを含むベクタデータである。Ｓ２００では、ＣＰＵ３２は、ＰＤＦデータに含まれる複数個のオブジェクトを解析して、複数個のオブジェクトの内容を把握する。
【００６３】
Ｓ２０２では、ＣＰＵ３２は、解析済みの複数個のオブジェクトが非サポートフォント情報を含むのか否かを判断する。具体的には、ＣＰＵ３２は、まず、複数個のオブジェクトの中から、対象画像に含まれる各文字を記述するためのフォントを示すオブジェクト（以下では「フォント情報」と記載する）を特定する。そして、ＣＰＵ３２は、特定済みのフォルト情報が、プリンタ１０がサポートしていないフォント（即ちプリンタ１０が解釈不可能なフォント）を示す情報（即ち非サポートフォント情報）であるのか否かを判断する。ＣＰＵ３２は、特定済みのフォント情報が非サポートフォント情報を含む場合には、Ｓ２０２でＹＥＳと判断し、第１の印刷データを生成することなく、Ｓ２５０に進む。一方、ＣＰＵ３２は、特定済みのフォント情報が非サポートフォント情報を含まない場合には、Ｓ２０２でＮＯと判断してＳ２０４に進む。
【００６４】
Ｓ２０４では、ＣＰＵ３２は、解析済みの複数個のオブジェクトが非サポートフォーマット情報を含むのか否かを判断する。具体的には、ＣＰＵ３２は、まず、複数個のオブジェクトの中から、対象画像に含まれる部分画像（例えば写真等の画像）のデータフォーマットを示すオブジェクト（以下では「フォーマット情報」と記載する）を特定する。そして、ＣＰＵ３２は、特定済みのフォーマット情報が、プリンタ１０がサポートしていないデータフォーマット（即ちプリンタ１０が解釈不可能なデータフォーマット）を示す情報（即ち非サポートフォーマット情報）であるのか否かを判断する。プリンタ１０がサポートしていないデータフォーマットは、例えば、ＪＰＥＧ（Joint Photographic Experts Groupの略）２０００である。ＣＰＵ３２は、特定済みのフォーマット情報が非サポートフォーマット情報を含む場合には、Ｓ２０４でＹＥＳと判断し、第１の印刷データを生成することなく、Ｓ２５０に進む。一方、ＣＰＵ３２は、特定済みのフォーマット情報が非サポートフォーマット情報を含まない場合には、Ｓ２０４でＮＯと判断してＳ２０６に進む。
【００６５】
Ｓ２０６では、ＣＰＵ３２は、解析済みの複数個のオブジェクトが非サポート暗号化情報を含むのか否かを判断する。具体的には、ＣＰＵ３２は、まず、複数個のオブジェクトの中から、対象画像に含まれる文字、部分画像等を暗号化するために利用された暗号化方式を示すオブジェクト（以下では「暗号化情報」と記載する）を特定する。そして、ＣＰＵ３２は、特定済みの暗号化情報が、プリンタ１０がサポートしていない暗号化方式（即ちプリンタ１０が復号不可能な暗号化方式）を示す情報（即ち非サポート暗号化情報）であるのか否かを判断する。プリンタ１０がサポートしていない暗号化方式は、例えば、ＲＣ４（Rivest Cipher 4の略）及びＡＥＳ（Advanced Encryption Standardの略）である。ＣＰＵ３２は、特定済みの暗号化情報が非サポート暗号化情報を含む場合には、Ｓ２０６でＹＥＳと判断し、第１の印刷データを生成することなく、Ｓ２５０に進む。一方、ＣＰＵ３２は、特定済みの暗号化情報が非サポート暗号化情報を含まない場合には、Ｓ２０６でＮＯと判断してＳ２０８に進む。
【００６６】
Ｓ２０８では、ＣＰＵ３２は、解析済みの複数個のオブジェクトが透明コマンドを含むのか否かを判断する。透明コマンドは、対象画像に含まれる文字、部分画像等の透明度を指示するオブジェクトである。本実施例では、プリンタ１０は、透明コマンドをサポートしていない（即ち解釈不可能である）。ＣＰＵ３２は、複数個のオブジェクトが透明コマンドを含む場合には、Ｓ２０８でＹＥＳと判断し、第１の印刷データを生成することなく、Ｓ２５０に進む。一方、ＣＰＵ３２は、複数個のオブジェクトが透明コマンドを含まない場合には、Ｓ２０８でＮＯと判断してＳ２１０に進む。
【００６７】
Ｓ２１０では、ＣＰＵ３２は、解析済みの複数個のオブジェクトを利用してＰＤＦデータのラスタライズを実行して、ビットマップデータを生成する。当該ビットマップデータは、ＲＧＢの多階調（例えば２５６階調）のデータである。
【００６８】
Ｓ２１２では、ＣＰＵ３２は、Ｓ２１０でＰＤＦデータのラスタライズを実行する過程において、メモリフルエラーが発生したのか否かを判断する。具体的には、ＣＰＵ３２は、図５の処理を実行する際に、メモリ３４内にワーク領域を確保する。ＣＰＵ３２は、当該ワーク領域の全てにデータを書き込んだ状態になると、メモリフルエラーが発生したと判断し（Ｓ２１２でＹＥＳ）、第１の印刷データを生成することなく、Ｓ２５０に進む。例えば、ＰＤＦデータが複雑なグラデーションコマンドを含む場合には、ラスタライズの際に多くのメモリ領域が利用され、メモリフルエラーが発生し得る。一方、ＣＰＵ３２は、メモリフルエラーが発生しなかったと判断する場合（Ｓ２１２でＮＯ）には、Ｓ２１４に進む。
【００６９】
Ｓ２１４では、ＣＰＵ３２は、Ｓ２１０でＰＤＦデータのラスタライズを実行する過程において各オブジェクトを利用する際に、プリンタ１０がサポートしてないオブジェクト（以下では「非サポートコマンド」と記載する）が存在するのか否かを判断する。ＣＰＵ３２は、非サポートコマンドが存在すると判断する場合（Ｓ２１４でＹＥＳ）には、第１の印刷データを生成することなく、Ｓ２５０に進む。一方、ＣＰＵ３２は、非サポートコマンドが存在しないと判断する場合（Ｓ２１４でＮＯ）には、Ｓ２２０に進む。
【００７０】
Ｓ２２０では、ＣＰＵ３２は、Ｓ２１０で生成されたビットマップデータが圧縮データを含む場合に、当該圧縮データを解凍して、解凍済みのデータを含むビットマップデータを生成する。
【００７１】
Ｓ２２２では、ＣＰＵ３２は、Ｓ２２０で圧縮データの解凍を実行する過程において、解凍済みデータが解釈不可能なデータを含むのか否かを判断する。例えば、サーバ１００によってＰＤＦデータが生成される過程において、暗号化に失敗している場合には、解釈不可能なデータが含まれ得る。ＣＰＵ３２は、解凍済みデータが解釈不可能なデータを含むと判断する場合（Ｓ２２２でＹＥＳ）には、第１の印刷データを生成することなく、Ｓ２５０に進む。一方、ＣＰＵ３２は、解凍済みデータが解釈不可能なデータを含まないと判断する場合（Ｓ２２２でＮＯ）には、Ｓ２３０に進む。
【００７２】
Ｓ２３０では、ＣＰＵ３２は、Ｓ２２０で生成されたビットマップデータが複数のレイヤー構造を有する場合に、各レイヤーの合成を実行して、合成済みのビットマップデータを生成する。
【００７３】
Ｓ２３２では、ＣＰＵ３２は、Ｓ２３０でレイヤーの合成を実行する過程において、メモリフルエラーが発生したのか否かを判断する。ＣＰＵ３２は、ワーク領域の全てにデータを書き込んだ状態になると、メモリフルエラーが発生したと判断し（Ｓ２３２でＹＥＳ）、第１の印刷データを生成することなく、Ｓ２５０に進む。一方、ＣＰＵ３２は、メモリフルエラーが発生しなかったと判断する場合（Ｓ２３２でＮＯ）には、Ｓ２４０に進む。なお、図示省略しているが、ＣＰＵ３２は、Ｓ２３２でＮＯの場合には、Ｓ２３０で生成されたビットマップデータに対して、ＲＧＢからＣＭＹＫへの色変換を実行して、ＣＭＹＫの多階調（例えば２５６階調）のビットマップデータを生成する。そして、ＣＰＵ３２は、ＣＭＹＫの多階調のビットマップデータに対するハーフトーン処理を実行して、ＣＭＹＫの低階調（例えば２階調、３階調等）のビットマップデータである第１の印刷データを生成する。
【００７４】
Ｓ２４０では、ＣＰＵ３２は、第１の印刷データの生成に成功したと判断する。Ｓ２４０が終了すると、図５の処理が終了する。この場合、図４のＳ４０でＹＥＳと判断され、Ｓ５０が実行される。
【００７５】
Ｓ２５０では、ＣＰＵ３２は、第１の印刷データの生成に失敗したと判断する。Ｓ２５０が終了すると、図５の処理が終了する。この場合、図４のＳ４０でＮＯと判断され、Ｓ４２が実行される。
【００７６】
（第２の印刷データ生成処理；図６）
続いて、図６を参照して、図４のＳ１３０で実行される第２の印刷データ生成処理の内容を説明する。ＰＷＧデータは、ＲＧＢの多階調（例えば２５６階調）のビットマップデータである。
【００７７】
Ｓ２６０では、ＣＰＵ３２は、ＰＷＧデータが圧縮データを含む場合に、当該圧縮データを解凍して、解凍済みのデータを含むビットマップデータを生成する。
【００７８】
Ｓ２６２では、ＣＰＵ３２は、Ｓ２６０で圧縮データの解凍を実行する過程において、解凍済みデータが解釈不可能なデータを含むのか否かを判断する。Ｓ２６２の処理は、図５のＳ２２２の処理と同様である。ＣＰＵ３２は、解凍済みデータが解釈不可能なデータを含むと判断する場合（Ｓ２６２でＹＥＳ）には、第２の印刷データを生成することなく、Ｓ２８０に進む。一方、ＣＰＵ３２は、解凍済みデータが解釈不可能なデータを含まないと判断する場合（Ｓ２６２でＮＯ）には、Ｓ２７０に進む。なお、図示省略しているが、ＣＰＵ３２は、Ｓ２６２でＮＯの場合には、第１の印刷データを生成する場合と同様に、ＲＧＢからＣＭＹＫへの色変換とハーフトーン処理とを実行して、ＣＭＹＫの低階調（例えば２階調、３階調等）のビットマップデータである第２の印刷データを生成する。
【００７９】
Ｓ２７０では、ＣＰＵ３２は、第２の印刷データの生成に成功したと判断する。Ｓ２７０が終了すると、図６の処理が終了する。この場合、図４のＳ１４０でＹＥＳと判断され、Ｓ１５０が実行される。
【００８０】
Ｓ２８０では、ＣＰＵ３２は、第２の印刷データの生成に失敗したと判断する。Ｓ２８０が終了すると、図５の処理が終了する。この場合、図４のＳ１４０でＮＯと判断され、Ｓ１４２が実行される。
【００８１】
（印刷処理；図７）
続いて、図７を参照して、図４のＳ５０又はＳ１５０で実行される印刷処理の内容を説明する。図４のＳ５０の印刷処理では、Ｓ３００において、ＣＰＵ３２は、図４のＳ３０（即ち図５の処理）で生成された第１の印刷データを印刷実行部１８に供給する。また、図４のＳ１５０の印刷処理では、Ｓ３００において、ＣＰＵ３２は、図４のＳ１３０（即ち図６の処理）で生成された第２の印刷データを印刷実行部１８に供給する。図示省略しているが、Ｓ３００では、ＣＰＵ３２は、図３のＴ２５２で受信された印刷条件情報Ｃ１も印刷実行部１８に供給する。Ｓ３００が実行されると、印刷実行部１８は、印刷条件情報Ｃ１に従って、第１又は第２の印刷データによって表わされる対象画像の印刷を開始する。
【００８２】
Ｓ３１０では、ＣＰＵ３２は、Ｓ３００で供給された第１又は第２の印刷データに従った印刷が完了することを監視する。具体的には、ＣＰＵ３２は、印刷実行部１８から印刷の完了を示す情報を取得する場合には、印刷が完了したと判断する。図４のＳ５０の印刷処理では、ＣＰＵ３２は、印刷が完了したと判断する場合（Ｓ３１０でＹＥＳ）に、Ｓ３１２に進む。また、図４のＳ１５０の印刷処理では、ＣＰＵ３２は、印刷が完了したと判断する場合（Ｓ３１０でＹＥＳ）に、Ｓ３１２をスキップして、図７の処理を終了する。
【００８３】
Ｓ３１２では、ＣＰＵ３２は、ジョブＩＤ「ｊｏｂ１」と文字列「DONE」とを含むステータス通知をサーバ１００に送信する。Ｓ３１２の処理は、図４のＳ１６２の処理と同様である。Ｓ３１２が終了すると、図７の処理が終了する。
【００８４】
Ｓ３２０では、ＣＰＵ３２は、Ｓ３１０の監視と並行して、解消不可能エラーが発生することを監視する。解消不可能エラーは、ユーザが自力で解消させることができないエラーである。即ち、解消不可能エラーは、ユーザがプリンタ１０の修理サービスを依頼しなければ、解消させることができないエラーである。解消不可能エラーは、例えば、印刷実行部１８を構成する部材の温度が予め決められている閾値を超える値まで上昇すること、印刷実行部１８を構成する部材が破損すること等である。ＣＰＵ３２は、印刷実行部１８から解消不可能エラーを示すエラーコードを取得する場合には、解消不可能エラーが発生したと判断し（Ｓ３２０でＹＥＳ）、Ｓ３２２に進む。
【００８５】
Ｓ３２２では、ＣＰＵ３２は、ジョブＩＤ「ｊｏｂ１」と文字列「ABORTED」とを含むステータス通知をサーバ１００に送信する。Ｓ３２２の処理は、図４のＳ１４２の処理と同様である。Ｓ３２２が終了すると、図７の処理が終了する。
【００８６】
Ｓ３３０では、ＣＰＵ３２は、Ｓ３１０及びＳ３２０の監視と並行して、解消可能エラーが発生することを監視する。解消可能エラーは、ユーザが自力で解消させることができるエラーである。解消可能エラーは、例えば、色材（インク、トナー等）がなくなること、印刷用紙がなくなること、印刷用紙が詰まること（即ちジャム）等である。ＣＰＵ３２は、印刷実行部１８から解消可能エラーを示すエラーコードを取得する場合には、解消可能エラーが発生したと判断し（Ｓ３３０でＹＥＳ）、Ｓ３３２に進む。
【００８７】
Ｓ３３２では、ＣＰＵ３２は、ジョブＩＤ「ｊｏｂ１」と文字列「STOPPED」とを含むステータス通知をサーバ１００に送信する。当該ステータス通知がサーバ１００によって受信されると、ジョブテーブル１４０において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスが「IN_PROGRESS」（図３のＴ２４０及びＴ２４２参照）から「STOPPED」に変更される。
【００８８】
Ｓ３４０では、ＣＰＵ３２は、エラーが解消することを監視する。ＣＰＵ３２は、エラーを解消させる動作がユーザによって実行されると、印刷実行部１８からエラーの解消を示す情報を取得する。この場合、ＣＰＵ３２は、エラーが解消したと判断し（Ｓ３４０でＹＥＳ）、Ｓ３４２に進む。
【００８９】
Ｓ３４２では、ＣＰＵ３２は、ジョブＩＤ「ｊｏｂ１」と文字列「IN_PROGRESS」とを含むステータス通知をサーバ１００に送信する。当該ステータス通知がサーバ１００によって受信されると、ジョブテーブル１４０において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスが「STOPPED」（Ｓ３３２参照）から「IN_PROGRESS」に変更される。Ｓ３４２が終了すると、Ｓ３１０、Ｓ３２０、及び、Ｓ３３０の監視に戻る。
【００９０】
（具体的なケース；図８及び図９）
続いて、図８及び図９を参照して、図４〜図７の処理によって実現される具体的なケースについて説明する。図８、図９は、それぞれ、ＰＤＦデータから第１の印刷データを生成する処理が成功するケースＡ、当該処理が失敗するケースＢを示す。
【００９１】
（ケースＡ；図８）
ケースＡは、図３のサブミットプロセスが実行された後のケースである。従って、サーバ１００のジョブテーブル１４０には、ジョブＩＤ「ｊｏｂ１」等が記憶されている（図３のＴ２３６及びＴ２４２参照）。また、プリンタ１０のメモリ３４に記憶されている失敗回数は所定回数以下である。
【００９２】
プリンタ１０は、失敗回数が所定回数以下であると判断し（図４のＳ１０でＹＥＳ）、Ｔ３００において、データＵＲＬ「ｉＵＲＬ１」を含むＰＤＦ要求をサーバ１００に送信し（Ｓ２０）、Ｔ３０２において、サーバ１００から全てのＰＤＦデータを受信する（Ｓ２２）。本ケースＡでは、Ｔ３１０において、ＰＤＦデータから第１の印刷データを生成する処理が成功し（Ｓ３０（図５）、Ｓ４０でＹＥＳ）、プリンタ１０は、第１の印刷データに従った印刷処理を実行する（Ｓ５０（図７））。
【００９３】
ケースＡ１では、Ｔ３２０において、第１の印刷データに従った印刷が完了する（図７のＳ３１０でＹＥＳ）。この場合、プリンタ１０は、Ｔ３２２において、文字列「DONE」を含むステータス通知をサーバ１００に送信する（Ｓ３１２）。この結果、Ｔ３２４において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスとして「DONE」がサーバ１００に記憶され、その後、Ｔ３２６において、ジョブＩＤ「ｊｏｂ１」等がサーバ１００から消去される。
【００９４】
ケースＡ２では、Ｔ３３０において、解消不可能エラーが発生する（図７のＳ３２０でＹＥＳ）。この場合、プリンタ１０は、Ｔ３３２において、文字列「ABORTED」を含むステータス通知をサーバ１００に送信する（Ｓ３２２）。この結果、Ｔ３３４において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスとして「ABORTED」がサーバ１００に記憶され、その後、Ｔ３３６において、ジョブＩＤ「ｊｏｂ１」等がサーバ１００から消去される。
【００９５】
ケースＡ３では、Ｔ３４０において、解消可能エラーが発生する（図７のＳ３３０でＹＥＳ）。この場合、プリンタ１０は、Ｔ３４２において、文字列「STOPPED」を含むステータス通知をサーバ１００に送信する（Ｓ３３２）。この結果、Ｔ３４４において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスとして「STOPPED」がサーバ１００に記憶される。その後、Ｔ３５０において、エラーが解消する（図７のＳ３４０でＹＥＳ）。この場合、プリンタ１０は、Ｔ３５２において、文字列「IN_PROGRESS」を含むステータス通知をサーバ１００に送信する（Ｓ３４２）。この結果、Ｔ３５４において、ジョブＩＤ「ｊｏｂ１」に関連付けられているステータスとして「IN_PROGRESS」がサーバ１００に記憶される。その後、Ｔ３６０において、第１の印刷データに従った印刷が完了する（Ｓ３１０でＹＥＳ）。Ｔ３６２〜Ｔ３６６は、ケースＡ１のＴ３２２〜Ｔ３２６と同様である。
【００９６】
（ケースＢ；図９）
ケースＢの初期状態は、図８のケースＡの初期状態と同じである。プリンタ１０は、失敗回数が所定回数以下であると判断し（図４のＳ１０でＹＥＳ）、Ｔ４００において、データＵＲＬ「ｉＵＲＬ１」を含むＰＤＦ要求をサーバ１００に送信し（Ｓ２０）、Ｔ４０２において、サーバ１００から全てのＰＤＦデータを受信する（Ｓ２２）。ここで、当該ＰＤＦデータは、透明コマンドを含む。このため、本ケースＢでは、Ｔ４１０において、ＰＤＦデータから第１の印刷データを生成する処理が失敗する（Ｓ３０、図５のＳ２０８でＹＥＳ、Ｓ４０でＮＯ）。この場合、プリンタ１０は、Ｔ４１２において、失敗回数を「１」だけインクリメントする（Ｓ４２）。
【００９７】
次いで、プリンタ１０は、Ｔ４３０において、データＵＲＬ「ｉＵＲＬ２」を含むＰＷＧ要求をサーバ１００に送信し（Ｓ１２０）、Ｔ４３２において、サーバ１００から所定サイズのＰＷＧデータを受信する（Ｓ１２２）。ここで、当該ＰＷＧデータがベクタデータではなくビットマップデータであるので、当該ＰＷＧデータは、透明コマンドを含まない。このため、Ｔ４４０において、当該ＰＷＧデータから第２の印刷データを生成する処理が成功し（Ｓ１３０（図６）、Ｓ１４０でＹＥＳ）、プリンタ１０は、当該第２の印刷データに従った印刷処理を実行する（Ｓ１５０（図７））。
【００９８】
Ｔ４５０において、Ｔ４４０で生成された第２の印刷データに従った印刷が完了すると（図７のＳ３１０でＹＥＳ）、プリンタ１０は、全てのＰＷＧデータを受信済みでないと判断し（図４のＳ１６０でＮＯ）、Ｔ４５２において、サーバ１００から残りのＰＷＧデータを受信する（Ｓ１２２）。Ｔ４６０において、当該ＰＷＧデータから第２の印刷データを生成する処理が成功し（Ｓ１３０（図６）、Ｓ１４０でＹＥＳ）、プリンタ１０は、当該第２の印刷データに従った印刷処理を実行する（Ｓ１５０（図７））。
【００９９】
Ｔ４７０において、Ｔ４６０で生成された第２の印刷データに従った印刷が完了すると（図７のＳ３１０でＹＥＳ）、プリンタ１０は、全てのＰＷＧデータを受信済みであると判断する（図４のＳ１６０でＹＥＳ）。Ｔ４７２〜Ｔ４７６は、図８のケースＡ１のＴ３２２〜Ｔ３２６と同様である。
【０１００】
（本実施例の効果）
上記の図９のケースＢに示されるように、プリンタ１０は、対象画像を表わすＰＤＦデータが透明コマンドを含むことに起因して第１の印刷データの生成に失敗する場合（Ｔ４１０）に、同じ対象画像を表わすと共に透明コマンドを含まないＰＷＧデータを利用して第２の印刷データを生成し（Ｔ４４０、Ｔ４６０）、第２の印刷データを利用して対象画像の印刷を実行する。従って、プリンタ１０は、対象画像を表わすＰＤＦデータを利用した第１の印刷データの生成に失敗しても、第２の印刷データを利用して対象画像の印刷を実行することができる。
【０１０１】
なお、図９のケースＢでは、ＰＤＦデータが透明コマンドを含むことに起因して第１の印刷データの生成に失敗する。ただし、ＰＤＦデータが、非サポートフォント情報（図５のＳ２０２）、非サポートフォーマット情報（Ｓ２０４）、非サポート暗号化情報（Ｓ２０６）、複雑なグラデーションコマンド（Ｓ２１２）、非サポートコマンド（Ｓ２１４）、又は、解釈不可能データ（Ｓ２２２）を含む場合にも、第１の印刷データの生成に失敗する。このような状況でも、プリンタ１０は、これらの情報を含まないＰＷＧデータを利用して第２の印刷データを生成し、第２の印刷データを利用して対象画像の印刷を実行することができる。
【０１０２】
また、図８のケースＡに示されるように、プリンタ１０は、まず、ＰＤＦ要求をサーバ１００に送信して（Ｔ３００）、サーバ１００からＰＤＦデータを受信する（Ｔ３０２）。ここで、第１の印刷データの生成が成功すれば（Ｔ３２０）、プリンタ１０は、ＰＷＧ要求をサーバ１００に送信せず、サーバ１００からＰＷＧデータを受信しない。従って、プリンタ１０が、ＰＤＦデータとＰＷＧデータとの双方を受信した後に、ＰＤＦデータから第１の印刷データを生成する処理を実行する比較例の構成と比べると、プリンタ１０とサーバ１００との間の通信負荷を低減させることができる。
【０１０３】
特に、ＰＤＦデータがベクタデータであり、ＰＷＧデータがビットマップデータであることから、対象画像を表わすＰＤＦデータ（図９のＴ４０２参照）のデータサイズは、同じ対象画像を表わすＰＷＧデータ（Ｔ４３２及びＴ４５２参照）のデータサイズよりも小さい。このために、プリンタ１０は、ＰＤＦ要求及びＰＷＧ要求のうちのＰＤＦ要求をサーバ１００に先に送信して、比較的に小さいデータサイズを有するＰＤＦデータを受信し、ＰＤＦデータに従った印刷を実行することを試行する。そして、ここで印刷が完了すれば、ＰＷＧデータの通信を実行せずに済む。従って、プリンタ１０が、ＰＤＦ要求及びＰＷＧ要求のうちのＰＷＧ要求をサーバ１００に先に送信して、比較的に大きいデータサイズを有するＰＷＧデータを受信する比較例の構成と比べると、プリンタ１０とサーバ１００との間の通信負荷を低減させることができる。
【０１０４】
また、図８のケースＡ２に示されるように、プリンタ１０は、解消不可能エラーが発生する場合（Ｔ３３０）には、文字列「ABORTED」を含むステータス通知をサーバ１００に送信する（Ｔ３３２）。この結果、ジョブＩＤ「ｊｏｂ１」等がサーバ１００から消去される。一方、図９のケースＢに示されるように、第１の印刷データの生成に失敗する場合（Ｔ４１０）には、プリンタ１０は、文字列「ABORTED」を含むステータス通知をサーバ１００に送信しない。この結果、ジョブＩＤ「ｊｏｂ１」等は、サーバ１００から消去されない。従って、プリンタ１０は、サーバ１００からＰＷＧデータを受信することができる（Ｔ４３２及びＴ４５２）。
【０１０５】
失敗回数が所定回数より大きい場合には、ＰＤＦデータから第１の印刷データを生成する処理が失敗する可能性が高い。従って、プリンタ１０は、失敗回数が所定回数より大きいと判断する場合（図４のＳ１０でＹＥＳ）には、ＰＤＦ要求をサーバ１００に送信することなく、ＰＷＧ要求をサーバ１００に送信し（Ｓ１２０）、サーバ１００からＰＷＧデータを受信し（Ｓ１２２）、ＰＷＧデータに従った印刷を実行する（Ｓ１３０、Ｓ１５０）。これにより、プリンタ１０は、失敗する可能性が高い処理を実行せずに済み、さらに、当該処理のためのＰＤＦデータを受信せずに済む。プリンタ１０の処理負荷を低減させることができると共に、プリンタ１０とサーバ１００との間の通信負荷を低減させることができる。
【０１０６】
（対応関係）
ＰＤＦ、ＰＷＧラスタが、それぞれ、「第１のデータフォーマット」、「第２のデータフォーマット」の一例である。ＰＤＦデータ、ＰＷＧデータが、それぞれ、「第１の画像データ」、「第２の画像データ」の一例である。ＰＤＦ要求、ＰＷＧ要求が、それぞれ、「第１のデータ要求」、「第２のデータ要求」の一例である。画像ファイルＦ１が、「対象画像データ」の一例である。文字列「ABORTED」を含むステータス通知が、「中止通知」の一例である。ジョブ通知が、「記憶通知」の一例である。透明コマンド、非サポートフォント情報が、それぞれ、「透明度情報」、「特定のフォント情報」の一例である。
【０１０７】
図４のＳ２２の処理、Ｓ１２２の処理が、それぞれ、「第１の受信部」、「第２の受信部」によって実行される処理の一例である。Ｓ３０の処理、Ｓ５０の処理が、それぞれ、「第１の生成部」、「第１の印刷制御部」によって実行される処理の一例である。Ｓ１３０の処理、Ｓ１５０の処理が、それぞれ、「第２の生成部」、「第２の印刷制御部」によって実行される処理の一例である。Ｓ２０の処理が、「第１の要求送信部」によって実行される処理の一例である。Ｓ４０でＮＯの場合に実行されるＳ１２０の処理、Ｓ１０でＮＯの場合に実行されるＳ１２０の処理が、それぞれ、「第２の要求送信部」、「第３の要求送信部」によって実行される処理の一例である。図４のＳ５０で実行される図７のＳ３２２の処理が、「通知送信部」によって実行される処理の一例である。図４のＳ１０の処理が、「判断部」によって実行される処理の一例である。図２のＴ３２の処理、Ｔ４４及びＴ４６の処理、図３のＴ２３２の処理が、それぞれ、「能力情報送信部」、「確立部」、「通知受信部」によって実行される処理の一例である。
【０１０８】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【０１０９】
（変形例１）プリンタ１０は、サーバ１００からＰＤＦデータ及びＰＷＧデータの双方を受信した後に、ＰＤＦデータから第１の印刷データを生成する処理を実行し、第１の印刷データの生成が失敗する場合に、ＰＷＧデータから第２の印刷データを生成する処理を実行してもよい。即ち、「第１の生成部」が第１の印刷データの生成を試行するタイミングは、上記の実施例のように、第１の画像データ及び第２の画像データのうちの第１の画像データのみが受信されたタイミングであってもよいし、本変形例のように、第１の画像データ及び第２の画像データの双方が受信されたタイミングであってもよい。即ち、本変形例では、「第２の要求送信部」は、第１の印刷データの生成が失敗する前に、第２のデータ要求をサーバに送信してもよい。
【０１１０】
（変形例２）プリンタ１０は、ＰＤＦ要求及びＰＷＧ要求をサーバ１００に送信することなく、ＸＭＰＰ接続を利用して、サーバ１００からＰＤＦデータ及びＰＷＧデータの双方を含むジョブ通知を受信してもよい。本変形例では、「第１の要求送信部」及び「第２の要求送信部」を省略可能である。
【０１１１】
（変形例３）プリンタ１０は、図４のＳ２２において、サーバ１００から、ＰＤＦデータとは異なるデータフォーマット（例えばプリンタ１０のベンダによって開発された独自フォーマット）を有する画像データを受信してもよい。そして、プリンタ１０は、当該画像データから第１の印刷データを生成する処理が失敗する場合（Ｓ４０でＮＯ）に、サーバ１００からＰＷＧデータを受信してもよい。本変形例では、上記の独自フォーマットが、「第１のデータフォーマット」の一例である。また、本変形例では、上記の独自フォーマットを有する画像データのデータサイズは、ＰＷＧデータのデータサイズよりも大きくてもよい。即ち、第１の画像データのデータサイズは、第２の画像データのデータサイズよりも大きくてもよい。
【０１１２】
（変形例４）プリンタ１０は、図４のＳ１２２において、サーバ１００から、ＰＷＧデータとは異なるデータフォーマット（例えば、ＪＰＥＧ、ＰＣＬｍ（Printer Command Language mの略））を有する画像データを受信してもよい。本変形例では、上記の異なるデータフォーマットが、「第２のデータフォーマット」の一例である。
【０１１３】
（変形例５）プリンタ１０は、図７のＳ３２０でＹＥＳの場合に、Ｓ３２２のステータス通知をサーバ１００に送信しなくてもよい。本変形例では、「通知送信部」を省略可能である。
【０１１４】
（変形例６）ＧＣＰサーバ１００に代えて、Ｇｏｏｇｌｅとは異なる事業者（例えばプリンタ１０のベンダ）によって提供されるサーバが利用されてもよい。この場合、サーバがＬＡＮ６内に設置されてもよく、サーバとプリンタ１０との間にＸＭＰＰ接続が確立されなくてもよい。本変形例では、「確立部」及び「通知受信部」を省略可能である。
【０１１５】
（変形例７）図２のＴ３２において、プリンタ１０は、能力情報ＣＩ１をサーバ１００に送信しなくてもよい。この場合、サーバ１００は、Ｔ３６において、デフォルトのデータフォーマットとしてＰＤＦ及びＰＷＧラスタを示す能力情報を記憶してもよい。本変形例では、「能力情報送信部」を省略可能である。
【０１１６】
（変形例８）プリンタ１０は、図４のＳ１０を実行せずに、図４のＳ２０を実行してもよい。この場合、Ｓ４２も省略可能である。本変形例では、「判断部」を省略可能である。
【０１１７】
（変形例９）プリンタ１０は、図３のＴ２３２において、サーバ１００からジョブ通知を受信した後に、ユーザがプリンタ１０にログインすることを条件として、Ｔ２３４以降の処理を実行してもよい。この場合、プリンタ１０は、図４のＳ４０でＮＯと判断する場合に、ログインユーザを示すユーザ情報に対応付けて失敗回数を記憶してもよい。即ち、プリンタ１０は、ユーザ毎に、失敗情報を記憶してもよい。そして、プリンタ１０は、Ｓ１０において、ログインユーザを示すユーザ情報に対応付けられている失敗回数が所定回数以上であるのか否かを判断してもよい。本変形例によると、プリンタ１０は、第１の印刷データの生成が成功する可能性が高いユーザについては、サーバ１００からＰＤＦデータを受信し、第１の印刷データの生成が失敗する可能性が高いユーザについては、サーバ１００からＰＤＦデータを受信することなくＰＷＧデータを受信することができる。
【０１１８】
（変形例１０）上記の各実施例では、図２〜図９の各処理がソフトウェア（即ちプログラム３６）によって実現されるが、これらの各処理のうちの少なくとも１つが論理回路等のハードウェアによって実現されてもよい。
【０１１９】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【０１２０】
２：通信システム、４：インターネット、６：ＬＡＮ、１０：プリンタ、１２：操作部、１４：表示部、１６：ネットワークインターフェース、１８：印刷実行部、３０：制御部、３２：ＣＰＵ、３４：メモリ、３６：プログラム、９０：ＰＣ、１００：ＧＣＰサーバ、１１６：ネットワークインターフェース、１３０：制御部、１３２：ＣＰＵ、１３４：メモリ、１３６：プログラム、１３８：アカウントテーブル、１４０：ジョブテーブル
【図１】
2020138391.tif 000003
【図２】
2020138391.tif 000004
【図３】
2020138391.tif 000005
【図４】
2020138391.tif 000006
【図５】
2020138391.tif 000007
【図６】
2020138391.tif 000008
【図７】
2020138391.tif 000009
【図８】
2020138391.tif 000010
【図９】
2020138391.tif 000011