(57)【要約】【課題】  印刷ずれを防止して、印刷品質を向上させることができるプログラム、プリンタ制御装置及びプリンタシステムを提供する。【解決手段】  本発明のプログラムは、コンピュータに、プリンタ３へ送信する印刷データ１２内の空行データの有無及び位置を検出する検出手段１５と、印刷データ１２に対して、プリンタ３が備えるバッファ９のサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、検出手段１５が空行データを検出した場合、分割位置を空行データの位置に設定する分割手段１６と、を機能させることを特徴とする。【選択図】  図１
2012014369.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
プリンタへ送信する印刷データ内の空行データの有無及び位置を検出する検出手段と、
前記印刷データに対して、前記プリンタが備えるバッファのサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、前記検出手段が前記空行データを検出した場合、前記分割位置を前記空行データの位置に設定して分割する分割手段と、
を機能させることを特徴とするプログラム。
【請求項２】
前記分割手段は、前記検出手段が複数の空行データを検出した場合、前記分割手段により分割されるサイズが最大となるように、前記分割位置を前記複数の空行データの位置のうちいずれかに設定することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記分割手段は、前記検出手段が前記空行データを検出しなかった場合、前記分割位置を前記プリンタにより印刷される行データのうちサイズが最小である行データの位置に設定することを特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記プリンタが備える前記バッファのサイズを前記プリンタから取得する取得手段を機能させることを特徴とする請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
請求項１から４のいずれか一項に記載のプログラムによりプリンタを制御することを特徴とするプリンタ制御装置。
【請求項６】
請求項１から４のいずれか一項に記載のプログラムによりプリンタを制御するプリンタ制御装置と、
前記プリンタと、
を具備することを特徴とするプリンタシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、プリンタ制御装置及びプリンタシステムに関する。
【背景技術】
【０００２】
プリンタは、例えばプリンタ制御装置にインストールされたプリンタドライバから送信される印刷データを用いて印刷を行う。例えば、特許文献１には、１ライン分のデータを保持する２つの記憶部を有するプリンタが開示されている。
【０００３】
プリンタには、プリンタドライバから受信した印刷データを、プリンタのバッファのサイズの範囲内で一時的に蓄積し、蓄積した印刷データ毎に一括で印刷する機能を有するものがある。このようなプリンタを用いて、プリンタのバッファのサイズを超える印刷データを印刷する場合、プリンタドライバにて印刷データを所定のサイズに分割して、分割した印刷データをプリンタに送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３０２５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、印刷データを分割する分割位置が、例えば文字の途中に設定された場合、プリンタは印刷データ毎に一括で印刷を行うために、分割位置で印刷ずれが発生する場合がある。そのため、印刷された文字が判別しにくくなり、印刷品質が低下してしまう場合がある。
【０００６】
本発明は、上記課題に鑑みなされたものであり、印刷ずれを防止して、印刷品質を向上させることが可能なプログラム、プリンタ制御装置及びプリンタシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のプログラムは、コンピュータに、プリンタへ送信する印刷データ内の空行データの有無及び位置を検出する検出手段と、前記印刷データに対して、前記プリンタが備えるバッファのサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、前記検出手段が前記空行データを検出した場合、前記分割位置を前記空行データの位置に設定する分割手段と、を機能させることを特徴とする。
【０００８】
これにより、印刷データを空行データの位置で分割することができる。よって、印刷ずれを防止して、印刷品質を向上させることができる。
【０００９】
上記構成において、前記分割手段は、前記検出手段が複数の空行データを検出した場合、前記分割手段により分割されるサイズが最大となるように、前記分割位置を前記複数の空行データの位置のうちいずれかに設定する構成としてもよい。
【００１０】
上記構成において、前記分割手段は、前記検出手段が前記空行データを検出しなかった場合、前記分割位置を前記プリンタにより印刷される行データのうちサイズが最小である行データの位置に設定する構成としてもよい。これにより、印刷データに空行データがない場合であっても、印刷ずれによる印刷品質の低下を抑えることができる。
【００１１】
本発明のプログラムは、前記プリンタが備える前記バッファのサイズを前記プリンタから取得する取得手段を機能させる構成としてもよい。
【００１２】
本発明のプリンタ制御装置は、上記のプログラムのいずれかによりプリンタを制御することを特徴とする。
【００１３】
本発明のプリンタシステムは、上記のプログラムのいずれかによりプリンタを制御するプリンタ制御装置と、前記プリンタと、を具備することを特徴とする。
【発明の効果】
【００１４】
本発明のプログラム、プリンタ制御装置及びプリンタシステムによれば、印刷ずれを防止して、印刷品質を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係るプリンタシステムの構成を示すブロック図である。
【図２】図２（ａ）、図２（ｂ）、図２（ｃ）及び図２（ｄ）は、実施例１に係る印刷データ及びバッファを模式的に示す図である。
【図３】図３は、実施例１に係る印刷を行う場合のプリンタドライバの処理のフローチャートである。
【図４】図４は、実施例１に係るプリンタドライバがプリンタからバッファのサイズを取得する処理のフローチャートである。
【図５】図５は、実施例１に係るプリンタがプリンタドライバへバッファのサイズを通知する処理のフローチャートである。
【図６】図６（ａ）及び図６（ｂ）は、実施例１に係るプリンタシステムによる印刷結果の一例を示す図である。
【図７】図７（ａ）及び図７（ｂ）は、比較例に係るプリンタシステムによる印刷結果の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下に、図面を用いて、本発明の実施例について詳細に説明する。
【実施例１】
【００１７】
図１を参照して、実施例１に係るプリンタシステムの構成を説明する。図１は、実施例１に係るプリンタシステム１００の構成を示すブロック図である。図１のように、プリンタシステム１００は、プリンタ制御装置１とプリンタ３とを備える。プリンタ制御装置１とプリンタ３とは、インターフェース２により接続される。インターフェース２は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＲＳ−２３２Ｃ等の有線インターフェースや無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の無線インターフェースである。
【００１８】
プリンタ制御装置１は、コンピュータ又はコンピュータを備えた装置である。プリンタドライバ４及びアプリケーション５は、コンピュータにインストールされ、コンピュータが実行するプログラムである。印刷データ１１は、アプリケーション５が生成した印刷データである。印刷データ１２は、プリンタ３が印刷データ１１をプリンタドライバ４が印刷可能な形式に変換した印刷データである。印刷データ１３は、プリンタドライバ４がプリンタ３に送信する印刷データである。
【００１９】
アプリケーション５は、ユーザがプリンタ３に印刷を実行させるためのユーザインターフェースを備える。アプリケーション５は、プリンタ３が印刷する印刷データ１１を生成して、ユーザからの指示に基づいて印刷データ１１をプリンタドライバ４へ送信する。アプリケーション５は、例えば、文書や図面を作成するエディタ等である。
【００２０】
プリンタドライバ４は、コンピュータに、変換部１４、検出部１５、分割部１６、バッファサイズ取得部１７及び記憶部７を機能させる。変換部１４は、アプリケーション５から受信した印刷データ１１をプリンタ３が印刷可能な形式の印刷データ１２に変換する。検出部１５は、印刷データ１２内の空行データの有無及び位置を検出する。分割部１６は、印刷データ１２に対して、プリンタが備えるバッファ９のサイズより小さいサイズとなるように分割するための分割位置を設定して分割する。分割部１６は、検出部１５が空行データを検出した場合、分割位置を空行データの位置に設定する。バッファサイズ取得部１７は、プリンタ３が備えるバッファ９のサイズをプリンタ３から取得する。記憶部７は、プリンタ３から取得したバッファ９のサイズやプリンタドライバ４がプリンタ３に指示する印刷設定等の情報を記憶する。印刷設定の情報とは、例えば、印刷する用紙の大きさや倍率等の情報である。
【００２１】
プリンタ３は、バッファ９、バッファサイズ通知部８及び印刷ヘッド１０を有する。バッファ９は、プリンタ３が印刷データ１３を受信する速度と印刷ヘッド１０が印刷する速度の差を吸収するため、プリンタ制御装置１から受信した印刷データ１３を一時的に蓄積する。印刷ヘッド１０は、バッファ９が蓄積する印刷データを一括で読み出して用紙等に印刷する。バッファサイズ通知部８は、バッファ９のサイズをプリンタドライバ４に通知する。
【００２２】
図２（ａ）、図２（ｂ）、図２（ｃ）及び図２（ｄ）を参照して、実施例１に係る印刷データに対するプリンタドライバ４の処理を説明する。図２（ａ）、図２（ｂ）、図２（ｃ）及び図２（ｄ）は、実施例１に係る印刷データ１１、１２及び１３並びにバッファ９を模式的に示す図である。図２（ａ）、図２（ｂ）及び図２（ｄ）に示す印刷データは、それぞれ図１に示した印刷データ１１、１２及び１３に対応する。図２（ｃ）は、バッファ９に対応する。
【００２３】
図２（ａ）に示す印刷データ１１は、アプリケーション５がプリンタドライバ４に送信した印刷データである。印刷データ１１は、Ａ、Ｂ及びＣの各文字データを含んでおり、各文字の間に空行データがある。図２（ｂ）に示す印刷データ１２は、プリンタドライバ４の変換部１４が印刷データ１１をプリンタ３が印刷可能な形式に変換した印刷データであって、分割部１６が分割する前の印刷データである。破線Ｌ１、Ｌ２、Ｌ３及びＬ４は、検出部１５が検出した空行データの位置を示す。図２（ｃ）は、バッファ９を示しており、バッファ９のサイズは所定のサイズであって、印刷データ１２のサイズより小さい。図２（ｄ）に示す印刷データ１３は、分割部１６が破線Ｌ４に対応する空行データの位置で印刷データ１２を分割した後の印刷データを示す。
【００２４】
図２（ｄ）のように、分割部１６は、印刷データ１２に対して、バッファ９のサイズより小さいサイズとなるように分割するための分割位置を破線Ｌ４に対応する空行データの位置に設定して分割する。分割部１６は、検出部１５が破線Ｌ１、Ｌ２、Ｌ３及びＬ４に対応する空行データを検出した場合、分割部１６により分割されるサイズが最大となるように、分割位置を破線Ｌ４に対応する空行データに設定する。
【００２５】
図３を参照して、実施例１に係る印刷を行う場合のプリンタドライバ４の処理を説明する。図３は、実施例１に係る印刷を行う場合のプリンタドライバ４の処理のフローチャートである。
【００２６】
図３のように、変換部１４がアプリケーション５から受信した印刷データ１１を印刷データ１２に変換する（ステップＳ２０）。検出部１５は、記憶部７に記憶されたプリンタ３のバッファ９のサイズを取得する（ステップＳ２２）。検出部１５は、バッファ９のサイズが印刷データ１２のサイズより大きいか否かを判定する（ステップＳ２４）。検出部１５は、バッファ９のサイズが印刷データ１２のサイズより大きい場合、Ｙｅｓと判定する。ステップＳ２４がＹｅｓの場合、検出部１５は、印刷データ１２に対して、バッファ９のサイズの範囲内で空行データの有無を判定する（ステップＳ２６）。検出部１５は、印刷データ１２に空行データがあることを検出した場合に、Ｙｅｓと判定する。ステップＳ２６がＹｅｓの場合、検出部１５は空行データの位置を検出する（ステップＳ２８）。分割部１６は、印刷データ１２を空行データの位置で分割して印刷データ１３を生成する（ステップＳ３０）。ステップＳ２４がＮｏの場合、印刷データ１２を分割せずに、印刷データ１２を印刷データ１３とする（ステップＳ３１）。ステップＳ２６がＮｏの場合、分割部１６は、印刷データ１２をプリンタ３により印刷される行データのうちサイズが最小である行データの位置で分割して印刷データ１３を生成する。（ステップＳ３２）。分割部１６は、印刷データ１３をプリンタ３へ送信する（ステップＳ３４）。分割部１６は、未送信の印刷データ１３があるか否か判定する（ステップＳ３６）。分割部１６は、未送信データの印刷データ１３がある場合に、Ｙｅｓと判定する。ステップＳ３６がＹｅｓの場合に、ステップＳ２４に戻る。ステップＳ３６がＮｏの場合、処理を終了する。
【００２７】
図４を参照して、実施例１に係るプリンタドライバ４がプリンタ３からバッファ９のサイズを取得する処理を説明する。図４は、実施例１に係るプリンタドライバ４がプリンタ３からバッファ９のサイズを取得する処理のフローチャートである。
【００２８】
図４のように、プリンタドライバ４は、印刷データの分割を行うときに、記憶部７に記憶されたバッファ９のサイズを使用するかを判定する（ステップＳ４０）。プリンタドライバ４は記憶部７に記憶されたバッファ９のサイズを使用する場合にＹｅｓと判定する。ステップＳ４０の判定には、例えば、記憶部７に予め記憶された管理フラグを用いて判定してもよいし、ユーザの指示に基づいて判定してもよい。ステップＳ４０がＹｅｓの場合、処理を終了する。ステップＳ４０がＮｏの場合、バッファサイズ取得部１７は、プリンタ３へバッファ９のサイズ要求コマンドを送信する（ステップＳ４２）。バッファサイズ取得部１７は、プリンタ３からバッファ９のサイズを受信したか否かを判定する（ステップＳ４４）。バッファサイズ取得部１７は、プリンタ３からバッファ９のサイズを受信した場合にＹｅｓと判定する。ステップＳ４４がＮｏの場合、プリンタ３からバッファ９のサイズを受信するまでステップＳ４４を繰り返す。ステップＳ４４がＹｅｓの場合、バッファサイズ取得部１７は、受信したバッファ９のサイズを記憶部７に記憶する（ステップＳ４６）。以上で処理を終了する。
【００２９】
図５を参照して、実施例１に係るプリンタ３がプリンタドライバ４へバッファ９のサイズを通知する処理を説明する。図３は、実施例１に係るプリンタ３がプリンタドライバ４へバッファ９のサイズを通知する処理のフローチャートである。
【００３０】
図５のように、プリンタ３のバッファサイズ通知部８は、プリンタドライバ４からバッファサイズ要求コマンドを受信したか否かを判定する（ステップＳ５０）。バッファサイズ通知部８は、プリンタドライバ４からバッファサイズ要求コマンドを受信した場合にＹｅｓと判定する。ステップＳ５０がＮｏの場合、プリンタドライバ４からバッファサイズ要求コマンドを受信するまでステップ５０を繰り返す。ステップＳ５０がＹｅｓの場合、バッファサイズ取得部８は、バッファ９からサイズを取得する（ステップＳ５２）。バッファサイズ取得部８は、バッファ９のサイズをプリンタドライバ４に送信する（ステップＳ５４）。以上で、処理を終了する。
【００３１】
図６（ａ）及び図６（ｂ）を参照して、実施例１に係るプリンタシステム１００による印刷結果の一例であるレシートの印刷結果を説明する。図６（ａ）は、実施例１に係る空行データの位置で分割した印刷データを示す図である。図６（ｂ）は、実施例１に係る図６（ａ）の印刷データの印刷結果を示す図である。図６（ａ）のように、検出部１５及び分割部１６により、空行データの位置に分割位置が設定されている。これにより、図６（ｂ）のように、印刷ずれを防止して印刷を行うことができる。
【００３２】
実施例１との比較のため、図７（ａ）及び図７（ｂ）を参照して、比較例に係るプリンタシステム２００（図示せず）の印刷結果の一例を説明する。図７（ａ）及び図７（ｂ）では、図６（ａ）及び図６（ｂ）と同様に、レシートの印刷結果を示す。プリンタシステム２００は、印刷データの空行データの有無及び位置を検出する検出部を備えていない点がプリンタシステム１００と異なる。そのため、図７（ａ）のように、プリンタシステム２００は、印刷データのサイズがバッファ９のサイズより大きい場合に、印刷データをバッファ９のサイズ以下である所定のサイズで分割する。このとき、図７（ａ）のように、文字を上下に分断するように、文字の途中で印刷データを分割してしまう場合がある。その場合、図７（ｂ）のように、分割した位置において印刷ずれが発生してしまう。そのため、印刷された文字が判別しにくくなり、印刷品質が低下してしまう。実施例１は、比較例のような印刷ずれを防止することができる。
【００３３】
実施例１において、プログラムであるプリンタドライバ４が、プリンタ制御装置１が備えるコンピュータに検出部１５と分割部１６とを機能させる例を説明した。検出部１５は、プリンタ３へ送信する印刷データ１２内の空行データの有無及び位置を検出する。検出部１５の処理は、図３に示すフローチャートのステップＳ２６及びＳ２８に対応する。分割部１６は、印刷データ１２に対して、プリンタ３が備えるバッファ９のサイズより小さいサイズとなるように分割するための分割位置を設定して分割し、検出部１５が空行データを検出した場合、分割位置を空行データの位置に設定して分割する。分割部１６の処理は、図３に示すフローチャートのステップＳ３０に対応する。例えば、サーマルプリンタがロール紙に図６（ａ）に示したレシートの印刷を行うように、プリンタがサイズの定まっていない可変長の印刷データを印刷する場合であって、印刷データがプリンタのバッファのサイズを超える場合、印刷データの分割位置が、例えば文字の途中に設定される場合がある。実施例１のプリンタドライバ４は、そのような場合に発生する印刷ずれを防止して、印刷品質を向上させることができる。
【００３４】
実施例１において、例えば図２のように、分割部１６は、検出部１５がＬ１、Ｌ２、Ｌ３及びＬ４の位置に対応する複数の空行データを検出した場合、分割部１６により分割されるサイズが最大となるように、分割位置を複数の空行データの位置のうちＬ４に設定する例を説明した。分割部１６は、印刷データの分割されるサイズがバッファ９のサイズより小さいサイズであれば、分割位置をＬ４以外の空行データの位置Ｌ１、Ｌ２及びＬ３のいずれかに設定してもよい。
【００３５】
実施例１において、分割部１６は、検出部１５が空行データを検出しなかった場合、分割位置をプリンタ３により印刷される行データのうちサイズが最小である行データの位置に設定する処理を説明した。分割部１６の処理は、図３に示すフローチャートのステップＳ３２に対応する。サイズが最小である行データは、情報量が少ない場合が多いため、印刷ずれによる印刷品質の低下を抑えることができる。
【００３６】
実施例１において、検出部１５及び分割部１６は、印刷データ１１を変換部１４が変換した印刷データ１２に対して処理を行う例を説明した。検出部１５及び分割部１６は、印刷データ１１に対して処理を行ったあと、変換部１４が処理を行うようにしてもよい。
【００３７】
実施例１において、プリンタドライバ４が、プリンタ３が備えるバッファ９のサイズをプリンタ３から取得するバッファサイズ取得部１７を機能させる例を説明した。バッファサイズ取得部１７によるバッファ９のサイズの取得は、印刷の度に実行してもよいし、初回の印刷時に１回だけ実行してもよい。バッファサイズ取得部１７によるバッファ９のサイズの取得を行わず、予め記憶部７に記憶されたサイズをバッファ９のサイズとしてもよい。
【００３８】
実施例１において、プリンタドライバ４によりプリンタ３を制御するプリンタ制御装置１の例を説明した。プリンタ制御装置１とプリンタ３とを具備するプリンタシステム１００の例を説明した。
【００３９】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４０】
１        プリンタ制御装置
２        インターフェース
３        プリンタ
４        プリンタドライバ
５        アプリケーション
７        記憶部
８        バッファサイズ通知部
９        バッファ
１０      印刷ヘッド
１４      変換部
１５      検出部
１６      分割部
１７      バッファサイズ取得部
１００    プリンタシステム
【図１】
2012014369.tif 000003
【図２】
2012014369.tif 000004
【図３】
2012014369.tif 000005
【図４】
2012014369.tif 000006
【図５】
2012014369.tif 000007
【図６】
2012014369.tif 000008
【図７】
2012014369.tif 000009