(57)【要約】【課題】各ページの上端側および下端側に形成される空白領域を削除して印刷することにより記録紙を節約できるプリンタドライバを提案すること。【解決手段】１ページ分の印刷イメージを複数の行イメージに等分して行番号を付与し、各行イメージが空白イメージか否かを逐次に判定する。最初に空白イメージではないと判定された行イメージの行番号は上端側行番号として記憶保持し、この行イメージを印刷する。その後は空白イメージと判定された行イメージを空白行数としてカウントし、空白イメージではないと判定された行イメージを印刷する。このとき、空白行数分が０でなければ、空白行数分だけ空白イメージを印刷してから空白イメージではないと判定された行イメージを印刷する。この結果、記録紙１１には上端側と下端側の空白領域に挟まれた中間領域だけが印刷される。【選択図】図５
2009295070.tif 000002
【特許請求の範囲】
【請求項１】
１ページ分の印刷データを印刷する間に記録紙の搬送方向における当該記録紙と印刷ヘッドの相対移動距離を取得しているシリアルプリンタを駆動制御して、前記１ページ分の印刷データの印刷イメージから上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するプリンタドライバにおいて、
前記１ページ分の印刷データをメモリに２次元展開して前記印刷イメージを生成するとともに、前記印刷イメージを前記搬送方向に対応する上下方向と直交する複数の行イメージに等分し、各行イメージに上から行番号を付与する行イメージ生成手段と、
各行イメージが空白からなる空白イメージか否かを前記行番号に従って最初から最後まで逐次に判定する判定手段と、
前記行イメージが前記空白イメージではないと判定された場合に、下端側行番号が記憶保持されていなければ、前記行イメージの行番号を上端側行番号および前記下端側行番号として記憶保持し、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第１出力手段と、
前記行イメージが前記空白イメージであると判定された場合に、前記下端側行番号が記憶保持されていれば、空白行数としてカウントするカウンタと、
前記行イメージが前記空白イメージではないと判定された場合に、前記下端側行番号が記憶保持されていれば、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第２出力手段と、
最後の前記行イメージの判定結果に基づく処理動作が終了すると、前記上端側行番号および前記下端側行番号に基づいて前記シリアルプリンタに印刷を行わせた前記行イメージの行数を算出し、前記行数と各行イメージを印刷するのに必要な前記記録紙の前記搬送方向の用紙寸法とを乗じることにより前記上端側行番号から前記下端側行番号までの各行イメージの印刷に費やされた前記記録紙の用紙長を算出し、前記シリアルプリンタが前記用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送する記録紙搬送手段とを有することを特徴とするプリンタドライバ。
【請求項２】
請求項１に記載されているプリンタドライバにおいて、
前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの下端側に含まれている帯状の空白領域である下端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定手段と、
前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記判定手段が判定を行うと最初の前記行番号を前記上端側行番号として記憶保持する上端側行番号記憶保持手段と、
前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記第１出力手段および前記第２出力手段に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力手段とを有し、
前記カウンタは、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記行イメージが前記空白イメージではないと判定されたときに、常に、前記空白行数をカウントすることを特徴とするプリンタドライバ。
【請求項３】
請求項１に記載されているプリンタドライバにおいて、
前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側に含まれている帯状の空白領域である上端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定手段を有しており、
前記記録紙搬送手段は、前記上端側空白領域だけを取り除いて印刷することが設定されている場合には、前記下端側行番号に替えて最後の前記行番号を用いて前記行数を算出することを特徴とするプリンタドライバ。
【請求項４】
請求項１に記載されているプリンタドライバにおいて、
前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域のいずれも取り除かずに通常の印刷を行うか、を予め操作者に設定させる除去領域設定手段と、
通常の印刷を行うことが設定されている場合には、前記第１出力手段および前記第２出力手段に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力手段とを有し、
前記カウンタは、通常の印刷を行うことが設定されている場合には、前記行イメージが前記空白イメージではないと判定されたときに、常に、前記空白行数をカウントし、
前記記録紙搬送手段は、前記通常の印刷を行うことが設定されている場合には、前記シリアルプリンタが前記１ページの用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送することを特徴とするプリンタドライバ。
【請求項５】
請求項１ないし４のうちのいずれかの項に記載のプリンタドライバにおいて、
前記シリアルプリンタはロール紙から繰り出されている長尺状の前記記録紙に印刷を行うロール紙プリンタであることを特徴とするプリンタドライバ。
【請求項６】
１ページ分の印刷データを印刷する間に記録紙の搬送方向における当該記録紙と印刷ヘッドの相対移動距離を取得しているシリアルプリンタを駆動制御して、前記１ページ分の印刷データの印刷イメージから上端側および下端側に含まれている帯状の空白領域を取り除いて印刷する印刷データの印刷方法において、
前記１ページ分の印刷データをメモリに２次元展開して前記印刷イメージを生成するとともに、前記印刷イメージを前記搬送方向に対応する上下方向と直交する複数の行イメージに等分し、各行イメージに上から行番号を付与する行イメージ生成工程と、
各行イメージが空白からなる空白イメージか否かを前記行番号に従って最初から最後まで逐次に判定する判定工程と、
前記行イメージが前記空白イメージではないと判定された場合に、下端側行番号が記憶保持されていなければ、前記行イメージの行番号を上端側行番号および前記下端側行番号として記憶保持し、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第１出力工程と、
前記行イメージが前記空白イメージであると判定された場合に、前記下端側行番号が記憶保持されていれば、空白行数としてカウントするカウント工程と、
前記行イメージが前記空白イメージではないと判定された場合に、前記下端側行番号が記憶保持されていれば、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第２出力工程と、
最後の前記行イメージの判定結果に基づく処理が終了すると、前記上端側行番号および前記下端側行番号に基づいて前記シリアルプリンタに印刷を行わせた前記行イメージの行数を算出し、前記行数と各行イメージを印刷するのに必要な前記記録紙の前記搬送方向の用紙寸法とを乗じることにより前記上端側行番号から前記下端側行番号までの各行イメージの印刷に費やされた前記記録紙の用紙長を算出し、前記シリアルプリンタが前記用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送する記録紙搬送工程とを有することを特徴とする印刷データの印刷方法。
【請求項７】
請求項６に記載されている印刷データの印刷方法において、
前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの下端側に含まれている帯状の空白領域である下端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定工程と、
前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記判定工程に続いて最初の前記行番号を前記上端側行番号として記憶保持する上端側行番号記憶保持手段と、
前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記第１出力工程および前記第２出力工程に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力工程とを含んでおり、
前記カウント工程では、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記行イメージが前記空白イメージではないと判定されたときに、常に、前記空白行数をカウントすることを特徴とする印刷データの印刷方法。
【請求項８】
請求項６に記載されている印刷データの印刷方法において、
前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側に含まれている帯状の空白領域である上端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定工程を含んでおり、
前記記録紙搬送工程では、前記上端側空白領域だけを取り除いて印刷することが設定されている場合には、前記下端側行番号に替えて最後の前記行番号を用いて前記行数を算出することを特徴とする印刷データの印刷方法。
【請求項９】
請求項６に記載されている印刷データの印刷方法において、
前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域のいずれも取り除かずに通常の印刷を行うか、を予め操作者に設定させる除去領域設定工程と、
通常の印刷を行うことが設定されている場合には、前記第１出力工程および前記第２出力工程に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力工程とを含んでおり、
前記カウント工程では、通常の印刷を行うことが設定されている場合には、前記行イメージが前記空白イメージではないと判定されたときに、常に、前記空白行数をカウントし、
前記記録紙搬送工程では、前記通常の印刷を行うことが設定されている場合には、前記シリアルプリンタが前記１ページの用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送することを特徴とする印刷データの印刷方法。
【請求項１０】
請求項６ないし９のうちのいずれかの項に記載の印刷データの印刷方法において、
前記シリアルプリンタはロール紙から繰り出されている長尺状の前記記録紙に印刷を行うロール紙プリンタであることを特徴とする印刷データの印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データを印刷する際に、各ページの上端側や下端側に形成されるマージンや空白行などの帯状の空白領域を取り除くことができるプリンタドライバおよび印刷データの印刷方法に関する。
【背景技術】
【０００２】
アプリケーションプログラムで生成された印刷データを印刷すると各ページの上端部分および下端部分にはマージンが設けられていることがある。また、各ページの印刷データに含まれている文字や画像などのデータ量が少ない場合には、これら文字や画像が各ページの上下の中央部分に配置されており、各ページの上端側および下端側にはマージンと連続するように複数の空白行が配置されていることがある。これらページの上端側および下端側に形成されている帯状の空白領域は、印刷データに含まれている文字や画像をページの中央に配置したり、所定の書式に合致させて配置したりするために設けられている。
【０００３】
所望の印刷結果を得るための正式な印刷とは別に印刷データに含まれている文字や画像の内容を確認するための印刷を行う場合には、印刷される各ページの上端側および下端側に帯状の空白領域が確保されている必要はない。従って、印刷データからこれら上端側および下端側の帯状の空白領域のデータ部分を除去して文字や画像のデータ部分だけを印刷すれば、印刷の際に消費される記録紙の量を削減することができるので、経済的である。
【０００４】
印刷データの印刷イメージから帯状の空白領域を取り除いて印刷することができるデータ出力装置は、例えば、特許文献１に記載されている。特許文献１では、１ページ分の印刷データをメモリに展開して生成した印刷イメージを印刷ヘッドが走査する方向と対応する方向に複数の行イメージに等分し、各行イメージが空白からなる空白イメージか否かを判定している。また、空白イメージの行イメージはシリアルプリンタに送信せずに無視し、空白イメージではない行イメージだけをシリアルプリンタに送信して印刷することにより、帯状の空白領域を取り除いている。
【特許文献１】特開平６−８３８２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、空白イメージの行イメージを無視して印刷しない方法では、各ページの上端側および下端側にある帯状の空白領域だけではなく、これら上端側および下端側の空白領域の間に挟まれている中間領域の内側にある帯状の空白領域も削除されてしまう。この場合には、中間領域内の文字や画像のレイアウトが変更されてしまうので、中間領域内における文字や画像の配置を確認することができなくなる。
【０００６】
また、上記の技術では、各ページの中間領域の下端部分が印刷されているときに、印刷ヘッドの記録紙の搬送方向に沿った印刷幅の下端部分まで用いられているのか、或いは、印刷幅方向の一部分だけが用いられているのか、についての配慮がない。このため、印刷された第１のページの中間領域の下端と、次に印刷される第２のページの中間領域の上端とが重ならないようにするためには、第１のページの中間領域の印刷が終了した後に、記録紙を少なくとも印刷ヘッドの印刷幅だけ搬送しておく必要がある。或いは、記録紙を少なくとも印刷ヘッドの印刷幅分だけ搬送した後に第２のページの中間領域の印刷を開始する必要がある。しかし、このような紙送りをすると、印刷データから各ページの上端側および下端側の帯状の空白領域のデータ部分が除去されているにも拘わらず、印刷された各ページの中間領域の間には帯状の空白領域が形成されてしまうという問題がある。
【０００７】
図１０は、第１のページの中間領域の下端部分が印刷された後に、記録紙が印刷ヘッドの印刷幅分だけ搬送された状態を示す説明図である。記録紙１００の側方の印刷ヘッド１０１は、記録紙１００に対する印刷ヘッド１０１の相対的な位置を示すものである。印刷ヘッド１０１（１）は第１のページの中間領域の下端部分を印刷したときの位置であり、印刷ヘッド１０１（２）は中間領域の印刷が終了した後に記録紙１００が印刷ヘッド１０１の印刷幅Ｑだけ搬送された位置を示している。
【０００８】
図１０（ａ）に示されているように、第１のページの中間領域の下端部分が印刷される際に印刷ヘッド１０１の印刷幅の全部（斜線部分）、すなわち下端部分までが用いられている場合には、記録紙１００が印刷幅Ｑだけ搬送されると、印刷ヘッド１０１（２）は中間領域に隣接する位置に配置されている。また、この位置が、次のページ分の領域印刷データの印刷を開始する印刷開始位置になるので、印刷された中間領域と次に印刷される中間領域との間に帯状の空白領域が形成されることはない。
【０００９】
一方、図１０（ｂ）に示すように、最初のページの中間領域の下端部分が印刷される際に印刷ヘッド１０１の印刷幅Ｑの一部分(斜線部分)だけが用いられている場合には、記録紙１００が印刷幅Ｑだけ搬送されると、印刷ヘッド１０１（２）は中間領域に隣接する位置から、印刷に使用されていなかった印刷ヘッド１０１の印刷幅方向の残りの部分Ｒに相当する寸法だけ離れた位置に配置されてしまう。また、この位置から次の中間領域の印刷が開始されるので、印刷された中間領域の下端と次に印刷される中間領域の上端との間には、帯状の空白領域が形成されてしまう。
【００１０】
本発明の課題は、このような点に鑑みて、印刷データを記録紙に印刷する際に、１ページ分の印刷データの印刷イメージの上端側や下端側にある帯状の空白領域だけを除去することができるプリンタドライバおよび印刷データの印刷方法を提供することにある。
【００１１】
また、各ページの印刷データの印刷イメージから上端側および下端側の帯状の空白領域を取り除くことにより中間領域が連続して印刷される場合において、印刷される各ページの中間領域の間に帯状の空白領域が形成されることがないプリンタドライバおよび印刷データの印刷方法に関する。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明は、１ページ分の印刷データを印刷する間に記録紙の搬送方向における当該記録紙と印刷ヘッドの相対移動距離を取得しているシリアルプリンタを駆動制御して、前記１ページ分の印刷データの印刷イメージから上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するプリンタドライバにおいて、
前記１ページ分の印刷データをメモリに２次元展開して前記印刷イメージを生成するとともに、前記印刷イメージを前記搬送方向に対応する上下方向と直交する複数の行イメージに等分し、各行イメージに上から行番号を付与する行イメージ生成手段と、
各行イメージが空白からなる空白イメージか否かを前記行番号に従って最初から最後まで逐次に判定する判定手段と、
前記行イメージが前記空白イメージではないと判定された場合に、下端側行番号が記憶保持されていなければ、前記行イメージの行番号を上端側行番号および前記下端側行番号として記憶保持し、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第１出力手段と、
前記行イメージが前記空白イメージであると判定された場合に、前記下端側行番号が記憶保持されていれば、空白行数としてカウントするカウンタと、
前記行イメージが前記空白イメージではないと判定された場合に、前記下端側行番号が記憶保持されていれば、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第２出力手段と、
最後の前記行イメージの判定結果に基づく処理動作が終了すると、前記上端側行番号および前記下端側行番号に基づいて前記シリアルプリンタに印刷を行わせた前記行イメージの行数を算出し、前記行数と各行イメージを印刷するのに必要な前記記録紙の前記搬送方向の用紙寸法とを乗じることにより前記上端側行番号から前記下端側行番号までの各行イメージの印刷に費やされた前記記録紙の用紙長を算出し、前記シリアルプリンタが前記用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送する記録紙搬送手段とを有することを特徴とする。
【００１３】
本発明によれば、行イメージ生成手段は１ページ分の印刷データの印刷イメージを複数の行イメージに等分し、各行イメージには行番号を付与する。また、判定手段は各行イメージが空白からなる空白イメージか否かを行番号に従って最初から最後まで逐次に判定する。そして、行イメージが空白イメージではないと判定された場合に、下端側行番号が記憶保持されていなければ、第１出力手段は、上端側行番号および下端側行番号を記憶保持した後にこの行イメージをシリアルプリンタに送信して印刷させる。この結果、空白ではないと最初に判定された行イメージの行番号を上端側行番号として記憶保持することができる。
【００１４】
また、カウンタは、下端側行番号が記憶保持されているときに空白イメージの行イメージをカウントするので、空白イメージではないと最初に判定された行イメージよりも上端側にある空白イメージの行イメージはカウントされずに無視される。この結果、この行イメージよりも上端側に位置している空白イメージの行イメージは印刷されないので、印刷イメージの上端側の空白領域である上端側空白領域を取り除くことができる。また、下端側行番号が記憶保持された後には空白イメージの行イメージはカウントされ、その後に行イメージが空白イメージではないと判定されたときに、第２出力手段は、空白行数が０でなければ空白行数分の空白イメージをまとめて印刷し、しかる後に、空白ではないと判定された行イメージを印刷する。この結果、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在するときには、空白イメージの行イメージは無視されることなく印刷される。従って、上端側空白領域および下端側の空白領域である下端側空白領域の間に挟まれている中間領域の内側にある帯状の空白領域が取り除かれてしまうことがない。また、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在しないときには、空白イメージの行イメージは空白行数としてカウントされるだけで印刷されない。従って、印刷イメージの下端側に含まれている下端側空白領域を取り除くことができる。
【００１５】
さらに、下端側行番号が記憶保持された後に、行イメージが空白イメージではないと判定された場合には、下端側行番号は第２出力手段によって空白イメージではないと判定された行イメージの行番号で更新されていく。従って、全ての行イメージに対する判定が終了したときは、空白イメージではない上端の行イメージの行番号と、空白イメージではない下端の行イメージの行番号がそれぞれ上端側行番号および下端側行番号として記憶保持されている。この結果、上端側行番号および下端側行番号に基づいてシリアルプリンタに印刷させた行イメージの行数を算出することができるので、この行数と各行イメージを印刷するのに必要な記録紙の搬送方向の用紙寸法とを乗じることにより上端側行番号から下端側行番号までの各行イメージの印刷に費やされた記録紙の用紙長を算出できる。よって、最後の行イメージの判定結果に基づく処理動作が終了した後に、記録紙搬送手段が、シリアルプリンタが用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは印刷された下端側行番号の行イメージに対して搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、各ページの中間領域の下端部分が印刷される際に印刷ヘッドの印刷幅の下端部分まで用いられていたか、或いは、印刷ヘッドの印刷幅方向の一部分だけが用いられていたかに拘わらず、次の領域印刷データの印刷を中間領域に隣接する位置から開始することができる。また、各ページの印刷データの印刷イメージから上端側空白領域および下端側空白領域を取り除くことによりこれらの間に挟まれている中間領域が連続して印刷される場合に、印刷される各ページの中間領域の間に帯状の空白領域が形成されることがない。
【００１６】
また、各行イメージの印刷処理を逐次に行う過程で上端側行番号および下端側行番号を取得して、上端側行番号から下端側行番号までの各行イメージの印刷に費やされる記録紙の用紙長を算出することができるので、１ページ分の印刷データの印刷イメージをメモリに２次元展開しているときに上端側行番号および下端側行番号を特定して用紙長を算出するよりも、印刷動作のスループットが向上する。
【００１７】
本発明において、下端側空白領域だけを取り除いて印刷するためには、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの下端側に含まれている帯状の空白領域である下端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定手段と、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記判定手段が判定を行うと最初の前記行番号を前記上端側行番号として記憶保持する上端側行番号記憶保持手段と、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記第１出力手段および前記第２出力手段に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力手段とを有し、前記カウンタは、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記行イメージが前記空白イメージではないと判定されたときに、常に、前記空白行数をカウントすることが望ましい。
【００１８】
このようにすれば、上端側行番号記憶保持手段は最初の行番号を上端側行番号として記憶保持し、カウンタは空白イメージではない行イメージを常に空白行数としてカウントする。また、行イメージが空白イメージではないと判定された場合には、第３出力手段は、この行イメージの行番号で下端側行番号を更新した後に、空白行数が０でなければ空白行数分の空白イメージをまとめて印刷し、しかる後に、この行イメージを印刷する。従って、上端側空白領域は取り除かれることなく印刷される。さらに、最初の行番号が上端側行番号として記憶保持されているので、用紙長として最初の行イメージから下端側行番号の行イメージまでを印刷するのに必要な値が算出される。よって、記録紙搬送手段が、シリアルプリンタが用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは印刷された下端側行番号の行イメージに対し搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。
【００１９】
また、本発明において、上端側空白領域だけを取り除いて印刷するためには、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側に含まれている帯状の空白領域である上端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定手段を有しており、前記記録紙搬送手段は、前記上端側空白領域だけを取り除いて印刷することが設定されている場合には、前記下端側行番号に替えて最後の前記行番号を用いて前記行数を算出することが望ましい。このようにすれば、上端側行番号の行イメージから最後の行番号の行イメージまでの行数が算出されるので、用紙長として上端側行番号の行イメージから最後の行番号の行イメージまでを印刷するのに必要な値が算出される。従って、記録紙搬送手段が、シリアルプリンタが用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは最後の行番号の行イメージが印刷される位置に対して搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。すなわち、下端側行番号の行イメージの下端側に空白イメージの行イメージが存在している場合には、下端側行番号の行イメージの印刷位置から空白イメージの行数分だけ離れた位置に印刷ヘッドが配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、下端側空白領域が取り除かれてしまうことがない。
【００２０】
また、本発明において、下端側空白領域および上端側空白領域を取り除かずに通常の印刷を行うためには、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域のいずれも取り除かずに通常の印刷を行うか、を予め操作者に設定させる除去領域設定手段と、通常の印刷を行うことが設定されている場合には、前記第１出力手段および前記第２出力手段に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力手段とを有し、前記カウンタは、通常の印刷を行うことが設定されている場合には、常に、前記空白行数をカウントし、前記記録紙搬送手段は、前記通常の印刷を行うことが設定されている場合には、前記シリアルプリンタが前記１ページの用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送することが望ましい。
【００２１】
このようにすれば、空白イメージではない行イメージは常に空白行数としてカウントされる。また、行イメージが空白イメージではないと判定された場合には、この行イメージの行番号で下端側行番号を更新した後に、空白行数が０でなければ空白行数分の空白イメージをまとめて印刷し、しかる後に、この行イメージを印刷する。従って、上端側空白領域は取り除かれることなく印刷される。また、１ページの用紙長は、プリンタドライバが１ページ分の印刷データを印刷する際に予め記憶保持している値である。この値を用いて、シリアルプリンタが１ページの用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは最後の行番号の行イメージが印刷される位置に対して搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。すなわち、下端側行番号の行イメージの下端側に空白イメージの行イメージが存在している場合には、下端側行番号の行イメージの印刷位置から空白イメージの行数分だけ離れた位置に印刷ヘッドが配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、下端側空白領域が取り除かれてしまうことがない。また、このようにすれば、上端側行番号および下端側行番号を記憶保持しておく必要がなく、行数および用紙長を算出する必要がないので、印刷動作のスループットが向上する。
【００２２】
本発明において、前記シリアルプリンタを、ロール紙から繰り出されている長尺状の前記記録紙に印刷を行うロール紙プリンタとすれば、上端側空白領域や下端側空白領域を取り除いて印刷することにより得られる経済的な効果が高い。
【００２３】
次に、本発明は、１ページ分の印刷データを印刷する間に記録紙の搬送方向における当該記録紙と印刷ヘッドの相対移動距離を取得しているシリアルプリンタを駆動制御して、前記１ページ分の印刷データの印刷イメージから上端側および下端側に含まれている帯状の空白領域を取り除いて印刷する印刷データの印刷方法において、
前記１ページ分の印刷データをメモリに２次元展開して前記印刷イメージを生成するとともに、前記印刷イメージを前記搬送方向に対応する上下方向と直交する複数の行イメージに等分し、各行イメージに上から行番号を付与する行イメージ生成工程と、
各行イメージが空白からなる空白イメージか否かを前記行番号に従って最初から最後まで逐次に判定する判定工程と、
前記行イメージが前記空白イメージではないと判定された場合に、下端側行番号が記憶保持されていなければ、前記行イメージの行番号を上端側行番号および前記下端側行番号として記憶保持し、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第１出力工程と、
前記行イメージが前記空白イメージであると判定された場合に、前記下端側行番号が記憶保持されていれば、空白行数としてカウントするカウント工程と、
前記行イメージが前記空白イメージではないと判定された場合に、前記下端側行番号が記憶保持されていれば、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第２出力工程と、
最後の前記行イメージの判定結果に基づく処理が終了すると、前記上端側行番号および前記下端側行番号に基づいて前記シリアルプリンタに印刷を行わせた前記行イメージの行数を算出し、前記行数と各行イメージを印刷するのに必要な前記記録紙の前記搬送方向の用紙寸法とを乗じることにより前記上端側行番号から前記下端側行番号までの各行イメージの印刷に費やされた前記記録紙の用紙長を算出し、前記シリアルプリンタが前記用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送する記録紙搬送工程とを有することを特徴とする。
【００２４】
本発明によれば、１ページ分の印刷データの印刷イメージを複数の行イメージに等分し、各行イメージには行番号を付与する。また、各行イメージが空白からなる空白イメージか否かを行番号に従って最初から最後まで逐次に判定する。そして、行イメージが空白イメージではないと判定された場合に、下端側行番号が記憶保持されていないときには、上端側行番号および下端側行番号を記憶保持した後にこの行イメージをシリアルプリンタに送信して印刷させる。この結果、空白ではないと最初に判定された行イメージの行番号を上端側行番号として記憶保持することができる。
【００２５】
また、下端側行番号が記憶保持されているときに空白イメージの行イメージをカウントするので、空白イメージではないと最初に判定された行イメージよりも上端側にある空白イメージの行イメージはカウントされずに無視される。この結果、この行イメージよりも上端側に位置している空白イメージの行イメージは印刷されないので、印刷イメージの上端側の空白領域である上端側空白領域を取り除くことができる。また、下端側行番号が記憶保持された後には空白イメージの行イメージはカウントされ、その後に行イメージが空白イメージではないと判定されたときに、空白行数が０でなければ空白行数分の空白イメージがまとめて印刷され、しかる後に、空白ではないと判定された行イメージが印刷される。この結果、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在するときには、空白イメージの行イメージは無視されることなく印刷される。従って、上端側空白領域および下端側の空白領域である下端側空白領域の間に挟まれている中間領域の内側にある帯状の空白領域が取り除かれてしまうことがない。また、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在しないときには、空白イメージの行イメージは空白行数としてカウントされるだけで印刷されない。従って、印刷イメージの下端側に含まれている下端側空白領域を取り除くことができる。
【００２６】
さらに、下端側行番号が記憶保持された後に、行イメージが空白イメージではないと判定された場合には、下端側行番号は空白イメージではないと判定された行イメージの行番号で更新されていく。従って、全ての行イメージに対する判定が終了したときは、空白イメージではない上端の行イメージの行番号と、空白イメージではない下端の行イメージの行番号がそれぞれ上端側行番号および下端側行番号として記憶保持されている。この結果、上端側行番号および下端側行番号に基づいてシリアルプリンタに印刷させた行イメージの行数を算出することができるので、この行数と各行イメージを印刷するのに必要な記録紙の搬送方向の用紙寸法とを乗じることにより上端側行番号から下端側行番号までの各行イメージの印刷に費やされた記録紙の用紙長を算出できる。よって、最後の行イメージに対する処理が行われた後に、シリアルプリンタが用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは印刷された下端側行番号の行イメージに対して搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、各ページの中間領域の下端部分が印刷される際に印刷ヘッドの印刷幅の下端部分まで用いられていたか、或いは、印刷ヘッドの印刷幅方向の一部分だけが用いられていたかに拘わらず、次の領域印刷データの印刷を中間領域に隣接する位置から開始することができる。また、各ページの印刷データの印刷イメージから上端側空白領域および下端側空白領域を取り除くことによりこれらの間に挟まれている中間領域が連続して印刷される場合に、印刷される各ページの中間領域の間に帯状の空白領域が形成されることがない。
【００２７】
また、各行イメージの印刷処理を逐次に行う過程で上端側行番号および下端側行番号を取得して、上端側行番号から下端側行番号までの各行イメージの印刷に費やされる記録紙の用紙長を算出することができるので、１ページ分の印刷データの印刷イメージをメモリに２次元展開しているときに上端側行番号および下端側行番号を特定して用紙長を算出するよりも、印刷動作のスループットが向上する。
【００２８】
本発明において、下端側空白領域だけを取り除いて印刷するためには、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの下端側に含まれている帯状の空白領域である下端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定工程と、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記判定工程に続いて最初の前記行番号を前記上端側行番号として記憶保持する上端側行番号記憶保持手段と、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記第１出力工程および前記第２出力工程に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記行イメージの行番号を前記下端側行番号として記憶保持し、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力工程とを含んでおり、前記カウント工程では、前記下端側空白領域だけを取り除いて印刷することが設定されている場合には、前記行イメージが前記空白イメージではないと判定されたとき、常に、前記空白行数をカウントすることが望ましい。
【００２９】
このようにすれば、上端側行番号記憶保持工程で最初の行番号を上端側行番号として記憶保持され、空白イメージではない行イメージは常に空白行数としてカウントされる。また、行イメージが空白イメージではないと判定された場合には、この行イメージの行番号で下端側行番号を更新した後に、空白行数が０でなければ空白行数分の空白イメージをまとめて印刷し、しかる後に、この行イメージを印刷する。従って、上端側空白領域は取り除かれることなく印刷される。さらに、最初の行番号が上端側行番号として記憶保持されているので、用紙長として最初の行イメージから下端側行番号の行イメージまでを印刷するのに必要な値が算出される。よって、記録紙搬送手段が、シリアルプリンタが用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは印刷された下端側行番号の行イメージに対し搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。
【００３０】
また、本発明において、上端側空白領域だけを取り除いて印刷するためには、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側に含まれている帯状の空白領域である上端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる除去領域設定工程を含んでおり、前記記録紙搬送工程では、前記上端側空白領域だけを取り除いて印刷することが設定されている場合には、前記下端側行番号に替えて最後の前記行番号を用いて前記行数を算出することが望ましい。このようにすれば、上端側行番号の行イメージから最後の行番号の行イメージまでの行数が算出されるので、用紙長として上端側行番号の行イメージから最後の行番号の行イメージまでを印刷するのに必要な値が算出される。従って、シリアルプリンタが用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは最後の行番号の行イメージが印刷される位置に対して搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。すなわち、下端側行番号の行イメージの下端側に空白イメージの行イメージが存在している場合には、下端側行番号の行イメージの印刷位置から空白イメージの行数分だけ離れた位置に印刷ヘッドが配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、下端側空白領域が取り除かれてしまうことがない。
【００３１】
また、本発明において、下端側空白領域および上端側空白領域を取り除かずに通常の印刷を行うためには、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、前記印刷イメージの上端側および下端側に含まれている帯状の空白領域のいずれも取り除かずに通常の印刷を行うか、を予め操作者に設定させる除去領域設定工程と、通常の印刷を行うことが設定されている場合には、前記第１出力工程および前記第２出力工程に替えて、前記行イメージが前記空白イメージではないと判定されたときに、前記空白行数分の前記空白イメージを前記シリアルプリンタに送信して印刷を行わせた後に当該空白行数をリセットし、前記行イメージを前記シリアルプリンタに送信して印刷を行わせる第３出力工程とを含んでおり、前記カウント工程では、通常の印刷を行うことが設定されている場合には、前記行イメージが前記空白イメージではないと判定されたとき、常に、前記空白行数をカウントし、前記記録紙搬送工程では、前記通常の印刷を行うことが設定されている場合には、前記シリアルプリンタが前記１ページの用紙長と一致する前記相対移動距離を取得するまで前記記録紙を搬送することを特徴とすることが望ましい。
【００３２】
このようにすれば、空白イメージではない行イメージは常に空白行数としてカウントされる。また、行イメージが空白イメージではないと判定された場合には、この行イメージの行番号で下端側行番号を更新した後に、空白行数分の空白イメージをまとめて印刷し、しかる後に、この行イメージを印刷する。従って、上端側空白領域は取り除かれることなく印刷される。また、１ページの用紙長は、プリンタドライバが１ページ分の印刷データを印刷する際に予め取得している値である。この値を用いて、シリアルプリンタが１ページの用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは最後の行番号の行イメージが印刷される位置に対して搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。すなわち、下端側行番号の行イメージの下端側に空白イメージの行イメージが存在している場合には、下端側行番号の行イメージの印刷位置から空白イメージの行数分だけ離れた位置に印刷ヘッドが配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、下端側空白領域が取り除かれてしまうことがない。また、このようにすれば、上端側行番号および下端側行番号を記憶保持しておく必要がなく、行数および用紙長を算出する必要がないので、印刷動作のスループットが向上する。
【００３３】
本発明において、前記シリアルプリンタを、ロール紙から繰り出されている長尺状の前記記録紙に印刷を行うロール紙プリンタとすれば、上端側空白領域や下端側空白領域を取り除いて印刷することにより得られる経済的な効果が高い。
【発明の効果】
【００３４】
本発明によれば、１ページ分の印刷データの印刷イメージを複数の行イメージに等分し、各行イメージには行番号を付与する。また、各行イメージが空白からなる空白イメージか否かを行番号に従って最初から最後まで逐次に判定する。そして、行イメージが空白イメージではないと判定された場合に、下端側行番号が記憶保持されていないときには、上端側行番号および下端側行番号を記憶保持した後にこの行イメージをシリアルプリンタに送信して印刷させる。この結果、空白ではないと最初に判定された行イメージの行番号を上端側行番号として記憶保持することができる。
【００３５】
また、下端側行番号が記憶保持されているときに空白イメージの行イメージをカウントするので、空白イメージではないと最初に判定された行イメージよりも上端側にある空白イメージの行イメージはカウントされずに無視される。この結果、この行イメージよりも上端側に位置している空白イメージの行イメージは印刷されないので、印刷イメージの上端側の空白領域である上端側空白領域を取り除くことができる。また、下端側行番号が記憶保持された後には空白イメージの行イメージはカウントされ、その後に行イメージが空白イメージではないと判定されたときに、空白行数が０でなければ空白行数分の空白イメージがまとめて印刷され、しかる後に、空白ではないと判定された行イメージが印刷される。この結果、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在するときには、空白イメージの行イメージは無視されることなく印刷される。従って、上端側空白領域および下端側の空白領域である下端側空白領域の間に挟まれている中間領域の内側にある帯状の空白領域が取り除かれてしまうことがない。また、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在しないときには、空白イメージの行イメージは空白行数としてカウントされるだけで印刷されない。従って、印刷イメージの下端側に含まれている下端側空白領域を取り除くことができる。
【００３６】
さらに、下端側行番号が記憶保持された後に、行イメージが空白イメージではないと判定された場合には、下端側行番号は空白イメージではないと判定された行イメージの行番号で更新されていく。従って、全ての行イメージに対する判定が終了すると、空白イメージではない上端の行イメージの行番号と、空白イメージではない下端の行イメージの行番号がそれぞれ上端側行番号および下端側行番号として記憶保持されている。この結果、上端側行番号および下端側行番号に基づいてシリアルプリンタに印刷させた行イメージの行数を算出することができるので、この行数と各行イメージを印刷するのに必要な記録紙の搬送方向の用紙寸法とを乗じることにより上端側行番号から下端側行番号までの各行イメージの印刷に費やされた記録紙の用紙長を算出できる。よって、最後の行イメージに対する処理が行われた後に、シリアルプリンタが用紙長と一致する相対移動距離を取得するまで記録紙を搬送すれば、印刷ヘッドは印刷された下端側行番号の行イメージに対して搬送方向に隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、各ページの中間領域の下端部分が印刷される際に印刷ヘッドの印刷幅の下端部分まで用いられていたか、或いは、印刷ヘッドの印刷幅方向の一部分だけが用いられていたかに拘わらず、次の領域印刷データの印刷を中間領域に隣接する位置から開始することができる。また、各ページの印刷データの印刷イメージから上端側空白領域および下端側空白領域を取り除くことによりこれらの間に挟まれている中間領域が連続して印刷される場合に、印刷される各ページの中間領域の間に帯状の空白領域が形成されることがない。
【００３７】
また、各行イメージの印刷処理を逐次に行う過程で上端側行番号および下端側行番号を取得して、上端側行番号から下端側行番号までの各行イメージの印刷に費やされる記録紙の用紙長を算出することができるので、１ページ分の印刷データの印刷イメージをメモリに２次元展開しているときに上端側行番号および下端側行番号を特定して用紙長を算出するよりも、印刷動作のスループットが向上する。
【発明を実施するための最良の形態】
【００３８】
以下に、図面を参照して、本発明の実施の形態を説明する。
【００３９】
（印刷システム）
図１は、本発明を適用したプリンタドライバを搭載している印刷システムを示す斜視図である。
【００４０】
本例の印刷システム１は、入出力装置として、ディスプレイ２、キーボード３、マウス４が接続されたコンピュータ５と、このコンピュータ５に接続されているロール紙プリンタ６を備えている。コンピュータ５には、オペレーティングシステム（ＯＳ）７と、ＯＳ７上で動作するアプリケーションプログラム８と、アプリケーションプログラム８から出力される印刷データを、ＯＳ７を介して受け取って、この印刷データを印刷するためにロール紙プリンタ６に送信し、印刷を行わせるプリンタドライバ９が搭載されている。
【００４１】
ロール紙プリンタ６は、印刷ヘッド１０を主走査方向に移動させながら記録紙１１に印刷を行う動作と、記録紙１１を主走査方向と直交する搬送方向Ａに搬送する動作とを繰り返しながら印刷を行うシリアルプリンタである。ロール紙プリンタ６は、１ページ分の印刷データを印刷する間に記録紙１１の搬送方向Ａにおける記録紙１１と印刷ヘッド１０の相対移動距離を取得する機能を備えている。相対移動距離は、例えば、印刷データに含まれている各ページの印刷データの印刷が始まる毎にリセットされ、記録紙１１が搬送される毎に取得されるようになっている。
【００４２】
記録紙１１は長尺状をしており、この記録紙１１を繰り出しているロール紙１２はロール紙プリンタ６の筐体１３の内部に収納されている。記録紙１１は印刷ヘッド１０を経由する搬送路に沿って搬送され、筐体１３の前面部分に形成されている記録紙排出口１４から排出される。
【００４３】
プリンタドライバ９は、アプリケーションプログラム８が生成した印刷データを印刷したときに各ページの上端側や下端側に形成されるマージンや空白行などを含む帯状の空白領域を取り除いて印刷する機能を備えている。
【００４４】
（プリンタドライバ）
図２はコンピュータ５に搭載されているプリンタドライバ９を説明するためのブロック図である。図３はプリンタドライバ９によってディスプレイ２上に表示されるダイアログボックスである。
【００４５】
プリンタドライバ９は、各種設定入力手段２１、行イメージ生成手段２２、判定手段２３、上端側行番号記憶保持手段２４、第１出力手段２５、カウンタ２６、第２出力手段２７、第３出力手段２８、記録紙搬送手段２９を備えている。
【００４６】
各種設定入力手段２１は、図３に示すダイアログボックス３０をディスプレイ２に表示する。ダイアログボックス３０には操作者に記録紙１１の用紙レイアウトを設定させるプルダウンメニュー３２が設けられており、操作者がこれらのメニューのうちの一つを選択すると、その値が１ページの用紙長として記憶保持される。また、各種設定入力手段２１は、操作者に印刷の際に空白領域を取り除くか否か、或いは、どの位置にある空白領域を取り除くか、を設定させる除去領域設定手段３１を有しており、この除去領域設定手段３１はダイアログボックス３０の中央部分にプルダウンメニュー３３を表示する。
【００４７】
プルダウンメニュー３３には、１ページ分の印刷データの印刷イメージの上端側に含まれている帯状の空白領域である上端側空白領域および下端側に含まれている帯状の空白領域である下端側空白領域を取り除いて印刷する「上下節約」、下端側空白領域だけを取り除いて印刷する「下節約」、上端側空白領域および下端側空白領域を取り除かずに通常の印刷をする「節約なし」が含まれている。操作者がこれらのメニューのうちの一つを選択すると、選択されたメニューが、印刷データを印刷する際の印刷モードとして設定される。
【００４８】
行イメージ生成手段２２は、印刷データを１ページ分の印刷データ毎にメモリに２次元展開して印刷イメージを生成する。また、この印刷イメージを搬送方向Ａに対応する上下方向と直交する複数の行イメージに等分して、各行イメージに上から行番号を付与する。
【００４９】
図４は行イメージ生成手段２２によってメモリに展開されている印刷イメージを模式的に示す説明図である。図４（ａ）は印刷データに含まれている第１のページの印刷データから生成された印刷イメージであり、図４（ｂ）は第２のページの印刷データから生成された印刷イメージである。各ページ分の印刷データの印刷イメージＢ１、Ｂ２の上端は、印刷時の記録紙１１の搬送方向Ａの下流側の端に対応しており、印刷イメージＢ１、Ｂ２の下端は記録紙１１の搬送方向Ａの上流側の端に対応している。各ページの印刷イメージは１８等分されており、各行イメージには０番から１７番までの行番号が付与される。本例では、各行イメージの上下方向の幅は印刷ヘッド１０の搬送方向Ａにおける印刷幅の１／４に対応している。なお、各行イメージの幅および印刷イメージを何等分するかは、任意である。
【００５０】
判定手段２３は、各行イメージが空白からなる空白イメージか否かを行番号に従って最初から最後まで逐次に判定する。
【００５１】
上端側行番号記憶保持手段２４は、「下節約」の印刷モードが設定されているときに、判定手段２３が判定を行うと最初の行番号を上端側行番号として記憶保持する。すなわち、「下節約」の印刷モードの場合には上端側行番号が０として記憶保持される。なお、「上下節約」の印刷モードが設定されている場合には、上端側行番号は第１出力手段２５によって記憶保持される。「節約なし」の印刷モードが設定されている場合には、上端側行番号は記憶保持されない。
【００５２】
第１出力手段２５は、「上下節約」の印刷モードが設定されているときに、行イメージが空白イメージではないと判定された場合に、下端側行番号が記憶保持されていなければ、この行イメージの行番号を上端側行番号および下端側行番号として記憶保持する。また、この行イメージをロール紙プリンタ６に送信して印刷を行わせる。すなわち、行イメージが空白イメージではないと最初に判定された場合に、第１出力手段２５は上端側行番号および下端側行番号を記憶保持し、この行イメージを印刷する。
【００５３】
カウンタ２６は、「上下節約」の印刷モードが設定されているときに行イメージが空白イメージではないと判定された場合には、下端側行番号が記憶保持されていれば、空白行数としてカウントする。「上下節約」の印刷モードでは、行イメージが空白イメージではないと最初に判定されたときに第１出力手段２５が下端側行番号を記憶保持するので、空白イメージではないと最初に判定された行イメージよりも上端側にある空白イメージの行イメージはカウントされずに無視される。また、カウンタ２６は、「下節約」および「節約なし」の印刷モードが設定されているときに行イメージが空白イメージではないと判定された場合には、常に、空白行数としてカウントする。
【００５４】
第２出力手段２７は、「上下節約」の印刷モードが設定されているときに、行イメージが空白イメージではないと判定された場合に、下端側行番号が記憶保持されていれば、この行イメージの行番号を下端側行番号として記憶保持する。すなわち、下端側行番号を更新する。また、空白行数分の空白イメージをロール紙プリンタ６に送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、この行イメージをロール紙プリンタ６に送信して印刷を行わせる。なお、空白行数が０の場合には、この行イメージだけをロール紙プリンタ６に送信して、印刷を行う。
【００５５】
第３出力手段２８は、「下節約」および「節約なし」の印刷モードが設定されているときに、第１出力手段２５および第２出力手段２７の替わりに処理動作を行うものであり、行イメージが空白イメージではないと判定されたときに、行イメージの行番号を下端側行番号として記憶保持する。すなわち、下端側行番号を更新する。また、空白行数分の空白イメージをロール紙プリンタ６に送信して印刷を行わせた後に当該空白行数をリセットし、しかる後に、行イメージをロール紙プリンタ６に送信して印刷を行わせる。なお、空白行数が０の場合には、この行イメージだけをロール紙プリンタ６に送信して、印刷を行う。
【００５６】
ここで、ロール紙プリンタ６は、第１出力手段２５、第２出力手段２７または第３出力手段２８から逐次に送信されてくる行イメージの行数が所定の行数分だけ印刷バッファに蓄えた時点、最後の行番号の行イメージを受信した時点、記録紙１１を搬送する制御指令を受信した時点などで、受信している行イメージを印刷データとしてまとめて印刷するものとすることができる。
【００５７】
記録紙搬送手段２９は、「上下節約」および「下節約」の印刷モードの場合には、最後の行番号の行イメージに対する判定結果に基づいた処理動作が終了すると、上端側行番号および下端側行番号に基づいてロール紙プリンタ６に印刷を行わせた行イメージの行数を算出する。例えば、下端側行番号から上端側行番号を差し引いて１を加えることにより行数を算出する。また、この行数と各行イメージを印刷するのに必要な記録紙１１の搬送方向Ａの用紙寸法とを乗じることにより上端側行番号から下端側行番号までの各行イメージの印刷に費やされた記録紙１１の用紙長を算出する。さらに、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送する。この結果、記録紙搬送手段２９は、最初に印刷が行われた行イメージの印刷開始位置から印刷に費やされた用紙長だけ記録紙１１を搬送されるので、ロール紙プリンタ６の印刷ヘッド１０は印刷された最後の行イメージに対して搬送方向Ａに隣接する位置に配置される。そして、この位置が次の１ページの印刷データの印刷開始位置になる。
【００５８】
また、記録紙搬送手段２９は、「節約なし」の印刷モードの場合には、行数および用紙長を算出せずに、用紙長としてプリンタドライバが１ページ分の印刷データを印刷する際に予め有している１ページの用紙長を用いて、記録紙１１を搬送する。すなわち、印刷データの印刷が行われる前に操作者が各種設定入力手段２１を介して用紙レイアウトを設定したときにプリンタドライバ９は１ページの用紙長を取得しているので、この値を用紙長として用いる。ここで、記録紙搬送手段２９が、ロール紙プリンタ６が１ページの用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷ヘッド１０は、最初の行イメージの印刷開始位置から搬送方向Ａに１ページの用紙長だけ相対移動する。この結果、下端側行番号の行イメージの下端側に空白イメージの行イメージが存在している場合には、下端側行番号の行イメージの印刷位置から空白イメージの行数分だけ離れた位置に印刷ヘッド１０が配置される。また、この位置が次の１ページの印刷データの印刷開始位置になるので、下端側空白領域が取り除かれてしまうことがない。
【００５９】
（印刷データの印刷動作）
図５から図８を参照して、プリンタドライバ９による１ページ分の印刷データの印刷動作を説明する。図５はプリンタドライバ９による１ページ分の印刷データの印刷動作を示すフローチャートである。図６は「上下節約」の印刷モードの場合に、各行イメージに対してどのような処理が行われたかを示す説明図である。図７は「下節約」の印刷モードの場合に、各行イメージに対してどのような処理が行われたかを示す説明図である。図８は「節約なし」の印刷モードの場合に、各行イメージに対してどのような処理が行われたかを示す説明図である。図６、７、８、９にある前処理、後処理とは、１ページ分の印刷データを印刷する際にプリンタドライバからロール紙プリンタ６に所定の制御指令を送信する処理である。
【００６０】
操作者は予めディスプレイ２上に表示されたダイアログボックス３０のプルダウンメニュー３２から、「上下節約」、「下節約」、「節約なし」、のいずれかのメニューを選択しており、選択されたメニューが印刷モードとして設定されているものとする。
【００６１】
操作者によって印刷データの印刷が指示されると、図５に示すように、行イメージ生成手段２２は１ページ分の印刷データをメモリに展開して印刷イメージを生成し、これを１８に等分した各行イメージに０から１７までの番号を付与する（ステップＳＴ１）。そして、各行イメージが空白からなる空白イメージか否かの判定を、行番号に従って、最初から最後まで逐次に行う（ステップＳＴ２）。
【００６２】
行イメージに対する判定が行われると、印刷モードの確認が行われる。ステップＳＴ３では「節約なし」の印刷モードか否かが確認される。ステップＳＴ３で「節約なし」の印刷モードではないと確認されると、ステップＳＴ４で「上下節約」の印刷モードか否かが確認される。
【００６３】
ステップＳＴ４において、確認された印刷モードが「上下節約」の場合には、下端側行番号が記憶保持されているか否かが確認される（ステップＳＴ５）。すなわち、ステップＳＴ５では、空白行イメージではない行イメージであると判定された行イメージが存在している否かが判断される。
【００６４】
ステップＳＴ５において、下端側行番号が記憶保持されていない場合には、行イメージの判定結果が確認される（ステップＳＴ６）。
【００６５】
ステップＳＴ６で、判定結果が空白イメージの場合には、この行イメージ対する処理動作は終了する。すなわち、下端側行番号が記憶保持されていないときには、カウンタ２６は空白イメージの行イメージをカウントしないので、この行イメージに対する処理動作は行われずに、無視される。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ７）、次の行イメージに対する判定に移る。
【００６６】
ステップＳＴ６で、判定結果が空白イメージではない行イメージの場合には、この行イメージは、空白イメージではないと最初に判定された行イメージである。従って、第１出力手段２５による処理が行われる。すなわち、この行イメージの行番号を上端側行番号として記憶保持する（ステップＳＴ８）。更に判定結果を確認すると（ステップＳＴ９）、この行イメージは空白イメージでないので、この行イメージの行番号を下端側行番号として記憶保持する（ステップＳＴ１０）。
【００６７】
ここで、空白行数が０か否かが確認されるが（ステップＳＴ１１）、「上下節約」の印刷モードの場合には、この行イメージよりも上端側にある空白の行イメージに対する処理動作は行われずに無視されているので、空白行数はカウントされておらず０である。よって、この行イメージだけがロール紙プリンタに送信され、印刷が行われる（ステップＳＴ１２）。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ７）、次の行イメージに対する判定に移る。
【００６８】
図６に示すように、第１のページの例では、行番号２の行イメージに対する処理動作において、行イメージが空白イメージではないと最初に判定される。従って、上端側行番号および下端側行番号として行番号２が記憶保持され、しかる後に、行番号２の行イメージがロール紙プリンタに送信され、印刷される。下端側行番号が記憶保持される前の行番号０、１の行イメージは、空白行数にカウントされていない。第２のページの例では、行番号５の行イメージに対する処理動作において、行イメージが空白イメージではないと最初に判定される。従って、上端側行番号および下端側行番号として行番号５が記憶保持され、しかる後に、行番号５の行イメージがロール紙プリンタに送信され、印刷が行われる。下端側行番号が記憶保持される前の行番号０〜４の行イメージは、空白行数にカウントされていない。
【００６９】
次に、ステップＳＴ５において、下端側行番号が記憶保持されている場合には、ステップＳＴ９に移行する。
【００７０】
ステップＳＴ９で、この行イメージが空白イメージの場合には、カウンタ２６はこの行イメージを空白行数にカウントする（ステップＳＴ１３）。すなわち、ステップＳＴ５からステップＳＴ９へ移行した場合には、既に空白イメージではないと判定された行イメージが存在しており、第１出力手段２５によって下端側行番号が記憶保持されている。従って、カウンタ２６は空白行数をカウントする。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ７）、次の行イメージに対する判定に移る。
【００７１】
図６に示すように、第１のページの例では、行番号６〜１１の各行イメージに対する処理動作において空白行数がカウントされる。この結果、空白行数は６になる。また、行番号１７の行イメージに対する処理動作において空白行数がカウントされる。この結果、空白行数は１になる。第２のページの例では、行番号８〜１７の各行イメージに対する処理動作において空白行数がカウントされる。カウントされる空白行数は１０である。
【００７２】
ステップＳＴ９で、この行イメージが空白イメージではない場合には、第２出力手段２７による処理が行われる。すなわち、ステップＳＴ５からステップＳＴ９へ移行した場合には、既に空白イメージではないと判定された行イメージが存在しており、第１出力手段２５によって下端側行番号が記憶保持されている。従って、第２出力手段２７はこの行イメージの行番号を下端側行番号として記憶保持する（ステップＳＴ１０）。また、空白行数が０か否かを確認し（ステップＳＴ１１）、空白行数が０でなければ空白行数分の空白イメージをロール紙プリンタに送信して印刷を行わせ（ステップＳＴ１４）、この空白行数をリセットする（ステップＳＴ１５）。しかる後に、この行イメージをロール紙プリンタに送信して印刷を行わせる（ステップＳＴ１２）。ステップＳＴ１１で空白行数が０の場合には、この行イメージだけをロール紙プリンタに送信して印刷を行わせる（ステップＳＴ１２）。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ７）、次の行イメージに対する判定に移る。
【００７３】
図６に示すように、第１のページの例では、行番号３〜５の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて５になり、各行イメージはロール紙プリンタに送信されて印刷される。また、これら各行イメージが送信されるときには空白行数はカウントされておらず０なので、各行イメージだけがロール紙プリンタに送信されて印刷される。次に、行番号１２〜１６の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて１６になる。また、各行イメージはロール紙プリンタに送信されて印刷される。ここで、行番号１２の行イメージに対する処理動作の際には、行番号６〜１１の各行イメージが空白行としてカウントされており、空白行数が６になっている。従って、第２出力手段２７は、行番号１２の行イメージをロール紙プリンタに送信して印刷させる前に、６行分の空白イメージをロール紙プリンタに送信して、印刷させる。なお、行番号１６の行イメージに対する処理動作の後に、行番号１７の空白イメージの行イメージ存在しており、カウンタ２６は空白行数を１カウントしているが、その後に、空白イメージではないと判断される行イメージがないので、この空白行数は無視される。すなわち、行番号１８の空白の行イメージは印刷されない。
【００７４】
第２のページの例では、行番号６、７の各行イメージに対する処理動作において下端側行番号は逐次に更新されて７になる。また、各行イメージはロール紙プリンタに送信されて印刷される。これら各行イメージが送信されるときには空白行数はカウントされておらず０なので、各行イメージだけがロール紙プリンタで印刷される。ここで、第２のページの例では、行番号７の行イメージに対する処理動作の後に、行番号８〜１７の空白イメージの行イメージ存在しており、カウンタ２６はこれらをカウントして空白行数を１０としているが、その後に、空白イメージではないと判断される行イメージがないので、これら空白行数分の空白イメージは第２出力手段２７によってロール紙プリンタに送信されることはなく、無視される。すなわち、行番号８〜１７の空白の行イメージは印刷されない。
【００７５】
次に、ステップＳＴ４で、確認された印刷モードが「上下節約」でない場合、すなわち「下節約」の印刷モードの場合には、上端側行番号記憶保持手段２４は、上端側行番号に最初の行番号の０を記憶保持する（ステップＳＴ１７）。しかる後に、ステップＳＴ９に移行する。
【００７６】
ステップＳＴ９で、この行イメージが空白イメージの場合には、カウンタ２６はこの行イメージを空白行数にカウントする（ステップＳＴ１３）。すなわち、ステップＳＴ１７からステップＳＴ９に移行してきた場合には、「下節約」の印刷モードなので、カウンタ２６は常に空白イメージの行イメージをカウントする。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ７）、次の行イメージに対する判定に移る。
【００７７】
ステップＳＴ９で、この行イメージが空白イメージではない場合には、この行イメージの行番号を下端側行番号として記憶保持する（ステップＳＴ１０）。また、空白行数が０か否かを確認し（ステップＳＴ１１）、空白行数が０でなければ空白行数分の空白イメージをロール紙プリンタ６に送信して印刷を行わせ（ステップＳＴ１４）、この空白行数をリセットする（ステップＳＴ１５）。しかる後に、この行イメージをロール紙プリンタ６に送信して印刷を行わせる（ステップＳＴ１２）。空白行数が０の場合には、この行イメージだけをロール紙プリンタ６に送信して印刷を行わせる（ステップＳＴ１２）。ここで、ステップＳＴ１６からステップＳＴ９に移行してきた場合には、「下節約」の印刷モードなので、これらステップＳＴ１０、ＳＴ１１、ＳＴ１２、ＳＴ１４、ＳＴ１５の動作は第３出力手段２８によって処理される。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ８）、次の行イメージに対する判定に移る。
【００７８】
図７に示すように、第１のページの例では、行番号０、１の各行イメージに対する処理動作において、空白行数がカウントされる。この結果、空白行数は２になる。行番号３〜５の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて５になり、各行イメージはロール紙プリンタ６に送信されて印刷される。ここで、行番号３に対する印刷処理の際には、カウントされた空白行数の２行分の空白イメージが印刷される。次に、行番号６〜１１の各行イメージに対する処理動作において空白行数がカウントされる。この結果、空白行数は６になる。行番号１２〜１６の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて１６になり、各行イメージはロール紙プリンタ６に送信されて印刷される。ここで、行番号１２の行イメージに対する処理動作の際には、カウントされた空白行数の６行分の空白イメージが印刷される。なお、行番号１６の行イメージに対する処理動作の後に、行番号１７の空白イメージの行イメージ存在しており、カウンタ２６は空白行数を１カウントするが、その後に、空白イメージではないと判断される行イメージがないので、この空白行数は無視される。すなわち、行番号１８の空白の行イメージは印刷されない。
【００７９】
第２のページの例では、行番号０〜４の各行イメージに対する処理動作において、空白行数がカウントされる。この結果、空白行数は５になる。行番号５〜７の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて７になり、各行イメージはロール紙プリンタ６に送信されて印刷される。ここで、行番号５に対する印刷処理の際には、カウントされた空白行数分の５行分の空白イメージが印刷される。なお、行番号７の行イメージに対する処理動作の後に、行番号８〜１７の空白イメージの行イメージ存在しており、カウンタ２６はこれらをカウントして空白行数を１０とするが、その後に、空白イメージではないと判断される行イメージがないので、これら空白行数分の空白イメージは無視される。すなわち、行番号８〜１７の空白の行イメージは印刷されない。
【００８０】
次に、ステップＳＴ３で、確認された印刷モードが「節約なし」の場合には、ステップＳＴ９に移行する。
【００８１】
ステップＳＴ９で、この行イメージが空白イメージの場合には、カウンタ２６はこの行イメージを空白行数にカウントする（ステップＳＴ１３）。すなわち、ステップＳＴ４からステップＳＴ９に移行してきた場合には、「節約なし」の印刷モードなので、カウンタ２６は常に空白イメージの行イメージをカウントする。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ７）、次の行イメージに対する判定に移る。
【００８２】
ステップＳＴ９で、この行イメージが空白イメージではない場合には、この行イメージの行番号を下端側行番号として記憶保持する（ステップＳＴ１０）。また、空白行数が０か否かを確認し（ステップＳＴ１１）、空白行数が０でなければ空白行数分の空白イメージをロール紙プリンタ６に送信して印刷を行わせ（ステップＳＴ１４）、この空白行数をリセットする（ステップＳＴ１５）。しかる後に、この行イメージをロール紙プリンタ６に送信して印刷を行わせる（ステップＳＴ１２）。空白行数が０の場合には、この行イメージだけをロール紙プリンタ６に送信して印刷を行わせる（ステップＳＴ１２）。ここで、ステップＳＴ４からステップＳＴ９に移行してきた場合には、「節約なし」の印刷モードなので、これらステップＳＴ１０、ＳＴ１１、ＳＴ１２、ＳＴ１４、ＳＴ１５の動作は第３出力手段２８により処理される。しかる後に、この行イメージが最後の行番号の行イメージでない場合には（ステップＳＴ７）、次の行イメージに対する判定に移る。
【００８３】
図８に示すように、第１のページの例では、行番号０、１の各行イメージに対する処理動作において、空白行数がカウントされる。この結果、空白行数は２になる。行番号３〜５の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて５になり、各行イメージはロール紙プリンタ６に送信されて印刷される。ここで、行番号３に対する印刷処理の際には、カウントされた空白行数の２行分の空白イメージが印刷される。次に、行番号６〜１１の各行イメージに対する処理動作において空白行数がカウントされる。この結果、空白行数は６になる。行番号１２〜１６の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて１６になり、各行イメージはロール紙プリンタ６に送信されて印刷される。ここで、行番号１２の行イメージに対する処理動作の際には、カウントされた空白行数の６行分の空白イメージが印刷される。なお、行番号１６の行イメージに対する処理動作の後に、行番号１７の空白イメージの行イメージ存在しており、カウンタ２６は空白行数を１カウントするが、その後に、空白イメージではないと判断される行イメージがないので、この空白行数は無視される。すなわち、行番号１８の空白の行イメージは印刷されない。
【００８４】
第２のページの例では、行番号０〜４の各行イメージに対する処理動作において、空白行数がカウントされる。この結果、空白行数は５になる。行番号５〜７の各行イメージに対する処理動作において、下端側行番号は逐次に更新されて７になり、各行イメージはロール紙プリンタ６に送信されて印刷される。ここで、行番号５に対する印刷処理の際には、カウントされた空白行数分の５行分の空白イメージが印刷される。なお、行番号７の行イメージに対する処理動作の後に、行番号８〜１７の空白イメージの行イメージ存在しており、カウンタ２６はこれらをカウントして空白行数を１０とするが、その後に、空白イメージではないと判断される行イメージがないので、これら空白行数分の空白イメージは無視される。すなわち、行番号８〜１７の空白の行イメージは印刷されない。
【００８５】
次に、図５に示すように、全ての行イメージに対する判定が行われ、最後の行番号の行イメージに対する判定結果に基づいた処理動作が終了すると（ステップＳＴ７）、ステップＳＴ１７に移行して、再び印刷モードを確認する。
【００８６】
ステップＳＴ１７において、「上下節約」および「下節約」の印刷モードの場合には、記録紙搬送手段２９は、上端側行番号および下端側行番号に基づいてロール紙プリンタ６に印刷を行わせた行イメージの行数を算出する（ステップＳＴ１８）。また、この行数と各行イメージを印刷するのに必要な搬送方向Ａの用紙寸法とを乗じることにより上端側行番号から下端側行番号までの各行イメージの印刷に費やされた記録紙１１の用紙長を算出し（ステップＳＴ１９）、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送する（ステップＳＴ２０）。
【００８７】
「上下節約」の印刷モードの場合には、図６に示すように、第１のページの例では、下端側行番号の１６から上端側行番号２を差し引いた値に１を加えることにより、行数として１５が算出される。また、１５行数分だけ行イメージを印刷するのに消費された用紙長が算出される。従って、記録紙搬送手段２９が、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷開始位置にあった印刷ヘッド１０（１）は、印刷開始位置から印刷に費やされた１５行分の用紙長だけ離れた位置に相対移動し、印刷ヘッド１０（２）として示されるように、下端側行番号の１６の行イメージの印刷結果に対して搬送方向Ａに隣接する位置に配置される。また、この位置が次の１ページの印刷データの印刷開始位置になる。
【００８８】
第２のページの例では、下端側行番号の７から上端側行番号５を差し引いた値に１を加えることにより、行数として３が算出される。また、３行数分だけ行イメージを印刷するのに消費された用紙長が算出される。従って、記録紙搬送手段２９が、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷開始位置にあった印刷ヘッド１０（１）は印刷開始位置から印刷に費やされた３行分の用紙長だけ離れた位置に相対移動して、印刷ヘッド１０（２）として示されるように下端側行番号の７の行イメージの印刷結果に対して搬送方向Ａに隣接する位置に配置される。また、この位置が次の１ページの印刷データの印刷開始位置になる。
【００８９】
「下節約」の印刷モードの場合には、図７に示すように、第１ページの例では、下端側行番号の１６から上端側行番号０を差し引いた値に１を加えることにより、行数として１７が算出される。また、１７行数分だけ行イメージを印刷するのに消費された用紙長が算出される。従って、記録紙搬送手段２９が、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷開始位置にあった印刷ヘッド１０（１）は、印刷開始位置から印刷に費やされた１７行分の用紙長だけ離れた位置に相対移動し、印刷ヘッド１０（２）として示されるように下端側行番号の１６の行イメージの印刷結果に対して搬送方向Ａに隣接する位置に配置される。また、この位置が次の１ページの印刷データの印刷開始位置になる。
【００９０】
第２のページの例では、下端側行番号の７から上端側行番号０を差し引いた値に１を加えることにより、行数として８が算出される。また、８行数分だけ行イメージを印刷するのに消費された用紙長が算出される。従って、記録紙搬送手段２９が、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷開始位置にあった印刷ヘッド１０（１）は、印刷開始位置から印刷に費やされた８行分の用紙長だけ離れた位置に相対移動して、印刷ヘッド１０（２）として示されるように下端側行番号の７の行イメージの印刷結果に対して搬送方向Ａに隣接する位置に配置される。また、この位置が次の１ページの印刷データの印刷開始位置になる。
【００９１】
次に、ステップＳＴ１７において、確認された印刷モードが「節約なし」の場合には、行数および用紙長は算出されず、ステップＳＴ２０で、ロール紙プリンタ６が１ページの用紙長と一致する相対移動距離を取得するまで記録紙１１が搬送される。ここで、１ページの用紙長とは、印刷データの印刷が行われる前に操作者が各種設定入力手段２１を介して用紙レイアウトを設定したときにプリンタドライバ９が取得している値であり、１８行数分だけ行イメージを印刷するのに必要な用紙長である。
【００９２】
従って、図８に示すように、第１および第２のページの例では、記録紙搬送手段２９が、ロール紙プリンタ６が１ページの用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷開始位置にあった印刷ヘッド１０（１）は印刷開始位置から１ページの用紙長だけ相対移動して、印刷ヘッド１０（２）として示されるように最後の行番号の１７の行イメージの印刷結果に対して搬送方向Ａに隣接する位置に配置される。
【００９３】
すなわち、下端側行番号の行イメージの下端側に空白イメージの行イメージが存在している場合には、下端側行番号の行イメージの印刷位置から空白イメージの行数分だけ離れた位置に印刷ヘッドが配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、下端側空白領域が取り除かれてしまうことがない。
【００９４】
なお、１ページ分の印刷データの印刷動作は、印刷データに含まれている１ページ分の印刷データがなくなるまで繰り返される。
【００９５】
(本形態の効果)
本例によれば、行イメージ生成手段２２は１ページ分の印刷データの印刷イメージを複数の行イメージに等分し、各行イメージには行番号を付与する。また、判定手段２３は各行イメージが空白からなる空白イメージか否かを行番号に従って最初から最後まで逐次に判定する。そして、行イメージが空白イメージではないと判定された場合に、下端側行番号が記憶保持されていないときには、第１出力手段２５は、上端側行番号および下端側行番号を記憶保持した後にこの行イメージをロール紙プリンタ６に送信して印刷させる。この結果、空白ではないと最初に判定された行イメージの行番号を上端側行番号として記憶保持することができる。
【００９６】
また、カウンタ２６は、下端側行番号が記憶保持されているときに空白イメージの行イメージをカウントするので、空白イメージではないと最初に判定された行イメージよりも上端側にある空白イメージの行イメージはカウントされずに無視される。この結果、この行イメージよりも上端側に位置している空白イメージの行イメージは印刷されないので、印刷イメージの上端側の空白領域である上端側空白領域を取り除くことができる。また、下端側行番号が記憶保持された後には空白イメージの行イメージはカウントされ、その後に行イメージが空白イメージではないと判定されたときに、第２出力手段２７は、空白行数が０でなければ空白行数分の空白イメージをまとめて印刷し、しかる後に、空白ではないと判定された行イメージを印刷する。この結果、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在するときには、空白イメージの行イメージは無視されることなく印刷される。従って、上端側空白領域および下端側の空白領域である下端側空白領域の間に挟まれている中間領域の内側にある帯状の空白領域が取り除かれてしまうことがない。また、空白イメージと判定された行イメージよりも下端側に空白イメージではない行イメージが存在しないときには、空白イメージの行イメージは空白行数としてカウントされるだけで印刷されない。従って、印刷イメージの下端側に含まれている下端側空白領域を取り除くことができる。
【００９７】
さらに、下端側行番号が記憶保持された後に、行イメージが空白イメージではないと判定された場合には、下端側行番号は第２出力手段２７によって空白イメージではないと判定された行イメージの行番号で更新されていく。従って、全ての行イメージに対する判定が終了すると、空白イメージではない上端の行イメージの行番号と、空白イメージではない下端の行イメージの行番号がそれぞれ上端側行番号および下端側行番号として記憶保持されている。この結果、上端側行番号および下端側行番号に基づいてロール紙プリンタ６に印刷させた行イメージの行数を算出することができるので、この行数と各行イメージを印刷するのに必要な記録紙１１の搬送方向Ａの用紙寸法とを乗じることにより上端側行番号から下端側行番号までの各行イメージの印刷に費やされた記録紙１１の用紙長を算出できる。よって、最後の行イメージに対する処理動作が終了した後に、記録紙１１搬送手段２９が、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すれば、印刷ヘッド１０は印刷された下端側行番号の行イメージに対して搬送方向Ａに隣接する位置に配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、各ページの中間領域の下端部分が印刷される際に印刷ヘッド１０の印刷幅の下端部分まで用いられていたか、或いは、印刷ヘッド１０の印刷幅方向の一部分だけが用いられていたかに拘わらず、次の領域印刷データの印刷を中間領域に隣接する位置から開始することができる。また、各ページの印刷データの印刷イメージから上端側空白領域および下端側空白領域を取り除くことによりこれらの間に挟まれている中間領域が連続して印刷される場合に、印刷される各ページの中間領域の間に帯状の空白領域が形成されることがない。
【００９８】
また、各行イメージの印刷処理を逐次に行う過程で上端側行番号および下端側行番号を取得して、上端側行番号から下端側行番号までの各行イメージの印刷に費やされる記録紙１１の用紙長を算出することができるので、１ページ分の印刷データの印刷イメージをメモリに２次元展開しているときに上端側行番号および下端側行番号を特定して用紙長を算出するよりも、印刷動作のスループットが向上する。
【００９９】
また、本例によれば、操作者の選択によって、下端側空白領域だけを除去して印刷したり、通常の印刷を行ったりすることができるので、印刷データに含まれている印刷内容や、印刷の目的に即した印刷をすることができる。
【０１００】
（その他の実施の形態）
上記の３つの印刷モードに加えて、上端側空白領域だけを取り除いて印刷する「上節約」の印刷モードを追加することもできる。
【０１０１】
この場合には、除去領域設定手段３１は、印刷イメージの上端側および下端側に含まれている帯状の空白領域を取り除いて印刷するか、印刷イメージの上端側に含まれている帯状の空白領域である上端側空白領域だけを取り除いて印刷するか、を予め操作者に設定させる。また、各行イメージの判定結果に基づく処理動作は、「上下節約」の印刷モードに設定されている場合と同様に、第１出力手段２５、カウンタ２６、第２出力手段２７によって行なわせる。そして、記録紙搬送手段２９は、上端側空白領域だけを取り除いて印刷することが設定されている場合には、下端側行番号に替えて最後の行番号を用いて行数を算出するようにする。
【０１０２】
図９は「上節約」の印刷モードの場合に、各行イメージに対してどのような処理が行われたかを示す説明図である。図９に示すように、第１のページの例では、最後の行番号の１７から上端側行番号２を差し引いた値に１を加えることにより、行数として１６が算出される。また、１６行数分だけ行イメージを印刷するのに消費された用紙長が算出される。従って、記録紙搬送手段２９が、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷開始位置にあった印刷ヘッド１０（１）は印刷開始位置から印刷に費やされた１６行分の用紙長だけ相対移動して、印刷ヘッド１０（２）として示されるように最後の行番号の１７の行イメージの印刷結果に対して搬送方向Ａに隣接する位置に配置される。すなわち、下端側行番号の１６の行イメージの下端側に空白イメージの行イメージが１行存在している場合には、下端側行番号の行イメージの印刷位置から１行分だけ離れた位置に印刷ヘッド１０が配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、下端側空白領域が取り除かれてしまうことがない。
【０１０３】
第２のページの例でも、最後の行番号の１７から上端側行番号５を差し引いた値に１を加えることにより、行数として１３が算出される。また、１３行数分だけ行イメージを印刷するのに消費された用紙長が算出される。従って、記録紙搬送手段２９が、ロール紙プリンタ６が用紙長と一致する相対移動距離を取得するまで記録紙１１を搬送すると、印刷開始位置にあった印刷ヘッド１０（１）は印刷開始位置から印刷に費やされた１３行分の用紙長だけ相対移動して、印刷ヘッド１０（２）として示されるように最後の行番号の１７の行イメージの印刷結果に対して搬送方向Ａに隣接する位置に配置される。すなわち、下端側行番号の７の行イメージの下端側に空白イメージの行イメージが１０行存在している場合には、下端側行番号の行イメージの印刷位置から１０行分だけ離れた位置に印刷ヘッド１０が配置され、この位置が次の１ページの印刷データの印刷開始位置になる。従って、下端側空白領域が取り除かれてしまうことがない。
【０１０４】
なお、設定されている印刷モードが「節約なし」の場合には、行数および用紙長は算出されないので、第３印刷手段は下端側行番号を記憶保持しなくてもよい。
【０１０５】
また、本発明を適用できるプリンタはロール紙プリンタ６に限られるものではなく、単票を印刷するプリンタに適用することもできる。
【図面の簡単な説明】
【０１０６】
【図１】本発明のプリンタドライバを搭載する印刷システムの斜視図である。
【図２】本発明のプリンタドライバを説明するためのブロック図である。
【図３】プリンタドライバが表示するダイアログボックスである。
【図４】印刷イメージを示す模式図である
【図５】１ページ分の印刷データの印刷動作を示すフローチャートである。
【図６】各行イメージに対してどのような処理が行われたかを示す説明図である。
【図７】各行イメージに対してどのような処理が行われたかを示す説明図である。
【図８】各行イメージに対してどのような処理が行われたかを示す説明図である。
【図９】各行イメージに対してどのような処理が行われたかを示す説明図である。
【図１０】従来例において印刷ヘッドが配置される位置を説明するための説明図である。
【符号の説明】
【０１０７】
１・印刷システム、２・ディスプレイ、３・キーボード、４・マウス、５・コンピュータ、６・ロール紙プリンタ、７・オペレーティングシステム、８・アプリケーションプログラム、９・プリンタドライバ、１０・印刷ヘッド、１１・記録紙、１２・ロール紙、１３・筐体、１４・記録紙排出口、２１・各種設定入力手段、２２・行イメージ生成手段、２３・判定手段、２４・上端側行番号記憶保持手段、２５・第１出力手段、２６・カウンタ、２７・第２出力手段、２８・第３出力手段、２９・記録紙搬送手段、３１・除去領域設定手段、３２，３３・プルダウンメニュー、Ａ・搬送方向、Ｂ１，Ｂ２・印刷イメージ、Ｑ・印刷幅、Ｐ・印刷ヘッドの印刷に使用された一部分、Ｒ・印刷ヘッドの印刷に使用されなかった一部分
【図１】
2009295070.tif 000003
【図２】
2009295070.tif 000004
【図５】
2009295070.tif 000005
【図１０】
2009295070.tif 000006
【図３】
2009295070.tif 000007
【図４】
2009295070.tif 000008
【図６】
2009295070.tif 000009
【図７】
2009295070.tif 000010
【図８】
2009295070.tif 000011
【図９】
2009295070.tif 000012