(57)【特許請求の範囲】
【請求項１】
プリンタへデータを送信する送信手段を有するデータ転送装置において、
データ転送要求に応答して印刷データブロックが完結しているか否かを判定する判定手段と、
該判定手段により否定判定された場合は、印刷終了要求に応答して、印刷データブロックのパラメータレングスを完結させるための印刷されるデータと給紙中の用紙を排紙させるフォームフィードコードを含む補完データを生成する補完データ生成手段と、
該補完データ生成手段により補完データが生成された場合は、生成された補完データを印刷データブロックの後に前記送信手段に転送する転送手段と
を有することを特徴とするデータ転送装置。
【請求項２】
請求項１において、前記判定手段は、コマンドの区切りを検出する検出手段を有し、該検出手段により検出されたコマンドの区切りに基づき当該印刷データブロックが完結しているか否かを判定することを特徴とするデータ転送装置。
【請求項３】
請求項１において、前記補完データ生成手段は、補完に必要なバイト数を計算する計算手段を有し、該計算手段による計算により得られたバイト数分の補完を行なうことを特徴とするデータ転送装置。
【請求項４】
請求項１において、前記補完データ生成手段は、該判定手段により否定判定された場合は、印刷終了要求に応答して、印刷データブロックのパラメータレングスが含まれていない場合、０のパラメータレングスと給紙中の用紙を排紙させるフォームフィードコードとプリンタの初期化を行なうためのプリンタリセットコマンドとを含む補完データを生成することを特徴とするデータ転送装置。
【請求項５】
データ転送要求に応答して印刷データブロックが完結しているか否かを判定する判定ステップと、
否定判定した場合は、印刷終了要求に応答して、印刷データブロックのパラメータレングスを完結させるための印刷されるデータと給紙中の用紙を排紙させるフォームフィードコードを含む補完データを生成する補完データ生成ステップと、
補完データが生成された場合は、生成された補完データを印刷データブロックの後に、プリンタへデータを送信する送信手段に転送する転送ステップと
を有することを特徴とするデータ転送方法。
【請求項６】
請求項５において、前記判定ステップは、コマンドの区切りを検出する検出ステップを有し、該検出ステップで検出されたコマンドの区切りに基づき当該印刷データブロックが完結しているか否かを判定することを特徴とするデータ転送方法。
【請求項７】
請求項５において、前記補完データ生成ステップは、補完に必要なバイト数を計算する計算ステップを有し、該計算ステップで得られたバイト数分の補完を行なうことを特徴とするデータ転送方法。
【請求項８】
請求項５において、前記補完データ生成ステップは、該判定ステップにより否定判定された場合は、印刷終了要求に応答して、印刷データブロックのパラメータレングスが含まれていない場合、０のパラメータレングスと給紙中の用紙を排紙させるフォームフィードコードとプリンタの初期化を行なうためのプリンタリセットコマンドとを含む補完データを生成することを特徴とするデータ転送方法。
【請求項９】
データ転送要求に応答して印刷データブロックが完結しているか否かを判定する判定手順と、
該判定手順により否定判定された場合に、印刷終了要求に応答して、印刷データブロックのパラメータレングスを完結させるための印刷されるデータと給紙中の用紙を排紙させるフォームフィードコードを含む補完データを生成する補完データ生成手順と、
該補完データ生成手順により補完データが生成された場合に、生成された補完データを印刷データブロックの後に、プリンタへデータを送信する送信手段に転送する転送手順と
をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１０】
請求項９において、前記判定手順が、コマンドの区切りを検出する検出手順を有し、該検出手順により検出されたコマンドの区切りに基づき当該印刷データブロックが完結しているか否かを判定するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１１】
請求項９において、前記補完データ生成手順が、補完に必要なバイト数を計算する計算手順を有し、該計算手順による計算により得られたバイト数分の補完を行なうプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１２】
請求項９において、前記補完データ生成手順が、該判定手順により否定判定された場合は、印刷終了要求に応答して、印刷データブロックのパラメータレングスが含まれていない場合、０のパラメータレングスと給紙中の用紙を排紙させるフォームフィードコードとプリンタの初期化を行なうためのプリンタリセットコマンドとを含む補完データを生成するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタへのデータの送信を制御するデータ転送装置および方法に関する。
【０００２】
【従来の技術】
従来、一般的には、プリンタとコンピュータを接続するセントロニクスインタフェースには、リセット信号線が用意されており、このリセット信号線上のリセット信号をアサートすることによりプリンタをリセットすることができるようになっていた。
【０００３】
プリンタによるプリントの途中であっても、このリセット信号線上のリセット信号をアサートして強制的にプリンタをリセットしてしまえば、排紙が行なわれ、それまでにセットされていた設定値が全てプリンタの初期値に戻されるようになっており、一旦リセットしてしまえば、次のプリントを正常に開始することができるようになっていた。
【０００４】
これに対して、ネットワークでプリンタが共有されることを前提として設計されたような環境では、リセット信号線上のリセット信号を利用できないようにした環境があるが、これは、むやみにプリンタにリセット処理を施すようにすると、第三者のプリントまでも中止してしまうといった危険を回避するためである。
【０００５】
【発明が解決しようとする課題】
しかしながら、リセット信号線上のリセット信号を使用しない環境で印刷中止を実現するために、単純に印刷データの転送を停止するだけでは、リセット処理として充分ではない。つまり、この時、プリンタは未完結のコマンドの続きを受信待ちしていることがあり、次の印刷データの先頭部をその続きと勘違いして不要なゴミ印刷をしてしまったり、仮にコマンドが完結していたとしても、フォームフィードコードを受信していないので、排紙をせずに紙の途中から次の印刷を開始してしまうといった問題があった。
【０００６】
また、リセット処理が不充分であるため、それまでにセットされていた設定値が初期化されず、次の印刷に引き継がれてしまうといった問題もあった。
【０００７】
本発明の目的は、上記のような問題点を解決し、ジョブごとに印刷を正常に開始させることができるデータ転送装置および方法を提供することにある。
【０００８】
【課題を解決するための手段】
請求項１の発明は、プリンタへデータを送信する送信手段を有するデータ転送装置において、データ転送要求に応答して印刷データブロックが完結しているか否かを判定する判定手段と、該判定手段により否定判定された場合は、印刷終了要求に応答して、印刷データブロックのパラメータレングスを完結させるための印刷されるデータと給紙中の用紙を排紙させるフォームフィードコードを含む補完データを生成する補完データ生成手段と、該補完データ生成手段により補完データが生成された場合は、生成された補完データを印刷データブロックの後に前記送信手段に転送する転送手段とを有することを特徴とする。
【０００９】
請求項１において、判定手段は、コマンドの区切りを検出する検出手段を有し、該検出手段により検出されたコマンドの区切りに基づき当該印刷データブロックが完結しているか否かを判定することができる。また、補完データ生成手段は、フォームフィードコードを含む補完データを生成することができる。
【００１０】
請求項１において、補完データ生成手段は、補完に必要なバイト数を計算する計算手段を有し、該計算手段による計算により得られたバイト数分の補完を行なうことができる。
【００１２】
請求項１において、補完データ生成手段は、プリンタリセットコマンドを含む補完データを生成することができる。
【００１４】
請求項５の発明は、データ転送要求に応答して印刷データブロックが完結しているか否かを判定する判定ステップと、否定判定した場合は、印刷終了要求に応答して、印刷データブロックのパラメータレングスを完結させるための印刷されるデータと給紙中の用紙を排紙させるフォームフィードコードを含む補完データを生成する補完データ生成ステップと、補完データが生成された場合は、生成された補完データを印刷データブロックの後に、プリンタへデータを送信する送信手段に転送する転送ステップとを有することを特徴とする。
【００１５】
請求項５において、判定ステップは、コマンドの区切りを検出する検出ステップを有し、該検出ステップで検出されたコマンドの区切りに基づき当該印刷データブロックが完結しているか否かを判定することができる。
【００１６】
請求項５において、補完データ生成ステップは、補完に必要なバイト数を計算する計算ステップを有し、該計算ステップで得られたバイト数分の補完を行なうことができる。
【００１８】
請求項５において、補完データ生成ステップは、プリンタリセットコマンドを含む補完データを生成することができる。
【００２０】
コンピュータ読み取り可能な記憶媒体に記憶したプログラムは、データ転送要求に応答して印刷データブロックが完結しているか否かを判定する判定手順と、該判定手順により否定判定された場合に、印刷終了要求に応答して、印刷データブロックのパラメータレングスを完結させるための印刷されるデータと給紙中の用紙を排紙させるフォームフィードコードを含む補完データを生成する補完データ生成手順と、該補完データ生成手順により補完データが生成された場合に、生成された補完データを印刷データブロックの後に、プリンタへデータを送信する送信手段に転送する転送手順とをコンピュータに実行させる。
【００２１】
コンピュータ読み取り可能な記憶媒体に記憶したプログラムは、判定手順が、コマンドの区切りを検出する検出手順を有し、該検出手順により検出されたコマンドの区切りに基づき当該印刷データブロックが完結しているか否かを判定する。
【００２２】
コンピュータ読み取り可能な記憶媒体に記憶したプログラムは、補完データ生成手順が、補完に必要なバイト数を計算する計算手順を有し、該計算手順による計算により得られたバイト数分の補完を行なう。
【００２４】
コンピュータ読み取り可能な記憶媒体に記憶したプログラムは、補完データ生成手順が、プリンタリセットコマンドを含む補完データを生成することができる。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００２７】
図１は本発明の一実施の形態を示す。これは、コンピュータ１とプリンタ２とを接続したシステムの例である。外部インタフェースとしてセントロニクスパラレルインタフェースを用いたが、ＳＣＳＩインタフェース等の他のインタフェースでも良い。
【００２８】
コンピュータ１は、入力インタフェース１１と、ＣＰＵ１２と、ＲＯＭ１３と、ＲＡＭ１４と、外部記憶装置１５と、出力インタフェース１６と、表示部１７と、マウス１８とを有する。
【００２９】
ＲＯＭ１３は初期設定プログラムがストアしてある。外部記憶装置１５は、図２に示すように、アプリケーションプログラムと、ＯＳ（データスプールプログラムと、データ送信処理プログラムと、インタフェース制御プログラム等）と、プリンタドライバ（印刷データ生成プログラムと、データ送信制御プログラム等）とがストアしてある。
【００３０】
アプリケーションプログラムは作画環境と印刷環境を提供し印刷開始を命令するためのプログラムである。データスプールプログラムは生成された印刷データを受け取り、任意のサイズの印刷データブロックに分割して繰り返しデータ転送要求を発行するためのプログラムである。データ送信処理プログラムはパースを終えた印刷データブロックの送信を司るためのプログラムである。インタフェース制御プログラムはセントロニクス・パラレルインタフェースを通じてデータ書き込み、読み込みを実際に行い、プリンタ２の受信バッファがフルになった等のデータ受信が即座に実行できない状況においてビジー信号を発行する役割を担うプログラムである。印刷データ生成プログラムはアプリケーションプログラムに従って作画された図柄情報をプリンタコマンドに変換するためのプログラムである。データ送信制御プログラムはデータ転送要求を受け付け、入力された印刷データブロックをパースしてプリンタコマンドの区切りを検出するためのプログラムである。
【００３１】
ＲＡＭ１４は図柄情報記憶部１４ａと、印刷データ記憶部１４ｂと、プログラムロード領域１４ｃとを有し、外部記憶装置１５にストアされている各プログラムがストアされる。ＣＰＵ１２はＲＡＭ１４にストアされる制御プログラムに従って各部を制御するものである。
【００３２】
図３は図１のプリンタ２の構成を示す。プリンタ２はインタフェース部２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、ＣＰＵ２０４と、エンジン２０５とを有する。インタフェース部２０１はコンピュータ１の出力インタフェース１６に接続してある。ＲＯＭ２０３は制御プログラム等がストアしてある。ＣＰＵ２０４はＲＯＭ２０３にストアしてある制御プログラムに従ってプリンタ２の各部を制御するものである。ＲＡＭ２０２はＣＰＵ２０４の主メモリとワークメモリとして用いら、受信したデータを一旦保存するための受信バッファを有する。エンジン２０５はＲＡＭ２０２に保存されたデータに基づきプリントを行なうものである。
【００３３】
図４は図１のＲＡＭ１４にストアされるデータ送信制御プログラムを示すフローチャートである。ステップＳ１にて、データスプールプログラムからの今回の要求が「印刷開始要求」であるかどうかを判断し、「印刷開始要求」と判断した場合は、ステップＳ２にて、印刷に備えた初期化を行う。ここでは、初期化作業として、未完結フラグに０をセットする。他方、「印刷開始要求」でないと判断した場合には、ステップＳ３にて、今回の要求が「データ転送要求」であるかどうかを判断する。
【００３４】
データ転送要求と判断した場合は、ステップＳ４にて、印刷データブロックをパースする。ここで、例えば、コマンド
ＥＳＣ（  ｘ  ｎ  ｐ１  ｐ２  ｐ３  …
において、
ＥＳＣ  ：コマンドの先頭を示す符号（１バイト）
（      ：次に続くコマンドＩＤの前符号（１バイト）
ｘ      ：例ではａ、ｂ、ｃ、等で代表しているコマンドＩＤ（１バイト）
ｎ      ：ｐ１、ｐ２で構成されるパラメータのレングス（１バイト）
ｐ１      ：パラメータ１（１バイト）
ｐ２      ：パラメータ２（１バイト）
ｐ３      ：パラメータ３（１バイト）
…
を表す。
【００３５】
ステップＳ４にてパースをした結果、例えば、図５に示すように、印刷データブロックに含まれる最後のコマンドのパラメータレングスが０１であって、かつ、最後にパラメータが１バイト付いている場合は、ステップＳ５にて、この印刷データブロックはちょうどコマンドの区切りで終了して完結していると判断し、ステップＳ６にて、未完結フラグに０をセットする。
【００３６】
例えば、図６に示すように、印刷データブロックに含まれる最後のコマンドのパラメータレングスが０２であって、かつ、最後にパラメータが１バイトしか付いていない場合は、テップＳ５にて、この印刷データブロックはちょうどコマンドの区切りで終了しておらず未完結と判断し、ステップＳ７にて、未完結フラグに１をセットする。そして、ステップＳ８にて、パースを終えた印刷データブロックを、プリンタへ送信するため、データ転送処理プログラムへ転送する。その後、この処理を終了する。
【００３７】
他方、ステップＳ３にて、今回の要求が「データ転送要求」でないと判断した場合は、ステップＳ９にて、今回の要求が「印刷終了要求」であるかどうかを判断する。そして、「印刷終了要求」でないと判断した場合は、「印刷開始要求」か、「データ転送要求」か、「印刷終了要求」のいずれの要求でもなかったと判断し、その後、この処理を終了する。
【００３８】
他方、「印刷終了要求」と判断した場合は、ステップＳ１０にて、未完結フラグが１であるかどうか、すなわち、印刷を終了する前に補完データを送る必要があるかどうかを判断する。
【００３９】
「印刷終了要求」の場合、印刷データ送信制御プログラムにとっては、この「印刷終了要求」が正常に印刷を終了する過程で最後に要求されたものか、それとも印刷中止命令に従って途中で要求されたものなのかは解らなくても良く、ステップＳ２、ステップＳ６もしくはＳ７でセットした「未完結フラグ」の状態に従って補完データを生成、送信することが結果として印刷を正常終了させることになる。
【００４０】
未完結フラグが１でない場合は、この処理を終了し、他方、未完結フラグが１である場合は、ステップＳ１１にて、補完データを生成し、ステップＳ１２にて、補完データをデータ送信処理プログラムへ転送する。
【００４１】
次に、補完データの生成方法をより詳細に説明する。例えば、図６に示す印刷データブロックの場合は、まず、この印刷データブロックに含まれる最後のコマンドのパラメータレングス、すなわち、０２に注目し、あと何バイト補完すればコマンドが完結するかを計算する。計算結果から、コマンドを完結させるには、あと１バイト補完する必要があることが分かるので、任意の１バイト、ここではプリンタに送信すると印刷されるデータであるＦＦを付加する。ただし、補完されるものはＦＦに限定されるものではなく、印刷されるデータであれば他のコードであっても良い。図６の例では、このＦＦを付加する他に、給紙中の用紙を排紙する目的で０Ｃ（フォームフィードコード）１バイトも付加した。
【００４２】
また、例えば、図７に示す例は、印刷データブロックの最後のコマンドのコマンドＩＤやパラメータレングス部が印刷データブロックに含まれていない例である。この例でのコマンドの完結は、この印刷データブロックがプリンタに送信されても、印刷に影響がなく、虞らくは、プリンタがサポートしていないコマンドと判断されて読み飛ばしてくれるような、コマンドＩＤ（図７（ｂ）のＺ）とパラメータレングス（図７（ｂ）の００）を付加して行なう。これらを付加した他に、図６の例と同様に、排紙の目的で０Ｃ（フォームフイードコード）を付加し、さらに、プリンタの初期化を目的としてＲＥＳＥＴで示されるようなプリンタリセットコマンドを付加してコマンドを完結させた。
【００４３】
以上のようにして補完データを生成した後、ステップＳ１２にて、生成した補完データをデータ送信処理プログラムへ転送する。
【００４４】
以上のように、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（または、ＣＰＵやＭＰＵ（microprocessor unit））が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００４５】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４６】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ(compact disk ROM)、ＣＤ−Ｒ(compact disk recordable)、磁気テープ、不揮発性のメモリカード、ＲＯＭ（read only memory）、等々を用いることができる。
【００４７】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ(operating system)などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４９】
【発明の効果】
以上説明したように、本発明によれば、未完結のコマンドを完結させるために補完データを送信するようにしたので、続く印刷の先頭で不要なゴミ印刷を防ぐことができる。
【００５０】
また、本発明によれば、補完データにフォームフィードコードを含めるようにしたので、印刷途中の用紙を排紙して次の印刷を用紙途中から開始してしまうといった不都合を防ぐことができる。
【００５１】
さらに、本発明よれば、補完データにリセットコマンドを含めるようにしたので、今までにセットされてきた設定値を初期化でき、前回の設定値が次の印刷に引き継がれてしまうといった不都合を防ぐことができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態を示すブロック図である。
【図２】図１の外部記憶装置１５にストアされるプログラムの例を示す図である。
【図３】図１のプリンタ２の構成を示すブロック図である。
【図４】図１のＲＡＭ１４にストアされるデータ送信制御プログラムの一例を示すフローチャートである。
【図５】印刷データブロックの一例を示す図である。
【図６】印刷中止時の印刷データブロックの例とコマンドを完結するために付加されるものの例を示す図である。
【図７】印刷中止時の印刷データブロックの例とコマンドを完結するために付加されるものの例を示す図である。
【符号の説明】
１  コンピュータ
２  プリンタ
１１  入力インタフェース
１２  ＣＰＵ
１３  ＲＯＭ
１４  ＲＡＭ
１５  外部記憶装置
１６  出力インタフェース
１７  表示部
１８  マウス
【図１】
0004346761.tif 000002
【図２】
0004346761.tif 000003
【図３】
0004346761.tif 000004
【図４】
0004346761.tif 000005
【図５】
0004346761.tif 000006
【図６】
0004346761.tif 000007
【図７】
0004346761.tif 000008