説明

プリンタの制御装置、プリンタシステム、プリンタの制御方法、プログラム及び記録媒体

【課題】プリンタへの制御内容を自動で変更可能なプリンタの制御装置、プリンタシステム、プリンタの制御方法、プログラム及び記録媒体を提供することを課題とする。
【解決手段】コンピュータ1は、プリンタ100の印刷対象となる印刷対象画像とプリンタ100への制御内容に対応付けられた制御画像とが描画された印刷データを生成する印刷アプリケーション10と、制御画像に対応した制御内容でプリンタ100を制御するプリンタドライバ50と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンタの制御装置、プリンタシステム、プリンタの制御方法、プログラム及び記録媒体に関する。
【背景技術】
【0002】
プリンタによる印刷は、コンピュータが印刷データをプリンタへ送信することにより行なわれるものがある。特許文献1〜4にはプリンタに関する技術が開示されている。このようなプリンタと接続されたコンピュータでは、プリンタの動作を制御する設定を行うことができる。ユーザは、印刷前に予めコンピュータ上でプリンタの制御内容を設定しておくことにより、プリンタはその制御内容に従った動作をする。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平07−314796号公報
【特許文献2】特開平09−224148号公報
【特許文献3】特開2003−260789号公報
【特許文献4】特開2003−80791号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
プリンタへの制御内容を変更するためには、印刷実行前にユーザがコンピュータを介して変更する必要がある。
【0005】
本発明は、プリンタへの制御内容を自動で変更可能なプリンタの制御装置、プリンタシステム、プリンタの制御方法、プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的は、プリンタの印刷対象となる印刷対象画像と前記プリンタへの制御内容に対応付けられた制御画像とが描画された印刷データを生成する印刷データ生成部と、前記制御画像に対応した前記制御内容で前記プリンタを制御するプリンタ制御部と、を備えたプリンタの制御装置によって達成できる。
【0007】
制御画像が印刷データに描画されているので、プリンタ制御部は受信した印刷データの制御画像に応じてプリンタへの制御内容を変更することができる。これにより、ユーザが制御内容を変更しなくても制御内容が自動で変更され得る。
【0008】
上記目的は、上記のプリンタの制御装置と、前記プリンタとを備えたプリンタシステムによっても達成できる。
【0009】
上記目的は、プリンタの印刷対象となる印刷対象画像と前記プリンタへの制御内容に対応付けられた制御画像とが描画された印刷データを生成し、前記制御画像に対応した前記制御内容で前記プリンタを制御する、プリンタの制御方法によっても達成できる。
【0010】
上記目的は、プリンタの印刷対象である印刷対象画像と前記プリンタへの制御内容に対応付けられた制御画像とが描画された印刷データを受信し、前記制御画像に対応した前記制御内容で前記プリンタを制御する、プリンタの制御方法によっても達成できる。
【0011】
上記目的は、上記制御方法をコンピュータに実行させるためのプログラムによっても達成できる。
【0012】
上記目的は、上記のプログラムを格納したコンピュータで読取可能な記録媒体によっても達成できる。
【発明の効果】
【0013】
本発明によれば、プリンタへの制御内容を自動で変更可能なプリンタの制御装置、プリンタシステム、プリンタの制御方法、プログラム及び記録媒体を提供できる。
【図面の簡単な説明】
【0014】
【図1】本実施例のコンピュータの説明図である。
【図2】デバイスコンテキストの例示図である。
【図3】プリンタを制御する従来のコンピュータの説明図である。
【図4】制御画像の説明図である。
【図5】実際に描画された制御画像の説明図である。
【図6】制御画像判定処理の一例を示したフローチャートである。
【図7】プリンタドライバ機能設定情報の例示図である。
【図8】RGB値と制御コマンドの対応を規定したマップである。
【図9】RGB値と制御コマンドの対応を規定したマップである。
【発明を実施するための形態】
【0015】
図1は、本実施例のコンピュータの説明図である。コンピュータ1は、プリンタ100と通信可能に接続されており、プリンタ100を制御する。コンピュータ1はプリンタの制御装置に相当する。コンピュータ1は、プリンタ100に印刷可能な印刷データを送信する。コンピュータ1には、印刷アプリケーション10、プリンタドライバ50が構築されている。コンピュータ1は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を用いて構成される。印刷アプリケーション10は、ワードプロセッサ、グラフィックスなどの処理をコンピュータ1に行わせる機能を有していおり、RAMが読み込んだアプリケーションプログラムをCPUが実行することによりコンピュータ1上に構築される。
【0016】
プリンタドライバ50は、印刷アプリケーション10から送信される印刷データをプリンタ100で印刷可能なデータに変換する機能を有している。プリンタドライバ50は、コンピュータ1のRAMが読み込んだプリンタドライバプログラムをCPUが実行することによりコンピュータ1上に構築される。このため、プリンタドライバプログラムは、記録媒体に記憶させることができる。プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
【0017】
その他、プリンタドライバプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0018】
印刷アプリケーション10は、デバイスコンテキスト作成部11、印刷領域描画部12、制御領域描画部13、印刷実行部14を有している。印刷アプリケーション10は印刷データを生成しプリンタドライバ50へと送信する。デバイスコンテキスト作成部11は、プリンタドライバ50からの情報を元にメモリ上の描画領域にデバイスコンテキストを作成する。この際に、デバイスコンテキスト作成部11は、プリンタドライバAPI(Application Program Interface)を読み出し、ユーザインタフェースによって設定されたドライバ機能設定情報を取得する。
【0019】
デバイスコンテキスト作成部11は、図2に示すようにデバイスコンテキストを作成する。デバイスコンテキスト作成部11は、デバイスコンテキストの描画可能領域を印刷領域と制御領域とに区分けする。印刷可能領域は、プリンタ100で印刷の対象となる印刷対象画像を描画するために領域である。印刷対象画像とは、例えば文字や図形、画像などである。制御領域は、詳しくは後述するがプリンタ100の制御内容に対応付けられた制御画像を描画するための慮域である。制御領域は、描画可能領域の左端又は右端に設定される。
【0020】
印刷領域描画部12は、印刷領域にプリンタ100で印刷の対象となる印刷対象画像を描画する。制御領域描画部13は、制御領域に制御画像を描画する。尚、制御領域描画部13は、ドライバAPIから設定済みの機能設定や情報等を取得する。印刷実行部14は、プリンタドライバ50に印刷データを送信して印刷実行を支持する。このように印刷アプリケーション10は、印刷データを生成する印刷データ生成部に相当する。
【0021】
プリンタドライバ50は、印刷アプリケーション10から送信された印刷データに基づいて、上述した制御画像を読み出して制御画像に対応した制御内容でプリンタ100を制御する。制御画像判定部51は、印刷データの制御領域に描画された制御画像を判定する。制御情報保持部52は、制御画像に関する情報を保持する。印刷データ形式変換部53は、印刷アプリケーション10から送信された印刷データをプリンタ100で印刷可能な形式の印刷データに変換する。尚、印刷データ形式変換部53は、制御画像が消去された印刷データに変換する。制御画像をプリンタ100で印刷されるのを防止するためである。
【0022】
制御コマンド挿入部54は、制御情報保持部52に保持された制御画像情報を参照して、制御画像に対応付けられた制御コマンドを印刷データに挿入する。印刷データ送信部55は、制御コマンドが挿入された印刷データをインタフェース90へ送信し、インタフェース90は、その印刷データをプリンタ100へと送信する。これにより、プリンタ100は、送信された印刷データに描画された印刷対象画像を印刷媒体に印刷する。また、プリンタ100は、印刷データに挿入された制御コマンドに従ってその動作が制御される。プリンタドライバ50はプリンタ制御部に相当する。
【0023】
このように、印刷アプリケーション10は制御画像を制御領域に描画する。例えば、プリンタ100がレシートプリンタの場合には、印刷用紙(レシート)のカット位置を制御する制御画像、プリンタ100のサーマルヘッド(不図示)に印加するエネルギの強度を制御する制御画像、又はマーク検出処理に関する制御画像などを描画する。
【0024】
印刷用紙のカット位置を制御する理由は、印刷用紙がレシートの場合には、購入品や品数によってレシートのカット位置が異なってくる場合が多いからである。エネルギの強度を制御する理由は、部分的に印字率が大きくなると、サーマルヘッドが高温化するおそれがあるからである。
【0025】
また、印刷アプリケーション10は、このような制御画像を、印刷対象画像に応じて描画する。例えば、印刷対象画像となる複数のドキュメントデータがあった場合、印刷アプリケーション10は、ドキュメント毎に印刷用紙がカットされる制御画像を描画することができる。また、例えば印刷対象画像が、2種類の濃度が異なる画像であった場合、それらを連続して印刷する場合には、濃度の薄い画像が描画されたページの制御領域に、サーマルヘッドへのエネルギ強度を強めにする制御画像を描画する。プリンタドライバ50は、これら制御画像に対応付けられた制御コマンドをプリンタ100へ送信する。これにより、ユーザは自らドライバAPIを呼び起こしてユーザインタフェースを介して制御内容の変更しなくても、制御内容が自動で変更される。これにより、プリンタ100の制御性が向上している。
【0026】
次に、プリンタを制御する従来のコンピュータについて説明する。図3は、プリンタを制御する従来のコンピュータの説明図である。
従来のコンピュータ1xは、印刷アプリケーション10xが印刷データを生成し、プリンタドライバ50xは、印刷アプリケーション10xからの印刷データをプリンタ100で印刷可能な形式の印刷データに変換する。次に、プリンタドライバ50xは、ドライバAPIを呼び出して予めユーザにより設定された制御内容に対応する制御コマンドを、印刷データに挿入してプリンタ100へと送信する。
【0027】
このように、従来のコンピュータ1xでは、印刷対象の画像に応じてプリンタ100の制御内容は自動で変更されない。従って、予めユーザが制御内容を設定しておかなければならい。また印刷アプリケーション10xがドライバAPIを呼び出してプリンタドライバ機能を変更する場合でも、印刷開始前に行っておく必要がある。そのため、プリンタ100の制御はプリンタドライバ50xで既に設定されている制御しか行うことができなかった。例えば、エネルギ強度、用紙カット、マーク検出処理を行う場合には各処理に対応した制御コマンドを印刷データに挿入する場合、ドキュメントの開始時や終了時、各ページの印刷開始時や終了時など、予めプリンタドライバ50xで設定された特定のタイミングでしか挿入できなかった。
【0028】
前述したように、レシートに印刷を行う場合には、レシートの長さは品数等により異なってくるため、印刷内容に応じて又は任意のタイミングで制御コマンドを挿入することはできない。また、印刷対象の画像によっては部分的に印字率が高くなる場合があるが、印刷対象の画像の内容によってエネルギ強度を制御することはできない。
【0029】
しかしながら、本実施例のコンピュータ1は、印刷対象画像に応じて描画された制御画像に基づいて、制御画像を制御コマンドに変換して印刷データに挿入する。これにより、任意のタイミングでプリンタ100へのプリンタへの制御内容を変更することができ、プリンタ100への制御性が向上している。
【0030】
次に、制御画像について説明する。図4は、制御画像の説明図である。図4には、制御領域に1つの制御画像CIが描画されている場合を示している。
制御画像CIのRGB値は(a,b,c)である。制御コマンドは、制御画像CIのRGB値である(a,b,c)に対応付けられている。即ち、プリンタドライバ50の印刷データ送信部55は、制御画像CIのRGB値と制御コマンドとが対応付けられたマップを有しており、このマップに基づいて制御画像CIから制御コマンドに変換している。このマップについては後述する。図4に例示した制御画像CIは、デバイスコンテキストDCの上端から縦方向にY(pixel)下がった位置に描画されている。また制御画像CIの縦方向の長さはy(pixel)である。制御画像CIは、“あいうえお”と“かきくけこ”の文字列の間に制御画像が描画されている。この制御画像は任意の形状でもよく、連続で複数存在していてもよい。
【0031】
図5は、実際に描画された制御画像の説明図である。
図5に示すように2つの制御画像CI1、CI2が描画されている。制御画像CI1のRGB値は(29,60,0)であり、制御画像CI2のRGB値は(224,48,30)である。制御画像CI1、CI2の位置は、それぞれY、Yである。制御画像CI1、CI2の縦方向の長さは、それぞれy、yである。制御画像CI1、CI2は隣り合って描画されている。
【0032】
プリンタドライバ50の制御画像判定部51が制御画像CI1、CI2を判定し、制御情報保持部52が制御画像CI1、CI2に関する情報を保持した後は、Yより下方に描画された画像を、Yの位置に移動する。この移動の際には、制御領域及び印刷領域の双方に描画された画像と共に移動する。この理由は、Y〜Y+Y間のデータを削除するためである。印刷データ形式変換部53は、このように制御画像を削除する。そして印刷データ形式変換部53は、削除済みの印刷データをプリンタ100で印刷可能な形式に変換する。制御コマンド挿入部54は、制御情報保持部52からの情報を参照して制御コマンドを印刷データに挿入する。
【0033】
次に、制御コマンドを挿入する印刷データの位置について説明する。制御コマンドを挿入する印刷データの位置は以下の式により規定される。
=Y (n=1)…(1)
=Y−yn−1−yn−2…−y(n>1)…(2)
図5に示した1番目の制御画像CI1に対応した制御コマンドはYの位置に挿入し、2番目の制御画像CI2に対応した制御コマンドは、Yからyを引いた位置、即ち1番目の制御コマンドの直後に挿入される。
【0034】
また、制御画像判定部51は、デバイスコンテキストDCの横方向の位置を示すXと縦方向の位置を示すYとに基づいて、制御領域の開始点から終了点までこれら変数X、Yを用いて制御画像の有無の判定を行う。以下に詳しく説明する。
【0035】
図6は、制御画像判定部51が実行する制御画像判定処理の一例を示したフローチャートである。
まず、図4に示すように制御領域に一つの制御画像が描画されている場合を例に説明する。制御画像判定部51は、印刷データを受信すると(ステップS1)、ドライバAPIからプリンタ機能設定を取得し(ステップS2)、変数を初期化する(ステップS3)。変数の初期化は、Y=y=0に設定する。Xは、制御領域開始点に設定する。次に、制御画像判定部51は、変数X,Yの位置でのRGB値を取得する(ステップS4)。次に、制御画像判定部51は、制御画像があるか否かを判定する(ステップS5)。取得したRGB値が(0,0,0)以外の場合には、その位置に制御画像が描画されていることを示している。取得したRGB値が(0,0,0)の場合は、その位置に制御画像は描画されていないことを示している。
【0036】
制御領域開始点及びY=0で制御画像が描画されていない場合には、制御画像判定部51は、変数Xが制御領域の終了位置を示しているか否かを判定する(ステップS6)。終了位置を示していない場合には、制御画像判定部51は、変数Xをインクリメントして(ステップS7)、ステップS4移行の処理を実行する。これにより、デバイスコンテキストDCの制御領域内を横方向に、制御画像の有無を順次判定することができる。
【0037】
ステップS6において、Xが制御領域の終了を示している場合には、制御画像判定部51は、変数Xを0に設定する(ステップS9)。次に制御画像判定部51は、制御画像データありを示すフラグがセットされていたか否かを判定する(ステップS10)。否定判定の場合、制御画像判定部51は、前回の制御画像があるか否かを判定する(ステップS16)。否定判定の場合、制御画像判定部51は変数Yをインクリメントして(ステップS13)、Yがページの最後であるか否かを判定する(ステップS14)。ページの最後ではない場合、即ち、制御画像の判定がページの最後にまで至っていない場合には、制御画像判定部51は、再度S4の処理を実行する。制御画像判定部51が変数Yをインクリメントした後にステップS4の処理を再度実行することにより、縦方向に順に制御画像の有無の判定を行うことができる。
【0038】
ステップS5で制御画像がありと判定されると、制御画像判定部51は、制御画像がありを示すフラグをセットする(ステップS8)。次に、制御画像判定部51は変数Xを0に設定し(ステップS9)、フラグがセットされているか否かを判定する(ステップS10)。肯定判定の場合、前回取得したRGB値と今回取得したRGB値が一致するか否かを判定する(ステップS11)。一致しない場合、制御画像判定部51は、RGB値を制御情報保持部52に保存させる(ステップS12)。このときの変数YをY、変数yをy、y=0とする。次に制御画像判定部51は、ステップS13、S14の処理を実行する。ステップS14で否定判定の場合には制御画像判定部51は再度ステップS4移行の処理を実行する。
【0039】
制御画像判定部51が再びステップS11において肯定判定がなされた場合、同一の制御画像を縦方向に判定していることを示している。このため制御画像判定部51は、変数yをインクリメントする。変数yは、前述したように制御画像の縦方向の長さに対応している。その後制御画像判定部51は、ステップS13移行の処理を実行する。ステップS15の処理が繰り返されることにより、変数yがインクリメントされ、実際に描画された制御画像の縦方向の長さを判定することができる。
【0040】
次に、ステップS5で否定判定の場合、即ち、制御画像が存在していない慮域を判定している場合、制御画像判定部51は、ステップS6、S7、S4、S5を繰り返す。ステップS6で肯定判定がなされると、制御画像判定部51は、ステップS10で否定判定をする。次に制御画像判定部51は、前回判定していた制御画像があるか否かの判定を行う(ステップS16)。肯定判定がされると、制御画像判定部51はRGB値を保存する(ステップS12)。これにより、前回の判定していた制御画像の縦方向の長さyが保存される。次に制御画像判定部51は、ステップS13移行の処理を実行する。このような処理が繰り返された後、ステップS14で、変数Yがページの再度に至っていることを示している場合には、制御画像判定部51はこの処理を終了する。
【0041】
次に、図5に示すように制御領域に隣接する2つの制御画像が描画されている場合を例に説明する。
一つ目の制御画像制御画像CI1を判定済みであり、2つ目の制御画像を判定する場合、制御画像判定部51は、ステップS11において否定判定をする。前回取得したRGB値は制御画像CI1に対応する値であり、今回取得したRGB値は制御画像CI2に対応する値だからである。このため、制御画像判定部51は、今回取得したRGB値に関する情報を保存する(ステップS12)。これにより制御画像CI2に関する情報が保存される。その後はステップS13移行の処理が実行される。
【0042】
次に、プリンタドライバ機能設定情報について説明する。図7は、プリンタドライバ機能設定情報の説明図である。図7に示すように、用紙サイズを、横幅、縦幅がそれぞれ、640、2000(pixel)に設定されている。また、制御領域は0〜40(pixel)の範囲に設定されている。また、RGB値のR値は、0x00〜0x1Fまでは、規定の制御コマンドに対応付けられている。また、R値が0x20〜0xFEまでは、任意の制御コマンド又は制御コマンドの組み合わせに対応付けられている。例えば、R値が0xE0の場合場、コマンドGS
【0043】
G値は、0〜255までがパラメータ1として対応付けられている。B値は、0〜255までがパラメータ2として対応付けられている。
【0044】
次に、制御画像のRGB値と制御コマンドとの対応について説明する。図8、図9は、RGB値と制御コマンドの対応を規定したマップである。図8の(1)に示した、1バイトの制御コマンドESC(0x1B)について説明する。尚、この場合は、RGB値のB値については使用しない。(R,G,B)=(0x02,0x40,0x00)の場合には制御コマンドESC @と対応付けられている。尚“@”は、キャラクターコード0x40に対応付けられている。また、(R,G,B)=(0x02,0x4C,0x00)の場合には、制御コマンドESC Lと対応づけられている。尚、“L”は、キャラクターコード0x4Cに対応付けられている。
【0045】
図8の(2)に示した、2バイトの制御コマンドESC(0x1B)について説明する。(R,G,B)=(0x02,0x41,n)の場合には制御コマンドESC A nと対応付けられている。尚“A”は、キャラクターコード0x41に対応付けられている。(R,G,B)=(0x02,0x4A,n)の場合には制御コマンドESC J nと対応付けられている。尚“J”は、キャラクターコード0x4Aに対応付けられている。図8に示した(3)(4)についても同様である。
【0046】
図9の(7)には、組み合わせて使用されるコマンド類を1つで定義される。例えば(R,G,B)=(0xE0,m,n)の場合、制御コマンドGS<GS V m nに対応付けられている。この制御コマンドは、GS<コマンドと、GS V m nコマンドとを組み合わせたものである。
【0047】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0048】
上記実施例において、プリンタ100は、サーマルプリンタを例に説明したが、これに限定されない。例えば、サーマルプリンタ以外のインクジェットプリンタやレーザプリンタなどであってもよい。
【符号の説明】
【0049】
1 コンピュータ(プリンタの制御装置)
10 印刷アプリケーション(印刷データ生成部)
50 プリンタドライバ(プリンタ制御部)
51 制御画像判定部
52 制御画像情報保持部
53 印刷データ形式変換部
54 制御コマンド挿入部
55 印刷データ送信部
100 プリンタ
CI、CI1、CI3 制御画像



