(57)【要約】【課題】プリンタでエラーが発生した場合に，迅速にリカバリ印刷を開始できる印刷ドライバプログラムおよび情報処理装置を提供すること。【解決手段】印刷ドライバプログラム１１０は，プリンタ２００に対して所定単位の印刷データの送信を開始した後（Ｓ１０４），その所定単位の印刷データについて基準時間内に送信が完了したか否かを判断する（Ｓ１０７）。そして，その所定単位の印刷データの送信が基準時間内に完了していないと判断した場合に（Ｓ１０７：ＮＯ），その所定単位の印刷データをプリンタ２００に再送する（Ｓ１２０）。【選択図】            図４
2013092829.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置と接続する情報処理装置に，
印刷データを所定単位ずつ前記印刷装置に送信する送信処理と，
前記送信処理により，前記所定単位の印刷データが基準時間内に送信されたか否かを判断する判断処理と，
前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断された場合，当該印刷データを前記印刷装置に再送する再送処理と，
を実行させることを特徴とする印刷ドライバプログラム。
【請求項２】
請求項１に記載する印刷ドライバプログラムにおいて，
前記情報処理装置から前記印刷装置に送信される印刷データの，単位時間あたりの送信データ量によって求められる通信量を計測する計測処理を実行させ，
前記再送処理は，前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断され，さらに前記計時処理によって判断時の前記通信量が０と計測された場合には，前記送信処理によって送信した前記所定単位の印刷データと同じデータを再送することを特徴とする印刷ドライバプログラム。
【請求項３】
請求項１または請求項２に記載する印刷ドライバプログラムにおいて，
前記情報処理装置から前記印刷装置に送信される印刷データの，単位時間あたりの送信データ量によって求められる通信量を計測する計測処理を実行させ，
前記再送処理は，前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断され，さらに前記計測処理によって判断時の前記通信量が０よりも大きい値と計測された場合には，前記基準時間内に印刷データの送信が完了するように当該所定単位の印刷データを加工する加工処理を実行し，加工処理後のデータを再送することを特徴とする印刷ドライバプログラム。
【請求項４】
請求項３に記載する印刷ドライバプログラムにおいて，
前記加工処理では，前記送信処理によって送信された印刷データの圧縮率よりも高い圧縮率で圧縮することを特徴とする印刷ドライバプログラム。
【請求項５】
請求項４に記載する印刷ドライバプログラムにおいて，
前記加工処理では，前記所定単位の印刷データのうち，送信済みデータのデータサイズを取得し，そのデータサイズに基づいて前記印刷データの圧縮率を決定することを特徴とする印刷ドライバプログラム。
【請求項６】
請求項３または請求項４に記載する印刷ドライバプログラムにおいて，
前記加工処理では，前記送信処理によって送信された印刷データの解像度よりも低い解像度に加工することを特徴とする印刷ドライバプログラム。
【請求項７】
請求項６に記載する印刷ドライバプログラムにおいて，
前記加工処理では，前記所定単位の印刷データのうち，送信済みデータのデータサイズを取得し，そのデータサイズに基づいて前記印刷データの解像度を決定することを特徴とする印刷ドライバプログラム。
【請求項８】
請求項１から請求項７のいずれか１つに記載する印刷ドライバプログラムにおいて，
１ページ目の印刷データに対応する前記基準時間は，それ以外のページの印刷データに対応する前記基準時間よりも長いことを特徴とする印刷ドライバプログラム。
【請求項９】
請求項１から請求項８のいずれか１つに記載する印刷ドライバプログラムにおいて，
両面印刷のジョブの印刷データの前記基準時間は，片面印刷のジョブの印刷データの前記基準時間よりも長いことを特徴とする印刷ドライバプログラム。
【請求項１０】
請求項１から請求項９のいずれか１つに記載する印刷ドライバプログラムにおいて，
前記情報処理装置から前記印刷装置に送信される印刷データの，単位時間あたりの送信データ量によって求められる通信量を計測する計測処理と，
前記判断処理にて前記所定単位の印刷データが基準時間内に送信されていないと判断され，さらに前記計測処理によって判断時の前記通信量が０よりも大きい値と計測された場合には，前記印刷装置に対して印刷速度を遅くする要求を出力する要求処理と，
を実行させることを特徴とする印刷ドライバプログラム。
【請求項１１】
印刷データを所定単位ずつ印刷装置に送信する送信部と，
前記送信部により，前記所定単位の印刷データが基準時間内に送信されたか否かを判断する判断部と，
前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断された場合，当該印刷データを前記印刷装置に再送する再送処理部と，
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，印刷データを印刷装置に送信する印刷ドライバプログラムおよび情報処理装置に関する。さらに詳細には，印刷エラーが生じた際にリカバリ印刷を行う印刷ドライバプログラムおよび情報処理装置に関するものである。
【背景技術】
【０００２】
従来から，パーソナルコンピュータ（ＰＣ）等の情報処理装置で印刷データを作成し，その印刷データをプリンタに送信し，プリンタでその印刷データを印刷する印刷システムが知られている。このような印刷システムには，プリンタ側で用紙ジャムやメモリオーバーラン等のエラーによって印刷が実行できなくなった場合，プリンタからＰＣにエラーを通知し，その通知を受け取ったＰＣが印刷データを再送することでリカバリ印刷を行うものがある。
【０００３】
リカバリ印刷の技術を開示した文献としては，例えば特許文献１がある。特許文献１には，ページプリンタでエラーが発生した際，ページプリンタがエラーフラグをホストに送信し，エラーフラグを受信したホストは解像度を落としたページデータを再送するページプリントシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２６１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら，前記した従来の技術には，次のような問題があった。すなわち，情報処理装置としては，プリンタでエラーが発生した後，プリンタからの通知を受信してから印刷データを再送する。そのため，プリンタ側でリカバリ印刷を開始するまでに時間がかかる。
【０００６】
本発明は，前記した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは，プリンタでエラーが発生した場合に，迅速にリカバリ印刷を開始できる印刷ドライバプログラムおよび情報処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
この課題の解決を目的としてなされた印刷ドライバプログラムは，印刷装置と接続する情報処理装置に，印刷データを所定単位ずつ前記印刷装置に送信する送信処理と，前記送信処理により，前記所定単位の印刷データが基準時間内に送信されたか否かを判断する判断処理と，前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断された場合，当該印刷データを前記印刷装置に再送する再送処理とを実行させることを特徴としている。
【０００８】
本発明の印刷ドライバプログラムは，印刷装置に対して所定単位の印刷データの送信を開始した後，その所定単位の印刷データが基準時間内に送信されたか否かを判断し，所定単位の印刷データが基準時間内に送信されていないと判断した場合に，その印刷データを印刷装置に再送する。所定単位としては，１ページあるいは複数ページごとであっても，１ジョブごとであってもよい。また，１ラインあるいは複数ラインごとであってもよい。基準時間は，固定値であってもよいし，印刷装置の処理能力や印刷データ等に応じて変更される可変値であってもよい。
【０００９】
すなわち，本発明の印刷ドライバプログラムでは，印刷ドライバプログラム自身（情報処理装置自身）が，印刷データを再送するか否かを決定する。そのため，印刷装置でエラーが発生した状況において，印刷装置からの通知を待つことなく印刷ドライバプログラム自身の判断で印刷データの再送を開始できる。従って，印刷装置から再送の要求を受け取ってから印刷データを再送する場合と比較して，迅速にリカバリ印刷を実行することが期待できる。
【００１０】
また，本発明の印刷ドライバプログラムは，前記情報処理装置から前記印刷装置に送信される印刷データの，単位時間あたりの送信データ量によって求められる通信量を計測する計測処理を実行させ，前記再送処理は，前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断され，さらに前記計時処理によって判断時の前記通信量が０と計測された場合には，前記送信処理によって送信した前記所定単位の印刷データと同じデータを再送するとよい。通信量が０の場合，すなわち印刷装置との通信が行われていない場合，印刷装置にジャム等の印刷不能エラーが発生したものと推測される。この場合は，同じデータを再送することで，ジャム等からの復帰後，迅速にリカバリ印刷を完了できる。
【００１１】
また，本発明の印刷ドライバプログラムは，前記情報処理装置から前記印刷装置に送信される印刷データの，単位時間あたりの送信データ量によって求められる通信量を計測する計測処理を実行させ，前記再送処理は，前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断され，さらに前記計測処理によって判断時の前記通信量が０よりも大きい値と計測された場合には，前記基準時間内に印刷データの送信が完了するように当該所定単位の印刷データを加工する加工処理を実行し，加工処理後のデータを再送するとよい。通信量が０よりも大きい場合，印刷データの送信動作は継続していることから，印刷動作は可能であるものの印刷装置でオーバーランが発生したと推測される。この場合は，基準時間内に送信が完了するように印刷データを加工して再送することで，オーバーランの再発を防ぎ，迅速にリカバリ印刷を完了できる。
【００１２】
また，前記加工処理では，前記送信処理によって送信された印刷データの圧縮率よりも高い圧縮率で圧縮するとよい。圧縮率を高くすることで，送信対象物である印刷データのデータサイズが小さくなり，印刷装置でのオーバーランの再発防止が期待できる。さらに，前記加工処理では，前記所定単位の印刷データのうち，送信済みデータのデータサイズを取得し，そのデータサイズに基づいて前記印刷データの圧縮率を決定するとよい。送信済みデータのデータサイズに合わせて圧縮率を決定することで，加工データの送信が完了する可能性がより高まる。
【００１３】
また，前記加工処理では，前記送信処理によって送信された印刷データの解像度よりも低い解像度に加工するとよい。解像度を低くすることで，送信対象物である印刷データのデータサイズが小さくなり，印刷装置でのオーバーランの再発防止が期待できる。さらに，前記加工処理では，前記所定単位の印刷データのうち，送信済みデータのデータサイズを取得し，そのデータサイズに基づいて前記印刷データの解像度を決定するとよい。送信済みデータのデータサイズに合わせて解像度を決定することで，加工データの送信が完了する可能性がより高まる。
【００１４】
また，１ページ目の印刷データに対応する前記基準時間は，それ以外のページの印刷データに対応する前記基準時間よりも長いとよい。１ページ目の基準時間は，定着器のウォームアップ等の初期動作を考慮し，他のページの基準時間よりも長くする方が好ましい。
【００１５】
また，両面印刷のジョブの印刷データの前記基準時間は，片面印刷のジョブの印刷データの前記基準時間よりも長いとよい。両面印刷のジョブの基準時間は，用紙の反転搬送動作を考慮し，片面印刷のジョブの基準時間よりも長くする方が好ましい。
【００１６】
また，本発明の印刷ドライバプログラムは，前記情報処理装置から前記印刷装置に送信される印刷データの，単位時間あたりの送信データ量によって求められる通信量を計測する計測処理と，前記判断処理にて前記所定単位の印刷データが基準時間内に送信されていないと判断され，さらに前記計測処理によって判断時の前記通信量が０よりも大きい値と計測された場合には，前記印刷装置に対して印刷速度を遅くする要求を出力する要求処理とを実行させるとよい。印刷速度を遅くする方法としては，例えば，用紙搬送速度を遅くすることが該当する。通信量が０よりも大きい場合，印刷データの送信動作は継続していることから，印刷装置でオーバーランが発生したと推測される。この場合，印刷装置に印刷速度を遅くする要求を出力し，１ページ分の印刷時間を長くすることで，オーバーランの再発を防ぎ，迅速にリカバリ印刷を完了できる。
【００１７】
また，本発明は，印刷データを所定単位ずつ印刷装置に送信する送信部と，前記送信部により，前記所定単位の印刷データが基準時間内に送信されたか否かを判断する判断部と，前記判断処理にて前記所定単位の印刷データが前記基準時間内に送信されていないと判断された場合，当該印刷データを前記印刷装置に再送する再送処理部とを備えることを特徴とする情報処理装置を含んでいる。
【発明の効果】
【００１８】
本発明によれば，プリンタでエラーが発生した場合に，迅速にリカバリ印刷を開始できる印刷ドライバプログラムおよび情報処理装置が実現される。
【図面の簡単な説明】
【００１９】
【図１】実施の形態にかかる印刷システムの構成を示すブロック図である。
【図２】印刷システムに含まれるＰＣの電気的構成を示すブロック図である。
【図３】正常時におけるＰＣとプリンタとの動作手順を示すシーケンス図である。
【図４】実施の形態にかかる送信処理の手順を示すフローチャートである。
【図５】１ページ目の基準時間を変更した場合におけるＰＣとプリンタとの動作手順を示すシーケンス図である。
【図６】両面印刷の基準時間を変更した場合におけるＰＣとプリンタとの動作手順を示すシーケンス図である。
【図７】実施の形態にかかる再送処理の手順を示すフローチャートである。
【図８】用紙ジャム発生時におけるＰＣとプリンタとの動作手順を示すシーケンス図である。
【図９】プリントオーバーラン発生時におけるＰＣとプリンタとの動作手順を示すシーケンス図である。
【図１０】応用の形態にかかる再送処理の手順を示すフローチャートである。
【図１１】半速要求を出力した場合におけるＰＣとプリンタとの動作手順を示すシーケンス図である。
【発明を実施するための形態】
【００２０】
以下，本発明にかかる印刷ドライバプログラムを具体化した実施の形態について，添付図面を参照しつつ詳細に説明する。本形態は，パーソナルコンピュータ（ＰＣ）に組み込まれた印刷ドライバプログラムに本発明を適用したものである。
【００２１】
［印刷システムの全体構成］
本形態の印刷システム５００は，図１に示すように，指定されたプリンタに印刷データを出力するＰＣ１００（情報処理装置の一例）と，印刷機能を有するプリンタ２００（印刷装置の一例）とを備えている。そして，印刷システム５００では，ＰＣ１００と，プリンタ２００とがネットワーク４００に接続されている。
【００２２】
ＰＣ１００には，プリンタ２００を制御可能な印刷ドライバプログラム（以下，「プリンタドライバ１１０」とする）が記憶されている。ＰＣ１００は，アプリケーションプログラムを実行することによりユーザから印刷指示を受け付けると，プリンタドライバ１１０を起動する。プリンタドライバ１１０は印刷指示に従って印刷データを作成し，その印刷データをプリンタ２００に送信する。
【００２３】
プリンタ２００は，ＰＣ１００からの印刷データを受信し，その印刷データを用紙に印刷する。なお，プリンタ２００は，印刷機能を備えるものであればよく，カラープリンタであってもモノクロプリンタであってもよい。また，画像形成方式についても，電子写真方式であってもインクジェット方式であってもよい。本形態では，電子写真方式のカラープリンタとする。また，本形態では，プリンタ２００のページバッファのサイズは１ページ分とする。
【００２４】
なお，印刷システム５００を構成するプリンタ，ＰＣはそれぞれ何台接続されていてもよい。また，印刷システム５００には，その他の情報処理装置や印刷装置を接続してもよい。また，サーバをネットワーク４００に接続し，ＰＣ１００からサーバを介してプリンタ２００に印刷データを投入してもよい。
【００２５】
［ＰＣの構成］
続いて，ＰＣ１００の概略構成について説明する。ＰＣ１００は，図２に示すように，ＣＰＵ５１と，ＲＯＭ５２と，ＲＡＭ５３と，ＨＤＤ５４とを有する制御部５０を備えている。また，ＰＣ１００は，キーボードやマウス等からなる操作部５５と，液晶ディスプレイ等からなる表示部５６と，ネットワークインターフェース５８とを有し，これらが制御部５０によって制御される。
【００２６】
ＰＣ１００のＨＤＤ５４には，オペレーティングシステム（ＯＳ）や，各種のデバイスを制御するデバイスドライバや，ワープロ，表計算ソフト等の印刷指示機能を有するアプリケーションプログラム等が組み込まれている。上述したプリンタドライバ１１０もＨＤＤ５４に記憶されている。
【００２７】
ＣＰＵ５１は，ＲＯＭ５２から読み出した制御プログラムやＨＤＤ５４から読み出したアプリケーションプログラム等に従って，その演算結果をＲＡＭ５３またはＨＤＤ５４に記憶させながら各種の処理を行う。上述したプリンタドライバ１１０の動作もＣＰＵ５１によって処理される。
【００２８】
［プリンタドライバの動作概要］
続いて，プリンタドライバ１１０について説明する。プリンタドライバ１１０は，アプリケーションプログラムを介してユーザからの印刷指示を受け付けると，印刷対象のデータをＰＤＬ等に翻訳した印刷データを作成する。そして，その印刷データを含む印刷ジョブをプリンタ２００に送信する。印刷ジョブには，印刷データの他，例えば印刷設定が含まれる。送信する印刷データは，１ページ単位で送信する。
【００２９】
また，プリンタドライバ１１０は，プリンタ２００の装置状態を取得することなく，自己判断で印刷データの再送を行うリカバリ機能を有している。すなわち，プリンタドライバ１１０は，プリンタ２００への印刷データの送信状況に基づいて，プリンタドライバ１１０自身で印刷データの再送が必要か否かを判断し，印刷データの再送が必要と判断した場合に，印刷データを再送する。
【００３０】
具体的には，１ページ分の印刷データを送信するための基準時間を設定する。この基準時間は，概ねプリンタ２００の印刷能力に基づいて設定される。印刷能力は印刷データからビットマップ画像に変換する速度やビットマップ画像を用紙に印刷する速度，すなわち処理速度に基づいて決定される。そして，図３に示すように，印刷データの送信を開始した後，その印刷データの送信開始時からの経過時間が基準時間（図３では３秒）に到達した時点で，その印刷データの送信が完了しているか否かを判断する。印刷データの送信が完了している場合には，リカバリ不要と判断して次ページの印刷データの送信を開始する。一方，印刷データの送信が完了していない場合，すなわち未送信分のデータが残っている場合には，当該ページの印刷でプリンタ２００にエラーが生じていると推測される。そこで，リカバリ必要と判断して同じページの印刷データを送信する。
【００３１】
［送信処理］
続いて，上述のリカバリ機能を実現する，プリンタドライバ１１０の送信処理（送信処理，判断処理，再送処理，計測処理，加工処理の一例）について，図４のフローチャートを参照しつつ説明する。この送信処理は，プリンタドライバ１１０がアプリケーションプログラムを介してユーザからの印刷指示を受け付け，送信対象となる印刷データの作成が完了したことを条件として，制御部５０によって実行される。
【００３２】
送信処理では，先ず，送信対象となる１ページ分の印刷データを取得する（Ｓ１０１）。次に，プリンタ２００の印刷能力に基づいて，基準時間を設定する（Ｓ１０２）。例えば，プリンタ２００の処理速度が２０ｐｐｍであれば，１ページ当たりの処理時間は６０÷２０＝３秒となる。そして，プリンタ２００のページバッファが１ページ分であることから，この１ページ当たりの処理時間が基準時間に設定される。なお，プリンタ２００の処理速度は，搬送する用紙の用紙サイズによって異なる。そのため，基準時間は，印刷ジョブに記憶されている用紙サイズ設定に従って設定される。以下，本形態では，Ｓ１０２で設定される基準時間を３秒として説明する。
【００３３】
次に，基準時間を変更する条件を満たしているか否かを判断する（Ｓ１０３）。基準時間は，固定である必要はなく，ページ番号や印刷ジョブの設定等に基づく条件を利用して変更してもよい。
【００３４】
例えば，定着装置のウォームアップ等，１ページ目の印刷開始前に実行される起動処理に時間がかかる可能性がある。よって，１ページ目の基準時間をそれ以外のページの基準時間と同じ時間に設定すると，プリンタ２００自体にエラーが発生していないにも拘らず，起動時間が長いために１ページ目の送信時間が基準時間を超えてしまう可能性がある。そこで，送信対象のデータが１ページ目のデータであることをＳ１０３の条件とし，１ページ目の場合には（Ｓ１０３：ＹＥＳ），その起動処理の所要時間を加味し，他のページよりも基準時間を長めに変更する（Ｓ１１１）。具体的には，図５に示すように起動処理の所要時間を７秒と仮定すると１ページ目の基準時間は他のページの基準時間に起動処理の所要時間を加えた１０秒に変更される。この変更により，プリンタ２００自体にエラーが発生していないにも拘らず，データを再送してしまう事態を回避できる。
【００３５】
この他の条件としては，例えば両面印刷の印刷ジョブであることが該当する。両面印刷の場合，用紙の第１面を印刷した後，その用紙の反転搬送に時間がかかると，その用紙の第２面への印刷が片面印刷における１ページの基準時間内に完了しない可能性がある。そこで，送信対象のデータが両面印刷であって，第２面のページのデータであることをＳ１０３の条件とし，第２面に相当するページの場合には（Ｓ１０３：ＹＥＳ），その反転搬送の所要時間を加味し，片面印刷時よりも基準時間を長めに変更する（Ｓ１１１）。具体的には，例えば図６に示すように，反転搬送の所要時間を５秒と仮定すると，第２面のページの基準時間は片面印刷における１ページの基準時間に反転搬送の所要時間を加えた８秒に変更される。この変更により，プリンタ２００自体にエラーが発生していないにも拘らず，データを再送してしまう事態を回避できる。
【００３６】
Ｓ１１１の後，あるいは変更条件を満たしていない場合（Ｓ１０３：ＮＯ），Ｓ１０１で取得した印刷データの，プリンタ２００への送信を開始する（Ｓ１０４，送信処理の一例）。なお，プリンタドライバ１１０が作成したページ単位の印刷データは，一旦，ＲＡＭ５３に保持されてからプリンタ２００に送信される。さらに，印刷データの送信開始時を起点として計時を開始する（Ｓ１０５）。Ｓ１０５での計時は，ＣＰＵ５１のクロックを利用し，開始時間をＲＡＭ５３に記憶し，ページデータの送信が完了した後はリセットされる。Ｓ１０５の後，その計時時間が基準時間を経過するまで待機する（Ｓ１０６）。なお，印刷データを受信したプリンタ２００は，その印刷データを展開して印刷を開始する。そして，プリンタ２００は，印刷が完了したことを条件に，その印刷データをページバッファから消去する。また，プリンタ２００は，印刷中にジャム等によって印刷不能状態になった場合，ページバッファに記憶されている印刷データを消去する。
【００３７】
プリンタドライバ１１０は，計時時間が基準時間を経過するまで待機した後，送信対象の１ページ分の印刷データの送信が完了しているか否かを判断する（Ｓ１０７，判断処理の一例）。１ページ分の印刷データの送信が完了している場合には（Ｓ１０７：ＹＥＳ），次ページの印刷データがあるか否かを判断する（Ｓ１０８）。次ページの印刷データがある場合には（Ｓ１０８：ＹＥＳ），Ｓ１０１に戻って印刷データの送信を繰り返す。印刷データの正常送信を繰り返した場合には，図３に示したように基準時間間隔にて印刷データが送信される。次ページの印刷データがない場合には（Ｓ１０８：ＮＯ），送信処理を終了する。
【００３８】
一方，１ページ分の印刷データの送信が完了していない場合には（Ｓ１０７：ＮＯ），プリンタ２００側でエラーが発生し，Ｓ１０４で送信を開始した印刷データの印刷が完了していないことが想定される。そこで，印刷データの再送を行う再送処理を実行する（Ｓ１２０，再送処理の一例）。
【００３９】
図７は，Ｓ１２０の再送処理の手順を示すフローチャートである。再送処理では，先ず，基準時間経過時点でデータの送信が停止しているか否かを判断する（Ｓ１２１）。具体的にＳ１２１では，ＣＰＵ５１は単位時間当たりのデータ送信量によって求められる通信量を計測する（計測処理の一例）。例えば，ある時点で１０ＫＢｙｔｅのデータ送信が完了しており，その１秒後に２０ＫＢｙｔｅのデータ送信が完了している場合には，通信量は１０ＫＢｙｔｅ／秒となり，データの送信が継続していると判断できる。一方，１秒後であっても１０ＫＢｙｔｅのままであれば，通信量は０であり，データの送信が停止していると判断できる。
【００４０】
データの送信が停止しているということは，プリンタ２００側のページバッファが一杯で，さらにページバッファに空が生じない状況がしばらく続いていることが予測される。この場合，用紙ジャムやトナーエンプティ等によってプリンタ２００が印刷不能に陥っている可能性が高い。
【００４１】
そこで，基準時間経過時点でデータの送信が停止している場合（Ｓ１２１：ＹＥＳ），先ず，送信停止中のページのデータを破棄する（Ｓ１２２）。そして，破棄したページのデータをプリンタ２００に再送する（Ｓ１２３，再送処理の一例）。Ｓ１２３の後は，再送処理を終了し，図４のＳ１０５に戻って計時からやり直す。プリンタ２００が印刷不能状態から復帰していれば，再送された印刷データによってリカバリ印刷が行われる。プリンタ２００が印刷不能状態から復帰していなければ，印刷データの送信が完了せず，通信量が０となることから，再度，印刷データの再送が行われる。これにより，図８に示すように，プリンタ２００では，ジャム等の印刷不能状態からの復帰後，送信停止中であった印刷データのリカバリ印刷を行うことができる。
【００４２】
一方，通信量が０よりも大きい場合は，データの送信が継続していると判断できる。データの送信が継続しているということは，印刷はできているもののデータの送信や展開に時間がかかっていることが予測される。この場合，印刷データのデータサイズが大きすぎるためにプリンタ２００がオーバーランに陥ってしまう可能性が高い。
【００４３】
そこで，基準時間経過時点でデータの送信が停止していない場合（Ｓ１２１：ＮＯ），基準時間経過時点で送信が完了しているデータ（送信済データ）のデータサイズを取得する（Ｓ１３１）。そして，Ｓ１３１で取得したデータサイズに収まるように，送信対象のページの印刷データを加工する（Ｓ１３２，加工処理の一例）。
【００４４】
Ｓ１３２では，例えば，Ｓ１０４で送信した際の印刷データの圧縮率よりも高圧縮率で印刷データを圧縮加工する。また，Ｓ１０４で送信した際の印刷データの解像度よりも低解像度に印刷データを加工する。なお，Ｓ１３２では，圧縮率を変更する場合であっても解像度を変更する場合であっても，Ｓ１３１で取得したデータサイズに基づいて，そのデータサイズに近いサイズに収まるように圧縮率あるいは解像度を決定する。これにより，リカバリ印刷の成功率が高まるとともに画質の低下を必要最低限に抑えることができる。加工後のデータである加工データは，ＲＡＭ５３に一時的に保持される。
【００４５】
Ｓ１３２での印刷データの加工後は，送信中のページのデータを破棄する（Ｓ１３３）。そして，Ｓ１３２での加工後のデータである加工データを送信する（Ｓ１３４，再送処理の一例）。Ｓ１３４の後は，再送処理を終了し，図４のＳ１０５に戻って計時からやり直す。これにより，図９に示すように，プリンタ２００では，オーバーランが生じていた印刷データのリカバリ印刷を行うことができる。
【００４６】
なお，上述の再送処理では，基準時間経過時点でデータの送信が停止していない場合（Ｓ１２１：ＮＯ），印刷データを加工し，送信データ量を少なくしてリカバリ印刷を行っているが，これに限るものではない。例えば，プリンタ２００の処理速度を遅くしてオーバーランを回避してもよい。
【００４７】
上記の場合，図１０に示すように基準時間経過時点でデータの送信が停止していなければ（Ｓ１２１：ＮＯ），プリンタ２００に対して半速要求を出力する（Ｓ２３１，要求処理の一例）。プリンタ２００は，半速要求を受信すると，用紙の搬送速度を１／２に減速する。
【００４８】
Ｓ２３１の後，プリンタドライバ１１０は，プリンタ２００の減速に伴って，Ｓ１０５で待機する基準時間をこれまでの倍に変更する（Ｓ２３２）。例えば本形態では，図１１に示すように，２０ｐｐｍから１０ｐｐｍに減速する半速要求を出力することから，基準時間を３秒から６秒に変更する。その後は，送信中のページのデータを破棄し（Ｓ２３３），Ｓ１０４で送信したデータと同じデータを送信する（Ｓ２３４，再送処理の一例）。これにより，同じデータを再送したとしても，変更後の基準時間内にデータの送信が完了する確率が高まる。すなわち，画質を低下させることなく，リカバリ印刷が成功する確率が高まる。
【００４９】
以上詳細に説明したように本形態のプリンタドライバ１１０では，プリンタドライバ１１０自身（ＰＣ１００自身）が，印刷データを再送するか否かを決定する。そのため，プリンタ２００でエラーが発生した状況において，プリンタ２００からの通知を待つことなくプリンタドライバ１１０自身の判断で印刷データの再送を開始できる。従って，プリンタ２００から再送の要求を受け取ってから印刷データを再送する場合と比較して，迅速にリカバリ印刷を実行することが期待できる。
【００５０】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，プリンタは，印刷機能を備えるものであればよく，複合機や複写機であっても適用可能である。また，情報処理装置についても，ＰＣに限るものではない。例えばスマートフォンやワークステーションであってもよい。
【００５１】
また，実施の形態では，１ページ単位で印刷データを送信しているが，これに限るものではない。例えば，１ジョブ単位で送信してもよい。この場合，印刷データを破棄する際は，ジョブ単位で印刷データを破棄し，印刷データを再送する際は，ジョブ単位で印刷データを再送する。この他，例えば，数ページ単位で送信してもよいし，シリアルプリンタであれば１ライン単位あるいは数ライン単位で送信してもよい。
【００５２】
また，実施の形態では，Ｓ１３２で印刷データを加工する際，Ｓ１３１で取得したデータサイズに基づいて，圧縮率あるいは解像度を決定しているが，例えば，送信済みのデータサイズとは無関係にデータサイズが小さくなるように圧縮率あるいは解像度を決定してもよい。この場合，リカバリ印刷の成功率や画質についての低下が懸念されるものの，圧縮率あるいは解像度を決定するための制御が不要であり，送信済みデータのデータサイズに基づいて圧縮率あるいは解像度を決定する場合と比較して，制御がシンプルになる。
【００５３】
また，実施の形態では，プリンタ２００が１ページ分のページバッファしか有していないため，１ページごとに基準時間内に送信できたか否かを判断しているが，複数ページ分のページバッファを有している場合には，複数ページごとに基準時間以内に送信できたか否かを判断してもよい。
【符号の説明】
【００５４】
１００  パーソナルコンピュータ（ＰＣ）
１１０  プリンタドライバ
２００  プリンタ
５００  印刷システム
【図１】
2013092829.tif 000003
【図２】
2013092829.tif 000004
【図３】
2013092829.tif 000005
【図４】
2013092829.tif 000006
【図５】
2013092829.tif 000007
【図６】
2013092829.tif 000008
【図７】
2013092829.tif 000009
【図８】
2013092829.tif 000010
【図９】
2013092829.tif 000011
【図１０】
2013092829.tif 000012
【図１１】
2013092829.tif 000013