(57)【特許請求の範囲】
【請求項１】
印刷対象物の片面あるいは両面に対する印刷を実行するプリンタにおいて、
表面印刷処理または裏面印刷処理のうちの何れかの印刷処理を実行するよう指示する印刷処理選択指示を含む印刷データを受信する受信部と、
前記印刷対象物の表面に印刷されるデータの１行分の展開容量を有する第１の展開領域と、
前記印刷対象物の裏面に印刷されるデータの１行分の展開容量を有する第２の展開領域と、
前記表面に印刷を行なう表面印刷ヘッドおよび前記裏面に印刷を行なう裏面印刷ヘッドを有する印刷部と、
前記印刷データに基づく印刷契機において前記印刷部に印刷の実行を指示する印刷制御部と、
を備え、
前記印刷制御部は、
前記印刷処理選択指示により前記表面印刷処理が指示されると、展開領域を前記第１の展開領域に切り替えて、当該印刷処理選択指示に後続する印刷データを展開し、
前記印刷処理選択指示により前記裏面印刷処理が指示されると、展開領域を前記第２の展開領域に切り替えて、当該印刷処理選択指示に後続する印刷データを展開し、
前記第１の展開領域および前記第２の展開領域の一方がフル状態となると、前記フル状態を前記印刷契機として、前記第１の展開領域および前記第２の展開領域の他方への印刷データの展開完了を待つことなく、前記第１の展開領域に展開された印刷データに基づく前記表面ヘッドによる前記表面への印刷と、前記第２の展開領域に展開された印刷データに基づく前記裏面ヘッドによる前記裏面への印刷とを実行するよう前記印刷部に指示することを特徴とするプリンタ。
【請求項２】
印刷対象物の表面に印刷されるデータの１行分の展開容量を有する第１の展開領域、前記印刷対象物の裏面に印刷されるデータの１行分の展開容量を有する第２の展開領域、前記表面に印刷を行なう表面印刷ヘッドと前記裏面に印刷を行なう裏面印刷ヘッドを有する印刷部を備え、前記印刷データに基づく印刷契機において前記印刷対象物の片面あるいは両面に対する印刷を実行するプリンタの制御方法であって、
表面印刷処理または裏面印刷処理のうちの何れかの印刷処理を実行するよう指示する印刷処理選択指示を含む印刷データを受信するステップと、
前記印刷処理選択指示により前記表面印刷処理が指示されると、展開領域を前記第１の展開領域に切り替えて、当該印刷処理選択指示に後続する印刷データを展開するステップと、
前記印刷処理選択指示により前記裏面印刷処理が指示されると、展開領域を前記第２の展開領域に切り替えて、当該印刷処理選択指示に後続する印刷データを展開するステップと、
前記第１の展開領域および前記第２の展開領域の一方がフル状態となると、前記フル状態を前記印刷契機として、前記第１の展開領域および前記第２の展開領域の他方への印刷データの展開完了を待つことなく、前記第１の展開領域に展開された印刷データに基づく前記表面ヘッドによる前記表面への印刷と、前記第２の展開領域に展開された印刷データに基づく前記裏面ヘッドによる前記裏面への印刷とを実行するよう前記印刷部に指示するステップと、
を有することを特徴とするプリンタの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷対象物の片面あるいは両面に印刷処理を実行するプリンタ及びプリンタの制御方法に関する。
【背景技術】
【０００２】
２つの印刷対象物に対して同一の印刷を同時に行うサーマルプリンタが提案されている（特許文献１参照）。特許文献１によれば、２つの印刷対象物であるレシート紙及びジャーナル紙は、紙送りローラが回転することによってサーマルヘッドに密着しながら搬送される。サーマルヘッドの両面の発熱抵抗体に同一の制御信号を与えることによって、発熱抵抗体の対応する発熱素子が選択的に同時に発熱し、レシート紙及びジャーナル紙上に同一の印刷画像が同時に形成されるようになっている。
【０００３】
また、１つの印刷対象物を挟むように両側に印刷ヘッドを配置し、その両面から同一パターンを印打するよう構成されたドットプリンタが提案されている（特許文献２参照）。特許文献２によれば、複数の印刷ワイヤを有する印刷ヘッドを相対向して一対配設し、両印刷ヘッド間に位置する印刷用紙を表裏両面から同一パターンにて同期して印打させる。インクリボンを介して印刷用紙を印打する印刷ヘッドの印刷ワイヤのインパクト力は、印刷用紙の裏面を直接印打する印刷ヘッドの印刷ワイヤのインパクト力より大きくする。このように構成することによって、コピー性能を向上させ、かつ印刷用紙の損傷を防止するようにしている。
【０００４】
また、レシートのような連続紙の表裏面に両面印刷するサーマルプリンタも提案されている（特許文献３〜６参照）。通常、両面印刷を行う場合は、プリンタは少なくとも表面データが展開される表面用バッファと裏面データが展開される裏面用バッファとを備えている。そして、表面用バッファと裏面用バッファのそれぞれに印刷データが展開され、両面印刷に必要な表裏面の展開データが揃ってから印刷処理を開始する。また、特許文献７には、表面用バッファと裏面用バッファを備え両面印刷を行うインクジェットプリンタが記載されている。
【０００５】
【特許文献１】特開平０３−０２７４３４号公報
【特許文献２】特開平０４−００１０６７号公報
【特許文献３】特開昭５９−０６８２６８号公報
【特許文献４】特開平０３−０２３４５６０号公報
【特許文献５】特開２００７−３２００８７号公報
【特許文献６】特開２００８−００６８０２号公報
【特許文献７】特開２００４−０５８４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、印刷対象物の表面に対して印刷を行う場合は、通常表面用バッファに印刷データを展開し、裏面に対する印刷を行う場合は裏面用バッファに印刷データを展開する。両面同時に印刷を行う場合は、それぞれのバッファに表裏面の印刷データを展開してから、印刷処理の実行を開始する。このため、片面印刷のみ実行するサーマルプリンタに比べて、大きなバッファ容量を必要とする。
【０００７】
また、表面用バッファ及び裏面用バッファに全ての印刷データが展開されるのを待って印刷処理を開始すると、片面印刷のみ実行する場合と比べて印刷処理開始までのスループットが低下する。特に、表裏面とも同一の印刷結果を出力したい場合などは、表面用バッファと裏面用バッファとに同一の印刷データをそれぞれ展開しなければならない。同じ印刷データをそれぞれのバッファに展開する時間を短縮できれば、印刷処理開始までのスループットをさらに高めることができる。
【０００８】
本発明は、上記課題を解決するためになされたものであって、表面用バッファ及び裏面用バッファにそれぞれ全ての印刷データが展開されるのを待たずに、両面印刷処理を開始することによって印刷処理開始までのスループットを高めたプリンタ及びプリンタの制御方法を提供することを目的とする。
【０００９】
また本発明は、表面用バッファと裏面用バッファとをそれぞれ備えなくとも印刷対象物に対する両面印刷処理を実行することができ、かつ片面印刷処理と両面印刷処理とを所定の指示に応じて切り換えて実行することができるプリンタを提供することを目的とする。また、表裏面とも同一の印刷結果を出力したい場合は、印刷データの展開時間を短縮して印刷処理開始までのスループットを高めることを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決することのできる本発明は、印刷対象物の片面あるいは両面に印刷処理を実行するプリンタにおいて、
少なくとも前記印刷対象物の片面の印刷処理を実行するために必要な展開容量を備えたデータ展開領域と、前記印刷対象物の第１の面に対して前記データ展開領域に展開された展開データを印刷する片面印刷処理、前記印刷対象物の第２の面に対して前記展開データを印刷する片面印刷処理、前記第１の面及び前記第２の面に対して前記データ展開領域に展開された異なる展開データを印刷する両面印刷処理、前記第１の面及び前記第２の面に対して前記データ展開領域に展開された同一の展開データを印刷する両面同一印刷処理、のうちの何れかの印刷処理を実行するよう指示する印刷処理選択指示を受信する受信部と、前記印刷処理選択指示によって指示された印刷処理を実行する印刷制御部と、を有することを特徴とする。
また、上記課題を解決することのできる本発明は、少なくとも印刷対象物の片面の印刷処理を実行するために必要な展開容量を備えたデータ展開領域を備え、前記印刷対象物の片面あるいは両面に印刷処理を実行するプリンタの制御方法であって、
前記印刷対象物の第１の面に対して前記データ展開領域に展開された展開データを印刷する片面印刷処理、前記印刷対象物の第２の面に対して前記展開データを印刷する片面印刷処理、前記第１の面及び前記第２の面に対して前記データ展開領域に展開された異なる展開データを印刷する両面印刷処理、前記第１の面及び前記第２の面に対して前記データ展開領域に展開された同一の展開データを印刷する両面同一印刷処理、のうち何れかの印刷処理を実行するよう指示する印刷処理選択指示を受信するステップと、前記データ展開領域に印刷データを展開するステップと、前記印刷処理選択指示によって指示された印刷処理を実行するステップと、を有することを特徴とする。
【００１１】
上記構成によれば、第１の面に対する片面印刷処理、第２の面に対する片面印刷処理、両面印刷処理及び両面同一印刷処理の何れかの印刷処理を、印刷処理選択指示によって切り替えることができる。
【００１２】
また本発明のプリンタにおいて、前記データ展開領域は、前記第１の面に印刷される印刷データが展開される第１の展開領域と、前記第２の面に印刷される印刷データが展開される第２の展開領域と、を備え、
前記印刷制御部は、前記印刷処理選択指示ごとに対応する展開領域を切り替えて印刷データを展開し、印刷契機に応じて前記第１の展開領域及び前記第２の展開領域に展開された展開データに基づき前記両面印刷処理を実行することを特徴とする。
また、本発明のプリンタの制御方法において、前記データ展開領域は、前記第１の面に印刷される印刷データが展開される第１の展開領域と、前記第２の面に印刷される印刷データが展開される第２の展開領域を備え、
前記印刷処理選択指示ごとに、対応する展開領域を切り替えて印刷データを展開するステップと、印刷契機に応じて前記第１の展開領域及び前記第２の展開領域に展開された展開データに基づき前記両面印刷処理を実行するステップと、を有することを特徴とする。
【００１３】
上記構成によれば、第１の展開領域及び第２の展開領域のうち、印刷処理選択指示ごとに展開領域を切り替え、対応する展開領域に印刷データを展開する。印刷データを展開する展開領域を印刷処理選択指示によって切り替えることができる。例えば、まず第１の面に対する片面印刷処理が選択されると第１の展開領域に印刷データが展開され、次に第２の面に対する片面印刷処理が選択されると展開領域を第１の展開領域から第２の展開領域へ切り替えて印刷データが展開される。再び第１の面に対する片面印刷処理が選択されると展開領域を第２の展開領域から第１の展開領域に切り替えて印刷データが展開される。
上記印刷処理選択指示によって展開領域を１行毎に切り替えるよう構成すれば、第１の面の１行分に相当する印刷データを第１の展開領域に展開した後、第２の面の印刷データを第２の展開領域に展開するよう切り替えることができる。したがって、従来のように表面用バッファ及び裏面用バッファにそれぞれ全ての印刷データが展開されるのを待つ必要がなく、少なくとも第１の展開領域及び第２の展開領域にそれぞれ１行分の印刷データが展開された時点で、両面印刷処理を開始することができる。これにより、印刷処理開始までのスループットを高めることができる。
【００１４】
また本発明のプリンタにおいて、前記印刷制御部は、
前記第１の面に対する片面印刷処理が選択されると展開領域を前記第１の展開領域に切り替えて印刷データを展開し、前記第２の面に対する片面印刷処理が選択されると展開領域を前記第２の展開領域に切り替えて印刷データを展開し、前記印刷処理選択指示に対応する方の展開領域がフル状態となると、前記フル状態を前記印刷契機として前記両面印刷処理を実行することを特徴とする。
【００１５】
上記構成によれば、印刷処理選択指示に対応する方の展開領域がフル状態になると、両面印刷処理を開始する。したがって、例えば印刷処理選択指示によって展開領域を１行毎に切り替えるよう構成すれば、第１の面の１行分に相当する印刷データを第１の展開領域に展開した後、展開領域を切り替え、第２の面の印刷データを第２の展開領域に展開し、選択された第２の展開領域がフル状態になると、印刷処理を開始する。これにより、第１の展開領域及び第２の展開領域にそれぞれ少なくとも１行分の印刷データを展開する容量を備えれば、フル状態を印刷契機に１行毎に両面印刷処理を実行することができる。
【００１６】
また本発明のプリンタにおいて、前記印刷制御部は、前記両面印刷処理が選択されると前記第１の展開領域及び第２の展開領域にそれぞれ対応する印刷データを展開し、前記第１の展開領域及び第２の展開領域を合わせた展開領域がフル状態となると、前記フル状態を前記印刷契機として前記両面印刷処理を実行することを特徴とする。
【００１７】
上記構成によれば、第１の展開領域及び第２の展開領域を合わせた展開領域がフル状態となると、両面印刷処理を開始する。したがって、例えば印刷処理選択指示によって展開領域を１行毎に切り替えるよう構成すれば、第１の面の１行分に相当する印刷データを第１の展開領域に展開した後、第２の面の印刷データを第２の展開領域に展開し、第１の展開領域及び第２の展開領域を合わせた展開領域がフル状態になると、印刷処理を開始する。これにより、第１の展開領域及び第２の展開領域にそれぞれ少なくとも１行分の印刷データを展開する容量を備えれば、最大で２行分の印刷データを展開し、フル状態を印刷契機に１行毎に両面印刷処理を実行することができる。
【００１８】
また、本発明のプリンタにおいて、前記印刷制御部は、印刷データの改行を指示する改行指示を前記印刷契機として両面印刷処理を実行することを特徴とする。
【００１９】
上記構成によれば、展開領域のフル状態を印刷契機とするほか改行指示を印刷契機とすることができる。したがって、印刷データの所望の位置に改行指示を含めることによって、展開領域のフル状態を待たずに印刷処理を実行することができる。これにより、ユーザが意図する行数で改行された印刷結果を出力することも可能となる。
【００２０】
また本発明のプリンタにおいて、前記印刷制御部は、
前記両面同一印刷処理が指示されると、前記データ展開領域に展開された展開データに基づき前記第１の面及び前記第２の面に対して両面同一印刷を同時に行い、
前記第１の面に対する片面印刷処理が指示されると、前記データ展開領域に展開された展開データに基づき前記印刷対象物の第１の面に対して片面印刷し、
前記第２の面に対する片面印刷処理が指示されると、前記データ展開領域に展開された展開データに基づき前記印刷対象物の第２の面に対して片面印刷することを特徴とする。
【００２１】
上記構成によれば、両面同一印刷処理が指示されると、第１の面及び第２の面に対して両面同一印刷を同時に行う。したがって、データ展開領域を節約しながらも両面同一印刷を行うことができるので、少なくとも従来の印刷速度をそのまま維持することができる。
また、第１の面に対する印刷処理あるいは第２の面に対する印刷処理が指示されると、データ展開領域に展開された展開データに基づきそれぞれ第１の面あるいは第２の面に対して片面印刷を行う。したがって、従来のように表面用バッファと裏面用バッファとを備えなくとも、データ展開領域を表面印刷処理と裏面印刷処理とで兼用することができる。
【００２２】
また、本発明のプリンタにおいて、前記印刷制御部は、前記データ展開領域の展開容量がフル状態になると、前記フル状態を契機に印刷処理を開始することを特徴とする。
【００２３】
上記構成によれば、データ展開領域のフル状態を契機に印刷処理を開始する。また、上述した通り、データ展開領域の展開容量は片面印刷処理を実行するために必要な展開容量である。このため少なくとも片面印刷処理と同間隔の印刷契機で印刷処理を実行する。したがって、少なくとも従来の片面印刷処理と同等の印刷速度を保持しながら、片面あるいは両面印刷処理をすることができる。
【発明を実施するための最良の形態】
【００２４】
＜第１の実施形態＞
以下、本発明を実施するための好適な実施の形態について、図面を参照して詳細に説明する。
【００２５】
図１は、本発明の第１の実施形態に係るサーマルプリンタの概略構成を示すブロック図である。図１に示すように、本実施形態のプリンタ１は、ホストコンピュータ２０から送信された印刷データを受信してロール紙のような連続紙（印刷対象物）に対して片面印刷または両面印刷を行うラインサーマルプリンタである。
【００２６】
本実施形態のプリンタ１は、主として通信インターフェース２、データ受信部３、データ解析部４、アクティブシート選択部５、印刷制御部６、データ記憶部７及び印刷部８を備えている。データ受信部３は、ホストコンピュータ２０から送信される印刷データを受信してデータ解析部４へ入力する。データ解析部４は、受信した印刷データを解析して、印刷処理選択コマンドＣＡ（印刷処理選択指示）が含まれていれば、そのコマンドをアクティブシート選択部５へ入力する。また、印刷データを解析した結果、カットコマンドや改行コマンド等が含まれていれば、そのコマンドを印刷制御部６を介して印刷部８に入力する。
【００２７】
アクティブシート選択部５は、データ解析部４から印刷処理選択コマンドＣＡが入力されると、その指示に応じた印刷処理を選択する。具体的には、印刷処理選択コマンドＣＡによってアクティブシートにロール紙表面が指示されると表面印刷処理が選択される。また、アクティブシートにロール紙裏面が指示されると裏面印刷処理が選択される。また、アクティブシートにロール紙表面及び裏面が指示されると両面印刷処理が選択される。
【００２８】
データ記憶部７（データ展開領域）は、ＲＡＭ等の揮発性メモリである。データ記憶部７の特定の領域には、ロール紙３０の表面に印刷される印刷データが展開される表面印刷展開バッファ領域１２（第１の展開領域）、ロール紙３０の裏面に印刷される印刷データが展開される裏面印刷展開バッファ領域１３（第２の展開領域）が設定されている。データ解析部４によるデータ解析の結果、コマンド以外の印刷データであると解析されるとそのデータは各展開領域１２,１３に振り分けて展開される。なお、本実施形態の各印刷領域１２,１３は、少なくとも１行分の印刷データを記憶する容量を備えている。また、連続して印刷処理を実行する場合は２行分以上の記憶容量を備える必要がある。
【００２９】
印刷制御部６は、印刷部８の動作を制御する。印刷処理選択コマンドＣＡによって選択された印刷処理に応じて、表面印刷展開バッファ領域１２あるいは裏面印刷展開バッファ領域１３の何れかに展開領域を切り替え、印刷データを展開する。印刷契機があると表面印刷展開バッファ領域１２、裏面印刷展開バッファ領域１３に展開された展開データに基づき両面印刷処理を実行する。具体的には、表面印刷処理が選択されると展開領域を表面印刷展開バッファ領域１２に切り替えて印刷データを展開し、裏面印刷処理が選択されると展開領域を裏面印刷展開バッファ領域１３に切り替えて印刷データを展開する。また、表面及び裏面印刷処理が選択されると表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３にそれぞれ対応する印刷データを展開する。
なお、表面印刷処理が選択されてから印刷契機があるまでの間に他の印刷処理選択コマンドＣＡがなければ、印刷データは表面印刷展開バッファ領域１２のみに展開され、表面印刷処理（片面印刷）を行うこともできる。同様に、裏面印刷処理が選択されてから印刷契機があるまでの間に他の印刷処理選択コマンドＣＡがなければ、印刷データは裏面印刷展開バッファ領域１３のみに展開され、裏面印刷処理（片面印刷）を行うこともできる。
さらに、表面及び裏面印刷処理が選択されてから印刷契機があるまでの間に他の印刷処理選択コマンドＣＡがなければ、印刷データはそのまま表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３に展開され、両面印刷処理を行う。
また、印刷制御部６は、展開領域の展開容量がフル状態になると、前記フル状態を契機に印刷処理を開始するよう印刷部８を制御する。また、印刷データの改行を指示する改行コマンドを印刷契機として印刷処理を開始するよう印刷部８を制御する。
【００３０】
印刷部８は、印刷制御部６からの指示に応じてロール紙３０に対して片面印刷処理または両面印刷処理を行う。印刷部８は、ロール紙３０を挟む形で対向配置された２つの印刷ヘッドと、ロール紙３０をカットするカット部１１とを有する。表面印刷ヘッド９はロール紙３０の表面３０１（第１の面）に印刷し、裏面印刷ヘッド１０はロール紙３０の裏面３０２（第２の面）に印刷する。印刷ヘッド９,１０にはラインサーマル式の印刷ヘッドが用いられ、印刷ヘッドの１ライン分の印刷を行うとロール紙３０を１ライン分に相当する搬送量だけ印刷紙送り方向X（図３参照）へ搬送する。１ライン分の印刷処理と搬送処理とを繰り返し、ロール紙３０の両面に同時に連続印刷処理を行う。また、片面印刷処理を実行する場合には、印刷ヘッド９,１０のいずれか一方を駆動させて片面印刷を実行する。なお、連続紙３０としては感熱紙が用いられる。連続紙３０は帯状の用紙を円筒状に巻回したものであり、印刷部８に装着して使用される。ロール紙３０に対する片面印刷または両面印刷が終了すると、印刷制御部６はカット部１１を制御してロール紙３０をカットする。
【００３１】
次に、本実施の形態のプリンタ１の印刷処理を説明する。
上述したように、本実施形態におけるアクティブシート選択部５は、ホストコンピュータ２０から印刷処理選択コマンドＣＡが送信されると、その指示に応じた印刷処理を選択する。以下では、ホストコンピュータ２０が印刷処理選択コマンドＣＡである表面選択コマンド及び裏面選択コマンドを印刷データに含めてプリンタ１へ送信したときに、プリンタ１が実行する両面印刷処理を説明する。また、変形例としてホストコンピュータ２０が印刷処理選択コマンドＣＡである表面及び裏面選択コマンドを印刷データに含めてプリンタ１へ送信したときに、プリンタ１が実行する両面印刷処理を説明する。
【００３２】
（アクティブシートを表面と裏面に切り替えながら両面印刷する場合）
図２は、本実施形態のプリンタが行う印刷処理を説明するためのフローチャートであり、図３は、本実施形態のプリンタが行う両面印刷処理におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
本実施形態では、上位アプリケーションで作成した印刷情報ｄ１を、ホストコンピュータ２０側でプリンタ１に対応した印刷データＤ１へ変換する。プリンタ１は、変換された印刷データＤ１に基づき印刷処理を実行する。
【００３３】
まず、データ受信部３がホストコンピュータ２０から印刷処理選択コマンドＣＡを含む印刷データＤ１を受信すると（ステップＳ１１）、データ解析部４は印刷データＤ１を解析する（ステップＳ１２）。データ解析部４が印刷データＤ１を解析した結果、印刷処理選択コマンドＣＡであると解析すると（ステップＳ１３：Ｎｏ,ステップＳ１５：Ｙｅｓ）、アクティブシート選択部５へ入力する。アクティブシート選択部５は、印刷処理選択コマンドＣＡによって指示されたアクティブシートを選択する。ここで、アクティブシートにロール紙表面が選択されると印刷処理として表面印刷処理が選択され、印刷制御部６は選択されたアクティブシートに対応する印刷展開バッファ領域を指定する。ここで裏面印刷展開バッファ領域１３が指定されている場合は、表面印刷展開バッファ領域１２に切り替える（ステップＳ１６）。また、アクティブシートにロール紙裏面が選択されると印刷処理として裏面印刷処理が選択される。表面印刷展開バッファ領域１２が指定されている場合は、裏面印刷展開バッファ領域１３に切り替える（ステップＳ１６）。
ここでは、印刷データＤ１の最初に表面選択コマンドが含まれているため、アクティブシート選択部５は表面印刷処理を選択する。
【００３４】
データ解析部４が解析したデータが印刷契機でなく（ステップＳ１８：Ｎｏ）、続けて印刷データＤ１を解析した結果、コマンド以外の印刷データであると解析すると（ステップＳ１３：Ｙｅｓ）、ステップＳ１６で選択したアクティブシートに対応する印刷展開バッファ領域に印刷データを展開する。図３に示すように、ホストコンピュータ２０から送信された印刷データ[ａｂｃｄｅｆｇｈ]を表面印刷展開バッファ領域１２に展開する（ステップＳ１４）。表面印刷展開バッファ領域１２がバッファフル状態でなく、印刷契機となる改行コマンド＜ＬＦ＞を受信しない場合は、ステップＳ１１に戻る（ステップＳ１８：Ｎｏ）。
【００３５】
続けて、データ解析部４が印刷データＤ１を解析した結果、印刷処理選択コマンドＣＡであると解析すると（ステップＳ１３：Ｎｏ,ステップＳ１５：Ｙｅｓ）、アクティブシート選択部５へ入力する。アクティブシート選択部５は、印刷処理選択コマンドＣＡによって指示されたアクティブシートを選択する。印刷データＤ１に含まれる次の印刷処理選択コマンドは裏面選択コマンドであるため、アクティブシート選択部５は裏面印刷処理を選択し、印刷制御部６は展開バッファとして表面印刷展開バッファ領域１２が指定されているので、裏面印刷展開バッファ領域１３に切り替える（ステップＳ１６）。
【００３６】
データ解析部４は、次の印刷データＤ１を解析した結果、コマンド以外の印刷データであると解析すると（ステップＳ１３：Ｙｅｓ）、指定した裏面印刷展開バッファ領域１３へ印刷データを展開する。図３に示すように、ホストコンピュータ２０から送信された印刷データ[ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯ]を裏面印刷展開バッファ領域１３に展開する（ステップＳ１４）。裏面印刷展開バッファ領域１３がバッファフル状態である場合は、印刷制御部６はバッファフル状態を印刷契機として（ステップＳ１８：Ｙｅｓ）、表面印刷ヘッド９によってロール紙の表面３０１に印刷データ[ａｂｃｄｅｆｇｈ]を印刷するとともに、裏面印刷ヘッド１０によってロール紙の裏面３０２に印刷データ[ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯ]を印刷し、両面同時印刷処理を行う（ステップＳ１９）。
【００３７】
データ解析部４がカットコマンドを解析するまでデータ解析、展開処理を繰り返し実行する（ステップＳ２０：Ｎｏ）。データ解析部４は、続けて印刷データＤ１を解析した結果、コマンド以外の印刷データであると解析すると（ステップＳ１３：Ｙｅｓ）、対応する展開バッファ領域へ印刷データを展開する。このとき展開バッファ領域は、前回アクティブシート選択部５が選択した裏面印刷処理にしたがって、切り替えられることなく裏面印刷展開バッファ領域１３に指定されている。図３に示すように、ホストコンピュータ２０から送信された印刷データ[ＰＱＲＳＴＵＶＷＸＹＺ]を裏面印刷展開バッファ領域１３に展開する（ステップＳ１４）。裏面印刷展開バッファ領域１３がバッファフル状態でなく、改行コマンド＜ＬＦ＞を受信しない場合は、再びステップＳ１１に戻る（ステップＳ１８：Ｎｏ）。
【００３８】
続けて、データ解析部４が印刷データＤ１を解析した結果、印刷処理選択コマンドＣＡであると解析すると（ステップＳ１５：Ｙｅｓ）、アクティブシート選択部５へ入力する。アクティブシート選択部５は、印刷処理選択コマンドＣＡによって指示されたアクティブシートを選択する。印刷データＤ１に含まれる次の印刷処理選択コマンドＣＡは表面選択コマンドであるため、アクティブシート選択部５は表面印刷処理を選択する。
【００３９】
このとき印刷制御部６は、アクティブシート選択部５が選択した表面印刷処理にしたがって、展開バッファ領域を表面印刷展開バッファ領域１２に切り替える（ステップＳ１６）。図３に示すように、続けてホストコンピュータ２０から送信された印刷データ[ｉｊｋｌｍｎｏｐｑ]を表面印刷展開バッファ領域１２に展開する（ステップＳ１４）。表面印刷展開バッファ領域１２はバッファフル状態ではないが、印刷データ[ｉｊｋｌｍｎｏｐｑ]に続く改行コマンド＜ＬＦ＞を印刷契機として（ステップＳ１８：Ｙｅｓ）、表面印刷ヘッド９によってロール紙の表面３０１に印刷データ[ｉｊｋｌｍｎｏｐｑ]を印刷するとともに、裏面印刷ヘッド１０によってロール紙の裏面３０２に印刷データ[ＰＱＲＳＴＵＶＷＸＹＺ]を印刷し、両面同時印刷処理を行う（ステップＳ１９）。
【００４０】
データ解析部４がカットコマンドを解析するまでデータ解析、展開処理を繰り返し実行する（ステップＳ２０：Ｎｏ）。データ解析部４は、続けて印刷データＤ１を解析した結果、コマンド以外の印刷データであると解析すると、対応する展開領域へ印刷データを展開する。このとき展開バッファ領域は、前回アクティブシート選択部５が選択した表面印刷処理にしたがって、切り替えられることなく表面印刷展開バッファ領域１２に指定されている。図３に示すように、ホストコンピュータ２０から送信された印刷データ[ｒｓｔｕｖｗｘｙｚ]を表面印刷展開バッファ領域１２に展開する（ステップＳ１４）。表面印刷展開バッファ領域１２はバッファフル状態ではないが、印刷データ[ｒｓｔｕｖｗｘｙｚ]に続くカットコマンドを印刷契機として（ステップＳ１８：Ｙｅｓ）、表面印刷ヘッド９及び裏面印刷ヘッド１０を駆動させ両面同時に印刷処理を行う（ステップＳ１９）。なお、ここでは、裏面印刷展開バッファ領域１３には印刷データが展開されていないため、表面印刷ヘッド９によって表面３０１に対して印刷データ[ｒｓｔｕｖｗｘｙｚ]が印刷される。
【００４１】
データ解析部４が、印刷データＤ１の最後に含まれているカットコマンドを解析すると（ステップＳ２０：Ｙｅｓ）、印刷制御部６がカット部１１を駆動させてロール紙３０をカットする（ステップＳ２１）。
【００４２】
このように、アクティブシートを表面と裏面に切り替えながら両面印刷する場合を説明したが、印刷処理選択コマンドＣＡに対応する方の展開バッファ領域がバッファフル状態となると、バッファフル状態を印刷契機として両面印刷処理を実行する。つまり、表面選択コマンドによって表面印刷処理が選択された場合は、表面印刷展開バッファ領域１２がバッファフル状態になると、バッファフル状態を印刷契機として両面印刷処理を実行する。また、裏面選択コマンドによって裏面印刷処理が選択された場合は、裏面印刷展開バッファ領域１３がバッファフル状態になると、バッファフル状態を印刷契機として両面印刷処理を実行するよう設定されている。
【００４３】
したがって、本実施形態のように展開領域を１行毎に切り替えるよう構成すれば、ロール紙の表面３０１に印刷する１行分の印刷データを表面印刷展開バッファ領域１２に展開した後、展開バッファ領域を切り替え、裏面３０２に印刷する１行分の印刷データを裏面印刷展開バッファ領域１３に展開し、選択された裏面印刷展開バッファ領域１３がバッファフル状態になると、印刷処理を開始する。これにより、表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３にそれぞれ少なくとも１行分の印刷データを展開する容量を備えれば、バッファフル状態を印刷契機に１行毎の両面印刷処理を実行することができる。
【００４４】
（変形例：アクティブシートに表面及び裏面を選択して両面印刷する場合）
次に、表面及び裏面選択コマンドを印刷データに含めてプリンタ１へ送信したときに、プリンタ１が実行する両面印刷処理を図４及び図５を参照して説明する。図４は、本実施形態のプリンタが行う印刷処理の変形例を説明するためのフローチャートであり、図５は、本実施形態のプリンタが行う両面印刷処理の変形例におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
本実施形態では、上位アプリケーションで作成した印刷情報ｄ２を、ホストコンピュータ２０側でプリンタ１に対応した印刷データＤ２へ変換する。プリンタ１は、変換された印刷データＤ２に基づき印刷処理を実行する。
【００４５】
まず、データ受信部３がホストコンピュータ２０から印刷処理選択コマンドＣＡを含む印刷データＤ２を受信すると（ステップＳ３１）、データ解析部４は印刷データＤ２を解析する（ステップＳ３２）。データ解析部４が印刷データＤ２を解析した結果、印刷処理選択コマンドＣＡであると解析すると（ステップＳ３３：Ｎｏ）、アクティブシート選択部５へ入力する。アクティブシート選択部５は、印刷処理選択コマンドＣＡによって指示されたアクティブシートを選択する。ここでは、印刷データＤ２の最初には表面及び裏面選択コマンドが含まれているため、アクティブシート選択部５は両面印刷処理を選択する。このとき印刷制御部６は、アクティブシート選択部５が選択した両面印刷処理にしたがって、展開バッファ領域を表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３の両方に設定する。
【００４６】
一方データ解析部４は、印刷データＤ２を解析した結果、コマンド以外の印刷データであると解析すると（ステップＳ３３：Ｙｅｓ）、対応する展開領域へ印刷データを展開する。図５に示すように、ホストコンピュータ２０から送信された最初の印刷データ[ａｂｃｄｅｆｇｈ]を表面印刷展開バッファ領域１２に展開する（ステップＳ３４）。バッファフル状態とならず改行コマンド＜ＬＦ＞を受信しない場合は、印刷契機がないのでステップＳ２１に戻る（ステップＳ３６：Ｎｏ）。
【００４７】
続けて、データ解析部４が印刷データＤ２を解析した結果、次の１行分の印刷データを裏面印刷展開バッファ領域１３の先頭から展開するよう指示するコマンド＜裏面の先頭へ移動するコマンド＞であると解析すると（ステップＳ３３：Ｎｏ）、印刷制御部５は、展開バッファ領域を裏面印刷展開バッファ領域１３に指定する（ステップＳ３５）。そして、裏面印刷展開バッファ領域１３へ印刷データ[ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯ]を展開する（ステップＳ３４）。裏面印刷展開バッファ領域１３がバッファフル状態である場合は、印刷制御部６はバッファフル状態を印刷契機として（ステップＳ３６：Ｙｅｓ）、表面印刷ヘッド９によってロール紙の表面３０１に印刷データ[ａｂｃｄｅｆｇｈ]を印刷するとともに、裏面印刷ヘッド１０によってロール紙の裏面３０２に印刷データ[ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯ]を印刷し、両面同時印刷処理を行う（ステップＳ３７）。
【００４８】
データ解析部４がカットコマンドを解析するまでデータ解析、展開処理を繰り返し実行する（ステップＳ３８：Ｎｏ）。データ解析部４は、続けて印刷データＤ２を解析した結果（ステップＳ３２）、コマンド以外の印刷データであると解析すると（ステップＳ３３：Ｎｏ）、対応する展開バッファ領域へ印刷データを展開する。このとき印刷制御部６は、アクティブシート選択部５が選択した両面印刷処理にしたがって、展開バッファ領域を表面印刷展開バッファ領域１２に指定する。図５に示すように、次にホストコンピュータ２０から受信した印刷データ[ｉｊｋｌｍｎｏｐｑ]を表面印刷展開バッファ領域１２に展開する（ステップＳ３４）。印刷契機となる改行コマンド＜ＬＦ＞を受信しない場合は、印刷契機がないので再びステップＳ３２に戻る（ステップＳ３６：Ｎｏ）。
【００４９】
続けて、データ解析部４が印刷データＤ２を解析した結果、次の１行分の印刷データを裏面印刷展開バッファ領域１３の先頭から展開するよう指示するコマンド＜裏面の先頭へ移動するコマンド＞であると解析すると（ステップＳ３３：Ｎｏ）、印刷制御部５は、展開バッファ領域に指定されていた表面印刷展開バッファ領域１２を裏面印刷展開バッファ領域１３に切り替える（ステップＳ３５）。
次に受信した印刷データ[ＰＱＲＳＴＵＶＷＸＹＺ]を裏面印刷展開バッファ領域１３に展開する（ステップＳ３４）。印刷データ[ＰＱＲＳＴＵＶＷＸＹＺ]に続く改行コマンド＜ＬＦ＞を印刷契機として（ステップＳ３６：Ｙｅｓ）、表面印刷ヘッド９によってロール紙の表面３０１に印刷データ[ｉｊｋｌｍｎｏｐｑ]を印刷するとともに、裏面印刷ヘッド１０によってロール紙の裏面３０２に印刷データ[ＰＱＲＳＴＵＶＷＸＹＺ]を印刷し、両面同時印刷処理を行う（ステップＳ３７）。
【００５０】
さらに、データ解析部４がカットコマンドを解析するまでデータ解析、展開処理を繰り返し実行する（ステップＳ３８：Ｎｏ）。データ解析部４は、続けて印刷データＤ２を解析した結果（ステップＳ３２）、コマンド以外の印刷データであると解析すると（ステップＳ３３：Ｙｅｓ）、対応する展開バッファ領域へ印刷データを展開する。このとき印刷制御部６は、アクティブシート選択部５が選択した両面印刷処理にしたがって、展開バッファ領域を表面印刷展開バッファ領域１２に指定する。図５に示すように、ホストコンピュータ２０から送信された印刷データ[ｒｓｔｕｖｗｘｙｚ]を表面印刷展開バッファ領域１２に展開する（ステップＳ３４）。印刷データ[ｒｓｔｕｖｗｘｙｚ]に続くカットコマンドを印刷契機として（ステップＳ３６：Ｙｅｓ）、表面印刷ヘッド９によってロール紙の表面３０１に印刷データ[ｒｓｔｕｖｗｘｙｚ]を印刷する（ステップＳ３７）。なお、ここでは、裏面印刷展開バッファ領域１３には印刷データが展開されていないため、表面印刷ヘッド９によって表面３０１に対して印刷処理が行われる。
【００５１】
データ解析部４が、印刷データＤ２の最後に含まれているカットコマンドを解析すると（ステップＳ３８：Ｙｅｓ）、印刷制御部６がカット部１１を駆動させてロール紙３０をカットする（ステップＳ３９）。
【００５２】
このように変形例では、アクティブシートに表面及び裏面を選択して両面印刷する場合を説明したが、表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３を合わせた展開領域がバッファフル状態となると、バッファフル状態を印刷契機として両面印刷処理を実行する。つまり、表面印刷展開バッファ領域１２あるいは裏面印刷展開バッファ領域１３の何れかがバッファフル状態になっても両面印刷処理は実行されないよう設定されている。
【００５３】
したがって、展開領域を１行毎に切り替えるよう構成すれば、ロール紙の表面３０１に印刷する１行分に相当する印刷データを表面印刷展開バッファ領域１２に展開した後、展開領域を切り替え、裏面３０２に印刷する１行分の印刷データを裏面印刷展開バッファ領域１３に展開し、表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３を合わせた展開領域がバッファフル状態になると、印刷処理を開始する。これにより、表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３にそれぞれ少なくとも１行分の印刷データを展開する容量を備えれば、最大で２行分の印刷データを展開し、バッファフル状態を印刷契機に１行毎に両面印刷処理を実行することができる。
【００５４】
また、先に説明した本実施形態のプリンタ１によれば、表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３のうち、印刷処理選択コマンドＣＡごとに展開バッファ領域を切り替え、対応する展開バッファ領域に印刷データを展開する。印刷データを展開する展開領域を印刷処理選択コマンドＣＡによって切り替えることができる。したがって、まずロール紙３０の表面３０１に対する表面印刷処理が選択されると表面印刷展開バッファ領域１２に印刷データが展開され、次に裏面３０２に対する裏面印刷処理が選択されると展開領域を裏面印刷展開バッファ領域１３に切り替えて印刷データが展開される。再び表面３０１に対する表面印刷処理が選択されると展開領域を表面印刷展開バッファ領域１２に切り替えて印刷データが展開される。
【００５５】
さらに展開領域を１行毎に切り替えるよう設定されているので、表面３０１に印刷する１行分に相当する印刷データを表面印刷展開バッファ領域１２に展開した後、裏面３０２に印刷する印刷データを裏面印刷展開バッファ領域１３に展開するよう切り替えることができる。したがって、従来のように表面用バッファ及び裏面用バッファにそれぞれ全ての印刷データが展開されるのを待つ必要がなく、少なくとも表面印刷展開バッファ領域１２及び裏面印刷展開バッファ領域１３にそれぞれ１行分の印刷データが展開された時点で、両面印刷処理を開始することができる。これにより、印刷処理開始までのスループットを高めることができる。
【００５６】
また、展開領域のバッファフル状態を印刷契機とするほか改行コマンド＜ＬＦ＞を印刷契機とすることができる。したがって、印刷データの所望の位置に改行コマンドを含めることによって、展開領域のバッファフル状態を待たずに印刷処理を実行することができる。これにより、ユーザが意図する行数で改行した印刷結果を出力することも可能となる。
【００５７】
＜第２の実施形態＞
次に、本発明を実施するための好適な他の実施形態について、図面を参照して詳細に説明する。
【００５８】
図６は、本発明の一実施の形態に係るサーマルプリンタの概略構成を示すブロック図である。図６に示すように、本実施形態のプリンタ１００は、ホストコンピュータ２０から送信された印刷データを受信してロール紙のような連続紙（印刷対象物）に対して片面印刷または両面印刷を行うラインサーマルプリンタである。
【００５９】
本実施形態のプリンタ１００は、主として通信インターフェース２、データ受信部３、データ解析部４、アクティブシート選択部５、印刷制御部６、データ記憶部７及び印刷部８を備えている。データ受信部３は、ホストコンピュータ２０から送信される印刷データを受信してデータ解析部４へ入力する。データ解析部４は、受信した印刷データを解析して、印刷処理選択コマンドＣＡ（印刷処理選択指示）が含まれていれば、そのコマンドをアクティブシート選択部５へ入力する。また、印刷データを解析した結果、カットコマンドや改行コマンド等が含まれていれば、そのコマンドを印刷制御部６を介して印刷部８に入力する。
【００６０】
アクティブシート選択部５は、データ解析部４から印刷処理選択コマンドＣＡが入力されると、その指示に応じた印刷処理を選択する。具体的には、印刷処理選択コマンドＣＡによってアクティブシートにロール紙表面が指示されると表面印刷処理が選択される。また、アクティブシートにロール紙裏面が指示されると裏面印刷処理が選択される。また、アクティブシートにロール紙表面及び裏面が指示されると表裏同一印刷処理が選択される。ここで表裏同一印刷処理（両面同一印刷処理）とは、ロール紙３０の表面３０１（第１の面）及び裏面３０２（第２の面）に対して同一の印刷結果を印刷する処理である。
【００６１】
印刷制御部６は、印刷部８の動作を制御し、印刷処理選択コマンドＣＡによって指示されアクティブシート選択部５によって選択された印刷処理を実行する。具体的には、表裏同一印刷処理が選択されると、印刷展開バッファ領域１４（データ展開領域）に展開された展開データに基づきロール紙３０の表面及び裏面に対して両面同一印刷を同時に行う。また、表面印刷処理が選択されると、印刷展開バッファ領域１４に展開された展開データに基づきロール紙３０の表面に対して片面印刷処理を行う。さらに、裏面印刷処理が指示されると、印刷展開バッファ領域１４に展開された展開データに基づきロール紙３０の裏面に対して片面印刷処理を行う。
また、印刷制御部６は、印刷展開バッファ領域１４の展開容量がフル状態になると、フル状態を契機に印刷処理を開始するよう印刷部８を制御する。
【００６２】
データ記憶部７は、ＲＡＭ等の揮発性メモリである。印刷展開バッファ領域１４は、データ記憶部７の特定の領域であって印刷データが展開される領域である。データ解析部４によるデータ解析の結果、コマンド以外の印刷データであると解析されるとそのデータは印刷展開バッファ領域１４に展開される。
なお、本実施形態の印刷展開バッファ領域１４は、少なくとも表面あるいは裏面印刷処理（片面印刷処理）を実行するために必要な記憶容量（展開容量）を備えている。したがって、ラインサーマルプリンタの場合は、少なくとも１行分の記憶容量を備えている。また、連続して印刷処理を実行する場合は２行分以上の記憶容量を備える必要がある。
【００６３】
印刷部８は、印刷制御部６からの指示に応じてロール紙３０に対して片面印刷処理または両面印刷処理を行う。印刷部８は、ロール紙３０を挟む形で対向配置された２つの印刷ヘッドと、ロール紙３０をカットするカット部１１とを有する。印刷部８は、表面印刷ヘッド９はロール紙３０の表面３０１に印刷し、裏面印刷ヘッド１０はロール紙３０の裏面３０２に印刷する。印刷ヘッド９,１０にはラインサーマル式の印刷ヘッドが用いられ、印刷ヘッドの１ライン分の印刷を行うとロール紙３０を１ライン分に相当する搬送量だけ印刷紙送り方向X（図８参照）へ搬送する。１ライン分の印刷処理と搬送処理とを繰り返し、ロール紙３０の両面に同時に連続印刷処理を行う。また、片面印刷処理を実行する場合には、印刷ヘッド９,１０のいずれか一方を駆動させて片面印刷を実行する。なお、連続紙３０としては感熱紙が用いられる。連続紙３０は帯状の用紙を円筒状に巻回したものであり、印刷部８に装着して使用される。ロール紙３０に対する片面印刷または両面印刷が終了すると、印刷制御部６はカット部１１を制御してロール紙３０をカットする。
【００６４】
次に、本実施の形態のプリンタ１００の印刷処理を説明する。
本実施形態におけるアクティブシート選択部５は、ホストコンピュータ２０から印刷処理選択コマンドＣＡが送信されると、その指示に応じた印刷処理を選択する。以下では、アクティブシートとしてロール紙表面が指示された場合の表面印刷処理、アクティブシートとしてロール紙裏面が指示された場合の裏面印刷処理、アクティブシートとしてロール紙表面及び裏面が指示された場合の表裏同一印刷処理について説明する。
【００６５】
（表面印刷処理及び裏面印刷処理について）
図７は、本実施形態のプリンタが行う印刷処理を説明するためのフローチャートであり、図８は、表面あるいは裏面印刷処理におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
【００６６】
データ受信部３がホストコンピュータ２０から印刷処理選択コマンドＣＡを受信し、データ解析部４が印刷処理選択コマンドＣＡであると解析すると、アクティブシート選択部５へ入力する。アクティブシート選択部５は、印刷処理選択コマンドＣＡによって指示されたアクティブシートを選択する（ステップＳ４１）。ここで、アクティブシートにロール紙表面が選択されると印刷処理として表面印刷処理が選択され、ロール紙裏面が選択されると印刷処理として裏面印刷処理が選択され、ロール紙表面及び裏面が選択された場合は印刷処理として表裏面印刷処理が選択される。
【００６７】
次に、データ受信部３がホストコンピュータ２０から印刷データＤ３を受信すると（ステップＳ４２）、データ解析部４は印刷データＤ３を解析する（ステップＳ４３）。データ解析部４は、印刷データＤ３を解析した結果、コマンド以外の印刷データであると解析すると（ステップＳ４４：Ｙｅｓ）、印刷展開バッファ領域１４へ印刷データを展開する（ステップＳ４５）。図８に示すように、ホストコンピュータ２０から送信された印刷データ[ａｂｃｄｅｆ・・・・・ＡＢＣＤＥＦ・・・Ｚ]が印刷展開バッファ領域１４に展開される。そして、印刷展開バッファ領域１４がバッファフル状態になると、バッファフル状態を印刷契機として（ステップＳ４７：Ｙｅｓ）、印刷処理を開始する。このとき、印刷制御部６は、アクティブシート選択部５が選択したアクティブシートに基づき、印刷部８による印刷処理を制御する。ロール紙表面が選択されている場合は（ステップＳ４８：表面）、印刷部８の表面印刷ヘッド９を駆動させ表面印刷処理を実行する（ステップＳ４９）。印刷展開バッファ領域１４に展開された展開データ（図８では、[ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏ]）がロール紙表面３０１の１行目に印刷される。ロール紙裏面が選択されている場合は（ステップＳ４８：裏面）、印刷部８の裏面印刷ヘッド１０を駆動させ裏面印刷処理を実行する（ステップＳ５０）。印刷展開バッファ領域１４に展開された展開データ（図８では、[ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏ]）がロール紙裏面３０２の１行目に印刷される。
【００６８】
データ解析部４がカットコマンドを解析するまで上記展開処理を実行し（ステップＳ５２：Ｎｏ）、次の印刷契機があるまで印刷展開バッファ領域１４に印刷データを展開する（ステップＳ４７：Ｎｏ,ステップＳ４５）。図８に示すように、１行目[ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏ]に続き、２行目[ｐｑｒｓｔｕｖｗｘｙｚＡＢＣＤ]、３行目[ＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳ]までは、印刷展開バッファ領域１４のバッファフル状態を印刷契機として表面あるいは裏面印刷処理が行われる。印刷データＤ３には、４行目に相当する印刷データ[ＴＵＶＷＸＹＺ]の次に改行コマンド＜ＬＦ＞が含まれているため、データ解析部４が改行コマンドであると解析すると（ステップＳ４４：Ｎｏ）、印刷制御部６は改行コマンドに応じて印刷展開バッファ領域１４を１行分改行する（ステップＳ４６）。また、印刷制御部６は、改行コマンドを印刷契機として表面印刷ヘッド９（裏面印刷ヘッド１０）を駆動させ、４行目の印刷処理を行う（ステップＳ４７：Ｙｅｓ,ステップＳ４８：表面（裏面）,ステップＳ４９（ステップＳ２０））。
【００６９】
データ解析部４がカットコマンドを解析するまで再び展開処理を実行し（ステップＳ５２：Ｎｏ）、次の印刷契機があるまで印刷展開バッファ領域１４に印刷データを展開する（ステップＳ４７：Ｎｏ,ステップＳ４５）。
印刷データＤ３の最後には＜カットコマンド＞が含まれているため、データ解析部４がカットコマンドであると解析すると（ステップＳ４４：Ｎｏ）、印刷制御部６は、カットコマンドを印刷契機として印刷制御部６が表面印刷ヘッド９（裏面印刷ヘッド１０）を駆動させ、最終行の印刷処理を行う（ステップＳ４７：Ｙｅｓ,ステップＳ４８：表面（裏面）,ステップＳ４９（ステップＳ５０））。
【００７０】
印刷制御部６は、印刷処理が終了するとカットコマンドに応じてロール紙３０をカットする（ステップＳ５２：Ｙｅｓ,ステップＳ５３）。このようにして片面印刷処理されたロール紙片３０ａが得られる。
【００７１】
（表裏同一印刷処理について）
次に図７及び図９を参照して表裏同一印刷処理について説明する。図９は、表裏同一印刷処理におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
【００７２】
データ受信部３がホストコンピュータ２０から印刷処理選択コマンドＣＡを受信し、データ解析部４が印刷処理選択コマンドＣＡであると解析すると、アクティブシート選択部５へ入力する。アクティブシート選択部５は、印刷処理選択コマンドＣＡによって指示されたアクティブシートを選択する（ステップＳ４１）。ここで、表面及び裏面選択コマンドによってアクティブシートとしてロール紙表面及び裏面が選択されると印刷処理として表裏同一印刷処理が選択される。
【００７３】
次に、データ受信部３がホストコンピュータ２０から印刷データＤ４を受信すると（ステップＳ４２）、データ解析部４は印刷データＤ４を解析する（ステップＳ４３）。データ解析部４は、印刷データＤ４を解析した結果、コマンド以外の印刷データであると解析すると（ステップＳ４４：Ｙｅｓ）、印刷展開バッファ領域１４へ印刷データを展開する（ステップＳ４５）。図９に示すように、ホストコンピュータ２０から送信された印刷データ[ａｂｃｄｅｆ・・・・・ＡＢＣＤＥＦ・・・Ｚ]が印刷展開バッファ領域１４に展開される。そして、印刷展開バッファ領域１４がバッファフル状態になると、バッファフル状態を印刷契機として（ステップＳ４７：Ｙｅｓ）、印刷処理を開始する。このとき、印刷制御部６は、アクティブシート選択部５が選択したアクティブシートに基づき、印刷部８による印刷処理を制御する。ロール紙表面及び裏面が選択されているので（ステップＳ４８：表面及び裏面）、印刷部８の表面印刷ヘッド９及び裏面印刷ヘッド１０を駆動させ表裏同一印刷処理を実行する（ステップＳ５１）。印刷展開バッファ領域１４に展開された展開データ（図９では、[ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏ]）が表面印刷ヘッド９によってロール紙表面３０１の１行目に印刷されるとともに、印刷展開バッファ領域１４に展開された表面と同一の展開データ[ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏ]が裏面印刷ヘッド１０によってロール紙裏面３０２の１行目に印刷される。
【００７４】
データ解析部４がカットコマンドを解析するまで上記展開処理を実行し（ステップＳ５２：Ｎｏ）、次の印刷契機があるまで印刷展開バッファ領域１４に印刷データを展開する（ステップＳ４７：Ｎｏ,ステップＳ４５）。図９に示すように、１行目[ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏ]に続き、２行目[ｐｑｒｓｔｕｖｗｘｙｚＡＢＣＤ]、３行目[ＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳ]までは、印刷展開バッファ領域１４のバッファフル状態を印刷契機として表裏同一印刷処理が行われる。そして４行目に相当する印刷データ[ＴＵＶＷＸＹＺ]の次に改行コマンド＜ＬＦ＞が含まれているため、データ解析部４が改行コマンドであると解析すると（ステップＳ４４：Ｎｏ）、印刷制御部６は改行コマンドに応じて印刷展開バッファ領域１４を１行分改行する（ステップＳ４６）。また、印刷制御部６は、改行コマンドを印刷契機として表面印刷ヘッド９及び裏面印刷ヘッド１０を駆動させ、４行目の印刷処理を行う（ステップＳ４７：Ｙｅｓ,ステップＳ４８：表面及び裏面,ステップＳ５１）。
【００７５】
データ解析部４がカットコマンドを解析するまで再び展開処理を実行し（ステップＳ５２：Ｎｏ）、次の印刷契機があるまで印刷展開バッファ領域１４に印刷データを展開する（ステップＳ４７：Ｎｏ,ステップＳ４５）。
印刷データＤ４の最後には＜カットコマンド＞が含まれているため、データ解析部４がカットコマンドであると解析すると（ステップＳ４４：Ｎｏ）、印刷制御部６は、カットコマンドを印刷契機として印刷制御部６が表面印刷ヘッド９及び裏面印刷ヘッド１０を駆動させ、最終行の印刷処理を行う（ステップＳ４７：Ｙｅｓ,ステップＳ４８：表面及び裏面,ステップＳ５１）。
【００７６】
印刷制御部６は、印刷処理が終了するとカットコマンドに応じてロール紙３０をカットする（ステップＳ５２：Ｙｅｓ,ステップＳ５３）。このようにして両面同一印刷処理されたロール紙片３０ａが得られる。
【００７７】
このように、本実施形態のサーマルプリンタ１００によれば、印刷処理選択コマンドＣＡである表面選択コマンド、裏面選択コマンド及び表面及び裏面選択コマンドに応じて、ロール紙３０の表面に対する片面印刷処理、ロール紙３０の裏面に対する片面印刷処理、ロール紙３０の表面及び裏面に対する両面同一印刷処理の何れかを実行させることができる。したがって、片面印刷処理と両面同一印刷処理とを自在に切り換えて実行することができる。さらに、両面同一印刷処理が選択されると、印刷展開バッファ領域１４に展開された展開データに基づき、両面同一印刷を行う。そして、印刷展開バッファ領域１４の展開容量は、片面印刷処理を実行するために必要な展開容量である。つまり、片面印刷のみ実行するサーマルプリンタに比べてデータ記憶容量の容量を増やさずに、ロール紙の片面あるいは両面に印刷処理を実行することができる。
【００７８】
また、表裏面とも同一の印刷結果を出力したい場合は、従来のように表面用バッファ及び裏面用バッファのそれぞれに印刷データを展開することがなく、印刷展開バッファ領域１４に展開された展開データに基づき表面と裏面に同一の印刷結果を出力することができる。したがって、印刷展開バッファ領域１４を節約しつつ、印刷データの展開時間を短縮して印刷処理開始までのスループットを高めることができる。
【００７９】
さらに、両面同一印刷処理が指示されると、表面及び裏面に対して同時に両面同一印刷を行う。したがって、印刷展開バッファ領域１４を節約しながらも両面に対して同時に同一印刷を行うことができるので、少なくとも従来の印刷速度をそのまま維持することができる。また表面に対する印刷処理あるいは裏面に対する印刷処理が指示されると、印刷展開バッファ領域１４に展開された展開データに基づきそれぞれ表面あるいは裏面に対して片面印刷を行う。したがって、従来のように表面用バッファと裏面用バッファとを備えなくとも、印刷展開バッファ領域１４を表面印刷処理と裏面印刷処理とで兼用することができる。
【００８０】
また、本実施形態のサーマルプリンタ１００は、印刷展開バッファ領域１４のバッファフル状態を契機に印刷処理を開始する。また、上述した通り、印刷展開バッファ領域１４の展開容量は片面印刷処理を実行するために必要な展開容量である。このため少なくとも片面印刷処理と同間隔の印刷契機で印刷処理を実行する。したがって、少なくとも従来の片面印刷処理と同等の印刷速度を保持しながら、片面あるいは両面印刷処理を実行するサーマルプリンタを提供することができる。
【００８１】
なお、上記第１の実施形態及び第２の実施形態では、本発明に係るプリンタの一例としてサーマルプリンタを例示したが、これに限定されない。すなわち、本発明はインクジェット方式やドットインパクト方式のプリンタにも適用することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の第１の実施形態に係るサーマルプリンタの概略構成を示すブロック図である。
【図２】第１の実施形態のプリンタが行う印刷処理を説明するためのフローチャートである。
【図３】第１の実施形態のプリンタが行う両面印刷処理におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
【図４】第１の実施形態のプリンタが行う印刷処理の変形例を説明するためのフローチャートである。
【図５】第１の実施形態のプリンタが行う両面印刷処理の変形例におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
【図６】本発明の第２の実施形態に係るサーマルプリンタの概略構成を示すブロック図である。
【図７】第２の実施形態のサーマルプリンタが行う印刷処理を説明するためのフローチャートである。
【図８】第２の実施形態のサーマルプリンタが行う表面あるいは裏面印刷処理におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
【図９】第２の実施形態のサーマルプリンタが行う表裏同一印刷処理におけるデータ展開処理及び印刷処理の経過状態を模式的に示した図である。
【符号の説明】
【００８３】
１，１００：サーマルプリンタ、２：通信インターフェース、３：データ受信部、４：データ解析部、５：アクティブシート選択部、６：印刷制御部、７：データ記憶部、８：印刷部、９：表面印刷ヘッド、１０：裏面印刷ヘッド、１１：カット部、１２：表面印刷展開バッファ領域、１３：裏面印刷展開バッファ領域、１４：印刷展開バッファ領域（データ展開領域）、３０：ロール紙、３０１：ロール紙表面、３０２：ロール紙裏面、Ｄ１，Ｄ２，Ｄ３，Ｄ４：印刷データ
【図１】
0005678404.tif 000002
【図２】
0005678404.tif 000003
【図３】
0005678404.tif 000004
【図４】
0005678404.tif 000005
【図５】
0005678404.tif 000006
【図６】
0005678404.tif 000007
【図７】
0005678404.tif 000008
【図８】
0005678404.tif 000009
【図９】
0005678404.tif 000010