【特許請求の範囲】
【請求項1】
プリンタの印刷対象となる印刷対象画像と前記プリンタへの制御内容に対応付けられた制御画像とが描画された印刷データを生成する印刷データ生成部と、
前記制御画像に対応した前記制御内容で前記プリンタを制御するプリンタ制御部と、を備えたプリンタの制御装置。
【請求項2】
前記プリンタ制御部は、前記制御画像の色に対応した前記制御内容で前記プリンタを制御する、請求項1のプリンタの制御装置。
【請求項3】
前記プリンタ制御部は、前記制御画像のRGBの各濃度に対応した前記制御内容で前記プリンタを制御する、請求項2のプリンタの制御装置。
【請求項4】
前記プリンタ制御部は、前記制御画像に対応した制御コマンドを前記プリンタへ送信する、請求項1乃至3の何れかのプリンタの制御装置。
【請求項5】
前記プリンタ制御部は、前記印刷データに前記制御コマンドを挿入する、請求項4のプリンタの制御装置。
【請求項6】
前記プリンタ制御部は、前記制御画像を判定した後に前記制御画像を前記印刷データから削除する、請求項1乃至5の何れかのプリンタの制御装置。
【請求項7】
前記印刷データ生成部は、画像を描画可能な前記印刷データの領域のうち前記印刷対象画像が描画されていない領域に前記制御画像を描画する、請求項1乃至6の何れかのプリンタの制御装置。
【請求項8】
請求項1乃至7の何れかのプリンタの制御装置と、
前記プリンタと、を備えたプリンタシステム。
【請求項9】
プリンタの印刷対象となる印刷対象画像と前記プリンタへの制御内容に対応付けられた制御画像とが描画された印刷データを生成し、
前記制御画像に対応した前記制御内容で前記プリンタを制御する、プリンタの制御方法。
【請求項10】
プリンタの印刷対象である印刷対象画像と前記プリンタへの制御内容に対応付けられた制御画像とが描画された印刷データを受信し、
前記制御画像に対応した前記制御内容で前記プリンタを制御する、プリンタの制御方法。
【請求項11】
請求項10のプリンタの制御方法をコンピュータに実行させるためのプログラム。
【請求項12】
請求項11のプログラムを記録したコンピュータで読取可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−53987(P2011−53987A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2009−203149(P2009−203149)
【出願日】平成21年9月2日(2009.9.2)
【出願人】(501398606)富士通コンポーネント株式会社 (848)
【Fターム(参考)】