(57)【要約】【課題】ホストコンピュータに搭載されるアプリケーションプログラムやプリンタドライバを変更せずとも、用紙幅が小さな用紙に、印字体裁を保った視認性の良い印刷を実施できるプリンタを提供すること。【解決手段】ホストコンピュータ３から送信された印刷データ５に基づき印刷するプリンタ１の制御方法であって、少なくとも１ページ分の印刷範囲が設定し印刷範囲に印刷データを展開するステップＳ１３と、印刷範囲に展開された１ページ分の印刷データに、所定値以上連続した空白データが含まれているか否かを判定し、含まれている場合には連続した空白データを削除して縮小印刷データ５１を生成するステップＳ１５,ステップＳ１６と、縮小印刷データ５１に基づき印刷するステップ１７と、を有する。【選択図】図３
2010017933.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから送信された印刷データに基づき印刷するプリンタであって、
前記印刷データから実印刷データを展開して記憶部に記憶するデータ展開部と、
前記記憶部に記憶された前記実印刷データに、所定値以上連続した空白データが含まれているか否かを判定し、含まれている場合には前記連続した空白データを削除して所定の印刷範囲内に前記実印刷データを生成する制御部と、
前記実印刷データに基づき印刷する印刷実行部と、を有することを特徴とするプリンタ。
【請求項２】
前記制御部は、前記印刷データのデータ属性を抽出し、前記データ属性に基づき前記印刷範囲を、前記空白データを削除する削除対象領域と非削除領域とに区別し、前記削除対象領域に含まれる前記空白データのみを削除することを特徴とする請求項１に記載のプリンタ。
【請求項３】
前記制御部は、前記削除対象領域のうち、空白データが第１の方向に所定値以上連続した空白データを削除する第１の削除、及び空白データが前記第１の方向と直行する第２の方向に所定値以上連続した空白データを削除する第２の削除の少なくとも一方を実行すること特徴とする請求項１または２に記載のプリンタ。
【請求項４】
前記実印刷データが文字データから展開されたものを含み、前記第２の方向は前記文字データの行方向に相当するものである場合、
前記制御部は、前記第２の削除を実行するときは、前記文字データが複数行連続して展開されているものを含む連続文字領域と、前記連続文字領域以外の領域とで、削除する空白データの割合を変えることを特徴とする請求項３に記載のプリンタ。
【請求項５】
前記実印刷データが、前記印刷範囲を所定の区域に区切る区切りデータから展開されたものを含む場合、
前記制御部は、前記削除対象領域内に前記区切りデータから展開されたものが含まれるときは、前記空白データ及び前記空白データと隣接する前記区切りデータから展開された実印刷データを削除することを特徴とする請求項３または４に記載のプリンタ。
【請求項６】
前記実印刷データが、前記印刷範囲を所定の区域に区切る区切りデータから展開されたものを含む場合、
前記制御部は、前記削除対象領域内に前記区切りデータから展開されたものが含まれるときは、前記削除対象領域を前記区切りデータから展開された実印刷データに応じて複数の分割領域に分割し、前記分割領域毎に削除することを特徴とする請求項３または４に記載のプリンタ。
【請求項７】
前記制御部は、前記空白データを削除した後、前記実印刷データの印刷位置を再配置することを特徴とする請求項６に記載のプリンタ。
【請求項８】
ホストコンピュータから送信された印刷データに基づき印刷するプリンタの制御方法であって、
前記印刷データから実印刷データを展開して記憶するステップと、
前記記憶された実印刷データに、所定値以上連続した空白データが含まれているか否かを判定し、含まれている場合には前記連続した空白データを削除して所定の印刷範囲内に前記実印刷データを生成するステップと、
前記実印刷データに基づき印刷するステップと、を有することを特徴とするプリンタの制御方法。
【請求項９】
プリンタに接続されるコンピュータに搭載されるもので、
前記コンピュータ上のアプリケーションソフトから渡される印刷データから実印刷データを展開し記憶するステップと、
前記記憶された実印刷データに、所定値以上連続した空白データが含まれているか否かを判定し、含まれている場合には前記連続した空白データを削除して所定の印刷範囲内に前記実印刷データを生成するステップと、
前記実印刷データをプリンタへ送信するステップと、を実行させることを特徴とするドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータから送信された印刷データに基づき印刷するプリンタ、プリンタの制御方法及びドライバに関する。
【背景技術】
【０００２】
近年、各種の販売店では、レジ打ち作業を軽減するとともに、仕入・棚卸と販売実績を結びつけた在庫管理・発注管理の精度向上を計ることを目的として、ＰＯＳシステムを導入している店舗が多くなっている。
このＰＯＳシステムでは、例えば、販売店の会計場所に設置されているＰＯＳ用のレジスター（ＰＯＳ端末）に、顧客が購入する商品に付与されているバーコードを読み取らせると、その商品の販売情報（商品名、数量、販売金額、販売合計金額、販売時刻など）が記録される一方で、その商品の販売金額等を記載したレシートが発行されるようになっている。
【０００３】
通常、ＰＯＳ端末が読み取った商品の販売情報は、ＰＯＳ端末からホストコンピュータに通知され、ホストコンピュータ側で分析されて、在庫管理・発注管理等に利用される。
また、ＰＯＳシステムでは、ＰＯＳ端末から商品の販売情報を受けたホストコンピュータが、その販売情報を所定の印刷用紙幅に収まるように配置したレシート印刷データを生成し、生成したレシート印刷データをプリンタに出力することで、レシートの発行を行う。
ホストコンピュータには、ＰＯＳ端末から受けた商品の販売情報に基づいて販売情報に含まれる各種のデータの配置を指定したレシート印刷データを生成するレシート印刷用のアプリケーションプログラムと、このアプリケーションプログラムが生成したレシート印刷データをプリンタに出力するプリンタドライバとが、搭載されている。
【０００４】
また、レシート印刷データには、通常、販売店舗名、店舗の連絡先、販売日時、販売した商品名、販売数量、商品毎の販売金額、販売合計金額、店舗の広告用の文章などのデータが含まれる。レシート印刷データを生成するアプリケーションプログラムやプリンタドライバは、レシート印刷データを構成する各種データを、データ種毎に体裁を整えて配置設定をする。
【０００５】
近年では、印刷用紙の節約を目的として、ホストコンピュータに搭載されるアプリケーションプログラムやプリンタドライバを改良して、例えば印刷する文字のフォントサイズを縮小することにより、印刷幅を短縮した縮小印刷データを生成して、より小さな用紙幅の印刷用紙への印刷を実現する技術が各種提案されている（下記特許文献１〜６参照）。
【０００６】
【特許文献１】特開平０５−２４３０１号公報
【特許文献２】特開平０８−１３２７０３号公報
【特許文献３】特開平０９−２８６１４３号公報
【特許文献４】特開２００４−４２４０６号公報
【特許文献５】特開２００６−４８５２０号公報
【特許文献６】特開２０００−２５２９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のＰＯＳシステムで使用されるプリンタは、収容する用紙幅が固定である場合が多い。このため、用紙の節約等のためにレシート用紙を用紙幅が小さなものに変更するには、プリンタ自体を、その用紙幅に対応するプリンタに置き換える必要がある。そして、プリンタを置き換えた場合には、変更された用紙幅に対応したレシート印刷データをホストコンピュータがプリンタに出力できるように、ホストコンピュータ側に搭載するアプリケーションプログラムやプリンタドライバの変更を行う必要がある。このため、ホストコンピュータへの新しいプログラムの導入等の保守作業に手間がかかる場合がある。
【０００８】
印刷する文字のフォントサイズを単純に一律に縮小して、変更された用紙幅に収まるよう縮小した印刷データを生成することは、比較的容易に実現できるが、このような対応では、例えば、レシートに印刷される文字サイズが小さくなり過ぎて、レシートに記載される購入商品や購入数量や金額等の各種情報の視認性が低下する虞がある。
【０００９】
本発明の目的は上記課題を解決するためになされたものであって、プリンタを小さな用紙幅の機種に変更した場合に、ホストコンピュータに搭載されるアプリケーションプログラムやプリンタドライバを変更せずとも、用紙幅が小さな用紙に、印字体裁を保った視認性の良い印刷を実施でき、小さな用紙幅の用紙の採用による用紙の節約を実現できるプリンタ、プリンタの制御方法及び動作制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決することのできる本発明は、ホストコンピュータから送信された印刷データに基づき印刷するプリンタであって、
前記印刷データから実印刷データを展開して記憶部に記憶するデータ展開部と、
前記記憶部に記憶された前記実印刷データに、所定値以上連続した空白データ（印刷しないドットに該当するデータ）が含まれているか否かを判定し、含まれている場合には前記連続した空白データを削除して所定の印刷範囲内に前記実印刷データを生成する制御部と、
前記実印刷データに基づき印刷する印刷実行部と、を有することを特徴とする。
【００１１】
上記構成によれば、ホストコンピュータから送信された印刷データは、プリンタ側のデータ展開部によって展開された後記憶される。このとき、所定値以上連続した空白データが含まれている場合はこれらの空白データが削除される。例えばＰＯＳシステム等において、用紙幅の狭い紙に変更した場合やプリンタを小さな用紙幅の機種に変更した場合に、ホストコンピュータに搭載されるアプリケーションプログラムやプリンタドライバを変更せずとも、プリンタ側だけで、連続する空白データを削除して用紙幅が小さな用紙に印刷することができる。この場合、実印刷データとは実際にプリンタのヘッドで印刷するドットに展開したデータである。
したがって、プリンタや用紙の変更時に、ホストコンピュータ側のアプリケーションプログラムやプリンタドライバを変更しなければならないという不便を回避でき、プリンタの導入時における取り扱い性を向上させることができる。さらに、用紙やプリンタの変更による小幅の用紙の採用によって、用紙の節約を実現することができる。
【００１２】
また、本発明のプリンタにおいて、前記制御部は、前記印刷データのデータ属性を抽出し、前記データ属性に基づき前記印刷範囲を、前記空白データを削除する削除対象領域と非削除領域とに区別し、前記削除対象領域に含まれる前記空白データのみを削除することを特徴とする。
【００１３】
例えばレシートの先頭に印刷されるロゴなどの画像データから空白データを削除すると、本来のロゴとは異なる印刷結果が出力される虞がある。また、バーコードのような画像データから空白データを削除すると、本来のバーコードの規格から外れたコードとなったり、異なるコードとして読み取られ虞がある。上記構成によれば、印刷範囲を削除対象領域と非削除領域とに区別し、ロゴやバーコードなどのデータ属性を持つ非削除領域からは空白データを削除しないよう構成することができる。したがって、空白データを削除することになじまないデータが展開される領域を非削除領域として区別することで、上述したような期待する印刷結果と異なるものが出力されることを防止することができる。
【００１４】
また、本発明のプリンタにおいて、前記制御部は、前記削除対象領域のうち、空白データが第１の方向に所定値以上連続した空白データを削除する第１の削除、及び空白データが前記第１の方向と直行する第２の方向に所定値以上連続した空白データを削除する第２の削除の少なくとも一方を実行することを特徴とする。
【００１５】
上記構成によれば、第１の削除と第２の削除を実行することができる。したがって、第１の方向を印刷媒体の幅方向とすれば、第１の削除によって小さな用紙幅の用紙の採用による用紙の節約を実現できる。さらに、第２の削除によって印刷媒体の長さ方向にも用紙を節約することができる。
【００１６】
また、本発明のプリンタにおいて、前記実印刷データが文字データから展開されたものを含み、前記第２の方向は前記文字データの行方向に相当するものである場合、前記制御部は、前記第２の削除を実行するときは、前記文字データが複数行連続して展開されているものを含む連続文字領域と、前記連続文字領域以外の領域とで、削除する空白データの割合を変えることを特徴とする。
【００１７】
上記構成によれば、連続文字領域と、連続文字領域以外の領域とで、削除する空白データ行数の割合を変えることができる。例えば、連続文字領域における展開された文字データ間の空白データと、改行が連続する連続文字領域以外の領域における展開された空白データと、で空白データ行数の削除割合を変えることによって、展開された文字データ同士が重なってしまうことを防止することができる。さらに、実印刷データのレイアウトが変更されることを防止することができる。一律に同じ割合で空白データ数を削除する場合と比較して、削除を実行する前の実印刷データにより近い印刷体裁を保った印刷結果を出力することができる。
【００１８】
また、本発明のプリンタにおいて、前記実印刷データが、前記印刷範囲を所定の区域に区切る区切りデータから展開されたものを含む場合、前記制御部は、前記削除対象領域内に前記区切りデータから展開されたものが含まれるときは、前記空白データ及び前記空白データと隣接する前記区切りデータから展開された実印刷データを削除することを特徴とする。
【００１９】
印刷範囲を区切る区切りデータとして、例えば “−”ハイフンが含まれている場合は、連続する“−”ハイフンのせいで空白データが所定値以上連続しないことになる。このため、削除を効果的に実行できない場合が発生する。しかしながら、上記構成によれば、区切りデータが含まれている場合であっても、空白データのみならずそれと隣接する展開された区切りデータも削除することができる。このため、小さな用紙幅の用紙の採用による用紙の節約を実現できるとともに、印刷データにより近い印刷体裁を保った印刷結果を出力することができる。
【００２０】
また、本発明のプリンタにおいて、前記実印刷データが、前記印刷範囲を所定の区域に区切る区切りデータから展開されたものを含む場合、前記制御部は、前記削除対象領域内に前記区切りデータから展開されたものが含まれるときは、前記削除対象領域を前記区切りデータから展開された実印刷データに応じて複数の分割領域に分割し、前記分割領域毎に削除を実行することを特徴とする。
【００２１】
上記構成によれば、削除対象領域を区切る区切りデータとして、例えば“−”ハイフンが含まれている場合は、連続する“−”ハイフンのせいで空白データが所定値以上連続しないことになる。このため、削除を効果的に実行できない場合が発生する。しかしながら、上記構成によれば、区切りデータが含まれている場合であっても、展開された区切りデータに応じて分割された分割領域毎に削除を実行することで、より効果的に空白データを削減できる。したがって、区切りデータが含まれている場合であっても小さな用紙幅の用紙の採用による用紙の節約を実現できる。
【００２２】
また、本発明のプリンタにおいて、前記制御部は、前記空白データを削除した後、前記実印刷データの印刷位置を再配置することを特徴とする。
【００２３】
上記構成によれば、削除した後は実印刷データの再配置を行うため、小さな用紙幅の用紙の採用による用紙の節約を実現できるとともに、削除する前の実印刷データにより近い印刷体裁を保った印刷結果を出力することができる。
【００２４】
また、上記課題を解決することのできる本発明は、ホストコンピュータから送信された印刷データに基づき印刷するプリンタの制御方法であって、
前記印刷データから実印刷データを展開して記憶するステップと、
前記記憶された実印刷データに、所定値以上連続した空白データが含まれているか否かを判定し、含まれている場合には前記連続した空白データを削除して所定の印刷範囲内に前記実印刷データを生成するステップと、
前記実印刷データに基づき印刷するステップと、を有することを特徴とする。
【００２５】
上記構成によれば、プリンタを小さな用紙幅の機種に変更した場合に、ホストコンピュータに搭載されるアプリケーションプログラムやプリンタドライバを変更せずとも、プリンタ側において、各ステップを実施させるだけで、用紙幅が小さな用紙に印刷することが可能になる。したがって、プリンタの導入時に、ホストコンピュータ側のアプリケーションプログラムやプリンタドライバを変更しなければならないという不便を回避でき、プリンタの導入時における取り扱い性を向上させることができる。そして、プリンタの変更による小幅の用紙の採用によって、用紙の節約を実現することができる。
【００２６】
また、上記課題を解決することのできる本発明のドライバは、プリンタに接続されるコンピュータに搭載されるもので、前記コンピュータ上のアプリケーションソフトから渡される印刷データを展開し記憶するステップと、
前記記憶された実印刷データに、所定値以上連続した空白データが含まれているか否かを判定し、含まれている場合には前記連続した空白データを削除して所定の印刷範囲内に前記実印刷データを生成するステップと、
前記実印刷データをプリンタへ送信するステップと、を実行させることを特徴とする。
【００２７】
上記構成によれば、ドライバをホストコンピュータに搭載することによって、ホストコンピュータ上のアプリケーションプログラムを変更せずとも、各ステップを実施させて、用紙幅が小さな用紙に印刷することが可能になる。
したがって、プリンタの導入時に、ホストコンピュータ側のアプリケーションプログラムを変更しなければならないという不便を回避でき、プリンタの導入時における取り扱い性を向上させることができる。そして、上記ドライバを提供できるプリンタを採用することによって、用紙の節約を実現することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明に係るプリンタ、およびそのプリンタの制御方法及びドライバの実施形態について、図面を参照して詳細に説明する。
図１は本発明に係るプリンタの一実施の形態の構成を示すブロック図、図２（ａ）はホストコンピュータから送信されたレシート印刷データの構成図、図２（ｂ）は本実施形態のプリンタが生成した縮小印刷データの構成図、図３は本実施形態のプリンタにおける縮小印刷データの生成処理を説明するためのフローチャートである。
【００２９】
図１に示したプリンタ１は、ＰＯＳシステムにおいてレシートの発行を行うプリンタで、ホストコンピュータ３から送信された印刷データ５（図２（ａ）参照）に基づき印刷処理を実行する。なお、本実施形態のホストコンピュータ３は、ＰＯＳシステムにおけるＰＯＳ端末の機能を含めた構成となっている。
【００３０】
印刷データ５は、ホストコンピュータ３にインストールされているレシート印刷用のアプリケーションプログラム７が、ＰＯＳ端末から送信された販売商品情報に基づいて作成したレシート印刷データで、ホストコンピュータ３にインストールされているプリンタドライバ９を介してプリンタ１に送信される。
【００３１】
レシート印刷データである印刷データ５には、図２（ａ）に示すように、販売店情報欄Ｄ１（非削除領域）、商品情報欄Ｄ２（削除対象領域）、バーコード欄Ｄ３（非削除領域）が上方から順に配列されている。これらの各情報欄に記載されるデータ種（データ属性）は、次の通りである。
【００３２】
販売店情報欄Ｄ１には、販売店のロゴ等の画像データが、バーコード欄Ｄ３にはバーコードデータが印刷される。なお、画像データやバーコードデータは、印刷時にホストコンピュータ３から送信してもよいし、プリンタ１の不図示の記憶手段に予め保持しておきその都度読み出すよう構成してもよい。
商品情報欄Ｄ２には、販売日時情報、商品名、販売金額、合計金額等が印刷される。
【００３３】
本実施形態のプリンタ１は、ホストコンピュータ１から送信された８０ｍｍ幅対応の印刷データ５を、図２（ｂ）に示すような５８ｍｍ幅に変換した縮小印刷データ５１（実印刷データ）を生成し印刷する。その際プリンタ１は、印刷データ５に所定値以上連続した空白データが含まれているか否かを判定し、含まれている場合には連続した空白データを削除することによって縮小印刷データ５１を生成する。
【００３４】
プリンタ１は、ホストコンピュータ３からプリンタドライバ９を介して送信された印刷データ５を、通信インタフェース１１を介して受信して、受信バッファ１３に格納する。
このプリンタ１には、印刷データ５を予め設定した縮小幅に縮小した縮小印刷データ５１（図２（ｂ）参照）に変換する主制御部１５と、縮小印刷データ５１に基づいて印刷ヘッド１７を作動させて印刷処理を実行する印刷実行部１９とが備えられている。印刷実行部１９は、プリンタ１による一連の処理の中で、後述する主制御部１５が生成する縮小印刷データ５１に基づいて印刷処理を実行する。
【００３５】
プリントバッファ１４は、レシート１ページ分の印刷データ５を展開できる容量を備えている。ここでは、少なくとも印刷データ５を展開できる容量を備えており、プリントバッファ１４内に設定されたレシート１ページ分の印刷範囲のうち指定された位置に印刷データ５が展開される。このように、受信バッファ１３に一時的に格納された印刷データ５はプリントバッファ１３に順次展開される。
【００３６】
印刷データ５から縮小印刷データ５１を生成する処理は、主制御部１５１５が行う。主制御部１５は、プリンタ内のプログラム格納部２１に格納されている動作制御プログラム２２に基づいて、印刷データ５を処理する。具体的には、印刷データ５に含まれる各データのデータ属性を抽出し、その配列等を解析して、印刷データ５の各情報欄Ｄ１，Ｄ２，Ｄ３のいずれの欄に記載されるデータであるかを判別する。
【００３７】
商品情報欄Ｄ２に含まれるデータであるか否かを判定する方法としては、販売店舗情報欄Ｄ１に印刷される画像データあるいは画像データの読み出しを指示するコマンドを読み出した後に、ASCIIコードの数字0x31〜0x39（数字の０〜９）、金額記号の0x24（＄）又は0x2F（￥）あるいは小数点記号の0x2E(．）など（データ属性）で構成されている文字列を読み出した場合は、数量や金額の文字列とみなし、商品情報欄Ｄ２の開始として判別することができる。
また、上記ASCIIコードなどで構成される文字列を読み出して展開した後に、バーコードデータあるいはバーコード読み出しを指示するコマンドを読み出した場合は、バーコードフォントとみなし、商品情報欄Ｄ２の終了として判別することができる。
【００３８】
このように、主制御部１５は、プリントバッファ１４に展開される印刷データのデータ属性を抽出し、そのデータ属性に基づき印刷範囲を、空白データを削除する削除対象領域（商品情報欄Ｄ２）と非削除領域（販売店舗情報欄Ｄ１，バーコード欄Ｄ３）とに区別する。そして、削除対象領域（商品情報欄Ｄ２）に含まれる空白データを削除し、縮小印刷データ５１を生成する。
なお、空白データを削除する処理としては、空白データ列がレシートの幅方向に連続した空白データを削除する横方向削除処理（第２の削除）と、空白データ行がレシートの長さ方向に連続した空白データを削除する縦方向削除処理（第１の削除）とがある。
【００３９】
削除値保持部２５には、空白データの削除値が格納されている。具体的には、横方向削除処理の際に、空白データ列がｓ列以上連続する場合に削除する空白データ列数ｒ、縦方向削除処理の際に、空白データ行がｎ行以上あるいはｎ'行以上連続する場合に削除する空白データ行数ｍあるいはｍ'、がそれぞれ格納されている。
本実施形態では、それぞれの値は、例えば次のような関係を有している。
（ｓ＞ｒ,ｒ≧２）
（ｎ＞ｍ,ｍ≧２）、（ｎ'＞ｍ',ｍ'≧４）
なお、ｓ，ｒ，ｎ，ｎ'，ｍ，ｍ'の値はそれぞれコマンドによって書き換えることが可能である。
【００４０】
図３は、プリンタ１が行う空白データを削除して縮小印刷データを生成する処理の流れを説明するためのフローチャートである。
受信バッファ１３に印刷データ５が格納されると、データ展開部１５ａが印刷データ５を取り出してコードやコマンド等を解析し、プリントバッファ１４に展開するイメージデータを作成する（ステップＳ１１，ステップＳ１２）。作成したイメージデータはプリントバッファ１４に格納される（ステップＳ１３）。
【００４１】
具体的には、ロゴを構成する画像データを受信した場合は、プリントバッファ１４に設定されている印刷範囲において指定された印刷位置に、画像データをそのまま展開する。また、文字コードや数字コードのようなコードを受信した場合は、コードに対応する文字列、数字列を読み出し、イメージデータに変換してプリントバッファ１４に展開する。
なお、プリンタ１側に予め保持している画像データを展開するよう指示するコマンドを受信した場合は、プリンタ１が保持している画像データを読み出し、イメージデータに変換してプリントバッファ１４に展開する。
【００４２】
プリントバッファ１４にレシート１ページ分のイメージデータを展開すると（ステップＳ１４：Ｙｅｓ）、展開したイメージデータに対して縦方向削除処理及び横方向削除処理を実行する（ステップＳ１５，ステップＳ１６）。縦方向削除処理及び横方向削除処理によって縮小されたイメージデータすなわち縮小印刷データ５１に基づき、印刷実行部１９が印刷ヘッド１７を駆動させて５８ｍｍ幅のレシート用紙に印刷する（ステップＳ１７）。
なお、縦方向削除処理（ステップＳ１５）と横方向削除処理（ステップＳ１６）の実行順序は、逆であってもよい。
【００４３】
［縦方向削除処理について］
次に、図３のステップＳ１５の縦方向削除処理について図４及び図５を参照して詳細に説明する。図４は、縦方向削除処理の流れを説明するためのフローチャートであり、図５（ａ）は、削除対象領域（商品情報欄Ｄ２）において縦方向削除処理を実行する前のイメージ、（ｂ）は削除対象領域において縦方向削除処理を実行した後のイメージを模式的に示した図である。
【００４４】
＜空白データ行の検出処理＞
まず、図５に示す座標において、ｉ＝０をセットすると（ステップＳ２１）、ｉ＝０行が文字領域、すなわち削除対象領域Ｄ２にあるかを判定する（ステップＳ２２：Ｙｅｓ，ステップＳ２３）。ｉ＝０行が削除対象領域Ｄ２にない場合は、ｉを１プラスして（ステップＳ２４）次のデータ行について判定する。
ｉ＝０行が削除対象領域Ｄ２にある場合は（ステップＳ２３：Ｙｅｓ）、削除対象領域Ｄ２のｉ＝０行におけるｊ＝０からｊ＝Ｊまで空白データを探索する。ｊ＝０をセットすると（ステップＳ２５，ステップＳ２６）、イメージデータｉｍｇ（ｉ，ｊ）＝（０，０）は空白データか否かを判定する（ステップＳ２７）。空白データではない場合は（ステップＳ２７：Ｎｏ）ｉを１プラスして（ステップＳ２４）次のデータを探索する。空白データであった場合は（ステップＳ２７：Ｙｅｓ）、ｉ＝０行目の空白行位置情報として記録し（ステップＳ２８）、ｊを１プラスして（ステップＳ２９）次のデータ、すなわちｉｍｇ（０，１）が空白データか否かを判定する。
【００４５】
すなわち、ｉｍｇ（０，０）からｉｍｇ（０，Ｊ）まで空白データが連続した場合は、ｉ＝０行を空白データ行として記録する。例えば、空白データ行にはフラグをたてておく。
ｉｍｇ（０，０）からｉｍｇ（０，Ｊ）まで空白データが連続しなかった場合は、ｉ＝０行を空白データ行として記録せずに、ｉを１プラスしてｉ＝１行目の空白データの探索を行う。つまり、ｉｍｇ（１，０）からｉｍｇ（１，Ｊ）まで空白データが連続するかを探索する。上記処理をｉ＝Ｉ行まで繰り返し実行し、空白行位置情報を取得する。
【００４６】
＜連続空白データ行の削除処理＞
上記処理をｉ＝Ｉ行まで実行すると（ステップＳ２２：Ｎｏ）、連続する空白データ行の削除処理を行う。ｉ＝０をセットすると（ステップＳ３１）、ステップＳ２８で記録した空白行位置情報に基づきｉ＝０行が空白データ行か否かを判定する（ステップＳ３３）。空白データ行と判定した場合は（ステップＳ３３：Ｙｅｓ）、連続空白データ行（Ｌ）としてカウントする。ｉを１プラスして（ステップＳ３５）次のｉ＝１行が空白データ行か否かを再び判定する（ステップＳ３３）。以降、空白データ行が続く限りステップＳ３３，ステップＳ３４，ステップＳ３５を繰り返し実行する。
【００４７】
ステップＳ３３で空白データ行ではないと判定すると（ステップＳ３３：Ｎｏ）、ステップＳ３４でカウントした連続空白データ行（Ｌ）がｎ行以上連続するかを判定する（ステップＳ３６）。ｎの値は、削除値保持部２５に予め格納されている値である。連続空白データ行（Ｌ）がｎ行以上連続しない場合は（ステップＳ３６：Ｎｏ）、空白データ行の削除処理を実行せずにｉに１をプラスし、ステップＳ３２からステップＳ３６の処理を繰り返し実行する。
【００４８】
連続空白データ行（Ｌ）がｎ行以上連続する場合は（ステップＳ３６：Ｙｅｓ）、さらに連続空白データ行（Ｌ）がｎ'行以上連続するかを判定する（ステップＳ３８）。ｎ'の値は、削除値保持部２５に予め格納されている値である。連続空白データ行（Ｌ）がｎ'以上連続しない場合は（ステップＳ３８：Ｎｏ）、イメージデータｉｍｇ（ｉ，ｊ）に含まれている連続空白データ行（Ｌ）から（Ｌ−ｍ）行だけ空白データ行を削除する（ステップＳ３９）。一方、連続空白データ行（Ｌ）がｎ'以上連続する場合は（ステップＳ３８：Ｎｏ）、イメージデータｉｍｇ（ｉ，ｊ）に含まれている連続空白データ行（Ｌ）から（Ｌ−ｍ'）行だけ空白データ行を削除する（ステップＳ４０）。
【００４９】
すなわち、連続空白データ行（Ｌ）がｎ'以上連続しなかった場合、その連続空白データ行（Ｌ）は連続文字領域Ｃ１あるいはＣ２（図５（ａ）参照）に含まれる行であり、少なくともｍ行の空白データ行を残すよう処理する。
一方、連続空白データ行（Ｌ）がｎ'以上連続した場合、その連続空白データ行（Ｌ）は連続空白行領域Ｅ（図５（ａ）参照）に含まれる行であり、少なくともｍ'行の空白データ行を残すよう処理する。例えば２行以上連続した改行が連続空白領域Ｅに該当する。
【００５０】
本実施形態では、縦方向削除処理を実行する場合は、文字データが複数行連続する連続文字領域Ｃ１，Ｃ２と、連続文字領域以外の連続空白領域Ｅと、によって、削除する空白データ行数の割合を変えるよう設定されている。すなわち、連続空白領域Ｅはレシートのレイアウトを決定する重要な要素であるため、連続文字領域Ｃ１，Ｃ２での削除率（ｍ／Ｌ）と連続空白領域Ｅでの削除率（ｍ'／Ｌ）とが異なる割合となるようにしている。具体的には、文字が重なることを防ぐ為に、連続文字領域Ｃ１，Ｃ２ではｍ＝２行以上、連続空白領域Ｅではｍ'＝４行以上の連続した空白データ行を設けるようにする。
図４のフローにしたがって空白データ行を削除した結果を図５（ｂ）に示す。連続文字領域Ｃ１あるいはＣ２において行データ同士の空白データ行が削除されて、文字データが密接して印刷されるが、連続空白領域Ｅを含めレイアウトをほぼ保った状態で印刷することができる。
【００５１】
［横方向削除処理について］
次に、図３のステップＳ１６の横方向削除処理について図６及び図７を参照して詳細に説明する。図６は、横方向削除処理の流れを説明するためのフローチャートであり、図７（ａ）は、削除対象領域（商品情報欄Ｄ２）において横方向削除処理を実行する前のイメージ、（ｂ）は削除対象領域において横方向削除処理を実行した後のイメージを模式的に示した図である。
【００５２】
＜空白データ列の検出処理＞
図７に示す座標において、ｊ＝０をセットし（ステップＳ５１，ステップＳ５２：Ｙｅｓ）、ｉ＝０をセットする（ステップＳ５３）。ｉ＝０が文字領域すなわち削除対象領域Ｄ２にあり、且つ区切り文字領域Ｆ１，Ｆ２以外にあるかを判定する（ステップＳ５４：Ｙｅｓ，ステップＳ５５）。ｉ＝０行が削除対象領域Ｄ２にない場合は（ステップＳ５５：Ｎｏ）、ｉを１プラスして（ステップＳ５６）次のデータを探索する。
ｉ＝０が削除対象領域Ｄ２にあり、且つ区切り文字領域Ｆ１，Ｆ２以外にある場合は（ステップＳ５５：Ｙｅｓ）、イメージデータｉｍｇ（ｉ，ｊ）＝（０，０）が空白データか否かを判定する（ステップＳ５７）。空白データではない場合は（ステップＳ５７：Ｎｏ）、ｊを１プラスして（ステップＳ５８）次のデータを探索する。空白データであった場合は（ステップＳ５７：Ｙｅｓ）、ｊ＝０列目の空白列位置情報として記録し（ステップＳ５９）、ｉを１プラスして（ステップＳ５６）次のデータ、すなわちｉｍｇ（１，０）を探索する。
【００５３】
すなわち、ｉｍｇ（０，０）からｉｍｇ（Ｉ，０）まで空白データが連続した場合は、ｊ＝０列を空白データ行として記録する。例えば、空白データ列にはフラグをたてておく。
ｉｍｇ（０，０）からｉｍｇ（Ｉ，０）まで空白データが連続しなかった場合は、ｊ＝０列を空白データ行として記録せずに、ｊを１プラスしてｊ＝１列目の空白データの探索を行う。つまり、ｉｍｇ（０，１）からｉｍｇ（Ｉ，１）まで空白データが連続するかを探索する。
【００５４】
一方、ステップＳ５５で、ｉ＝０行が削除対象領域Ｄ２にないか、あるいは区切り文字領域Ｆ１，Ｆ２にある場合は（ステップＳ５５：Ｎｏ）、ｉを１プラスして次の行の空白データの探索を行う。このように、区切り文字領域Ｆ１，Ｆ２にある場合は、空白データの探索を行うことなく、次の行の探索を行う。これは、区切り文字領域Ｆ１，Ｆ２を空白データの探索対象に含めてしまうと、複数列に亘って連続する空白データ列を検出できないため、空白データ列の削除処理を効果的に行うことができない。このため、本実施形態では、区切り文字領域Ｆ１，Ｆ２における空白データの探索処理を省略している。
【００５５】
＜連続空白データ列の削除処理＞
上記処理をｊ＝Ｊ列まで実行すると（ステップＳ５２：Ｎｏ）、連続する空白データ列の削除処理を行う。ｊ＝０をセットすると（ステップＳ６１）、ステップＳ５９で記録した空白列位置情報に基づきｊ＝０列が空白データ列か否かを判定する（ステップＳ６３）。空白データ列と判定した場合は（ステップＳ６３：Ｙｅｓ）、連続空白データ列（ｃ）としてカウントする（ステップＳ６４）。ｊを１プラスして（ステップＳ６５）次のｊ＝１列が空白データ列か否かを再び判定する（ステップＳ６３）。以降、空白データ列が続く限りステップＳ６３，ステップＳ６４，ステップＳ６５を繰り返し実行する。
【００５６】
ステップＳ６３で空白データ列ではないと判定すると（ステップＳ６３：Ｎｏ）、ステップＳ６４でカウントした連続空白データ列（ｃ）がｓ列以上連続するかを判定する（ステップＳ６６）。ｓの値は、削除値保持部２５に予め格納されている値である。連続空白データ列（ｃ）がｓ列以上連続しない場合は（ステップＳ６６：Ｎｏ）、空白データ列の削除処理を実行せずにｊに１をプラスし、ステップＳ６２からステップＳ６６の処理を繰り返し実行する。
【００５７】
連続空白データ列（ｃ）がｓ列以上連続する場合は（ステップＳ６６：Ｙｅｓ）、イメージデータｉｍｇ（ｉ，ｊ）に含まれている連続空白データ列（ｃ）から（ｃ−ｒ）行だけ空白データ列を削除する（ステップＳ６７）。このとき、ｒ行分の空白データ列を削除するだけでなく、削除するｒ行分の空白データ列と隣接する区切りデータ列も含めて削除する。具体的には、図７（ａ）に示すように、空白データ列ｃ１〜ｃ６を削除するだけでなく、空白データ列ｃ１〜ｃ６と隣接する区切りデータ列Ｆ３〜Ｆ６も空白データ列に含めて削除する。
【００５８】
このように、本実施形態によれば、縦方向削除処理のみならず横方向削除処理を実行することができる。したがって、横方向削除処理によって小さな用紙幅の用紙の採用による用紙の節約を実現できる。さらに、縦方向削除処理によってレシートの長さ方向にも用紙を節約することができる。
【００５９】
［横方向削除処理の変形例について］
次に、図３のステップＳ１６の横方向削除処理の変形例について図８及び図９を参照して詳細に説明する。図８（ａ）は、削除対象領域（商品情報欄Ｄ２）において横方向削除処理を実行する前のイメージ、（ｂ）は削除対象領域において横方向削除処理を実行した後のイメージを模式的に示した図であり、図９は、図８（ｂ）の各ブロックを基準線に合わせて再配置した場合のイメージを模式的に示した図である。
【００６０】
削除対象領域Ｄ２を横方向に区切る区切りデータを含む区切り文字領域Ｆ１，Ｆ２がある場合で、横方向削除処理を実行する際には、削除対象領域Ｄ２を区切り文字領域Ｆ１，Ｆ２に応じて複数の分割領域Ｂ１〜Ｂ３に分割し、分割領域Ｂ１，Ｂ２，Ｂ３毎に横方向削除処理を実行する。
すなわち、図６のステップＳ５１〜ステップＳ５９を繰り返し実行して、空白列位置情報を記録し、記録した空白列位置情報に基づき削除対象領域Ｄ２を複数の分割領域Ｂ１〜Ｂ３に分割し、分割領域Ｂ１，Ｂ２，Ｂ３に含まれる削除対象分割領域ｂ１，ｂ２，ｂ３を割り出す。そして、削除対象分割領域ｂ１，ｂ２，ｂ３について、図６のステップＳ６１〜ステップＳ６８を繰り返し実行することによって、空白データの削除処理を行う。
【００６１】
なお、削除する空白データ列（ｒ）は、分割領域Ｂ１，Ｂ２，Ｂ３毎に異なる値であっても、同じ値であってもよい。
分割領域Ｂ１，Ｂ２，Ｂ３毎に異なる値の空白データ列（ｒ）を削除対象分割領域ｂ１，ｂ２，ｂ３から削除した場合は、図８（ｂ）に示すように各分割領域Ｂ１，Ｂ２，Ｂ３間でレイアウトが崩れてしまう。このような場合は、図８（ｂ）及び図９に示すように、文字データを含む分割領域ｂ４〜ｂ８のうち、最も右側に位置する分割領域ｂ６の右端に合わせた基準線Ｘを設け、基準線Ｘに揃うように各分割領域ｂ４〜ｂ８を再配置する。すなわち、図９に示すように分割領域ｂ４の右端が基準線Ｘに揃うよう分割領域ｂ４を右側に移動させ、分割領域ｂ８の右端が基準線Ｘに揃うよう分割領域ｂ８を右側に移動させる。なお、基準線Ｘより右側にはみ出した余りの区切りデータ“−”は、印刷対象としない。
【００６２】
例えば、削除対象領域Ｄ２を横方向に区切る区切りデータとして、“−”ハイフンが連続して展開されている場合は、連続する“−”ハイフンのせいで空白データ列が所定値以上連続しない。このため、横方向削除処理を効果的に実行できない。しかしながら、上記変形例によれば、区切り文字領域Ｆ１，Ｆ２が含まれている場合であっても、区切り文字領域Ｆ１，Ｆ２に応じて分割された分割領域Ｂ１,Ｂ２,Ｂ３毎に横方向削除処理を実行することができる。したがって、区切りデータが含まれている場合であっても小さな用紙幅の用紙の採用による用紙の節約をより効果的に実現できる。
【００６３】
なお、本実施形態ではプリンタ１が備える動作制御プログラム２２を実行することによって縮小印刷データ５１を生成する方法を説明したが、ホストコンピュータ３側のプリンタドライバ９が縮小印刷データ５１を生成するよう構成することもできる。これによって、ホストコンピュータ３上のアプリケーションプログラムを変更せずとも、各ステップを実施させて、用紙幅が小さな用紙に印刷することが可能になる。したがって、ホストコンピュータ３側のアプリケーションプログラム７を変更しなければならないという不便を回避でき、プリンタの導入時における取り扱い性を向上させることができる。そして、プリンタドライバ９を提供できるプリンタを採用することによって、用紙の節約を実現することができる。
【図面の簡単な説明】
【００６４】
【図１】本発明に係るプリンタの一実施の形態の構成を示すブロック図である。
【図２】（ａ）はホストコンピュータから送信されたレシート印刷データの構成図、（ｂ）は本実施形態のプリンタが生成した縮小印刷データの構成図である。
【図３】本実施形態のプリンタにおける縮小印刷データの生成処理を説明するためのフローチャートである。
【図４】縦方向削除処理の流れを説明するためのフローチャートである。
【図５】（ａ）は、削除対象領域において縦方向削除処理を実行する前のイメージ、（ｂ）は削除対象領域において縦方向削除処理を実行した後のイメージを模式的に示した図である。
【図６】横方向削除処理の流れを説明するためのフローチャートである。
【図７】（ａ）は、削除対象領域において横方向削除処理を実行する前のイメージ、（ｂ）は削除対象領域において横方向削除処理を実行した後のイメージを模式的に示した図である。
【図８】（ａ）は、削除対象領域において横方向削除処理を実行する前のイメージ、（ｂ）は削除対象領域において横方向削除処理を実行した後のイメージを模式的に示した図である。
【図９】図８（ｂ）の各ブロックを基準線に合わせて再配置した場合のイメージを模式的に示した図である。
【符号の説明】
【００６５】
１：プリンタ、３：ホストコンピュータ、５：印刷データ、７：アプリケーションプログラム、９：プリンタドライバ、１３：受信バッファ、１４：プリントバッファ、１５：主制御部、１５ａ：データ展開部、１７：印字ヘッド、１９：印刷実行部、２１：プログラム格納部、２２：動作制御プログラム、２５：削除値保持部、５１：縮小印刷データ（実印刷データ）、Ｄ１，Ｄｓ１：販売店情報欄、Ｄ２，Ｄｓ２：商品情報欄、Ｄ３，Ｄｓ３：バーコード欄、Ｂ１〜Ｂ３：分割領域、ｂ１〜ｂ３：削除対象分割領域。
【図１】
2010017933.tif 000003
【図２】
2010017933.tif 000004
【図３】
2010017933.tif 000005
【図４】
2010017933.tif 000006
【図５】
2010017933.tif 000007
【図６】
2010017933.tif 000008
【図７】
2010017933.tif 000009
【図８】
2010017933.tif 000010
【図９】
2010017933.tif 000011