(57)【特許請求の範囲】
【請求項１】
ホストコンピュータと、該ホストコンピュータから受信したデータに基づいて印刷を実行するプリンタとを備えた印刷システムにおいて、印刷データを所定部数印刷させるためのコピーコマンドを発行するコピーコマンド発行手段と、前記コピーコマンドにより所定部数印刷されるべき印刷データを記憶するための記憶手段と、前記コピーコマンドを解釈して前記所定部数の印刷を実行するコピー印刷制御手段と、前記所定部数印刷されるべき印刷データを前記記憶手段に記憶できるか否かを判定する判定手段とを備え、
前記判定手段が、前記印刷データを前記記憶手段に記憶できないと判定した場合に、前記コピーコマンド発行手段は、前記印刷データを前記所定部数に応じた数だけ前記プリンタに送信する印刷システム。
【請求項２】
前記ホストコンピュータは、前記コピーコマンド発行手段を有し、前記プリンタは、前記記憶手段と前記コピー印刷制御手段と前記判定手段とを有する請求項１に記載の印刷システム。
【請求項３】
前記ホストコンピュータは、前記コピーコマンド発行手段と前記判定手段とを有し、前記プリンタは、前記記憶手段と前記コピー印刷制御手段とを有する請求項１に記載の印刷システム。
【請求項４】
前記コピーコマンド発行手段は、コピー印刷開始コマンドとコピー印刷終了コマンドとの間に前記印刷データを位置させて送信し、前記記憶手段には、前記印刷データの終端に前記コピー印刷終了コマンドが記憶される請求項１に記載の印刷システム。
【請求項５】
前記判定手段は、前記コピー印刷終了コマンドを前記記憶手段に記憶できない場合に、前記印刷データを前記記憶手段に記憶できないと判定する請求項４に記載の印刷システム。
【請求項６】
前記判定手段は、前記記憶手段の記憶容量と前記印刷データのデータ量とを比較し、前記記憶手段の記憶容量が前記印刷データのデータ量よりも少ない場合に、前記印刷データを前記記憶手段に記憶できないと判定する請求項１または請求項４のいずれかに記載の印刷システム。
【請求項７】
前記印刷データのデータ量と比較される前記記憶手段の記憶容量は、利用可能な空き容量である請求項６に記載の印刷システム。
【請求項８】
前記判定手段は、前記記憶手段が前記印刷データを記憶した場合には、前記コピーコマンド発行手段に前記所定部数の印刷が可であることを示す所定部数印刷可情報を通知する請求項４〜請求項７のいずれかに記載の印刷システム。
【請求項９】
ホストコンピュータから受信したデータに基づいて印刷を実行するプリンタにおいて、印刷データ及び該印刷データを所定部数印刷させるためのコピーコマンドを受信する受信手段と、前記コピーコマンドを解釈して前記所定部数の印刷を実行するコピー印刷制御手段と、前記印刷データを記憶するための記憶手段と、前記印刷データを前記記憶手段に記憶できるか否かを判定する判定手段とを備え、前記判定手段は、前記印刷データを前記記憶手段に記憶できないと判定した場合には、前記ホストコンピュータに前記印刷データを前記所定部数に応じた数だけ送信するように要求することを特徴とするプリンタ。
【請求項１０】
前記コピーコマンドは、前記印刷データの先頭に位置するコピー印刷開始コマンドと、前記印刷データの終端に位置するコピー印刷終了コマンドとからなり、前記記憶手段には、前記印刷データの終端に前記コピー印刷終了コマンドが記憶される請求項９に記載のプリンタ。
【請求項１１】
前記判定手段は、前記コピー印刷終了コマンドを前記記憶手段に記憶できない場合に、前記印刷データを前記記憶手段に記憶できないと判定する請求項１０に記載のプリンタ。
【請求項１２】
前記判定手段は、前記記憶手段の記憶容量と前記印刷データのデータ量とを比較し、前記記憶手段の記憶容量が前記印刷データのデータ量よりも少ない場合に、前記印刷データを前記記憶手段に記憶できないと判定する請求項９または請求項１０のいずれかに記載のプリンタ。
【請求項１３】
前記印刷データのデータ量と比較される前記記憶手段の記憶容量は、利用可能な空き容量である請求項１２に記載のプリンタ。
【請求項１４】
プリンタに送信するための印刷データを生成する印刷データ生成装置において、印刷データを所定部数印刷させるためのコピーコマンドを発行するコピーコマンド発行手段を備え、前記コピーコマンド発行手段は、前記所定部数印刷されるべき印刷データを前記プリンタ側で記憶できないと通知された場合には、前記印刷データを前記所定部数に応じた数だけ前記プリンタに送信することを特徴とする印刷データ生成装置。
【請求項１５】
前記プリンタ側の記憶容量と前記印刷データのデータ量とを比較する判定手段を更に設け、該判定手段は、前記記憶容量が前記印刷データのデータ量よりも少ない場合に、前記印刷データを前記プリンタ側で記憶できないと判定して前記コピーコマンド発行手段に通知する請求項１４に記載の印刷データ生成装置。
【請求項１６】
前記印刷データのデータ量と比較される前記記憶容量は、利用可能な空き容量である請求項１５に記載の印刷データ生成装置。
【請求項１７】
ホストコンピュータで生成された印刷データをプリンタに送信して印刷させる印刷方法において、所定部数だけ印刷されるべき印刷データを生成する第１ステップと、前記印刷データを前記プリンタ側に送信する第２ステップと、前記印刷データを受信して記憶手段に記憶させる第３ステップと、前記印刷データが前記記憶手段に記憶されたか否かを判定する第４ステップと、前記印刷データが前記記憶手段に記憶されていないと判定された場合には、前記所定部数に応じた数だけ前記印刷データの送信を要求し、これにより受信された印刷データを印刷し、前記印刷データを前記記憶手段に記憶できたと判定された場合には、前記記憶手段から前記印刷データを読み出して前記所定部数だけ印刷させる第５ステップと、を含んでなることを特徴とする印刷方法。
【請求項１８】
ホストコンピュータで生成された印刷データをプリンタに送信して印刷させる印刷方法において、所定部数だけ印刷されるべき印刷データを生成する第１ステップと、前記印刷データを前記プリンタ側の記憶手段で記憶可能か否かを判定する第２ステップと、前記印刷データを前記記憶手段で記憶可能と判定された場合は、前記印刷データを前記プリンタに送信し、前記印刷データを前記記憶手段で記憶できないと判定された場合には、前記所定部数に応じた数だけ前記印刷データを前記プリンタに送信する第３ステップと、前記送信された印刷データに基づいて印刷を行う第４ステップと、を含んでなることを特徴とする印刷方法。
【請求項１９】
プリンタを制御するためのプログラムを記録したプログラム記録媒体において、印刷データ及び該印刷データを所定部数印刷させるためのコピーコマンドを受信する受信機能と、前記コピーコマンドを解釈して前記所定部数の印刷を実行するコピー印刷制御機能と、前記印刷データを記憶手段に記憶できるか否かを判定し、前記印刷データを前記記憶手段に記憶できないと判定した場合には、前記印刷データを前記所定部数に応じた数だけ送信するように要求する判定機能とを、前記コンピュータに実現させるためのプログラムを前記コンピュータが読取り及び理解可能な形態で記録したプログラム記録媒体。
【請求項２０】
プリンタに送信される印刷データを生成するためのプログラムを記録したプログラム記録媒体において、印刷データを所定部数印刷させるためのコピーコマンドを発行すると共に、前記所定部数印刷されるべき印刷データを前記プリンタ側で記憶できないと通知された場合には、前記印刷データを前記所定部数に応じた数だけ前記プリンタに送信させるコピーコマンド発行機能を、前記コンピュータに実現させるためのプログラムを前記コンピュータが読取り及び理解可能な形態で記録したプログラム記録媒体。
【請求項２１】
印刷画像データ生成部で生成された印刷データを入力するための入力手段と、該入力手段から入力された前記印刷データを記憶する記憶手段とを備える印刷システムの印刷方法において、所定部数だけ印刷されるべき印刷データを生成する第１ステップと、前記印刷データが前記記憶手段に記憶できる場合は、該記憶した印刷データに基づいて前記所定部数の印刷を行い、前記印刷データが前記記憶手段に記憶できない場合には、前記所定部数に応じた数だけ前記印刷データを前記入力手段に送信し、該送信された印刷データに基づいて前記所定部数の印刷を行う第２ステップと、を含んでなることを特徴とする印刷方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数部数の印刷を行うことができる印刷システム、プリンタ、印刷データ生成装置及び印刷方法に関する。
【０００２】
【従来の技術】
従来、同一ページを複数部数印刷（以下、コピー印刷とも言う）する場合に、ホストコンピュータからは１ページ分の印刷データを送信し、プリンタ側で必要部数分の印刷をするようにした印刷システムは、例えば、レーザビームプリンタ等のページプリンタにおいて実現されている。
【０００３】
このようなコピー印刷機能は、同一の印刷データを印刷部数分だけホストコンピュータから繰返し送信する場合と比較して、印刷データの送信時間を短縮することができ、また、ホストコンピュータを早期に解放できる等の点で、有利である。
【０００４】
【発明が解決しようとする課題】
上述した従来技術では、印刷データを１回送信するだけでコピー印刷を行うことができる。しかし、プリンタに搭載されたメモリ量がコピー印刷に要求されるメモリ量よりも少ない場合には、コピー印刷が失敗する可能性がある。例えば、１ページから１０ページまでのデータをその順序で１０部ずつ印刷する場合は、１ページから１０ページまでの全ての印刷データをプリンタ側で保持できなければ、コピー印刷できない場合がある。この場合に、従来技術では、コピー印刷を失敗した旨のメッセージが表示された後、再度、例えば、同じデータを９回、ホストコンピュータから送信し直さなければならず、非常に手間がかかるという問題がある。
【０００５】
本発明は、このような事情に鑑みてなされたもので、その目的は、複数部数印刷の際にメモリ不足等が生じた場合でも、複数部数の印刷を完了することができ、使い勝手を向上できるようにした印刷システム、プリンタ、印刷データ生成装置及び印刷方法を提供することにある。
【０００６】
【課題を解決するための手段】
請求項１に係る発明では、ホストコンピュータと、該ホストコンピュータから受信したデータに基づいて印刷を実行するプリンタとを備えた印刷システムにおいて、印刷データを所定部数印刷させるためのコピーコマンドを発行するコピーコマンド発行手段と、前記コピーコマンドにより所定部数印刷されるべき印刷データを記憶するための記憶手段と、前記コピーコマンドを解釈して前記所定部数の印刷を実行するコピー印刷制御手段と、前記所定部数印刷されるべき印刷データを前記記憶手段に記憶できるか否かを判定する判定手段とを備え、前記判定手段が、前記印刷データを前記記憶手段に記憶できないと判定した場合に、前記コピーコマンド発行手段は、前記印刷データを前記所定部数に応じた数だけ前記プリンタに送信することを特徴としている。
【０００７】
これにより、１回のデータ送信でコピー印刷を実行できない場合でも、予定された部数分の印刷を行うことができ、使い勝手が向上する。なお、「所定部数に応じた数」とは、当初予定されていた印刷部数と同一である場合も含むが、当初の印刷部数よりも少ない値である場合もある。最初のデータ送信によって既に１部印刷されている場合は、当初の印刷部数から１を引いた数だけ印刷データを繰り返し送信すればよいためである。
【０００８】
本発明の別の形態では、前記ホストコンピュータは、前記コピーコマンド発行手段を有し、前記プリンタは、前記記憶手段と前記コピー印刷制御手段と前記判定手段とを有することができる。
【０００９】
即ち、判定手段は、プリンタ側に設けることができる。
【００１０】
本発明の別の形態では、前記ホストコンピュータは、前記コピーコマンド発行手段と前記判定手段とを有し、前記プリンタは、前記記憶手段と前記コピー印刷制御手段とを有することができる。
【００１１】
即ち、判定手段は、ホストコンピュータ側に設けることもできる。
【００１４】
本発明の別の形態では、前記コピーコマンド発行手段は、コピー印刷開始コマンドとコピー印刷終了コマンドとの間に前記印刷データを位置させて送信し、前記記憶手段には、前記印刷データの終端に前記コピー印刷終了コマンドを記憶させることもできる。
【００１５】
印刷データの終端にコピー印刷終了コマンドを位置させて記憶することにより、記憶手段からコピー印刷終了コマンドが読み出された時点で、コピー印刷すべき範囲を検出することができる。従って、印刷データの最終記憶アドレスを検出するためのアドレスカウンタ等を用いることなく、コピー印刷すべきデータの範囲を検出して、コピー印刷を行うことができる。
【００１６】
本発明の別の形態では、前記判定手段は、前記コピー印刷終了コマンドを前記記憶手段に記憶できない場合に、前記印刷データを前記記憶手段に記憶できないと判定することができる。
【００１７】
印刷データの終端にコピー印刷終了コマンドが位置するため、記憶手段にコピー印刷終了コマンドが記憶された場合は、コピー印刷すべき印刷データを全て記憶手段に記憶できたものとして判定することができる。
【００１８】
本発明の別の形態では、前記判定手段は、前記記憶手段の記憶容量と前記印刷データのデータ量とを比較し、前記記憶手段の記憶容量が前記印刷データのデータ量よりも少ない場合に、前記印刷データを前記記憶手段に記憶できないと判定することもできる。
【００１９】
記憶手段の記憶容量と印刷データのデータ量とを比較することにより、印刷データを送信または記憶する前に、コピー印刷に係る印刷データを１回で送信できるか否かを判定することができ、印刷速度を向上することができる。なお、記憶手段の記憶容量は、予めユーザーが判定手段に登録してもよいし、あるいは、コピー印刷実行時に、記憶手段の記憶容量を検査するようにしてもよい。
【００２０】
本発明の別の形態では、前記印刷データのデータ量と比較される前記記憶手段の記憶容量は、利用可能な空き容量であってもよい。
【００２１】
例えば、記憶手段の一部が他のデータ等によって既に予約等されている場合や、ネットワーク印刷システムに組み込まれて複数のコピー印刷ジョブをプリンタが受信する場合がある。これらの場合には、たとえ印刷データのデータ量が記憶手段の最大記憶容量よりも少なくても、１回のデータ送信でコピー印刷を行うことができない可能性がある。従って、記憶手段の利用可能な空き容量と印刷データのデータ量とを比較することにより、判定精度を向上させる。
【００２２】
本発明の別の形態では、前記判定手段は、前記記憶手段が前記印刷データを記憶した場合には、前記コピーコマンド発行手段に前記所定部数の印刷が可であることを示す所定部数印刷可情報を通知することもできる。
【００２３】
これにより、コピーコマンド発行手段は、１回のデータ送信でコピー印刷が行われることを確認することができ、処理を終了することができる。
【００４４】
本発明の別の形態は、プリンタを制御するためのプログラムを記録したプログラム記録媒体において、印刷データ及び該印刷データを所定部数印刷させるためのコピーコマンドを受信する受信機能と、前記コピーコマンドを解釈して前記所定部数の印刷を実行するコピー印刷制御機能と、前記印刷データを記憶手段に記憶できるか否かを判定し、前記印刷データを前記記憶手段に記憶できないと判定した場合には、前記印刷データを前記所定部数に応じた数だけ送信するように要求する判定機能とを、前記コンピュータに実現させるためのプログラムを前記コンピュータが読取り及び理解可能な形態で記録したプログラム記録媒体である。
【００４５】
ここで、記録媒体としては、例えば、フロッピーディスク、コンパクトディスク、光磁気ディスク、磁気テープ、ハードディスク、メモリ等の種々の媒体を用いることができる。また、これに限らず、例えば、通信回線を介してプログラムをリモートダウンロードする等のように、通信媒体を利用することも可能である。
【００４８】
【発明の実施の形態】
以下、図面に基づいて本発明の実施の形態を詳細に説明する。
【００４９】
１．第１の実施の形態
図１〜図８に基づいて、本発明の第１の実施の形態を説明する。図１は、本実施の形態に係るシリアルプリンタのハードウエア構成を示す説明図であり、図２は、印刷システムの機能ブロック図である。
【００５０】
本実施形態のプリンタ（プリンタ）は既存の構造をなすものであって、図１に示すように、プリンタ１０は、インターフェース（以下、「Ｉ／Ｆ」と略記）１１を介してホストコンピュータ１に接続されており、Ｉ／Ｆ１１には、入出力制御装置１２が接続されている。また、プリンタ１０は、コンピュータによって構成されるプリンタコントローラ１５と、プリンタコントローラ１５によって動作を制御されるプリントエンジン２０とを有し、プリンタコントローラ１５とプリントエンジン２０とは、入出力制御装置１２からＩ／Ｆ１３を介して接続されている。
【００５１】
ここで、プリンタコントローラ１５は、プログラムＲＯＭ１７に記憶された制御プログラム等に基づいて動作するＣＰＵ１６を具えており、プリンタ１０を総括的に制御するものである。そして、プリンタコントローラ１５は、ホストコンピュータ１からのデータ等を格納するためのＲＡＭ１８及び補助メモリ１９を有している。補助メモリ１９は、例えば、ＳＩＭＭ（Ｓｉｎｇｌｅ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）等の大容量メモリとして構成されており、後述するコピー印刷のためのデータを格納するものである。なお、プリンタコントローラ１５とホストコンピュータ１とは、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信回線１４を介して接続されている。
【００５２】
プリントエンジン２０は、印刷を実行するためのプリントヘッド２１と、プリントヘッド２１を搭載したキャリッジを駆動するためのキャリッジ機構２２と、紙送りを行うための紙送り機構２３とを備えている。
【００５３】
図２の機能ブロック図を参照する。ホストコンピュータ１は、プリンタドライバ２とＩ／Ｆ３とを備えている。「印刷データ生成装置」としてのプリンタドライバ２は、例えば、文書作成用ソフトウエア等から入力されたドキュメントデータを印刷データに変換し、この印刷データをＩ／Ｆ３から通信回線１４を介してプリンタ１０に送信するものである。プリンタドライバ２は、「コピーコマンド発行手段」としてのコマンド発行部４を備えている。コマンド発行部４は、コピー印刷時に、印刷データを所定のコピーコマンドによりプリンタ１０に送信し、コピー印刷を行わせるものである。即ち、図２中に示すように、コマンド発行部４は、印刷データの先頭に「コピー印刷開始コマンド」としてのコピースタートコマンド（図２中では、「コピースタート」と示す）を配置し、印刷データの終端には「コピー印刷終了コマンド」としてのコピーエンドコマンド（図２中では「コピーエンド」と示す）を配置して、プリンタ１０に送信する。
【００５４】
プリンタコントローラ１５は、後述するように、解釈部３１と、受信バッファ４１と、出力バッファ４２と、コピー指令記憶部４３と、コピーバッファ４４とを備えている。
【００５５】
解釈部３１は、ホストコンピュータ１から受信されて受信バッファ４１に記憶された印刷データを読み込んで１行毎にイメージデータを生成し、このイメージデータを出力バッファ４２に展開させる。出力バッファ４２に書き込まれたイメージデータは、プリントエンジン２０に送信され、プリントエンジン２０によって印刷される。なお、受信バッファ４１及び出力バッファ４２は、ＲＡＭ１８内に形成される。
【００５６】
また、解釈部３１には、コピー制御部３２が設けられている。コピー制御部３２は、「コピー印刷制御手段」としてのコピー印刷部３３と、「判定手段」としての判定部３４とを備えている。コピー印刷部３３は、ホストコンピュータ１のコマンド発行部４から入力された所定のコピーコマンドに基づいて、１回の印刷データの受信で所定部数のコピー印刷を実行するものである。このコピー印刷実行のため、コピー印刷部３３は、ＲＡＭ１８内に形成されるコピー指令記憶部４３と、補助メモリ１９に形成される「記憶手段」としてのコピーバッファ４４とを利用する。判定部３４は、コピーバッファ４４にコピー印刷に係る印刷データが全て記憶されたか否かを判定し、印刷データがコピーバッファ４４に記憶された場合には、「所定部数印刷可情報」としてのコピーＯＫをコマンド発行部４に通知し、印刷データをコピーバッファ４４に記憶できなかった場合は、「所定部数印刷不可情報」としてのコピーＮＧをコマンド発行部４に通知するようになっている。
【００５７】
即ち、コピー制御部３２は、コマンド発行部４からのコピースタートコマンドを受信すると、印刷部数等の指令内容をコピー指令記憶部４３に記憶すると共に、後続する印刷データをコピーバッファ４４に記憶させる。そして、コピー制御部３２は、コピーバッファ４４内の印刷データを読み出して解釈することにより、所定部数のコピー印刷を実行する。一方、コピー印刷に係る印刷データをコピーバッファ４４に記憶できなかった場合には、コピー制御部３２は、コマンド発行部４に対しコピーＮＧを送信させ、コピー印刷すべき印刷データを再度必要部数分だけ送信させてコピー印刷を実行する。
【００５８】
次に、図３〜図６に基づいて本実施の形態の作用を説明する。まず、図３及び図４には、プリンタ１０側で実行されるコピー印刷処理のフローチャートが示されている。なお、以下の説明では、ステップを「Ｓ」と略記する。また、図３，図４中では「ＹＥＳ」を「Ｙ」、「ＮＯ」を「Ｎ」とそれぞれ略記する。
【００５９】
ホストコンピュータ１から送信されたデータが受信バッファ４１に格納されると、まず、受信バッファ４１からデータを取りだし（Ｓ１）、データを解析する（Ｓ２）。データがコマンドの場合には（Ｓ３：ＹＥＳ）、続いて、コピーコ  マンドかどうかを判断する（Ｓ４）。ここで、コピーコマンドとは、次からの印刷データを所定部数印刷せよという指令であり、具体的には、コピースタートコマンドである。従って、コピーコマンドの場合には（Ｓ４：ＹＥＳ）、受信バッファ４１からデータを取りだし  （Ｓ５）、コピー指令記憶部４３に印刷部数Ｃｎをセットすると共に（Ｓ６）、コピースタートフラグ（図中では、「コピーＦ」と略記）をセット（Ｆ＝１）して（Ｓ７）、Ｓ１に戻り、受信バッファ４１から次のデータを取り出す。
【００６０】
コピーコマンドに続いて印刷データを受信した場合には、Ｓ３からＳ８に移行し、コピースタートフラグが１（Ｆ＝１）であることを条件に（Ｓ８：ＹＥＳ）、コピーバッファ４４に印刷データを入力し（Ｓ９）、コピーバッファが一杯でない場合には（Ｓ１０：ＮＯ）、さらに、印刷データを出力バッファ４２に入力させる（Ｓ１１）。この処理は、出力バッファが一杯になるまで続けられ、出力バッファが一杯になった場合には（Ｓ１２：ＹＥＳ）、出力バッファにたまったデータを印刷し（Ｓ１３）、出力バッファを初期化する（Ｓ１４）。
【００６１】
また、上述したコピーバッファ４４及び出力バッファ４２への格納並びに出力バッファの印刷は、続きのデータがある限り続けられる。そして、印刷データの受信を終了し、コピーエンドコマンドを受信した場合には、Ｓ３からＳ４に入り、この場合コピースタートコマンドではなく（Ｓ４：ＮＯ）、コピースタートフラグは１（Ｆ＝１）であるので（Ｓ１５：ＹＥＳ）、コピーエンドコマンドはコピーバッファ４４に入力される（ステップＳ１６）。これにより、コピーエンドコマンドは、印刷データの終端に位置してコピーバッファ４４内に記憶される。そして、コピーバッファ４４が一杯でない場合には（Ｓ１７：ＮＯ）、印刷指令ではなく（Ｓ１８：ＮＯ）、コピーエンドコマンドであるので（Ｓ１９：ＹＥＳ）、図４に示すＳ２１に移行する。
【００６２】
Ｓ２１では、コピー印刷に係る印刷データ（コピーデータとも言う）をコピーバッファ４４に格納することができた場合であるので、コピー印刷が実行できることを通知するためのコピーＯＫ（図中では、「ｃｏｐｙＯＫ」と表示）をコマンド発行部４に送信させ、その後、コピーバッファ４４内の印刷データに基づいて（所定部数−１）の印刷を実行する。
【００６３】
即ち、コピーバッファ取り出しポインタを初期化して（Ｓ２２）、コピーバッファ４４からデータを取り出す（Ｓ２３）。次に、取り出したデータを解析し（Ｓ２４）、コマンドでない場合には（Ｓ２５：ＮＯ）、出力バッファ４２に入力する（Ｓ２６）。印刷データの転送処理は出力バッファ４２が一杯になるまで行われる（Ｓ２７：ＮＯ）。出力バッファ４２が一杯になった場合には（Ｓ２７：ＹＥＳ）、出力バッファ４２にたまったデータの印刷を行い（Ｓ２８）、出力バッファ４２を初期化して（Ｓ２９）、Ｓ２３に戻る。
【００６４】
以上述べた出力バッファ４２の印刷は、コピーバッファ４４からコピーエンドコマンドが読み出されるまで続けられる。コピーエンドコマンドが取り出されると、コマンドであり（Ｓ２５：ＹＥＳ）、印刷指令ではなく（Ｓ３０：ＮＯ）、コピーエンドコマンドであるので（Ｓ３１：ＹＥＳ）、印刷部数Ｃｎを「１」減算し（Ｓ３２）、コピーバッファ４４の取り出しポインタの初期化を行う（Ｓ３３）。以上のコピーバッファ４４内の印刷処理は、印刷部数Ｃｎが「０」になるまで繰り返され、印刷部数Ｃｎが「０」になると（Ｓ３４：ＹＥＳ  ）、指示された部数のコピー印刷が終了する。従って、コピーバッファ４４を初期化し（Ｓ３５）、コピースタートフラグをリセット（Ｆ＝０）して（Ｓ３６）、Ｓ１に戻る。
【００６５】
一方、コピーデータをコピーバッファ４４に格納している途中でコピーバッファ４４が一杯になった場合には（Ｓ１０：ＹＥＳ；及びＳ１７：ＹＥＳ）、コピーＮＧ（図中では「ｃｏｐｙＮＧ」と表示）をコマンド発行部４に送信させ（Ｓ３７）、コピースタートフラグをリセットし（Ｆ＝０）（Ｓ３８）、コピーバッファ４４を初期化する（Ｓ３９）。なお、この後、通常の印刷が行われるが、コピースタートフラグがリセットされているので、Ｓ８及びＳ１５の判断の後、コピーバッファ４４への入力は行われない。
【００６６】
また、コピーコマンドがない状態では、または、コピーデータ内に他のコマンドが含まれている場合には、Ｓ１８からＳ４１に移行し、パラメータがある場合には（Ｓ４１：ＹＥＳ）、受信バッファ４１からデータを取り出して（Ｓ４２）、これをパラメータがある間繰り返し（Ｓ４３：ＹＥＳ）、パラメータがなくなった後に（Ｓ４３：ＮＯ）コマンド処理し（Ｓ４４）、Ｓ１に戻る。さらに、コピーデータ内にこのようなコマンドがあった場合には、コピーバッファ４４からのデータの取り出しにおいても処理され、Ｓ３１でコピーコマンドでないと判定されるため、Ｓ４５〜Ｓ４８で同様に処理される。
【００６７】
次に、図５は、プリンタドライバ２側で実行されるドライバ処理を示すフローチャートである。
【００６８】
コピー印刷時には、まず最初に、コピーコマンド（コピースタートコマンド）を送信し（Ｓ５１）、続いてコピー印刷するためのコピーデータをプリンタ１０に送信する（Ｓ５２）。コピーデータの送信が終了した場合には、コピーエンドコマンドを送信し（Ｓ５３）、プリンタ１０からの通知を受信するまで待機する（Ｓ５４）。
【００６９】
プリンタ１０からコピーＯＫを受信した場合には（Ｓ５５：ＹＥＳ）処理を終了するが、コピーＯＫではなかった場合は、即ち、コピーＮＧを受信した場合には（Ｓ５５：ＮＯ）、印刷データの送信回数Ｃｎ１をセットし（Ｓ５６）、Ｃｎ１から「１」を減算し（Ｓ５７）、Ｃｎ１が「０」になるまで（Ｓ５８：ＮＯ）、コピーデータを繰返し送信する（Ｓ５９）。これらＳ５６〜Ｓ５９を印刷部数だけ繰り返すことにより、所定の部数のコピー印刷がプリンタ１０によって行われる。なお、最初のコピーデータ送信時に、１部だけ印刷が実行される場合は、送信回数Ｃｎ１は当初の印刷部数Ｃｎから「１」を引いた数として設定される。一方、最初のコピーデータ送信時に印刷が行われなかった場合は、Ｃｎ１はＣｎと同じ値に設定される。
【００７０】
このように構成される本実施の形態によれば、以下の効果を奏する。
【００７１】
第１に、１回のデータ送信でコピーバッファ４４にコピーデータを記憶できた場合には、コピーバッファ４４に記憶されたコピーデータを印刷部数分だけ読み出すことにより、コピー印刷を実行することができ、コピーデータをコピーバッファ４４に全て記憶できない場合には、追加のコピーデータを必要な数だけホストコンピュータ１から更に受信することにより、所定部数のコピー印刷を完了することができる。
【００７２】
図６は、このようなコピー印刷処理におけるホストコンピュータ１とプリンタ１０との間のデータの流れを示す説明図であり、図６（Ａ）は１回のデータ送信でコピー印刷が実行された場合、図６（Ｂ）はコピーバッファ４４の容量不足のため複数回のデータ送信を行う場合をそれぞれ示す。各データの流れには、上述した処理中のステップ番号が付してあり、コピーコマンドとしては、コピー部数が３枚の例を示してある。
【００７３】
従って、本実施形態による印刷システムでは、ホストコンピュータ１からの１回のデータ送信でコピー印刷を行うことができるため、印刷データの送信時間を短縮して印刷速度を向上させることができ、また、ホストコンピュータ１を早期に開放することができる。さらに、一回送信された印刷データがコピーバッファ４４に格納できなかった場合には、ホストコンピュータ１に印刷データの送信を要求することにより、プリンタ１０側のメモリ不足の有無を問わずに、常にコピー印刷を完了させることができ、使い勝手が向上する。
【００７４】
第２に、印刷データの終端に位置させてコピーエンドコマンドをコピーバッファ４４内に格納させるため、コピーエンドコマンドを読み出すことにより、コピーデータの範囲を検出することができる。即ち、コピーデータの格納先アドレスをカウントするアドレスカウンタ等を用いずに、コピー印刷すべきデータの範囲を確実に検出することができる。
【００７５】
第３に、コピーバッファ４４にコピーデータを全て記憶できた場合には、ホストコンピュータ１にコピーＯＫを通知するため、このコピーＯＫ通知を受信することによりホストコンピュータ１は処理を終了することができる。
【００７６】
なお、コピー印刷の例としては、例えば、１頁を３部、２頁を３部、３頁を３部印刷する場合の他、１〜３頁をその順で３部印刷する場合もある。
【００７７】
前者の印刷の例を図７に示す。この場合、例えば、図７（Ａ）に示すように、「ＡＢＣ」という頁を３部、「あいう」という頁を３部、「１２３」という頁を３部、それぞれ印刷する場合、まず、コピーコマンド及び「ＡＢＣ」の印刷データが送信されて１部印刷されると同時にコピーバッファ４４には「ＡＢＣ」改頁及びコピーエンドコマンドが格納され、その後、コピーバッファ４４に格納されたコピーデータを用いてさらに２部印刷される。同様にして、「あいう」が３部印刷され、さらに、「１２３」が３部印刷される。この場合はコピーバッファ４４がそれほど大きくなくても実現できる。
【００７８】
一方、後者、即ち、いわゆる帳合い印刷の例を図８に示す。図８（Ａ）に示すように、「ＡＢＣ」、「あいう」、「１２３」をこの順で３部印刷する場合、コピーコマンド及び「ＡＢＣ」、「あいう」、「１２３」の印刷データが送信されて１部印刷されると同時に、「ＡＢＣ」改頁、「あいう」改頁、「１２３」改頁及びコピーエンドコマンドがコピーバッファ４４に格納され、その後、コピーバッファ４４に格納されたデータを用いてさらに２部印刷される。このような印刷は、コピーバッファ４４が大きくないと実現できない。
【００７９】
従って、帳合い印刷の場合、従来においては、初めから必要部数分だけ印刷データを送信していたが、本実施の形態では、取りあえず、１回のデータ送信でコピー印刷を行えるか試み、コピー印刷が可能であれば繰り返し送信することなくコピー印刷を完了することができる。一方、メモリ不足等により、コピー印刷が実行できない場合でも、必要部数の送信をホストコンピュータ１から行わせることにより、コピー印刷を完了させることができ、使い勝手が向上する。
【００８０】
２．第２の実施の形態
次に、図９〜図１１に基づいて本発明の第２の実施の形態を説明する。なお、以下の各実施の形態では、上述した実施の形態と同一の構成要素に同一の符号を付し、その説明を省略するものとする。本実施の形態の特徴は、コピーバッファ４４の空き容量とコピーデータのデータ量とを比較することにより、１回のデータ送信でコピー印刷が可能か否かを判定してホストコンピュータ１に通知することにある。従って、本実施の形態では、ホストコンピュータ１からのコピースタートコマンド中に、印刷部数Ｃｎに加えて、コピーデータのデータ量ＤＳが予め格納されている。
【００８１】
本実施の形態によるプリンタ５１には、コピーバッファ４４の利用可能な空き容量ＭＳを検出するためのメモリ量検出部５２が設けられている。メモリ量検出部５２は、コピーバッファ４４で利用可能なメモリ残量ＭＳを検出してコピー制御部３２の判定部５３に出力する。判定部５３は、コピーデータのデータ量ＤＳとコピーバッファ４４の空き容量ＭＳとを比較し、コピーデータのデータ量ＤＳがコピーバッファ４４の空き容量ＭＳ以下の場合に、コピーＯＫを通知するようになっている。
【００８２】
図１０は、本実施の形態による印刷システムの判定処理を示すフローチャートである。コピー印刷が指示されるのを監視し（Ｓ７１）、コピー印刷を指示された場合は、コピーデータのデータ量ＤＳを検出する（Ｓ７２）。次に、メモリ量検出部５２からコピーバッファ４４の空き容量ＭＳを検出し（Ｓ７３）、コピーデータのデータ量ＤＳがコピーバッファ４４の空き容量ＭＳ以下であるか否かを判定する（Ｓ７４）。コピーデータのデータ量ＤＳの方がコピーバッファ４４の空き容量ＭＳ以下の場合は、１回のデータ送信でコピー印刷を行うことができる場合なので、ホストコンピュータ１にコピーＯＫを通知する（Ｓ７５）。一方、データ量ＤＳが空き容量ＭＳを上回っている場合は、コピーデータの受信に失敗する可能性があるため、コピーＮＧを通知する（Ｓ７６）。
【００８３】
図１１は、印刷処理を示すフローチャートである。まず、コピー印刷を行うか否か判定し（Ｓ８１）、コピー印刷を行う場合には、印刷部数Ｃｎをセットして（Ｓ８２）、コピーバッファ４４から印刷データを読み出す（Ｓ８３）。そして、この読み出された印刷データを解釈して印刷用のイメージデータを生成し（Ｓ８４）、プリントエンジン２０により印刷させ（Ｓ８５）、印刷部数Ｃｎを１だけデクリメントする（Ｓ８６）。Ｓ８２〜Ｓ８７の処理は、部数Ｃｎが０に達するまで繰返し行われる（Ｓ８７）。一方、コピーＮＧが通知されて印刷部数分だけの印刷データが繰り返し送信等される場合には、Ｓ８１で「ＮＯ」と判定されてＳ８８に移り、通常の印刷処理であるか否かを判定する。通常印刷の場合は、受信された印刷データを解釈してイメージデータを生成し（Ｓ８９）、印刷を行う（Ｓ９０）。従って、コピーＮＧ通知によりホストコンピュータ１から印刷データが複数回送信された場合には、Ｓ８８〜Ｓ９０の処理が部数分だけ繰り返されてコピー印刷が終了する。なお、通常印刷ではない場合、例えば、プリンタステータスの問い合わせコマンド等を受信した場合は、各コマンドの内容に応じて通常処理が行われる（Ｓ９１）。
【００８４】
このように構成される本実施の形態でも、上述した第１の実施の形態と同様の処理を行うことができる。これに加えて、本実施の形態では、コピーデータのデータ量とコピーバッファ４４の空き容量とを比較してコピーＯＫ，ＮＧの通知を行うため、印刷データをコピーバッファ４４に格納する前に、判定を行うことができる。
【００８５】
なお、空き容量を検出せずに、コピーバッファ４４の最大記憶容量をメモリ検出部５２に登録しておき、この記憶容量とコピーデータのデータ量とを比較してもよい。複数の印刷ジョブを受け付けないプリンタ５１の場合は、空き容量と最大記憶容量とが実質的に等しくなるからである。
【００８６】
３．第３の実施の形態
次に、図１２及び図１３に基づいて本発明の第３の実施の形態を説明する。本実施の形態の特徴は、コピーデータを送信する前に、１回のデータ送信でコピー印刷を行うか否かをホストコンピュータ側で決定する点にある。
【００８７】
ホストコンピュータ１のプリンタドライバ６１には、コピーバッファ４４の記憶容量ＭＳ１が予め記憶されたメモリ量記憶部６２と、判定部６３とが設けられている。例えば、ホストコンピュータ１からプリンタ７１にコピーバッファ４４の記憶容量ＭＳ１を問い合わせることにより、あるいは、ユーザーが手動でメモリサイズを入力することにより、メモリ量記憶部６２に記憶容量ＭＳ１を予め登録しておくことができる。コピー印刷時に、判定部６３は、コピーデータのデータ量ＤＳとコピーバッファ４４の記憶容量ＭＳ１とを比較し、その判定結果をコピーＯＫ，ＮＧとしてコマンド発行部４に通知する。コマンド発行部４は、この判定結果に応じて、コピーデータを１回で送信するか、印刷部数分だけ繰返し送信するかを選択する。
【００８８】
なお、図１２に示すように、本実施の形態では、判定部６３をプリンタドライバ６１に設けるため、本プリンタ７１のコピー制御部７２には、判定部が設けられていない。
【００８９】
図１３のフローチャートに基づいて、本実施の形態によるドライバ側処理を説明する。
【００９０】
まず、２部以上印刷するか否か、即ち、コピー印刷を行うか否かを判定し（Ｓ１００）、コピー印刷を行う場合は、コピーデータのデータ量ＤＳを検出する（Ｓ１０１）。次に、メモリ量記憶部６２に予め登録されたコピーバッファ４４の記憶容量ＭＳ１を読出し（Ｓ１０２）、コピーデータのデータ量ＤＳがコピーバッファ４４の記憶容量ＭＳ１以下であるか否かを判定する（Ｓ１０３）。
【００９１】
データ量ＤＳがメモリ量ＭＳ１以下の場合は、１回のデータ送信でコピー印刷を行うことができる場合のため、コピースタートコマンドを送信した後（Ｓ１０４）、コピーデータを送信し（Ｓ１０５）、最後にコピーエンドコマンドを送信する（Ｓ１０６）。一方、データ量ＤＳが記憶容量ＭＳ１よりも大きい場合は、１回のデータ送信でコピー印刷を行うことができない場合なので、印刷部数Ｃｎをセットし（Ｓ１０７）、この印刷部数Ｃｎが０に達するまでコピー印刷すべき印刷データを繰返し送信する（Ｓ１０８〜Ｓ１１０）。なお、１部だけ印刷する場合は、Ｓ１００で「ＮＯ」と判定されてＳ１０７に移り、印刷部数Ｃｎに「１」がセットされる。
【００９２】
このように構成される本実施の形態でも、第１の実施の形態と同様の効果を得ることができる。これに加えて、本実施の形態では、プリンタドライバ６１側にコピーバッファ４４の記憶容量ＭＳ１を予め登録しておき、記憶容量ＭＳ１とコピーデータのデータ量ＤＳとを比較することにより、送信モードを選択するため、コピーデータを送信する前に、最適な送信モードを決定できる。
【００９３】
４．第４の実施の形態
次に、図１４及び図１５に基づいて本発明の第４の実施の形態を説明する。本実施の形態の特徴は、ホストコンピュータ側からプリンタにコピーバッファ４４の空き容量を問い合わせて検査し、この検査された空き容量とコピーデータのデータ量とを比較することにより、送信モードを選定する点にある。
【００９４】
本実施の形態によるプリンタドライバ８１の判定部８２は、コピー印刷時に、プリンタ９１に対してコピーバッファ４４の空き容量ＭＳを問い合わせ、プリンタ９１から応答されたコピーバッファ４４の空き容量ＭＳとコピーデータのデータ量ＤＳとを比較することにより、コピーＯＫ，ＮＧの判定を下すようになっている。
【００９５】
前記第３の実施の形態と同様に、本プリンタ９１のコピー制御部９２には判定部が設けられていない。しかし、本プリンタ９１には、ホストコンピュータ１側の要求に応じてコピーバッファ４４の空き容量ＭＳを検出し、この空き容量ＭＳをホストコンピュータ１側に通知するためのメモリ量検出部９３が設けられている点で第３の実施の形態と相違する。
【００９６】
図１５は、本実施の形態によるドライバ側処理を示すフローチャートであり、本処理は、図１３中に示すＳ１００，Ｓ１０１，Ｓ１０３〜Ｓ１１０の各ステップを備えている。
【００９７】
本実施の形態では、図１３中のＳ１０２に代えて、新たにＳ１２１，Ｓ１２２を設けている。即ち、コピーデータのデータ量ＤＳを検出した後（Ｓ１０１）、プリンタ９１のメモリ量検出部９３にコピーバッファ４４の空き容量ＭＳを問い合わせる（Ｓ１２１）。プリンタ側からコピーバッファ４４の空き容量ＭＳが入力された場合には（Ｓ１２２）、この空き容量ＭＳとコピーデータのデータ量とを比較して（Ｓ１０３）、コピーデータの送信モードを決定する。
【００９８】
このように構成される本実施の形態でも、上述した第１の実施の形態と同様の効果を得ることができる。これに加えて、本実施の形態では、コピーデータを送信する前に、コピーバッファ４４の空き容量ＭＳを問い合わせ、コピーバッファ４４の空き容量ＭＳとコピーデータのデータ量ＤＳとを比較することにより、コピーデータの送信モードを選択している。従って、ネットワーク印刷システムのように、プリンタ９１が複数のホストコンピュータから複数の印刷ジョブを受信して処理可能な場合でも、コピーバッファ４４に現在残された空き容量ＭＳに基づいて、コピーデータの最適な送信モードを決定することができる。
【００９９】
なお、当業者であれば、前記各実施の形態に記載された本発明の要旨の範囲内で種々の追加、変更等が可能である。例えば、図９，図１４中に示す記録媒体ＭＭに所定のプログラムを記録させておき、このプログラムをプリンタまたはホストコンピュータにロードすることにより、本発明を実現することもできる。記録媒体としては、例えば、フロッピーディスク、ハードディスク、メモリカード等の種々の媒体を採用することができる。
【０１００】
また、前記第２の実施の形態では、コピースタートコマンド中にコピーデータのデータ量ＤＳを含めてコピーデータ及びコピーエンドコマンドと共に送信する場合を例示したが、本発明はこれに限らず、例えば、コピー印刷時には、最初に、ホストコンピュータ１からコピーデータのデータ量のみをプリンタ５１に通知し、このデータ量と空き容量とを比較した結果をプリンタ５１からホストコンピュータに入力させることにより、コピーデータを１回で送信するか、印刷部数分だけ繰返し送信するかの送信モードを決定することもできる。
【０１０１】
さらに、前記各実施の形態では、シリアルプリンタを例にとって説明したが、レーザプリンタ等の各種プリンタにも適用することができる。
【０１０２】
【発明の効果】
以上説明したように、本発明によれば、所定部数印刷する際に、印刷データをプリンタ側で記憶できるか否かを判定するため、印刷データを１回で送信するか所定部数分だけ繰り返して送信するかを判断することができ、使い勝手が向上する。
【０１０３】
また、印刷データをプリンタ側で記憶できる場合には、印刷データの１回の送信で所定部数の印刷を行うことができるため、印刷データの送信時間を短縮して印刷速度を向上させることができ、ホストコンピュータを早期に解放することができる。一方、印刷データをプリンタ側で記憶できない場合は、送信モードを変更し、印刷データを所定部数分だけ繰り返して送信するため、プリンタ側の搭載メモリ量等を問わずに、複数部数の印刷を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る印刷システムのハードウエア構成の概略を示す概略構成図である。
【図２】印刷システムの機能ブロック図である。
【図３】プリンタにより実行される印刷処理のフローチャートである。
【図４】図３に続く印刷処理のフローチャートである。
【図５】ホストコンピュータ側で実行されるプリンタドライバの処理を示すフローチャートである。
【図６】ホストコンピュータとプリンタとの間のデータの流れを示す説明図であり、（Ａ）は、印刷データの１回の送信でコピー印刷が可能な場合を示し、（Ｂ）は、印刷データを部数分だけ送信することによりコピー印刷を行う場合を示している。
【図７】コピー印刷の一例を示す説明図である。
【図８】コピー印刷の他の一例を示す説明図である。
【図９】本発明の第２の実施の形態に係る印刷システムの機能ブロック図である。
【図１０】判定処理を示すフローチャートである。
【図１１】印刷処理を示すフローチャートである。
【図１２】本発明の第３の実施の形態に係る印刷システムの機能ブロック図である。
【図１３】ドライバ側処理を示すフローチャートである。
【図１４】本発明の第４の実施の形態に係る印刷システムの機能ブロック図である。
【図１５】ドライバ側処理を示すフローチャートである。
【符号の説明】
１  ホストコンピュータ
２  プリンタドライバ
４  コマンド発行部
１０  プリンタ
１１  Ｉ／Ｆ
１５  プリンタコントローラ
２０  プリントエンジン
３１  解釈部
３２  コピー制御部
３３  コピー印刷部
３４  判定部
４１  受信バッファ
４２  出力バッファ
４３  コピー指令記憶部
４４  コピーバッファ
５１  プリンタ
５２  メモリ量検出部
５３  判定部
６１  プリンタドライバ
６２  メモリ量記憶部
６３  判定部
７１  プリンタ
７２  コピー制御部
８１  プリンタドライバ
８２  判定部
９１  プリンタ
９２  コピー制御部
９３  メモリ量検出部
【図１】
0003624686.tif 000002
【図２】
0003624686.tif 000003
【図３】
0003624686.tif 000004
【図４】
0003624686.tif 000005
【図５】
0003624686.tif 000006
【図６】
0003624686.tif 000007
【図７】
0003624686.tif 000008
【図８】
0003624686.tif 000009
【図９】
0003624686.tif 000010
【図１０】
0003624686.tif 000011
【図１１】
0003624686.tif 000012
【図１２】
0003624686.tif 000013
【図１３】
0003624686.tif 000014
【図１４】
0003624686.tif 000015
【図１５】
0003624686.tif 000016