JP2010015462A - プリンタドライバ、印刷制御方法及び制御プログラム - Google Patents
プリンタドライバ、印刷制御方法及び制御プログラム Download PDFInfo
- Publication number
- JP2010015462A JP2010015462A JP2008176150A JP2008176150A JP2010015462A JP 2010015462 A JP2010015462 A JP 2010015462A JP 2008176150 A JP2008176150 A JP 2008176150A JP 2008176150 A JP2008176150 A JP 2008176150A JP 2010015462 A JP2010015462 A JP 2010015462A
- Authority
- JP
- Japan
- Prior art keywords
- divided data
- line
- data
- printer driver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1275—Print workflow management, e.g. defining or changing a workflow, cross publishing
- G06F3/1276—Print workflow management, e.g. defining or changing a workflow, cross publishing within a printer driver, e.g. driver resides either on a server or on a client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/1219—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to consumables, e.g. ink, toner, paper
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/125—Page layout or assigning input pages onto output media, e.g. imposition
Abstract
【課題】1行分の文字が3つの分割データによって構成され、分割データを印刷する毎に紙送りする場合に、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができるプリンタドライバ、印刷制御方法及び制御プログラムを提供する。
【解決手段】1行分の文字が3つの分割データによって構成され、分割データを印刷する毎に紙送りして印刷するようプリンタ3を制御する印刷制御方法であって、アプリケーション4から送られた印刷データ100から、1行分の文字の上部要素Aを形成する上部分割データ110a,110dと、1行分の文字の中間要素Bを形成する中間分割データ110b,110eと、1行分の文字の下部要素Cを形成する下部分割データ110c,110f、を抽出するステップS12と、前行の下部分割データ110cと次行の上部分割データ110dとを合成して合成分割データ110gを生成するステップS18と、を有する。
【選択図】図2
【解決手段】1行分の文字が3つの分割データによって構成され、分割データを印刷する毎に紙送りして印刷するようプリンタ3を制御する印刷制御方法であって、アプリケーション4から送られた印刷データ100から、1行分の文字の上部要素Aを形成する上部分割データ110a,110dと、1行分の文字の中間要素Bを形成する中間分割データ110b,110eと、1行分の文字の下部要素Cを形成する下部分割データ110c,110f、を抽出するステップS12と、前行の下部分割データ110cと次行の上部分割データ110dとを合成して合成分割データ110gを生成するステップS18と、を有する。
【選択図】図2
Description
本発明は、1行分の文字が3つの分割データによって構成され、分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御するプリンタドライバ、印刷制御方法及び制御プログラムに関する。
コンピュータが世界に普及するにつれ、プリンタにて利用される文字コードや文字テーブルの種類は増加している。プリンタは、ホスト装置から送信される文字コードに基づいて、文字コードをその国の文字に変換し印字する。プリンタがより多くの国で使用されるためには、プリンタが使用される国の言語に対応する文字テーブルが開発され、プリンタがこれらの文字テーブルを有することが望ましい。
通常、文字と文字コードとの関係は、1対1に対応づけられており、文字テーブルには、対応関係に基づいて文字と文字コードとが定義されている。そして、プリンタは、ホスト装置から文字コードを受信すると、この文字コードを順番に文字に変換し、これを印字する。
しかし、多種多様な言語のなかには、1つの文字を複数の要素の組み合わせによって表現するものがある。例えば、タイ語のような複数の要素からなる言語においては、指定された文字コードを対応する文字に変換し、この変換後の文字をそのまま印字すると、文字の組合せによっては、正しい文字表記でない場合がある。特許文献1には、タイ語のような複数の要素からなる言語を印刷するプリンタが記載されている。
図7(a)は、アプリケーションが作成したタイ語の印刷データをイメージ化した図であり、図7(b)は、従来のプリンタドライバによって、アプリケーションから送られた印刷データを変換した後の印刷データをイメージ化した図であり、図8は、プリンタが備えるタイ語の文字テーブルの一例である。
図7(a)に示すように、アプリケーションが作成した印刷データ100には、タイ文字を構成する各要素に対応するコードが含まれている。ここでは、2行分のタイ文字の印刷データを例示している。図8の文字テーブルによると、イメージ左側から順に、要素51はコード「B7h」、要素52はコード「D5h」、要素53はコード「A8h」、要素54はコード「D9h」、要素55はコード「C2h」、要素56はコード「E8h」に対応している。「0Dh」は改行を意味する指示であり、「0Dh」までを1行分の行データ100aとし、2行目の行データ100bとして1行目と同じコード列が続いている。
図7(a)に示すように、アプリケーションが作成した印刷データ100には、タイ文字を構成する各要素に対応するコードが含まれている。ここでは、2行分のタイ文字の印刷データを例示している。図8の文字テーブルによると、イメージ左側から順に、要素51はコード「B7h」、要素52はコード「D5h」、要素53はコード「A8h」、要素54はコード「D9h」、要素55はコード「C2h」、要素56はコード「E8h」に対応している。「0Dh」は改行を意味する指示であり、「0Dh」までを1行分の行データ100aとし、2行目の行データ100bとして1行目と同じコード列が続いている。
ここで、上記アプリケーションが作成した印刷データ100をプリンタに送信し、プリンタは受信した印刷データ100に基づき印刷処理を行う場合を考える。この場合、プリンタは受信した印刷データ100に含まれるコードに対応する要素を図8の文字テーブルから捜し出し、それを実際のドットイメージとして展開して印刷する。つまり、印刷データ100のままでは、図7(a)に示したような印刷結果が出力される。これでは正しいタイ文字が印字できない。
一般に、アプリケーションとプリンタの間にはプリンタドライバが介在しており、プリンタドライバがプリンタの仕様に適合する印刷データに変換している。すなわち、印刷データ100は、プリンタドライバによって正しいタイ文字を印刷するデータに変換され、プリンタへ送信される。図7(b)に示すように、プリンタドライバは、印刷データ100にスペース「20h」と改行「0Dh」を追加して、各要素に対応するコードの並びを変更する。具体的には、まず要素52に対応するコード「D5h」、スペース「20h」、要素56に対応するコード「E8h」、改行「0Dh」の順に並び替える。すなわち、印刷データ100から1行目の上部要素A1を形成する上部分割データ110aを抽出する。
次に、要素51に対応するコード「B7h」、要素53に対応するコード「A8h」、要素55に対応するコード「C2h」、改行「0Dh」の順に並び替える。すなわち、印刷データ100から1行目のタイ語の中間要素B1を形成する中間分割データ110bを抽出する。さらに、スペース「20h」、要素54に対応するコード「D9h」、スペース「20h」、改行「0Dh」の順に並び替える。すなわち、印刷データ100から1行目のタイ語の下部要素C1を形成する下部分割データ110cを抽出する。
同様に、2行目の上部分割データ110d、2行目の中間分割データ110e、2行目の下部分割データ110fを抽出する。
同様に、2行目の上部分割データ110d、2行目の中間分割データ110e、2行目の下部分割データ110fを抽出する。
このように、従来のプリンタドライバは、1行分のタイ文字を、上部分割データ、中間分割データ及び下部分割データの3つの分割データから構成するよう変換していた。このように変換された印刷データ110に基づいてプリンタが印刷を行うと、図7(b)に示す印刷結果を得ることができる。この場合、プリンタは改行「0Dh」指示に応じて、各分割データを印刷する毎に所定量の紙送りを行う。通常、各分割データの高さは全て同じ高さに設定されているため、分割データの高さに相当する紙送り量の紙送りを行う。
具体的な数値を当てはめると、各分割データの高さの最大値を24dotとすると、各分割データを印刷する毎に24dot分の紙送りを行う。
特開2002−116900号公報
具体的な数値を当てはめると、各分割データの高さの最大値を24dotとすると、各分割データを印刷する毎に24dot分の紙送りを行う。
ところで、タイ語の1文字を適切に表現するためには、上部要素A1,A2と下部要素C1,C2とはそれぞれ中間要素B1,B2側にできるだけ接近して印刷する必要がある。さらに、上部要素A1,A2に含まれる各要素と下部要素C1,C2に含まれる各要素が、中間要素B1,B2に含まれる各要素より小さい場合は、上部分割データおよび下部分割データの最大高さ24dotのうち1部しか使用しない。
すなわち、各分割データを印刷する毎に24dot分の紙送りを行うと、1行目の下部要素C1と、2行目の上部要素A2との間には空白部Xが形成される。各行間に空白部Xが形成されると印刷用紙の消費量が増えてしまう。
すなわち、各分割データを印刷する毎に24dot分の紙送りを行うと、1行目の下部要素C1と、2行目の上部要素A2との間には空白部Xが形成される。各行間に空白部Xが形成されると印刷用紙の消費量が増えてしまう。
本発明は、上記課題を解決するためになされたものであって、1行分の文字が3つの分割データによって構成され、分割データを印刷する毎に紙送りする場合に、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができるプリンタドライバ、印刷制御方法及び制御プログラムを提供することを目的とする。
上記課題を解決することのできる本発明は、1行分の文字が3つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御するプリンタドライバであって、
前記3つの分割データは、前記1行分の文字の上部要素を形成する上部分割データと、前記1行分の文字の中間要素を形成する中間分割データと、前記1行分の文字の下部要素を形成する下部分割データと、によって構成され、
前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減することを特徴とする。
前記3つの分割データは、前記1行分の文字の上部要素を形成する上部分割データと、前記1行分の文字の中間要素を形成する中間分割データと、前記1行分の文字の下部要素を形成する下部分割データと、によって構成され、
前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減することを特徴とする。
上記構成によれば、前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減するので、前行と次行との行間をつめて印刷することができる。したがって、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができる。
また、本発明のプリンタドライバは、前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成する分割データ合成部を有することを特徴とする。
上記構成によれば、前行の下部分割データと次行の上部分割データとを合成する。例えば、前行の下部分割データに含まれる要素と次行の上部分割データに含まれる空白部とを合成して合成分割データの要素とし、あるいは前行の下部分割データに含まれる空白部と次行の上部分割データに含まれる要素とを合成して合成分割データの要素とし、あるいは前行の下部分割データに含まれる空白部と次行の上部分割データに含まれる空白部とを合成して合成分割データの空白部とすることによって、空白部を削減して前行と次行との行間をつめて印刷することができる。また、空白部に相当するデータ量を削減できるので、データ転送時間やデータ処理時間を短縮できる。
また、本発明のプリンタドライバにおいて、前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素と次行の上部要素との間で同一桁に重なる要素がある場合は、前記同一桁に重なる要素のイメージデータを生成することを特徴とする。
前行の下部分割データに含まれる要素と次行の上部分割データに含まれる要素とが同一桁に重なる場合は、上述した空白部と要素を合成するように単純に合成することができない。すなわち、要素同士が同一桁に重なった状態のイメージに対応するコードは、通常、変換テーブルにないため適当なコードに変換することができない。しかしながら、上記構成によれば、同一桁に重なる要素のイメージデータを生成するので、コード変換できなくてもイメージデータそのものを印刷装置に与えることができる。
また、本発明のプリンタドライバにおいて、前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素の印字桁と次行の上部要素の印字桁とが一致していない場合は、印字桁を揃えることを特徴とする。
上記構成によれば、前行の下部要素の印字桁と次行の上部要素の印字桁とが一致していない場合も、上述した空白部と要素との合成のように単純に合成することができない。すなわち、要素同士の印字桁がずれている場合は、要素同士がずれて重なった状態のイメージに対応するコードは、通常、変換テーブルにないため適当なコードに変換することができない。さらに、要素同士が左右にずれた状態のイメージデータを生成しようとすると、印字桁が一致している場合よりも多くの種類のイメージデータを生成しなければならない。しかしながら、上記構成によれば、印字桁を揃えることで、生成するイメージデータの数を最小限にすることができる。なお、印字桁を揃える場合は、前の印字桁に揃えることも、後ろの印字桁に揃えることもできる。
また、本発明のプリンタドライバにおいて、前記分割データ合成部は、前行の下部分割データと次行の上部分割データとの間の紙送り量が、前記分割データの高さより大きい場合は、前記合成分割データを生成する処理を省略することを特徴とする。
1行分の文字が3つの分割データによって構成され、分割データを印刷する毎に紙送りして印刷する構成の場合、通常、紙送り量は1つの分割データの高さ分の紙送りを行う必要がある。しかしながら、意図的に空白部を挿入したい場合は、1つの分割データの高さより大きい紙送りを行う必要がある。意図的に空白部を挿入する場合に、合成する処理を行うと、挿入したはずの空白部が印刷されず、期待する印字体裁を得ることができない虞がある。上記構成によれば、紙送り量が分割データの高さより大きい場合は、合成分割データを生成する処理を実行しないので、意図的に空白部を含んだ印字体裁を得ることができる。
また、本発明のプリンタドライバにおいて、前記文字は、タイ文字であることを特徴とする。上記構成によれば、複数の要素の組み合わせによって表現されるタイ文字を印刷する場合、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができる。
また、上記課題を解決することのできる本発明は、1行分の文字が3つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御する印刷制御方法であって、
アプリケーションから送られた印刷データから、前記1行分の文字の上部要素を形成する上部分割データと、前記1行分の文字の中間要素を形成する中間分割データと、前記1行分の文字の下部要素を形成する下部分割データと、を抽出するステップと、
前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成するステップと、を有することを特徴とする。
アプリケーションから送られた印刷データから、前記1行分の文字の上部要素を形成する上部分割データと、前記1行分の文字の中間要素を形成する中間分割データと、前記1行分の文字の下部要素を形成する下部分割データと、を抽出するステップと、
前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成するステップと、を有することを特徴とする。
上記構成によれば、前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減するので、前行と次行との行間をつめて印刷することができる。したがって、各行間に空白部が形成されることを防止し、印刷用紙の消費量を抑えることができる。
また、上記課題を解決することのできる本発明の制御プログラムは、印刷システムが有するコンピュータに、上記のステップを実行させることを特徴とする。
上記構成によれば、印刷装置と、印刷装置と通信可能に接続されたホストコンピュータと、によって構成される印刷システムにおいて、制御プログラムを、ファームウェアとして印刷装置に搭載することも、ホストコンピュータに搭載することもできる。
以下、本発明に係るプリンタドライバ、印刷制御方法および制御プログラムの実施形態について、図面を参照して詳細に説明する。
図1は本実施形態の印刷システムの構成を示すブロック図であり、図2は、本実施形態のプリンタドライバが実行する印刷データを変換する処理を説明するためのフローチャートである。
図1は本実施形態の印刷システムの構成を示すブロック図であり、図2は、本実施形態のプリンタドライバが実行する印刷データを変換する処理を説明するためのフローチャートである。
図1に示した印刷システム1は、ホストコンピュータ2と、ホストコンピュータ2と通信可能に接続されたプリンタ3と、を有している。プリンタ3は、例えばPOSシステムにおいてレシートの発行を行うプリンタで、ホストコンピュー2から送信された印刷データに基づき印刷処理を実行する。なお、本実施形態のホストコンピュータ2は、POSシステムにおけるPOS端末の機能を含めた構成となっている。
ホストコンピュータ2は、レシート印刷用のアプリケーション4と、アプリケーション4から送られる印刷データをプリンタ3の仕様に対応する印刷データに変換するプリンタドライバ5と、を備えている。本実施形態の印刷データは、POS端末から送信された販売商品情報に基づいてアプリケーション4が作成したタイ文字のレシート印刷データであり、タイ文字を構成する各要素に対応するコードが含まれている。レシート印刷データは、ホストコンピュータ2にインストールされているプリンタドライバ5を介してプリンタ3に送信される。
プリンタドライバ5は、主として分割データ抽出部6と分割データ合成部7とを備えている。さらに分割データ合成部7は、印字桁整列部8とイメージデータ生成部9とを備えている。分割データ抽出部6は、アプリケーション4から送られたレシート印刷データに含まれるコードの並びからタイ文字の各行を構成する分割データを抽出する。分割データ合成部7は、抽出された分割データをのうち、特定の分割データ同士を合成する。印字桁整列部8は、タイ文字の各要素の印字桁が一致していない場合に印字桁を揃える処理を行う。また、イメージデータ生成部9は、タイ文字の各要素が同一桁に重なる場合は、その同一桁に重なる要素のイメージデータ、すなわちビットマップデータを生成する。
プリンタ3は、主として印刷データ受信部11と印刷制御部12と備えている。印刷データ受信部11は、ホストコンピュータ2のプリンタドライバ7によってプリンタ3の仕様に適合するよう変換されたレシート印刷データを受信する。印刷制御部12は、印刷データ受信部11が受信したレシート印刷データに基づき、レシートを印刷する処理を制御する。
次に、図2を参照してプリンタドライバが行うレシート印刷データの変換処理について詳細に説明する。
まず、プリンタドライバ5がアプリケーション4からレシート印刷データを受信すると(ステップS11:Yes)、分割データ抽出部6が分割データを抽出する(ステップS12)。具体的には、図7(a)に示したように、アプリケーション4が作成するタイ文字のレシート印刷データ100には、タイ文字を構成する各要素に対応するコードが含まれている。図7の場合は、2行分のタイ語の印刷データを例示している。イメージ左側から順に、要素51はコード「B7h」、要素52はコード「D5h」、要素53はコード「A8h」、要素54はコード「D9h」、要素55はコード「C2h」、要素56はコード「E8h」に対応している。「0Dh」は改行を意味する指示であり、「0Dh」までを1行分の行データ100aとし、2行目の行データ100bとして1行目と同じコードが続いている。
まず、プリンタドライバ5がアプリケーション4からレシート印刷データを受信すると(ステップS11:Yes)、分割データ抽出部6が分割データを抽出する(ステップS12)。具体的には、図7(a)に示したように、アプリケーション4が作成するタイ文字のレシート印刷データ100には、タイ文字を構成する各要素に対応するコードが含まれている。図7の場合は、2行分のタイ語の印刷データを例示している。イメージ左側から順に、要素51はコード「B7h」、要素52はコード「D5h」、要素53はコード「A8h」、要素54はコード「D9h」、要素55はコード「C2h」、要素56はコード「E8h」に対応している。「0Dh」は改行を意味する指示であり、「0Dh」までを1行分の行データ100aとし、2行目の行データ100bとして1行目と同じコードが続いている。
分割データ抽出部6は、図7(b)に示すように、レシート印刷データ100にスペース「20h」と改行「0Dh」を追加して、各要素に対応するコードの並びを変更する。具体的には、まず要素52に対応するコード「D5h」、スペース「20h」、要素56に対応するコード「E8h」、改行「0Dh」の順に並び替える。すなわち、レシート印刷データ100からタイ文字の1行目の上部要素A1を形成する上部分割データ110aを抽出する。
また、要素51に対応するコード「B7h」、要素53に対応するコード「A8h」、要素55に対応するコード「C2h」、改行「0Dh」の順に並び替える。すなわち、レシート印刷データ100から1行目のタイ文字の中間要素B1を形成する中間分割データ110bを抽出する。さらに、スペース「20h」、要素54に対応するコード「D9h」、スペース「20h」、改行「0Dh」の順に並び替える。すなわち、レシート印刷データ100から1行目のタイ文字の下部要素C1を形成する下部分割データ110cを抽出する。
同様に、2行目の上部分割データ110d、2行目の中間分割データ110e、2行目の下部分割データ110fを抽出する。ここまでは、従来のプリンタドライバが行っていた処理と同様である。
同様に、2行目の上部分割データ110d、2行目の中間分割データ110e、2行目の下部分割データ110fを抽出する。ここまでは、従来のプリンタドライバが行っていた処理と同様である。
このように、本実施形態のプリンタドライバ5はタイ文字の印刷に対応しており、1行分の文字を3つの分割データによって構成し、各分割データを印刷する毎に紙送りを行うようプリンタ3を制御する。
次に、分割データ合成部7は、1行目の下部分割データ110cと2行目の上部分割データ110dとの間の紙送り量が、1つの分割データの高さより大きいか否かを判定する(ステップ13)。例えば、1つの分割データの高さを24dotとすると、各分割データを印刷する毎に送られる紙送り量は同一であるため、通常指示される紙送り量は24dot分の送り量である。ところが、アプリケーションから指示された紙送り量が24dotを超える紙送り量であった場合は、分割データ間に意図的に空白部を挿入する指示であることが想定できる。したがって、1行目の下部分割データ110cと2行目の上部分割データ110dとの間の紙送り量が、1つの分割データの高さより大きい場合は(ステップS13:Yes)、分割データ同士を合成して空白部を削減する処理を実行することなく、次の行に関する分割データについて同様の判定を行う(ステップS14:No,ステップS13)。
具体的には、図3に示すように、1行目の下部分割データ110cに対応する下部要素C1と2行目の上部分割データ110dに相当する上部要素A2との間の紙送り量が36dotの場合などは、意図的に12dot分の空白部を挿入する指示であるため、分割データ同士を合成して空白部を削減する処理は省略される。
一方、1行目の下部分割データ110cと2行目の上部分割データ110dとの間の紙送り量が、1つの分割データの高さ以下である場合は(ステップS13:No)、分割データ同士を合成して以下に説明する空白部を削減する処理を実行する。
分割データ合成部7は、1行目の下部要素C1の印字桁と2行目の上部要素A2の印字桁とが一致しているか否かを判定する(ステップS15)。一致していないと判定した場合は(ステップS15:No)、印字桁整列部8が印字桁を揃える処理を行う(ステップS16)。
分割データ合成部7は、1行目の下部要素C1の印字桁と2行目の上部要素A2の印字桁とが一致しているか否かを判定する(ステップS15)。一致していないと判定した場合は(ステップS15:No)、印字桁整列部8が印字桁を揃える処理を行う(ステップS16)。
具体的には、図4(a)に示すように、例えば2行目の上部要素A2の印字開始位置Lが1行目の下部要素C1の印字開始位置とずれている場合は、各要素同士の印字桁を揃える。この場合は、2行目の上部要素A2の印字開始位置Lを左にずらして(矢印Z方向にずらして)印字開始位置Mとし、要素54の桁に要素52の桁を揃える。図4(b)は印字桁を揃えた状態のイメージを示している。
一方、1行目の下部要素C1の印字桁と2行目の上部要素A2の印字桁とが一致していると判定した場合は(ステップS15:Yes)、分割データ合成部7は、1行目の下部要素C1と2行目の上部要素A2との間で同一桁に重なる要素があるか否かを判定する。同一桁に重なる要素がないと判定した場合は(ステップS17:No)、合成分割データを生成する(ステップS18)。
具体的には、ステップS12で抽出した分割データ110a〜110fのうち、1行目の下部分割データ110cと2行目の上部分割データ110dとを合成して、図5に示す合成分割データ110gを生成する。すなわち、1行目の下部分割データ110cに含まれるスペース57「20h」と2行目の上部分割データ110dに含まれる要素52「D5h」とを合成して合成分割データ110gの要素52「D5h」とし、1行目の下部分割データ110cに含まれる要素54「D9h」と2行目の上部分割データ110dに含まれるスペース58「20h」とを合成して合成分割データ110gの要素54「D9h」とし、1行目の下部分割データ110cに含まれるスペース59「20H」と2行目の上部分割データ110dに含まれる要素56「E8h」と、を合成して合成分割データ110gの要素56「E8h」とする。
このように、スペース57,58,59「20h」を要素と合成することによって1行目と2行目との行間をつめて印刷することができる。また、スペース57,58,59「20h」に相当するデータ量を削減できるので、データ転送時間やデータ処理時間を短縮できる。
一方、同一桁に重なる要素があると判定した場合は(ステップS17:Yes)、合成分割データを生成するとともに、同一桁に重なっている要素のイメージデータを生成する(ステップS19)。
例えば、図6に示すように、1行目の下部分割データ110cに含まれるスペース59が要素60「D8h」であった場合、1行目の下部分割データ110cの要素60「D8h」と2行目の上部分割データ110dに含まれる要素56「E8h」とは、同一桁に重なっている。このような場合には、要素60「D8h」と要素56「E8h」とが上下に重なっている状態Yのビットマップデータと印字コマンドを含めたイメージデータ110i(1Bh 26h……1Bh 25h 01h 01h)を生成する。
分割データ合成部7は、合成分割データを生成する処理が終了すると、全ての行について処理が終了するまで、上記ステップS13〜ステップS19を繰り返し実行し、全ての行について処理が終了すると(ステップS14:Yes)、変換されたレシート印刷データ110'やレシート印刷データ110''をプリンタ3に送信する(ステップS20)。
プリンタ3の印刷制御部12は、印刷データ受信部11が受信したレシート印刷データ110'やレシート印刷データ110''に基づきレシートを印刷する。
このように、本実施形態によれば、1行目の下部分割データC1と2行目の上部分割データA2との間に形成される印刷結果における空白部Xを削減するので、1行目と2行目との行間をつめて印刷することができる。したがって、各行間に空白部Xが形成されることを防止し、印刷用紙の消費量を抑えることができる。
また、図6に示すように1行目の下部分割データC1に含まれる各要素60と2行目の上部分割データA2に含まれる各要素56とが同一桁に重なる場合は、各スペースと各要素を合成するように単純に合成することができない。すなわち、要素同士が同一桁に重なった状態のイメージに対応するコードは、図8に示す変換テーブルにないため適当なコードに変換することができない。しかしながら、本実施形態によれば、要素60,要素56が同一桁に重なった状態のイメージデータを生成するので、コード変換できなくてもイメージデータそのものをプリンタ3に与えることができる。
また、図4に示すように1行目の下部要素C1の印字桁と2行目の上部要素A2の印字桁とが一致していない場合も、各スペースと各要素とを合成するように単純に合成することができない。すなわち、要素同士54,52の印字桁がずれている場合は、要素同士がずれて重なった状態のイメージに対応するコードは、図8に示す、変換テーブルにないため適当なコードに変換することができない。さらに、要素同士54,52が左右にずれた状態のイメージデータを生成しようとすると、印字桁が一致している場合よりも多くの種類のイメージデータを生成しなければならない。しかしながら、本実施形態によれば、印字桁を揃えることで、生成するイメージデータの数を最小限にすることができる。なお、印字桁を揃える場合は、1つ前の要素の印字桁に揃えることも、1つ後ろの要素の印字桁に揃えてもよい。
また、本実施形態では、1行分の文字が上部分割データ、中間分割データ、下部分割データによって構成され、各分割データを印刷する毎に紙送りして印刷するため、紙送り量は1つの分割データの高さ分の紙送りを行う必要がある。本実施形態によれば、紙送り量が分割データの高さより大きい場合は、合成分割データを生成する処理を実行しないので、意図的に空白部Xを含んだ印字体裁を得ることができる、期待する印字結果を出力することができる。
なお、本実施形態では、ホストコンピュータ2がプリンタドライバ5を備えた構成であるが、プリンタ3のファームウェアとしてプリンタドライバ5をプリンタ3側に搭載させることもできる。
1:印刷システム、2:ホストコンピュータ、3:プリンタ、4:アプリケーション、5:プリンタドライバ、6:分割データ抽出部、7:分割データ合成部、8:印字桁整列部、9:イメージデータ生成部、11:印刷データ受信部、12:印刷制御部、51〜56,60:1文字を構成する各要素、57,58,59:スペース、100:変換前のレシート印刷データ、110,110',110'':変換後のレシート印刷データ
Claims (8)
- 1行分の文字が3つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御するプリンタドライバであって、
前記3つの分割データは、前記1行分の文字の上部要素を形成する上部分割データと、前記1行分の文字の中間要素を形成する中間分割データと、前記1行分の文字の下部要素を形成する下部分割データと、によって構成され、
前行の下部分割データと次行の上部分割データとの間に形成される印刷結果における空白部を削減することを特徴とするプリンタドライバ。 - 前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成する分割データ合成部を有することを特徴とする請求項1に記載のプリンタドライバ。
- 前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素と次行の上部要素との間で同一桁に重なる要素がある場合は、前記同一桁に重なる要素のイメージデータを生成することを特徴とする請求項2に記載のプリンタドライバ。
- 前記分割データ合成部は、前記合成分割データを生成する際に、前行の下部要素の印字桁と次行の上部要素の印字桁とが一致していない場合は、印字桁を揃えることを特徴とする請求項2または3に記載のプリンタドライバ。
- 前記分割データ合成部は、前行の下部分割データと次行の上部分割データとの間の紙送り量が、前記分割データの高さより大きい場合は、前記合成分割データを生成する処理を省略することを特徴とする請求項2から4の何れかに記載のプリンタドライバ。
- 前記文字は、タイ文字であることを特徴とする請求項1から5の何れかに記載のプリンタドライバ。
- 1行分の文字が3つの分割データによって構成され、前記分割データを印刷する毎に紙送りして印刷するよう印刷装置を制御する印刷制御方法であって、
アプリケーションから送られた印刷データから、前記1行分の文字の上部要素を形成する上部分割データと、前記1行分の文字の中間要素を形成する中間分割データと、前記1行分の文字の下部要素を形成する下部分割データと、を抽出するステップと、
前記前行の下部分割データと前記次行の上部分割データとを合成して合成分割データを生成するステップと、を有することを特徴とする印刷制御方法。 - 印刷システムが有するコンピュータに、請求項7に記載のステップを実行させることを特徴とする制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008176150A JP2010015462A (ja) | 2008-07-04 | 2008-07-04 | プリンタドライバ、印刷制御方法及び制御プログラム |
KR1020090060206A KR101365400B1 (ko) | 2008-07-04 | 2009-07-02 | 프린터 드라이버, 인쇄 제어 방법 및 컴퓨터 판독 가능한 기록 매체 |
CN2009101425953A CN101620519B (zh) | 2008-07-04 | 2009-07-03 | 打印机驱动器、印刷控制方法及控制程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008176150A JP2010015462A (ja) | 2008-07-04 | 2008-07-04 | プリンタドライバ、印刷制御方法及び制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010015462A true JP2010015462A (ja) | 2010-01-21 |
Family
ID=41513772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008176150A Withdrawn JP2010015462A (ja) | 2008-07-04 | 2008-07-04 | プリンタドライバ、印刷制御方法及び制御プログラム |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2010015462A (ja) |
KR (1) | KR101365400B1 (ja) |
CN (1) | CN101620519B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015066824A (ja) * | 2013-09-30 | 2015-04-13 | セイコーエプソン株式会社 | 印刷装置、印刷装置の制御方法、及び、プログラム |
US9235915B2 (en) | 2012-03-28 | 2016-01-12 | Nec Platforms, Ltd | Image data generation method, image data generation device, and image data generation program |
JP2017124572A (ja) * | 2016-01-15 | 2017-07-20 | セイコーエプソン株式会社 | 印刷装置、及び印刷装置の制御方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5909871B2 (ja) * | 2011-04-28 | 2016-04-27 | セイコーエプソン株式会社 | 記録装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3780103B2 (ja) * | 1997-09-03 | 2006-05-31 | キヤノン株式会社 | 情報処理装置、情報処理方法、記憶媒体、及び、印刷システム |
JP2003044472A (ja) * | 2001-07-31 | 2003-02-14 | Canon Inc | 情報処理装置、情報処理システム、情報処理装置の制御方法、記憶媒体、及び制御プログラム |
-
2008
- 2008-07-04 JP JP2008176150A patent/JP2010015462A/ja not_active Withdrawn
-
2009
- 2009-07-02 KR KR1020090060206A patent/KR101365400B1/ko active IP Right Grant
- 2009-07-03 CN CN2009101425953A patent/CN101620519B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9235915B2 (en) | 2012-03-28 | 2016-01-12 | Nec Platforms, Ltd | Image data generation method, image data generation device, and image data generation program |
JP2015066824A (ja) * | 2013-09-30 | 2015-04-13 | セイコーエプソン株式会社 | 印刷装置、印刷装置の制御方法、及び、プログラム |
JP2017124572A (ja) * | 2016-01-15 | 2017-07-20 | セイコーエプソン株式会社 | 印刷装置、及び印刷装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20100004877A (ko) | 2010-01-13 |
CN101620519A (zh) | 2010-01-06 |
KR101365400B1 (ko) | 2014-02-19 |
CN101620519B (zh) | 2012-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10459668B2 (en) | Print control device, printing system, and print control method for generating image print commands from print data in markup language | |
EP2620898A1 (en) | Image processing device, printing device, image processing method and computer program product | |
JP6123166B2 (ja) | 印刷制御装置、印刷システムおよび印刷制御方法 | |
JP2010015462A (ja) | プリンタドライバ、印刷制御方法及び制御プログラム | |
JP6015077B2 (ja) | 印刷制御装置、印刷システムおよび印刷制御方法 | |
CN101232550A (zh) | 打印设置指示装置、系统和方法以及打印处理系统 | |
US8397162B2 (en) | Method, printing system and computer program for generating and processing document data streams | |
EP1128329B1 (en) | Image processing apparatus and method | |
JP5832176B2 (ja) | ページごとに区分されたドキュメントデータを出力するための方法およびコンピュータプログラム | |
JP6106939B2 (ja) | 印刷制御装置、印刷装置、印刷システムおよび印刷制御方法 | |
JP2008176651A (ja) | 印刷制御装置及び印刷制御装置の制御方法 | |
US20110157634A1 (en) | Printing process device, printing process method, and computer readable storage medium storing printing process program | |
JP2020024516A (ja) | 情報処理装置および情報処理プログラム | |
JP6031797B2 (ja) | 印刷制御装置、印刷システム、および印刷システムの制御方法 | |
JP4134496B2 (ja) | 文字印刷方法 | |
JPS629031B2 (ja) | ||
US20160110146A1 (en) | Printing device, control method of a printing device, and storage medium | |
JP2010128574A (ja) | 画像形成装置、分割された文字列の検出プログラム及び文字列の結合プログラム | |
JPS6179660A (ja) | 印字パタ−ン発生装置 | |
JP2017124572A (ja) | 印刷装置、及び印刷装置の制御方法 | |
JP2006172362A (ja) | 文字処理装置、文字処理方法、及びプログラム | |
JP2010079620A (ja) | 画像形成システム、情報処理装置、印刷制御方法およびプログラム | |
US20110060982A1 (en) | Pdl data processing device | |
JP2002175171A (ja) | 言語表記システム及び言語表記方法 | |
JP5853537B2 (ja) | 印刷のための制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110513 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111219 |