(57)【特許請求の範囲】
【請求項１】
給紙トレーと給紙カセットを含んだ複数の給紙装置と、
各給紙装置に対応した各用紙サイズを記憶する記憶手段と、
用紙ナシの給紙装置又は用紙交換された給紙装置に対応する用紙サイズとして不明を前記記憶手段に記憶させる手段と、
印刷ジョブが指定する用紙サイズと前記記憶手段に記憶されている用紙サイズとに基づいて、前記複数の給紙装置からいずれかの給紙装置を自動的に選択する選択手段と、
前記選択された給紙装置から給紙した後の紙送り過程で前記給紙した用紙のサイズを検出する検出手段と、
前記検出した用紙サイズが印刷ジョブ指定の用紙サイズと一致するか否かの用紙サイズチェックを行う用紙サイズチェック手段と、
前記用紙サイズチェックの結果、前記検出した用紙サイズが前記印刷ジョブ指定の用紙サイズと一致するときは、前記給紙した給紙装置の用紙サイズを前記印刷ジョブ指定の用紙サイズとみなして前記記憶手段に記憶し、前記印刷ジョブに従う印刷を継続する印刷制御手段と、
を備え、
前記選択手段が、
（１）前記記憶手段において前記給紙カセットに対応付けられた用紙サイズと前記給紙トレーに対応付けられた用紙サイズとが同じであり、且つ、前記印刷ジョブ指定の用紙サイズがそれらの用紙サイズと同じであれば、前記給紙カセットを選択し、
（２）前記記憶手段において前記給紙カセットに対応付けられた用紙サイズと前記給紙トレーに対応付けられた用紙サイズとのいずれかが不明であり、且つ、前記印刷ジョブ指定の用紙サイズが、前記記憶手段において対応付けられている用紙サイズと異なっていれば、不明に対応した給紙装置を選択し、
前記印刷制御手段が、前記（２）の際、前記選択された給紙装置から給紙された用紙について、前記用紙サイズチェックを行い、前記検出した用紙サイズが前記印刷ジョブ指定の用紙サイズと一致するときは、前記印刷ジョブに従う印刷を継続する、
プリンタ。
【請求項２】
前記記憶手段には、前記印刷ジョブに従う印刷が終わっても、前記記憶された用紙サイズが記憶されたままであり、
前記選択手段は、前回の印刷ジョブにおいて前記記憶手段に記憶されている用紙サイズを基に、今回の印刷ジョブにおいて、給紙装置を選択する、
請求項１記載のプリンタ。
【請求項３】
前記優先的に選択した給紙装置の用紙が空になったことが検出されたときは、前記用紙サイズが不明の給紙装置に切換えて印刷を続けることを特徴とする請求項１記載のプリンタ。
【請求項４】
前記用紙サイズチェックの結果、前記検出した用紙サイズが前記印刷ジョブ指定の用紙サイズと一致しないとき、或いは、前記記憶手段に記憶されている用紙サイズのなかに印刷ジョブ指定の用紙サイズと一致するものと前記不明となっているものとのいずれも存在しないときは、ユーザにエラーを通知することを特徴とする請求項１記載のプリンタ。
【請求項５】
用紙サイズを不明とした給紙装置を使用して印刷したときの用紙のサイズが、前記用紙サイズチェックの結果、印刷ジョブ指定の用紙サイズと一致しないときは、印刷を停止してユーザにエラーを通知することを特徴とする請求項１記載のプリンタ。
【請求項６】
複数の給紙装置と、
各給紙装置に対応した各用紙サイズを記憶する記憶手段と
前記記憶手段に記憶されている用紙サイズのなかに印刷ジョブ指定の用紙サイズと一致する用紙サイズが無いが用紙サイズとして不明の用紙サイズがあればその不明の用紙サイズに対応した給紙装置を前記複数の給紙装置から自動的に選択する選択手段と、
前記選択された給紙装置から給紙した後の紙送り過程で前記給紙した用紙のサイズを検出する検出手段と、
前記検出した用紙サイズが印刷ジョブ指定の用紙サイズと一致するか否かの用紙サイズチェックを行う用紙サイズチェック手段と、
エラーをユーザに通知する印刷制御手段と
を備え、
前記印刷制御手段は、前記用紙サイズチェックの結果、前記検出した用紙サイズが前記印刷ジョブ指定の用紙サイズと一致しないときは、印刷を停止してユーザにエラーを通知するよう構成されており、もし、その印刷ジョブについてエラーの通知後にユーザから継続の指示を受領済みであるならば、前記用紙サイズチェックの結果、前記検出した用紙サイズが前記印刷ジョブ指定の用紙サイズと一致しないときでも、印刷を停止せず継続する、
プリンタ。
【請求項７】
前記記憶手段には、前記印刷ジョブに従う印刷が終わっても、前記記憶された用紙サイズが記憶されたままであり、
前記選択手段は、前回の印刷ジョブにおいて前記記憶手段に記憶されている用紙サイズを基に、今回の印刷ジョブにおいて、給紙装置を選択する、
請求項６記載のプリンタ。
【請求項８】
前記印刷制御手段は、前記記憶手段に記憶されている用紙サイズのなかに印刷ジョブ指定の用紙サイズと一致する用紙サイズも用紙サイズとして不明の用紙サイズも無い場合に、エラーをユーザに通知する、
請求項６記載のプリンタ。
【発明の詳細な説明】
【０００１】
【発明の技術分野】
本発明は、プリンタに関し、特に、プリンタの給紙装置にセットされた用紙のサイズを検出するための技術に関する。
【０００２】
【従来の技術】
プリンタ、例えば、「ホストベースプリンタ」又は「ダムプリンタ」と呼ばれる低価格なプリンタには、コスト削減の観点から、給紙装置（給紙トレー、又は給紙カセットともいう）にセットされた用紙サイズを検知するセンサが設けられていないものがある。この種のプリンタを使用して印刷を行なう場合は、ユーザは、プリンタドライバ或いはプリンタのコントロールパネルを用いて、給紙装置にセットされた用紙のサイズを入力する。
【０００３】
【発明が解決しようとする課題】
上述した用紙サイズ入力の操作は、給紙装置の用紙を交換したときはその度に行なわなければならない。
【０００４】
また、上述した種のプリンタにおいて給紙装置が複数あるものには、「給紙装置自動選択」のモードが設けられているものがあるが、このモードを指定して印刷を実行するためには、各給紙装置毎に用紙のサイズを入力しておく必要がある。
【０００５】
以上のように、給紙装置にセットされた用紙サイズを検知するセンサが設けられていないプリンタを使用して印刷する場合には、上述した煩わしい入力操作が必要になるので、ユーザにとって不便である。
【０００６】
従って、本発明の目的は、給紙装置にセットされた用紙サイズを検知するセンサが設けられていないプリンタを使用して印刷をする場合に、給紙装置にセットされた用紙サイズを入力する必要をなくすことにある。
【０００７】
【課題を解決するための手段】
本発明に従うプリンタは、１又は複数の給紙装置と、いずれかの給紙装置から給紙した後の紙送り過程で給紙した用紙のサイズを検出する手段を備えることを特徴とする。
【０００８】
本発明によれば、給紙装置にセットされた用紙のサイズを検出できなくても、印刷の過程で給紙装置にセットされた用紙サイズを検出することができる。
【０００９】
好適な実施形態では、検出した用紙サイズが印刷ジョブ指定の用紙サイズと一致するか否かをチェックする手段と、検出した用紙サイズが印刷ジョブ指定の用紙サイズと一致するときは給紙した給紙装置の用紙サイズを印刷ジョブ指定の用紙サイズとみなして記憶する手段とが更に備えられる。また、１又は複数の給紙装置の用紙の有無をチェックする手段と、用紙ナシの給紙装置又は用紙交換された給紙装置の用紙サイズを不明とみなし記憶する手段とが更に備えられる。
【００１０】
更に好適には、印刷ジョブが指定する用紙サイズと、上記記憶した用紙サイズとに基づいて、１又は複数の給紙装置からいずれかの給紙装置を自動的に選択する手段が備えられる。具体的には、上記記憶した用紙サイズのなかに、印刷ジョブ指定の用紙サイズと一致するものと、上記不明となっているものとのどちらか一方があれば、少なくともそのどちらか一方の用紙サイズの給紙装置を自動的に選択して印刷処理を実行する。また、上記記憶した用紙サイズのなかに、印刷ジョブ指定の用紙サイズと一致するものと、上記不明となっているものとの両方があれば、印刷ジョブ指定の用紙サイズの給紙装置を優先的に選択して印刷を実行し、その優先的に選択した給紙装置の用紙が空になったときは、用紙サイズが不明の給紙装置に切換えて印刷を続ける。
【００１１】
好適な実施形態では、上記用紙サイズチェックの結果、検出した用紙サイズが印刷ジョブ指定の用紙サイズと一致しないとき、或いは、上記記憶した用紙サイズのなかに印刷ジョブ指定の用紙サイズと一致するものと上記不明となっているものとのいずれも存在しないときは、ユーザにエラーを通知する。
【００１２】
好適な実施形態では、用紙サイズを不明とした給紙装置を使用して印刷したときの用紙のサイズが、前記用紙サイズチェックの結果、印刷ジョブ指定の用紙サイズと一致しないときは、印刷を停止してユーザにエラーを通知することを特徴とする請求項３記載のプリンタ。
【００１３】
【発明の実施の形態】
図１は、本発明の一実施形態のプリントシステムの構成を示す。
【００１４】
本実施形態のプリンタ３は、ホスト装置１側でビットマップ展開されたイメージデータをホスト装置１から受信して電子写真方式によりページ単位で印刷するホストベースのページプリンタである（但し、これは一例であって、他のタイプのプリンタに本発明の原理は適用できる）。このプリンタ３は、パラレルインタフェースのような専用インタフェース又はＬＡＮのようなネットワークを介して、ホスト装置１と双方向通信可能に接続され、ホスト装置１からはコマンドデータ及びビットマップ展開されたイメージデータを受信し、また、ホスト装置１へはプリンタの各種ステータス情報（例えば、受信バッファの空きサイズ、プリンタレディ情報、印刷成功情報、エラー情報等）を送信することができる。ホスト装置１から受信したイメージデータを蓄えるための受信バッファは、プリンタ３内のＤＲＡＭ２１内に固定又は可変の容量で確保されている。この受信バッファの容量は、１ページ分のイメージデータのサイズより小さくても構わない。ＣＰＵ２３のワークエリアもＤＲＡＭ２１内に確保されており、このワークエリアには、上述したプリンタのステータスなどが書込まれる。
【００１５】
プリンタ３は、電子写真プロセスを実行する機構である印刷エンジン２７と、ホスト装置１との双方向通信によりイメージデータをホスト装置１から受信して必要な加工を施し印刷エンジン２７に渡す一連の処理回路、すなわちホストインタフェース回路１１、ＤＭＡコントローラ１３、データ伸張回路１５、ビデオコントローラ１７、後処理回路１９及びタイマ３０を有している。これらの処理回路１１〜１９、３０は、例えば専用ハードウェアロジック回路で構成されていて純粋にハードウェアだけでそれぞれ動作をするので、ソフトウェアに依って動作するものに比較して高速である。
【００１６】
さらに、プリンタ３は、ホスト装置１からの要求の解釈やエラーの検出やプリンタステータスの管理や上記処理回路１１〜１９、３０の制御や動作履歴（トナー消費量、印刷枚数など）の管理などを行なうためのマイクロコンピュータ、つまり、ＣＰＵ２３と、ＣＰＵ２３のためのプログラムや固定データ等を格納したＲＯＭ２５と、主として受信バッファとして用いられる前述のＤＲＡＭ２１と、上記の動作履歴を保存するためのＥＥＰＲＯＭ２９などを有している（ＥＥＰＲＯＭ２９には後述するようにプリンタ３が検出した用紙サイズが記録される）。このマイクロコンピュータ２１〜２５、２９はバス３２を介して上述したハードウェア処理回路１１〜１９、３０とデータ授受可能に接続されている。各部の機能は次のとおりである。
【００１７】
ホストインタフェース回路１１は、ホスト装置１からのコマンドデータやイメージデータの受信や、ホスト装置１への上記ステータス情報の送信などの、ホスト装置１との双方向通信の制御を行なう。図示していないが、ホストインタフェース回路１１内には、ホスト装置１からの受信したデータを一時保持する入力ＦＩＦＯ（先入先出）バッファと、ホスト装置１へ送信すべきデータを一時保持する出力ＦＩＦＯバッファがある。
【００１８】
ＤＭＡコントローラ１３は、ＤＲＡＭ２１内に設けられた受信バッファへのイメージデータの書込み及び受信バッファからのイメージデータの読出しをＤＭＡ（Direct Memory Access）により行なう。ＤＭＡによるイメージデータのＤＲＡＭ２１への入出力経路には、受信ＤＭＡ３１と転送ＤＭＡ３３の２チャンネルがある。受信ＤＭＡ３１を通じて、ホスト装置１からのイメージデータがＤＲＡＭ２１に書込まれる。また、転送ＤＭＡ３３を通じて、イメージデータがＤＲＡＭ２１からデータ伸張回路１５へ転送される。
【００１９】
データ伸張回路１５は、ホスト装置１からのイメージデータが圧縮されていた場合、これを元のデータに伸張してからビデオコントローラ１７へ渡し、一方、ホスト装置１から圧縮されずに来たデータには、そのままビデオコントローラ１７へ渡す。ビデオコントローラ１７は、印刷エンジン２７へのイメージデータの転送（ビデオ転送という）のタイミングを制御する。
【００２０】
後処理回路１９は、イメージデータの解像度を印刷エンジン２７に合わせるための解像度変換、文字などの輪郭を滑らかなものにするエッジスムージング、ガンマ特性などを考慮して階調値を調整する階調制御などの後処理をイメージデータに施し、その後処理したイメージデータを印刷エンジン２７に送る。上述した解像度変換は、例えば印刷エンジン２７の解像度が６００ｄｐｉである場合、ホスト装置１から受信したデータが３００ｄｐｉであったならば、これを印刷エンジン２７と同じ６００ｄｐｉに変換する機能である。この解像度変換があることによって、例えば、ホスト装置１から最初に６００ｄｐｉのイメージデータを送ったところデータ量が多すぎて印刷も失敗した場合、次にホスト装置１から解像度３００ｄｐｉに落としたイメージデータを再送して印刷をリトライする、といったことが可能になる。
【００２１】
ＣＰＵ２３は、印刷の開始時にホスト装置１からの要求を受けてプリンタ情報（通信モード、ＲＡＭサイズなどの１つの印刷ジョブで或程度固定的な状態、用紙あり／なし、エラー情報など）をホスト装置１に通知したり、印刷の最中にプリンタ３の現在のステータス（印刷エンジン２７の状態、受信バッファの空き容量、エラーが発生中か否か、各ページ毎に印刷が成功したかなどの時々刻々変動する状態情報）を実時間で取得してＤＲＡＭ２１内のワークエリアに記録し、ホスト装置１から要求があるとそのステータスをホスト装置１に通知したり、ＤＭＡコントローラ１３が行なう受信ＤＭＡ３１や転送ＤＭＡ３３の開始タイミングや開始アドレス等を制御したり、プリンタ３の動作履歴を計算してＥＥＰＲＯＭ２９に保存したりする。
【００２２】
図２は、ＤＲＡＭ２１の構成を示す。
【００２３】
既に説明したように、ＤＲＡＭ２１内にはワークエリア４１と受信バッファ４３が確保されている。ワークエリア４１はヒープメモリ及びスタックメモリとして使用され、上述したプリンタのステータス情報などが書込まれる。受信バッファ４３はリングバッファとして利用される。図示の例では、ＤＲＡＭ２１の全エリアのうちバッファ先頭アドレスＢＵＦＴＯＰからバッファ最終アドレスＢＵＦＢＴＭまでが受信バッファ４３である。受信ＤＭＡでは、そのアドレスポイント（受信ＤＭＡアドレス）ＲＡＤを、バッファ先頭アドレスＢＵＦＴＯＰからバッファ最終アドレスＢＵＦＢＴＭへ向かう方向へ進めていき、バッファ最終アドレスＢＵＦＢＴＭに達するとバッファ先頭アドレスＢＵＦＴＯＰに戻る。同様に、転送ＤＭＡでも、そのアドレスポイント（転送ＤＭＡアドレス）ＴＡＤを、バッファ先頭アドレスＢＵＦＴＯＰからバッファ最終アドレスＢＵＦＢＴＭへ向かう方向へ進めていき、バッファ最終アドレスＢＵＦＢＴＭに達するとバッファ先頭アドレスＢＵＦＴＯＰに戻る。
【００２４】
図示の例では、受信バッファ４３にＢページのデータ５３を蓄積中であり、且つＢページの前のＡページのデータ５１のビデオ転送を開始しようとしている状態を示している。各ページのデータ５１、５３には、各ページイメージに関するホスト情報（解像度、トータルバンド数など）、各バンド情報（圧縮ON/OFF、圧縮バンドサイズなど）及び各バンドのイメージデータなどが含まれている。
【００２５】
上述したプリンタ３は、後述するように給紙装置を複数備えており、ユーザが所望の給紙装置を指定する印刷モードと、給紙装置を自動的に選択する印刷モード（以下、給紙装置自動選択モードという）とを有している。プリンタ３は、各給紙装置にセットされた用紙のサイズを印刷開始前に検出するセンサを持っておらず、以下のような用紙サイズ検出のためのセンサ回路を有している。
【００２６】
図３は、プリンタ３における用紙サイズ検出のための構成を示す。
【００２７】
このプリンタ３に備えられる給紙装置は、例えば、給紙カセット１０１と、給紙トレー１０３であり（給紙カセット１０１、給紙トレー１０３は共に複数あっても良い）、給紙カセット１０１又は給紙トレー１０３にセットされた用紙は、図示しない給紙ローラーによって給紙され、点線矢印に沿って送られて排出される。このプリンタ３は、給紙装置１０１又は１０３から給紙されて排出された用紙（つまり印刷し終えた用紙）の紙送り方向の長さを算出するセンサ回路１０５を備えている。センサ回路１０５は、紙送り速度と、用紙が用紙検出地点Ｐを通過した時間長から、印刷し終えた用紙の紙送り方向の長さを算出し、算出した用紙の長さから用紙サイズを検出する。プリンタ３は、検出した用紙サイズと、印刷ジョブが指定する用紙サイズとを比較し（或いは、上記算出した用紙の長さと、ジョブ指定の用紙サイズの長さとを比較し）、それらが一致すれば、その印刷で使用した給紙装置の用紙サイズをジョブ指定の用紙サイズにみなす。
【００２８】
プリンタ３は、最初は、給紙カセット１０１及び給紙トレー１０３に用紙がセットされたときは両方とも用紙サイズを「不明」にする（プリンタ３の電源投入時に、給紙カセット１０１及び給紙トレー１０３の用紙サイズを「不明」にしても良い）。給紙装置１０１又は１０３から１枚給紙し印刷し終えたとき、プリンタ３は、センサ回路１０５により上記用紙サイズの検出を行い、検出した用紙サイズと、印刷ジョブが指定する用紙サイズ（ユーザが要求した用紙サイズ、例えば「Ａ４」）とを比較する。それらが一致すれば、プリンタ３は、給紙した給紙装置１０１又は１０３の用紙サイズを「Ａ４」とみなし、以後、給紙装置１０１又は１０３の用紙がなくなるまで（使用されている給紙装置が給紙カセット１０１であれば給紙カセット１０１が引き抜かれるまでも含む）、給紙装置１０１又は１０３の用紙サイズを「Ａ４」に固定する（給紙装置１０１又は１０３の用紙が無くなったときは（使用されている給紙装置が給紙カセット１０１の場合は給紙カセット１０１が引き抜かれたときも）、用紙サイズを「不明」とする）。
【００２９】
一方、上記検出サイズとジョブ指定サイズ「Ａ４」とが一致しなければ、プリンタ３は、印刷を中止してユーザに印刷エラーを通知する。
【００３０】
上述したセンサ回路１０５は、ジョブ指定の用紙サイズに、給紙された用紙のサイズが一致するか否かを判定できる程度の精度（性能）で良い、換言すれば、給紙された用紙のサイズがどのようなサイズであるかまでを正確に認識できる必要はない。
【００３１】
なお、プリンタ３には、従来のようにユーザが各給紙装置１０１、１０３にセットした用紙のサイズを入力することもでき、プリンタ３は、ユーザ入力情報に基づいて「給紙装置自動選択」モードを実行することもできる。
【００３２】
例えば、印刷ジョブ「Ａ４サイズ１０枚」を実行するときに、給紙カセット１０１にＡ４サイズの用紙が５枚、給紙トレーにＡ４サイズの用紙が６枚セットされている場合において、給紙カセット１０１の用紙サイズが「Ａ４」に固定、給紙トレー１０３の用紙サイズが「不明」の状態であるときは、プリンタ３は、用紙サイズが「Ａ４」と分かっている給紙カセット１０１を使って印刷を開始し（このときも上記用紙サイズの検出及び比較を行なう）、給紙カセット１０１の用紙が無くなったときは、給紙カセット１０１の用紙サイズを「不明」にして給紙トレー１０３に切換えて印刷を続行する。このときも、プリンタ３は、上記用紙サイズの検出及び比較を行ない、検出用紙サイズがジョブ指定サイズ「Ａ４」に一致すれば、印刷中は給紙トレー１０３の用紙サイズを「Ａ４」にする。上記印刷ジョブの印刷を終えたときは、プリンタ３は、Ａ４サイズの印刷を成功した給紙トレーの用紙サイズを「Ａ４」にセットしたままにしておく。この後、用紙サイズの異なる印刷ジョブ、例えば「Ｂ４サイズ１０枚」を実行するときは、プリンタ３は、給紙カセット１０１の用紙サイズも給紙トレー１０３の用紙サイズも「Ａ４」と記憶しているので、印刷実行前にどの給紙装置１０１、１０３にも適切な用紙サイズがセットされていない旨を検出して、その旨（後述の「用紙交換エラー」）をユーザに通知する。
【００３３】
給紙装置自動選択モードでは、例えば、給紙カセット１０１の用紙サイズも給紙トレー１０３の用紙サイズもジョブ指定サイズに一致していれば、給紙カセット１０１を優先的に使用して印刷するようにする。これにより、ユーザは、給紙カセット１０１の固定された用紙サイズ以外の印刷ジョブを行なうときは、給紙トレー１０３の用紙を印刷ジョブの用紙サイズのものに交換するだけで良く、給紙トレー１０３は用紙の交換が行ない易いので、ユーザにとって便利である。
【００３４】
以下、この実施形態におけるホスト装置１及びプリンタ３の動作を説明する。
【００３５】
図４は、ホスト装置１がプリンタ３へイメージデータを送るときに各ページ毎に行なう制御のフローを示す。
【００３６】
ホスト装置１は、まず、印刷しようとするページが１ページ目か２ページ目以降かを判断し（ステップＳ１）、１ページ目であれば（Ｓ１でＹｅｓ）、プリンタ３からプリンタ情報を取得する（Ｓ２）。このプリンタ情報には、通信モード（プリンタ３とホスト装置１との間のネゴシエーションで成立した通信モードであって、例えばパラレル通信の場合はCompatibilityやECPなど）、ＤＲＡＭサイズ、各給紙装置１０１、１０３の用紙の有無、又はエラー情報（紙ジャム、カバーオープン、エンジン異常等）などが含まれており、これらのプリンタ情報が準備できていない場合には準備中を示す情報が含まれる。２ページ目以降は（Ｓ１でＮｏ）、プリンタ情報の取得は行なわない。また、１ページ目のときだけでなく、紙ジャムや用紙無しなどの印刷エラーが発生した後もプリンタ情報を取得し、プリンタ３がエラーから復帰しているか否かをチェックする。
【００３７】
プリンタ３からプリンタ情報を受けると、ホスト装置１は、そのプリンタ情報が有効か無効か、つまり上述した通信モードやＤＲＡＭサイズなどを示した有効なプリンタ情報であるか、或いは準備中を示す無効なプリンタ情報かを判断し（Ｓ３）、情報が準備中（無効）の場合は、ホスト装置１は、有効なプリンタ情報を受けるまでプリンタ３からプリンタ情報を繰り返しリードする。なお、プリンタ情報が準備中（無効）になる原因は、プリンタ３がプリンタイニシャライズ中か、又はエラーからの復帰中であることである。
【００３８】
有効なプリンタ情報を取得すると、ホスト装置１は、プリンタ３の通信モードやＲＡＭサイズを基にイメージデータの送信モード（解像度など）を決定する。さらに、ホスト装置１は、プリンタ３との通信で用いるポートの種類（パラレル、ＵＳＢ、イーサネットなど）、又はプリンタ３から通知された通信モード（例えば、パラレルの場合のCompatibility、ECPなど）に応じて、プリンタ３がビデオ転送を開始するタイミング（１ページ中の何バンド目のデータを受信したらビデオ転送を開始するか）を決定する。このビデオ転送開始タイミングは、次のような考えに基づいて決定する。即ち、ホスト装置１からプリンタ３へのデータ送信速度をｘ〔バイト／秒〕、プリンタ３内でのビデオ転送の速度をｙ〔バイト／秒〕、ホスト装置１から送るイメージデータの圧縮率をα、１ページの全イメージデータ数をＴ〔バイト〕、受信バッファのサイズをＭ〔バイト〕、ビデオ転送を開始する時点で受信バッファに蓄えられているデータサイズをＰ〔バイト〕とする。通常、データ受信速度ｘよりもビデオ転送速度ｙの方が高速であり、この高速のビデオ転送の転送ＤＭＡアドレス（図２のＴＡＤ）が低速のデータ受信の受信ＤＭＡアドレス（図２のＲＡＤ）に追いついてしまうと、そこでビデオ転送がストップしてしまい印刷失敗となる（これを「アンダーランエラー」という）。しかし、
Ｐ≦Ｍ                          …（１）
（α×Ｔ−Ｐ）／ｘ＜Ｔ／ｙ      …（２）
を満足するようにＰを設定しておけば、ビデオ転送の転送ＤＭＡアドレスがデータ受信の受信ＤＭＡアドレスに追いつかないうちに１ページ分のデータ受信が完了するので、アンダーランエラーは生じない。（１）、（２）式より、
Ｍ≧Ｐ＞Ｔ（α−ｘ／ｙ）        …（３）
が導かれる。この（３）式を満たすようにＰを設定すればアンダーランエラーは生じない。そこで、（３）式を満たす最小のＰ〔バイト〕を圧縮バンドサイズ〔バイト〕で割って、その商に１を加えたバンド数を、ビデオ転送の開始タイミング（つまり、このバンド数分のデータが受信バッファに受信された時点でビデオ転送を開始する）として設定する。その際、通信ポートの種類や通信モードによって上記データ送信速度ｘが異なるから、それに応じて上記ビデオ転送開始タイミングとしてのバンド数（以下、「指定バンド数」）を変える。例えば、パラレルポートのように常に帯域を確保できる場合はフライングスタート（つまり、１ページの全バンド数を受信する前に印刷開始）を行なうよう、また、ネットワーク通信のように帯域が安定してないポートの場合は１ページの全バンド数を受信してから印刷を開始するよう、指定バンド数（ビデオ転送開始タイミング）を設定する。また、パラレルポートの中でも、ECPのように送信速度xの早いモードについては、開始タイミングを早くし（指定バンド数を少なくし）、Compatibilityのように送信速度ｘの遅いモードについては、開始タイミングを遅く（指定バンド数を多く）設定する。
【００３９】
このようにイメージデータの解像度、ビデオ転送開始タイミング（指定バンド数）を決定した上で、ホスト装置１は、これから印刷しようとするページのイメージデータに関するホスト情報（決定した給紙装置、印刷枚数、イメージデータの解像度、１ページのトータルバンド数、及び指定バンド数（ビデオ転送開始タイミング）など）をプリンタ３へ送信する（Ｓ４）。プリンタ３は、このホスト情報を基に、レジスタの設定やバッファクリアなどのページ設定を行なう。
【００４０】
次に、ホスト装置１は、プリンタ３からプリンタステータス（エンジンの状態、空きバッファ容量、エラーが発生中か、各ページ毎に印刷が成功したか、など）を受信し（Ｓ５）、これに基づきプリンタ３が１バンドのイメージデータを受信可能かチェックする（Ｓ６、Ｓ８）。すなわち、次の（１）〜（４）の条件が満たされているか否かをチェックする。
【００４１】
（１）印刷エンジン２７が印刷動作可能である。すなわち、印刷エンジン２７がデータ受信可能であり、印刷不能状態（紙無し、紙ジャム、カバーオープン、エンジン異常など）でなく、且つ、定着器の温度が規定値である。
（２）プリンタ３のページ設定が完了している。
（３）プリンタ３の受信バッファに１バンド分以上の空きがある。
（４）プリンタ３にエラーが発生していない。
【００４２】
ホスト装置１は、（４）の条件が満たされていない（例えば、印刷し終えた用紙サイズ（上記検出用紙サイズ）とジョブ指定サイズとが一致してない）場合は（Ｓ６でＹｅｓ）、エラー処理を実行し（Ｓ７）、その処理において、後述するように、ユーザに「再印刷（エラーが発生したページと同じページを印刷）」、「継続（エラーが発生したページの次のページから印刷）」、或いは「中止」を選択させる。（１）〜（４）の条件がすべて満たされていれば、ホスト装置１は、１バンドのイメージデータを受信可能と判断する（Ｓ８でＹｅｓ）。
【００４３】
また、プリンタ３は１ページの印刷が終了する度に、印刷の成功／失敗のフラグを立てる。ホスト装置１は、プリンタ３から取得したステータスに含まれる印刷成功／失敗のフラグを見て（Ｓ６）、「成功」であればそのページのイメージデータをホスト装置１内から削除し、「失敗」であれば、ステップＳ１に戻り失敗したページからイメージデータを再送信する。再送信する場合、例えば印刷失敗の原因がアンダーランエラーであるときには、イメージデータの解像度をもっと低い値に変換して（例えば、６００ｄｐｉから３００ｄｐｉに落とし）、再送信する。解像度を落とすことによってデータサイズが小さくなるので、再送信ではアンダーランエラーが生じにくくなる。
【００４４】
ステップＳ８でプリンタ３が１バンドを受信可能と判断した場合にのみ、ホスト装置１は１バンドのイメージデータを送信する（Ｓ９）。これにより、オーバーランエラー（イメージデータの展開と書込みが非常に早くてバッファメモリが満杯になり後続のデータが書込めなくなるエラー）が回避される。ホスト装置１は、バンドイメージデータを送信する前に、そのバンドデータが圧縮によってサイズが縮小するか否かを判断し、縮小する場合にはそのバンドデータを圧縮し、縮小しない場合には圧縮しない。そして、ホスト装置１は、バンドイメージデータの送信前に、プリンタ３に対し、そのバンドデータが圧縮データであるか否か（圧縮ＯＮ／ＯＦＦ）、圧縮したバンドデータのサイズ（圧縮ＯＦＦの場合は、元のバンドデータサイズ）を通知しておく。プリンタ３は、そのバンドイメージデータをＤＲＡＭ２１の受信バッファに蓄え、所定バンド数のデータが蓄えられたらビデオ転送をスタートする。
【００４５】
次にホスト装置１は、１ページ全てのバンドデータを送信し終えたか否かをチェックし（Ｓ１０）、送信し終えていなければステップＳ５へ戻る。このようにして、ホスト装置１は、バンド単位でイメージデータをプリンタ３に送信し、その都度、送信前にプリンタステータスをチェックしてプリンタ３が１バンド分のデータを受信できるか確認する。よって、プリンタ３は、少なくとも１バンド分の空きバッファ容量があるときに、多くとも１バンドサイズのデータを受信することになる（圧縮ＯＦＦで１バンド、圧縮ＯＮでは１バンド未満）。これにより、前述したようにオーバーランエラーが回避される。
【００４６】
図５は、ステップＳ７のエラー処理の流れを示す。
【００４７】
ホスト装置１は、プリンタ３から通知されたエラーをチェックする（Ｓ７−１）。ここで、そのエラーが、「用紙サイズエラー（後述するように、用紙サイズが「不明」となっている給紙装置１０１又は１０３を使ったときに上記検出した用紙サイズがジョブ指定用紙サイズと異なっていたためにプリンタ３でセットされたもの）」であれば、ホスト装置１は、「再印刷（その１ページの印刷をやり直す）」、「継続（エラーに構わずに印刷を続ける）」、又は「中止（この印刷のジョブデータを削除する）」のいずれかを選択するための画面を表示する（Ｓ７−２）。また、そのエラーが、「用紙交換エラー（後述するように、用紙サイズが固定された給紙装置１０１又は１０３の用紙サイズのうちジョブ指定サイズに一致するものがなかったためにプリンタ３でセットされたもの）」であれば、ホスト装置１は、「継続」又は「中止」のどちらかを選択するための画面を表示する（Ｓ７−３）。
【００４８】
ステップＳ７−２、又はステップＳ７−３で表示した画面において、ユーザに「再印刷」が選択されたときは（Ｓ７−４で「再印刷を選択」）、ホスト装置１は、プリンタ３に「再印刷」を通知し、「用紙サイズエラー」が発生したページから再送するためにステップＳ１へ移行する（Ｓ７−５）。また、上記画面において、ユーザに「継続」が選択されたときは、ホスト装置１は、プリンタ３に「継続」を通知してステップＳ８へ移行し（Ｓ７−６）、ユーザに「中止」が選択されたときは、プリンタ３に「中止」を通知しそのドキュメントデータを削除してステップＳ１へ移行する（Ｓ７−７）。
【００４９】
以上が、この実施形態におけるホスト装置１の動作である。次に、プリンタ３の動作を説明する。
【００５０】
図６は、プリンタ３がホスト装置１からデータを受信して印刷を行なうときの動作フローを示す。
【００５１】
まず、ホスト装置１がプリンタ情報を要求してきた場合（ステップＳ１１でＹｅｓ）、プリンタ３のＣＰＵ２３が、通信モード（例えば、パラレル通信の場合のECPやCompatibility）やＤＲＡＭサイズなどのプリンタ情報をホスト装置１に送信する（Ｓ１３）。また、プリンタ情報が準備できていない場合には（Ｓ１２でＮｏ）、準備中であること（具体的には、プリンタイニシャライズ中であること、又はエラーからの復帰中であること）をホスト装置１に知らせる（Ｓ１４）。
【００５２】
プリンタ情報をホスト装置１に送信した後、プリンタ３のＣＰＵ２３は、ホスト装置１からイメージデータに関する情報（解像度３００ｄｐｉ／６００ｄｐｉ、トータルバンド数）を受信し、その情報を基にデータ受信に関するレジスタ設定、バッファクリアなどのページ設定を行なう（Ｓ１５）。
【００５３】
続いて、ホスト装置１から１バンドのイメージデータを受信するための処理に入る（Ｓ１６）。この１バンド受信の制御フローを図７に示す。
【００５４】
図７に示すように、まずホスト装置１からプリンタステータスの要求が来たときに（Ｓ２１でＹｅｓ）、用紙ナシや紙ジャム等のエラーが発生していれば（Ｓ２２でＹｅｓ）、エラーのステータスをホスト装置１に送信する（Ｓ２３）。その後、ホスト装置１から印刷の「継続」の通知を受けなければ（Ｓ２４でＮｏ）、受信バッファのデータを削除して（Ｓ２５）、図６のステップＳ１１へ移行する。ホスト装置１から「継続」の通知を受けたときは（Ｓ２４でＹｅｓ）、１バンドのイメージデータを受信可能か否か、すなわち、次の（ａ）及び（ｂ）の条件が満たされているか否かをチェックする（Ｓ２６）。
【００５５】
（ａ）カバーオープン、紙ジャム、印字エラー、又は用紙無し等のエラーが発生していない、或いはエラーから回復した。
（ｂ）受信バッファに、１バンド分のバンドデータのサイズ以上の空きがある。
【００５６】
これらが全て満たされていれば（Ｓ２６でＹｅｓ）、プリンタ３は、１バンド以上のイメージデータの受信が可能であることを示したプリンタステータスをホスト装置１に送信する（Ｓ２８）。なお、プリンタ３は、そのプリンタステータスには、用紙の有無、受信バッファの空き容量、カバーオープンか否か、又はトナー残量などの種々のステータスを含ませるようにすることができる。
【００５７】
プリンタ３は、上記プリンタステータスを送信した後、１バンドデータを受信する（Ｓ２９）。前述のように、受信する１バンドデータは、バンドヘッダ（圧縮ON/OFF、バンド圧縮サイズ（圧縮OFFのときはバンドサイズ）のバンド情報）とバンドのイメージデータから構成される。プリンタ３は、このバンドデータのバンドヘッダに基づいてＤＭＡを設定し、バンド単位のイメージデータ受信はＤＭＡで行なう。
【００５８】
ステップＳ２６での１バンドデータ受信可能か否かのチェックにおいて、上記（ａ）又は（ｂ）の条件を満たしていないときは（Ｓ２６でＮｏ）、プリンタ３は、ホスト装置１に対し、エラーを表したステータスを送信して（Ｓ２７）、ステップＳ２１の動作に戻る。なお、プリンタ３は、エラーを表したステータスに、用紙の有無、受信バッファの空き容量、カバーオープンか否か、又はトナー残量などの種々のステータスを含ませてから、ホスト装置１に送信するようにすることができる。
【００５９】
ステップＳ２２において、エラーが発生していないときは（Ｓ２２でＮｏ）、ステップＳ２６へ移行して上述した動作を行なう。
【００６０】
再び図６を参照する。プリンタ３は、上述した１バンドデータ受信のフローを終えて（Ｓ１６）、ホスト装置１からイメージデータを所定バンド数受信したら（Ｓ１７でＹｅｓ）、例えば、ホスト装置１からのホスト情報にある指定バンド数分のデータが受信バッファに蓄えられたら、又は、受信バッファの空きサイズが１バンド未満になったら、ＤＭＡコントローラ１３にビデオ転送を許可する（Ｓ１８）。
【００６１】
ビデオ転送許可後、プリンタ３は、再度ホスト装置１から１バンドデータを受信し（Ｓ１９）、その１バンドデータ受信を、１ページのデータ受信が完了するまで繰り返す。１ページのデータ受信が完了したら（Ｓ２０でＹｅｓ）、プリンタ３は、ステップＳ１１の動作に戻る。
【００６２】
給紙装置自動選択モードが指定されている場合を例に、図８を参照して、ビデオ転送に関してプリンタ３のＣＰＵ２３が行なう制御フローを説明する。
【００６３】
プリンタ３のＣＰＵ２３は、ビデオ転送が可能であるか（すなわち、イメージデータがホスト装置１から指示された指定バンド数以上受信済みか、又は受信バッファの空きサイズが１バンドのデータサイズ未満か）否かをチェックし（ステップＳ３０）、ビデオ転送が可能であれば（Ｓ３０Ｙｅｓ）、各給紙装置１０１、１０３の用紙の有無をチェックする（Ｓ３１）。
【００６４】
全ての給紙装置１０１及び１０３に用紙が無い場合は（Ｓ３２でＹｅｓ）、いずれかの給紙装置１０１又は１０３に用紙がセットされるまで待ち、用紙がセットされたら（Ｓ３３でＹｅｓ）、用紙がセットされたのは全ての給紙装置１０１及び１０３であるか否かをチェックする（Ｓ３４）。一方、ステップＳ３２において、いずれかの給紙装置１０１又は１０３に用紙が有る場合は（Ｓ３２でＮｏ）、ステップＳ３４へ移行する。
【００６５】
ステップＳ３４において、いずれかの給紙装置１０１又は１０３に用紙が無ければ（Ｓ３４でＮｏ）、用紙ナシの給紙装置１０１又は１０３の用紙サイズを「不明」に設定してそれをＥＥＰＲＯＭ２９に書込み（Ｓ３５）、ジョブ指定用紙サイズに基づいて給紙装置１０１又は１０３を選択する（Ｓ３９）。
【００６６】
一方、ステップＳ３４において、全ての給紙装置１０１、１０３に用紙が有れば（Ｓ３４でＹｅｓ）、ＥＥＰＲＯＭ２９から各給紙装置１０１、１０３の固定された用紙サイズを読出しチェックする（Ｓ３６）。ここで、全部の給紙装置１０１及び１０３の用紙サイズがジョブ指定用紙サイズと異なっている場合は（Ｓ３６でＹｅｓ）、「用紙交換エラー」をセットしてホスト装置１に通しするようにし（Ｓ３７）、ホスト装置１から印刷の「継続」の指示を受ければ（Ｓ３８でＹｅｓ）、ステップ３９へ、「継続」の指示を受けなければ（つまり「再印刷」或いは「中止」の指示を受ければ）（Ｓ３８でＮｏ）、ステップＳ３０へ移行する。ステップＳ３６において、いずれかの給紙装置１０１又は１０３の用紙サイズがジョブ指定サイズと一致していれば（Ｓ３６でＮｏ）、その用紙サイズの給紙装置１０１又は１０３を選択する（Ｓ３９）。
【００６７】
給紙装置１０１又は１０３を選択したら、パラメータ設定、つまり、イメージデータに関するホスト情報（解像度、トータルバンド数、指定された給紙装置）を基に、ビデオ転送に関するレジスタ設定を行なう（Ｓ４０）。
【００６８】
次に、ＣＰＵ２３は、ＤＭＡコントローラ１３に１バンドの転送ＤＭＡを実行し（Ｓ４１）、それを、１ページのビデオ転送（データ受信と非同期に実行）が完了するまで、１バンドの情報設定とビデオＤＭＡ転送を繰り返す。１ページのビデオ転送が完了したら（Ｓ４２でＹｅｓ）、１ページの印刷が開始される。この印刷では、既に説明したように、ステップＳ３９で選択された給紙装置１０１又は１０３から用紙を給紙して排出する過程で、上述したセンサ回路１０５によってその用紙の紙送り方向の長さを算出し、印刷し終えた用紙のサイズを検出する。
【００６９】
ここで、その検出用紙サイズがジョブ指定用紙サイズと一致しているときは（Ｓ４３でＮｏ）、その用紙を持つ給紙装置の用紙サイズをジョブ指定用紙サイズとみなして更新し（ジョブ指定用紙サイズをその給紙装置の用紙サイズとしてＥＥＰＲＯＭ２９に書込み）（Ｓ４４）、印刷成功のフラグをセットする（Ｓ４８）。検出用紙サイズがジョブ指定用紙サイズと異なっているときは（Ｓ４３でＹｅｓ）、既にホスト１から「継続」の指示があれば（Ｓ４５でＹｅｓ）、その印刷に対し印刷成功のフラグをセットし（Ｓ４８）、「継続」の指示を受けていなければ（Ｓ４５でＮｏ）、「用紙サイズエラー」をセットしてホスト１に通知するようにして（Ｓ４６）、ホスト１からの指示を待つ。その後、ホスト１から「再印刷」或いは「中止」を指示されたら（Ｓ４７でＮｏ）、ステップＳ３０へ移行し、「継続」を指示されたら（Ｓ４７でＹｅｓ）、その印刷に対し印刷成功のフラグをセットして（Ｓ４８）、ステップＳ３０に戻る。印刷成功フラグは、プリンタ３がホスト装置１にプリンタステータスを送信することで、ホスト装置１に通知される（印字が完了した時点とホスト装置１への通知は同期していない）。印刷成功フラグは、ホスト装置１がそのプリンタステータスを読込んだときに解消され、そのときに、ホスト装置１は、その１ページのイメージデータを削除する。
【００７０】
なお、本実施形態では、プリンタ３は、「用紙サイズエラー」を検出して印刷を停止したときに、「継続」を受信したときは、それ以降の印刷は停止しないようにする、換言すれば、ジョブ実行中に印刷停止する回数は１回だけにする。
【００７１】
以上が、本実施形態でのホスト装置１及びプリンタ３の動作の説明である。
【００７２】
この実施形態によれば、プリンタ３に、各給紙装置１０１、１０３の用紙のサイズを印刷開始前に検出するセンサが備えられていなくても、上述したセンサ回路１０５によって、各給紙装置１０１、１０３にセットされた用紙のサイズを印刷過程において検出することができる。これにより、印刷開始前に各給紙装置の用紙サイズを検出するセンサを持たないプリンタを使用するときに、従来必要とされていた、各給紙装置１０１、１０３の用紙サイズ入力操作が必要無くなり、且つ、その入力操作が無くても給紙装置自動選択モードによる印刷を行えるので、ユーザにとって便利になる。
【００７３】
以上、本発明の好適な幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態のプリントシステムの構成を示すブロック図。
【図２】ＤＲＡＭ２１のメモリマップ。
【図３】プリンタ３における用紙サイズ検出のための構成を示す図。
【図４】ホスト装置１がプリンタ３へイメージデータを送るときに各ページ毎に行なう制御を示すフローチャート。
【図５】ステップＳ７のエラー処理の流れを示す図。
【図６】プリンタ３がホスト装置１からデータを受信して印刷を行なうときの動作を示すフローチャート。
【図７】１バンドデータ受信におけるプリンタ３の動作を示すフローチャート。
【図８】ビデオ転送に関してプリンタ３のＣＰＵ２３が行なう制御を示すフローチャート。
【符号の説明】
１  ホスト装置
３  ページプリンタ
１１  ホストインターフェース回路
１３  ＤＭＡコントローラ
１５  データ伸張回路
１７  ビデオコントローラ
１９  後処理回路
２１  ＤＲＡＭ
２３  ＣＰＵ
２５  ＲＯＭ
２７  印刷エンジン
２９  ＥＥＰＲＯＭ
【図１】
0004085561.tif 000002
【図２】
0004085561.tif 000003
【図３】
0004085561.tif 000004
【図４】
0004085561.tif 000005
【図５】
0004085561.tif 000006
【図６】
0004085561.tif 000007
【図７】
0004085561.tif 000008
【図８】
0004085561.tif 000009