(57)【要約】      （修正有）【課題】  オフラインからオンライン復帰時に、無駄な印刷を実行することなく、中断された印刷をスムーズに再開可能なプリンタ及びプリンタ制御方法を提供する。【解決手段】  制御部４４は、オフライン発生時に、データ受信部４１に受信データの読み捨てを開始させるとともに、受信バッファ４２内の前記データをクリアさせる。そして、制御部４４は、オンライン復帰時に、データ受信部４１に受信データの読み捨てを中断させるとともに、データ送信部にホストコンピュータ３０へオンライン復帰通知であるクリアレスポンス１を送信させる。そして、制御部４４は、ホストコンピュータ３０から受信するバッファクリア指示であるバッファクリアコマンドに応じて、受信バッファ４２を再度クリアさせる。【選択図】  図１
2006062266.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから送信されるデータを受信するデータ受信部と、
前記ホストコンピュータにデータを送信するデータ送信部と、
前記データ受信部によって受信されたデータを一時保持する受信バッファと、
前記受信バッファに一時保持されたデータを解析する解析部と、
前記データが印刷データであった場合に印刷イメージが展開される印刷バッファと、
前記印刷バッファに展開された印刷イメージに応じて印刷をおこなう印刷機構と、
前記データ受信部、前記データ送信部、前記受信バッファ、前記解析部、前記印刷バッファ及び前記印刷機構を制御する制御部と、を備え、
前記制御部は、オフライン発生時に、前記データ受信部に受信データの読み捨てを開始させるとともに、受信バッファ内の前記データをクリアし、
前記制御部は、オンライン復帰時に、前記データ受信部に受信データの読み捨てを終了させるとともに、前記データ送信部に前記ホストコンピュータへオンライン復帰通知を送信させ、
前記制御部は、前記ホストコンピュータから受信するバッファクリア指示に応じて、前記受信バッファを再度クリアすることを特徴とするプリンタ。
【請求項２】
前記制御部は、前記オンライン復帰時に前記印刷バッファをクリアするとともに、前記バッファクリア指示に応じて、前記印刷バッファを再度クリアすることを特徴とする請求項１記載のプリンタ。
【請求項３】
前記制御部は、前記バッファクリア指示受信後に、前記ホストコンピュータにバッファクリア完了通知を送信し、前記バッファクリア完了通知送信後に前記ホストコンピュータから受信する印刷データを基に印刷を実行することを特徴とする請求項１または２記載のプリンタ。
【請求項４】
オフライン発生時に、受信データの読み捨てを開始するとともに受信バッファをクリアするステップと、
オンライン復帰時に、前記受信データの読み捨てを中断するとともに、ホストコンピュータにオンライン復帰通知を送信するステップと、
前記ホストコンピュータから受信するバッファクリア指示に応じて、前記受信バッファを再度クリアするステップと、を備えたことを特徴とするプリンタの制御方法。
【請求項５】
前記オンライン復帰時に印刷バッファをクリアするとともに、前記バッファクリア指示に応じて、前記印刷バッファを再度クリアすることを特徴とする請求項４記載のプリンタの制御方法。
【請求項６】
前記バッファクリア指示受信後に、前記ホストコンピュータにバッファクリア完了通知を送信するステップと、
前記バッファクリア完了通知送信後に送信される印刷データを基に印刷を実行するステップとを備えたことを特徴とする請求項４または５記載のプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ及びプリンタの制御方法に係り、特にオフライン状態からオンライン状態に復帰する場合のプリンタ内の処理に関する。
【背景技術】
【０００２】
プリンタを備えたプリンタシステムでは、プリンタは印刷データを生成するホストコンピュータに通信可能に接続されており、このホストコンピュータによってプリンタの各種動作制御がなされる。例えば、プリンタは、印刷時においては、ホストコンピュータからの印刷指示コマンドに応じて、単票用紙やロール紙等の用紙上に印刷を実行して、印刷結果の出力を行う。
【０００３】
一般にプリンタでは、用紙が無くなったり、用紙がプリンタ内部で紙詰まりを起こしたりすると、印刷可能な状態であるオンラインから印刷を実行しない状態であるオフラインに内部状態が遷移する。例えば、ロール紙へレシートの印刷を行っていた場合には、レシート内容の印刷が途中で中断されてしまう。オフラインが発生時には、オフライン要因となった原因を取り除いてやることにより、オンラインに復帰できる。
【０００４】
例えば、プリンタ内部のロール紙が紙切れとなった場合には、新しいロール紙をプリンタ内部に装填してやることによりオンラインに復帰可能である。また、プリンタ内部でロール紙が紙詰まりを起こし用紙送り不能となった場合には、ロール紙を正しく装填し直し、復帰コマンドを送信してやることにより、オンラインに復帰可能である。
【０００５】
しかしながら、ロール紙が紙切れとなった場合に、新しいロール紙をプリンタに装填してオンライン復帰後に印刷を続行させると、オンライン復帰後にはオフライン発生前に印刷されなかった残りの印刷データがロール紙上に印刷される。したがって、本来一枚の用紙に印刷すべきレシート内容が２枚の用紙にわたって印刷されてしまい、結局この２枚の用紙に分かれて印刷されたレシートは、レシートとして意味を持たないものとなってしまう。そのため、再度同じレシート内容をホストコンピュータからプリンタに送信して、再印刷を行わねばならず、用紙が無駄に消費される結果となっていた。また、再印刷を行う手間と時間を考えると印刷の効率が著しく低下し、ひいては業務効率の低下してしまう。
【０００６】
また、ロール紙が紙詰まりを起こし、用紙送り不能となった場合に、ロール紙を正しく装填し直し、復帰コマンドを送信してオンライン復帰後に印刷を続行させると、印刷された用紙が折れ曲がっていたり、複雑な皺が用紙に生じていたりすることが多く、再度同じレシート内容をホストコンピュータからプリンタに送信して、再印刷を行わねばならないことが多い。この場合にも、用紙が無駄に消費されるとともに、印刷の効率が著しく低下しひいては業務効率が低下してしまう。
【０００７】
また、プリンタがオフライン中に新たに受信した印刷データは、受信バッファに保存されるが、受信バッファのデータサイズには限りがあるため、ビットマップイメージのようなサイズの大きいデータを受信すると、場合によっては受信バッファがバッファフル状態となり、これ以上のデータを受信できないという状況が発生してしまう可能性がある。
【０００８】
特許文献１では、オフラインからオンラインへの復帰時にどのような処理を実行するべきかを設定するコマンドがホストコンピュータから送信され、オフラインから復帰したときには、その原因に応じて処理を実行するプリンタが開示されている。このようなプリンタであれば、使用不能となると予め想定される残り部分のレシートの印刷を実行させないようにすることができる。
【０００９】
また、特許文献２では、オフライン中に新たに受信した印刷データを保存するか自動的に破棄するかを選択可能に構成されたプリンタが開示されている。本プリンタにおいて、自動的に受信データを破棄する場合には、オフライン中にそれ以上受信バッファにデータが蓄積されないため、バッファフルとなる状況を回避することができる。
【特許文献１】特開平１１−２６８３８４号公報
【特許文献１】特開２００１−１８００５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載のプリンタシステムでは、オンライン復帰時にホストコンピュータとプリンタがどのようなコマンドを送受信することにより、印刷が中断してしまったレシートの印刷を再開するかについて具体的な記載が無い。
【００１１】
また、特許文献２に記載のプリンタでは、オンライン復帰後にはホストから印刷データの再送信が実行されるが、印刷データの送信タイミングとオフラインからオンラインへの復帰タイミングによっては、破棄されるべきデータが受信バッファに残っている場合も考えられ、この場合には、印刷されるべきではないレシートデータが印刷されて、無駄に紙を消費してしまう。
【００１２】
本発明は、上記を鑑みてなされたものであり、オフラインからオンラインへの復帰時に、無駄な印刷を実行することなく、中断された印刷をスムーズに再開可能なプリンタ及びプリンタの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
（１）  ホストコンピュータから送信されるデータを受信するデータ受信部と、
前記ホストコンピュータにデータを送信するデータ送信部と、
前記データ受信部によって受信されたデータを一時保持する受信バッファと、
前記受信バッファに一時保持されたデータを解析する解析部と、
前記データが印刷データであった場合に印刷イメージが展開される印刷バッファと、
前記印刷バッファに展開された印刷イメージに応じて印刷をおこなう印刷機構と、
前記データ受信部、前記データ送信部、前記受信バッファ、前記解析部、前記印刷バッファ及び前記印刷機構を制御する制御部と、を備え、
前記制御部は、オフライン発生時に、前記データ受信部に受信データの読み捨てを開始させるとともに、受信バッファ内の前記データをクリアし、
前記制御部は、オンライン復帰時に、前記データ受信部に受信データの読み捨てを終了させるとともに、前記データ送信部に前記ホストコンピュータへオンライン復帰通知を送信させ、
前記制御部は、前記ホストコンピュータから受信するバッファクリア指示に応じて、前記受信バッファを再度クリアすることを特徴とするプリンタ。
（２）  前記制御部は、前記オンライン復帰時に前記印刷バッファをクリアするとともに、前記バッファクリア指示に応じて、前記印刷バッファを再度クリアすることを特徴とする（１）記載のプリンタ。
（３）  前記制御部は、前記バッファクリア指示受信後に、前記ホストコンピュータにバッファクリア完了通知を送信し、前記バッファクリア完了通知送信後に前記ホストコンピュータから受信する印刷データを基に印刷を実行することを特徴とする（１）または（２）記載のプリンタ。
（４）  オフライン発生時に、受信データの読み捨てを開始するとともに受信バッファをクリアするステップと、
オンライン復帰時に、前記受信データの読み捨てを中断するとともに、ホストコンピュータにオンライン復帰通知を送信するステップと、
前記ホストコンピュータから受信するバッファクリア指示に応じて、前記受信バッファを再度クリアするステップと、を備えたことを特徴とするプリンタの制御方法。
（５）  前記オンライン復帰時に印刷バッファをクリアするとともに、前記バッファクリア指示に応じて、前記印刷バッファを再度クリアすることを特徴とする（４）記載のプリンタの制御方法。
（６）  前記バッファクリア指示受信後に、前記ホストコンピュータにバッファクリア完了通知を送信するステップと、
前記バッファクリア完了通知送信後に送信される印刷データを基に印刷を実行するステップとを備えたことを特徴とする（４）または（５）記載のプリンタの制御方法。
【発明の効果】
【００１４】
本発明によれば、印刷途中でオフラインが発生し、印刷が中断された場合であっても、印刷途中のレシートに関する印刷データは、プリンタに受信されず、受信されていたまたはその後受信された場合であっても、受信バッファと印刷バッファがそれぞれ２回クリアされるので、プリンタが印刷可能な状態となった時点で、プリンタには印刷すべきデータが全く残らない。よって、オフライン発生前に印刷途中であったレシートの後半部分がオンラインに復帰後に印刷されてロール紙が無駄になるといった状態が発生することが無い。
【００１５】
また、その後印刷が中断された印刷データをプリンタに向けてホストコンピュータが再送信することにより、改めて１枚のレシートをスムーズに印刷することができる。したがって、印刷の途中でオフラインが発生した場合であっても効率の低下を最小限に抑制しながら印刷を連続的に継続することができる。
【００１６】
なお、印刷にインクやトナーを必要とするプリンタにおいては、ロール紙等の用紙とともに、インクまたはトナーの消費も抑制することができ、インクカートリッジやトナーカートリッジの寿命を長引かせるために寄与することもできる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しながら、本発明にかかるプリンタ及びプリンタの制御方法の実施形態について説明する。
【００１８】
図１は、本実施形態のプリンタシステムを示す斜視図であり、図２は、本実施形態のプリンタシステム１内部の制御構成を模式的に示す機能ブロック図である。図３及び図４は、本実施形態のプリンタの処理について示すフローチャートである。図５は、本実施形態のホストコンピュータの処理について示すフローチャートである。図６は、ホストコンピュータとプリンタ間を送信されるコマンドを示すタイミングチャートである。図７は、バッファクリアコマンドの必要性を説明する模式図である。
【００１９】
本実施形態のプリンタシステム１は、図１に示すように、スリップ紙Ｓの両面印刷、画像読み取り、磁気文字読み取りを行うとともに、レシートを発行可能な複合型プリンタであるプリンタ１０と、このプリンタ１０を制御するホストコンピュータ３０とを備えている。
【００２０】
プリンタ１０は、本体部１１上に正面側上面を覆うように開閉可能に取り付けられた正面側カバー１３と、正面側カバー１３の後方上面を覆うように開閉可能に取り付けられた背面側カバー１２とによって構成されている。
【００２１】
プリンタ１０の本体部１１と背面側カバー１２との間には、ロール紙収納空間が形成されており、このロール紙収納空間にロール紙Ｐが装填されている。ロール紙Ｐは、本体部１１内部に設けられたロール紙搬送路を搬送されながら、図示せぬ印刷ヘッドにより印刷が行われる。そして印刷されたロール紙は背面側カバー１２の上面に開口したロール紙排出口１２ａより排出される。図１では、ロール紙排出口１２から排出されたロール紙Ｐの一端が示されている。このロール紙Ｐは、自動または手動により印刷データの長さに応じて切断され、一枚のレシートとして発行される。
【００２２】
また、プリンタ１０の正面側カバー１３の下方には、スリップ紙Ｓを挿入可能な小切手挿入口１５が形成されている。小切手挿入口１５から挿入されたスリップ紙Ｓは、本体部１１に形成された小切手搬送路１６を搬送され、正面側カバー１３と背面側カバー１４との間に形成された小切手排出口１７から排出される。スリップ紙Ｓは、この小切手搬送路１６に沿って搬送されながらスリップ紙Ｓへの印字、スリップ紙Ｓの画像読み取り、スリップ紙Ｓ上に印字されたＭＩＣＲの読み取り等を実行可能である。
【００２３】
本実施形態のプリンタ１０は、内部にＣＰＵ，ＲＡＭ等を備えており、例えば不揮発性メモリであるフラッシュＲＯＭ内に記憶されたファームウェアをＣＰＵが読み出して実行することにより、各種制御動作が実行され、印刷が行われる。このプリンタ１０の制御については、後述する。
【００２４】
次に、ホストコンピュータ３０について説明する。
ホストコンピュータ３０は、シリアルケーブル、ＵＳＢケーブル等の通信ケーブル５０を介してプリンタ１０と通信可能に接続されている。本実施形態のホストコンピュータ３０は、タッチパネル３１、カードリーダ３２等の入力装置と表示部３３とをそなえ、タッチパネル３１，カードリーダ３２からの入力に応じて印刷データを生成し、通信ケーブル５０を介してプリンタ１０に印刷データを送信する。そして、プリンタ１０は、この印刷データに応じてロール紙またはスリップ紙に印刷を実行する。なお、本実施形態では、タッチパネル３１やカードリーダ３２を備えたホストコンピュータを例示しているが、プリンタ１０の制御を行うことができるものであればよく、例えばより一般的なパーソナルコンピュータをベースとしてホストコンピュータを構成しても良い。
【００２５】
次に、プリンタ１０の内部処理について説明する。
図２に示すように、プリンタ１０は、その内部にデータ受信部４１と、受信バッファ４２と、コマンド解析部４３と、制御部４４と、印刷バッファ４５と、印字機構４６と、エラー検出部４７と、カバー検出部４８と、用紙検出部４９と、オフライン検出部５０と、定期ステータスデータ生成部５１と、ステータスデータ比較部５２と、ステータスデータ保持部５３と、データ送信部５４と、を備えている。
【００２６】
データ受信部４１は、ホストコンピュータ３０から送信される印刷データや各種コマンド等の各種データを受信するデータ通信部であり、通信インターフェース等により構成される。データ受信部４１は、受信した受信データを逐次受信バッファに保存する。
受信バッファ４２は、ラインバッファまたはリングバッファ形式のデータ記憶部であり、データ受信部４１が受信した各種データを受信順に記憶する。
【００２７】
コマンド解析部４３は、受信バッファ４２に記憶された各種データを受信が早い順に読み出し、その内容を解析する。受信したデータが印刷データであれば、そのデータは印刷バッファ４５にフォントＲＯＭ等を参照してイメージ展開される。一方、受信したデータがプリンタ１０の制御用コマンドであれば、制御部４４がこのコマンド内容に応じて各機能部に指示を行い、プリンタ１０全体の制御を実行する。
【００２８】
印字機構４６は、図示せぬ搬送ローラを駆動して紙送りを実行しながら、印刷ヘッドを駆動して印刷を実行する印刷部である。印字機構４６は、印刷バッファ４５に展開されたイメージを基に紙送り制御及び印刷ヘッド制御を行い、スリップ紙Ｓやロール紙Ｐに印刷を実行する。
【００２９】
エラー検出部４７は、印刷中や紙送り中、または用紙の切断時などにおいて用紙詰まり等のエラーが発生したかどうかを検出する検出部である。エラー検出部４７は、エラー発生時にオフライン検出部５０に検出信号を出力する。
【００３０】
カバー検出部４８は、正面側カバー１３及び背面側カバー１２等の開閉を検出する検出部である。カバー検出部４８は、正面側カバー１３または背面側カバー１２が開状態である場合にオフライン検出部５０に検出信号を出力する。
【００３１】
用紙検出部４９は、ロール紙Ｐの有無を検出する検出部であり、ロール紙Ｐが消耗されプリンタ１０内部から無くなると、オフライン検出部４９に検出信号を出力する。
【００３２】
オフライン検出部５０は、プリンタ１０の内部状態をオフライン状態またはオンラインに遷移させるかどうかを検出する検出部であり、エラー検出部４７、カバー検出部４８及び用紙検出部４９からの検出信号に応じて、制御部４４にオフラインまたはオンラインに切り替えるよう指示する。制御部４４は、オフライン検出部５０からの指示に応じて、プリンタ１０の内部状態をオフライン／オンラインに切り替える。オフライン切り替え時の条件としては、上記検出部４７〜４９のいずれか一つから異常が検出された場合（紙詰まり、カバー開、用紙無し）であり、これらの異常が除去され検出部４７〜４９のすべてから異常を示す検出信号が出力されなくなると、正常と判断してオンラインに切り替えるよう指示する。
【００３３】
定期ステータスデータ生成部５１は、エラー検出部４７、カバー検出部４８、用紙検出部４９、オフライン検出部５０の状態をモニターし、これらの状態に応じたステータスデータを定期的に収集生成する。生成されたステータスデータは、生成される毎にステータスデータ比較部５２に送られる。
【００３４】
ステータスデータ比較部５２は、定期ステータスデータ生成部５１が生成したステータスデータと、予めステータスデータ保持部５３に保存されているステータスデータとを比較する比較部である。ステータスデータ保持部５３に保存されているステータスデータは、定期ステータスデータ生成部５１が前回生成したステータスデータと同一である。したがって、この比較を行うことにより、前回のステータスデータに示される前回モニター時のプリンタ１０の内部状態と比べて、今回のステータスデータに示される今回モニター時のプリンタ１０の内部状態が変化したかどうかを調べることができる。
【００３５】
ここで、定期ステータスデータ生成部５１が生成したステータスデータと、予めステータスデータ保持部５３に保存されているステータスデータとが同じであれば、プリンタ１０の内部状態は変化していないと考えることができ、その比較処理を終了する。一方、両ステータスデータが異なっていれば、プリンタ１０内部にて何らかの変化が発生したと考えることができ、ステータスデータ比較部５２は、ステータス保持部５３のステータスデータを新たなステータスデータで更新するとともに、今回生成されたステータスデータをステータス信号としてデータ送信部５４を介してホストコンピュータ３０に通知する。この処理は自動ステータス送信処理と呼ばれ、この自動ステータス送信処理により、ホストコンピュータ３０は、常にプリンタ１０の内部状態を把握することができる。
【００３６】
以下、本実施形態では、ロール紙Ｐの用紙無しによりオフラインとなった場合の処理について詳細に説明していく。
本実施形態のプリンタ１０は、ホストコンピュータ３０から以下のような復帰時動作設定コマンド（１）を受信することにより、オフラインからオンラインへの復帰に関する動作を選択することが可能である。
【００３７】
ＧＳ  （  Ｊ  ２  ｍ          ・・・（１）
ここで、ｍ＝０，１
【００３８】
「ＧＳ  （  Ｊ  ２」は、この復帰時動作設定コマンドが紙なしによる印字停止(ロール紙)の発生から復帰する時における処理に関するものであることを示しており、ｍが０の時、制御部４４は通常動作を実行し、ｍが１の時、制御部４４は復帰動作時に用紙の印刷無駄を発生させないような処理を実行する。具体的に説明すると、ｍが０または１のときのプリンタ１０の内部処理は以下のようになる。以下の処理は、オフラインからオンラインに復帰したときに自動的に実行される。
【００３９】
ｍ＝０の場合：通常モード
（１）受信バッファ及び印刷バッファのクリアを行わない
（２）オフライン要因が発生したときに処理中のコマンドがあった場合、そのコマン          ド処理を継続する。
【００４０】
ｍ＝１の場合：省用紙モード
（１）受信バッファ及び印刷バッファのクリアを行う。
（２）オフライン要因が発生したときに処理中のコマンドがあった場合、そのコマン          ド処理を中断する。
（３）オフライン要因発生からオフライン要因復帰までの間に受信したデータを読み          捨てし、受信バッファに保存しない（この処理は、復帰時ではない）。
（４）クリアレスポンスをホストコンピュータ３０に送信する。
【００４１】
プリンタ１０には、初期状態ではｍ＝０が保存されており、（１）に示す処理によってコマンドが送信されるとプリンタ１０の動作設定が切り替えられる。具体的には、図３に示すように、初期状態でｍ＝０に対応する通常モードがプリンタ１０には設定されており（ステップＳ１）、ステップＳ２において復帰時動作設定コマンドの受信を待つ（ステップＳ２）。
そして、復帰時動作設定コマンドを受信すると、このコマンド内の変数ｍの値を調べ（ステップＳ３）、ｍ＝０であればステップＳ４にて通常モードに再設定し、ｍ＝１であればステップＳ５にて省用紙モードを設定する。この復帰時動作設定コマンドは、ユーザの意志に応じてホストコンピュータ３０から印刷の種類に応じた設定をすることができる。
【００４２】
次に、ｍ＝１に対応する省用紙モードの詳細について説明する。
図４は、ｍ＝１の省用紙モードにおけるプリンタ１０の処理を示すフローチャートであり、図５は、ｍ＝１の省用紙モードにおけるホストコンピュータ３０の処理を示すフローチャートである。図６は、ホストコンピュータとプリンタ間を送信されるコマンドを示すタイミングチャートである。以下の説明では、図４、図５及び図６を参照しながら時系列に沿って、プリンタ１０とホストコンピュータ３０の処理を説明する。
【００４３】
まず、図５に示すようにプリンタ１０がオンラインの状態で、ホストコンピュータ３０が一つのレシートに関連する印刷データをプリンタ１０に送信すると（ステップＳ２１）、図４に示すようにプリンタ１０は、この印刷データを受信し印刷機構４６を介してロール紙Ｐへの印刷を開始する（ステップＳ１１）。
【００４４】
その後、プリンタ１０は、プリンタ１０がオフライン要因が発生したかどうかをモニターしながら（ステップＳ１２）、印刷を続行する。ここで、ロール紙切れによりオフライン要因が発生したとオフライン検出部５０が判断するとロール紙Ｐへの印刷が中断され（ステップＳ１３）、プリンタ１０は、制御部４４を介して以下の３つの処理を実行する（ステップＳ１４）。
（ａ）  受信データの読み捨て開始
（ｂ）  受信バッファクリア
（ｃ）  ホストコンピュータへオフライン発生の通知
【００４５】
処理（ａ）は、オフラインが発生した後にホストコンピュータ３０から送信される印刷データ及びコマンドをすべてデータ受信部が破棄するものであり、これらの受信データは受信バッファ４２にバッファされない。これにより、オフライン中に受信バッファ４２がバッファフルになることが未然に防がれる。
【００４６】
処理（ｂ）は、オフラインが発生する直前にホストコンピュータ３０から受信し、受信バッファ４２にバッファされたデータを破棄するものである。この受信バッファ４２にバッファされたデータの中には、現在印刷が中断しているレシートに印刷されるべき未印刷のデータが含まれていると考えられるが、この未印刷のデータはすべてプリンタ１０から破棄される。この処理は、オンライン復帰後に未印刷のデータの印刷が実行されることにより、レシートの後半部分のみの印刷が行われたレシートが発行されることを防ぐためである。
【００４７】
処理（ｃ）は、ホストコンピュータ３０へオフラインが発生したことを通知するものである。この処理は、定期ステータスデータ生成部５１の生成するステータスデータがオフラインの発生によりステータスデータ保持部５３に保存されたデータと変化することにより、自動的にステータス信号がデータ送信部５４を介して送信される。
【００４８】
その後、プリンタ１０では、オフライン検出部５０によってオフライン要因が取り除かれたかどうかがモニターされ、プリンタ１０はオフライン要因が取り除かれるまで待機する（ステップＳ１５）。
【００４９】
一方、ホストコンピュータ３０は、図５に示すように、ステップＳ２２にてステータス信号を受信して、プリンタ１０がオフラインとなったことを通知されると、直ちに印刷データの送信を中断する（ステップＳ２３）。ホストコンピュータ３０は、プリンタ１０から１行分の印刷データの印刷が終了する毎に印刷終了コマンドを受信し、印刷するレシートの最終行の印刷完了を示す印刷終了コマンドを受信するまで、プリンタ１０に送信した又は送信する一つのレシートに関する印刷データを破棄せず保持している。図４及び図５に示すように、印刷途中でオフラインとなり、レシートの最終行の印刷が行われていない場合には、このレシートに関する印刷データはオンライン復帰時の再送信のため保存される。
【００５０】
次に、プリンタ１０は、図４に示すように、ステップＳ１５にてオフライン要因が取り除かれオンラインに復帰すると、ステップＳ１６に移行し、プリンタ１０は制御部４４を介して以下４つの処理を実行する。
（ｅ）  受信データの読み捨て終了
（ｆ）  ホストコンピュータ３０へのオンライン復帰の通知（クリアレスポンス１送信）
（ｇ）  印刷バッファクリア
（ｈ）  コマンド解析初期化
【００５１】
処理（ｅ）は、ステップＳ１４の処理（ａ）により開始された受信データの読み捨てを終了し、通常通り受信バッファ４２に受信データをバッファする処理を再開させる。
【００５２】
処理（ｆ）は、ホストコンピュータ３０にプリンタ１０の状態がオンラインに復帰したことを通知するクリアレスポンス１を送信する処理である。このクリアレスポンス１を送信することにより、ホストコンピュータ３０は、プリンタ１０への印刷データの再送信の準備を実施することができる。
【００５３】
処理（ｇ）は、印刷バッファ４５内にバッファされている印刷イメージの破棄である。印刷中にオフラインになった場合には、オフラインになった時点で印刷バッファ４５には未印刷のイメージが保存されていると考えられるため、これを破棄し不要な印刷が行われないようにする。
【００５４】
処理（ｈ）は、コマンド解析部４３によるコマンド解析処理を初期化して、処理途中の印刷データを無視させ、次に受信する受信データに対するコマンド解析に対する準備を行う。
【００５５】
これらの処理（ｅ）から処理（ｈ）の実行後、プリンタ１０は、ホストコンピュータ３０から新たなコマンド、特にバッファクリアコマンドが到着するまで待機する（ステップＳ１７）。バッファクリアコマンドについては、次の説明にて詳細に説明する。
【００５６】
ホストコンピュータ３０は、プリンタ１０からクリアレスポンス１を受信すると、折り返しバッファクリアコマンドをプリンタ１０に出力する。このバッファクリアコマンドは、プリンタ１０内部の受信バッファ及び印刷バッファを再度クリアさせるためのコマンドである。
【００５７】
プリンタ１０は、ステップＳ１４とステップＳ１６にて受信バッファ及び印刷バッファのクリアを実行しているため、再度バッファクリアする必要性は無いと考えられるが、以下のような理由により、バッファクリアが必要な場合がある。
【００５８】
処理（ｅ）が実行されて、受信バッファ４２のバッファが再開した時点で、既にホストコンピュータ３０から送信されるデータがデータ受信部４１により全てはじかれていれば問題ないが、何らかの理由によりホストコンピュータ３０がステップＳ２３の処理を実行する以前にオンラインに復帰し、受信バッファ４２へのバッファが再開されると、場合によっては破棄すべき印刷データが受信バッファ４２にバッファされてしまうことも考えられる。
【００５９】
図７を用いて具体的に説明すると、図７（ａ）に示すように、プリンタ１０内にてステップＳ１４が実行されて受信データの読み捨てを開始し、その後ステップＳ２３にてホストコンピュータ３０が印刷データの送信を中止して、その後プリンタ１０がステップＳ１６を実行して受信バッファ４２へのバッファを再開した場合には、ステップＳ１４の実施以後、ホストコンピュータ３０から印刷データの送信が再開されるまで、受信バッファ４２にはデータは蓄積されない。
【００６０】
しかしながら、図７（ｂ）に示すように、プリンタ１０内にてステップＳ１４が実行されて受信データの読み捨てを開始し、その後ステップＳ２３にてホストコンピュータ３０が印刷データの送信を中止する以前に、プリンタ１０がステップＳ１６を実行して受信バッファ４２へのバッファを再開した場合には、プリンタ１０がステップＳ１６を実行してからホストコンピュータ３０が印刷データの送信を中断するまでの間に、破棄すべきレシートの残りのデータが受信バッファ４２に蓄積されてしまう。
したがって、図７（ｂ）のような状況を考慮すると、ステップＳ１６を実行した後に、再度受信バッファ４２のクリアを実行することが好ましい。このバッファクリアのための指示がステップＳ２５によって送信されるバッファクリアコマンドである。
【００６１】
プリンタ１０は、バッファクリアコマンドを受信すると、ステップＳ１８に移行し、制御部４４を介して以下４つの処理を実行する。
（ｉ）  受信バッファクリア
（ｊ）  受信バッファクリアの通知（クリアレスポンス２送信）
（ｋ）  印刷バッファクリア
（ｌ）  コマンド解析初期化
【００６２】
すなわち、ステップＳ１８では、図７（ｂ）に示すような状況を考慮し、再度ステップ１４及びステップＳ１６の処理のうち、バッファクリア及び初期化に関する処理を再実行する。そして、ステップＳ１８では、クリアレスポンス２をホストコンピュータ３０に送信し、これらのバッファクリアが完了したことをホストコンピュータ３０に通知する。
【００６３】
ホストコンピュータ３０は、ステップＳ２６にてクリアレスポンス２の受信を待ち、クリアレスポンス２を受信すると、ステップＳ２７にて印刷が中断されたレシートの印刷データを再送信する。
【００６４】
そして、プリンタ１０は、このホストコンピュータ３０から送信されるレシートの印刷データを再受信し、受信した印刷データに基づき、レシートの印刷を最初からやり直して実行する。
本実施形態のプリンタ１０における処理の説明は以上となる。
【００６５】
このように、本実施形態のプリンタ１０は、ホストコンピュータ３０から送信されるデータを受信するデータ受信部４１と、ホストコンピュータ３０にデータを送信するデータ送信部５４と、データ受信部４１によって受信されたデータを一時保持する受信バッファ４２と、受信バッファ４２に一時保持されたデータを解析するコマンド解析部４３と、コマンド解析部４３が解析したデータが印刷データであった場合に印刷イメージが展開される印刷バッファ４５と、印刷バッファ４５に展開された印刷イメージに応じて印刷をおこなう印刷機構４６と、データ受信部４１、受信バッファ４２、コマンド解析部４３、印刷バッファ４５及び印刷機構４６を制御する制御部４４と、を備えている。そして、制御部４４は、オフライン発生時に、データ受信部４１に受信データの読み捨てを開始させるとともに、受信バッファ４２内の前記データをクリアさせる。そして、制御部４４は、オンライン復帰時に、データ受信部４１に受信データの読み捨てを中断させるとともに、データ送信部にホストコンピュータ３０へオンライン復帰通知であるクリアレスポンス１を送信させる。そして、制御部４４は、ホストコンピュータ３０から受信するバッファクリア指示であるバッファクリアコマンドに応じて、受信バッファ４２を再度クリアさせる。
より具体的には、制御部４４は、オンライン復帰時に印刷バッファ４５をクリアさせるとともに、バッファクリアコマンドに応じて印刷バッファ４５を再度クリアさせる。
【００６６】
したがって、本実施形態によれば、印刷途中でオフラインが発生し、印刷が中断された場合であっても、印刷途中のレシートに関する印刷データは、プリンタ１０に受信されず、受信されていたまたはその後受信された場合であっても、受信バッファ４２と印刷バッファ４５がそれぞれ２回クリアされるので、プリンタ１０が印刷可能な状態となった時点で、プリンタ１０には印刷すべきデータが全く残らない。よって、オフライン発生前に印刷途中であったレシートの後半部分がオンラインに復帰後に印刷されてロール紙が無駄になるといった状態が発生することが無い。
【００６７】
また、その後印刷が中断された印刷データをプリンタ１０に向けてホストコンピュータ３０が再送信することにより、改めて１枚のレシートをスムーズに印刷することができる。したがって、印刷の途中でオフラインが発生した場合であっても効率の低下を最小限に抑制しながら印刷を連続的に継続することができる。
【００６８】
なお、本実施形態では、図１に示すようなプリンタに適用したがこれに限られることはなく、インクジェットプリンタ、レーザプリンタ、ドットインパクトプリンタ、サーマルプリンタなど様々な種類のプリンタに適用することができる。特に、印刷にインクやトナーを必要とするプリンタにおいては、ロール紙等の用紙とともに、インクまたはトナーの消費も抑制することができ、インクカートリッジやトナーカートリッジの寿命を長引かせるために寄与することもできる。
【図面の簡単な説明】
【００６９】
【図１】本発明にかかる実施形態のプリンタシステムを示す斜視図である。
【図２】プリンタシステム内部の制御構成を模式的に示す機能ブロック図である。
【図３】プリンタの処理について示すフローチャートである。
【図４】プリンタの処理について示すフローチャートである。
【図５】ホストコンピュータの処理について示すフローチャートである。
【図６】ホストコンピュータとプリンタ間を送信されるコマンドを示すタイミングチャートである。
【図７】バッファクリアコマンドの必要性を説明する模式図である。
【符号の説明】
【００７０】
１  プリンタシステム
１０  プリンタ
３０  ホストコンピュータ
４１  データ受信部
４２  受信バッファ
４３  コマンド解析部
４４  制御部
４５  印刷バッファ
４６  印刷機構
５０  オフライン検出部
５４  データ送信部
【図１】
2006062266.tif 000003
【図２】
2006062266.tif 000004
【図３】
2006062266.tif 000005
【図４】
2006062266.tif 000006
【図５】
2006062266.tif 000007
【図６】
2006062266.tif 000008
【図７】
2006062266.tif 000009