(57)【要約】【課題】１行分の文字が３つの分割データによって構成され、分割データを印刷する毎に紙送りする場合に、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができるプリンタドライバ、印刷制御方法及び制御プログラムを提供する。【解決手段】１行分の文字が３つの分割データによって構成され、分割データを印刷する毎に紙送りして印刷するようプリンタ３を制御する印刷制御方法であって、アプリケーション４から送られた印刷データ１００から、１行分の文字の上部要素Ａを形成する上部分割データ１１０ａ，１１０ｄと、１行分の文字の中間要素Ｂを形成する中間分割データ１１０ｂ，１１０ｅと、１行分の文字の下部要素Ｃを形成する下部分割データ１１０ｃ，１１０ｆ、を抽出するステップＳ１２と、前行の下部分割データ１１０ｃと次行の上部分割データ１１０ｄとを合成して合成分割データ１１０ｇを生成するステップＳ１８と、を有する。【選択図】図２
2010015462.tif 000002
【特許請求の範囲】
【請求項１】
１行分の文字が３つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御するプリンタドライバであって、
前記３つの分割データは、前記１行分の文字の上部要素を形成する上部分割データと、前記１行分の文字の中間要素を形成する中間分割データと、前記１行分の文字の下部要素を形成する下部分割データと、によって構成され、
前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減することを特徴とするプリンタドライバ。
【請求項２】
前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成する分割データ合成部を有することを特徴とする請求項１に記載のプリンタドライバ。
【請求項３】
前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素と次行の上部要素との間で同一桁に重なる要素がある場合は、前記同一桁に重なる要素のイメージデータを生成することを特徴とする請求項２に記載のプリンタドライバ。
【請求項４】
前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素の印字桁と次行の上部要素の印字桁とが一致していない場合は、印字桁を揃えることを特徴とする請求項２または３に記載のプリンタドライバ。
【請求項５】
前記分割データ合成部は、前行の下部分割データと次行の上部分割データとの間の紙送り量が、前記分割データの高さより大きい場合は、前記合成分割データを生成する処理を省略することを特徴とする請求項２から４の何れかに記載のプリンタドライバ。
【請求項６】
前記文字は、タイ文字であることを特徴とする請求項１から５の何れかに記載のプリンタドライバ。
【請求項７】
１行分の文字が３つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御する印刷制御方法であって、
アプリケーションから送られた印刷データから、前記１行分の文字の上部要素を形成する上部分割データと、前記１行分の文字の中間要素を形成する中間分割データと、前記１行分の文字の下部要素を形成する下部分割データと、を抽出するステップと、
前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成するステップと、を有することを特徴とする印刷制御方法。
【請求項８】
印刷システムが有するコンピュータに、請求項７に記載のステップを実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１行分の文字が３つの分割データによって構成され、分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御するプリンタドライバ、印刷制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
コンピュータが世界に普及するにつれ、プリンタにて利用される文字コードや文字テーブルの種類は増加している。プリンタは、ホスト装置から送信される文字コードに基づいて、文字コードをその国の文字に変換し印字する。プリンタがより多くの国で使用されるためには、プリンタが使用される国の言語に対応する文字テーブルが開発され、プリンタがこれらの文字テーブルを有することが望ましい。
【０００３】
通常、文字と文字コードとの関係は、１対１に対応づけられており、文字テーブルには、対応関係に基づいて文字と文字コードとが定義されている。そして、プリンタは、ホスト装置から文字コードを受信すると、この文字コードを順番に文字に変換し、これを印字する。
【０００４】
しかし、多種多様な言語のなかには、１つの文字を複数の要素の組み合わせによって表現するものがある。例えば、タイ語のような複数の要素からなる言語においては、指定された文字コードを対応する文字に変換し、この変換後の文字をそのまま印字すると、文字の組合せによっては、正しい文字表記でない場合がある。特許文献１には、タイ語のような複数の要素からなる言語を印刷するプリンタが記載されている。
【０００５】
図７（ａ）は、アプリケーションが作成したタイ語の印刷データをイメージ化した図であり、図７（ｂ）は、従来のプリンタドライバによって、アプリケーションから送られた印刷データを変換した後の印刷データをイメージ化した図であり、図８は、プリンタが備えるタイ語の文字テーブルの一例である。
図７（ａ）に示すように、アプリケーションが作成した印刷データ１００には、タイ文字を構成する各要素に対応するコードが含まれている。ここでは、２行分のタイ文字の印刷データを例示している。図８の文字テーブルによると、イメージ左側から順に、要素５１はコード「Ｂ７ｈ」、要素５２はコード「Ｄ５ｈ」、要素５３はコード「Ａ８ｈ」、要素５４はコード「Ｄ９ｈ」、要素５５はコード「Ｃ２ｈ」、要素５６はコード「Ｅ８ｈ」に対応している。「０Ｄｈ」は改行を意味する指示であり、「０Ｄｈ」までを１行分の行データ１００ａとし、２行目の行データ１００ｂとして１行目と同じコード列が続いている。
【０００６】
ここで、上記アプリケーションが作成した印刷データ１００をプリンタに送信し、プリンタは受信した印刷データ１００に基づき印刷処理を行う場合を考える。この場合、プリンタは受信した印刷データ１００に含まれるコードに対応する要素を図８の文字テーブルから捜し出し、それを実際のドットイメージとして展開して印刷する。つまり、印刷データ１００のままでは、図７（ａ）に示したような印刷結果が出力される。これでは正しいタイ文字が印字できない。
【０００７】
一般に、アプリケーションとプリンタの間にはプリンタドライバが介在しており、プリンタドライバがプリンタの仕様に適合する印刷データに変換している。すなわち、印刷データ１００は、プリンタドライバによって正しいタイ文字を印刷するデータに変換され、プリンタへ送信される。図７（ｂ）に示すように、プリンタドライバは、印刷データ１００にスペース「２０ｈ」と改行「０Ｄｈ」を追加して、各要素に対応するコードの並びを変更する。具体的には、まず要素５２に対応するコード「Ｄ５ｈ」、スペース「２０ｈ」、要素５６に対応するコード「Ｅ８ｈ」、改行「０Ｄｈ」の順に並び替える。すなわち、印刷データ１００から１行目の上部要素Ａ１を形成する上部分割データ１１０ａを抽出する。
【０００８】
次に、要素５１に対応するコード「Ｂ７ｈ」、要素５３に対応するコード「Ａ８ｈ」、要素５５に対応するコード「Ｃ２ｈ」、改行「０Ｄｈ」の順に並び替える。すなわち、印刷データ１００から１行目のタイ語の中間要素Ｂ１を形成する中間分割データ１１０ｂを抽出する。さらに、スペース「２０ｈ」、要素５４に対応するコード「Ｄ９ｈ」、スペース「２０ｈ」、改行「０Ｄｈ」の順に並び替える。すなわち、印刷データ１００から１行目のタイ語の下部要素Ｃ１を形成する下部分割データ１１０ｃを抽出する。
同様に、２行目の上部分割データ１１０ｄ、２行目の中間分割データ１１０ｅ、２行目の下部分割データ１１０ｆを抽出する。
【０００９】
このように、従来のプリンタドライバは、１行分のタイ文字を、上部分割データ、中間分割データ及び下部分割データの３つの分割データから構成するよう変換していた。このように変換された印刷データ１１０に基づいてプリンタが印刷を行うと、図７（ｂ）に示す印刷結果を得ることができる。この場合、プリンタは改行「０Ｄｈ」指示に応じて、各分割データを印刷する毎に所定量の紙送りを行う。通常、各分割データの高さは全て同じ高さに設定されているため、分割データの高さに相当する紙送り量の紙送りを行う。
具体的な数値を当てはめると、各分割データの高さの最大値を２４ｄｏｔとすると、各分割データを印刷する毎に２４ｄｏｔ分の紙送りを行う。
【特許文献１】特開２００２−１１６９００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、タイ語の１文字を適切に表現するためには、上部要素Ａ１,Ａ２と下部要素Ｃ１,Ｃ２とはそれぞれ中間要素Ｂ１,Ｂ２側にできるだけ接近して印刷する必要がある。さらに、上部要素Ａ１,Ａ２に含まれる各要素と下部要素Ｃ１,Ｃ２に含まれる各要素が、中間要素Ｂ１,Ｂ２に含まれる各要素より小さい場合は、上部分割データおよび下部分割データの最大高さ２４ｄｏｔのうち１部しか使用しない。
すなわち、各分割データを印刷する毎に２４ｄｏｔ分の紙送りを行うと、１行目の下部要素Ｃ１と、２行目の上部要素Ａ２との間には空白部Ｘが形成される。各行間に空白部Ｘが形成されると印刷用紙の消費量が増えてしまう。
【００１１】
本発明は、上記課題を解決するためになされたものであって、１行分の文字が３つの分割データによって構成され、分割データを印刷する毎に紙送りする場合に、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができるプリンタドライバ、印刷制御方法及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決することのできる本発明は、１行分の文字が３つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御するプリンタドライバであって、
前記３つの分割データは、前記１行分の文字の上部要素を形成する上部分割データと、前記１行分の文字の中間要素を形成する中間分割データと、前記１行分の文字の下部要素を形成する下部分割データと、によって構成され、
前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減することを特徴とする。
【００１３】
上記構成によれば、前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減するので、前行と次行との行間をつめて印刷することができる。したがって、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができる。
【００１４】
また、本発明のプリンタドライバは、前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成する分割データ合成部を有することを特徴とする。
【００１５】
上記構成によれば、前行の下部分割データと次行の上部分割データとを合成する。例えば、前行の下部分割データに含まれる要素と次行の上部分割データに含まれる空白部とを合成して合成分割データの要素とし、あるいは前行の下部分割データに含まれる空白部と次行の上部分割データに含まれる要素とを合成して合成分割データの要素とし、あるいは前行の下部分割データに含まれる空白部と次行の上部分割データに含まれる空白部とを合成して合成分割データの空白部とすることによって、空白部を削減して前行と次行との行間をつめて印刷することができる。また、空白部に相当するデータ量を削減できるので、データ転送時間やデータ処理時間を短縮できる。
【００１６】
また、本発明のプリンタドライバにおいて、前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素と次行の上部要素との間で同一桁に重なる要素がある場合は、前記同一桁に重なる要素のイメージデータを生成することを特徴とする。
【００１７】
前行の下部分割データに含まれる要素と次行の上部分割データに含まれる要素とが同一桁に重なる場合は、上述した空白部と要素を合成するように単純に合成することができない。すなわち、要素同士が同一桁に重なった状態のイメージに対応するコードは、通常、変換テーブルにないため適当なコードに変換することができない。しかしながら、上記構成によれば、同一桁に重なる要素のイメージデータを生成するので、コード変換できなくてもイメージデータそのものを印刷装置に与えることができる。
【００１８】
また、本発明のプリンタドライバにおいて、前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素の印字桁と次行の上部要素の印字桁とが一致していない場合は、印字桁を揃えることを特徴とする。
【００１９】
上記構成によれば、前行の下部要素の印字桁と次行の上部要素の印字桁とが一致していない場合も、上述した空白部と要素との合成のように単純に合成することができない。すなわち、要素同士の印字桁がずれている場合は、要素同士がずれて重なった状態のイメージに対応するコードは、通常、変換テーブルにないため適当なコードに変換することができない。さらに、要素同士が左右にずれた状態のイメージデータを生成しようとすると、印字桁が一致している場合よりも多くの種類のイメージデータを生成しなければならない。しかしながら、上記構成によれば、印字桁を揃えることで、生成するイメージデータの数を最小限にすることができる。なお、印字桁を揃える場合は、前の印字桁に揃えることも、後ろの印字桁に揃えることもできる。
【００２０】
また、本発明のプリンタドライバにおいて、前記分割データ合成部は、前行の下部分割データと次行の上部分割データとの間の紙送り量が、前記分割データの高さより大きい場合は、前記合成分割データを生成する処理を省略することを特徴とする。
【００２１】
１行分の文字が３つの分割データによって構成され、分割データを印刷する毎に紙送りして印刷する構成の場合、通常、紙送り量は１つの分割データの高さ分の紙送りを行う必要がある。しかしながら、意図的に空白部を挿入したい場合は、１つの分割データの高さより大きい紙送りを行う必要がある。意図的に空白部を挿入する場合に、合成する処理を行うと、挿入したはずの空白部が印刷されず、期待する印字体裁を得ることができない虞がある。上記構成によれば、紙送り量が分割データの高さより大きい場合は、合成分割データを生成する処理を実行しないので、意図的に空白部を含んだ印字体裁を得ることができる。
【００２２】
また、本発明のプリンタドライバにおいて、前記文字は、タイ文字であることを特徴とする。上記構成によれば、複数の要素の組み合わせによって表現されるタイ文字を印刷する場合、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができる。
【００２３】
また、上記課題を解決することのできる本発明は、１行分の文字が３つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御する印刷制御方法であって、
アプリケーションから送られた印刷データから、前記１行分の文字の上部要素を形成する上部分割データと、前記１行分の文字の中間要素を形成する中間分割データと、前記１行分の文字の下部要素を形成する下部分割データと、を抽出するステップと、
前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成するステップと、を有することを特徴とする。
【００２４】
上記構成によれば、前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減するので、前行と次行との行間をつめて印刷することができる。したがって、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができる。
【００２５】
また、上記課題を解決することのできる本発明の制御プログラムは、印刷システムが有するコンピュータに、上記のステップを実行させることを特徴とする。
【００２６】
上記構成によれば、印刷装置と、印刷装置と通信可能に接続されたホストコンピュータと、によって構成される印刷システムにおいて、制御プログラムを、ファームウェアとして印刷装置に搭載することも、ホストコンピュータに搭載することもできる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明に係るプリンタドライバ、印刷制御方法および制御プログラムの実施形態について、図面を参照して詳細に説明する。
図１は本実施形態の印刷システムの構成を示すブロック図であり、図２は、本実施形態のプリンタドライバが実行する印刷データを変換する処理を説明するためのフローチャートである。
【００２８】
図１に示した印刷システム１は、ホストコンピュータ２と、ホストコンピュータ２と通信可能に接続されたプリンタ３と、を有している。プリンタ３は、例えばＰＯＳシステムにおいてレシートの発行を行うプリンタで、ホストコンピュー２から送信された印刷データに基づき印刷処理を実行する。なお、本実施形態のホストコンピュータ２は、ＰＯＳシステムにおけるＰＯＳ端末の機能を含めた構成となっている。
【００２９】
ホストコンピュータ２は、レシート印刷用のアプリケーション４と、アプリケーション４から送られる印刷データをプリンタ３の仕様に対応する印刷データに変換するプリンタドライバ５と、を備えている。本実施形態の印刷データは、ＰＯＳ端末から送信された販売商品情報に基づいてアプリケーション４が作成したタイ文字のレシート印刷データであり、タイ文字を構成する各要素に対応するコードが含まれている。レシート印刷データは、ホストコンピュータ２にインストールされているプリンタドライバ５を介してプリンタ３に送信される。
【００３０】
プリンタドライバ５は、主として分割データ抽出部６と分割データ合成部７とを備えている。さらに分割データ合成部７は、印字桁整列部８とイメージデータ生成部９とを備えている。分割データ抽出部６は、アプリケーション４から送られたレシート印刷データに含まれるコードの並びからタイ文字の各行を構成する分割データを抽出する。分割データ合成部７は、抽出された分割データをのうち、特定の分割データ同士を合成する。印字桁整列部８は、タイ文字の各要素の印字桁が一致していない場合に印字桁を揃える処理を行う。また、イメージデータ生成部９は、タイ文字の各要素が同一桁に重なる場合は、その同一桁に重なる要素のイメージデータ、すなわちビットマップデータを生成する。
【００３１】
プリンタ３は、主として印刷データ受信部１１と印刷制御部１２と備えている。印刷データ受信部１１は、ホストコンピュータ２のプリンタドライバ７によってプリンタ３の仕様に適合するよう変換されたレシート印刷データを受信する。印刷制御部１２は、印刷データ受信部１１が受信したレシート印刷データに基づき、レシートを印刷する処理を制御する。
【００３２】
次に、図２を参照してプリンタドライバが行うレシート印刷データの変換処理について詳細に説明する。
まず、プリンタドライバ５がアプリケーション４からレシート印刷データを受信すると（ステップＳ１１：Ｙｅｓ）、分割データ抽出部６が分割データを抽出する（ステップＳ１２）。具体的には、図７（ａ）に示したように、アプリケーション４が作成するタイ文字のレシート印刷データ１００には、タイ文字を構成する各要素に対応するコードが含まれている。図７の場合は、２行分のタイ語の印刷データを例示している。イメージ左側から順に、要素５１はコード「Ｂ７ｈ」、要素５２はコード「Ｄ５ｈ」、要素５３はコード「Ａ８ｈ」、要素５４はコード「Ｄ９ｈ」、要素５５はコード「Ｃ２ｈ」、要素５６はコード「Ｅ８ｈ」に対応している。「０Ｄｈ」は改行を意味する指示であり、「０Ｄｈ」までを１行分の行データ１００ａとし、２行目の行データ１００ｂとして１行目と同じコードが続いている。
【００３３】
分割データ抽出部６は、図７（ｂ）に示すように、レシート印刷データ１００にスペース「２０ｈ」と改行「０Ｄｈ」を追加して、各要素に対応するコードの並びを変更する。具体的には、まず要素５２に対応するコード「Ｄ５ｈ」、スペース「２０ｈ」、要素５６に対応するコード「Ｅ８ｈ」、改行「０Ｄｈ」の順に並び替える。すなわち、レシート印刷データ１００からタイ文字の１行目の上部要素Ａ１を形成する上部分割データ１１０ａを抽出する。
【００３４】
また、要素５１に対応するコード「Ｂ７ｈ」、要素５３に対応するコード「Ａ８ｈ」、要素５５に対応するコード「Ｃ２ｈ」、改行「０Ｄｈ」の順に並び替える。すなわち、レシート印刷データ１００から１行目のタイ文字の中間要素Ｂ１を形成する中間分割データ１１０ｂを抽出する。さらに、スペース「２０ｈ」、要素５４に対応するコード「Ｄ９ｈ」、スペース「２０ｈ」、改行「０Ｄｈ」の順に並び替える。すなわち、レシート印刷データ１００から１行目のタイ文字の下部要素Ｃ１を形成する下部分割データ１１０ｃを抽出する。
同様に、２行目の上部分割データ１１０ｄ、２行目の中間分割データ１１０ｅ、２行目の下部分割データ１１０ｆを抽出する。ここまでは、従来のプリンタドライバが行っていた処理と同様である。
【００３５】
このように、本実施形態のプリンタドライバ５はタイ文字の印刷に対応しており、１行分の文字を３つの分割データによって構成し、各分割データを印刷する毎に紙送りを行うようプリンタ３を制御する。
【００３６】
次に、分割データ合成部７は、１行目の下部分割データ１１０ｃと２行目の上部分割データ１１０ｄとの間の紙送り量が、１つの分割データの高さより大きいか否かを判定する（ステップ１３）。例えば、１つの分割データの高さを２４ｄｏｔとすると、各分割データを印刷する毎に送られる紙送り量は同一であるため、通常指示される紙送り量は２４ｄｏｔ分の送り量である。ところが、アプリケーションから指示された紙送り量が２４ｄｏｔを超える紙送り量であった場合は、分割データ間に意図的に空白部を挿入する指示であることが想定できる。したがって、１行目の下部分割データ１１０ｃと２行目の上部分割データ１１０ｄとの間の紙送り量が、１つの分割データの高さより大きい場合は（ステップＳ１３：Ｙｅｓ）、分割データ同士を合成して空白部を削減する処理を実行することなく、次の行に関する分割データについて同様の判定を行う（ステップＳ１４：Ｎｏ,ステップＳ１３）。
【００３７】
具体的には、図３に示すように、１行目の下部分割データ１１０ｃに対応する下部要素Ｃ１と２行目の上部分割データ１１０ｄに相当する上部要素Ａ２との間の紙送り量が３６ｄｏｔの場合などは、意図的に１２ｄｏｔ分の空白部を挿入する指示であるため、分割データ同士を合成して空白部を削減する処理は省略される。
【００３８】
一方、１行目の下部分割データ１１０ｃと２行目の上部分割データ１１０ｄとの間の紙送り量が、１つの分割データの高さ以下である場合は（ステップＳ１３：Ｎｏ）、分割データ同士を合成して以下に説明する空白部を削減する処理を実行する。
分割データ合成部７は、１行目の下部要素Ｃ１の印字桁と２行目の上部要素Ａ２の印字桁とが一致しているか否かを判定する（ステップＳ１５）。一致していないと判定した場合は（ステップＳ１５：Ｎｏ）、印字桁整列部８が印字桁を揃える処理を行う（ステップＳ１６）。
【００３９】
具体的には、図４（ａ）に示すように、例えば２行目の上部要素Ａ２の印字開始位置Ｌが１行目の下部要素Ｃ１の印字開始位置とずれている場合は、各要素同士の印字桁を揃える。この場合は、２行目の上部要素Ａ２の印字開始位置Ｌを左にずらして（矢印Ｚ方向にずらして）印字開始位置Ｍとし、要素５４の桁に要素５２の桁を揃える。図４（ｂ）は印字桁を揃えた状態のイメージを示している。
【００４０】
一方、１行目の下部要素Ｃ１の印字桁と２行目の上部要素Ａ２の印字桁とが一致していると判定した場合は（ステップＳ１５：Ｙｅｓ）、分割データ合成部７は、１行目の下部要素Ｃ１と２行目の上部要素Ａ２との間で同一桁に重なる要素があるか否かを判定する。同一桁に重なる要素がないと判定した場合は（ステップＳ１７：Ｎｏ）、合成分割データを生成する（ステップＳ１８）。
【００４１】
具体的には、ステップＳ１２で抽出した分割データ１１０ａ〜１１０ｆのうち、１行目の下部分割データ１１０ｃと２行目の上部分割データ１１０ｄとを合成して、図５に示す合成分割データ１１０ｇを生成する。すなわち、１行目の下部分割データ１１０ｃに含まれるスペース５７「２０ｈ」と２行目の上部分割データ１１０ｄに含まれる要素５２「Ｄ５ｈ」とを合成して合成分割データ１１０ｇの要素５２「Ｄ５ｈ」とし、１行目の下部分割データ１１０ｃに含まれる要素５４「Ｄ９ｈ」と２行目の上部分割データ１１０ｄに含まれるスペース５８「２０ｈ」とを合成して合成分割データ１１０ｇの要素５４「Ｄ９ｈ」とし、１行目の下部分割データ１１０ｃに含まれるスペース５９「２０Ｈ」と２行目の上部分割データ１１０ｄに含まれる要素５６「Ｅ８ｈ」と、を合成して合成分割データ１１０ｇの要素５６「Ｅ８ｈ」とする。
【００４２】
このように、スペース５７，５８，５９「２０ｈ」を要素と合成することによって１行目と２行目との行間をつめて印刷することができる。また、スペース５７，５８，５９「２０ｈ」に相当するデータ量を削減できるので、データ転送時間やデータ処理時間を短縮できる。
【００４３】
一方、同一桁に重なる要素があると判定した場合は（ステップＳ１７：Ｙｅｓ）、合成分割データを生成するとともに、同一桁に重なっている要素のイメージデータを生成する（ステップＳ１９）。
【００４４】
例えば、図６に示すように、１行目の下部分割データ１１０ｃに含まれるスペース５９が要素６０「Ｄ８ｈ」であった場合、１行目の下部分割データ１１０ｃの要素６０「Ｄ８ｈ」と２行目の上部分割データ１１０ｄに含まれる要素５６「Ｅ８ｈ」とは、同一桁に重なっている。このような場合には、要素６０「Ｄ８ｈ」と要素５６「Ｅ８ｈ」とが上下に重なっている状態Ｙのビットマップデータと印字コマンドを含めたイメージデータ１１０ｉ（１Ｂｈ  ２６h……１Ｂｈ  ２５ｈ  ０１ｈ  ０１ｈ）を生成する。
【００４５】
分割データ合成部７は、合成分割データを生成する処理が終了すると、全ての行について処理が終了するまで、上記ステップＳ１３〜ステップＳ１９を繰り返し実行し、全ての行について処理が終了すると（ステップＳ１４：Ｙｅｓ）、変換されたレシート印刷データ１１０'やレシート印刷データ１１０''をプリンタ３に送信する（ステップＳ２０）。
【００４６】
プリンタ３の印刷制御部１２は、印刷データ受信部１１が受信したレシート印刷データ１１０'やレシート印刷データ１１０''に基づきレシートを印刷する。
【００４７】
このように、本実施形態によれば、１行目の下部分割データＣ１と２行目の上部分割データＡ２との間に形成される印刷結果における空白部Ｘを削減するので、１行目と２行目との行間をつめて印刷することができる。したがって、各行間に空白部Ｘが形成されることを防止し、印刷用紙の消費量を抑えることができる。
【００４８】
また、図６に示すように１行目の下部分割データＣ１に含まれる各要素６０と２行目の上部分割データＡ２に含まれる各要素５６とが同一桁に重なる場合は、各スペースと各要素を合成するように単純に合成することができない。すなわち、要素同士が同一桁に重なった状態のイメージに対応するコードは、図８に示す変換テーブルにないため適当なコードに変換することができない。しかしながら、本実施形態によれば、要素６０，要素５６が同一桁に重なった状態のイメージデータを生成するので、コード変換できなくてもイメージデータそのものをプリンタ３に与えることができる。
【００４９】
また、図４に示すように１行目の下部要素Ｃ１の印字桁と２行目の上部要素Ａ２の印字桁とが一致していない場合も、各スペースと各要素とを合成するように単純に合成することができない。すなわち、要素同士５４，５２の印字桁がずれている場合は、要素同士がずれて重なった状態のイメージに対応するコードは、図８に示す、変換テーブルにないため適当なコードに変換することができない。さらに、要素同士５４，５２が左右にずれた状態のイメージデータを生成しようとすると、印字桁が一致している場合よりも多くの種類のイメージデータを生成しなければならない。しかしながら、本実施形態によれば、印字桁を揃えることで、生成するイメージデータの数を最小限にすることができる。なお、印字桁を揃える場合は、１つ前の要素の印字桁に揃えることも、１つ後ろの要素の印字桁に揃えてもよい。
【００５０】
また、本実施形態では、１行分の文字が上部分割データ、中間分割データ、下部分割データによって構成され、各分割データを印刷する毎に紙送りして印刷するため、紙送り量は１つの分割データの高さ分の紙送りを行う必要がある。本実施形態によれば、紙送り量が分割データの高さより大きい場合は、合成分割データを生成する処理を実行しないので、意図的に空白部Ｘを含んだ印字体裁を得ることができる、期待する印字結果を出力することができる。
【００５１】
なお、本実施形態では、ホストコンピュータ２がプリンタドライバ５を備えた構成であるが、プリンタ３のファームウェアとしてプリンタドライバ５をプリンタ３側に搭載させることもできる。
【図面の簡単な説明】
【００５２】
【図１】本実施形態の印刷システムの構成を示すブロック図である。
【図２】本実施形態のプリンタドライバが実行する印刷データを変換する処理を説明するためのフローチャートである。
【図３】レシート印刷データに意図的に空白部を挿入した場合のイメージを示した図である。
【図４】（ａ）は各要素の印字桁がずれている状態のイメージを示した図であり、（ｂ）は印字桁を揃えた状態のイメージを示した図である。
【図５】合成分割データを生成し空白部を削減した後のレシート印刷データのイメージを示した図である。
【図６】要素同士が同一桁に重なった状態のイメージを示した図である。
【図７】（ａ）はアプリケーションが作成したタイ語の印刷データをイメージ化した図であり、（ｂ）は、従来のプリンタドライバによって、アプリケーションから送られた印刷データを変換した後の印刷データをイメージ化した図である。
【図８】プリンタが備えるタイ語の文字テーブルの一例である。
【符号の説明】
【００５３】
１：印刷システム、２：ホストコンピュータ、３：プリンタ、４：アプリケーション、５：プリンタドライバ、６：分割データ抽出部、７：分割データ合成部、８：印字桁整列部、９：イメージデータ生成部、１１：印刷データ受信部、１２：印刷制御部、５１〜５６，６０：１文字を構成する各要素、５７，５８，５９：スペース、１００：変換前のレシート印刷データ、１１０，１１０'，１１０''：変換後のレシート印刷データ
【図１】
2010015462.tif 000003
【図２】
2010015462.tif 000004
【図３】
2010015462.tif 000005
【図４】
2010015462.tif 000006
【図５】
2010015462.tif 000007
【図６】
2010015462.tif 000008
【図７】
2010015462.tif 000009
【図８】
2010015462.tif 000010