説明

プログラム、プリンタ制御装置及びプリンタシステム

【課題】 印刷ずれを防止して、印刷品質を向上させることができるプログラム、プリンタ制御装置及びプリンタシステムを提供する。
【解決手段】 本発明のプログラムは、コンピュータに、プリンタ3へ送信する印刷データ12内の空行データの有無及び位置を検出する検出手段15と、印刷データ12に対して、プリンタ3が備えるバッファ9のサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、検出手段15が空行データを検出した場合、分割位置を空行データの位置に設定する分割手段16と、を機能させることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、プリンタ制御装置及びプリンタシステムに関する。
【背景技術】
【0002】
プリンタは、例えばプリンタ制御装置にインストールされたプリンタドライバから送信される印刷データを用いて印刷を行う。例えば、特許文献1には、1ライン分のデータを保持する2つの記憶部を有するプリンタが開示されている。
【0003】
プリンタには、プリンタドライバから受信した印刷データを、プリンタのバッファのサイズの範囲内で一時的に蓄積し、蓄積した印刷データ毎に一括で印刷する機能を有するものがある。このようなプリンタを用いて、プリンタのバッファのサイズを超える印刷データを印刷する場合、プリンタドライバにて印刷データを所定のサイズに分割して、分割した印刷データをプリンタに送信する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−30253号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、印刷データを分割する分割位置が、例えば文字の途中に設定された場合、プリンタは印刷データ毎に一括で印刷を行うために、分割位置で印刷ずれが発生する場合がある。そのため、印刷された文字が判別しにくくなり、印刷品質が低下してしまう場合がある。
【0006】
本発明は、上記課題に鑑みなされたものであり、印刷ずれを防止して、印刷品質を向上させることが可能なプログラム、プリンタ制御装置及びプリンタシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明のプログラムは、コンピュータに、プリンタへ送信する印刷データ内の空行データの有無及び位置を検出する検出手段と、前記印刷データに対して、前記プリンタが備えるバッファのサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、前記検出手段が前記空行データを検出した場合、前記分割位置を前記空行データの位置に設定する分割手段と、を機能させることを特徴とする。
【0008】
これにより、印刷データを空行データの位置で分割することができる。よって、印刷ずれを防止して、印刷品質を向上させることができる。
【0009】
上記構成において、前記分割手段は、前記検出手段が複数の空行データを検出した場合、前記分割手段により分割されるサイズが最大となるように、前記分割位置を前記複数の空行データの位置のうちいずれかに設定する構成としてもよい。
【0010】
上記構成において、前記分割手段は、前記検出手段が前記空行データを検出しなかった場合、前記分割位置を前記プリンタにより印刷される行データのうちサイズが最小である行データの位置に設定する構成としてもよい。これにより、印刷データに空行データがない場合であっても、印刷ずれによる印刷品質の低下を抑えることができる。
【0011】
本発明のプログラムは、前記プリンタが備える前記バッファのサイズを前記プリンタから取得する取得手段を機能させる構成としてもよい。
【0012】
本発明のプリンタ制御装置は、上記のプログラムのいずれかによりプリンタを制御することを特徴とする。
【0013】
本発明のプリンタシステムは、上記のプログラムのいずれかによりプリンタを制御するプリンタ制御装置と、前記プリンタと、を具備することを特徴とする。
【発明の効果】
【0014】
本発明のプログラム、プリンタ制御装置及びプリンタシステムによれば、印刷ずれを防止して、印刷品質を向上させることができる。
【図面の簡単な説明】
【0015】
【図1】図1は、実施例1に係るプリンタシステムの構成を示すブロック図である。
【図2】図2(a)、図2(b)、図2(c)及び図2(d)は、実施例1に係る印刷データ及びバッファを模式的に示す図である。
【図3】図3は、実施例1に係る印刷を行う場合のプリンタドライバの処理のフローチャートである。
【図4】図4は、実施例1に係るプリンタドライバがプリンタからバッファのサイズを取得する処理のフローチャートである。
【図5】図5は、実施例1に係るプリンタがプリンタドライバへバッファのサイズを通知する処理のフローチャートである。
【図6】図6(a)及び図6(b)は、実施例1に係るプリンタシステムによる印刷結果の一例を示す図である。
【図7】図7(a)及び図7(b)は、比較例に係るプリンタシステムによる印刷結果の一例を示す図である。
【発明を実施するための形態】
【0016】
以下に、図面を用いて、本発明の実施例について詳細に説明する。
【実施例1】
【0017】
図1を参照して、実施例1に係るプリンタシステムの構成を説明する。図1は、実施例1に係るプリンタシステム100の構成を示すブロック図である。図1のように、プリンタシステム100は、プリンタ制御装置1とプリンタ3とを備える。プリンタ制御装置1とプリンタ3とは、インターフェース2により接続される。インターフェース2は、例えば、USB(Universal Serial Bus)、RS−232C等の有線インターフェースや無線LAN(Local Area Network)等の無線インターフェースである。
【0018】
プリンタ制御装置1は、コンピュータ又はコンピュータを備えた装置である。プリンタドライバ4及びアプリケーション5は、コンピュータにインストールされ、コンピュータが実行するプログラムである。印刷データ11は、アプリケーション5が生成した印刷データである。印刷データ12は、プリンタ3が印刷データ11をプリンタドライバ4が印刷可能な形式に変換した印刷データである。印刷データ13は、プリンタドライバ4がプリンタ3に送信する印刷データである。
【0019】
アプリケーション5は、ユーザがプリンタ3に印刷を実行させるためのユーザインターフェースを備える。アプリケーション5は、プリンタ3が印刷する印刷データ11を生成して、ユーザからの指示に基づいて印刷データ11をプリンタドライバ4へ送信する。アプリケーション5は、例えば、文書や図面を作成するエディタ等である。
【0020】
プリンタドライバ4は、コンピュータに、変換部14、検出部15、分割部16、バッファサイズ取得部17及び記憶部7を機能させる。変換部14は、アプリケーション5から受信した印刷データ11をプリンタ3が印刷可能な形式の印刷データ12に変換する。検出部15は、印刷データ12内の空行データの有無及び位置を検出する。分割部16は、印刷データ12に対して、プリンタが備えるバッファ9のサイズより小さいサイズとなるように分割するための分割位置を設定して分割する。分割部16は、検出部15が空行データを検出した場合、分割位置を空行データの位置に設定する。バッファサイズ取得部17は、プリンタ3が備えるバッファ9のサイズをプリンタ3から取得する。記憶部7は、プリンタ3から取得したバッファ9のサイズやプリンタドライバ4がプリンタ3に指示する印刷設定等の情報を記憶する。印刷設定の情報とは、例えば、印刷する用紙の大きさや倍率等の情報である。
【0021】
プリンタ3は、バッファ9、バッファサイズ通知部8及び印刷ヘッド10を有する。バッファ9は、プリンタ3が印刷データ13を受信する速度と印刷ヘッド10が印刷する速度の差を吸収するため、プリンタ制御装置1から受信した印刷データ13を一時的に蓄積する。印刷ヘッド10は、バッファ9が蓄積する印刷データを一括で読み出して用紙等に印刷する。バッファサイズ通知部8は、バッファ9のサイズをプリンタドライバ4に通知する。
【0022】
図2(a)、図2(b)、図2(c)及び図2(d)を参照して、実施例1に係る印刷データに対するプリンタドライバ4の処理を説明する。図2(a)、図2(b)、図2(c)及び図2(d)は、実施例1に係る印刷データ11、12及び13並びにバッファ9を模式的に示す図である。図2(a)、図2(b)及び図2(d)に示す印刷データは、それぞれ図1に示した印刷データ11、12及び13に対応する。図2(c)は、バッファ9に対応する。
【0023】
図2(a)に示す印刷データ11は、アプリケーション5がプリンタドライバ4に送信した印刷データである。印刷データ11は、A、B及びCの各文字データを含んでおり、各文字の間に空行データがある。図2(b)に示す印刷データ12は、プリンタドライバ4の変換部14が印刷データ11をプリンタ3が印刷可能な形式に変換した印刷データであって、分割部16が分割する前の印刷データである。破線L1、L2、L3及びL4は、検出部15が検出した空行データの位置を示す。図2(c)は、バッファ9を示しており、バッファ9のサイズは所定のサイズであって、印刷データ12のサイズより小さい。図2(d)に示す印刷データ13は、分割部16が破線L4に対応する空行データの位置で印刷データ12を分割した後の印刷データを示す。
【0024】
図2(d)のように、分割部16は、印刷データ12に対して、バッファ9のサイズより小さいサイズとなるように分割するための分割位置を破線L4に対応する空行データの位置に設定して分割する。分割部16は、検出部15が破線L1、L2、L3及びL4に対応する空行データを検出した場合、分割部16により分割されるサイズが最大となるように、分割位置を破線L4に対応する空行データに設定する。
【0025】
図3を参照して、実施例1に係る印刷を行う場合のプリンタドライバ4の処理を説明する。図3は、実施例1に係る印刷を行う場合のプリンタドライバ4の処理のフローチャートである。
【0026】
図3のように、変換部14がアプリケーション5から受信した印刷データ11を印刷データ12に変換する(ステップS20)。検出部15は、記憶部7に記憶されたプリンタ3のバッファ9のサイズを取得する(ステップS22)。検出部15は、バッファ9のサイズが印刷データ12のサイズより大きいか否かを判定する(ステップS24)。検出部15は、バッファ9のサイズが印刷データ12のサイズより大きい場合、Yesと判定する。ステップS24がYesの場合、検出部15は、印刷データ12に対して、バッファ9のサイズの範囲内で空行データの有無を判定する(ステップS26)。検出部15は、印刷データ12に空行データがあることを検出した場合に、Yesと判定する。ステップS26がYesの場合、検出部15は空行データの位置を検出する(ステップS28)。分割部16は、印刷データ12を空行データの位置で分割して印刷データ13を生成する(ステップS30)。ステップS24がNoの場合、印刷データ12を分割せずに、印刷データ12を印刷データ13とする(ステップS31)。ステップS26がNoの場合、分割部16は、印刷データ12をプリンタ3により印刷される行データのうちサイズが最小である行データの位置で分割して印刷データ13を生成する。(ステップS32)。分割部16は、印刷データ13をプリンタ3へ送信する(ステップS34)。分割部16は、未送信の印刷データ13があるか否か判定する(ステップS36)。分割部16は、未送信データの印刷データ13がある場合に、Yesと判定する。ステップS36がYesの場合に、ステップS24に戻る。ステップS36がNoの場合、処理を終了する。
【0027】
図4を参照して、実施例1に係るプリンタドライバ4がプリンタ3からバッファ9のサイズを取得する処理を説明する。図4は、実施例1に係るプリンタドライバ4がプリンタ3からバッファ9のサイズを取得する処理のフローチャートである。
【0028】
図4のように、プリンタドライバ4は、印刷データの分割を行うときに、記憶部7に記憶されたバッファ9のサイズを使用するかを判定する(ステップS40)。プリンタドライバ4は記憶部7に記憶されたバッファ9のサイズを使用する場合にYesと判定する。ステップS40の判定には、例えば、記憶部7に予め記憶された管理フラグを用いて判定してもよいし、ユーザの指示に基づいて判定してもよい。ステップS40がYesの場合、処理を終了する。ステップS40がNoの場合、バッファサイズ取得部17は、プリンタ3へバッファ9のサイズ要求コマンドを送信する(ステップS42)。バッファサイズ取得部17は、プリンタ3からバッファ9のサイズを受信したか否かを判定する(ステップS44)。バッファサイズ取得部17は、プリンタ3からバッファ9のサイズを受信した場合にYesと判定する。ステップS44がNoの場合、プリンタ3からバッファ9のサイズを受信するまでステップS44を繰り返す。ステップS44がYesの場合、バッファサイズ取得部17は、受信したバッファ9のサイズを記憶部7に記憶する(ステップS46)。以上で処理を終了する。
【0029】
図5を参照して、実施例1に係るプリンタ3がプリンタドライバ4へバッファ9のサイズを通知する処理を説明する。図3は、実施例1に係るプリンタ3がプリンタドライバ4へバッファ9のサイズを通知する処理のフローチャートである。
【0030】
図5のように、プリンタ3のバッファサイズ通知部8は、プリンタドライバ4からバッファサイズ要求コマンドを受信したか否かを判定する(ステップS50)。バッファサイズ通知部8は、プリンタドライバ4からバッファサイズ要求コマンドを受信した場合にYesと判定する。ステップS50がNoの場合、プリンタドライバ4からバッファサイズ要求コマンドを受信するまでステップ50を繰り返す。ステップS50がYesの場合、バッファサイズ取得部8は、バッファ9からサイズを取得する(ステップS52)。バッファサイズ取得部8は、バッファ9のサイズをプリンタドライバ4に送信する(ステップS54)。以上で、処理を終了する。
【0031】
図6(a)及び図6(b)を参照して、実施例1に係るプリンタシステム100による印刷結果の一例であるレシートの印刷結果を説明する。図6(a)は、実施例1に係る空行データの位置で分割した印刷データを示す図である。図6(b)は、実施例1に係る図6(a)の印刷データの印刷結果を示す図である。図6(a)のように、検出部15及び分割部16により、空行データの位置に分割位置が設定されている。これにより、図6(b)のように、印刷ずれを防止して印刷を行うことができる。
【0032】
実施例1との比較のため、図7(a)及び図7(b)を参照して、比較例に係るプリンタシステム200(図示せず)の印刷結果の一例を説明する。図7(a)及び図7(b)では、図6(a)及び図6(b)と同様に、レシートの印刷結果を示す。プリンタシステム200は、印刷データの空行データの有無及び位置を検出する検出部を備えていない点がプリンタシステム100と異なる。そのため、図7(a)のように、プリンタシステム200は、印刷データのサイズがバッファ9のサイズより大きい場合に、印刷データをバッファ9のサイズ以下である所定のサイズで分割する。このとき、図7(a)のように、文字を上下に分断するように、文字の途中で印刷データを分割してしまう場合がある。その場合、図7(b)のように、分割した位置において印刷ずれが発生してしまう。そのため、印刷された文字が判別しにくくなり、印刷品質が低下してしまう。実施例1は、比較例のような印刷ずれを防止することができる。
【0033】
実施例1において、プログラムであるプリンタドライバ4が、プリンタ制御装置1が備えるコンピュータに検出部15と分割部16とを機能させる例を説明した。検出部15は、プリンタ3へ送信する印刷データ12内の空行データの有無及び位置を検出する。検出部15の処理は、図3に示すフローチャートのステップS26及びS28に対応する。分割部16は、印刷データ12に対して、プリンタ3が備えるバッファ9のサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、検出部15が空行データを検出した場合、分割位置を空行データの位置に設定して分割する。分割部16の処理は、図3に示すフローチャートのステップS30に対応する。例えば、サーマルプリンタがロール紙に図6(a)に示したレシートの印刷を行うように、プリンタがサイズの定まっていない可変長の印刷データを印刷する場合であって、印刷データがプリンタのバッファのサイズを超える場合、印刷データの分割位置が、例えば文字の途中に設定される場合がある。実施例1のプリンタドライバ4は、そのような場合に発生する印刷ずれを防止して、印刷品質を向上させることができる。
【0034】
実施例1において、例えば図2のように、分割部16は、検出部15がL1、L2、L3及びL4の位置に対応する複数の空行データを検出した場合、分割部16により分割されるサイズが最大となるように、分割位置を複数の空行データの位置のうちL4に設定する例を説明した。分割部16は、印刷データの分割されるサイズがバッファ9のサイズより小さいサイズであれば、分割位置をL4以外の空行データの位置L1、L2及びL3のいずれかに設定してもよい。
【0035】
実施例1において、分割部16は、検出部15が空行データを検出しなかった場合、分割位置をプリンタ3により印刷される行データのうちサイズが最小である行データの位置に設定する処理を説明した。分割部16の処理は、図3に示すフローチャートのステップS32に対応する。サイズが最小である行データは、情報量が少ない場合が多いため、印刷ずれによる印刷品質の低下を抑えることができる。
【0036】
実施例1において、検出部15及び分割部16は、印刷データ11を変換部14が変換した印刷データ12に対して処理を行う例を説明した。検出部15及び分割部16は、印刷データ11に対して処理を行ったあと、変換部14が処理を行うようにしてもよい。
【0037】
実施例1において、プリンタドライバ4が、プリンタ3が備えるバッファ9のサイズをプリンタ3から取得するバッファサイズ取得部17を機能させる例を説明した。バッファサイズ取得部17によるバッファ9のサイズの取得は、印刷の度に実行してもよいし、初回の印刷時に1回だけ実行してもよい。バッファサイズ取得部17によるバッファ9のサイズの取得を行わず、予め記憶部7に記憶されたサイズをバッファ9のサイズとしてもよい。
【0038】
実施例1において、プリンタドライバ4によりプリンタ3を制御するプリンタ制御装置1の例を説明した。プリンタ制御装置1とプリンタ3とを具備するプリンタシステム100の例を説明した。
【0039】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0040】
1 プリンタ制御装置
2 インターフェース
3 プリンタ
4 プリンタドライバ
5 アプリケーション
7 記憶部
8 バッファサイズ通知部
9 バッファ
10 印刷ヘッド
14 変換部
15 検出部
16 分割部
17 バッファサイズ取得部
100 プリンタシステム

