(57)【特許請求の範囲】
【請求項１】
印刷対象である印刷ジョブを印刷処理する印刷装置へデータ通信可能に接続された印刷制御装置であって、
前記印刷ジョブの一部に相当する印刷データを生成する処理を実行する画像処理部と、
データを記憶する記憶部に前記生成された印刷データをバッファさせるバッファ処理部と、
前記印刷データの前記記憶部へのバッファとは非同期に該記憶部から該印刷データを読み出し該読み出した印刷データを前記印刷装置側へ出力するデータ出力部と、を備え、
前記バッファ処理部は、オペレーティングシステムのスプールシステムによるスプール処理での許容容量を超える印刷データを前記印刷装置側へ出力する際に、前記印刷データを前記記憶部にバッファさせる、印刷制御装置。
【請求項２】
前記バッファ処理部は、前記記憶部のバッファ量を監視し、前記印刷データのバッファ量が所定の第１閾値を超えたときには、単位時間あたりの印刷データのバッファ量をより低減させる第１制限処理を実行する、請求項１に記載の印刷制御装置。
【請求項３】
印刷対象である印刷ジョブを印刷処理する印刷装置へデータ通信可能に接続された印刷制御装置であって、
前記印刷ジョブの一部に相当する印刷データを生成する処理を実行する画像処理部と、
データを記憶する記憶部に前記生成された印刷データをバッファさせるバッファ処理部と、
前記印刷データの前記記憶部へのバッファとは非同期に該記憶部から該印刷データを読み出し該読み出した印刷データを前記印刷装置側へ出力するデータ出力部と、を備え、
前記バッファ処理部は、前記記憶部のバッファ量を監視し、前記印刷データのバッファ量が所定の第１閾値を超えたときには、単位時間あたりの印刷データのバッファ量をより低減させる第１制限処理を実行し、前記印刷データのバッファ量が前記第１閾値より大きな所定の第２閾値を超えたときには、単位時間あたりの印刷データのバッファ量を前記第１制限処理よりも大きく制限した第２制限処理を実行する、印刷制御装置。
【請求項４】
印刷対象である印刷ジョブを印刷処理する印刷装置へデータ通信可能に接続された印刷制御装置であって、
前記印刷ジョブの一部に相当する印刷データを生成する処理を実行する画像処理部と、
データを記憶する記憶部に前記生成された印刷データをバッファさせるバッファ処理部と、
前記印刷データの前記記憶部へのバッファとは非同期に該記憶部から該印刷データを読み出し該読み出した印刷データを前記印刷装置側へ出力するデータ出力部と、を備え、
前記バッファ処理部は、前記記憶部のバッファ量を監視し、前記印刷データのバッファ量が所定の第１閾値を超えたときには、単位時間あたりの印刷データのバッファ量をより低減させる第１制限処理を実行し、前記印刷データのバッファを完了した際に前記画像処理部へバッファ完了応答を行い、
前記画像処理部は、前記バッファ完了応答を受けて次の印刷データの生成処理を実行するものであり、
前記バッファ処理部は、前記第１制限処理を実行するに際して、所定の第１待機時間を経過したのちに前記バッファ完了応答を行う、印刷制御装置。
【請求項５】
前記第１閾値は、前記印刷装置の印刷データの記憶容量に基づいて定められている、請求項２〜４のいずれか１項に記載の印刷制御装置。
【請求項６】
前記バッファ処理部は、前記記憶部のバッファ量を監視し、前記印刷データのバッファ量が前記第１閾値より大きな所定の第２閾値を超えたときには、単位時間あたりの印刷データのバッファ量を前記第１制限処理よりも大きく制限した第２制限処理を実行する、請求項２〜５のいずれか１項に記載の印刷制御装置。
【請求項７】
前記バッファ処理部は、前記印刷データのバッファを完了した際に前記画像処理部へバッファ完了応答を行い、前記画像処理部は、前記バッファ完了応答を受けて次の印刷データの生成処理を実行するものであり、
前記バッファ処理部は、前記第１制限処理を実行するに際して所定の第１待機時間を経たのちに前記バッファ完了応答を行い、前記第２制限処理を実行するに際して、前記第１待機時間よりも長い所定の第２待機時間を経過したのちに前記バッファ完了応答を行う、請求項６に記載の印刷制御装置。
【請求項８】
前記データ出力部は、前記読み出した印刷データをオペレーティングシステムのスプールシステムによるスプール処理を介さずに前記印刷装置側へ出力する、請求項１〜７のいずれか１項に記載の印刷制御装置。
【請求項９】
前記バッファ処理部は、オペレーティングシステムのスプールシステムによるスプール処理での許容容量を超える印刷データを前記印刷装置側へ出力する際に、前記印刷データを前記記憶部にバッファさせる、請求項３〜８のいずれか１項に記載の印刷制御装置。
【請求項１０】
印刷対象である印刷ジョブを印刷処理する印刷装置へデータ通信可能に接続された印刷制御装置が実行する印刷制御方法であって、
（ａ）前記印刷ジョブの一部に相当する印刷データを生成する処理を実行するステップと、
（ｂ）データを記憶する記憶部に前記生成された印刷データをバッファさせるステップと
、
（ｃ）前記印刷データの前記記憶部へのバッファとは非同期に該記憶部から該印刷データを読み出し該読み出した印刷データを前記印刷装置側へ出力するステップと、を含み、
前記ステップ（ｂ）では、オペレーティングシステムのスプールシステムによるスプール処理での許容容量を超える印刷データを前記印刷装置側へ出力する際に、前記印刷データを前記記憶部にバッファさせる、印刷制御方法。
【請求項１１】
印刷対象である印刷ジョブを印刷処理する印刷装置へデータ通信可能に接続された印刷制御装置が実行する印刷制御方法であって、
（ａ）前記印刷ジョブの一部に相当する印刷データを生成する処理を実行するステップと、
（ｂ）データを記憶する記憶部に前記生成された印刷データをバッファさせるステップと
、
（ｃ）前記印刷データの前記記憶部へのバッファとは非同期に該記憶部から該印刷データを読み出し該読み出した印刷データを前記印刷装置側へ出力するステップと、を含み、
前記ステップ（ｂ）では、前記記憶部のバッファ量を監視し、前記印刷データのバッファ量が所定の第１閾値を超えたときには、単位時間あたりの印刷データのバッファ量をより低減させる第１制限処理を実行し、前記印刷データのバッファ量が前記第１閾値より大きな所定の第２閾値を超えたときには、単位時間あたりの印刷データのバッファ量を前記第１制限処理よりも大きく制限した第２制限処理を実行する、印刷制御方法。
【請求項１２】
請求項１０又は１１に記載された印刷制御方法の各ステップを１以上のコンピューターに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御方法及びそのプログラムに関する。
【背景技術】
【０００２】
従来、印刷制御装置としては、複数の印刷ジョブを出力量の調整により印刷処理するものが提案されている（例えば、特許文献１参照）。この装置では、印刷ジョブの処理中にジョブ出力割合の設定が可能である。このジョブ出力割合を受けたプリンタコントローラーは、印刷ジョブの処理中に次の印刷ジョブを受信すると処理中の印刷ジョブに設定されたジョブ出力割合の値に応じて処理中のジョブに対するイメージデータ出力量を低下させる。そして、低下させた分の出力量を次のジョブに割り当てる制御を行うことにより、大量印刷ジョブの次の印刷ジョブを割り込ませて印刷することができる、としている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１６３６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載された印刷制御装置などでは、例えば、オペレーティングシステムのスプーラーを用いてスプールした印刷データをプリンターへ送信して印刷処理を行うことがある。このような場合、例えば、スプーラーに印刷データ容量などの制約や、プリンターのメモリ量の制約などがあることがあり、印刷データがこれらの容量の制約を超える場合などには、印刷処理を継続して実行できない場合があった。このため、より確実に印刷処理を実行させることが望まれていた。
【０００５】
本発明は、このような課題に鑑みなされたものであり、より確実に印刷処理を実行させることができる印刷制御装置、印刷制御方法及びそのプログラムを提供することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の印刷制御装置は、
印刷対象である印刷ジョブを印刷処理する印刷装置へデータ通信可能に接続された印刷制御装置であって、
前記印刷ジョブの一部に相当する印刷データを生成する処理を実行する画像処理部と、
データを記憶する記憶部に前記生成された印刷データをバッファさせるバッファ処理部と、
前記印刷データの前記記憶部へのバッファとは非同期に該記憶部から該印刷データを読み出し該読み出した印刷データを前記印刷装置側へ出力するデータ出力部と、
を備えたものである。
【０００８】
この印刷制御装置では、印刷ジョブの一部に相当する印刷データを生成し、生成した印刷データを記憶部にバッファし、印刷データのバッファとは非同期に記憶部から印刷データを読み出し、読み出した印刷データを印刷装置側へ出力する。このように、印刷ジョブの部分ごとに印刷データをバッファするため、例えば大容量の印刷ジョブなどをスプールする際に生じうる記憶量の制限などの制約に影響されずに印刷データを生成することができる。また、印刷データの生成処理と印刷データの出力処理とが非同期で実行されるため、例えば、一方にトラブルが生じても互いに干渉せずに処理を継続することができる。したがって、より確実に印刷処理を実行させることができる。ここで、画像処理部は、例えば、前記印刷ジョブとしてのアプリケーションプログラムのデータファイルから変換することにより前記印刷データを生成してもよいし、前記印刷装置で取り扱い可能な印刷ジョブから変換することにより前記印刷データを生成してもよい。また、前記印刷データは、印刷対象である印刷ジョブの全体を印刷可能なデータに変換した変換後データのうち少なくとも一部のデータであるものとしてもよい。
【０００９】
本発明の印刷制御装置において、前記バッファ処理部は、前記記憶部のバッファ量を監視し、前記印刷データのバッファ量が所定の第１閾値を超えたときには、単位時間あたりの印刷データのバッファ量をより低減させる第１制限処理を実行するものとしてもよい。こうすれば、記憶部のバッファ量が増加する傾向にある場合に、記憶部のバッファ量の増加を抑制することができる。このため、バッファ量をより適正なものとすることが可能であり、より確実に印刷処理を実行させることができる。このとき、前記バッファ処理部は、前記印刷データのバッファを完了した際に前記画像処理部へバッファ完了応答を行い、前記画像処理部は、前記バッファ完了応答を受けて次の印刷データの生成処理を実行するものであり、前記バッファ処理部は、前記第１制限処理を実行するに際して、所定の第１待機時間を経過したのちに前記バッファ完了応答を行うものとしてもよい。こうすれば、バッファ完了応答を待機させることによって、より容易に記憶部のバッファ量の増加を抑制することができる。ここで、「所定の第１待機時間」は、例えば、印刷装置の記憶容量や印刷装置の印刷速度、印刷データの生成速度に応じて経験的に求めるものとしてもよい。例えば、所定の第１待機時間は、単位時間あたりの印刷データの出力量よりも単位時間あたりの印刷データの生成量が上回る時間に設定されているものとしてもよい。こうすれば、印刷装置側で印刷データの受信待ちとなりにくく、印刷処理を効率よく実行することができる。
【００１０】
第１制限処理を実行する態様の本発明の印刷制御装置において、前記第１閾値は、前記印刷装置の印刷データの記憶容量に基づいて定められているものとしてもよい。こうすれば、印刷装置側へ出力されるデータ量を印刷装置の記憶容量により近いものとしやすい。このため、印刷装置でより確実に印刷処理を実行しやすい。ここで、第１閾値は、印刷装置の印刷データの記憶容量に定められているものとしてもよいし、印刷装置の印刷データの記憶容量の近傍、例えば印刷装置の印刷データの記憶容量の７割や８割などに定められていてもよい。
【００１１】
第１制限処理を実行する態様の本発明の印刷制御装置において、前記バッファ処理部は、前記記憶部のバッファ量を監視し、前記印刷データのバッファ量が前記第１閾値より大きな所定の第２閾値を超えたときには、単位時間あたりの印刷データのバッファ量を前記第１制限処理よりも大きく制限した第２制限処理を実行するものとしてもよい。こうすれば、第１制限処理によっても記憶部のバッファ量が増加する傾向にある場合でも、第２制限によって記憶部のバッファ量の増加を更に抑制することができる。このため、印刷データのバッファ量を第１閾値から第２閾値の間の範囲にしやすく、記憶容量の制限などを考慮して、より確実に印刷処理を実行させることができる。ここで、例えば、第２閾値は、印刷制御装置の記憶容量に基づいて定めるものとしてもよい。例えば、第１閾値を印刷装置の記憶容量に基づいて定め、第２閾値を印刷制御装置の記憶容量に基づいて定めたものとすれば、印刷データのバッファ量が両者の装置の記憶容量の範囲となりやすく好適であり、一層確実に印刷処理を実行させることができる。このとき、前記バッファ処理部は、前記印刷データのバッファを完了した際に前記画像処理部へバッファ完了応答を行い、前記画像処理部は、前記バッファ完了応答を受けて次の印刷データの生成処理を実行するものであり、前記バッファ処理部は、前記第１制限処理を実行するに際して所定の第１待機時間を経たのちに前記バッファ完了応答を行い、前記第２制限処理を実行するに際して、前記第１待機時間よりも長い所定の第２待機時間を経過したのちに前記バッファ完了応答を行うものとしてもよい。こうすれば、バッファ完了応答を更に待機させることによって、より容易に記憶部のバッファ量の増加を抑制することができる。ここで、「所定の第２待機時間」は、例えば、印刷装置の記憶容量や印刷装置の印刷速度、印刷データの生成速度、所定の第１待機時間に応じて経験的に求めるものとしてもよい。例えば、所定の第２待機時間は、単位時間あたりの印刷データのバッファ量を第１制限処理よりも大きく制限するものの、単位時間あたりの印刷データの出力量よりも単位時間あたりの印刷データの生成量が上回る時間に設定されているものとしてもよい。こうすれば、第２制限処理の実行により単位時間あたりの印刷データのバッファ量がより抑制されても、印刷装置側で印刷データの受信待ちとなりにくく、印刷処理を効率よく実行することができる。
【００１２】
本発明の印刷制御装置において、前記データ出力部は、前記読み出した印刷データをオペレーティングシステムのスプールシステムによるスプール処理を介さずに前記印刷装置側へ出力するものとしてもよい。例えば、スプールシステムによるスプール処理には、印刷ジョブの容量の上限など制限が設けられていることがあるが、ここでは、スプール処理を介さずダイレクトに印刷データを印刷装置側へ出力するから、スプール処理の制限を受けることなく、より確実に印刷処理を実行させることができる。
【００１３】
本発明の印刷制御装置において、前記バッファ処理部は、オペレーティングシステムのスプールシステムによるスプール処理での許容容量を超える印刷データを前記印刷装置側へ出力する際に、前記印刷データを前記記憶部にバッファさせるものとしてもよい。こうすれば、スプールシステムの許容容量の制限で印刷処理が実行できない場合でも、印刷ジョブの一部分ずつを印刷装置に出力することにより、確実に印刷処理を実行させることができる。
【００１４】
本発明の印刷制御方法は、
印刷対象である印刷ジョブを印刷処理する印刷装置へデータ通信可能に接続された印刷制御装置が実行する印刷制御方法であって、
（ａ）前記印刷ジョブの一部に相当する印刷データを生成する処理を実行するステップと、
（ｂ）データを記憶する記憶部に前記生成された印刷データをバッファさせるステップと、
（ｃ）前記印刷データの前記記憶部へのバッファとは非同期に該記憶部から該印刷データを読み出し該読み出した印刷データを前記印刷装置側へ出力するステップと、
を含むものである。
【００１５】
この印刷制御方法では、上述した印刷制御装置と同様に、印刷ジョブの部分ごとに印刷データをバッファするため、例えば大容量の印刷ジョブなどをスプールする際に生じうる記憶量の制限などの制約に影響されずに印刷データを生成することができる。また、印刷データの生成処理と印刷データの出力処理とが非同期で実行されるため、例えば、一方にトラブルが生じても互いに干渉せずに処理を継続することができる。したがって、より確実に印刷処理を実行させることができる。なお、この印刷制御方法において、上述した印刷制御装置の種々の態様を採用してもよいし、また、上述した印刷制御装置の各機能を実現するようなステップを追加してもよい。
【００１６】
本発明のプログラムは、上述した印刷制御方法の各ステップを１又は複数のコンピューターに実現させるためのものである。このプログラムは、コンピューターが読み取り可能な記録媒体（例えばハードディスク、ＲＯＭ、ＦＤ、ＣＤ、ＤＶＤなど）に記録されていてもよいし、伝送媒体（インターネットやＬＡＮなどの通信網）を介してあるコンピューターから別のコンピューターへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムを一つのコンピューターに実行させるか又は複数のコンピューターに各ステップを分担して実行させれば、上述した印刷制御方法の各ステップが実行されるため、この印刷制御方法と同様の作用効果が得られる。
【図面の簡単な説明】
【００１７】
【図１】プリンターシステム１０の構成の概略の一例を示す構成図。
【図２】印刷制御処理ルーチンの一例を示すフローチャート。
【図３】エラー発生時の処理及び通信の様子をシーケンシャルに示す説明図。
【図４】データ処理速度を低減する処理の様子をシーケンシャルに示す説明図。
【図５】経過時間と印刷データのバッファ量との関係の一例の説明図。
【図６】終了時の処理及び通信の様子をシーケンシャルに示す説明図。
【発明を実施するための形態】
【００１８】
次に、本発明の実施の形態を図面を用いて説明する。図１は、本実施形態であるプリンターシステム１０の構成の概略の一例を示す構成図である。本実施形態のプリンターシステム１０は、図１に示すように、ロール紙３６から引き出された記録紙Ｓにインクを吐出して印刷対象である印刷ジョブの印刷処理を行うプリンター２０と、プリンター２０へデータ通信可能に接続され印刷データを出力する印刷制御装置の機能を有するプリンター用パソコン（ＰＣ）４０とを備えている。
【００１９】
プリンター２０は、大容量の印刷データを大判の記録紙Ｓ（例えばＡ０サイズなど）に印刷する大判印刷処理を実行可能な大型の印刷装置として構成されている。プリンター２０は、装置全体をコントロールするコントローラー１１と、インクを記録紙Ｓに吐出する印刷機構２１と、駆動モーター３３により駆動され記録紙Ｓを搬送する紙送りローラー３５を含む紙送り機構３０とを備えている。コントローラー１１は、ＣＰＵ１２を中心とするマイクロプロセッサとして構成されており、各種処理プログラムを記憶しデータを書き換え可能なフラッシュＲＯＭ１３と、一時的にデータを記憶したりデータを保存したりするＲＡＭ１４などを備えている。このコントローラー１１は、プリンター用ＰＣ４０からの印刷データを受信すると共に、印刷処理を実行するよう印刷機構２１や紙送り機構３０を制御する。印刷機構２１は、キャリッジベルト３２によりキャリッジ軸２８に沿って左右（主走査方向）に往復動するキャリッジ２２と、インクに圧力をかけノズル２３からインク滴を吐出する印刷ヘッド２４と、各色のインクを収容しこの収容したインクを印刷ヘッド２４へ供給するカートリッジ２５と、を備えている。印刷ヘッド２４は、キャリッジ２２の下部に設けられており、圧電素子に電圧をかけることによりこの圧電素子を変形させてインクを加圧する方式により、印刷ヘッド２４の下面に設けられたノズル２３から各色のインクを吐出するものである。なお、インクへ圧力をかける機構は、ヒーターの熱による気泡の発生によるものとしてもよい。カートリッジ２５は、シアン（Ｃ）・マゼンタ（Ｍ）・イエロー（Ｙ）・ブラック（Ｋ）などの各色のインクを個別に収容している。
【００２０】
プリンター用ＰＣ４０は、ユーザーが使用する情報処理装置及び印刷制御装置として構成された汎用パソコンである。このプリンター用ＰＣ４０は、装置全体の制御を司るコントローラー４１と、各種アプリケーションプログラムや各種データファイルを記憶する大容量メモリであるＨＤＤ４５と、プリンター２０などの外部機器とのデータの入出力を行うネットワークインターフェイス（Ｉ／Ｆ）４６とを備えている。コントローラー４１は、各種制御を実行するＣＰＵ４２や各種制御プログラムを記憶するフラッシュＲＯＭ４３、データを一時記憶するＲＡＭ４４などを備えている。また、プリンター用ＰＣ４０は、ユーザーが各種指令を入力するキーボード及びマウス等の入力装置４７や、各種情報を表示するディスプレイ４８などを備えている。このプリンター用ＰＣ４０は、ディスプレイ４８に表示されたカーソル等をユーザーが入力装置４７を介して入力操作するとその入力操作に応じた動作を実行する機能を有している。コントローラー４１やＨＤＤ４５、Ｉ／Ｆ４６、入力装置４７、ディスプレイ４８などは、バス４９によって電気的に接続され、各種制御信号やデータのやり取りができるよう構成されている。
【００２１】
このプリンター用ＰＣ４０のＨＤＤ４５には、図示しないアプリケーションプログラムや、印刷ドライバー５０、スプールシステム５８などが格納されている。印刷ドライバー５０は、アプリケーションプログラム側から受けた印刷ジョブをプリンター２０で直接印刷処理可能な印刷データへ変換してプリンター２０側へ出力（送信）するプログラムである。この印刷ドライバー５０は、印刷データを生成する画像処理部５２と、バッファ処理部５５及びデータ出力部５６を含む印刷データ制御部５４とを有している。印刷データ制御部５４は、生成した印刷データをＲＡＭ４４にバッファさせるバッファ処理部５５と、印刷データのバッファとは非同期にＲＡＭ４４から該印刷データを読み出し、読み出した印刷データをプリンター２０へ出力するデータ出力部５６と、を有している。画像処理部５２は、アプリケーションプログラムから受けた印刷ジョブの全部又は一部に相当する印刷データを生成し、印刷データ制御部５４又はスプールシステム５８へ出力する機能を有している。印刷データ制御部５４は、印刷ジョブをスプールシステム５８へ出力するか、印刷データへ変換してバッファするかを切り替える機能を有している。バッファ処理部５５は、画像処理部５２から受けた印刷データをＲＡＭ４４へバッファすると共に、ＲＡＭ４４に記憶された印刷データのバッファ量を監視する機能を有している。データ出力部５６は、印刷データのバッファとは非同期に、プリンター２０のＲＡＭ１４の状態に応じてＲＡＭ４４から印刷データを読み出してＩ／Ｆ４６を介してプリンター２０へ出力する機能を有している。この画像処理部５２や印刷データ制御部５４（バッファ処理部５５及びデータ出力部５６）は、それぞれ、プログラムとしての画像処理モジュール、印刷データ制御モジュール（バッファ処理モジュール及びデータ出力モジュール）として印刷ドライバー５０に組み込まれている。そして、これらのモジュールがコントローラー４１により実行されることによりそれぞれ上述した機能を発現するものとした。スプールシステム５８は、図示しないオペレーティングシステムに組み込まれた印刷に関するシステムであり、印刷ジョブをひとまとまりの印刷データとしてＲＡＭ４４又はＨＤＤ４５にスプールする機能を有するスプール処理部５９を有している。このスプールシステム５８は、印刷データの容量にオペレーティングシステム上の制約が設けられており、所定容量以内（例えば数ＧＢ以内など）の印刷データを処理可能となっている。なお、例えば、印刷ジョブは、アプリケーションプログラムに応じたデータであって文字データなどのベクタデータを含むものとしてもよいし、印刷データは、プリンター２０の各色のインクに応じたラスタデータなどとしてもよい。
【００２２】
次に、こうして構成された本実施形態のプリンター２０の動作について、特に印刷対象である印刷ジョブを印刷データに変換してプリンター２０に印刷させる処理について説明する。図２は、コントローラー４１のＣＰＵ４２により実行される印刷制御処理ルーチンの一例を示すフローチャートである。このルーチンは、ＨＤＤ４５に記憶され、印刷処理の実行指令が入力されたあとに実行される。印刷処理の実行指令は、例えば、ディスプレイ４８に表示された、図示しないアプリケーションプログラムの編集画面上で画像データを編集したあと、この画面上に表示された印刷実行ボタンをクリックすることにより入力されるものとしてもよい。また、印刷制御処理は、バッファ処理部５５及びデータ出力部５６など印刷データ制御部５４や画像処理部５２の各機能によって実行される。ここで、詳しくは後述するが、印刷データの生成処理や印刷データのバッファ処理、印刷データのプリンター２０への出力処理は非同期で別々に実行されるが、処理全体の概要を理解しやすいことから、１つの印刷制御処理ルーチンとして以下説明する。
【００２３】
このルーチンを実行すると、ＣＰＵ４２は、入力した印刷ジョブがオペレーティングシステムで規定されている印刷データの許容容量以内であるか否かを判定する（ステップＳ１００）。許容容量以内であるときには、印刷ジョブをスプールシステム５８へ出力し（ステップＳ１１０）、このルーチンを終了する。印刷ジョブを受けたスプールシステム５８では、スプール処理部５９により、変換された印刷データをひとまとまりのデータとしてＲＡＭ４４又はＨＤＤ４５にスプールする処理を行う。また、スプールした印刷データをプリンター２０のＲＡＭ１４の空き状態に応じてプリンター２０へ出力し、印刷処理を実行させるものとした。なお、印刷データへの変換は画像処理部５２が実行するものとした。印刷処理では、プリンター２０は、紙送りローラー３５によりロール紙３６から引き出した記録紙Ｓを印刷ヘッド２４に対向するように搬送し、印刷データに基づいてノズル２３からインクを記録紙Ｓへ吐出する処理を行う。このように、印刷データの全データ量がスプールシステム５８の許容容量以内であるときには、オペレーティングシステムのスプール機能により印刷を実行する。
【００２４】
一方、ステップＳ１００で印刷データ容量が許容容量を超えているとき、即ち、大容量の印刷ジョブであるときには、ＣＰＵ４２は、ステップＳ１２０以降の印刷データバッファ出力処理を実行する。印刷データバッファ出力処理では、スプール処理部５９によるスプール処理を介さずに、即ち、スプールシステム５８をスルーして印刷ジョブの印刷データをプリンター２０側へ出力する直接印刷処理モードで動作するものとした。この印刷データバッファ出力処理では、ＣＰＵ４２は、画像処理部５２により、印刷ジョブのうち一部に相当する印刷データを生成する処理を行い（ステップＳ１２０）、印刷データ制御部５４側に印刷データが入力されるまで待機する（ステップＳ１３０）。印刷データの生成処理では、１つの印刷ジョブ全体のうち一部分の印刷データを順次生成する処理を行うものとした。印刷データ制御部５４側に印刷データが入力されると、バッファ処理部５５により、入力した印刷データをＲＡＭ４４へバッファする処理を行う（ステップＳ１４０）。次に、ＣＰＵ４２は、データ出力部５６により、プリンター２０のＲＡＭ１４の空き状態に応じて、ＲＡＭ４４にバッファされている印刷データを、ファーストインファーストアウト（ＦＩＦＯ）方式でＩ／Ｆ４６を介してプリンター２０側へ出力する処理を行う（ステップＳ１５０）。この印刷データの出力処理は、印刷データのバッファ処理と非同期で行うものとした。したがって、プリンター２０の印刷処理状況によっては、ＲＡＭ４４での印刷データのバッファ量が変動する。ここでは、バッファ処理部５５がＲＡＭ４４のバッファ量を監視するものとした。具体的には、ＣＰＵ４２は、バッファ処理部５５の機能により、ＲＡＭ４４にバッファされている印刷データの容量（以下バッファ済容量と称する）が所定の第１閾値内であるか否かを判定する（ステップＳ１６０）。この第１閾値は、単位時間あたりに印刷データをバッファするデータ量を調整するための閾値であり、単位時間あたりの印刷データのバッファ量を制限する第１制限処理を実行するための閾値である。この第１閾値は、プリンター２０で割り当てられているＲＡＭ１４での印刷データの記憶容量に基づいて定められているものとしてもよい。ここでは、プリンター２０のＲＡＭ１４での印刷データの記憶容量に定められているものとした。なお、この第１閾値は、例えばＲＡＭ１４での印刷データの記憶容量の７割や８割に定められていてもよい。
【００２５】
バッファ済容量が所定の第１閾値内であるときには、バッファが完了した旨の応答を画像処理部５２側に応答し（ステップＳ１７０）、印刷ジョブが終了したか否かを判定し（ステップＳ１８０）、印刷ジョブが終了していないときには上述したステップＳ１２０以降の処理を実行する。ここでは、画像処理部５２がバッファ完了応答を受けると、ステップＳ１２０で次の印刷データを生成する処理を行うものとした。即ち、ＲＡＭ４４にバッファされている印刷データの容量が比較的少ないときには、画像処理部５２により次々と印刷データの生成が行われ、バッファ処理部５５により次々と印刷データのバッファ処理が行われるのである。一方、ステップＳ１６０でバッファ済容量が第１閾値を超えているときには、バッファ済容量が所定の第２閾値内であるか否かを判定する（ステップＳ１９０）。この第２閾値は、単位時間あたりの印刷データのバッファ量を調整するための閾値であり、単位時間あたりの印刷データのバッファ量を第１制限処理よりも更に大きく制限する第２制限処理を実行するための閾値である。この第２閾値は、第１閾値よりも大きなデータ容量に定められており、プリンター用ＰＣ４０で利用可能な印刷データの記憶容量に基づいて定めるものとしてもよく、プリンター用ＰＣ４０で利用可能な印刷データの記憶容量の７割や８割に定めるものとしてもよい。
【００２６】
ステップＳ１６０でバッファ済容量が所定の第１閾値を超え、且つステップＳ１９０でバッファ済容量が所定の第２閾値内であるときには、ＣＰＵ４２は、単位時間あたりの印刷データのバッファ量を制限する第１制限処理を実行する。具体的には、ＣＰＵ４２は、バッファ処理部５５により、所定の第１待機時間のあいだ待機したあと（ステップＳ２００）、ステップＳ１７０でバッファ完了応答を画像処理部５２側へ応答し、印刷ジョブが終了していないときには、ステップＳ１２０以降の処理を実行する。即ち、バッファ済容量が比較的大きいときには、第１待機時間のあいだ待機したのちに印刷データの生成処理を実行するのである。ここで、第１待機時間は、例えば、プリンター２０で利用可能なＲＡＭ１４の記憶容量や、プリンター２０での標準的な印刷速度、画像処理部５２での印刷データの生成速度などに応じて経験的に求めるものとしてもよい。例えば、第１待機時間は、データ出力部５６での単位時間あたりの印刷データの出力量よりも、画像処理部５２での単位時間あたりの印刷データの生成量が上回る時間に設定されているものとしてもよい。こうすれば、プリンター２０側で印刷データの受信待ちとなりにくく、印刷処理を効率よく実行することができる。
【００２７】
一方、ステップＳ１９０でバッファ済容量が所定の第２閾値をも超えているときには、ＣＰＵ４２は、単位時間あたりの印刷データのバッファ量を第１制限処理よりも大きく制限する第２制限処理を実行する。具体的には、ＣＰＵ４２は、バッファ処理部５５により、第１待機時間よりも長い所定の第２待機時間のあいだ待機したあと（ステップＳ２１０）、ステップＳ１７０でバッファ完了応答を画像処理部５２側へ応答し、印刷ジョブが終了していないときには、ステップＳ１２０以降の処理を実行する。即ち、バッファ済容量が更に大きいときには、より長い第２待機時間のあいだ待機したのちに印刷データの生成処理を実行するのである。ここで、第２待機時間は、例えば、プリンター２０で利用可能なＲＡＭ１４の記憶容量や、プリンター２０での標準的な印刷速度、画像処理部５２での印刷データの生成速度などに応じて経験的に求めるものとしてもよい。例えば、第２待機時間は、単位時間あたりの印刷データのバッファ量を第１制限処理よりも大きく制限するものの、データ出力部５６での単位時間あたりの印刷データの出力量よりも、画像処理部５２での単位時間あたりの印刷データの生成量が上回る時間に設定されているものとしてもよい。こうすれば、第２制限処理の実行により単位時間あたりの印刷データのバッファ量がより抑制されたとしても、プリンター２０側で印刷データの受信待ちとなりにくく、印刷処理を効率よく実行することができる。
【００２８】
一方、ステップＳ１８０で印刷ジョブが終了する、即ち印刷ジョブの全体が印刷データに変換されたときには、ＣＰＵ４２は、バッファ処理部５５により画像処理部５２からの印刷終了要求をＲＡＭ４４にバッファし（ステップＳ２２０）、印刷完了した旨の応答を画像処理部５２側へ応答する（ステップＳ２３０）。また、プリンター２０側から印刷完了の応答を受けると、データ出力部５６の処理をクローズし（ステップＳ２４０）、このルーチンを終了する。なお、印刷完了応答を受けた画像処理部５２側では、印刷完了の待機状態へ移行し、プリンター２０の状態取得によりプリンター２０が印刷完了状態であると、印刷処理を完了する。
【００２９】
次に、画像処理部５２、印刷データ制御部５４、スプールシステム５８及びプリンター２０での印刷データバッファ出力処理について説明する。図３は、エラー発生時の処理及び通信の様子をシーケンシャルに示す説明図であり、図４は、データ処理速度を低減する処理の様子をシーケンシャルに示す説明図であり、図５は、経過時間と印刷データのバッファ量との関係の一例の説明図であり、図６は、終了時の処理及び通信の様子をシーケンシャルに示す説明図である。図３，４，６では、説明の便宜のため、各構成により実行されるプロセス間のやりとりをシーケンシャルに示している。なお、以下の説明では、図２に示した印刷制御処理ルーチンと同じ処理については、同じステップ番号を付し、その説明を省略する。まず、印刷データバッファ出力処理を実行すると、画像処理部５２から、印刷開始要求をバッファ処理部５５へ行い（ステップＳ３００）、バッファ処理部５５では、印刷開始要求をデータ出力部５６へ行うと共に（ステップＳ４００）、開始要求に対する応答を画像処理部５２へ行う（ステップＳ４１０）。応答を受けた画像処理部５２では印刷ジョブのうち一部分の印刷データの生成処理を行い（ステップＳ１２０）、要求を受けたデータ出力部５６では、印刷開始指令をスプールシステム５８へ出力する（ステップＳ５００）。印刷開始指令を受けたスプールシステム５８は、プリンター２０へオープン指令を出力し（ステップＳ６００）、プリンター２０からの応答をデータ出力部５６へ返す処理を行う。なお、以降、スプールシステム５８では、スプール処理は行わずに、印刷データをそのままプリンター２０へ送信したり（ステップＳ６１０）、プリンター２０からの応答をそのままデータ出力部５６へ返す処理を行う。そして、バッファ処理部５５では、画像処理部５２からの印刷データが送信されるたび（ステップＳ３１０）、ＲＡＭ４４へのバッファを行い（ステップＳ１４０）、バッファ完了応答を画像処理部５２へ返す処理を繰り返し行う（ステップＳ１７０）。また、データ出力部５６では、ＲＡＭ４４にバッファされた印刷データをＦＩＦＯ方式でプリンター２０へ出力し、その応答を受ける処理を繰り返す。このように、バッファ処理部５５とデータ出力部５６とで非同期に印刷データのやりとりを行うのである。
【００３０】
ここで、図３に示すように、この繰り返し処理中に、例えばプリンター２０でカバーオープンや印刷用紙切れなどのエラーが発生すると（ステップＳ７００）、プリンター２０ではデータチャネルをクローズする一方、スプールシステム５８では書込サイズ０の送信が行われ（ステップＳ６２０）、全データを書き終わるまでリトライする処理が繰り返される。バッファ処理部５５とデータ出力部５６とが非同期でない場合には、このリトライ状態でフリーズし、画像処理部５２側でのエラー解除処理に移行することができない。特に、スプールシステム５８でのスプール処理をスルーして印刷データを画像処理部５２からプリンター２０へ出力する際には、このリトライ状態でフリーズするのが顕著となる。ここでは、データ出力部５６側の処理が滞っても、バッファ処理部５５でのバッファ処理は非同期で繰り返し実行される。また、画像処理部５２では、定期的なポーリングによりプリンター２０の状態取得が行われており（ステップＳ３２０）、プリンター２０からエラー状態の通知を受けることにより（ステップＳ７１０）、エラー解除処理へ移行することができる（ステップＳ３３０）。このため、エラー発生時においても、より確実に印刷処理を継続することができるのである。
【００３１】
また、図４に示すように、バッファ処理部５５での印刷データのバッファ処理と、データ出力部５６での印刷データ出力処理とが並行して行われている際に、プリンター２０での処理が高負荷である場合には、ＲＡＭ４４にバッファされた印刷データの出力が滞ることがある。この場合には、バッファ処理部５５で監視しているＲＡＭ４４のバッファ量が第１閾値を超えることから、ＲＡＭ４４にバッファされる単位時間あたりの印刷データ容量をより低減させる第１制限処理を実行する。即ち、第１待機時間のあいだ待機したのち（ステップＳ２００）、バッファ完了応答を画像処理部５２へ応答する（ステップＳ１７０）。画像処理部５２では、この第１待機時間のあいだ印刷データが生成されないから、ＲＡＭ４４にバッファされる単位時間あたりの印刷データ容量がより小さくなる。また、この第１制限処理の実行によっても、ＲＡＭ４４にバッファされた印刷データの容量が第２閾値を超えた場合は、より長い第２待機時間のあいだ待機したのち（ステップＳ２１０）、バッファ完了応答を画像処理部５２へ応答する第２制限処理を実行する（ステップＳ１７０）。図５に示すように、この第１及び第２制限処理によって、ＲＡＭ４４にバッファされる印刷データ量が第１閾値と第２閾値とのあいだに入る傾向になる。このように、プリンター２０の状態に応じて、印刷データのバッファ量をより適正なものとすることができるのである。
【００３２】
また、図６に示すように、画像処理部５２で、印刷ジョブの印刷データ変換が終了した場合は、印刷終了要求をバッファ処理部５５へ出力し（ステップＳ３４０）、これを受けたバッファ処理部５５では、印刷終了要求についてもバッファし（ステップＳ２２０）、印刷終了応答を画像処理部５２へ応答する（ステップＳ２３０）。これを受けた画像処理部５２では、印刷終了の待機状態とする。一方、バッファされた印刷終了要求を受けたデータ出力部５６では、印刷終了指令をスプールシステム５８へ出力し（ステップＳ５１０）、これを受けたスプールシステム５８がクローズ指令をプリンター２０へ送信する（ステップ６３０）。プリンターからの印刷完了を受けると、データ出力部５６では、本プロセスをクローズする（ステップＳ２３０）。その後、画像処理部５２では、定期的なポーリングによりプリンター２０の状態取得が行われており（ステップＳ３２０）、プリンター２０から印刷完了状態の通知を受けることにより（ステップＳ２４０）、印刷完了状態へ移行する。このように、印刷終了要求までバッファするため、より円滑に印刷処理を終了することができるのである。
【００３３】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のプリンター２０が本発明の印刷装置に相当し、プリンター用ＰＣ４０が印刷制御装置に相当し、画像処理部５２が画像処理部に相当し、ＲＡＭ４４及びＨＤＤ４５が記憶部に相当し、バッファ処理部５５がバッファ処理部に相当し、データ出力部５６がデータ出力部に相当し、スプールシステム５８がスプールシステムに相当する。なお、本実施形態では、プリンター用ＰＣ４０の動作を説明することにより本発明の印刷制御方法の一例も明らかにしている。
【００３４】
以上詳述した本実施形態のプリンター用ＰＣ４０によれば、印刷ジョブの一部に相当する印刷データを生成し、生成した印刷データをＲＡＭ４４にバッファし、印刷データのバッファとは非同期にＲＡＭ４４から印刷データを読み出し、読み出した印刷データをプリンター２０へ出力する。このように、印刷ジョブの部分ごとに印刷データをバッファするため、例えば大容量の印刷ジョブなどをスプールする際に生じうる記憶量の制限などの制約に影響されずに印刷データを生成することができる。また、印刷データの生成処理と印刷データの出力処理とが非同期で実行されるため、例えば、一方にトラブルが生じても互いに干渉せずに処理を継続することができる。したがって、より確実に印刷処理を実行させることができる。
【００３５】
また、印刷データのバッファ量が所定の第１閾値を超えたときには、単位時間あたりの印刷データのバッファ量をより低減させる第１制限処理を実行するため、ＲＡＭ４４のバッファ量の増加を抑制することができる。このため、バッファ量をより適正なものとすることが可能であり、より確実に印刷処理を実行させることができる。このとき、所定の第１待機時間を経過したのちにバッファ完了応答を行うため、バッファ完了応答を待機させることによって、より容易に記憶部のバッファ量の増加を抑制することができる。また、第１待機時間は、単位時間あたりの印刷データの出力量よりも単位時間あたりの印刷データの生成量が上回る時間に設定されているため、プリンター２０側で印刷データの受信待ちとなりにくく、印刷処理を効率よく実行することができる。更に、第１閾値は、プリンター２０の印刷データの記憶容量に基づいて定められているため、プリンター２０へ出力されるデータ量をプリンター２０の記憶容量により近いものとしやすい。このため、印刷装置でより確実に印刷処理を実行することができる。更にまた、第１制限処理によってもＲＡＭ４４のバッファ量が増加する傾向にある場合でも、第２制限によってＲＡＭ４４のバッファ量の増加を更に抑制することができる。このため、印刷データのバッファ量を第１閾値から第２閾値の間の範囲にしやすく、ＲＡＭ４４やＲＡＭ１４などの記憶容量の制限などを考慮して、より確実に印刷処理を実行させることができる。そして、第１制限処理を実行するに際して所定の第１待機時間を経たのちにバッファ完了応答を行い、第２制限処理を実行するに際して、第１待機時間よりも長い所定の第２待機時間を経過したのちにバッファ完了応答を行うため、バッファ完了応答を２段階で待機させることによって、より容易にＲＡＭ４４のバッファ量の増加を抑制することができる。そして、オペレーティングシステムのスプールシステムによるスプール処理を介さずに印刷データをプリンター２０へ出力するため、スプール処理の印刷ジョブの容量の上限などの制限を受けることなく、より確実に印刷処理を実行させることができる。そしてまた、スプールシステム５８によるスプール処理での許容容量を超える印刷データをプリンター２０へ出力する際に、印刷データをＲＡＭ４４にバッファさせるため、スプールシステムで印刷処理が実行できない場合でも、確実に印刷処理を実行させることができる。
【００３６】
また、１つの印刷ジョブの印刷データが大容量であるときには、印刷ジョブ自体を分割し複数の印刷ジョブとしてプリンター２０側へ出力し、印刷処理を実行することが考えられる。しかしながら、１つの印刷ジョブを複数の印刷ジョブに分割すると、印刷ジョブの処理毎に、給紙動作、ヘッドクリーニング、フラッシング及びホームポジション位置合わせなどを含む初期動作や終了動作が実行され、印刷処理時間が長くなる。特に、ロール紙を用いた連続印刷では、印刷データが膨大となりやすく、印刷ジョブの分割数も多数になりやすい。本発明のプリンター用ＰＣ４０では、印刷ジョブの一部分ずつをプリンター２０へ出力することにより、１つの印刷ジョブを１つの印刷ジョブとして取り扱うため、印刷ジョブを分割して生じる不必要な初期動作や終了動作などを抑制することができ、印刷処理時間が長くなるのをより抑制しつつ、より確実に印刷処理を実行させることができる。
【００３７】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００３８】
例えば、上述した実施形態では、第１制限処理や第２制限処理を行うものとしたが、第２制限処理を省略してもよいし、第１制限処理及び第２制限処理の両方を省略してもよい。こうしても、バッファ処理部５５とデータ出力部５６とが非同期で印刷データのバッファ処理や印刷データの出力処理などを実行するため、より確実に印刷処理を実行させることができる。あるいは、第２制限処理よりも更に単位時間当たりの印刷データのバッファ量が制限される第３制限処理を加えるものとしてもよいし、更に多数の段階の制限処理を行うものとしてもよい。
【００３９】
上述した実施形態では、バッファ済容量が第１閾値を超えた場合に、第１待機時間を経過したあとバッファ完了応答を行うものとして第１制限処理を実行するものとしたが、単位時間あたりの印刷データのバッファ量をより低減させるものとすれば、特にこれに限定されず、例えば、印刷データの生成速度自体を低減してもよいし、生成した印刷データの転送速度自体を低減させてもよい。こうしても、バッファ処理部５５とデータ出力部５６とが非同期で印刷データのバッファ処理や印刷データの出力処理などを実行するため、より確実に印刷処理を実行させることができる。なお、第２制限処理においても同様である。
【００４０】
上述した実施形態では、データ出力部５６はオペレーティングシステムのスプールシステムによるスプール処理を介さずに印刷データをプリンター２０へ出力するものとしたが、特にこれに限定されず、オペレーティングシステムやスプールシステムに関係せずに、印刷制御処理ルーチンのステップＳ１２０以降の印刷データバッファ出力処理を行うものとしてもよい。こうしても、バッファ処理部５５とデータ出力部５６とが非同期で印刷データのバッファ処理や印刷データの出力処理などを実行するため、より確実に印刷処理を実行させることができる。
【００４１】
上述した実施形態では、スプールシステム５８の許容容量を超えた印刷データについて、印刷制御処理ルーチンのステップＳ１２０以降の印刷データバッファ出力処理を行うものとしたが、特にこれに限定されない。例えば、許容容量に関係せず印刷データバッファ出力処理を行うものとしてもよい。こうしても、より確実に印刷処理を実行させることができる。
【００４２】
上述した実施形態では、第１閾値はＲＡＭ１４の利用可能容量に基づいて定められているものとしたが、特にこれに限定されず、印刷処理をより確実に実行される値に設定してもよい。また、第２閾値は、プリンター用ＰＣ４０の利用可能な記憶容量に基づいて設定されているものとしたが、第１閾値よりも大きな値であれば特にこれに限定されず、印刷処理をより確実に実行される値に設定してもよい。また、第１待機時間や第２待機時間は、データ出力部５６での単位時間あたりの印刷データの出力量よりも、画像処理部５２での単位時間あたりの印刷データの生成量が上回る時間に設定されているものとしたが、単位時間当たりの印刷データバッファ量が低減されるものとすれば、特にこれに限定されない。
【００４３】
上述した実施形態では、プリンター２０は、大判印刷可能なカラープリンターとしたが特にこれに限定されない。また、プリンター２０は、インクを吐出するインクジェット式の印刷機構２１を備えたものとしたが、特にこれに限定されず、レーザープリンターとしてもよいし、熱転写プリンターとしてもよいし、ドットインパクトプリンターとしてもよいし、これらのモノクロプリンターとしてもよい。なお、印刷ジョブは、プリンター２０で直接印刷できない形式のデータとしてもよい。また、プリンター用ＰＣ４０のような印刷制御装置としたが、印刷制御方法としてもよいし、これを実行可能なプログラムの形式にしてもよい。
【符号の説明】
【００４４】
１０  プリンターシステム、１１  コントローラー、１２  ＣＰＵ、１３  フラッシュＲＯＭ、１４  ＲＡＭ、２０  プリンター、２１  印刷機構、２２  キャリッジ、２３  ノズル、２４  印刷ヘッド、２５  カートリッジ、２８  キャリッジ軸、３０  紙送り機構、３２  キャリッジベルト、３３  駆動モータ、３５  紙送りローラー、３６  ロール紙、４０  プリンター用パソコン（ＰＣ）、４１  コントローラー、４２  ＣＰＵ、４３  フラッシュＲＯＭ、４４  ＲＡＭ、４５  ＨＤＤ、４６  ネットワークインターフェイス（Ｉ／Ｆ）、４７  入力装置、４８  ディスプレイ、４９  バス、５０  印刷ドライバー、５２  画像処理部、５４  印刷データ制御部、５５  バッファ処理部、５６  データ出力部、５８  スプールシステム、５９  スプール処理部、Ｓ  記録紙。
【図１】
0005716379.tif 000002
【図２】
0005716379.tif 000003
【図３】
0005716379.tif 000004
【図４】
0005716379.tif 000005
【図５】
0005716379.tif 000006
【図６】
0005716379.tif 000007