(57)【特許請求の範囲】
【請求項１】
印刷位置の下流側に所定の離間距離を隔てて用紙カット位置が設けられ、１レシート単位の印刷データの印刷終了後、次のレシートの前記離間距離に相当するトップマージンにおける印刷を行い、用紙カットを行うレシートプリンターであって、
前記次のレシートのトップマージンにおける印刷を行うための前印刷用データを記憶する前印刷用データ記憶部と、
上位装置から、前記印刷データを取得する印刷データ取得部と、
取得した前記印刷データの前記トップマージン分のデータであるヘッダーデータと、前記前印刷用データと、が同一であるか否かを判別するヘッダー判別部と、
前記ヘッダー判別部の判別結果に応じて、印刷部および用紙カット部の制御を行う印刷制御部と、
前記ヘッダー判別部の判別結果が「非同一」であった場合、前記印刷制御部の制御による印刷開始前に、前記前印刷用データを、取得した前記印刷データの前記ヘッダーデータに書き換えるデータ書き換え部と、を備え、
前記印刷制御部は、
前記ヘッダー判別部の判別結果が「同一」であった場合、前記印刷部に、取得した前記印刷データから前記ヘッダーデータを除いた残データを印刷させた後に前記前印刷用データを印刷させて、前記用紙カット部に、用紙カットを行わせ、
前記ヘッダー判別部の判別結果が「非同一」であった場合、前記印刷部に、取得した前記印刷データを印刷させた後に前記前印刷用データを印刷させて、前記用紙カット部に、用紙カットを行わせるよう制御することを特徴とするレシートプリンター。
【請求項２】
前記ヘッダー判別部の判別結果が連続して「非同一」であった回数をカウントするカウント部をさらに備え、
前記データ書き換え部は、前記カウント部のカウント数が所定回数以上となった場合に、前記前印刷用データを書き換えることを特徴とする請求項１に記載のレシートプリンター。
【請求項３】
前記印刷制御部は、前記判別結果が「非同一」であった場合、取得した前記印刷データの印刷において、前記印刷部に、前記ヘッダーデータを印刷させた後、前記用紙カット部に、用紙カットを行わせ、前記印刷部に、前記印刷データから前記ヘッダーデータを除いた残データを印刷させるよう制御することを特徴とする請求項１に記載のレシートプリンター。
【請求項４】
取得した前記印刷データにおける前記ヘッダーデータに、レシート幅方向に伸びる少なくとも１ドット幅の空白ラインが含まれる場合、前記ヘッダー判別部による判別の前に、当該印刷データを編集する印刷データ編集部をさらに備え、
前記印刷データ編集部は、取得した前記印刷データの編集処理として、当該印刷データにおける前記ヘッダーデータを、当該ヘッダーデータの先端から前記空白ラインの下端までの第１ヘッダーデータと、前記空白ラインの下端から当該ヘッダーデータの下端までの第２ヘッダーデータと、に分割すると共に、当該印刷データにおいて前記第１ヘッダーデータの先端に前記第２ヘッダーデータの長さに相当する空白データを付加し、
前記データ書き換え部は、前記前印刷用データを、前記空白データが付加された前記第１ヘッダーデータに書き換えることを特徴とする請求項１ないし３のいずれか１項に記載のレシートプリンター。
【請求項５】
前記ヘッダー判別部の判別結果が「非同一」であった場合であって、前記ヘッダーデータおよび前記前印刷用データの先端部が一致する場合、一致部分を共通データとして記憶する共通データ記憶部と、
前記ヘッダーデータにおける前記一致部分の先端に、前記一致部分以外の残データの長さに相当する空白データを付加した変換済みヘッダーデータを生成するデータ生成部と、をさらに備え、
前記データ書き換え部は、前記前印刷用データを、前記変換済みヘッダーデータに書き換え、
前記ヘッダー判別部は、前記判別の前に、前記共通データ記憶部にデータが記憶されているか否かを判断し、前記共通データ記憶部にデータが記憶されている場合、取得した前記印刷データの前記ヘッダーデータに前記共通データが含まれているか否かを判別し、
前記印刷制御部は、前記ヘッダー判別部により、取得した前記印刷データの前記ヘッダーデータに前記共通データが含まれていると判別された場合、前記印刷部に、前記印刷データから前記共通データを除いた残データを印刷させた後に前記前印刷用データを印刷させて、前記用紙カット部に、用紙カットを行わせるよう制御することを特徴とする請求項１ないし３のいずれか１項に記載のレシートプリンター。
【請求項６】
前記印刷制御部は、用紙交換処理、用紙送り処理および電源ＯＮ処理のいずれかが実行された直後の印刷において、前記ヘッダー判別部の判別結果にかかわらず、前記印刷部に、取得した前記印刷データの印刷を行わせた後に前記前印刷用データを印刷させて、前記用紙カット部に、用紙カットを行わせるよう制御することを特徴とする請求項１に記載のレシートプリンター。
【請求項７】
用紙カットの前に前記前印刷用データの印刷を実行する前印刷モードと、用紙カットの前に前記前印刷用データの印刷を実行しない前印刷休止モードと、の間でモードを切り替えるモード切替部をさらに備え、
前記印刷制御部は、前記前印刷モード時のみ機能することを特徴とする請求項１に記載のレシートプリンター。
【請求項８】
印刷位置の下流側に所定の離間距離を隔てて用紙カット位置が設けられ、１レシート単位の印刷データの印刷終了後、次のレシートの前記離間距離に相当するトップマージンにおける印刷を行い、用紙カットを行うレシートプリンターの制御方法であって、
前記レシートプリンターが、
前記次のレシートのトップマージンにおける印刷を行うための前印刷用データを記憶する前印刷用データ記憶ステップと、
上位装置から、前記印刷データを取得する印刷データ取得ステップと、
取得した前記印刷データの前記トップマージン分のデータであるヘッダーデータと、前記前印刷用データと、が同一であるか否かを判別するヘッダー判別ステップと、
前記ヘッダー判別ステップの判別結果に応じて、印刷部および用紙カット部の制御を行う印刷制御ステップと、
前記ヘッダー判別ステップの判別結果が「非同一」であった場合、前記印刷制御ステップの制御による印刷開始前に、前記前印刷用データを、取得した前記印刷データの前記ヘッダーデータに書き換えるデータ書き換えステップと、を備え、
前記印刷制御ステップにおいて、前記レシートプリンターは、
前記ヘッダー判別ステップの判別結果が「同一」であった場合、前記印刷部により、取得した前記印刷データから前記ヘッダーデータを除いた残データを印刷した後に前記前印刷用データを印刷して、前記用紙カット部により、用紙カットを行い、
前記ヘッダー判別ステップの判別結果が「非同一」であった場合、前記印刷部により、取得した前記印刷データを印刷した後に前記前印刷用データを印刷して、前記用紙カット部により、用紙カットを行うことを特徴とするレシートプリンターの制御方法。
【請求項９】
前記ヘッダー判別ステップの判別結果が連続して「非同一」であった回数をカウントするカウントステップをさらに備え、
前記データ書き換えステップは、前記カウントステップのカウント数が所定回数以上となった場合に、前記前印刷用データを書き換えることを特徴とする請求項８に記載のレシートプリンターの制御方法。
【請求項１０】
前記印刷制御ステップは、前記判別結果が「非同一」であった場合、取得した前記印刷データの印刷において、前記印刷部に、前記ヘッダーデータを印刷させた後、前記用紙カット部に、用紙カットを行わせ、前記印刷部に、前記印刷データから前記ヘッダーデータを除いた残データを印刷させるよう制御することを特徴とする請求項８に記載のレシートプリンターの制御方法。
【請求項１１】
コンピューターに請求項８ないし１０のいずれか１項に記載のレシートプリンターの制御方法における各ステップを実行させるためのプログラムを記録したコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷位置の下流側に用紙カット位置が設けられ、１レシート単位の印刷データの印刷終了後、次のレシートの一部となる所定の印刷を行い、用紙カットを行うレシートプリンター、レシートプリンターの制御方法および記録媒体に関するものである。
【背景技術】
【０００２】
従来、印刷ヘッドと、印刷ヘッドの下流側にカッターマージンを隔てて設けられたカッターと、を備え、受信した印刷データの印刷後、カットコマンドの受信をトリガとして予め記憶している所定のロゴデータを印刷し、その後、用紙のカットを行うレシート印刷装置が知られている（特許文献１参照）。このように、カッターマージンを有する印刷装置では、次の印刷に備えて用紙カットの前にカッターマージンに相当する長さの印刷を行うことにより、次の印刷結果の先端部分にカッターマージンに相当する長さの余白領域（トップマージン）が発生するのを防ぐことができる。なお、当該レシート印刷装置は、予めトップロゴデータを上位装置から受信し、記憶しておく。このトップロゴデータの送信は、トップロゴデータの印刷内容を更新する場合や、レシート印刷装置の記憶が失われた場合にのみ実行され、通常のレシート印刷においては、トップロゴデータを除いたデータのみ送信される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−０４７８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、レシートプリンターは、例えば、領収書、クレジット決済控え書、クーポンなど必要に応じてレシート以外の印刷を行う場合がある。これらのイレギュラーな印刷は、ヘッダー（トップロゴ）の内容がレシートと異なったり、ヘッダー自体が無いこともある。しかし、上記の構成では、ヘッダーの有無やヘッダーの内容を変更したい場合、印刷を実行する前に、予め記憶されているヘッダー印刷用の印刷データの書き換え処理を行わなければならない。また、ヘッダー印刷用の印刷データを受信した場合は、必ず印刷データを書き換えるため、同一のヘッダー印刷用の印刷データを受信した場合は、不要な書き換え処理を行ってしまう。
【０００５】
本発明は、上記の点に鑑み、ヘッダーの有無や内容が変化しても、連続してトップマージンを発生させずに印刷可能なレシートプリンター、レシートプリンターの制御方法および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のレシートプリンターは、印刷位置の下流側に所定の離間距離を隔てて用紙カット位置が設けられ、１レシート単位の印刷データの印刷終了後、次のレシートの離間距離に相当するトップマージンにおける印刷を行い、用紙カットを行うレシートプリンターであって、次のレシートのトップマージンにおける印刷を行うための前印刷用データを記憶する前印刷用データ記憶部と、上位装置から、印刷データを取得する印刷データ取得部と、取得した印刷データのトップマージン分のデータであるヘッダーデータと、前印刷用データと、が同一であるか否かを判別するヘッダー判別部と、ヘッダー判別部の判別結果に応じて、印刷部および用紙カット部の制御を行う印刷制御部と、ヘッダー判別部の判別結果が「非同一」であった場合、印刷制御部の制御による印刷開始前に、前印刷用データを、取得した印刷データのヘッダーデータに書き換えるデータ書き換え部と、を備え、印刷制御部は、ヘッダー判別部の判別結果が「同一」であった場合、印刷部に、取得した印刷データからヘッダーデータを除いた残データを印刷させた後に前印刷用データを印刷させて、用紙カット部に、用紙カットを行わせ、ヘッダー判別部の判別結果が「非同一」であった場合、印刷部に、取得した印刷データを印刷させた後に前印刷用データを印刷させて、用紙カット部に、用紙カットを行わせるよう制御することを特徴とする。
【０００７】
本発明のレシートプリンターの制御方法は、印刷位置の下流側に所定の離間距離を隔てて用紙カット位置が設けられ、１レシート単位の印刷データの印刷終了後、次のレシートの離間距離に相当するトップマージンにおける印刷を行い、用紙カットを行うレシートプリンターの制御方法であって、レシートプリンターが、次のレシートのトップマージンにおける印刷を行うための前印刷用データを記憶する前印刷用データ記憶ステップと、上位装置から、印刷データを取得する印刷データ取得ステップと、取得した印刷データのトップマージン分のデータであるヘッダーデータと、前印刷用データと、が同一であるか否かを判別するヘッダー判別ステップと、ヘッダー判別ステップの判別結果に応じて、印刷部および用紙カット部の制御を行う印刷制御ステップと、ヘッダー判別ステップの判別結果が「非同一」であった場合、印刷制御ステップの制御による印刷開始前に、前印刷用データを、取得した印刷データのヘッダーデータに書き換えるデータ書き換えステップと、を備え、印刷制御ステップにおいて、レシートプリンターは、ヘッダー判別ステップの判別結果が「同一」であった場合、印刷部により、取得した印刷データからヘッダーデータを除いた残データを印刷した後に前印刷用データを印刷して、用紙カット部により、用紙カットを行い、ヘッダー判別ステップの判別結果が「非同一」であった場合、印刷部により、取得した印刷データを印刷した後に前印刷用データを印刷して、用紙カット部により、用紙カットを行うことを特徴とする。
【０００８】
本発明の記録媒体は、コンピューターに上記のレシートプリンターの制御方法における各ステップを実行させるためのプログラムをコンピューター読み取り可能に記録したことを特徴とする。
【０００９】
これらの構成によれば、受信した印刷データに含まれるヘッダーデータと、予め記憶している前印刷用データと、を比較し、「非同一」であった場合にのみ、印刷データに含まれるヘッダーデータを印刷するため、ヘッダーの印刷内容が変更された場合であっても、個別に前印刷用データを送信して書き換えを行うことなく、所望のレシート印刷を行うことができる。よって、ヘッダーの有無や内容が変化しても、連続してトップマージンを発生させずに所望のレシートを印刷することができる。また、用紙カット前には、予め記憶されている前印刷用データが印刷されるため、当該印刷のみヘッダーの印刷内容が異なっているイレギュラーな印刷であった場合、ヘッダーデータを元のデータに書き換える処理を省略できる。
また、個別に前印刷用データを送信して書き換えを行うことなく、印刷データの送信によって、当該印刷におけるヘッダーの印刷内容を変更させると共に、次回以降のヘッダーの印刷内容も変更させることができる。
【００１２】
この場合、ヘッダー判別部の判別結果が連続して「非同一」であった回数をカウントするカウント部をさらに備え、データ書き換え部は、カウント部のカウント数が所定回数以上となった場合に、前印刷用データを書き換えることが好ましい。
【００１３】
この構成によれば、例えば、１度だけヘッダーの印刷内容が異なっているイレギュラーな印刷であった場合などに、次回以降のヘッダーの印刷データである前印刷用データが書き換えられないため、利便性が良い。
なお、「所定回数」の数を設定する設定部をさらに備えることが好ましい。
【００１４】
上記のレシートプリンターにおいて、印刷制御部は、判別結果が「非同一」であった場合、取得した印刷データの印刷において、印刷部に、ヘッダーデータを印刷させた後、用紙カット部に、用紙カットを行わせ、印刷部に、印刷データからヘッダーデータを除いた残データを印刷させるよう制御することが好ましい。
【００１５】
この構成によれば、前印刷された不要部分を自動で切り取ることができる。
【００１６】
上記のレシートプリンターにおいて、取得した印刷データにおけるヘッダーデータに、レシート幅方向に伸びる少なくとも１ドット幅の空白ラインが含まれる場合、ヘッダー判別部による判別の前に、当該印刷データを編集する印刷データ編集部をさらに備え、印刷データ編集部は、取得した印刷データの編集処理として、当該印刷データにおけるヘッダーデータを、当該ヘッダーデータの先端から空白ラインの下端までの第１ヘッダーデータと、空白ラインの下端から当該ヘッダーデータの下端までの第２ヘッダーデータと、に分割すると共に、当該印刷データにおいて第１ヘッダーデータの先端に第２ヘッダーデータの長さに相当する空白データを付加し、データ書き換え部は、前印刷用データを、空白データが付加された第１ヘッダーデータに書き換えることが好ましい。
【００１７】
この構成によれば、レシートに印刷される定型部分（第１ヘッダーデータに相当する）がトップマージンよりも短い場合、空白データが先端に付加された第１ヘッダーデータが前印刷されるため、前印刷終了後、定型部分の下端が印刷位置に一致する。これにより、次回の印刷が定型部分と定型部分以外の印刷部分との境界から開始されるため、定型部分以外の印刷部分内に用紙送りのピッチズレなどによる印字線の発生を防ぐことができる。
【００１９】
この場合、ヘッダー判別部の判別結果が「非同一」であった場合であって、ヘッダーデータおよび前印刷用データの先端部が一致する場合、一致部分を共通データとして記憶する共通データ記憶部と、ヘッダーデータにおける一致部分の先端に、一致部分以外の残データの長さに相当する空白データを付加した変換済みヘッダーデータを生成するデータ生成部と、をさらに備え、データ書き換え部は、前印刷用データを、変換済みヘッダーデータに書き換え、ヘッダー判別部は、上記判別の前に、共通データ記憶部にデータが記憶されているか否かを判断し、共通データ記憶部にデータが記憶されている場合、取得した印刷データのヘッダーデータに共通データが含まれているか否かを判別し、印刷制御部は、ヘッダー判別部により、取得した印刷データのヘッダーデータに共通データが含まれていると判別された場合、印刷部に、印刷データから共通データを除いた残データを印刷させた後に前印刷用データを印刷させて、用紙カット部に、用紙カットを行わせるよう制御することが好ましい。
【００２０】
この構成によれば、ヘッダーデータおよび前印刷用データの一致部分のみを前印刷するため、次回の印刷においてヘッダーデータおよび前印刷用データがすべて一致しなくても、前印刷した印刷結果を次回の印刷に利用することができる。なお、一致部分（同一データ）は、ヘッダーデータおよび前印刷用データの上端部分であって、一致部分の先端に、ヘッダーデータから同一データを除いた不一致部分の長さに相当する空白データを付加することが好ましい。これによれば、前印刷されるヘッダーデータの一致部分と、次の印刷において印刷される不一致部分との間に、空白が発生するのを防ぐことができる。
【００２１】
上記のレシートプリンターにおいて、印刷制御部は、用紙交換処理、用紙送り処理および電源ＯＮ処理のいずれかが実行された直後の印刷において、ヘッダー判別部の判別結果にかかわらず、印刷部に、取得した印刷データの印刷を行わせた後に前印刷用データを印刷させて、用紙カット部に、用紙カットを行わせるよう制御することが好ましい。
【００２２】
この構成によれば、前印刷したヘッダー部分の用紙が失われたり、ヘッダー部分の後端が紙送りされて印刷位置よりも下流に位置していたりする場合に、取得した印刷データに含まれるヘッダーデータを印刷することで、適切なレシートを印刷することができる。
【００２３】
上記のレシートプリンターにおいて、用紙カットの前に前印刷用データの印刷を実行する前印刷モードと、用紙カットの前に前印刷用データの印刷を実行しない前印刷休止モードと、の間でモードを切り替えるモード切替部をさらに備え、印刷制御部は、前印刷モード時のみ機能することが好ましい。
【００２４】
この構成によれば、ユーザーの要望に応じて前印刷の有無を選択できる。例えば、ヘッダーを有しない印刷を連続して行う場合は、前印刷休止モードを選択できるため、不要な前印刷による用紙の消費を抑えることができる。なお、モードの切替えは、レシートプリンターの所定の操作によって行われてもよいし、上位装置からの制御コマンドに基づいて行われてもよいし、プリンタドライバの設定を変更させることによって行われても良い。
上記のレシートプリンターの制御方法において、ヘッダー判別ステップの判別結果が連続して「非同一」であった回数をカウントするカウントステップをさらに備え、データ書き換えステップは、カウントステップのカウント数が所定回数以上となった場合に、前印刷用データを書き換えることが好ましい。
上記のレシートプリンターの制御方法において、印刷制御ステップは、判別結果が「非同一」であった場合、取得した印刷データの印刷において、印刷部に、ヘッダーデータを印刷させた後、用紙カット部に、用紙カットを行わせ、印刷部に、印刷データからヘッダーデータを除いた残データを印刷させるよう制御することが好ましい。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係るレシートプリンターの主要部の模式断面図である。
【図２】レシートプリンターの制御構成を示したブロック図である。
【図３】レシートプリンターの機能構成を示したブロック図である。
【図４】ホスト装置から取得する印刷データのパターンを示した図である。
【図５】前印刷休止モードにおけるレシートプリンターの印刷処理を示したフローチャートである。
【図６】前印刷休止モードにおける印刷例を示した図である。
【図７】レシートプリンターの印刷処理を示したフローチャートである。
【図８】前印刷用データとヘッダーデータとが「同一」である場合の印刷例を示した図である。
【図９】前印刷用データとヘッダーデータとが「非同一」である場合の印刷例を示した図である。
【図１０】特定のイベント後における印刷処理を示したフローチャートである。
【図１１】特定のイベント後における印刷例を示した図である。
【図１２】ヘッダーデータに空白ラインが含まれている場合の印刷処理を示したフローチャートである。
【図１３】ヘッダーデータに空白ラインが含まれている場合の印刷データの編集について示した図である。
【図１４】ヘッダーデータに空白ラインが含まれている場合の印刷例を示した図である。
【図１５】前印刷用データおよびヘッダーデータに共通データが含まれている場合の印刷処理を示したフローチャートである。
【図１６】前印刷用データの生成について示した図である。
【図１７】前印刷用データおよびヘッダーデータに共通データが含まれている場合の印刷例を示した図である。
【図１８】共通データが記憶されている場合の印刷処理を示したフローチャートである。
【図１９】共通データが記憶されている場合の印刷例を示した図である。
【発明を実施するための形態】
【００２６】
以下、添付の図面を参照し、本発明の一実施形態に係るレシートプリンターおよびレシートプリンターの制御方法について説明する。なお、本発明のレシートプリンターは、ホスト装置（上位装置）に接続されて用いられ、ホスト装置から取得した印刷データに基づいて、連続紙（用紙）に対して印刷および用紙カットを行ってレシートを発行する。
【００２７】
図１は、レシートプリンター１の主要部の模式断面図である。図示のように、レシートプリンター１は、ケース１１の内側に不図示の用紙収容部から排出口１２に向かう用紙１３の搬送経路１４を有し、搬送経路１４に沿って下流側から、可動カッター１５および固定カッター１６から成る用紙カット機構と、印刷ヘッド１７と、を備えている。用紙カット機構は、カッターモーター２２（図２参照）に接続された可動カッター１５と、可動カッター１５に用紙１３を介して対面した固定カッター１６と、で構成されている。用紙カット機構は、カッターモーター２２の駆動によって可動カッター１５を下降させ、用紙カット位置Ｐ１において用紙をカットする。印刷ヘッド１７は、いわゆるサーマルヘッドであり、感熱性を有する用紙１３に対して印刷位置Ｐ２にて印刷を行う。そして、印刷ヘッド１７に用紙１３を介して対面した位置にプラテン１８が配設され、プラテン１８は、印刷時に用紙１３を印刷ヘッド１７に押圧する。なお、用紙カット位置Ｐ１から印刷位置Ｐ２までの距離をＬ１とする。
【００２８】
レシートプリンター１は、不図示の用紙搬送機構により用紙１３を搬送経路１４上で搬送しながら、印刷ヘッド１７により印刷を行う。上記のように、本レシートプリンター１は、用紙カット位置Ｐ１が印刷位置Ｐ２に対してＬ１分の距離を隔てて下流側に位置しているため、用紙１３の先端が用紙カット位置Ｐ１にある状態で印刷を開始すると、印刷結果であるレシートにはＬ１に相当する余白領域（トップマージン）が発生する。本発明のレシートプリンター１は、このトップマージンの発生を防ぐべく、印刷の終了後、次のレシート印刷に備えてＬ１分の前印刷を行ってから用紙をカットする。
【００２９】
図２は、レシートプリンター１の制御構成を示したブロック図である。図示のように、レシートプリンター１は、用紙搬送モーター２１、カッターモーター２２、印刷ヘッド１７、操作部２３、ＣＰＵ２４（Central  Processing  Unit）、ＲＯＭ２５（Read  Only  Memory）、ＲＡＭ２６（Random  Access  Memory）、フラッシュＲＯＭ２７、およびＩ／Ｆ２８を有している。
【００３０】
用紙搬送モーター２１は、用紙搬送機構を構成する不図示の複数のローラーを回転させ、用紙１３を搬送経路１４上で搬送する。カッターモーター２２は、上記の可動カッター１５を降下させ用紙１３をカットする。操作部２３は、ケース１１に配設された複数の操作子により構成され、レシートプリンター１の電源オン／オフや各種操作を行うために用いられる。本実施形態では、特に、前印刷を実行する「通常モード」と、前印刷を実行しない「前印刷休止モード」と、の間でモードを切り替えるために用いられる。ＣＰＵ２４は、各種データの演算処理を行うことによって、レシートプリンター１全体を統括制御する。ＲＯＭ２５は、ＣＰＵ２４が各種処理を実行するための制御プログラムや制御データを格納している。ＲＡＭ２６は、ＣＰＵ２４が各種処理を行う際のワークエリアとして用いられる。フラッシュＲＯＭ２７は、上記の前印刷を行うための前印刷用データＰＤや後述の共通データを記憶するための各記憶領域を有している。Ｉ／Ｆ２８は、ホスト装置２から印刷データを受信するために用いられる。
【００３１】
図３は、レシートプリンター１の機能構成を示したブロック図である。図示のように、レシートプリンター１は、印刷データ取得部３１、印刷データ解析部３２、前印刷用データ記憶部３３、共通データ記憶部３４、印刷データ編集部３５、ヘッダー判別部３６、カウント部３７、データ生成部３８、データ書き換え部３９、モード切替部４０、印刷制御部４１、印刷部４３、および用紙カット部４４を備えている。
【００３２】
印刷データ取得部３１は、主にＩ／Ｆ２８により構成され、ホスト装置２からレシートを印刷するための印刷データを取得する。印刷データ解析部３２は、取得した印刷データを解析し、ヘッダーデータＨＤを抽出する。
【００３３】
図４は、ホスト装置２から取得した印刷データの代表的な例を示したものである。図示のように、印刷データには、トップ余白５１、ヘッダーロゴ５２、空白ライン５３、本文データ５４、ボトム余白５５およびカットコマンドが含まれている。トップ余白５１は、用紙の先端（被カット位置）から実質印刷部分の先端までに設けられる余白部分である。なお、トップ余白５１は、空白データでも良いし、所定の距離分紙送りを行う旨のコマンドで実現しても良い。ヘッダーロゴ５２は、レシートに印刷されるいわゆる定型部分であり、店舗情報などが含まれている。空白ライン５３は、定型部分であるヘッダーロゴ５２と本文データ５４との境界を示すためのものである。本文データ５４は、都度変更されるデータであり、清算情報などが含まれる。ボトム余白５５は、本文データの下端から用紙の後端（非カット位置）までに設けられる余白部分である。なお、ボトム余白５５は、空白データでも良いし、所定の距離分紙送りを行う旨のコマンドで実現しても良い。カットコマンドは、用紙をカットする旨のコマンドである。印刷データ解析部３２は、取得した印刷データの先端からＬ１分の長さのデータをヘッダーデータＨＤとして抽出する。
【００３４】
図４（ａ）に示す印刷データは、トップ余白５１の先端から空白ライン５３の下端までの長さがＬ１となるため、トップ余白５１、ヘッダーロゴ５２および空白ライン５３を合わせたデータがヘッダーデータＨＤとなる。同図（ｂ）に示す印刷データは、トップ余白５１の先端から本文データ５４の途中までの長さがＬ１となるため、トップ余白５１、ヘッダーロゴ５２、空白ライン５３および本文データ５４の一部を合わせたデータがヘッダーデータＨＤとなる。同図（ｃ）に示す印刷データは、トップ余白５１の先端からヘッダーロゴ５２の途中までの長さがＬ１となるため、トップ余白５１およびヘッダーロゴ５２の一部を合わせたデータの長さがＬ１となる。同図（ｄ）に示す印刷データは、トップ余白５１の先端から本文データ５４の途中までの長さがＬ１となるため、トップ余白５１および本文データ５４の一部を合わせたデータがヘッダーデータＨＤとなる。なお、本印刷データには、ヘッダーロゴ５２および空白ライン５３が含まれておらず、例えば、売上報告やクーポンなどのヘッダーのない印刷物の印刷データである。このように、レシートプリンター１は、ホスト装置２から複数種類の印刷データを取得する。
【００３５】
印刷データ解析部３２は、上記のようにヘッダーデータＨＤを抽出し、抽出したヘッダーデータＨＤ内に空白ライン５３が含まれているか否かを解析する。なお、空白ライン５３の下端がヘッダーデータＨＤの下端に一致している場合を除く。また、印刷データ解析部３２は、複数の印刷データをホスト装置２から取得した場合、印刷データに含まれるカットコマンド以前のデータを１レシート単位の印刷データとして、１レシート単位の印刷データごとに上記の解析を行う。
【００３６】
図３に戻り、前印刷用データ記憶部３３は、フラッシュＲＯＭ２７内の記憶領域であり、上記した前印刷を行うための前印刷用データＰＤを、不揮発且つ書き換え可能に記憶する。なお、前印刷用データＰＤは、レシートのトップマージンに印刷するＬ１分の長さのデータである。
【００３７】
ヘッダー判別部３６は、印刷データ解析部３２により抽出されたヘッダーデータＨＤが、前印刷用データ記憶部３３に記憶されている前印刷用データＰＤと「同一」であるか否かを判別する。また、「非同一」と判定した場合、ヘッダーデータＨＤおよび前印刷用データＰＤが、各データの先端から連続するデータが一致するか否かを判別する。すなわち、各データの上端部が同一のデータであるか否かを判別する。カウント部３７は、ヘッダー判別部３６が連続して「非同一」且つ「各データの上端部は一致しない」と判別した回数をカウントして記憶する。
【００３８】
データ書き換え部３９は、前印刷用データ記憶部３３に記憶されているデータを必要に応じて書き換える。本実施形態では、カウント部３７のカウント数ｎが所定数Ｎ以上となった場合に、前印刷用データＰＤをヘッダーデータＨＤに書き換える。また、後述のデータ生成部３８が前印刷用データＰＤを生成した場合、記憶している前印刷用データＰＤを当該データに書き換える。
【００３９】
印刷データ編集部３５は、印刷データ解析部３２によりヘッダーデータＨＤに空白ライン５３が含まれていると判定された場合（なお、空白ライン５３の下端がヘッダーデータＨＤの下端に一致している場合を除く）、取得した印刷データを編集する（図１３参照）。この編集処理については、後に詳述する。
【００４０】
データ生成部３８は、ヘッダー判別部３６によりヘッダーデータＨＤおよび前印刷用データＰＤの上端部が一致すると判別された場合、新たに前印刷用データＰＤとして記憶するためのデータを生成する（図１６参照）。なお、このデータ生成処理についても、後に後述する。
【００４１】
共通データ記憶部３４は、前印刷用データ記憶部３３と同様、フラッシュＲＯＭ２７の記憶領域であり、データ生成部３８によるデータ生成の過程で抽出されたヘッダーデータＨＤおよび前印刷用データＰＤの共通データを、不揮発且つ書き換え可能に記憶する。なお、共通データは、ヘッダーデータＨＤおよび前印刷用データＰＤの上端部に位置するデータであって、Ｌ１よりも短い長さの印刷データである。
【００４２】
モード切替部４０は、操作部２３の操作信号に基づいて、前印刷を実行する「前印刷モード」と、前印刷を実行しない「前印刷休止モード」と、の間でモードを切り替える。
【００４３】
印刷部４３は、印刷ヘッド１７および用紙搬送機構により構成され印刷データの印刷を行う。用紙カット部４４は、用紙カット機構により構成され、用紙をカットする。印刷制御部４１は、印刷部４３および用紙カット部４４の制御を行う。
【００４４】
以下、図５ないし図１９を参照し、レシートプリンター１の印刷処理について説明する。先ず、図５および図６を用い、前印刷を実行しない「前印刷休止モード」におけるレシートプリンター１の印刷処理について説明する。図５に示すように、レシートプリンター１は、印刷データを取得すると（Ｓ１０１）、印刷デーに含まれるヘッダーデータＨＤを印刷し（Ｓ１０２）、用紙カットを行う（Ｓ１０３）。そして、印刷データからヘッダーデータＨＤを除いた残データを印刷し（Ｓ１０４）、用紙カットを行う（Ｓ１０５）。
【００４５】
図６に示すのは、図５におけるフローにしたがって実施された印刷例である。レシートプリンター１は、前の印刷が終了し用紙カット位置Ｐ１に用紙１３の先端が位置している状態（図６（ａ）参照）で印刷データを取得すると、Ｌ１の長さ分のヘッダーデータＨＤを印刷し、用紙をカットする（同図（ｂ）参照）。これにより、Ｌ１分の余白（トップマージン）がレシートから分離される。そして、残データを印刷し、用紙をカットして、レシートが発行される（同図（ｃ））。なお、ヘッダーデータＨＤ印刷後の用紙カットは、レシート以外に用紙片が発生するため、省略しても良い。しかし、トップマージンに何らかのデータが前印刷されていた場合を考慮して、モードが「前印刷休止モード」に切り替えられた直後の印刷では、本用紙カットを行うことが望ましい。
【００４６】
次に、図７ないし図１９を用いて、前印刷を実行する「前印刷モード」におけるレシートプリンター１の印刷処理について説明する。図７に示すように、レシートプリンター１は、ホスト装置２から印刷データを取得すると（Ｓ０１）、印刷データの取得が特定のイベント後初めてであった場合（Ｓ０２：Ｙｅｓ）、フロー「Ａ」に移行する。なお、特定のイベントとは、用紙交換処理、用紙送り処理および電源ＯＮ処理をさす。一方、印刷データの取得が特定のイベント後初めてではなかった場合（Ｓ０２：Ｎｏ）、印刷データからヘッダーデータＨＤを抽出する（Ｓ０３）。そして、抽出したヘッダーデータＨＤに空白ライン５３が存在するか否かを解析する（Ｓ０４）。ヘッダーデータＨＤに空白ライン５３が存在した（なお、空白ライン５３の下端がヘッダーデータＨＤの下端に一致している場合を除く）場合（Ｓ０４：Ｙｅｓ）、フロー「Ｂ」に移行する。一方、ヘッダーデータＨＤに空白ライン５３が存在していなかった（なお、空白ライン５３の下端がヘッダーデータＨＤの下端に一致している場合を含む）場合（Ｓ０４：Ｎｏ）、共通データ記憶部３４に共通データが記憶されているか否かを判断する（Ｓ０５）。共通データ記憶部３４に共通データが記憶されていた場合（Ｓ０５：Ｙｅｓ）、フロー「Ｄ」に移行する。一方、共通データ記憶部３４に共通データが記憶されていなかった場合（Ｓ０５：Ｎｏ）、ヘッダーデータＨＤと前印刷用データＰＤとを比較する（Ｓ０６）。
【００４７】
ヘッダーデータＨＤと前印刷用データＰＤとが「同一」であると判別された場合（Ｓ０７：「同一」）、印刷データからヘッダーデータＨＤを除いた残データを印刷し（Ｓ０８）、前印刷用データＰＤを印刷し（Ｓ０９）、その後、用紙カットして（Ｓ１０）、処理を終了する。
【００４８】
図８は、図７のＳ０７において、ヘッダーデータＨＤと前印刷用データＰＤとが「同一」であると判別された場合の印刷例を示した図である。なお、本印刷例では、図４（ａ）に示すような、トップ余白５１、ヘッダーロゴ５２および空白ライン５３を合わせたデータの長さがＬ１となる印刷データを用いて説明する。レシートプリンター１は、前印刷用データＰＤとして、トップ余白５１、ヘッダーロゴであるヘッダーＡおよび空白ライン５３を記憶している。そして、取得した印刷データから抽出したヘッダーデータＨＤも同様に、トップ余白５１、ヘッダーロゴ５２であるヘッダーＡおよび空白ライン５３で構成されている。
【００４９】
レシートプリンター１は、前印刷用データＰＤが前印刷された状態（図８（ａ）参照）で、印刷データを取得すると、印刷データのヘッダーデータＨＤを除いた残データのみを印刷する（同図（ｂ）参照）。本印刷例では、残データは本文データ５４およびボトム余白５５となる。そして、残データを印刷終了後、カットコマンドに基づいて用紙カットを行う前に、記憶している前印刷用データＰＤを前印刷し、前印刷終了後、用紙をカットする（同図（ｃ）参照）。すなわち、レシートプリンター１は、ヘッダーデータＨＤと前印刷データとが同一であった場合、予め前印刷された部分を利用して、レシート印刷を行う。そして、印刷データに含まれたカットコマンドをトリガとして、次のレシート印刷に備え、記憶している前印刷データに基づいて前印刷を行う。
【００５０】
図７に戻り、ヘッダーデータＨＤと前印刷用データＰＤとが「非同一」であると判別された場合（Ｓ０７：「非同一」）、ヘッダーデータＨＤおよび前印刷用データＰＤの上端部が一致しているか否かを解析する（Ｓ１１）。両データの上端部が一致していた場合（Ｓ１１：Ｙｅｓ）、フロー「Ｃ」に移行する。
【００５１】
一方、両データの上端部が一致していなかった場合であって（Ｓ１１：Ｎｏ）、「非同一」且つ「両データの上端部が一致しない」と連続して判別された回数ｎが所定回数Ｎ以上となった場合（Ｓ１２：Ｙｅｓ）、前印刷用データＰＤをヘッダーデータＨＤに書き換える（Ｓ１３）。そして、ヘッダーデータＨＤを印刷し（Ｓ１４）、用紙をカットする（Ｓ１５）。そして、印刷データからヘッダーデータＨＤを除いた残データを印刷し（Ｓ１６）、書き換えられた前印刷用データＰＤを印刷して（Ｓ０９）、用紙をカットする（Ｓ１０）。
【００５２】
図９は、図７のＳ０７において、ヘッダーデータＨＤと前印刷用データＰＤとが「非同一」であると判別され、Ｓ０８において、ヘッダーデータＨＤおよび前印刷用データＰＤの上端部は一致しないと判別され、さらに、Ｓ１２において、「非同一」且つ「両データの上端部が一致しない」と連続して判別された回数ｎが所定回数Ｎ以上であった場合の印刷例を示した図である。なお、本印刷例でも、図４（ａ）に示すような、トップ余白５１、ヘッダーロゴ５２および空白ライン５３を合わせたデータの長さがＬ１となる印刷データを用いて説明する。レシートプリンター１は、前印刷用データＰＤとして、トップ余白５１、ヘッダーロゴ５２であるヘッダーＡおよび空白ライン５３を記憶している。そして、取得した印刷データから抽出したヘッダーデータＨＤは、トップ余白５１、ヘッダーロゴ５２であるヘッダーＢおよび空白ライン５３で構成されている。
【００５３】
レシートプリンター１は、前印刷用データＰＤが前印刷された状態（図９（ａ）参照）で、印刷データを取得すると、印刷データに含まれたヘッダーデータＨＤを印刷し、用紙をカットする（同図（ｂ）参照）。そして、印刷データからヘッダーデータＨＤを除いた残データを印刷終了後、カットコマンドに基づいて用紙カットを行う前に、書き換えた前印刷用データＰＤを前印刷し、前印刷終了後、用紙をカットする（同図（ｃ）参照）。すなわち、レシートプリンター１は、予め前印刷された（ヘッダーＡを含む前印刷用データＰＤ）部分を分離し、改めて、ヘッダーデータＨＤを含むすべての印刷データを印刷する。そして、次のレシート印刷に備え、書き換えた前印刷用データＰＤ（ヘッダーＢを含む前印刷用データＰＤ）を前印刷する。
【００５４】
なお、図示を省略したが、レシートプリンター１は、前印刷用データ記憶部３３に前印刷用データＰＤが記憶されていなかった場合、「非同一」と判別し、印刷データから抽出したヘッダーデータＨＤを前印刷用データＰＤとして前印刷用データ記憶部３３に記憶し、取得したヘッダーデータＨＤを含む印刷データのすべてを印刷し、ヘッダーデータＨＤを前印刷する。
【００５５】
続いて、図１０および図１１を用いて、図７のＳ０２において、印刷データの取得が特定のイベント後初めてであった場合について説明する。なお、特定のイベントとは、用紙交換処理、用紙送り処理および電源ＯＮ処理をさす。また、各処理においては用紙の頭出しや用紙送り処理などが既に行われ、直ちに印刷可能な状態となっているものとする。図１０に示すように、レシートプリンター１は、取得した印刷データを印刷し（Ｓ２１）、前印刷用データＰＤを印刷した後（Ｓ２２）、用紙カットする（Ｓ２３）。
【００５６】
図１１は、図１０に示すフローにより実施された印刷例を示している。なお、本印刷例でも、図４（ａ）に示すように、トップ余白５１、ヘッダーロゴ５２、空白ライン５３を合わせたデータの長さがＬ１となる印刷データを用いて説明する。レシートプリンター１は、前印刷用データＰＤとして、トップ余白５１、ヘッダーロゴ５２であるヘッダーＡおよび空白ライン５３を記憶している。そして、取得した印刷データから抽出したヘッダーデータＨＤは、トップ余白５１、ヘッダーロゴ５２であるヘッダーＡおよび空白ライン５３で構成されている。
【００５７】
レシートプリンター１は、用紙１３の先端が確実に用紙カット位置Ｐ１に位置する状態（同図（ａ）参照）で、取得した印刷データを印刷する（同図（ｂ）参照）。そして、印刷データの印刷終了後、カットコマンドに基づいて用紙カットを行う前に、記憶している前印刷用データＰＤを前印刷し、前印刷終了後、用紙をカットする（同図（c）参照）。
【００５８】
このように、特定のイベント後においては、判別結果によらず、取得した印刷データをすべて印刷することにより、用紙交換処理、用紙送り処理および電源ＯＮ処理によって、前印刷したヘッダー部分が失われたり、ヘッダー部分の後端が紙送りされて印刷位置Ｐ２よりも下流に位置していたりして、前印刷したヘッダー部分を利用できない場合にも、適切なレシートを印刷することができる。なお、本実施形態においては、特定のイベント後、最初に印刷されるレシートは、Ｌ１に相当する長さのトップマージンが発生する。なお、トップマージンを分離するために、ヘッダーデータＨＤを印刷後に用紙カットを行う構成としてもよい。
【００５９】
続いて、図１２ないし図１４を参照し、図７のＳ０４において、ヘッダーデータＨＤ内に空白ライン５３が存在していた（なお、空白ライン５３の下端がヘッダーデータＨＤの下端に一致している場合を含む）場合について説明する。すなわち、図４（ｂ）に示すように、トップ余白５１の先端から空白ライン５３の後端までの長さががＬ１よりも短く、ヘッダーデータＨＤに本文データの一部が含まれる印刷データを取得した場合について説明する。先ず、図１２のフローチャートに示すように、レシートプリンター１は、ヘッダーデータＨＤ内に空白ライン５３が存在していた場合、印刷データを編集する（Ｓ３１）。
【００６０】
ここで、図１３を用いて、図１２のＳ３１における印刷データの編集について説明する。同図（ａ）は、取得した印刷データを示している。レシートプリンター１（印刷データ編集部３５）は、印刷データに含まれるヘッダーデータＨＤを、ヘッダーデータＨＤの先端から空白ライン５３の下端までの第１ヘッダーデータＨＤ１と、空白ライン５３の下端からヘッダーデータＨＤの下端までの第２ヘッダーデータＨＤ２と、に分割する。図示のように、第１ヘッダーデータＨＤ１の長さはｌ１、第２ヘッダーデータＨＤ２の長さはｌ２となる。同図（ｂ）は、編集後の印刷データを示している。レシートプリンター１（印刷データ編集部３５）は、第２ヘッダーデータＨＤ２の長さｌ２分の空白データを第１ヘッダーデータＨＤ１の上端に付加する。すなわち、印刷データの先端からＬ１分のデータ、すなわち編集後の印刷データのヘッダーデータＨＤには、ｌ２分の空白データとｌ１分の第１ヘッダーデータＨＤ１とが含まれる。
【００６１】
図１２に戻り、レシートプリンター１は、上記した印刷データの編集を行った後、ｌ２分空白データおよび第１ヘッダーデータＨＤ１を編集後ヘッダーデータＨＤとする（Ｓ３２）。そして、編集後ヘッダーデータＨＤと前印刷用データＰＤとを比較する（Ｓ３３）。編集後ヘッダーデータＨＤと前印刷用データＰＤとが「非同一」であると判別された場合（Ｓ３４：「非同一」）であって、編集後ヘッダーデータＨＤと前印刷用データＰＤとが「非同一」と連続して判別された回数ｎが所定回数Ｎ以上となった場合（Ｓ３５：Ｙｅｓ）、前印刷用データＰＤを編集後ヘッダーデータＨＤに書き換える（Ｓ３６）。そして、編集後ヘッダーデータＨＤを印刷し（Ｓ３７）、用紙をカットする（Ｓ３８）。そして、編集後の印刷データから編集後ヘッダーデータＨＤを除いた残データを印刷し（Ｓ３９）、前印刷用データＰＤを印刷して（Ｓ４０）、用紙をカットする（Ｓ４１）。
【００６２】
一方、編集後ヘッダーデータＨＤと前印刷用データＰＤとが「同一」であると判別された場合（Ｓ３４：「同一」）、印刷データから編集後ヘッダーデータＨＤを除き（Ｓ４２）、残データを印刷し（Ｓ４３）、前印刷用データＰＤを印刷し（Ｓ４０）、その後、用紙カットして（Ｓ４１）、処理を終了する。
【００６３】
図１４は、図１２のＳ３４において、編集後ヘッダーデータＨＤと前印刷用データＰＤとが「非同一」であると判別され、Ｓ３５において、「非同一」と判別された回数ｎが所定回数Ｎ以上であった場合の印刷例を示している。レシートプリンター１は、前印刷用データＰＤとして、トップ余白５１、ヘッダーロゴ５２であるヘッダーＡおよび空白ライン５３を記憶している。そして、取得した印刷データから抽出したヘッダーデータＨＤは、空白データ、トップ余白５１、ヘッダーＢ５２および空白ライン５３で構成されている。
【００６４】
レシートプリンター１は、前印刷用データＰＤが前印刷された状態（同図（ａ）参照）で、印刷データを取得すると、編集後ヘッダーデータＨＤを印刷し、用紙をカットする（同図（ｂ）参照）。そして、編集後の印刷データから編集後ヘッダーデータＨＤを除いた残データを印刷し、残データの印刷終了後、カットコマンドに基づいて用紙カットを行う前に、書き換えた前印刷用データＰＤ（編集後ヘッダーデータＨＤ）を前印刷し、前印刷終了後、用紙をカットする（同図（ｃ）参照）。このように、印刷データの上端から空白ライン５３の下端までが、Ｌ１よりも短い場合、第１ヘッダーデータＨＤ１の先端に、第２ヘッダーデータＨＤ２の長さに相当する空白データを付加したデータを編集後ヘッダーデータＨＤとし、前印刷用データＰＤとして記憶することで、前印刷終了後、第１ヘッダーデータＨＤ１の下端が印刷位置に一致する。これにより、次回の印刷が同一のヘッダーデータＨＤを有する印刷データに基づく印刷である場合、印刷開始が、本文データ５４の先端から開始されるため、本文データ５４内に用紙送りのピッチズレなどによる印字線の発生を防ぐことができる。
【００６５】
続いて、図１５および図１６を参照して、図７のＳ１１において、ヘッダーデータＨＤおよび前印刷用データＰＤの上端部が一致する場合について説明する。図１５に示すように、レシートプリンター１は、両データの先端から連続して一致するデータを共通データとして共通データ記憶部３４に記憶する（Ｓ５１）。そして、新たな前印刷用データＰＤを生成し、生成したデータを前印刷用データＰＤとして書き換える（Ｓ５２）。
【００６６】
ここで、図１６を用いて、前印刷用データＰＤの生成について説明する。図示のように、レシートプリンター１に記憶されている前印刷用データＰＤは、トップ余白５１、ヘッダーＡＢおよびヘッダーＡで構成されるヘッダーロゴ５２、および空白ライン５３で構成されており（同図（ａ）参照）、ヘッダーデータＨＤは、トップ余白５１、ヘッダーＡＢおよびヘッダーＢで構成されるヘッダーロゴ５２、および空白ライン５３で構成されている（同図（ｂ）参照）。レシートプリンター１（データ生成部３８）は、前印刷用データＰＤおよびヘッダーデータＨＤにおいて、各データの先端から連続して一致する共通データ（図示ではトップ余白５１およびヘッダーＡＢに相当する）を抽出し（コピーし）、ヘッダーデータＨＤの先端から共通データ（ヘッダーＡＢ）の下端までの第３ヘッダーデータＨＤ３と、共通データの下端からヘッダーデータＨＤの下端までの第４ヘッダーデータＨＤ４と、に分割する（同図（ｂ）参照）。図示のように、第３ヘッダーデータＨＤ３の長さはｌ３、第４ヘッダーデータＨＤ４の長さはｌ４となる。そして、第４ヘッダーデータＨＤ４の長さであるｌ４分の空白データを第３ヘッダーデータＨＤ３の上端に付加して、ｌ４分の空白データおよび第３ヘッダーデータＨＤ３から成る新たな前印刷用データＰＤを生成する（同図（ｃ）参照）。なお、「変換済みヘッダーデータ」とは、データ生成部３８が新たに生成した前印刷用データＰＤをさす。
【００６７】
図１５に戻り、レシートプリンター１は、取得したヘッダーデータＨＤを印刷し（Ｓ５３）、用紙カットする（Ｓ５４）。そして、印刷データからヘッダーデータＨＤを除いた残データを印刷し（Ｓ５５）、新たに生成して書き換えた前印刷用データＰＤを印刷した後（Ｓ５６）、用紙カットして（Ｓ５７）、処理を終了する。
【００６８】
図１７は、図１５に記載のフローを実施した場合の印刷例を示した図である。レシートプリンター１に記憶されている前印刷用データＰＤおよびヘッダーデータＨＤは、図１６に記載したものと同様であり、生成した前印刷用データＰＤは、ｌ４分の空白データ、トップ余白５１およびヘッダーＡＢで構成されている。レシートプリンター１は、記憶されている前印刷用データＰＤが前印刷された状態（同図（ａ）参照）で、印刷データを取得すると、前印刷用データＰＤとヘッダーデータＨＤが「非同一」であるため、印刷データに含まれたヘッダーデータＨＤを印刷し、用紙をカットする（同図（ｂ）参照）。そして、印刷データからヘッダーデータＨＤを除いた残データを印刷し、残データの印刷終了後、カットコマンドに基づいて用紙カットを行う前に、新たに生成した前印刷用データＰＤ（空白データ、トップ余白５１およびヘッダーＡＢ）を前印刷し、前印刷終了後、用紙をカットする（同図（ｃ）参照）。
【００６９】
続いて、図１８および図１９を参照して、図７のＳ０５において、共通データ記憶部３４に共通データが記憶されている場合について説明する。図１８に示すように、レシートプリンター１は、ヘッダーデータＨＤの上端部が共通データ記憶部３４に記憶されている共通データと一致するか否かを解析する（Ｓ６１）。そして、ヘッダーデータＨＤの上端部が共通データと一致する場合（Ｓ６１：Ｙｅｓ）、印刷データから共通データを除き（Ｓ６２）、残データを印刷する（Ｓ６３）。そして、前印刷データを印刷し（Ｓ６４）、用紙カットする（Ｓ６５）。一方、ヘッダーデータＨＤの上端部が共通データと一致しない場合（Ｓ６１：Ｎｏ）、ヘッダーデータＨＤを印刷し（Ｓ６６）、用紙カットを行って（Ｓ６７）、印刷データからヘッダーデータＨＤを除いた残データを印刷する（Ｓ６８）。そして、前印刷データを印刷し（Ｓ６４）、用紙カットする（Ｓ６５）。
【００７０】
図１９は、図１８のＳ６１において、ヘッダーデータＨＤの上端部が共通データと一致する場合と判定された場合の印刷例を示した図である。レシートプリンター１は、前印刷用データＰＤとして、ｌ４分の空白データ、トップ余白５１およびヘッダーロゴ５２を記憶している。すなわち、データ生成部３８によって生成された前印刷データＰＤが記憶されている。また、共通データとして、トップ余白５１およびヘッダーＡＢが記憶されている。そして、取得した印刷データから抽出したヘッダーデータＨＤは、トップ余白５１、ヘッダーＡＢ、ヘッダーＢおよび空白ライン５３で構成されている。
【００７１】
レシートプリンター１は、前印刷用データＰＤが前印刷された状態（同図（ａ）参照）で、共通データ（トップ余白５１およびヘッダーＡＢ）を有した印刷データを取得すると、印刷データから共通データを除いた残データを印刷し（同図（ｂ）参照）、残データの印刷終了後、カットコマンドに基づいて用紙カットを行う前に、前印刷用データＰＤ（空白データ、トップ余白５１およびヘッダーＡＢ）を前印刷し、前印刷終了後、用紙をカットする（同図（ｃ）参照）。
【００７２】
このように、前印刷用データＰＤとして、共通データを含むデータを記憶しておくことで、次回以降の印刷データのヘッダーデータＨＤと前印刷用データＰＤとが、完全に一致していない場合であっても、前印刷した共通データを利用して、次のレシート印刷を行うことができる。これによれば、前印刷用データＰＤとヘッダーデータＨＤとが一致しない場合であっても、発生するトップマージンをＬ１からｌ４に抑えることができる。
【００７３】
これまで説明したレシートプリンター１およびレシートプリンター１の制御方法によれば、受信した印刷データに含まれるヘッダーデータＨＤと、予め記憶している前印刷用データＰＤと、を比較し、「非同一」であった場合にのみ、印刷データに含まれるヘッダーデータＨＤを改めて印刷するため、ヘッダー（トップマージンにおける印刷内容）の印刷内容が変更された場合であっても、個別に前印刷用データＰＤを送信して書き換えを行うことなく、所望のレシート印刷を行うことができる。よって、ヘッダーの有無や内容が変化しても、連続してトップマージンを発生させずに所望のレシートを印刷することができる。
【００７４】
なお、図４（ｃ）および（ｄ）に示すような、ヘッダーデータＨＤとその他のデータの境界において印刷データが連続して存在している印刷データのヘッダーデータＨＤを、前印刷用データＰＤとして記憶している場合を考慮して、ヘッダーデータＨＤと前印刷データＰＤとが「非同一」と判別され、ヘッダーデータＨＤを改めて印刷する場合は、印刷データの先端に空白データを付加しても良い。これによれば、前印刷された不要な部分を切り取る場合、カット位置が、空白データ上に位置するため、前印刷の印字の一部がレシートの先端部分に残るのを防ぐことができる。
【００７５】
また、複数の印刷データを取得した場合、カットコマンドではなく、所定の文字列を用いて１レシート単位の印刷データを認識する構成としてもよい。
【００７６】
また、前印刷データＰＤを書き換える基準となる「非同一」と連続して判別された回数Ｎは、ユーザーの操作によって所望の回数が設定できる構成としてもよい。この場合、回数Ｎを設定する設定部をさらに備えていることが好ましい。
【００７７】
また、上記の説明において、ヘッダーロゴ５２を含む印刷データを例示したが、印刷データの定型部分は、画像データではなくテキストデータで構成されていても良い。
【００７８】
なお、上記の各実施形態に示した、レシートプリンター１の各構成要素をプログラムとして提供することも可能である。また、そのプログラムを記憶媒体（図示省略）に格納して提供することも可能である。記録媒体としては、ＣＤ−ＲＯＭ、フラッシュＲＯＭ、メモリカード（コンパクトフラッシュ（登録商標）、スマートメディア、メモリースティック等）、コンパクトディスク、光磁気ディスク、デジタルバーサタイルディスクおよびフレキシブルディスク等を利用することができる。
【００７９】
また、上述した実施例によらず、レシートプリンター１の装置構成や処理工程等について、本発明の要旨を逸脱しない範囲で、適宜変更も可能である。
【符号の説明】
【００８０】
１：レシートプリンター  ２：ホスト装置  １３：用紙  １５：可動カッター  １７：印刷ヘッド  ３１：印刷データ取得部  ３２：印刷データ解析部  ３３：前印刷用データ記憶部  ３４：共通データ記憶部  ３５：印刷データ編集部  ３６：ヘッダー判別部  ３７：カウント部  ３８：データ生成部  ３９：データ書き換え部  ４０：モード切替部  ４１：印刷制御部  ４３：印刷部  ４４：用紙カット部  ＨＤ：ヘッダーデータ  ＰＤ：前印刷用データ  Ｐ１：用紙カット位置  Ｐ２：印刷位置
【図１】
0005830969.tif 000002
【図２】
0005830969.tif 000003
【図３】
0005830969.tif 000004
【図４】
0005830969.tif 000005
【図５】
0005830969.tif 000006
【図６】
0005830969.tif 000007
【図７】
0005830969.tif 000008
【図８】
0005830969.tif 000009
【図９】
0005830969.tif 000010
【図１０】
0005830969.tif 000011
【図１１】
0005830969.tif 000012
【図１２】
0005830969.tif 000013
【図１３】
0005830969.tif 000014
【図１４】
0005830969.tif 000015
【図１５】
0005830969.tif 000016
【図１６】
0005830969.tif 000017
【図１７】
0005830969.tif 000018
【図１８】
0005830969.tif 000019
【図１９】
0005830969.tif 000020