(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-06
(45)【発行日】2024-08-15
(54)【発明の名称】印刷サーバ、システム、および、コンピュータプログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20240807BHJP
B41J 29/38 20060101ALI20240807BHJP
【FI】
G06F3/12 334
G06F3/12 365
G06F3/12 374
G06F3/12 310
B41J29/38 302
(21)【出願番号】P 2020095129
(22)【出願日】2020-05-29
【審査請求日】2023-04-18
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】齋藤 健
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2013-061836(JP,A)
【文献】特開2000-020273(JP,A)
【文献】特開2017-118406(JP,A)
【文献】特開2012-108620(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/12
B41J29/00-29/70
(57)【特許請求の範囲】
【請求項1】
印刷サーバであって、
第1印刷データを生成する第1印刷データ生成部と、
ネットワーク上の前記第1印刷データの位置を示す位置データである第1プリンタ宛の第1位置データを送信する第1位置データ送信部と、
前記第1位置データによって示されるデータの要求である前記第1プリンタからの第1データ要求に応じて、前記第1プリンタに前記第1印刷データを送信する第1印刷データ送信部と、
前記第1印刷データに基づく印刷を中断すべきエラーが前記第1プリンタに発生したことと、前記エラーが発生したページの印刷順を示す番号である第1エラーページ印刷番号と、を示すエラー通知を受信するエラー通知受信部と、
前記エラー通知の受信に応じて、前記第1エラーページ印刷番号を用いて再印刷用の第2印刷データを生成する第2印刷データ生成部と、
前記エラーが解消したことを示すエラー解消通知を受信するエラー解消通知受信部と、
前記エラー解消通知の受信に応じて、前記ネットワーク上の前記第2印刷データの位置を示す位置データである前記第1プリンタ宛の第2位置データを送信する第2位置データ送信部と、
前記第2位置データによって示されるデータの要求である前記第1プリンタからの第2データ要求に応じて、前記第1プリンタに前記第2印刷データを送信する第2印刷データ送信部と、
を備える、印刷サーバ。
【請求項2】
請求項1に記載の印刷サーバであって、さらに、
前記エラー通知の受信に応じて、前記第1印刷データに基づく印刷をキャンセルするための前記第1プリンタ宛のキャンセル指示を送信するキャンセル指示送信部を備える、
印刷サーバ。
【請求項3】
請求項2に記載の印刷サーバであって、
前記第2印刷データ生成部は、前記エラー通知が受信された場合に、前記第2印刷データを生成し、かつ、前記第2印刷データを記憶領域に格納し、
前記キャンセル指示送信部は、前記エラー通知が受信された場合に、前記キャンセル指示の送信を行い、
前記第2位置データ送信部は、前記エラー解消通知が受信された場合に、前記記憶領域上の前記第2印刷データの位置を示す前記第2位置データを送信する、
印刷サーバ。
【請求項4】
請求項1から3のいずれかに記載の印刷サーバであって、
前記第2印刷データ送信部は、第1送信方法に従って前記第2印刷データを送信し、
前記印刷サーバは、前記第1送信方法とは異なる第2送信方法に従って、第2プリンタに印刷用のデータを送信する第3印刷データ送信部を備える、
印刷サーバ。
【請求項5】
請求項4に記載の印刷サーバであって、
前記第2送信方法は、印刷データのうちの要求された任意の部分を送信する方法であり、
前記第3印刷データ送信部は、前記印刷データのうちの前記第2プリンタによって要求された部分を前記第2プリンタに送信する、
印刷サーバ。
【請求項6】
請求項1から5のいずれかに記載の印刷サーバであって、
前記第2印刷データ生成部は、
前記第1印刷データが両面印刷用のデータである場合に、前記第1エラーページ印刷番号が偶数であるか否かを判断し、
前記第1エラーページ印刷番号が偶数である場合には、前記第1エラーページ印刷番号の1つ前の印刷順のページから始まる印刷物を示す前記第2印刷データを生成する、
印刷サーバ。
【請求項7】
請求項1から6のいずれかに記載の印刷サーバであって、
前記印刷サーバは、インターネットを介して、前記第1プリンタに接続され、
前記印刷サーバは、前記第1プリンタと通信可能な管理サーバと、端末装置と、通信可能であり、
前記第1位置データ送信部は、前記端末装置からの印刷指示に応じて、前記管理サーバを介して前記第1位置データを前記第1プリンタに送信する、
印刷サーバ。
【請求項8】
印刷サーバと第1プリンタとを備えるシステムであって、
前記印刷サーバは、
第1印刷データを生成する第1印刷データ生成部と、
ネットワーク上の前記第1印刷データの位置を示す位置データである前記第1プリンタ宛の第1位置データを送信する第1位置データ送信部と、
を備え、
前記第1プリンタは、前記第1位置データによって示されるデータの要求である第1データ要求を前記印刷サーバに送信する第1データ要求送信部を備え、
前記印刷サーバは、前記第1プリンタからの前記第1データ要求に応じて、前記第1プリンタに前記第1印刷データを送信する第1印刷データ送信部を備え、
前記第1プリンタは、前記第1印刷データに基づく印刷を中断すべきエラーが前記第1プリンタに発生した場合に、前記エラーが前記第1プリンタに発生したことと、前記エラーが発生したページの印刷順を示す番号である第1エラーページ印刷番号と、を示す前記印刷サーバ宛のエラー通知を送信するエラー通知送信部を備え、
前記印刷サーバは、
前記エラー通知を受信するエラー通知受信部と、
前記エラー通知の受信に応じて、前記第1エラーページ印刷番号を用いて再印刷用の第2印刷データを生成する第2印刷データ生成部と、
を備え、
前記第1プリンタは、前記エラーが解消した場合に、前記エラーが解消したことを示す前記印刷サーバ宛のエラー解消通知を送信するエラー解消通知送信部を備え、
前記印刷サーバは、
前記エラー解消通知を受信するエラー解消通知受信部と、
前記エラー解消通知の受信に応じて、前記ネットワーク上の前記第2印刷データの位置を示す位置データである前記第1プリンタ宛の第2位置データを送信する第2位置データ送信部と、
を備え、
前記第1プリンタは、前記第2位置データによって示されるデータの要求である第2データ要求を前記印刷サーバに送信する第2データ要求送信部を備え、
前記印刷サーバは、前記第1プリンタからの前記第2データ要求に応じて、前記第1プリンタに前記第2印刷データを送信する第2印刷データ送信部を備える、
システム。
【請求項9】
請求項8に記載のシステムであって、さらに、
第2プリンタを備え、
前記印刷サーバは、
第3印刷データを生成する第3印刷データ生成部と、
前記ネットワーク上の前記第3印刷データの位置を示す位置データである前記第2プリンタ宛の第3位置データを送信する第3位置データ送信部と、
を備え、
前記第2プリンタは、前記第3位置データによって示されるデータのうちの
未取得の第1対象部分データの要求である第3データ要求であって、前記第1対象部分データは未取得により印刷が未完了である部分の少なくとも一部である
、前記第3データ要求を前記印刷サーバに送信する第3データ要求送信部を備え、
前記印刷サーバは、前記第2プリンタからの前記第3データ要求に応じて、前記第2プリンタに前記第3印刷データのうちの前記第1対象部分データを送信する第3印刷データ送信部を備え、
前記第2プリンタは、
前記第1対象部分データに基づく印刷を中断すべきエラーが前記第2プリンタに発生した場合に、次に要求すべき対象部分データである第2対象部分データを、前記エラーが発生したページを用いて特定する対象部分特定部と、
前記第3印刷データのうちの前記第2対象部分データの要求である第4データ要求を前記印刷サーバに送信する第4データ要求送信部と、
を備え、
前記印刷サーバは、前記第2プリンタからの前記第4データ要求に応じて、前記第3印刷データのうちの前記第2対象部分データを、前記第2プリンタに送信する第4印刷データ送信部を備える、
システム。
【請求項10】
印刷サーバのためのコンピュータプログラムであって、
第1印刷データを生成する第1印刷データ生成機能と、
ネットワーク上の前記第1印刷データの位置を示す位置データである第1プリンタ宛の第1位置データを送信する第1位置データ送信機能と、
前記第1位置データによって示されるデータの要求である前記第1プリンタからの第1データ要求に応じて、前記第1プリンタに前記第1印刷データを送信する第1印刷データ送信機能と、
前記第1印刷データに基づく印刷を中断すべきエラーが前記第1プリンタに発生したことと、前記エラーが発生したページの印刷順を示す番号である第1エラーページ印刷番号と、を示すエラー通知を受信するエラー通知受信機能と、
前記エラー通知の受信に応じて、前記第1エラーページ印刷番号を用いて再印刷用の第2印刷データを生成する第2印刷データ生成機能と、
前記エラーが解消したことを示すエラー解消通知を受信するエラー解消通知受信機能と、
前記エラー解消通知の受信に応じて、前記ネットワーク上の前記第2印刷データの位置を示す位置データである前記第1プリンタ宛の第2位置データを送信する第2位置データ送信機能と、
前記第2位置データによって示されるデータの要求である前記第1プリンタからの第2データ要求に応じて、前記第1プリンタに前記第2印刷データを送信する第2印刷データ送信機能と、
をコンピュータに実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、プリンタに印刷データを送信する印刷サーバに関する。
【背景技術】
【0002】
特許文献1には、障害発生から復帰して印字を再開する際、適正な位置から自動的に印字を再開するプリンタ装置が開示されている。このプリンタ装置の制御手段は、印字データ作成時に当該印字データの所定の位置に、障害から復帰した後に印字を再開すべき位置すなわち復帰開始位置を示す制御コードを含ませる。制御手段は、障害から復帰して印字を再開する際に、前記制御コードに基づいて、障害発生前で且つ障害発生箇所に最も近い復帰開始位置から印字を再開する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、プリンタと印刷サーバとを用いるシステムが、利用されている。このようなシステムの構成としては、種々の構成が用いられ得る。このような状況下において、プリンタにエラーが発生した場合の適切な印刷に関しては、工夫の余地があった。
【0005】
本明細書は、プリンタにエラーが発生した場合に、適切な印刷を行う技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]印刷サーバであって、第1印刷データを生成する第1印刷データ生成部と、ネットワーク上の前記第1印刷データの位置を示す位置データである第1プリンタ宛の第1位置データを送信する第1位置データ送信部と、前記第1位置データによって示されるデータの要求である前記第1プリンタからの第1データ要求に応じて、前記第1プリンタに前記第1印刷データを送信する第1印刷データ送信部と、前記第1印刷データに基づく印刷を中断すべきエラーが前記第1プリンタに発生したことと、前記エラーが発生したページの印刷順を示す番号である第1エラーページ印刷番号と、を示すエラー通知を受信するエラー通知受信部と、前記エラー通知の受信に応じて、前記第1エラーページ印刷番号を用いて再印刷用の第2印刷データを生成する第2印刷データ生成部と、前記エラーが解消したことを示すエラー解消通知を受信するエラー解消通知受信部と、前記エラー解消通知の受信に応じて、前記ネットワーク上の前記第2印刷データの位置を示す位置データである前記第1プリンタ宛の第2位置データを送信する第2位置データ送信部と、前記第2位置データによって示されるデータの要求である前記第1プリンタからの第2データ要求に応じて、前記第1プリンタに前記第2印刷データを送信する第2印刷データ送信部と、を備える、印刷サーバ。
【0008】
この構成によれば、印刷サーバは、エラー通知の受信に応じてエラーページ印刷番号を用いて再印刷用の第2印刷データを生成し、印刷サーバは、エラー解消通知の受信に応じてネットワーク上の第2印刷データの位置を示す位置データである第1プリンタ宛の第2位置データを送信するので、印刷サーバは、プリンタにエラーが発生した場合に、適切な印刷を第1プリンタに行わせることができる。
[適用例2]
適用例1に記載の印刷サーバであって、さらに、
前記エラー通知の受信に応じて、前記第1印刷データに基づく印刷をキャンセルするための前記第1プリンタ宛のキャンセル指示を送信するキャンセル指示送信部を備える、
印刷サーバ。
[適用例3]
適用例2に記載の印刷サーバであって、
前記第2印刷データ生成部は、前記エラー通知が受信された場合に、前記第2印刷データを生成し、かつ、前記第2印刷データを記憶領域に格納し、
前記キャンセル指示送信部は、前記エラー通知が受信された場合に、前記キャンセル指示の送信を行い、
前記第2位置データ送信部は、前記エラー解消通知が受信された場合に、前記記憶領域上の前記第2印刷データの位置を示す前記第2位置データを送信する、
印刷サーバ。
[適用例4]
適用例1から3のいずれかに記載の印刷サーバであって、
前記第2印刷データ送信部は、第1送信方法に従って前記第2印刷データを送信し、
前記印刷サーバは、前記第1送信方法とは異なる第2送信方法に従って、第2プリンタに印刷用のデータを送信する第3印刷データ送信部を備える、
印刷サーバ。
[適用例5]
適用例4に記載の印刷サーバであって、
前記第2送信方法は、印刷データのうちの要求された任意の部分を送信する方法であり、
前記第3印刷データ送信部は、前記印刷データのうちの前記第2プリンタによって要求された部分を前記第2プリンタに送信する、
印刷サーバ。
[適用例6]
適用例1から5のいずれかに記載の印刷サーバであって、
前記第2印刷データ生成部は、
前記第1印刷データが両面印刷用のデータである場合に、前記第1エラーページ印刷番号が偶数であるか否かを判断し、
前記第1エラーページ印刷番号が偶数である場合には、前記第1エラーページ印刷番号の1つ前の印刷順のページから始まる印刷物を示す前記第2印刷データを生成する、
印刷サーバ。
[適用例7]
適用例1から6のいずれかに記載の印刷サーバであって、
前記印刷サーバは、インターネットを介して、前記第1プリンタに接続され、
前記印刷サーバは、前記第1プリンタと通信可能な管理サーバと、端末装置と、通信可能であり、
前記第1位置データ送信部は、前記端末装置からの印刷指示に応じて、前記管理サーバを介して前記第1位置データを前記第1プリンタに送信する、
印刷サーバ。
【0009】
[適用例8]印刷サーバと第1プリンタとを備えるシステムであって、前記印刷サーバは、第1印刷データを生成する第1印刷データ生成部と、ネットワーク上の前記第1印刷データの位置を示す位置データである前記第1プリンタ宛の第1位置データを送信する第1位置データ送信部と、を備え、前記第1プリンタは、前記第1位置データによって示されるデータの要求である第1データ要求を前記印刷サーバに送信する第1データ要求送信部を備え、前記印刷サーバは、前記第1プリンタからの前記第1データ要求に応じて、前記第1プリンタに前記第1印刷データを送信する第1印刷データ送信部を備え、前記第1プリンタは、前記第1印刷データに基づく印刷を中断すべきエラーが前記第1プリンタに発生した場合に、前記エラーが前記第1プリンタに発生したことと、前記エラーが発生したページの印刷順を示す番号である第1エラーページ印刷番号と、を示す前記印刷サーバ宛のエラー通知を送信するエラー通知送信部を備え、前記印刷サーバは、前記エラー通知を受信するエラー通知受信部と、前記エラー通知の受信に応じて、前記第1エラーページ印刷番号を用いて再印刷用の第2印刷データを生成する第2印刷データ生成部と、を備え、前記第1プリンタは、前記エラーが解消した場合に、前記エラーが解消したことを示す前記印刷サーバ宛のエラー解消通知を送信するエラー解消通知送信部を備え、前記印刷サーバは、前記エラー解消通知を受信するエラー解消通知受信部と、前記エラー解消通知の受信に応じて、前記ネットワーク上の前記第2印刷データの位置を示す位置データである前記第1プリンタ宛の第2位置データを送信する第2位置データ送信部と、を備え、前記第1プリンタは、前記第2位置データによって示されるデータの要求である第2データ要求を前記印刷サーバに送信する第2データ要求送信部を備え、前記印刷サーバは、前記第1プリンタからの前記第2データ要求に応じて、前記第1プリンタに前記第2印刷データを送信する第2印刷データ送信部を備える、システム。
【0010】
この構成によれば、印刷サーバと第1プリンタとを備えるシステムは、エラーが発生した場合であっても、適切な印刷を実行できる。
【0011】
[適用例9]適用例8に記載のシステムであって、さらに、第2プリンタを備え、前記印刷サーバは、第3印刷データを生成する第3印刷データ生成部と、前記ネットワーク上の前記第3印刷データの位置を示す位置データである前記第2プリンタ宛の第3位置データを送信する第3位置データ送信部と、を備え、前記第2プリンタは、前記第3位置データによって示されるデータのうちの印刷が未完了である部分の少なくとも一部である第1対象部分データの要求である第3データ要求を前記印刷サーバに送信する第3データ要求送信部を備え、前記印刷サーバは、前記第2プリンタからの前記第3データ要求に応じて、前記第2プリンタに前記第3印刷データのうちの前記第1対象部分データを送信する第3印刷データ送信部を備え、前記第2プリンタは、前記第1対象部分データに基づく印刷を中断すべきエラーが前記第2プリンタに発生した場合に、次に要求すべき対象部分データである第2対象部分データを、前記エラーが発生したページを用いて特定する対象部分特定部と、前記第3印刷データのうちの前記第2対象部分データの要求である第4データ要求を前記印刷サーバに送信する第4データ要求送信部と、を備え、前記印刷サーバは、前記第2プリンタからの前記第4データ要求に応じて、前記第3印刷データのうちの前記第2対象部分データを、前記第2プリンタに送信する第4印刷データ送信部を備える、システム。
【0012】
この構成によれば、印刷サーバは、第3印刷データのうちの第2プリンタによって要求された部分を、送信すべきデータとして利用できる。
【0013】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、印刷方法、印刷装置、システム、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0014】
【
図1】システム1000の構成を示すブロック図である。
【
図2】(A)-(C)は、テーブルT41、T42、T51の説明図である。
【
図3】プリントサービスの処理の実施例を示すシーケンス図である。
【
図4】プリントサービスの処理の実施例を示すシーケンス図である。
【
図5】印刷データPD1、PD2によって示される印刷物の例を示す説明図である。
【
図6】プリントサービスの処理の別の実施例を示すシーケンス図である。
【
図7】プリントサービスの処理の別の実施例を示すシーケンス図である。
【
図8】第3印刷データPD3と対象部分データPDPとページとの関係の例を示す説明図である。
【
図9】プリントサービスの処理の別の実施例を示すフローチャートである。
【
図10】印刷データPD1、PD2によって示される印刷物の例を示す説明図である。
【発明を実施するための形態】
【0015】
A.第1実施例:
A-1.システム1000の構成:
図1は、システム1000の構成を示すブロック図である。このシステム1000は、複合機100A、100Bと、端末装置200と、印刷サーバ400と、管理サーバ500と、を備えている。印刷サーバ400と管理サーバ500とは、インターネットITに接続されている。印刷サーバ400は、インターネットITを介して、管理サーバ500と通信可能である。複合機100A、100Bと端末装置200とは、ローカルエリアネットワークLNに接続されている。ローカルエリアネットワークLNは、インターネットITに接続されている。複合機100A、100Bと端末装置200とは、ローカルエリアネットワークLNとインターネットITを介して、サーバ400、500と通信可能である。
【0016】
印刷サーバ400と管理サーバ500とは、端末装置200などのクライアント装置に、プリントサービスを提供する。プリントサービスは、インターネットITなどのネットワークを介して複合機100A、100Bなどのプリンタに画像を印刷させるサービスである。本実施例では、プリントサービスは、クライアント装置によって送信される電子メールに含まれる画像データによって示される画像を、プリンタに印刷させる。このようなプリントサービスは、メール印刷とも呼ばれる。なお、本実施例では、管理サーバ500は、XMPP(Extensible Messaging and Presence Protocolの略)サーバとして、機能する。管理サーバ500は、プリンタと、XMPPセッションを確立する。管理サーバ500とプリンタとの間でXMPPセッションが確立している場合、管理サーバ500は、プリンタが属しているネットワーク(例えば、ローカルエリアネットワークLN)のファイヤウォールを超えて、プリンタにデータを送信できる。サーバ400、500は、連携して、プリントサービスを提供する。このような印刷サーバ400と管理サーバ500とは、プリンタ(ここでは、複合機100A、100B)の製造者によって、インターネットIT上に設けられる。
【0017】
印刷サーバ400は、CPU410と、記憶装置415と、通信インタフェース480と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置415は、揮発性記憶装置420と、不揮発性記憶装置430と、を含んでいる。
【0018】
通信インタフェース480は、他の装置と通信するためのインタフェースである(例えば、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、通信インタフェース480は、インターネットITに接続されている。
【0019】
CPU410は、プロセッサとも呼ばれ、データ処理を行うデータ処理装置の例である。揮発性記憶装置420は、例えば、DRAMであり、不揮発性記憶装置430は、例えば、フラッシュメモリである。不揮発性記憶装置430は、プログラムPG4と、デバイステーブルT41と、ジョブテーブルT42と、を格納している。CPU410は、プログラムPG4を実行することによって、プリントサービスを提供するための処理を実行する。CPU410は、プログラムPG4の実行に利用される種々の中間データを、記憶装置415(例えば、揮発性記憶装置420、または、不揮発性記憶装置430)に、一時的に格納する。CPU410によって実行される処理と、テーブルT41、T42と、の詳細については、後述する。
【0020】
管理サーバ500は、CPU510と、記憶装置515と、通信インタフェース580と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置515は、揮発性記憶装置520と、不揮発性記憶装置530と、を含んでいる。
【0021】
通信インタフェース580は、他の装置と通信するためのインタフェースである(例えば、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、通信インタフェース580は、インターネットITに接続されている。
【0022】
CPU510は、データ処理装置の例である。揮発性記憶装置520は、例えば、DRAMであり、不揮発性記憶装置530は、例えば、フラッシュメモリである。不揮発性記憶装置530は、プログラムPG5と、管理テーブルT51と、を格納している。CPU510は、プログラムPG5を実行することによって、プリントサービスを提供するための処理を実行する。CPU510は、プログラムPG5の実行に利用される種々の中間データを、記憶装置515(例えば、揮発性記憶装置520、または、不揮発性記憶装置530)に、一時的に格納する。CPU510によって実行される処理と、管理テーブルT51と、の詳細については、後述する。
【0023】
第1複合機100Aと第2複合機100Bとは、互いに異なるモデルの複合機である。ただし、複合機100A、100Bは、同様の構成を備えている。以下、複合機100A、100Bを区別しない場合には、符号の末尾の英字を省略して、単に複合機100とも呼ぶ。
【0024】
複合機100は、CPU110と、記憶装置115と、表示部140と、操作部150と、印刷実行部160と、読取実行部170と、通信インタフェース180と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置115は、揮発性記憶装置120と、不揮発性記憶装置130と、を含んでいる。
【0025】
表示部140は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部150は、ユーザによる操作を受け取る装置であり、例えば、表示部140上に重ねて配置されたタッチパネルを含んでいる。ユーザは、操作部150を操作することによって、種々の指示を複合機100に入力可能である。
【0026】
印刷実行部160は、所定の方式(例えば、レーザ方式や、インクジェット方式)で、用紙(印刷媒体の一例)上に印刷材を用いて画像を印刷する装置である。読取実行部170は、CCDやCMOSなどの光電変換素子を用いて光学的に原稿等の対象物を読み取ることによって、読み取った画像(「スキャン画像」と呼ぶ)を表すスキャンデータを生成する。
【0027】
通信インタフェース180は、他の装置と通信するためのインタフェースである(例えば、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、通信インタフェース180は、ローカルエリアネットワークLNに接続されている。
【0028】
CPU110は、データ処理装置の例である。揮発性記憶装置120は、例えば、DRAMであり、不揮発性記憶装置130は、例えば、フラッシュメモリである。不揮発性記憶装置130は、プログラムPG1と、装置情報D1と、を格納している。CPU110は、プログラムPG1を実行することによって、種々の処理を実行する。CPU110は、プログラムPG1の実行に利用される種々の中間データを、記憶装置115(例えば、揮発性記憶装置120、または、不揮発性記憶装置130)に、一時的に格納する。CPU110によって実行される処理と、装置情報D1と、の詳細については、後述する。なお、本実施例では、プログラムPG1と装置情報D1とは、複合機100の製造者によって、ファームウェアとして、不揮発性記憶装置130に予め格納されている。
【0029】
端末装置200は、プリントサービスを利用するための装置である(例えば、スマートフォン、タブレットコンピュータ等)。端末装置200は、CPU210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース280と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0030】
表示部240は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部250は、ユーザによる操作を受け取る装置であり、例えば、表示部240上に重ねて配置されたタッチパネルを含んでいる。ユーザは、操作部250を操作することによって、種々の指示を端末装置200に入力可能である。
【0031】
通信インタフェース280は、他の装置と通信するためのインタフェースである(例えば、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、通信インタフェース280は、ローカルエリアネットワークLNに接続されている。
【0032】
CPU210は、データ処理装置の例である。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラムPG2を格納している。CPU210は、プログラムPG2を実行することによって、プリントサービスを利用するための種々の処理を実行する。CPU210は、プログラムPG2の実行に利用される種々の中間データを、記憶装置(例えば、揮発性記憶装置220、または、不揮発性記憶装置230)に、一時的に格納する。CPU210によって実行される処理の詳細については、後述する。なお、本実施例では、プログラムPG2は、アプリケーションプログラムであり、図示しないサーバによって提供される。これに代えて、プログラムPG2は、メモリカードなどの携帯型の記録媒体によって提供されてよい。
【0033】
図2(A)-
図2(C)は、テーブルT41、T42、T51の説明図である。デバイステーブルT41(
図2(A))は、プリンタに関する情報を登録するためのテーブルである。デバイステーブルT41は、プリンタ識別子UIDと、管理識別子MIDと、メールアドレスMAと、を含む複数の情報を、関連付けて格納する。プリンタ識別子UIDは、個々のプリンタを識別する情報である。本実施例では、プリンタ識別子UIDは、複合機100の装置情報D1(
図1)に含まれている。以下、第1複合機100Aのプリンタ識別子UIDが「u01」であり、第2複合機100Bのプリンタ識別子UIDが「u02」であることとする。管理識別子MIDは、プリンタ識別子UIDに対応付けられる識別子であり、管理サーバ500によって決定される。メールアドレスMAは、メール印刷に用いられるメールアドレスであり、印刷サーバ400によって決定される。本実施例では、メールアドレスMAは、「mail@example.com」のように、「@」よりも前の「ローカル部」と、「@」よりも後の「ドメイン」と、を用いて表現される。上記の例では、ローカル部は「mail」であり、ドメインは「example.com」である。なお、
図2(A)の第1情報I1は、第1複合機100Aに対応付けられた情報を示し、第2情報I2は、第2複合機100Bに対応付けられた情報を示している。
【0034】
ジョブテーブルT42(
図2(B))は、印刷ジョブの管理に用いられるテーブルである。ジョブテーブルT42は、プリンタ識別子UIDと、管理識別子MIDと、ジョブ識別子JIDと、ファイル名FNと、URL(Uniform Resource Locatorの略)と、を含む複数の情報を、関連付けて格納する。ジョブ識別子JIDは、印刷ジョブを識別する情報である。ファイル名FNは、印刷用の画像データのファイル名である。URLは、印刷データにアクセスするための位置データの例である。以下、印刷データを示すURLを、位置データURLとも呼ぶ。本実施例では、位置データURLは、「http://example.com/pdir/data1」のように、「:」よりも前の「スキーム」と、「//」に続く「ホスト」と、「ホスト」に続く「パス」と、を用いて表現される。上記の例では、スキームは「http」であり、ホストは「example.com」であり、パスは「/pdir/data1」である。パスは、印刷サーバ400内の印刷データのファイル名を含み得る。スキームは、「https」、「ftps」、「sftp」などの他のスキームであってよい。情報JID、IMD、URLは、印刷サーバ400によって決定される。なお、
図2(B)の第3情報I3は、第1複合機100Aのための印刷ジョブを示している。第4情報I4は、第3情報I3に基づく印刷にエラーが生じた場合に生成される再印刷用のジョブを示している(詳細は後述)。第5情報I5は、後述する第2実施例で用いられる印刷ジョブを示している。
【0035】
管理テーブルT51(
図2(C))は、プリンタの管理に用いられるテーブルである。管理テーブルT51は、プリンタ識別子UIDと、管理識別子MIDと、モデル情報MDと、アクセストークンATKと、を含む複数の情報を、関連付けて格納する。モデル情報MDは、個々のプリンタのモデルを示す情報である。本実施例では、モデル情報MDは、複合機100の装置情報D1(
図1)に含まれている。以下、第1複合機100Aのモデル情報MDが「MD1」であり、第2複合機100Bのモデル情報MDが「MD2」であることとする。アクセストークンATKは、XMPPセッションの確立に用いられる情報であり、管理サーバ500によって決定される。なお、
図2(C)の第6情報I6は、第1複合機100Aに対応付けられた情報を示し、第7情報I7は、第2複合機100Bに対応付けられた情報を示している。
【0036】
A-2.印刷処理:
A-2-1.セッションの確立:
図3、
図4は、プリントサービスの処理の実施例を示すシーケンス図である。
図3、
図4は、第1複合機100Aが印刷に用いられる場合の処理の例を示している。
図3は、端末装置200と第1複合機100Aと印刷サーバ400と管理サーバ500とのそれぞれの処理を示している。
【0037】
S110では、複合機100AのCPU110は、管理サーバ500との通信セッションを確立する。本実施例では、XMPPセッションが確立される。XMPPセッションの確立方法は、任意の方法であってよい。本実施例では、確立方法は、以下の通りである。
【0038】
複合機100AのCPU110は、ユーザの指示に応じて、印刷サーバ400に登録要求を送信する。登録要求は、複合機100Aのプリンタ識別子u01を示すデータを含んでいる(
図2(A))。印刷サーバ400のCPU410は、登録要求に応じて、複合機100Aを用いるメール印刷のためのメールアドレスMA1を生成する。また、CPU410は、管理サーバ500に管理識別子MIDを要求する。管理サーバ500のCPU510は、新たな管理識別子m01を生成し、管理識別子m01を示すデータを、印刷サーバ400に送信する。印刷サーバ400のCPU410は、プリンタ識別子u01と管理識別子m01とメールアドレスMA1とを含む第1情報I1を、デバイステーブルT41に登録する。
【0039】
また、印刷サーバ400のCPU410は、管理サーバ500に、管理識別子m01に対応付けられたPIN(Personal Identification Numberの略)を要求する。管理サーバ500のCPU510は、新たなPINを生成し、生成したPINを示すデータを、管理識別子m01に対応付けて、記憶装置515(例えば、揮発性記憶装置520)に格納する。また、CPU510は、生成したPINを示すデータを、印刷サーバ400に送信する。印刷サーバ400のCPU410は、PINを示すデータを、第1複合機100Aに送信する。第1複合機100AのCPU110は、セッションの確立要求を管理サーバ500に送信する。確立要求は、第1複合機100Aのプリンタ識別子u01およびモデル情報MD1を示すデータと、PINを示すデータと、を含んでいる。管理サーバ500のCPU510は、第1複合機100AからのPINが、管理サーバ500によって生成済のPINと同じである場合に、確立要求の認証が成功したと判断して、処理を進める。仮に、確立要求に含まれるPINが、生成済のPINと異なる場合、CPU510は、XMPPセッションを確立せずに、処理を終了する。
【0040】
管理サーバ500のCPU510は、PINに対応付けられた管理識別子m01のための新たなアクセストークンATK1を生成する(
図2(C))。そして、プリンタ識別子u01と管理識別子m01とモデル情報MD1とアクセストークンATK1とを含む第6情報I6を、管理テーブルT51に登録する。そして、CPU510は、アクセストークンATK1を示すデータを、第1複合機100Aに送信する。第1複合機100AのCPU110は、アクセストークンATK1を用いて、管理サーバ500とのXMPPセッションを確立する。第1複合機100Aは、第1複合機100Aの電源が切られるまで、第1複合機100Aと管理サーバ500との間のXMPPセッションを維持する。プリンタと管理サーバ500との間のセッションが確立している場合、メール印刷が利用可能である。
【0041】
また、第1複合機100AのCPU110は、印刷サーバ400に、デバイステーブルT41の情報を要求する。この要求は、第1複合機100Aのプリンタ識別子u01を示すデータを含んでいる。印刷サーバ400のCPU410は、デバイステーブルT41からプリンタ識別子u01に対応付けられた情報(メールアドレスMA1を含む)を特定する。CPU410は、特定した情報を示すデータを、第1複合機100Aに送信する。第1複合機100AのCPU110は、ユーザの指示に応じて、メール印刷のための情報(メールアドレスMA1を含む)を、ユーザに提供する。例えば、CPU110は、メールアドレスMA1を表示部140に表示する。また、CPU110は、端末装置200に、メール印刷のための情報を送信してもよい。
【0042】
なお、管理サーバ500からプリンタへデータを送信するための構成は、XMPPセッションを用いる構成に代えて、他の任意の構成であってよい。例えば、管理サーバ500とプリンタとの間に、HTTPS(Hypertext Transfer Protocol Secureの略)に従ったセッションが確立されてもよい。
【0043】
A-2-2.メール印刷:
S120(
図3)では、ユーザは、メール印刷のための指示を、端末装置200に入力する。この指示は、プリンタの指定と、印刷対象の画像に対応する画像データの指定と、を含んでいる。ここで、ユーザが、第1複合機100Aを指定したこととする。端末装置200のCPU210は、ユーザの指示に応じて、第1複合機100Aに対応付けられたメールアドレスMA1宛の電子メールEMを、印刷サーバ400に送信する。電子メールEMは、印刷対象の画像に対応する画像データINDを含んでいる(画像データINDを、入力データINDとも呼ぶ)。このような電子メールEMは、印刷指示を示している。印刷サーバ400のCPU410は、受信した入力データINDを、記憶装置415(例えば、不揮発性記憶装置430)に格納する。
【0044】
S130では、印刷サーバ400のCPU410は、デバイステーブルT41(
図2(A))を参照し、電子メールEMのメールアドレスMA1に対応付けられた管理識別子m01を特定する。CPU410は、管理識別子m01に対応付けられたモデル情報MDを、管理サーバ500に要求する。S140では、管理サーバ500のCPU510は、管理テーブルT51(
図2(C))を参照し、管理識別子m01に対応付けられたモデル情報MD1を特定する。CPU510は、特定したモデル情報MD1を示すデータを、印刷サーバ400に送信する。
【0045】
S210では、印刷サーバ400のCPU410は、入力データINDを用いて、モデル情報MD1に適した印刷データPD1を生成する(以下、印刷データPD1を、第1印刷データPD1とも呼ぶ)。印刷データPD1は、モデル情報MD1に対応付けられたプリンタによって解釈可能なデータ形式を有している。CPU410は、生成した第1印刷データPD1を、記憶装置(本実施例では、不揮発性記憶装置430)に格納する。
【0046】
S215では、CPU410は、ジョブテーブルT42(
図2(B))に、ジョブ情報を格納する。このジョブ情報は、印刷データPD1を用いる印刷ジョブに関する情報である。ここで、
図2(B)の第3情報I3が、S215で格納されることとする。S215では、CPU410は、新たなジョブ識別子J01を生成する。また、CPU410は、ネットワーク上の印刷データPD1の位置を示すURLであるURL1を特定する。以下、特定されたURL1を、第1位置URL1とも呼ぶ。第1位置URL1は、不揮発性記憶装置430上の第1印刷データPD1の位置を示している。そして、CPU410は、プリンタ識別子u01と、管理識別子m01と、ジョブ識別子J01と、ファイル名FN1と、URL1と、を含むジョブ情報I3を、ジョブテーブルT42に格納する。なお、ファイル名FN1は、入力データINDのファイル名である。なお、プリンタ識別子u01と、管理識別子m01とは、デバイステーブルT41によって、メールアドレスMA1に対応付けられている(
図2(A))
【0047】
S220では、印刷サーバ400のCPU410は、印刷ジョブに関する情報を、管理サーバ500に提出する。具体的には、CPU410は、プリンタ識別子u01を示すデータとURL1を示すデータとを、管理サーバ500に送信する。S225では、管理サーバ500のCPU510は、XMPPセッションを用いて、プリンタ識別子u01に対応付けられる第1複合機100Aに、URL1を示すデータを送信する。このように、URL1を示すデータは、印刷サーバ400から、管理サーバ500を介して、第1複合機100Aへ送られる。従って、印刷サーバ400は、S220で、URL1を示すデータであって第1複合機100A宛のデータを送信している、といえる。また、S230で、管理サーバ500のCPU510は、印刷の提出が完了したことを、印刷サーバ400に通知する。
【0048】
S335では、第1複合機100AのCPU110は、印刷サーバ400に印刷データを要求する。この要求は、URL1を示すデータを含んでいる。本実施例では、CPU110は、URL1によって表される印刷データを要求する。S340では、印刷サーバ400のCPU410は、要求された印刷データPD1を、第1複合機100Aに送信する。第1複合機100AのCPU110は、受信した第1印刷データPD1を、記憶装置115(例えば、不揮発性記憶装置130)に格納する。S345では、第1複合機100AのCPU110は、受信した印刷データPD1に従って印刷実行部160を制御することによって、印刷データPD1に対応する画像を印刷実行部160に印刷させる。S350では、CPU110は、印刷データPD1に基づく印刷を中断すべきエラーが発生したか否かを判断する。このようなエラーとしては、例えば、紙詰まりが挙げられる。エラーが発生せずに、印刷データPD1に基づく印刷が完了した場合(S350:No)、メール印刷の処理(ひいては、
図3の処理)は、終了する。印刷の途中でエラーが発生した場合(S350:Yes)、CPU110は、S415(
図4)へ移行する。
【0049】
図4は、エラーが発生した場合の処理の例を示している。図中には、第1複合機100Aと印刷サーバ400と管理サーバ500とのそれぞれの処理が示されている。
【0050】
S415では、第1複合機100AのCPU110は、エラーが発生したページ印刷番号であるエラーページ印刷番号PN1を特定する(以下、「エラーページ印刷番号PN1」を、単に「エラー番号PN1」とも呼ぶ)。ここで、ページ印刷番号は、印刷される順番を示している。通常は、ページ印刷番号は、印刷物中でページに割り振られるページ番号と同じである。なお、印刷データは、印刷物の複数のページを、最後のページから順番に印刷するように構成されてよい(このような印刷は、逆順印刷とも呼ばれる)。この場合、ページ印刷番号の順番は、印刷物中でページに割り振られるページ番号の順番とは逆であり得る。なお、印刷サーバ400のCPU410は、印刷データを生成する場合に、逆順印刷を採用するか否かをモデル情報MDに基づいて決定してよい。
【0051】
S420では、第1複合機100AのCPU110は、エラー通知を、管理サーバ500に送信する。エラー通知は、第1複合機100Aにエラーが発生したことを示すデータと、エラー番号PN1を示すデータと、を含んでいる。S425では、管理サーバ500のCPU510は、エラー通知を、印刷サーバ400に送信する。このエラー通知も、エラーが発生したことを示すデータと、エラー番号PN1を示すデータと、を含んでいる。このように、エラー通知は、第1複合機100Aから管理サーバ500を介して印刷サーバ400へ送られる。従って、第1複合機100Aは、S420で、印刷サーバ400宛のエラー通知を送信している、といえる。なお、エラー通知は、さらに、印刷ジョブを特定する情報(例えば、第1位置URL1)を示すデータを含んでよい。
【0052】
S430では、印刷サーバ400のCPU410は、入力データINDを用いて、再印刷用の印刷データPD2を生成する(以下、印刷データPD2を、第2印刷データPD2とも呼ぶ)。そして、CPU410は、生成した第2印刷データPD2を、所定の記憶装置(本実施例では、不揮発性記憶装置430)に格納する。第2印刷データPD2は、エラー番号PN1のページから始まる印刷物を示している。
【0053】
図5は、印刷データPD1、PD2によって示される印刷物の例を示す説明図である。図中の上部には、第1印刷データPD1によって示される印刷物が示されている。
図5の例では、第1印刷データPD1は、第1ページP1から第6ページP6までの6枚のページを表している。印刷順は、第1ページP1-第6ページP6の順である。ここで、第3ページP3の印刷の途中に、エラーが発生したこととする。この場合、第1ページP1と第2ページP2の印刷は、適切に完了し、そして、第3ページP3の途中で、印刷が停止する。エラー番号PN1は、3である。図中の下部には、第2印刷データPD2によって示される印刷物が示されている。第2印刷データPD2は、エラー番号PN1以降のページで構成される印刷物を示している。
図5の例では、第2印刷データPD2は、第3ページP3から最後の第6ページP6までの4枚のページを表している。
【0054】
S435(
図4)では、印刷サーバ400のCPU410は、ジョブテーブルT42から、エラーに対応付けられた印刷ジョブの情報を、削除する。本実施例では、ジョブテーブルT42(
図2(B))の第3情報I3が、削除される。ここで、CPU410は、第1印刷データPD1を、記憶装置415から削除する。
【0055】
S440では、印刷サーバ400のCPU410は、印刷ジョブのキャンセル指示を、管理サーバ500に送信する。キャンセル指示は、処理対象のプリンタを特定する情報(例えば、プリンタ識別子u01)を示すデータを含んでいる。S445では、管理サーバ500のCPU510は、キャンセル指示を、処理対象のプリンタである第1複合機100Aに送信する。このように、キャンセル指示は、印刷サーバ400から管理サーバ500を介して第1複合機100Aへ送られる。従って、印刷サーバ400は、S440で、第1複合機100A宛のキャンセル指示を送信している、といえる。
【0056】
S450では、第1複合機100AのCPU110は、キャンセル指示に応じて、実行中の印刷ジョブをキャンセルする。これにより、第1印刷データPD1に基づく印刷が、キャンセルされる。このように、S440、S445のキャンセル指示は、第1印刷データPD1に基づく印刷をキャンセルするための指示である。また、本実施例では、CPU110は、第1印刷データPD1を記憶装置115から削除する。
【0057】
S455では、第1複合機100Aのエラーが解消される。エラーの解消は、ユーザによって行われてよい。例えば、ユーザは、詰まった用紙を第1複合機100Aから取り除くことによって、エラーを解消する。これに代えて、第1複合機100Aは、エラーを解消する装置を備えてよい。例えば、第1複合機100Aは、詰まった用紙を取り除く装置を備えてよい。
【0058】
なお、S450で印刷ジョブがキャンセルされているので、CPU110は、エラー解消後に、第1印刷データPD1に基づく印刷を行わない。
図5の例では、CPU110は、エラーが解消した場合であっても、第1印刷データPD1に基づく第4ページP4-第6ページP6の印刷を行わない。
【0059】
S460(
図4)では、第1複合機100AのCPU110は、エラーの解消に応じて、エラー解消通知を管理サーバ500に送信する。S465では、管理サーバ500のCPU510は、エラー解消通知を、印刷サーバ400に送信する。このように、エラー解消通知は、第1複合機100Aから管理サーバ500を介して印刷サーバ400へ送られる。従って、第1複合機100Aは、S460で、印刷サーバ400宛のエラー解消通知を送信している、といえる。
【0060】
S515では、印刷サーバ400のCPU410は、第2印刷データPD2を用いる印刷ジョブに関するジョブ情報を、ジョブテーブルT42(
図2(B))に格納する。
図2(B)の第4情報I4は、S515で格納されるジョブ情報の例である。S515の処理は、第1印刷データPD1に代えて第2印刷データPD2が用いられる点を除いて、S215(
図3)の処理と同じである。CPU410は、新たなジョブ識別子J02を生成し、第2印刷データPD2の位置を示すURLであるURL2を特定する。以下、特定されたURL2を、第2位置URL2とも呼ぶ。CPU410は、プリンタ識別子u01と、管理識別子m01と、ジョブ識別子J02と、ファイル名FN1と、URL2と、を含むジョブ情報I4を、ジョブテーブルT42に格納する。なお、入力データINDは、元の印刷ジョブと再印刷用のジョブとの間で、共通である。従って、再印刷用のジョブ情報I4のファイル名FN1は、元のジョブ情報I3のファイル名FN1と同じである。
【0061】
S520、S525、S530(
図4)は、元のジョブ情報I3に代えて再印刷用のジョブ情報I4が用いられる点を除いて、
図3のS220、S225、S230と、それぞれ同じである。S520では、印刷サーバ400のCPU410は、再印刷用の印刷ジョブに関する情報(第2位置URL2を示すデータを含む)を、管理サーバ500に提出する。S525では、管理サーバ500のCPU510は、第1複合機100Aに、再印刷用のURL2を示すデータを送信する。URL2を示すデータは、印刷サーバ400から、管理サーバ500を介して、第1複合機100Aへ送られる。従って、印刷サーバ400は、S520で、URL2を示すデータであって第1複合機100A宛のデータを送信している、といえる。また、S530では、管理サーバ500のCPU510は、印刷の提出が完了したことを、印刷サーバ400に通知する。
【0062】
S535、S540、S545は、元のURL1と第1印刷データPD1とに代えて再印刷用のURL2と第2印刷データPD2とが用いられる点を除いて、
図3のS335、S340、S345と、それぞれ同じである。S535では、第1複合機100AのCPU110は、URL2によって表される第2印刷データPD2を要求する。S540では、印刷サーバ400のCPU410は、要求された第2印刷データPD2を、第1複合機100Aに送信する。S545では、第1複合機100AのCPU110は、受信した第2印刷データPD2に従って印刷実行部160を制御することによって、第2印刷データPD2に対応する画像を印刷実行部160に印刷させる。
図5の例では、第2印刷データPD2に基づいて、第3ページP3から第6ページP6の4枚のページが印刷される。このように、第3ページP3の印刷の途中で紙詰まり等のエラーが生じた場合には、第2印刷データPD2に基づいて第3ページP3が再び印刷されるので、エラーに起因するページの欠落は、抑制される。
【0063】
第2印刷データPD2に基づく印刷の開始後、CPU110は、
図3のS350へ移行する。印刷を中断すべきエラーが発生せずに、第2印刷データPD2に基づく印刷が完了した場合(S350:No)、メール印刷の処理(ひいては、
図3の処理)は、終了する。印刷の途中でエラーが発生した場合(S350:Yes)、CPU110は、S415(
図4)へ移行する。そして、現行の印刷ジョブがキャンセルされ、新たな再印刷用の印刷ジョブの処理が、行われる。なお、第1複合機100AのCPU110は、印刷が完了した場合に、印刷が完了したことを示す完了通知を、印刷サーバ400、または、管理サーバ500に送信してよい。そして、印刷サーバ400のCPU410は、完了通知に応じて、印刷ジョブに関する情報を、記憶装置415から削除してよい。例えば、CPU410は、入力データINDと印刷データを、記憶装置415から削除する。また、CPU410は、完了した印刷ジョブの情報を、ジョブテーブルT42(
図2(B))から削除する。
【0064】
以上、第1複合機100Aが用いられる場合の処理について説明した。本実施例では、第2複合機100Bが用いられる場合も、同様に、処理が行われる。
【0065】
以上、
図3、
図4で説明したように、印刷サーバ400は、以下の処理を実行する。
(S210)第1印刷データPD1を生成する。
(S220)ネットワーク上の第1印刷データPD1の第1位置URL1を示す第1位置データであって、第1複合機100A宛の第1位置データを送信する。
(S340)第1位置データ(URL1)によって示されるデータの要求であって第1複合機100Aからの要求である第1データ要求に応じて、第1複合機100Aに第1印刷データPD1を送信する。
(S425)第1印刷データPD1に基づく印刷を中断すべきエラーが第1複合機100Aに発生したことと、エラーが発生したページの印刷順を示す番号であるエラー番号PN1と、を示すエラー通知を受信する。
(S430)エラー通知の受信に応じて、エラー番号PN1を用いて再印刷用の第2印刷データPD2を生成する。
(S465)エラーが解消したことを示すエラー解消通知を受信する。
(S520)エラー解消通知の受信に応じて、ネットワーク上の第2印刷データPD2の第2位置URL2を示す第2位置データであって、第1複合機100A宛の第2位置データを送信する、
(S540)第2位置データ(URL2)によって示されるデータの要求であって第1複合機100Aからの要求である第2データ要求に応じて、第1複合機100Aに第2印刷データPD2を送信する。
【0066】
このように、印刷サーバ400は、エラー通知の受信に応じてエラー番号PN1を用いて再印刷用の第2印刷データPD2を生成する。そして、印刷サーバ400は、エラー解消通知の受信に応じてネットワーク上の第2印刷データPD2の第2位置URL2を示す第2位置データであって第1複合機100A宛の第2位置データを送信する。従って、印刷サーバ400は、第1複合機100Aにエラーが発生した場合に、適切な印刷を第1複合機100Aに行わせることができる。
【0067】
また、印刷サーバ400は、S440(
図4)で、エラー通知の受信に応じて、第1印刷データPD1に基づく印刷をキャンセルするためのキャンセル指示であって、第1複合機100A宛のキャンセル指示を送信する。これにより、エラーの解消後に、エラー番号PN1より後の印刷順のページの第1印刷データPD1に基づく印刷は、抑制される。
【0068】
また、本実施例では、第2印刷データPD2は、エラー番号PN1のページのデータを含んでいる。第1複合機100Aは、第2印刷データPD2に基づいて、エラー番号PN1のページを印刷できる。従って、エラーに起因するページの欠落は、抑制される。
【0069】
また、本実施例では、第2印刷データPD2は、エラー番号PN1から後のページを示している。従って、第1複合機100Aは、第2印刷データPD2に基づいて、エラー番号PN1から後のページを印刷できる。
【0070】
また、
図4で説明したように、印刷サーバ400は、以下の処理を実行する。
(S430)エラー通知が受信された場合に、第2印刷データPD2を生成し、かつ、第2印刷データPD2を記憶領域(本実施例では、不揮発性記憶装置430)に格納する。
(S440)エラー通知が受信された場合に、キャンセル指示の送信を行う。
(S520)エラー解消通知が受信された場合に、記憶領域(本実施例では、不揮発性記憶装置430)上の第2印刷データPD2の第2位置URL2を示す第2位置データを送信する。
【0071】
これにより、印刷サーバ400は、第1印刷データPD1に基づく印刷がキャンセルされる場合に、第2印刷データPD2を用いる印刷のための処理を適切に進行できる。なお、キャンセル指示の送信(S440)は、第2印刷データPD2の生成(S430)を開始するよりも前に、行われてよい。
【0072】
また、
図1で説明したように、印刷サーバ400は、インターネットITを介して、第1複合機100Aに接続されている。印刷サーバ400は、第1複合機100Aと通信可能な管理サーバ500と、端末装置200と、通信可能である。印刷サーバ400は、端末装置200からの印刷指示(本実施例では、電子メールEM)に応じて、管理サーバ500を介して第1位置URL1を示す第1位置データを第1複合機100Aに送信する。このように、印刷サーバ400は、管理サーバ500を介して、適切に、第1複合機100Aに第1位置データを送信できる。例えば、第1複合機100Aがネットワークのファイヤウォールに守られている場合であっても、印刷サーバ400は、管理サーバ500を介して、第1複合機100Aにデータを送信できる。
【0073】
また、
図3、
図4で説明したように、第1複合機100Aは、以下の処理を実行する。
(S335)第1位置データ(URL1)によって示される第1印刷データPD1の要求である第1データ要求を印刷サーバ400に送信する。
(S420)第1印刷データPD1に基づく印刷を中断すべきエラーが第1複合機100Aに発生した場合に(S350:Yes)、エラーが第1複合機100Aに発生したことと、エラーが発生したページの印刷順を示す番号であるエラー番号PN1と、を示すエラー通知であって印刷サーバ400宛のエラー通知を送信する。
(S460)エラーが解消した場合に、エラーが解消したことを示す印刷サーバ宛のエラー解消通知を送信する。
(S535)第2位置データ(URL2)によって示される第2印刷データPD2の要求である第2データ要求を印刷サーバ400に送信する。
【0074】
システム1000は、このような第1複合機100Aを備えている。また、システム1000は、上記したように、S210、S220、S340、S425、S430、S465、S520、S540の処理を実行する印刷サーバ400を備えている。従って、システム1000は、第1複合機100Aにエラーが発生した場合であっても、適切な印刷を実行できる。例えば、第2印刷データPD2がエラー番号PN1のページを含む1以上のページの画像を示す場合、システム1000は、エラー番号PN1のページを、適切に印刷できる。
【0075】
B.第2実施例:
図6、
図7は、プリントサービスの処理の別の実施例を示すシーケンス図である。
図7は、
図6の続きの処理を示している。
図3、
図4の実施例との差異は、印刷サーバ400による印刷データの送信方法が異なる点である。
図3のS335、S340と
図4のS535、S540とでは、印刷サーバ400は、URLを示すデータ要求を受信し、URLによって特定される印刷データの全体を送信する(以下、この送信方法を、第1送信方法と呼ぶ)。
図6、
図7の実施例では、印刷サーバ400は、印刷データのうちの任意の部分の要求を受信し、印刷データのうちの要求された部分を送信する(以下、この送信方法を、第2送信方法と呼ぶ)。
【0076】
本実施例では、第1実施例と同様に、プリントサービスのために、
図1のシステム1000が利用されることとする。印刷サーバ400は、第1送信方法による送信と第2送信方法による送信との両方を実行可能である。印刷サーバ400は、プリンタによって選択された送信方法に従って、印刷データを送信する。第2複合機100Bは、印刷サーバが第1送信方法と第2送信方法との両方を利用可能である場合に、第2送信方法を要求する。
図6、
図7は、第2複合機100Bが印刷に用いられる場合の処理の例を示している。
図6、
図7は、端末装置200と第2複合機100Bと印刷サーバ400と管理サーバ500とのそれぞれの処理を示している。以下、第2複合機100Bの要素を、第1複合機100Aの対応する要素と同じ符号を用いて、参照する。例えば、第2複合機100BのCPUを、CPU110と呼ぶ。
【0077】
S110aでは、第2複合機100Bと管理サーバ500とが、XMPPセッションを確立する。S110aの処理は、
図3のS110の処理と同じである。
図2(A)の第2情報I2と
図2(C)の第7情報I7とは、S110aで格納される第2複合機100Bに関連する情報の例である。プリンタ識別子UIDは「u02」であり、管理識別子MIDは「m02」であり、メールアドレスMAは「MA2」であり、モデル情報MDは「MD2」であり、アクセストークンATKは「ATK2」である。
【0078】
S120a(
図6)では、端末装置200は、電子メールEMaを、印刷サーバ400に送信する。S120aと
図3のS120との間の差異は、S120aでは、ユーザが、第1複合機100Aではなく、第2複合機100Bを指定する点だけである。本実施例の電子メールEMaと
図3の電子メールEMとの差異は、電子メールEMaの宛先が、メールアドレスMA1ではなく、第2複合機100BのためのメールアドレスMA2である点だけである。
【0079】
S130a-S215aの処理は、
図3のS130-S215の処理と、それぞれ同様に行われる。S130aでは、印刷サーバ400のCPU410は、メールアドレスMA2に対応付けられた管理識別子m02を特定し、管理識別子m02に対応付けられたモデル情報MDを、管理サーバ500に要求する。S140aでは、管理サーバ500のCPU510は、管理識別子m02に対応付けられたモデル情報MD2を示すデータを、印刷サーバ400に送信する。S210aでは、印刷サーバ400のCPU410は、モデル情報MD2に適した印刷データPD3を生成する(以下、印刷データPD3を、第3印刷データPD3とも呼ぶ)。CPU410は、生成した第3印刷データPD3を、記憶装置(本実施例では、不揮発性記憶装置430)に格納する。
【0080】
S215aでは、CPU410は、第3印刷データPD3を用いる印刷ジョブに関するジョブ情報を、ジョブテーブルT42(
図2(B))に格納する。
図2(B)の第5情報I5は、S215aで格納される情報の例である。CPU410は、新たなジョブ識別子J03を生成し、第3印刷データPD3の位置を示すURLであるURL3を特定する。以下、特定されたURL3を、第3位置URL3とも呼ぶ。CPU410は、プリンタ識別子u02と、管理識別子m02と、ジョブ識別子J03と、ファイル名FN2と、URL3と、を含むジョブ情報I5を、ジョブテーブルT42に格納する。ファイル名FN2は、入力データ(ここでは、入力データIND)のファイル名である。
【0081】
S220a(
図6)では、印刷サーバ400のCPU410は、印刷ジョブに関する情報を、管理サーバ500に提出する。本実施例では、CPU410は、プリンタ識別子u02を示すデータとURL3を示すデータとに加えて、機能情報FIを示すデータを、管理サーバ500に送信する。機能情報FIは、印刷サーバ400が利用可能な送信方法を示している。本実施例では、機能情報FIは、第1送信方法と第2送信方法とが利用可能であることを示している。
【0082】
S225a(
図7)では、管理サーバ500のCPU510は、XMPPセッションを用いて、プリンタ識別子u02に対応付けられる第2複合機100Bに、URL3を示すデータと機能情報FIを示すデータとを送信する。このように、URL3を示すデータは、印刷サーバ400から、管理サーバ500を介して、第2複合機100Bへ送られる。従って、印刷サーバ400は、S220a(
図6)で、URL3を示すデータであって第2複合機100B宛のデータを送信している、といえる。また、S230では、管理サーバ500のCPU510は、印刷の提出が完了したことを、印刷サーバ400に通知する。
【0083】
S610では、第2複合機100BのCPU110は、機能情報FIを参照して、第2送信方法が利用可能であるか否かを判断する。仮に、第2送信方法が利用可能ではない場合(S610:No)、CPU110は、S335(
図3)へ移行する。そして、
図3、
図4の実施例と同様に、メール印刷の処理が行われる。
【0084】
本実施例では、第2送信方法が利用可能である(S610:Yes)。この場合、CPU110は、第3印刷データPD3の一部分のデータ要求を複数回行うことによって、第3印刷データPD3の全体を取得する。CPU110は、第3印刷データPD3を、先頭から一部分ずつ取得する。S615で、第2複合機100BのCPU110は、部分特定情報50を決定する。部分特定情報50は、印刷データのうちの次回のデータ要求による取得対象の部分である対象部分データを示している。対象部分データとしては、第3印刷データPD3のうちの印刷が未完了である部分の少なくとも一部が、採用される。
【0085】
部分特定情報50の形式は、任意の形式であってよい。本実施例では、部分特定情報50は、オフセットOFSと長さLENとで構成されている。オフセットOFSは、印刷データ内での対象部分データの開始位置を示し、長さLENは、対象部分データのデータ長を示している。オフセットOFSと長さLENとのそれぞれの単位は、例えば、byteである。本実施例では、CPU110は、長さLENを、予め決められた値に設定する。また、CPU110は、オフセットOFSを、印刷データの未取得部分のうちの印刷データの先頭に最も近い部分の位置に設定する。例えば、1回目のデータ要求のためのオフセットOFSは、「1(すなわち、印刷データの先頭)」に設定される。2回目のデータ要求のためのオフセットOFSは、「1+LEN」に設定される。なお、長さLENは、可変値であってよい。例えば、CPU110は、長さLENを、他のパラメータ(例えば、第3印刷データPD3のサイズ)に応じて、調整してよい。
【0086】
S620では、CPU110は、印刷サーバ400に対象部分データを要求する。この要求は、URL3を示すデータと、部分特定情報50(本実施例では、オフセットOFSと長さLEN)を示すデータと、を含んでいる。S625では、印刷サーバ400のCPU410は、URL3によって特定される第3印刷データPD3のうち、部分特定情報50によって特定される対象部分データPDPを、第2複合機100Bに送信する。第2複合機100BのCPU110は、受信した対象部分データPDPを、記憶装置115(例えば、不揮発性記憶装置130)に格納する。
【0087】
S630では、第2複合機100BのCPU110は、受信した対象部分データPDPに従って印刷実行部160を制御することによって、対象部分データPDPに対応する画像を印刷実行部160に印刷させる。
【0088】
S635では、CPU110は、対象部分データPDPに基づく印刷を中断すべきエラーが発生したか否かを判断する。エラーが発生せずに、対象部分データPDPに基づく印刷が完了した場合(S635:No)、S655で、CPU110は、第3印刷データPD3の全体の印刷が完了したか否かを判断する。S655の判断方法は、任意の方法であってよい。例えば、第3印刷データPD3の末尾に、印刷データの末尾を示す末尾データが設けられてよい。CPU110は、印刷済の対象部分データPDPから末尾データが検出される場合に、第3印刷データPD3の全体の印刷が完了したと判断できる。また、CPU110は、印刷サーバ400に、第3印刷データPD3のデータサイズを問い合わせてよい。そして、印刷済の1以上の対象部分データPDPの合計サイズ(重複部分を除く)が、第3印刷データPD3のデータサイズと同じである場合に、CPU110は、第3印刷データPD3の全体の印刷が完了したと判断できる。
【0089】
第3印刷データPD3の全体の印刷が完了した場合(S655:Yes)、メール印刷の処理(ひいては、
図6、
図7の処理)は、終了する。なお、第2複合機100BのCPU110は、印刷が完了した場合に、印刷が完了したことを示す完了通知を、印刷サーバ400、または、管理サーバ500に送信してよい。そして、印刷サーバ400のCPU410は、完了通知に応じて、印刷ジョブに関する情報を、記憶装置415から削除してよい。
【0090】
第3印刷データPD3に未処理の部分が残っている場合(S655:No)、第2複合機100BのCPU110は、S615へ移行し、次の対象部分データPDPのための処理を実行する。
【0091】
図8は、第3印刷データPD3と対象部分データPDPとページとの関係の例を示す説明図である。図中では、第3印刷データPD3が、1個の矩形で示されている。この矩形において、左端は先頭を示し、右端は末尾を示している。図示するように、第3印刷データPD3内では、第1ページP1-第6ページP6のそれぞれのデータが、第3印刷データPD3の先頭から末尾に向かって順番に並んでいる。開始位置DSP1-DSP6は、第1ページP1-第6ページP6のデータの開始位置を、それぞれ示している。終了位置DEP1-DEP6は、第1ページP1-第6ページP6のデータの終了位置を、それぞれ示している。
【0092】
図中には、複数回のデータ要求(
図7:S620)によって取得される複数の対象部分データPDP1-PDP4が示されている。符号中の「PDP」に続く数字は、対象部分データPDPの取得順番を示している。第1対象部分データPDP1は、1回目のデータ要求に応じて取得されたデータであり、第2対象部分データPDP2は、2回目のデータ要求に応じて取得されたデータである。
図8の例では、第1対象部分データPDP1は、第1ページP1の先頭から途中までを示している。第2対象部分データPDP2は、第1ページP1の途中から第2ページP2の途中までを示している。ここで、第2対象部分データPDP2に基づく第2ページP2の印刷の途中で、エラーErrが発生したこととする。
【0093】
印刷を中断すべきエラーが発生した場合(
図7:S635:Yes)、S640で、第2複合機100Bのエラーが解消される。エラーの解消は、
図4のS455と同様に行われる。
【0094】
S645(
図7)では、第2複合機100BのCPU110は、エラーが発生したページのデータの開始位置DSPを特定する。
図8のように第2ページP2の印刷中にエラーErrが発生した場合、CPU110は、第2ページP2の第2開始位置DSP2を採用する。CPU110は、取得済の対象部分データを解析することによって、エラーが発生したページのデータの開始位置DSPを特定できる。
【0095】
S650(
図7)では、CPU110は、部分特定情報50を決定する。本実施例では、オフセットOFSを、S645で特定された開始位置DSPに決定する。
図8の例では、オフセットOFSは、第2開始位置DSP2に決定される。また、CPU110は、長さLENを決定する(本実施例では、長さLENは、所定値に決定される)。
【0096】
S650の後、CPU110は、S620へ移行する。そして、新たな部分特定情報50に基づく対象部分データPDPの取得(S620、S625)と対象部分データPDPに基づく印刷(S630)とを行う。
図8の例では、第2対象部分データPDP2に基づく第2ページP2の印刷中に、エラーErrが発生している。このエラーErrの発生後、S650(
図7)で、オフセットOFSが第2開始位置DSP2に決定される。従って、3回目のデータ要求によって取得される第3対象部分データPDP3は、第2ページP2の先頭から始まっている(なお、
図8の例では、第3対象部分データPDP3は、第2ページP2の先頭から途中までの部分を示している)。以後、CPU110は、印刷が完了するまで、対象部分データPDPの取得(S620、S625)と対象部分データPDPに基づく印刷(S630)とを繰り返す。
図8の例では、第4対象部分データPDP4は、第2ページP2のうちの残りの部分と、第3ページP3の一部と、を示している。対象部分データPDP3、PDP4に基づいて、第2ページP2が印刷される。このように、第2ページP2の印刷の途中で紙詰まり等のエラーが生じた場合には、第3対象部分データPDP3を含む1以上の対象部分データPDPに基づいて第2ページP2が再び印刷されるので、エラーに起因するページの欠落は、抑制される。なお、第3対象部分データPDP3は、第2ページP2の全体を示してもよい。
【0097】
以上、第2複合機100Bが用いられる場合の処理について、説明した。第1複合機100Aは、印刷サーバが第1送信方法と第2送信方法との両方を利用可能であっても、第1送信方法を要求する。例えば、第1複合機100AのCPU110は、S225a(
図7)で管理サーバ500から位置データ(URL)を受信した場合に、機能情報FIに拘わらずに、S335(
図3)へ移行してよい。
【0098】
以上のように、本実施例では、印刷サーバ400は、第1送信方法に加えて、第1送信方法とは異なる第2送信方法を利用可能である。S540(
図4)では、印刷サーバ400は、第1送信方法に従って第1複合機100Aに印刷データを送信する。S340(
図3)についても、同様である。また、S625(
図7)では、印刷サーバ400は、第2送信方法に従って、第2複合機100Bに印刷データを送信する。このように、印刷サーバ400は、第1複合機100Aと第2複合機100Bとに、互いに異なる送信方法で、印刷データを送信できる。
【0099】
第2送信方法は、印刷データのうちの要求された任意の部分を送信する方法である。そして、S625(
図7)では、印刷サーバ400は、第3印刷データPD3のうちの第2複合機100Bによって要求された部分を第2複合機100Bに送信する。従って、印刷サーバ400は、第3印刷データPD3のうちの第2複合機100Bによって要求された部分を、送信すべきデータとして利用できる。印刷の途中でエラーが発生した場合であっても、再印刷用の印刷データの生成は、省略可能である。
【0100】
また、
図6、
図7で説明したように、印刷サーバ400と第2複合機100Bとは、以下の処理を実行する。
(S210a)印刷サーバ400は、第3印刷データPD3を生成する。
(S220a)印刷サーバ400は、ネットワーク上の第3印刷データPD3の第3位置URL3を示す第3位置データであって、第2複合機100B宛の第3位置データを送信する。
(S620)第2複合機100Bは、第3位置データ(URL3)によって示される第3印刷データPD3のうちの印刷が未完了である部分の少なくとも一部である対象部分データPDP2の要求である第3データ要求を印刷サーバ400に送信する。
(S625)印刷サーバ400は、第2複合機100Bからの第3データ要求に応じて、第2複合機100Bに第3印刷データPD3のうちの対象部分データPDP2を送信する。
(S645、S650)第2複合機100Bは、対象部分データPDP2に基づく印刷を中断すべきエラーが第2複合機100Bに発生した場合に、次に要求すべき対象部分データである対象部分データPDP3を、エラーが発生したページを用いて特定する。
(S620)第2複合機100Bは、第3印刷データPD3のうちの対象部分データ(PDP3)の要求である第4データ要求を印刷サーバ400に送信する。
(S625)印刷サーバ400は、第2複合機100Bからの第4データ要求に応じて、第3印刷データPD3のうちの対象部分データPDP3を、第2複合機100Bに送信する。
【0101】
このように、印刷サーバ400は、第3印刷データPD3のうちの第2複合機100Bによって要求された部分を、送信すべきデータとして利用できる。印刷の途中でエラーが発生した場合であっても、再印刷用の印刷データの生成は、省略可能である。
【0102】
また、印刷のエラーが生じた場合には、第2複合機100Bは、第3印刷データPD3のうちエラーが発生したページの先頭に対応するデータ位置から始まる部分を、次に要求すべき対象部分データとして採用する。
図8の例では、第2ページP2の第2開始位置DSP2から始まる第3対象部分データPDP3が、採用される。従って、第2複合機100Bは、エラーが発生したページを、適切に印刷できる。
【0103】
C.第3実施例:
図9は、プリントサービスの処理の別の実施例を示すフローチャートである。本実施例では、
図9に示すS426-S428の処理が、
図4のS425とS430との間に挿入される。本実施例では、プリントサービスのために、
図1のシステム1000が利用されることとする。ここで、第1複合機100Aの印刷モードは、「片面印刷」と「両面印刷」とから選択可能であることとする。「片面印刷」は、用紙の一方側の面のみに画像を印刷する印刷方式である。「両面印刷」は、用紙の一方側の面と反対側の面との両方に画像を印刷する印刷方式である。第1複合機100Aの印刷実行部160は、「片面印刷」と「両面印刷」とを実行できるように、構成されている。
図3のS120では、ユーザは、印刷モードを選択する。端末装置200のCPU210は、選択された印刷モードを示すデータを含む電子メールEMを、印刷サーバ400に送信する。S210、S430(
図4)では、印刷サーバ400のCPU410は、印刷モードに適した印刷データを生成する。印刷データは、「片面印刷」と「両面印刷」とのいずれで印刷すべきかを示すデータを含んでいる。エラーが発生した場合、CPU410は、
図9の処理を実行することによって、再印刷用の印刷データの最初のページを印刷モードに応じて調整する。
【0104】
S426では、CPU410は、第1印刷データPD1が両面印刷用のデータであるか否かを判断する。本実施例では、CPU410は、印刷モードが「両面印刷」である場合に、第1印刷データPD1が両面印刷用のデータであると判断する。なお、判断方法は、他の任意の方法であってよい。例えば、CPU410は、第1印刷データPD1を解析することによって、第1印刷データPD1が両面印刷用のデータであるか否かを判断してよい。
【0105】
第1印刷データPD1が片面印刷用のデータである場合(S426:No)、CPU410は、S430へ移行する。この場合の処理は、第1実施例の処理と同じである。
【0106】
第1印刷データPD1が両面印刷用のデータである場合(S426:Yes)、S427で、CPU410は、エラー番号PN1が偶数であるか否かを判断する。エラー番号PN1が偶数である場合(S427:Yes)、S428で、CPU410は、エラー番号PN1から1を減算し、そして、S430へ移行する。
【0107】
図10は、印刷データPD1、PD2によって示される印刷物の例を示す説明図である。ここで、印刷モードは「両面印刷」であることとしている。図中の上部には、第1印刷データPD1によって示される印刷物が示されている。第1印刷データPD1は、第1ページP1から第6ページP6までの6枚のページを表している。第1ページP1は、第1用紙SH1の表面に印刷され、第2ページP2は、同じ第1用紙SH1の裏面に印刷される。第3ページP3は、第2用紙SH2の表面に印刷され、第4ページP4は、同じ第2用紙SH2の裏面に印刷される。同様に、第5ページP5と第6ページP6は、同じ用紙に印刷されることが想定されている。ここで、第4ページP4の印刷の途中に、エラーが発生したこととする。この場合、第2用紙SH2が不具合を有している。エラーを解消するために、第2用紙SH2は、取り除かれ得る。また、S425(
図9)で通知されるエラー番号PN1は「4」である。CPU410は、S427では、エラー番号PN1が偶数であると判断し(S427:Yes)、S428では、エラー番号PN1から1を減算する。調整されたエラー番号PN1は、「3」である。この場合、S430(
図4)では、CPU410は、調整されたエラー番号PN1(=3)に基づいて、第3ページP3から始まる印刷物を示す第2印刷データPD2を生成する。
【0108】
図10の下部には、第2印刷データPD2によって示される印刷物が示されている。第2印刷データPD2は、調整されたエラー番号PN1以降のページで構成される印刷物を示している。
図10の例では、第2印刷データPD2は、第3ページP3から最後の第6ページP6までの4枚のページを表している。
図4のS545では、第1複合機100Aは、第2印刷データPD2に基づいて印刷を行う。
図10に示すように、第3ページP3は、新たな第3用紙SH3の表面に印刷され、第4ページP4は、同じ第3用紙SH3の裏面に印刷される。第5ページP5は、第4用紙SH4の表面に印刷され、第6ページP6は、同じ第4用紙SH4の裏面に印刷される。このように、1枚の用紙の表のページと裏のページとの適切な組み合わせは、維持される。仮に、エラー番号PN1が調整されない場合、第2印刷データPD2は、第4ページP4から始まる印刷物を示す。この場合、第4ページP4と第5ページP5とが同じ用紙に印刷される。ページのこのような組み合わせは、意図されたものではない。本実施例では、このような意図されない組み合わせは、抑制される。
【0109】
S425で通知されるエラー番号PN1が奇数である場合(S427:No)、CPU410は、エラー番号PN1を調整せずに、S430へ移行する。例えば、エラー番号PN1が「3」である場合、S430(
図4)では、CPU410は、エラー番号PN1(=3)に基づいて、第3ページP3から始まる印刷物を示す第2印刷データPD2を生成する。この場合も、1枚の用紙の表のページと裏のページとの適切な組み合わせは、維持される。
【0110】
以上のように、本実施例では、印刷サーバ400は、再印刷用の印刷データPD2を生成するために、以下の処理を実行する。
(S426、S427)第1印刷データPD1が両面印刷用のデータである場合に、エラーページ印刷番号PN1が偶数であるか否かを判断する。
(S428、S430)エラーページ印刷番号PN1が偶数である場合には、エラーページ印刷番号PN1の1つ前の印刷順のページから始まる印刷物を示す第2印刷データPD2を生成する。
これにより、印刷サーバ400は、表のページと裏のページとの誤った組み合わせが同じ印刷媒体上に印刷されることを、抑制できる。
【0111】
【0112】
D.変形例:
(1)印刷を中断すべきエラーは、紙詰まりに限らず、印刷材不足などの他の種々のエラーであってよい。
【0113】
(2)エラーが発生した場合に用いられる再印刷用の印刷データは、エラー番号PN1を用いて準備される種々のデータであってよい。例えば、
図4の実施例において、S430で生成される再印刷用の第2印刷データPD2は、少なくともエラー番号PN1のページを示すことが好ましい。これにより、エラー番号PN1のページの欠落は、抑制される。また、第2印刷データPD2は、エラー番号PN1のページと、未印刷の全てのページと、を示すことが好ましい。すなわち、第2印刷データPD2は、エラー番号PN1以降のページ印刷番号の全てのページを示すことが好ましい。これにより、エラーが発生した場合であっても、適切な印刷が可能である。
【0114】
また、
図7の実施例において、エラーの解消後には、少なくともエラー番号PN1のページを示す1以上の対象部分データPDPが印刷に用いられることが好ましい。これにより、エラー番号PN1のページの欠落は、抑制される。また、エラーの解消後には、エラー番号PN1のページと、未印刷の全てのページと、を示す1以上の対象部分データPDPが印刷に用いられることが好ましい。これにより、エラーが発生した場合であっても、適切な印刷が可能である。
【0115】
(3)印刷処理は、
図3、
図4の処理と、
図6、
図7の処理と、
図9の処理とに限らず、他の種々の処理であってよい。例えば、
図3、
図4の実施例において、第1複合機100AのCPU110は、エラーが発生した場合には、外部からのキャンセル指示が無くても、印刷をキャンセルしてよい。この場合も、第1複合機100AのCPU110は、エラーが解消した場合には、エラー解消通知を送信することが好ましい(
図4:S460)。これにより、印刷サーバ400は、エラーが解消した後に、第1複合機100Aに第2印刷データPD2を提供できる。
【0116】
また、
図6、
図7の実施例において、第2複合機100Bの印刷モードは、「片面印刷」と「両面印刷」とから選択可能であってよい。そして、S650(
図7)では、第2複合機100BのCPU110は、印刷モードに応じて、部分特定情報50を調整してよい。例えば、エラーが発生したページのページ印刷番号が偶数である場合、CPU110は、オフセットOFSを、エラーが発生したページの1つ前の印刷順のページの開始位置DSPに決定してよい。これにより、
図10の実施例と同様に、印刷サーバ400は、表のページと裏のページとの誤った組み合わせが同じ印刷媒体上に印刷されることを、抑制できる。エラーが発生したページのページ印刷番号が奇数である場合、CPU110は、オフセットOFSを、エラーが発生したページの開始位置DSPに決定してよい。
【0117】
また、
図6、
図7の実施例において、第2送信方法を用いるか否かの判断を、印刷サーバ400が行ってもよい。例えば、印刷サーバ400のCPU410は、プリンタに、第2送信方法に適したデータ要求を送信可能か否かを問合せてよい。そして、CPU410は、プリンタが第2送信方法に適したデータ要求を送信可能である場合に、第2送信方法に適したデータ要求を受け付け、プリンタが第2送信方法に適したデータ要求を送信できない場合に、第1送信方法に適したデータ要求を受け付けてよい。これに代えて、印刷サーバ400のCPU410は、プリンタのモデル情報MDに予め対応付けられた送信方法に従って、プリンタに印刷データを送信してよい。
【0118】
(4)印刷サーバ400に画像データを含む印刷指示を送信する方法は、電子メールを用いる方法に代えて、他の任意の方法であってよい。例えば、印刷サーバ400は、印刷指示を受信するためのAPI(Application Programming Interfaceの略)を提供してよい。端末装置200は、このAPIを用いて、印刷指示を送信してよい。
【0119】
(5)印刷サーバ400から印刷データを取得する方法は、URLを用いる方法に代えて、他の任意の方法であってよい。例えば、印刷サーバ400は、印刷データを送信するためのAPIを提供してよい。プリンタは、このAPIを用いて、印刷データを取得してよい。
【0120】
(6)印刷に用いられるプリンタの構成は、複合機100(
図1)の構成に代えて、他の種々の構成であってよい。例えば、読取実行部170は、省略されてよい。すなわち、プリンタは、単機能の印刷装置であってよい。また、印刷に用いられる印刷媒体は、用紙に限らず、樹脂シートなどの種々のシートであってよい。
【0121】
(7)印刷サーバの構成は、
図1の印刷サーバ400の構成に代えて、他の種々の構成であってよい。例えば、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、全体として、印刷サーバ400の機能を提供してよい。この場合、これら複数の装置を備えるシステムが、印刷サーバに対応する。例えば、第1装置が印刷データを生成し、第2装置が印刷データを送信してよい。また、管理サーバの構成は、
図1の管理サーバ500の構成に代えて、他の種々の構成であってよい。例えば、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、全体として、管理サーバ500の機能を提供してよい。この場合、これら複数の装置を備えるシステムが、管理サーバに対応する。また、1つのサーバ装置が、印刷サーバ400の機能と管理サーバ500の機能を提供してよい。この場合、印刷サーバ400と管理サーバ500との間の通信は、省略される。
【0122】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、
図3のS210の印刷データを生成する機能を、専用のハードウェア回路によって実現してもよい。
【0123】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0124】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0125】
50…部分特定情報、100…複合機、100A…第1複合機、100B…第2複合機、110、210、410、510…CPU、115、215、415、515…記憶装置、120、220、420、520…揮発性記憶装置、130、230、430、530…不揮発性記憶装置、140、240…表示部、150、250…操作部、160…印刷実行部、170…読取実行部、180、280、480、580…通信インタフェース、200…端末装置、400…印刷サーバ、500…管理サーバ、1000…システム、LN…ローカルエリアネットワーク、IT…インターネット