【特許請求の範囲】
【請求項1】
コンピュータに、
プリンタへ送信する印刷データ内の空行データの有無及び位置を検出する検出手段と、
前記印刷データに対して、前記プリンタが備えるバッファのサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、前記検出手段が前記空行データを検出した場合、前記分割位置を前記空行データの位置に設定して分割する分割手段と、
を機能させることを特徴とするプログラム。
【請求項2】
前記分割手段は、前記検出手段が複数の空行データを検出した場合、前記分割手段により分割されるサイズが最大となるように、前記分割位置を前記複数の空行データの位置のうちいずれかに設定することを特徴とする請求項1に記載のプログラム。
【請求項3】
前記分割手段は、前記検出手段が前記空行データを検出しなかった場合、前記分割位置を前記プリンタにより印刷される行データのうちサイズが最小である行データの位置に設定することを特徴とする請求項1又は2に記載のプログラム。
【請求項4】
前記プリンタが備える前記バッファのサイズを前記プリンタから取得する取得手段を機能させることを特徴とする請求項1から3のいずれか一項に記載のプログラム。
【請求項5】
請求項1から4のいずれか一項に記載のプログラムによりプリンタを制御することを特徴とするプリンタ制御装置。
【請求項6】
請求項1から4のいずれか一項に記載のプログラムによりプリンタを制御するプリンタ制御装置と、
前記プリンタと、
を具備することを特徴とするプリンタシステム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−14369(P2012−14369A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−149536(P2010−149536)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(501398606)富士通コンポーネント株式会社 (848)
【Fターム(参考)】