JP6551976B2 - 印刷装置、印刷システム、印刷方法及びプログラム - Google Patents

印刷装置、印刷システム、印刷方法及びプログラム Download PDF

Info

Publication number
JP6551976B2
JP6551976B2 JP2015162639A JP2015162639A JP6551976B2 JP 6551976 B2 JP6551976 B2 JP 6551976B2 JP 2015162639 A JP2015162639 A JP 2015162639A JP 2015162639 A JP2015162639 A JP 2015162639A JP 6551976 B2 JP6551976 B2 JP 6551976B2
Authority
JP
Japan
Prior art keywords
print
printing
print data
data
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015162639A
Other languages
English (en)
Other versions
JP2017039264A (ja
Inventor
尚之 池野
尚之 池野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Embedded Products Ltd
Original Assignee
NEC Embedded Products Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Embedded Products Ltd filed Critical NEC Embedded Products Ltd
Priority to JP2015162639A priority Critical patent/JP6551976B2/ja
Publication of JP2017039264A publication Critical patent/JP2017039264A/ja
Application granted granted Critical
Publication of JP6551976B2 publication Critical patent/JP6551976B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は、印刷装置、印刷システム、印刷方法及びプログラムに関する。
プリンタの印刷中に異常が発生した場合の対策について幾つかの技術が提案されている。
例えば、特許文献1に記載の印刷システムでは、ホストPCは、ラスターデータとページ記述言語とを含む印刷データを生成してプリンタ(シリアルプリンタ)に送信する。ここでいうページ記述言語とは、ページを構成する文字、グラフィックス等をオブジェクト単位で表現した高級言語である。そして、プリンタは、ラスターデータを用いて印刷を行う。また、ジャムが発生した場合、プリンタは、ページ記述言語データに基づいてラスターデータを生成し、当該ラスターデータを用いて、ジャムが発生したページの先頭から印刷を行う。
特許文献1では、これにより、ジャムが発生したページの再印刷をプリンタ単体で行うことができる、とされている。
また、特許文献2に記載の印刷装置では、受信バッファに蓄積された印刷データを制御手段が印刷機構に送信し、印刷機構は、印刷データを順次受信しながら印刷を実行する。また、メモリ手段は、手段が印刷機構に送信する印刷データを並列的に順次受信して記憶する。また、メモリ手段が一杯になったときに1ページ分の印刷データが格納されていない場合、表示手段は、メモリ手段が有効に機能する状態を示すコピー準備モードオンの表示をオフにする。
特許文献2では、これにより、印刷完了した印刷データを再度利用して印刷を実行でき、さらにバックアップメモリが有効に機能しない場合には、その旨をプリンタの操作者に知らせることができる、とされている。
特開2010−284810号公報 特許第3777698号公報
行単位で印刷を行うラインプリンタへの印刷データの送信が途中で異常終了した場合、当該ラインプリンタのバッファ内に印刷されないデータが残ってしまい、新たな印刷を正しく行えなくなる。
具体的には、ラインプリンタは改行コードを印刷開始コードとして検出して、改行コードまでの印刷データを1行分のデータとして印刷する。これに対し、ラインプリンタへの印刷データの送信が途中で止まってしまうと、印刷内容を示すデータ(例えば文字コード)がバッファに格納されるが、後続するはずの改行コードは格納されない場合がある。この場合、ラインプリンタは印刷開始コードである改行コードを検出しないので印刷を行わず、印刷内容を示すデータが印刷されないままバッファに残ってしまう。
例えば、ユーザが、ラインプリンタの電源を一旦オフした後にオンすることで、バッファ内に残っているデータをクリアする場合、ユーザは、ラインプリンタに近づいて電源を操作する必要があり、ユーザにとって負担となる。
一方、特許文献1、2に記載の技術は、いずれも印刷に失敗したページを再印刷するための技術であり、ラインプリンタのバッファに残ったデータをクリアする処理にそのまま適用することはできない。
また、特許文献1に記載の発明では、プリンタが、ページ記述言語を記憶するためのメモリ領域、及び、ページ記述言語に基づいてラスターデータを生成する手段を備える必要がある。また、特許文献2に記載の発明では、印刷装置が、印刷データの印刷機構への送信と並行して当該印刷データを受信して記憶するメモリ手段と、メモリ手段が一杯になったときに1ページ分の印刷データが格納されているか否かを判定する手段とを備える必要がある。従って、仮に、特許文献1、2のいずれかに記載の発明を、ラインプリンタのバッファに残ったデータをクリアする処理にできた場合でも、印刷装置の構造が複雑になる。
より簡単な構成で、ラインプリンタのバッファに残ったデータをクリアできることが望まれる。
本発明は、上述の課題を解決することのできる印刷装置、印刷システム、印刷方法及びプログラムを提供することを目的としている。
本発明の第1の態様によれば、印刷装置は、印刷データを取得する印刷データ取得部と、前記印刷データ取得部が取得した印刷データを記憶し、実行済みの印刷データを削除するバッファと、連続用紙に印刷を行う印刷処理部であって、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理部と、前記印刷処理部が行った前回の印刷が正常終了したか異常終了したかを判定する判定部と、前記前回の印刷が異常終了したと前記判定部が判定した場合、前記印刷処理部に、前記印刷データ取得部が取得するリカバリデータであって、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行させることで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせた後、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を行わせ、前記前回の印刷が正常終了したと前記判定部が判定した場合、前記印刷データ取得部が取得したリカバリデータを削除して、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を前記印刷処理部に行わせる異常終了対応部と、を備える。
本発明の第2の態様によれば、印刷システムは、印刷要求装置と、印刷装置とを備え、前記印刷要求装置は、印刷データを生成する印刷データ生成部と、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを前記印刷装置へ送信した後、前記印刷データ生成部が生成した印刷データを前記印刷装置へ送信する、印刷データ送信部と、を備え、前記印刷装置は、前記印刷データ送信部が送信したデータを取得する印刷データ取得部と、前記印刷データ取得部が取得した印刷データを記憶し、実行済みの印刷データを削除するバッファと、連続用紙に印刷を行う印刷処理部であって、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理部と、前記印刷処理部が行った前回の印刷が正常終了したか異常終了したかを判定する判定部と、前記前回の印刷が異常終了したと前記判定部が判定した場合、前記印刷処理部に、前記印刷データ取得部が取得するリカバリデータであって、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行させることで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせた後、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を行わせ、前記前回の印刷が正常終了したと前記判定部が判定した場合、前記印刷データ取得部が取得したリカバリデータを削除して、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を前記印刷処理部に行わせる異常終了対応部と、を備える。
本発明の第4の態様によれば、印刷方法は、印刷データを記憶し実行済みの印刷データを削除するバッファを備えて、連続用紙に印刷を行う印刷装置が、印刷データを取得する印刷データ取得ステップと、前記印刷装置が、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理ステップと、前記印刷装置が、前記印刷処理ステップで行った前回の印刷が正常終了したか異常終了したかを判定する判定ステップと、前記前回の印刷が異常終了したと前記判定ステップで判定した場合、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行することで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行し、用紙先頭位置合わせ処理を行った後、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行い、前記前回の印刷が正常終了したと前記判定ステップで判定した場合、前記リカバリデータを削除して、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行う異常終了対応ステップと、を含む。
本発明の第5の態様によれば、印刷方法は、印刷要求装置が、印刷データを生成する印刷データ生成ステップと、前記印刷要求装置が、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを印刷装置へ送信した後、前記印刷データ生成ステップで生成した印刷データを前記印刷装置へ送信する、印刷データ送信ステップと、前記印刷内容データを記憶するバッファを備えて連続用紙に印刷を行う印刷装置が、前記印刷データ送信ステップで送信したデータを取得する印刷データ取得ステップと、前記印刷装置が、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理ステップと、前記印刷装置が、前記印刷処理ステップで行った前回の印刷が正常終了したか異常終了したかを判定する判定ステップと、前記前回の印刷が異常終了したと前記判定ステップで判定した場合、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行することで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行し、用紙先頭位置合わせ処理を行った後、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行い、前記前回の印刷が正常終了したと前記判定ステップで判定した場合、前記リカバリデータを削除して、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行う異常終了対応ステップと、を含む。
本発明の第7の態様によれば、プログラムは、印刷データを記憶し実行済みの印刷データを削除するバッファを備えて、連続用紙に印刷を行う印刷装置を制御するコンピュータに、印刷データを取得する印刷データ取得ステップと、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理ステップと、前記印刷処理ステップで行った前回の印刷が正常終了したか異常終了したかを判定する判定ステップと、前記前回の印刷が異常終了したと前記判定ステップで判定した場合、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行することで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行し、用紙先頭位置合わせ処理を行った後、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行い、前記前回の印刷が正常終了したと前記判定ステップで判定した場合、前記リカバリデータを削除して、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行う異常終了対応部と、を実行させるためのプログラムである。
この発明によれば、比較的簡単な構成で、ラインプリンタのバッファに残ったデータをクリアすることができる。
本発明の一実施形態における印刷システムの機能構成を示す概略ブロック図である。 同実施形態における用紙先頭位置合わせ実行後の状態の例を示す説明図である。 同実施形態におけるコンピュータ100が送信するリカバリデータの構成を示す説明図である。 通信障害発生時の印刷例を示す説明図である。 プリンタ200がリカバリデータの示す処理を行わない場合の印刷例を示す説明図である。 プリンタ200の電源を切断し再接続した後、改ページを行った状態の例を示す説明図である。 同実施形態において、前回の印刷が正常終了している状態からプリンタ200が印刷を行う場合の、印刷システム1の動作例を示す説明図である。 同実施形態における印刷ハンマ240が1行分の印刷を行った状態の例を示す説明図である。 同実施形態における用紙送り部250が用紙先頭位置合わせを行った状態の例を示す説明図である。 同実施形態において、前回の印刷が異常終了している状態からプリンタ200が印刷を行う場合の、印刷システム1の動作例を示す説明図である。 同実施形態における印刷ハンマ240が1行分の印刷を行った状態の例を示す説明図である。 同実施形態における用紙送り部250が用紙先頭位置合わせを行った状態の例を示す説明図である。 同実施形態において、アプリケーション実行部110からの送信要求に基づく印刷データが示す1行分の印刷を印刷ハンマ240が行った状態の例を示す説明図である。 同実施形態におけるコンピュータ100がリカバリデータ及び印刷データを生成して送信する処理手順の例を示すフローチャートである。 同実施形態において、判定部291が行う処理の手順の例を示すフローチャートである。 同実施形態において、印刷処理部293が行う処理の手順の例を示すフローチャートである。 本実施形態におけるプリンタ200の変形例であるプリンタ201の機能構成を示す概略ブロック図である。 同変形例において、状態情報が示すプリンタ201の状態の遷移例を示す説明図である。 本発明に係る印刷装置の最小構成を示す概略ブロック図である。 本発明に係る印刷システムの最小構成を示す概略ブロック図である。 本発明に係る印刷要求装置の最小構成を示す概略ブロック図である。
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の一実施形態における印刷システムの機能構成を示す概略ブロック図である。同図に示すように、印刷システム1は、コンピュータ100と、プリンタ200とを備える。コンピュータ100は、アプリケーション実行部110と、プリンタドライバ120と、印刷データ送信部130とを備える。プリンタドライバ120は、リカバリデータ生成部121を備える。プリンタ200は、印刷データ受信部210と、受信バッファ220と、印刷バッファ230と、印刷ハンマ240と、用紙送り部250と、制御部290とを備える。用紙送り部250は、左トラクタ251と、右トラクタ252とを備える。制御部290は、判定部291と、異常終了対応部292と、印刷処理部293とを備える。
また、コンピュータ100とプリンタ200とは、通信ネットワーク910を介して通信を行う。
なお、印刷システム1が備えるコンピュータ100の数は、図1に示す1つに限らず複数であってもよい。また、印刷システム1が備えるプリンタ200の数は、図1に示す1つに限らず複数であってもよい。
プリンタ200は、印刷装置の例に該当し、コンピュータ100が送信する印刷データに従って印刷を行う。プリンタ200は、ラインプリンタであり、連続用紙を用紙送りしながら印刷を行う。ここでいうラインプリンタは、行を単位として印刷を行うプリンタである。以下では、プリンタ200が1行毎に印刷を行うプリンタである場合を例に説明するが、これに限らず、2行毎、又は3行毎など、複数行毎に印刷を行うプリンタであってもよい。
また、ここでいう印刷データは、プリンタ200に印刷を指示するデータであり、印刷内容データと制御コードとを含む。
ここでいう印刷内容とは、例えば文字、記号、図形又は模様など、印刷されるものである。また、文字コードなど、印刷内容を示すデータを印刷内容データと称する。
また、ここでいう制御コードとは、例えば改行など、印刷内容の印刷以外の処理をプリンタ200に指示するデータである。
プリンタ200が行を単位として印刷を行うので、1印刷ジョブ分の印刷データは、行単位のデータを1行分以上含む。具体的には、印刷内容データの後に改行コードが付されて1行分のデータを構成する。この1行分のデータが1つ以上(必要な行数分)続いた後、改ページコードが付されて1印刷ジョブ分の印刷データを構成する。
改行コードは、1行分の用紙送り量として定められている所定の用紙送りを行い、印刷位置(例えば、印字ヘッドの位置)を行頭にセットするよう指示するコードである。以下では、改行コードとして復帰(キャリッジリターン、Carriage Return;CR)コード(例えばコード「0Dh」)を用いる場合を例に説明するが、これに限らず、プリンタ200が改行コードとして認識可能なコードであればよい。
プリンタ200が1行毎に印刷を行うので、改行コードは印刷開始コードとしても機能する。すなわち、プリンタ200は、受信した印刷データを前から順(印刷の早い順)にスキャンし、改行コードを検出すると、検出した改行コードまでの印刷データの印刷を行う。
改ページコード(例えば、コード「0Ch」)は、印刷位置をページの先頭にセットするよう指示するコードである。ここでいうページは、連続用紙がミシン目で区切られている各領域である。また、ここでいうページの先頭は、ページの先頭行の行頭として定められている所定の位置(ページの左上の所定の位置)である。
改ページコードは、印刷ジョブ終了コードとしても機能する。すなわち、プリンタ200は、改ページコードを検出すると、印刷位置をページの先頭にセットして印刷ジョブを終了し、次の印刷ジョブの実行に備える。ここでいう印刷ジョブとは、プリンタ200に対する処理要求の一纏まりである。
ここで、プリンタ200は、連続用紙のミシン目の位置を検出する機能を有していない。このため、初回の用紙先頭位置合わせはユーザが行う必要がある。具体的には、プリンタ200の本体に用紙先頭位置合わせ用のマークが記されており、ユーザは、連続用紙のミシン目をマークの位置に合せるように、左トラクタ251及び右トラクタ252を手動で回転させる。
ここでいう用紙先頭位置合わせは、印刷位置をページ先頭にセットすることであり、具体的には、連続用紙のミシン目の位置を用紙先頭位置合わせ用のマークの位置に合わせることである。
図2は、用紙先頭位置合わせ実行後の状態の例を示す説明図である。
同図では、連続用紙920の一部(約2ページ分)と、左トラクタ251及び右トラクタ252と、用紙先頭位置合わせ用のマークM11とが示されている。また、領域A11は、印刷ハンマ240が印刷を行う位置であり、領域A12は、連続用紙920のページの先頭の例を示す。同図の例では、連続用紙920のページの先頭(領域A12)が、印刷ハンマ240が印刷を行う位置(領域A11)に位置する状態が、印刷位置をページの先頭にセットした状態である。
また、図2に示すように、連続用紙920には、線L11で示されるミシン目が付けられており、ミシン目で区切られる領域の各々が1ページに該当する。
また、連続用紙920の左右それぞれに、トラクタ(左トラクタ251、右トラクタ252の各々)が用紙送りを行うための穴H11が等間隔で図2の上下に連続して空けられている。左トラクタ251及び右トラクタ252の各々には突起が設けられており、ユーザは、この突起に連続用紙920の穴H11を通して連続用紙920をセットする。
左トラクタ251及び右トラクタ252が回転することで、用紙送りを行う。手動での用紙先頭位置合わせ時は、ユーザが左トラクタ251及び右トラクタ252を回転させることで、連続用紙920を矢印B11の方向(図2の上下)に動かし、ミシン目(線L11)の位置をマークM11の位置に合せる。
例えば、ユーザは、プリンタ200の電源が接続(オン)されて起動した後、最初の印刷を行う前に、用紙先頭位置合わせを行う。
一方、プリンタ200は、オン状態(電源を接続された状態)では、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と、左トラクタ251及び右トラクタ252による用紙送り量とを記憶している。従って、プリンタ200は、ユーザが用紙先頭位置合わせを行った状態から動作を開始した場合、用紙先頭位置合わせのために必要な用紙送り量(すなわち、ミシン目のいずれかの位置をマークM11の位置に合せるために連続用紙920を動かすべき量)を算出できる。
そこで、プリンタ200は、改ページコードを検出すると、用紙先頭位置合わせのために必要な用紙送り量を算出して用紙送りを行うことで、用紙先頭位置合わせを行う。
なお、以下では、連続用紙920のミシン目のいずれかの位置がマークM11の位置に合っている状態を、連続用紙920が先頭位置にあると称する。
印刷データ受信部210は、印刷データ取得部の例に該当し、コンピュータ100が送信する印刷データを受信する。
受信バッファ220は、印刷データ受信部210が受信した印刷データを記憶する。そして、受信バッファ220は、当該印刷データを印刷順(例えば、ファーストイン・ファーストアウト(First In First Out;FIFO))に印刷バッファ230へ送信する。受信バッファ220は、コンピュータ100が印刷データを送信する速度と、プリンタ200が印刷を行う速度との差を吸収するために設けられている。
印刷バッファ230は、受信バッファ220から印刷データを印刷順に取得して記憶する。印刷バッファ230は、プリンタ200が印刷を行う際の印刷データの参照先として設けられている。印刷バッファ230は、プリンタ200が印刷を行った印刷データを印刷バッファ230から削除(破棄)し、受信バッファ220から次の印刷データを取得する。
受信バッファ220と印刷バッファ230との組み合わせはバッファの例に該当し、印刷データ受信部210が受信した印刷データを記憶し、実行済みの印刷データを削除する。
なお、プリンタ200が備えるバッファの構成は、受信バッファ220及び印刷バッファ230のような2段の構成に限らない。例えば、プリンタ200が、受信バッファ220の機能と印刷バッファ230の機能とを兼ねる1つのバッファを備えるようにしてもよい。
印刷ハンマ240は、例えばインクリボンを連続用紙920に押し付けてインクを付着させるなど、連続用紙920への印刷内容の書込を行う。
用紙送り部250は、連続用紙920の用紙送りを行う。具体的には、図2を参照して説明したように、左トラクタ251及び右トラクタ252が回転することで、回転量に応じた用紙送り量で連続用紙920の用紙送りを行う。
制御部290は、プリンタ200の各部を制御して各種処理を実行する。制御部290は、例えばプリンタ200が備えるCPU(Central Processing Unit、中央処理装置)が、プリンタ200が備える記憶デバイスからプログラムを読み出して実行することで実現される。あるいは、制御部290が専用のハードウェアにて構成されるなど、CPUを用いる構成以外の構成にて実現されていてもよい。
印刷処理部293は、行印刷処理及び用紙先頭位置合わせ処理を行う。
ここでいう行印刷処理とは、印刷バッファ230が記憶している印刷データが示す印刷内容を行毎に印刷して改行する処理である。具体的には、印刷処理部293は、印刷バッファ230が記憶している印刷データを印刷順にスキャンする。スキャンにて改行コードを検出した場合、印刷処理部293は、当該改行コードまでの印刷データが示す処理を実行することで、1行分の印刷を実行する。
また、ここでいう用紙先頭位置合わせ処理とは、上述した用紙先頭位置合わせを行う処理である。上記のスキャンで改ページコードを検出した場合、印刷処理部293は用紙先頭位置合わせ処理を行う。
具体的には、印刷処理部293は、1ページ分の用紙送り量として設定されている所定のページ用紙送り量を予め記憶しておく。また、印刷処理部293は、行印刷処理で用紙送りした用紙送り量を記憶する。例えば、印刷処理部293は、1ページ分の用紙送り量を左トラクタ251の回転角度にて記憶する。なお、左トラクタ251と右トラクタ252とは同じ回転速度で回転する。また、印刷処理部293は、行印刷処理で用紙送りした用紙送り量を、左トラクタ251の回転角度にて、0度から1ページ分の用紙送り量までの範囲で記憶する。すなわち、行印刷処理で用紙送りした用紙送り量が1ページ分の用紙送り量に達した場合、印刷処理部293は、左トラクタ251の回転角度として記憶している角度を0にリセットする。
そして、印刷処理部293は、改ページコードを検出した場合、1ページ分の用紙送り量から、行印刷処理で用紙送りした用紙送り量を減算して、用紙先頭位置合わせに必要な用紙送り量を算出する。そして、印刷処理部293は、算出した用紙送り量の用紙送りを用紙送り部250に行わせる。
判定部291は、印刷処理部293による印刷が正常終了したか異常終了したかを判定する。ここでいう正常終了は、受信バッファ220、印刷バッファ230のいずれにも印刷データが残っておらす、かつ、連続用紙920が先頭位置にある状態で印刷を終了することである。
ここで、プリンタ200への印刷データの規格では、上述したように、印刷内容データの後に改行コードが付されて1行分のデータを構成し、1行分のデータが1つ以上続いた後、改ページコードが付されて1印刷ジョブ分の印刷データを構成するよう規定されている。従って、プリンタ200が印刷を正常終了した場合、印刷データ受信部210が受信した印刷データは、改ページコードで終了するはずである。一方、印刷データ受信部210が受信した印刷データが、改ページコード以外のデータで終了している場合は、プリンタ200が印刷を異常終了したことになる。
判定部291は、受信バッファ220及び印刷バッファ230が記憶している印刷内容データの有無、及び、用紙送り部250による用紙送り量に基づいて異常終了の有無(印刷処理部293による印刷が正常終了したか異常終了したか)を判定する。具体的には、判定部291は、受信バッファ220及び印刷バッファ230のいずれも印刷データを記憶しておらず、かつ、用紙送り部250が行った用紙送りにて連続用紙920が先頭位置にあると判定した場合、印刷処理部293による印刷が正常終了したと判定する。
一方、判定部291は、
(条件1)受信バッファ220が印刷データを記憶している、
(条件2)印刷バッファ230が印刷データを記憶している、
(条件3)連続用紙920が先頭位置以外の位置にある(すなわち、連続用紙920のいずれのミシン目の位置も図2のマークM11の位置と合っていない)、
の3つの条件のうちうち1つ以上が成立すると判定した場合、印刷処理部293による印刷が異常終了したと判定する。
判定部291は、印刷データ受信部210が所定の印刷データを受信した場合、異常終了の有無を判定する。具体的には、コンピュータ100は、新たな印刷データの送信前にリカバリデータを送信し、判定部291は、印刷データ受信部210がリカバリデータを受信した場合に、前回の印刷が正常終了したか異常終了したかを判定する。ここでいうリカバリデータは、印刷するものが無いことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データである。
以下では、印刷するものが無いことを示す印刷内容データがヌル(NULL)データ(例えばコード「00h」(コードの表記の「h」は16進数を示す))である場合を例に説明する。すなわち、リカバリデータは、ヌルデータと、改行コードと、改ページコードとで構成されるデータである。
図3は、コンピュータ100が送信するリカバリデータの構成を示す説明図である。同図に示すように、リカバリデータは、ヌルデータと、改行コードと、改ページコードとを含む。
ここでいうヌルデータは、ヌルストリング(文字長が0の文字列)を示すデータである。従って、ヌルデータは印刷するものが無いことを示す印刷内容データに該当する。但し、リカバリデータに含が、印刷するものが無いことを示す印刷内容データとして、ヌルデータ以外のダミーのデータ(プリンタ200に無視されるデータ)を含んでいてもよい。
リカバリデータに含まれる改行コードは、1行分の印刷及び改行を指示し、改ページコードは、用紙先頭位置合わせを指示する。従って、プリンタ200は、リカバリデータを実行することで、受信バッファ220及び印刷バッファ230をクリア(印刷データを記憶していない状態)にし、用紙先頭位置合わせを行う。従って、プリンタ200が前回の印刷ジョブを異常終了した場合、リカバリデータを実行してから新たな印刷ジョブを実行することで、残存データの印刷、印刷位置のずれのいずれも回避して、新たな印刷を行うことができる。
具体的には、プリンタ200が前回の印刷を異常終了した場合、印刷データ受信部210及び印刷バッファ230のいずれか一方または両方に印刷内容データが残っている可能性、及び、連続用紙920が先頭位置にない(連続用紙920のミシン目の位置が図2のマークMの位置と合っていない)可能性がある。そこで、プリンタ200がリカバリデータを実行することで、残っている印刷内容データを印刷して受信バッファ220及び印刷バッファ230から削除し、連続用紙920の位置を先頭位置に合わせる(連続用紙920のミシン目の位置が図2のマークMの位置と合うようにする)ことができる。これにより、プリンタ200は、連続用紙920のページの先頭から新たな印刷を行うことができ、また、新たな印刷の際に、前回の印刷内容データを印刷してしまうことを回避できる。
異常終了対応部292は、印刷処理部293による印刷が異常終了したと判定部291が判定した場合、プリンタ200の状態を印刷が正常終了した場合の状態にする。具体的には、異常終了対応部292は、印刷処理部293による印刷が異常終了したと判定部291が判定した場合、印刷データ受信部210が受信したリカバリデータが示す処理を印刷処理部293に実行させる。これにより異常終了対応部292は、印刷処理部293に、バッファ(受信バッファ220及び印刷バッファ230)が記憶している印刷データの示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせる。その後、異常終了対応部292は、印刷処理部293に、印刷データ受信部210が受信する印刷データ(新たな印刷ジョブの印刷データ)の示す処理を行わせる。
印刷処理部293が、リカバリデータを実行してから新たな印刷ジョブを実行することで、上述したように残存データの印刷、印刷位置のずれのいずれも回避して、新たな印刷を行うことができる。
一方、印刷処理部293による印刷が正常終了したと判定部291が判定した場合、異常終了対応部292は、印刷データ受信部210が受信したリカバリデータを削除(破棄)し、当該リカバリデータ受信の後に印刷データ受信部210が受信する印刷データ(新たな印刷ジョブの印刷データ)の示す処理を印刷処理部293に行わせる。
印刷処理部293による印刷が正常終了した場合、受信バッファ220及び印刷バッファ230はクリアされ(すなわち、印刷データを記憶しておらず)、また、用紙先頭位置合わせが行われた状態になる。プリンタ200は、この状態から、残存データの印刷、印刷位置のずれのいずれも回避して、新たな印刷を行うことができる。
ここで、印刷処理部293による印刷が正常終了した場合に印刷処理部293がリカバリデータの示す処理を実行すると、連続用紙920を1ページ分無駄に用紙送りしてしまうことになる。そこで、異常終了対応部292がリカバリデータを削除する。これにより、無駄な用紙送りを抑制することができる。
コンピュータ100は、印刷要求装置の例に該当し、印刷データを生成してプリンタ200に送信する。コンピュータ100は、例えばパソコン(Personal Computer;PC)であってもよいが、これに限らない。コンピュータ100は、印刷データを生成し出力する装置であればよく、例えばスマートフォンまたは大型計算機であってもよい。
アプリケーション実行部110は、アプリケーションプログラムを実行する。以下、アプリケーションプログラムを単にアプリケーションと称する。
アプリケーション実行部110が実行するアプリケーションには、例えば文書作成ソフトウェアなど、印刷機能を有するアプリケーションが含まれる。アプリケーションの印刷機能が実行されると、アプリケーション実行部110は、当該アプリケーションにて規定されたフォーマットで印刷要求をプリンタドライバ120に出力する。アプリケーションの印刷機能の実行は、例えば、印刷を要求するユーザ操作にて行われる。
アプリケーション実行部110は、コンピュータ100が備えるCPU(Central Processing Unit、中央処理装置)が、コンピュータ100が備える記憶媒体からプログラム(オペレーティングシステム(Operating System;OS)等)を読み出して実行することで実現される。
プリンタドライバ120は、印刷データ生成部の例に該当し、印刷データを生成する。上述したように、ここでいう印刷データは、プリンタ200に印刷を指示するデータであり、印刷内容データと制御コードとを含む。
特に、プリンタドライバ120は、アプリケーション実行部110が出力する印刷要求を、プリンタ200が実行可能なフォーマットの印刷データに変換し、印刷データ送信部130を介してプリンタ200へ送信する。
プリンタドライバ120は、コンピュータ100が備えるCPUが、コンピュータ100が備える記憶媒体からプログラム(プリンタドライバソフトウェア)を読み出して実行することで実現される。
リカバリデータ生成部121は、リカバリデータを生成する。
印刷データ送信部130は、リカバリデータ生成部121が生成したリカバリデータをプリンタ200へ送信した後、プリンタドライバ120が生成した印刷データ(新たな印刷ジョブの印刷データ)をプリンタ200へ送信する。印刷データ送信部130は、例えば、コンピュータ100が備える通信回路を含んで構成される。
上述したように、プリンタ200が前回の印刷ジョブを異常終了した場合、印刷データ送信部130が送信するリカバリデータを実行してから新たな印刷ジョブを実行することで、プリンタ200は、残存データの印刷、印刷位置のずれのいずれも回避して、新たな印刷を行うことができる。
通信ネットワーク910は、コンピュータ100とプリンタ200との通信を仲介する。通信ネットワーク910は、例えばローカルエリアネットワーク(Local Area Network;LAN)である。
なお、コンピュータ100とプリンタ200との通信の態様は、図1に示すネットワーク通信に限らない。例えば、コンピュータ100とプリンタ200とがUSBケーブルで接続されるなど、コンピュータ100とプリンタ200とが1対1に接続されていてもよい。また、コンピュータ100とプリンタ200との通信方式は、有線の通信方式であってもよいし、無線による通信方式であってもよい。
なお、判定部291が、印刷データ受信部210がリカバリデータを受信したこと以外の事象を契機として異常終了の有無を判定するようにしてもよい。例えば、判定部291が、印刷データ受信部210が最後に印刷データを取得してから所定時間以上経過した場合に、異常終了の有無を判定するようにしてもよい。印刷データ受信部210が最後に印刷データを受信してから所定時間(例えば1分)以上経過した場合、コンピュータ100は印刷データの送信を終了していると考えられる。なお、ここでいう印刷データの送信終了には、印刷データ送信の正常終了の他、コンピュータ100の不具合または通信の不具合等による印刷データ送信の異常終了を含む。
この場合、コンピュータ100に代えて異常終了対応部292が、リカバリデータを生成する。具体的には、印刷処理部293による印刷が異常終了したと判定部291が判定した場合、異常終了対応部292は、リカバリデータを生成して印刷処理部293に実行させた後、印刷データ受信部210が受信する印刷データ(新たな印刷ジョブの印刷データ)が示す処理を印刷処理部293に行わせる。一方、印刷処理部293による印刷が正常終了したと判定部291が判定した場合、異常終了対応部292は、リカバリデータの生成は行わず、印刷データ受信部210が受信する印刷データ(新たな印刷ジョブの印刷データ)が示す処理を印刷処理部293に行わせる。
判定部291が、印刷データ受信部210が最後に印刷データを受信してから所定時間以上経過した場合に異常の有無を判定することで、その後に印刷データ受信部210が受信する新たな印刷ジョブの印刷データに備えることができる。すなわち、プリンタ200は、連続用紙920のページの先頭から新たな印刷を行うことができ、また、新たな印刷の際に、前回の印刷内容データを印刷してしまうことを回避できる。
次に、図4〜図6を参照して、印刷異常終了時に回復処理(例えば、リカバリデータが示す処理)を行う必要性について説明する。
図4は、通信障害発生時の印刷例を示す説明図である。図4〜図6の例では、文字列「ABCD」を2行分印刷する場合に、コンピュータ100が2行目の「AB」の印刷データまで送信したところで通信障害が発生した例を示している。
図4では、プリンタ200は、1行目の「ABCD」の印刷を完了している。一方、2行目については、印刷データ受信部210が文字列「AB」の印刷内容データを受信しているものの、改行コードを受信していない。印刷開始コードでもある改行コードを受信していないため、プリンタ200は2行目の「AB」を印刷しておらず、文字列「AB」の印刷内容データは印刷バッファ230に格納されている。
図5は、プリンタ200がリカバリデータの示す処理を行わない場合の印刷例を示す説明図である。同図では、コンピュータ100が印刷データを再送した場合の印刷例を示している。
図5の1行目は、図の場合と同じく文字列「ABCD」が印刷されている。
また、2行目には、印刷バッファ230に残存していた文字データとコンピュータ100が再送した印刷データの1行目が結合されて、文字列「ABABCD」が印刷されている。3行目には、コンピュータ100が再送した印刷データの2行目が示す「ABCD」が印刷されている。
このように、印刷バッファ230にデータが残っているために、プリンタ200は余分な文字列(2行目の先頭の文字列「AB」)を印刷している。印刷バッファ230に残存するデータを削除する方法として、ユーザがプリンタ200の電源を切断(オフ)して再び接続(オン)する方法が考えられるが、電源の切断により用紙送り量の情報が失われ、用紙先頭位置合わせを正確に行えなくなる可能性がある。
図6は、プリンタ200の電源を切断し再接続した後、改ページを行った状態の例を示す説明図である。同図の例では、図4に示す状態から、ユーザがプリンタ200の電源を切断して再び接続し、さらに、プリンタ200が改ページコードに従って用紙先頭位置合わせを行った例を示している。電源が一旦切断されたことで、プリンタ200が記憶していた行印刷処理による用紙送り量の情報が失われている。このため、プリンタ200は、1ページ分として記憶している用紙送り量の用紙送りを行う。
ところが、図4に示す状態では、文字列「ABCD」を印刷した後改行を行っている。このため、図6の状態では、線L11に示されるミシン目の位置が、マークM11の位置から1行分ずれている。
このように、プリンタ200の電源を切断すると、プリンタ200が用紙先頭位置合わせを正確に行えなくなる可能性がある。
これに対し、プリンタ200が、リカバリデータに含まれる改行コードの処理を行うことで、受信バッファ220及び印刷バッファ230をクリアすることができる。また、リカバリデータの実行ではプリンタ200の電源を切断する必要がなく、プリンタ200は、行印刷処理による用紙送り量の情報を保持している。このため、プリンタ200は、リカバリデータに含まれる改ページコードの処理を実行することで、用紙先頭位置合わせを正確に行うことができる。
次に、図7〜図16を参照して印刷システム1の動作について説明する。
図7は、前回の印刷が正常終了している状態からプリンタ200が印刷を行う場合の、印刷システム1の動作例を示す説明図である。
同図の処理で、コンピュータ100のアプリケーション実行部110がアプリケーションプログラムを実行して印刷要求が発生し、アプリケーション実行部110は、印刷内容データを含む印刷要求をプリンタドライバ120に出力して印刷を要求する(ステップS101)。
アプリケーション実行部110からの印刷要求を受けたプリンタドライバ120は、リカバリデータと、印刷要求に応じた印刷データとを生成する(ステップS102)。具体的には、プリンタドライバ120のリカバリデータ生成部121が、リカバリデータを生成する。また、プリンタドライバ120は、アプリケーション実行部110からの印刷要求を、プリンタ200に実行させる印刷データの書式に変換する。そして、プリンタドライバ120は、リカバリデータを、印刷データ送信部130を介してプリンタ200へ送信し、次に、アプリケーション実行部110からの送信要求に基づく印刷データを、印刷データ送信部130を介してプリンタ200へ送信する。
なお、コンピュータ100が、リカバリデータとアプリケーション実行部110からの送信要求に基づく印刷データとを別々のデータとして送信するようにしてもよいし、1つのデータに纏めて送信するようにしてもよい。
コンピュータ100からのリカバリデータとアプリケーション実行部110からの送信要求に基づく印刷データとを受信したプリンタ200では、判定部291が、印刷処理部293による印刷が正常終了していると判定し、異常終了対応部292が、当該判定に基づいてリカバリデータを削除する(ステップS103)。
具体的には、受信バッファ220が、リカバリデータとアプリケーション実行部110からの送信要求に基づく印刷データとを記憶する。そして、判定部291は、受信バッファ220が記憶しているデータをスキャンしてリカバリデータを検出したことを契機に、印刷処理部293が前回行った印刷が正常終了したか異常終了したかを判定する。図7の例では、印刷処理部293が前回行った印刷は正常終了しており、判定部291は正常終了と判定する。そして、異常終了対応部292は、判定部291の判定結果に基づいて、受信バッファ220が記憶しているリカバリデータを受信バッファ220から削除する。
次に、印刷処理部293が印刷データに従って行印刷処理を行い、さらに用紙先頭位置合わせ処理を行って印刷を終了する(ステップS104)。
具体的には、受信バッファ220は、印刷データを印刷順(例えば受信順)に印刷バッファ230へ出力し、出力した印刷データを受信バッファ220から削除する。印刷バッファ230は、受信バッファ220からの印刷データを記憶する。そして、印刷処理部293は、印刷バッファ230が記憶している印刷データを印刷順にスキャンする。
スキャンにて改行コードを検出すると、印刷処理部293は、該改行コードまでの印刷データに従って印刷ハンマ240を制御して、1行分の印刷を行わせる。印刷ハンマ240が1行分の印刷を完了すると、印刷処理部293は、用紙送り部250を制御して、1行分の用紙送りを行わせる。その際、印刷処理部293は、用紙送り量を記憶しておき、また、処理を完了した1行分の印刷データを印刷バッファ230から削除する。
なお、印刷データに複数行分のデータが含まれている場合、印刷処理部293は、改行コードを検出する毎に上記の処理を繰り返す。
図8は、印刷ハンマ240が1行分の印刷を行った状態の例を示す説明図である。同図の例では、印刷ハンマ240は、印刷処理部293の制御に従って1行分の文字列「ABCD」を印刷している。なお、図8の状態の後、印刷処理部293が用紙送り部250を制御して1行分の用紙送りを行わせる。これにより、図4に示す状態と同様に、線L11にて示されるミシン目の位置がマークM11の位置から1行分送られた状態(図4の上側へ移動した状態)になる。なお、図4では、印刷バッファ230に文字列「AB」の印刷内容データが残っている場合の例について説明したが、図8〜図9の例では、プリンタ200が印刷すべき文字列は「ABCD」の1行分のみである。図8の状態では、印刷バッファ230には印刷内容データは残っていない。
上述したように、印刷データの末尾には改ページコードを付すよう規定されている。行毎の印刷を全て完了した印刷処理部293は、印刷データの末尾の改ページコードを検出して用紙先頭位置合わせ処理を行い、印刷を終了する。具体的には、印刷処理部293は、印刷バッファ230が記憶している印刷データをスキャンして改ページコードを検出すると、用紙送り部250を制御して用紙先頭位置合わせを行わせる。
図9は、用紙送り部250が用紙先頭位置合わせを行った状態の例を示す説明図である。図9の例では、線L11にて示されるミシン目の位置が、マークM11の位置に合っている。印刷処理部293は、行印刷処理にて用紙送りを行った用紙送り量を記憶しておき、当該用紙送り量に基づいて用紙先頭位置合わせのための用紙送り量を算出する。これにより、図9の例のように、ミシン目の位置をマークM11の位置に合わせることができる。
用紙送り部250が用紙先頭位置合わせを完了すると、印刷処理部293は、印刷バッファ230が記憶している改ページコードを印刷バッファ230から削除する。これにより、印刷バッファ230は空(印刷データを記憶していない状態)になり、プリンタ200は、印刷(コンピュータ100からの印刷コードに基づく印刷ジョブ)を終了する。
図10は、前回の印刷が異常終了している状態からプリンタ200が印刷を行う場合の、印刷システム1の動作例を示す説明図である。
同図のステップS201及びS202は、図7のステップS101及びS102と同様である。
一方、コンピュータ100からのリカバリデータとアプリケーション実行部110からの送信要求に基づく印刷データとを受信したプリンタ200では、判定部291が、印刷処理部293による印刷が異常終了していると判定し、異常終了対応部292は、リカバリデータの削除を行わない(ステップS203)。
具体的には、受信バッファ220が、リカバリデータとアプリケーション実行部110からの送信要求に基づく印刷データとを記憶する。そして、判定部291は、受信バッファ220が記憶しているデータをスキャンしてリカバリデータを検出したことを契機に、印刷処理部293が前回行った印刷が正常終了したか異常終了したかを判定する。
図10の例では、印刷処理部293が前回行った印刷は異常終了しており、判定部291は異常終了と判定する。この場合、異常終了対応部292は、判定部291の判定結果に基づいて、受信バッファ220が記憶しているリカバリデータの削除を行わない。異常終了対応部292は、リカバリデータの削除を行わないことで、リカバリデータの示す処理をステップS204で印刷処理部293に実行させる。
次に、印刷処理部293が印刷データ(印刷バッファ230に残存する印刷データ及びリカバリデータ)に従って行印刷処理を行い、さらに用紙先頭位置合わせ処理を行って、リカバリデータに基づく印刷を終了する(ステップS204)。
具体的には、受信バッファ220は、印刷データを印刷順(例えば受信順)に印刷バッファ230へ出力し、出力した印刷データを受信バッファ220から削除する。ステップS202でコンピュータ100が、リカバリデータを送信した後、アプリケーション実行部110からの送信要求に基づく印刷データを送信するため、受信バッファ220は、まず、リカバリデータを印刷バッファ230へ出力する。
印刷バッファ230は、前回の印刷ジョブで処理されなかった印刷データ(改行コードを含まない印刷データ)を記憶しており、この印刷データに続いて受信バッファ220からのリカバリデータを記憶する。そして、印刷処理部293は、印刷バッファ230が記憶している印刷データを印刷順にスキャンする。
スキャンにて改行コードを検出すると、印刷処理部293は、該改行コードまでの印刷データに従って印刷ハンマ240を制御して、1行分の印刷を行わせる。具体的には、印刷処理部293は、リカバリコードに含まれる改行コードを検出して、前回の印刷ジョブで処理されなかった印刷データ(及びヌルデータ)の印刷を印刷ハンマ240に行わせる。
印刷ハンマ240が1行分の印刷を完了すると、印刷処理部293は、用紙送り部250を制御して、1行分の用紙送りを行わせる。その際、印刷処理部293は、用紙送り量を記憶しておき、また、処理を完了した1行分の印刷データを印刷バッファ230から削除する。
図11は、印刷ハンマ240が1行分の印刷を行った状態の例を示す説明図である。同図の例では、印刷ハンマ240は、印刷処理部293の制御に従って1行分の文字列「AB」を印刷している。この文字列「AB」は、異常終了した前回の印刷ジョブで印刷されなかった印刷データに基づいて印刷された文字列である。
図11の状態の後、印刷処理部293が用紙送り部250を制御して1行分の用紙送りを行わせる。
ここで、図3を参照して説明したように、リカバリデータの末尾には改ページコードを付すよう規定されている。行印刷処理を完了した印刷処理部293は、リカバリデータの末尾の改ページコードを検出して用紙先頭位置合わせ処理を行い、印刷を終了する。具体的には、印刷処理部293は、印刷バッファ230が記憶している印刷データをスキャンして改ページコードを検出すると、用紙送り部250を制御して用紙先頭位置合わせを行わせる。
図12は、用紙送り部250が用紙先頭位置合わせを行った状態の例を示す説明図である。図12の例では、線L11にて示されるミシン目の位置が、マークM11の位置に合っている。図6の例の場合と異なり図12の例では、プリンタ200の電源が接続されたままなので、印刷処理部293は、行印刷処理にて用紙送りを行った用紙送り量を、異常終了した前回の印刷分も含めて記憶している。そして、印刷処理部293は、当該用紙送り量に基づいて用紙先頭位置合わせのための用紙送り量を算出する。これにより、図12の例のように、ミシン目の位置をマークM11の位置に合わせることができる。これにより、プリンタ200は、次の印刷データに基づく印刷(アプリケーション実行部110からの送信要求に基づく印刷データが示す処理)を、連続用紙920のページの先頭(図2の例では領域A12)から行うことができる。この点で、プリンタ200は、次の印刷データに基づく印刷を、前回の印刷が正常終了した場合と同様に行うことができる。
用紙送り部250が用紙先頭位置合わせを完了すると、印刷処理部293は、印刷バッファ230が記憶している改ページコードを印刷バッファ230から削除する。これにより、前回の印刷ジョブで処理されなかった印刷データ及びリカバリデータは、全て印刷バッファ230から削除され、リカバリコードに基づく印刷ジョブを終了する。
ステップS204の後、受信バッファ220は、プリンタ200は、引き続き、アプリケーション実行部110からの送信要求に基づく印刷データに対する処理を行う(ステップS205)。
ステップS205では、判定部291はリカバリデータを検出せず、前回の印刷が正常終了したか異常終了したかの判定を行わない。これにより、異常終了対応部292は、受信バッファ220が記憶している印刷データに対する処理を行わない。
ステップS206は、図7のステップS104と同様である。すなわち、図12を参照して上述したように、ステップS204の処理を終了した状態では、プリンタ200は、次の印刷データに基づく印刷を、前回の印刷が正常終了した場合と同様に行うことができる。従って、プリンタ200は、アプリケーション実行部110からの送信要求に基づく印刷データに基づく印刷を、前回の印刷が正常終了した場合の動作例である図7のステップS104と同様に行う。
図13は、アプリケーション実行部110からの送信要求に基づく印刷データが示す1行分の印刷を印刷ハンマ240が行った状態の例を示す説明図である。同図の例では、印刷ハンマ240は、印刷処理部293の制御に従って1行分の文字列「ABCD」を印刷している。
図12の状態で、線L11にて示されるミシン目の位置が、マークM11の位置に合っているので、図12の状態から用紙送りをしていない図13の例でも、線L11にて示されるミシン目の位置が、マークM11の位置に合っている。
また、図13の状態から用紙送り部250が用紙先頭位置合わせを行うと、図9の例の場合と同様、ミシン目の位置をマークM11の位置に合わせることができる。
図14は、コンピュータ100がリカバリデータ及び印刷データを生成して送信する処理手順の例を示すフローチャートである。コンピュータ100は、アプリケーション実行部110が実行するアプリケーションの印刷機能を実行されると、コンピュータ100は同図の処理を開始する。
図14の処理で、アプリケーション実行部110は、当該アプリケーションにて規定されたフォーマットで印刷要求を生成してプリンタドライバ120に出力する(ステップS301)。
アプリケーション実行部110から印刷要求を受けたプリンタドライバ120は、リカバリデータと、印刷要求に基づく印刷データとを生成する(ステップS302)。具体的には、プリンタドライバ120のリカバリデータ生成部121が、リカバリデータを生成する。また、プリンタドライバ120は、アプリケーション実行部110からの印刷要求をプリンタ200が実行可能なフォーマットの印刷データに変換することで印刷データを生成する。
そして、プリンタドライバ120はリカバリデータを、印刷データ送信部130を介してプリンタ200へ送信する(ステップS303)。リカバリデータの送信を完了すると、プリンタドライバ120は、アプリケーション実行部110からの印刷要求を変換した印刷データを、印刷データ送信部130を介してプリンタ200へ送信する(ステップS304)。
ステップS304の後、図14の処理を終了する。
図15は、判定部291が行う処理の手順の例を示すフローチャートである。判定部291は、印刷データ受信部210がデータを受信して受信バッファ220が当該データを記憶すると同図の処理を開始する。
同図の処理にて、判定部291は受信バッファ220が記憶しているデータをスキャンする(ステップS401)。そして、判定部291は、ステップS401のスキャンにてリカバリデータを検出したか否かを判定する(ステップS402)。リカバリデータを検出していないと判定した場合(ステップS402:NO)、同図の処理を終了する。
一方、リカバリデータを検出したと判定した場合(ステップS402:YES)、判定部291は、前回の印刷が異常終了したか否かを判定する(ステップS411)。前回の印刷が異常終了したと判定した場合(ステップS411:YES)、同図の処理を終了する。
一方、前回の印刷が異常終了していないと判定した場合(ステップS411:NO)、
判定部291は、受信バッファ220が記憶しているリカバリデータを削除する(ステップS421)。
ステップS421の後、同図の処理を終了する。
図16は、印刷処理部293が行う処理の手順の例を示すフローチャートである。印刷処理部293は、印刷バッファ230がデータを記憶すると同図の処理を開始する。
同図の処理にて、印刷処理部293は、印刷バッファ230を印刷順にスキャンする(ステップS501)。そして、印刷処理部293は、ステップS501のスキャンにて改行コードを検出したか否かを判定する(ステップS502)。
改行コードを検出したと判定した場合、印刷処理部293は、行印刷処理を行う(ステップS511)。具体的には、印刷処理部293は、印刷バッファ230が記憶しているデータの先頭から改行コードの手前までの印刷データに従って印刷ハンマ240を制御して、1行分の印字を行わせる。
次に、印刷処理部293は、改行コードに従って用紙送り部250を制御して、1行分の用紙送りを行わせる(ステップS512)。
そして、印刷処理部293は、実行済みのデータを削除する(ステップS513)。具体的には、印刷処理部293は、印刷バッファ230が記憶している印刷データの先頭から改行コードまでを、印刷バッファ230から削除する。
ステップS513の後、ステップS501へ遷移する。
一方、ステップS502で、改行コードを検出していないと判定した場合(ステップS502:NO)、印刷処理部293は、ステップS501のスキャンで改ページコードを検出したか否かを判定する(ステップS521)。改ページコードを検出していないと判定した場合(ステップS521:NO)、印刷処理部293は、印刷バッファ230が記憶しているデータを全てスキャンしたか否かを判定する(ステップS531)。
印刷バッファ230が記憶しているデータをすべてスキャンしたと判定した場合(ステップS531:YES)、同図の処理を終了する。なお、この場合、印刷データが改ページコード以外のデータで終了することになり、プリンタ200は印刷を異常終了する。
一方、未だスキャンしていないデータがあると判定した場合(ステップS531:NO)、ステップS501へ遷移する。
一方、ステップS521で改ページコードを検出したと判定した場合(ステップS521:YES)、印刷処理部293は、改ページコードに従って用紙先頭位置合わせ処理を行う(ステップS541)。そして、印刷処理部293は、実行済みのデータとなった改ページコードを印刷バッファ230から削除する(ステップS542)。
ステップS542の後、同図の処理を終了する。
なお、ステップS542の後、印刷バッファ230にデータが残っている場合、印刷処理部293は、再び図16の処理を開始して、残りのデータを処理する。
以上のように、前回の印刷が異常終了したと判定部291が判定した場合、異常終了対応部292は、印刷処理部293に、バッファ(受信バッファ220及び印刷バッファ230)に残存する前回の印刷の印刷データが示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせた後、印刷データ受信部210が取得する今回の印刷の印刷データが示す処理を行わせる。一方、前回の印刷が正常終了したと判定部291が判定した場合、異常終了対応部292は、印刷データ受信部210が取得する今回の印刷の印刷データが示す処理を印刷処理部293に行わせる。
このように、プリンタ200は、印刷処理部293に通常の処理と同様の処理(印刷データが示す処理の実行、及び、用紙先頭位置合わせ処理)を行わせることで、バッファ(受信バッファ220及び印刷バッファ230)のクリア及び連続用紙920の位置合わせを行って、印刷正常終了状態(印刷が正常終了した場合の状態)にする。印刷処理部293は通常の処理を同様の処理を行えばよい点で、印刷異常終了状態(印刷が異常終了した場合の状態)から印刷正常終了状態にするための特別な構成を備える必要がない。この点で、プリンタ200では、より簡単な構成で、ラインプリンタのバッファに残ったデータのクリア、及び、連続用紙920の位置合わせを行うことができる。
また、判定部291は、印刷データ受信部210が所定のデータ(本実施形態の例ではリカバリデータ)を取得すると、前回の印刷が正常終了したか異常終了したかを判定する。
従って、印刷要求装置(本実施形態の例ではコンピュータ100)は、プリンタ200を印刷異常終了状態から印刷正常終了状態にするために、所定のデータを送信すればよい。この点で、印刷要求装置は、より簡単な構成でプリンタ200を印刷異常終了状態から印刷正常終了状態にすることができる。
また、判定部291は、印刷データ受信部210が、NULLデータ(印刷するものがないことを示す印刷内容データ)、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを取得すると、前回の印刷が正常終了したか異常終了したかを判定する。そして、異常終了対応部292は、前回の印刷が異常終了したと判定部291が判定した場合、印刷データ受信部210が取得したリカバリデータが示す処理を印刷処理部293に実行させる。一方、前回の印刷が正常終了したと判定部291が判定した場合、印刷データ受信部210が取得したデータの中からリカバリデータを削除する。
このように、プリンタ200は、印刷データ受信部210が受信したリカバリデータが示す処理を実行するという簡単な処理で、印刷異常終了状態から印刷正常終了状態にすることができる。
また、前回の印刷が正常終了したと判定部291が判定した場合、異常終了対応部292が、印刷データ受信部210が取得したデータの中からリカバリデータを削除することで、印刷処理部293がリカバリデータを実行して無駄な用紙送りを行うことを回避できる。
また、判定部291は、印刷データ受信部210が最後に印刷データを受信してから所定時間以上経過すると、前回の印刷が正常終了したか異常終了したかを判定する。この場合、印刷要求装置はリカバリデータを送信する必要がない。この点で、印刷要求装置の構成をさらに簡単にすることができる。
また、プリンタ200は、判定部291が判定を行う契機を検出するために、印刷データ受信部210が最後に印刷データを受信してからの経過時間を計り、所定の時間が経過したことを検出する構成を備えればよく、この点で、プリンタ200の構成を簡単にすることができる。
また、異常終了対応部292は、前回の印刷が異常終了したと判定部291が判定した場合、リカバリデータを生成して印刷処理部293に実行させる。
このように、異常終了対応部292がリカバリデータを生成して印刷処理部293に実行させるという簡単な処理で、プリンタ200を印刷異常終了状態から印刷正常終了状態にすることができる。この点で、印刷処理部293の構成を簡単にすることができ、また、異常終了対応部292の負荷の増加を抑制することができる。
また、判定部291は、前回の印刷が正常終了したか異常終了したかを、バッファ(受信バッファ220及び印刷バッファ230に前回の印刷の印刷データが残存しているか否か、及び、印刷処理部293による用紙送り量に基づいて判定する。
これにより、判定部291は、バッファのデータ記憶状況、及び、用紙送り量を把握するという簡単な処理で、前回の印刷が正常終了したか異常終了したかを、判定することができる。
なお、前回の印刷の印刷データの有無は、印刷データ受信部210がリカバリデータを取得する前のデータの有無を判定することで判定できる。
あるいは、判定部291は、印刷データ受信部210が最後に印刷データを受信してからの経過時間を契機として、前回の印刷が正常終了したか異常終了したかを判定する場合、前回の印刷の印刷データの有無は、受信バッファ220又は印刷バッファ230の少なくとも一方が印刷データを記憶しているか否かを判定することで判定できる。
また、プリンタドライバ120は、印刷データを生成する。そして、印刷データ送信部130は、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータをプリンタ200へ送信した後、プリンタドライバ120が生成した印刷データをプリンタ200へ送信する。
このように、コンピュータ100が、印刷データの前にリカバリデータを送信することで、判定部291は、印刷データ受信部210がリカバリデータを取得したことを契機として、前回の印刷が正常終了したか異常終了したかの判定を行うことができる。また、印刷処理部293がリカバリデータを実行することで、プリンタ200を印刷異常終了状態から印刷正常終了状態にすることができる。
なお、判定部291が、前回の印刷が正常終了したか異常終了したかを、プリンタ200の状態を示す情報に基づいて判定するようにしてもよい。この点について図17及び図18を参照して説明する。
図17は、本実施形態におけるプリンタ200の変形例であるプリンタ201の機能構成を示す概略ブロック図である。同図に示すように、プリンタ201は、印刷データ受信部210と、受信バッファ220と、印刷バッファ230と、印刷ハンマ240と、用紙送り部250と、状態情報記憶部280と、制御部290とを備える。用紙送り部250は、左トラクタ251と、右トラクタ252とを備える。制御部290は、異常終了対応部292と、印刷処理部293と、判定部295と、状態情報管理部296とを備える。
なお、図17の各部のうち、図1の各部に対応して同様の機能を有する部分には同一の符号(210、220、230、240、250、251、252、290、292、293)を付して説明を省略する。
状態情報記憶部280は、状態情報を記憶する。ここでいう状態情報は、プリンタ201の状態を示す情報である。
図18は、状態情報が示すプリンタ201の状態の遷移例を示す説明図である。
同図に示すように、状態情報は、プリンタ201が、印刷前又は印刷正常終了の状態(モードM21)にあるか、あるいは、印刷中又は印刷異常終了の状態(モードM22)にあるかを示す。
状態情報管理部296は、状態情報の値を書き換える。例えば、プリンタ201の電源が接続され起動した状態では、状態情報管理部296は、状態情報の値を、印刷前又は印刷正常終了の状態を示す値にする。また、受信バッファ220、印刷バッファ230のいずれも印刷データを記憶しておらず、かつ、用紙先頭位置合わせが行われた状態(左トラクタ251及び右トラクタ252の回転量が0)の場合、状態情報管理部296は、状態情報の値を、印刷前又は印刷正常終了の状態を示す値にする。
一方、受信バッファ220、印刷バッファ230の少なくともいずれかが印刷データを記憶している、または、用紙先頭位置合わせが行われていない状態(左トラクタ251及び右トラクタ252の回転量が0でない)の場合、状態情報管理部296は、状態情報の値を、印刷中又は印刷異常終了の状態を示す値にする。
判定部295は、印刷処理部293による印刷が正常終了したか異常終了したかを状態情報に基づいて判定する。
以上のように、状態情報記憶部280は、プリンタ201の状態を示す状態情報を記憶する。そして、判定部295は、前回の印刷が正常終了したか異常終了したかを、状態情報に基づいて判定する。
これにより、判定部295は、状態情報を参照して速やかに判定を行うことができ、この点でプリンタ201の処理速度を速めることができる。
次に、図19〜図21を参照して本発明の最小構成について説明する。
図19は、本発明に係る印刷装置の最小構成を示す概略ブロック図である。同図に示す印刷装置300は、印刷データ取得部310と、バッファ320と、印刷処理部330と、判定部340と、異常終了対応部350とを備える。
かかる構成にて、印刷データ取得部310は、印刷データを取得する。バッファ320は、印刷データ取得部310が取得した印刷データを記憶し、実行済みの印刷データを削除する。印刷処理部330は、バッファ320が記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と行印刷処理によって用紙送りされた用紙送り量とに基づいて連続用紙920のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理を行う。また、判定部340は、印刷処理部330が行った前回の印刷が正常終了したか異常終了したかを判定する。
また、異常終了対応部350は、前回の印刷が異常終了したと判定部340が判定した場合、印刷処理部330に、バッファ320に残存する前回の印刷の印刷データが示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせた後、印刷データ取得部310が取得する今回の印刷の印刷データが示す処理を行わせる。また、異常終了対応部350は、前回の印刷が正常終了したと判定部340が判定した場合、印刷データ取得部310が取得する今回の印刷の印刷データが示す処理を印刷処理部330に行わせる。
このように、印刷装置300は、印刷処理部330に通常の処理と同様の処理(印刷データが示す処理の実行、及び、用紙先頭位置合わせ処理)を行わせることで、バッファ320のクリア及び連続用紙920の位置合わせを行って、印刷正常終了状態(印刷が正常終了した場合の状態)にする。印刷処理部330が通常の処理を同様の処理を行えばよい点で、印刷異常終了状態(印刷が異常終了した場合の状態)から印刷正常終了状態にするための特別な構成を備える必要がない。この点で、印刷装置300では、より簡単な構成で、ラインプリンタのバッファに残ったデータのクリア、及び、連続用紙920の位置合わせを行うことができる。
図20は、本発明に係る印刷システムの最小構成を示す概略ブロック図である。同図に示す印刷装置印刷システム2は、印刷要求装置400と、印刷装置500とを備える。印刷要求装置400は、印刷データ生成部410と、印刷データ送信部420とを備える。印刷装置500は、印刷データ取得部510と、バッファ520と、印刷処理部530と、判定部540と、異常終了対応部550とを備える。
かかる構成にて、印刷データ生成部410は、印刷データを生成する。印刷データ送信部420は、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを前記印刷装置へ送信した後、前記印刷データ生成部410が生成した印刷データを前記印刷装置へ送信する。
また、印刷データ取得部510は、印刷データを取得する。バッファ520は、印刷データ取得部510が取得した印刷データを記憶し、実行済みの印刷データを削除する。印刷処理部530は、バッファ520が記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と行印刷処理によって用紙送りされた用紙送り量とに基づいて連続用紙920のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理を行う。また、判定部540は、印刷処理部530が行った前回の印刷が正常終了したか異常終了したかを判定する。
また、異常終了対応部550は、前回の印刷が異常終了したと判定部540が判定した場合、印刷処理部530に、バッファ520に残存する前回の印刷の印刷データが示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせた後、印刷データ取得部510が取得する今回の印刷の印刷データが示す処理を行わせる。また、異常終了対応部は、前回の印刷が正常終了したと判定部540が判定した場合、印刷データ取得部510が取得する今回の印刷の印刷データが示す処理を印刷処理部530に行わせる。
このように、印刷装置500は、印刷処理部530に通常の処理と同様の処理(印刷データが示す処理の実行、及び、用紙先頭位置合わせ処理)を行わせることで、バッファ520のクリア及び連続用紙920の位置合わせを行って、印刷正常終了状態(印刷が正常終了した場合の状態)にする。印刷処理部530が通常の処理を同様の処理を行えばよい点で、印刷異常終了状態(印刷が異常終了した場合の状態)から印刷正常終了状態にするための特別な構成を備える必要がない。この点で、印刷装置500では、より簡単な構成で、ラインプリンタのバッファに残ったデータのクリア、及び、連続用紙920の位置合わせを行うことができる。
図21は、本発明に係る印刷要求装置の最小構成を示す概略ブロック図である。同図に示す印刷要求装置600は、印刷データ生成部610と、印刷データ送信部620とを備える。
かかる構成にて、印刷データ生成部610は、印刷データを生成する。印刷データ送信部620は、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを前記印刷装置へ送信した後、前記印刷データ生成部610が生成した印刷データを前記印刷装置へ送信する。
このように、印刷要求装置600が、印刷データの前にリカバリデータを送信することで、リカバリデータを受信した印刷装置は、リカバリデータを取得したことを契機として、前回の印刷が正常終了したか異常終了したかの判定を行うことができる。また、リカバリデータを受信した印刷装置は、リカバリデータを実行することで、印刷異常終了状態から印刷正常終了状態にすることができる。
なお、上述した実施形態におけるアプリケーション実行部110、プリンタドライバ120、制御部290、印刷装置300及び500、印刷要求装置400及び600の一部または全部の機能を、CPUがプログラムを読み出して実行することで実現することができる。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1、2 印刷システム
100 コンピュータ
110 アプリケーション実行部
120 プリンタドライバ
121 リカバリデータ生成部
130 印刷データ送信部
200 プリンタ
210 印刷データ受信部
220 受信バッファ
230 印刷バッファ
240 印刷ハンマ
250 用紙送り部
251 左トラクタ
252 右トラクタ
280 状態情報記憶部
290 制御部
291、295 判定部
292 異常終了対応部
293 印刷処理部
296 状態情報管理部
300、500 印刷装置
310、510 印刷データ取得部
320、520 バッファ
330、530 印刷処理部
340、540 判定部
350、550 異常終了対応部
400、600 印刷要求装置
410、610 印刷データ生成部
420、620 印刷データ送信部
910 通信ネットワーク

Claims (11)

  1. 印刷データを取得する印刷データ取得部と、
    前記印刷データ取得部が取得した印刷データを記憶し、実行済みの印刷データを削除するバッファと、
    連続用紙に印刷を行う印刷処理部であって、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理部と、
    前記印刷処理部が行った前回の印刷が正常終了したか異常終了したかを判定する判定部と、
    前記前回の印刷が異常終了したと前記判定部が判定した場合、前記印刷処理部に、前記印刷データ取得部が取得するリカバリデータであって、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行させることで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせた後、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を行わせ、前記前回の印刷が正常終了したと前記判定部が判定した場合、前記印刷データ取得部が取得したリカバリデータを削除して、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を前記印刷処理部に行わせる異常終了対応部と、
    を備える印刷装置。
  2. 前記判定部は、前記印刷データ取得部が所定の印刷データを取得すると、前記前回の印刷が正常終了したか異常終了したかを判定する、請求項1に記載の印刷装置。
  3. 前記判定部は、前記印刷データ取得部が、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを取得すると、前記前回の印刷が正常終了したか異常終了したかを判定する、
    請求項2に記載の印刷装置。
  4. 前記判定部は、前記印刷データ取得部が最後に印刷データを取得してから所定時間以上経過すると、前記前回の印刷が正常終了したか異常終了したかを判定する、請求項1に記載の印刷装置。
  5. 前記異常終了対応部は、前記前回の印刷が異常終了したと前記判定部が判定した場合、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを生成して前記印刷処理部に実行させる、
    請求項4に記載の印刷装置。
  6. 前記判定部は、前記前回の印刷が正常終了したか異常終了したかを、前記バッファに前回の印刷の印刷データが残存しているか否か、及び、前記印刷処理部による用紙送り量に基づいて、判定する、請求項1から5のいずれか1項に記載の印刷装置。
  7. 前記印刷装置の状態を示す状態情報を記憶する状態情報記憶部を備え、
    前記判定部は、前記前回の印刷が正常終了したか異常終了したかを、前記状態情報に基づいて判定する、請求項1から5のいずれか1項に記載の印刷装置。
  8. 印刷要求装置と、印刷装置とを備え、
    前記印刷要求装置は、
    印刷データを生成する印刷データ生成部と、
    印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを前記印刷装置へ送信した後、前記印刷データ生成部が生成した印刷データを前記印刷装置へ送信する、印刷データ送信部と、
    を備え、
    前記印刷装置は、
    前記印刷データ送信部が送信したデータを取得する印刷データ取得部と、
    前記印刷データ取得部が取得した印刷データを記憶し、実行済みの印刷データを削除するバッファと、
    連続用紙に印刷を行う印刷処理部であって、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理部と、
    前記印刷処理部が行った前回の印刷が正常終了したか異常終了したかを判定する判定部と、
    前記前回の印刷が異常終了したと前記判定部が判定した場合、前記印刷処理部に、前記印刷データ取得部が取得するリカバリデータであって、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行させることで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行させ、用紙先頭位置合わせ処理を行わせた後、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を行わせ、前記前回の印刷が正常終了したと前記判定部が判定した場合、前記印刷データ取得部が取得したリカバリデータを削除して、前記印刷データ取得部が取得する今回の印刷の印刷データが示す処理を前記印刷処理部に行わせる異常終了対応部と、
    を備える印刷システム。
  9. 印刷データを記憶し実行済みの印刷データを削除するバッファを備えて、連続用紙に印刷を行う印刷装置が、印刷データを取得する印刷データ取得ステップと、
    前記印刷装置が、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理ステップと、
    前記印刷装置が、前記印刷処理ステップで行った前回の印刷が正常終了したか異常終了したかを判定する判定ステップと、
    前記前回の印刷が異常終了したと前記判定ステップで判定した場合、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行することで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行し、用紙先頭位置合わせ処理を行った後、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行い、前記前回の印刷が正常終了したと前記判定ステップで判定した場合、前記リカバリデータを削除して、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行う異常終了対応ステップと、
    を含む印刷方法。
  10. 印刷要求装置が、印刷データを生成する印刷データ生成ステップと、
    前記印刷要求装置が、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを印刷装置へ送信した後、前記印刷データ生成ステップで生成した印刷データを前記印刷装置へ送信する、印刷データ送信ステップと、
    前記印刷内容データを記憶するバッファを備えて連続用紙に印刷を行う印刷装置が、前記印刷データ送信ステップで送信したデータを取得する印刷データ取得ステップと、
    前記印刷装置が、前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理ステップと、
    前記印刷装置が、前記印刷処理ステップで行った前回の印刷が正常終了したか異常終了したかを判定する判定ステップと、
    前記前回の印刷が異常終了したと前記判定ステップで判定した場合、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行することで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行し、用紙先頭位置合わせ処理を行った後、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行い、前記前回の印刷が正常終了したと前記判定ステップで判定した場合、前記リカバリデータを削除して、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行う異常終了対応ステップと、
    を含む印刷方法。
  11. 印刷データを記憶し実行済みの印刷データを削除するバッファを備えて、連続用紙に印刷を行う印刷装置を制御するコンピュータに、
    印刷データを取得する印刷データ取得ステップと、
    前記バッファが記憶している印刷データが示す印刷内容を行毎に印刷して改行する行印刷処理、及び、1ページ分の用紙送り量として設定されている所定のページ用紙送り量と前記行印刷処理によって用紙送りされた用紙送り量とに基づいて前記連続用紙のページの先頭を所定の位置に合せる用紙先頭位置合わせ処理、を行う印刷処理ステップと、
    前記印刷処理ステップで行った前回の印刷が正常終了したか異常終了したかを判定する判定ステップと、
    前記前回の印刷が異常終了したと前記判定ステップで判定した場合、印刷するものがないことを示す印刷内容データ、改行コード、及び、改ページコードからなる印刷データであるリカバリデータを実行することで、前記バッファに残存する前回の印刷の印刷データが示す処理を全て実行し、用紙先頭位置合わせ処理を行った後、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行い、前記前回の印刷が正常終了したと前記判定ステップで判定した場合、前記リカバリデータを削除して、前記印刷データ取得ステップで取得する今回の印刷の印刷データが示す処理を行う異常終了対応部と、
    を実行させるためのプログラム。
JP2015162639A 2015-08-20 2015-08-20 印刷装置、印刷システム、印刷方法及びプログラム Active JP6551976B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015162639A JP6551976B2 (ja) 2015-08-20 2015-08-20 印刷装置、印刷システム、印刷方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015162639A JP6551976B2 (ja) 2015-08-20 2015-08-20 印刷装置、印刷システム、印刷方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2017039264A JP2017039264A (ja) 2017-02-23
JP6551976B2 true JP6551976B2 (ja) 2019-07-31

Family

ID=58202816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015162639A Active JP6551976B2 (ja) 2015-08-20 2015-08-20 印刷装置、印刷システム、印刷方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6551976B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965672B (zh) * 2021-03-09 2023-09-05 苏州东剑智能科技有限公司 一种打印机在线打印方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4248147A (en) * 1979-04-30 1981-02-03 Zenner Walter J Control system for dot matrix line printer using one print element per character
JPH03121877A (ja) * 1989-10-04 1991-05-23 Nippon Denki Joho Service Kk プリンタの印字処理システム
JPH061045A (ja) * 1992-06-23 1994-01-11 Seiko Epson Corp プリンタ装置
JPH068544A (ja) * 1992-06-26 1994-01-18 Sanyo Electric Co Ltd プリンタ
JP2943558B2 (ja) * 1993-04-19 1999-08-30 日本電気株式会社 行管理制御機能を有するシリアルプリンタ
JPH07329399A (ja) * 1994-06-03 1995-12-19 Ricoh Co Ltd 画像形成装置
JPH0930088A (ja) * 1995-07-21 1997-02-04 Canon Inc プリンタ装置及びその制御方法
JP3651551B2 (ja) * 1998-02-24 2005-05-25 セイコーエプソン株式会社 プリンタ及びプリントシステム
JP2012081709A (ja) * 2010-10-14 2012-04-26 Fuji Xerox Co Ltd 画像形成装置

Also Published As

Publication number Publication date
JP2017039264A (ja) 2017-02-23

Similar Documents

Publication Publication Date Title
JP6631278B2 (ja) ドライバプログラム、及びドライバプログラムとプリンタとのセット
JP4945479B2 (ja) 印刷処理装置、印刷処理方法、印刷処理プログラム及び記録媒体
US20070229877A1 (en) Technology for dealing with errors in printing device
US10425546B2 (en) Printing system, and printer and computer-readable medium therefor
US8305615B2 (en) Job processing method for restarting jobs after an interrupt
JP5926514B2 (ja) 印刷制御装置、印刷制御方法、およびプログラム
JP6551976B2 (ja) 印刷装置、印刷システム、印刷方法及びプログラム
JP6116295B2 (ja) 画像形成装置、画像形成方法及びプログラム
JP3817387B2 (ja) プリントジョブのキャンセルの指示を行える情報処理装置、印刷装置、情報処理方法及び記憶媒体
JP4957384B2 (ja) 印刷装置及び印刷システム
US20120257243A1 (en) Information processing apparatus, print control method, and storage medium
JP6639617B2 (ja) 印刷装置、制御方法及びプログラム
JP2012155415A (ja) 印刷システム
JP2013244628A5 (ja)
JP5825818B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2017105103A (ja) ラベルプリンター及びラベルプリンター制御方法
JP2005222423A (ja) 情報処理装置、印刷システム、制御方法、プログラム、及び記憶媒体
JP5962406B2 (ja) 印刷装置およびログ書き込み方法
JP2006344152A (ja) 印刷装置及び印刷システム
JP6347161B2 (ja) 印刷制御装置、印刷制御装置の制御方法および記録媒体
JP2008134817A (ja) 印刷システム、印刷制御装置およびプログラム
JP2007323363A (ja) 印刷システム、印刷装置、印刷制御方法、プログラム及び記憶媒体
JP5932484B2 (ja) 印刷装置、ジョブ生成方法及びプログラム
JP5796356B2 (ja) 印刷装置及び印刷方法
JP5551532B2 (ja) 印刷設定装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190627

R150 Certificate of patent or registration of utility model

Ref document number: 6551976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250