(57)【特許請求の範囲】
【請求項１】
プリンターに接続可能なホストコンピューターに搭載され、前記プリンターで受信順に実行される第１コマンドと、前記第１コマンドに優先して実行される第２コマンドを生成可能であり、前記第１コマンドを含む印刷データの生成と当該印刷データの前記プリンターへの送信を実行させるドライバープログラムであって、
前記印刷データの生成の際に、前記印刷データに含まれる前記第１コマンドのデータが前記第２コマンドと同一のデータ列を含まない圧縮データとなるまで前記データの圧縮を行う圧縮処理を、前記ホストコンピューターに実行させる
ことを特徴とするドライバープログラム。
【請求項２】
請求項１において、
前記圧縮処理は、前記第２コマンドと同一のデータ列を含まない圧縮データとなるまで、異なる圧縮方法で前記データの圧縮を行う処理である
ことを特徴とするドライバープログラム。
【請求項３】
請求項１あるいは２において、
前記圧縮処理は、前記第２コマンドと同一のデータ列を含まない圧縮データとなるまで、異なる圧縮度合で前記データの圧縮を行う処理である
ことを特徴とするドライバープログラム。
【請求項４】
請求項１乃至３のいずれか１項において、
前記第２コマンドは、少なくとも、前記プリンターのデータバッファーに蓄積されるデータをクリアさせるコマンド、装置の駆動を指示させるコマンド、のいずれかを含む
ことを特徴とするドライバープログラム。
【請求項５】
請求項１乃至４のいずれか１項において、
前記圧縮データとされる前記第１コマンドのデータは、イメージデータを含む
ことを特徴とするドライバープログラム。
【請求項６】
請求項１乃至５のいずれか１項において、
前記プリンターは、印刷媒体を搬送しながら印刷を行うラインプリンターである
ことを特徴とするドライバープログラム。
【請求項７】
プリンターに接続可能であり、前記プリンターで受信順に実行される第１コマンドと、前記第１コマンドに優先して実行される第２コマンドを生成可能なホストコンピューターに、前記第１コマンドを含む印刷データの生成と当該印刷データの前記プリンターへの送信を実行させる制御方法であって、
前記印刷データの生成の際に、前記印刷データに含まれる前記第１コマンドのデータが前記第２コマンドと同一のデータ列を含まない圧縮データとなるまで前記データの圧縮を行う圧縮処理を、前記ホストコンピューターに実行させる
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンターのドライバープログラム等に関し、特に、印刷データを圧縮してプリンターへ送信する場合にも、リアルタイムコマンドを誤動作させることなく適正に実行させることのできるドライバープログラム等に関する。
【背景技術】
【０００２】
従来、プリンターに送信される命令（コマンド）には、各種印刷コマンドのように送信の順番に（プリンターでの受信の順番に）処理されるコマンド（以下、通常コマンドと称す）と、プリンターで受信後、通常コマンドに優先して即座に実行されるコマンド（以下、リアルタイムコマンドと称す）がある。
【０００３】
リアルタイムコマンドには、プリンターの状態を示す情報（ステータス情報）をホスト装置に返信させるコマンド、プリンターのデータバッファーに貯められているデータをクリアさせるコマンド、警報音を鳴らさせるなど装置を動作（駆動）させるコマンドなどがある。
【０００４】
このようなプリンターに送信されるコマンドにおいて、イメージやグラフィクスを印刷対象とする印刷コマンドには、イメージデータなどのバイナリ―データが含まれ、それらのデータ列に、上述したリアルタイムコマンドのデータ列と同一のデータ列が含まれてしまう場合がある。かかる場合には、当該データ列を受信したプリンターが、リアルタイムコマンドを受信したと誤解釈し、意図していないリアルタイムコマンドの実行がなされてしまう虞がある。このような偽リアルタイムコマンドによる誤動作は、例えば、必要なデータがクリアされてしまうなどの事態を引き起こし、プリンターの使用上避けられなければならない。
【０００５】
かかる課題に対して、下記特許文献１で提案されている装置では、リアルタイム禁止コマンドなるものを用いて、プリンターでリアルタイムコマンドが実行されない状態とする措置が取られる。
【０００６】
一方、モバイル端末からプリンターに印刷命令を出す場合など無線通信によってプリンターを利用する環境が増えている。このような環境では、プリンターにおける印刷パフォーマンスの向上、一定した印刷速度による印刷品質の確保等の観点から、プリンターへのデータ送信時間を短縮するべく、ホスト装置において送信するデータを圧縮する処理がなされている。
【０００７】
このように圧縮されたデータの中にも、上述したようにリアルタイムコマンドと同一のデータ列が含まれてしまう虞があり、従来は、圧縮後のデータにリアルタイムコマンドと同一のデータ列が含まれていることが検出されると、圧縮せずに元のデータをプリンターに送信するという処理がなされていた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−２９８５６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述のようにデータを圧縮してプリンターへ送信することが好ましい環境において、圧縮せずに元のデータで送信を行うと、圧縮により発生した偽リアルタイムコマンドによる誤動作を防止できるものの、連続印刷するプリンターにおいては、通信の遅れによってプリンターでの印刷速度を落とさざるを得ない場合が発生し、このような印刷速度の変化によって印刷した画像にいわゆる白筋が入ってしまうなどの印刷不良が起こる虞がある。
【００１０】
また、上記特許文献１に記載の方法を適用した場合には、リアルタイムコマンドと同一のデータ列が含まれる圧縮データを送信してもプリンターにおける偽リアルタイムコマンドによる誤動作を防止できるが、圧縮データを送信中に本当にリアルタイムコマンドの実行が必要になる場合もあり、そのような場合には、リアルタイムコマンドを送信してもプリンター側でリアルタイムコマンドの実行が禁止の状態となっており、リアルタイムコマンドの実行が困難である、という課題がある。
【００１１】
そこで、本発明の目的は、プリンターのドライバープログラムであって、印刷データを圧縮してプリンターへ送信する場合にも、リアルタイムコマンドを誤動作させることなく適正に実行させることのできるドライバープログラム、等を提供することである。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明の一つの側面は、プリンターに接続可能なホストコンピューターに搭載され、前記プリンターで受信順に実行される第１コマンドと、前記第１コマンドに優先して実行される第２コマンドを生成可能であり、前記第１コマンドを含む印刷データの生成と当該印刷データの前記プリンターへの送信を実行させるドライバープログラムが、前記印刷データの生成の際に、前記印刷データに含まれる前記第１コマンドのデータを前記第２コマンドと同一のデータ列を含まない圧縮データとする圧縮処理を、前記ホストコンピューターに実行させる、ことである。
【００１３】
これにより、例えば印刷データに含まれるイメージの印刷命令を示す第１コマンドとそれに伴うイメージデータなどのサイズの大きいデータについて、第１コマンドに優先して実行される第２コマンドと同一のデータ列を含まない圧縮データとして、プリンターへ送信するので、第２コマンドについてプリンターでの誤実行を防止でき、且つ、サイズの大きいデータについて常に圧縮データとして送信できるので、プリンターへの送信速度が速く、プリンターの印刷速度を落とすことによる白筋の発生などの印刷品質の劣化を防止することができる。
【００１４】
更に、上記発明において、その好ましい態様は、前記圧縮処理は、前記第２コマンドと同一のデータ列を含まない圧縮データとなるまで、異なる圧縮方法で前記データの圧縮を行う処理である、ことを特徴とする。
【００１５】
これにより、圧縮データを確実に第２コマンドと同一のデータ列を含まないデータとすることができる。
【００１６】
更にまた、上記発明において、その好ましい一つの態様は、前記圧縮処理は、前記第２コマンドと同一のデータ列を含まない圧縮データとなるまで、異なる圧縮度合で前記データの圧縮を行う処理である、ことを特徴とする。
【００１７】
これにより、比較的簡便な方法で、圧縮データを第２コマンドと同一のデータ列を含まないデータとすることができる。
【００１８】
更に、上記発明において、その好ましい態様は、前記第２コマンドは、少なくとも、前記プリンターのデータバッファーに蓄積されるデータをクリアさせるコマンド、装置の駆動を指示させるコマンド、のいずれかを含む、ことを特徴とする。
【００１９】
これにより、実行されると悪影響の大きい第２コマンドのプリンターにおける誤実行を防止できる。
【００２０】
更にまた、上記発明において、その好ましい態様は、前記圧縮データとされる前記第１コマンドのデータは、イメージデータを含む、ことを特徴とする。
【００２１】
これにより、プリンターへの印刷データの送信速度を速くすることができる。
【００２２】
更に、上記発明において、その好ましい態様は、前記プリンターは、印刷媒体を搬送しながら印刷を行うラインプリンターである、ことを特徴とする。
【００２３】
これにより、印刷速度の乱れにより画像に白筋が入り易いラインプリンターでは白筋の発生を抑制でき、さらに印刷速度も速いため、印刷データを圧縮データとしてプリンターへ送ることがより効果的となる。
【００２４】
上記の目的を達成するために、本発明の別の側面は、プリンターに接続可能であり、前記プリンターで受信順に実行される第１コマンドと、前記第１コマンドに優先して実行される第２コマンドを生成可能なホストコンピューターに、前記第１コマンドを含む印刷データの生成と当該印刷データの前記プリンターへの送信を実行させる制御方法において、前記印刷データの生成の際に、前記印刷データに含まれる前記第１コマンドのデータを前記第２コマンドと同一のデータ列を含まない圧縮データとする圧縮処理を、前記ホストコンピューターに実行させる、ことである。
【００２５】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【図面の簡単な説明】
【００２６】
【図１】本発明を適用したプリンタードライバーを備える印刷システムの実施の形態例に係る構成図である。
【図２】プリンタードライバー１２の処理手順を例示したフローチャートである。
【図３】圧縮レベルと圧縮データのサイズを例示した図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００２８】
図１は、本発明を適用したプリンタードライバーを備える印刷システムの実施の形態例に係る構成図である。図１に示すプリンタードライバー１２が本実施の形態例に係るプリンタードライバーであり、プリンタードライバー１２は、イメージの印刷命令(第１コマンド、後述の印刷命令コマンド)とそれに伴うイメージデータ等を圧縮後にプリンター２に送信するが、その圧縮処理において、圧縮後のデータ（以下、圧縮データと称す）にリアルタイムコマンド（第２コマンド）と同一のデータ列が含まれなくなるまで異なる手法で圧縮を繰り返し、リアルタイムコマンドと同一のデータ列が含まれない圧縮データを生成する。これにより、プリンター２におけるリアルタイムコマンドの誤動作を確実に防止でき、また、データサイズの大きいイメージデータ等を常に圧縮して送信できるので、通信速度が律速となってプリンター２における印刷速度を落としてしまうこともない。更に、プリンター２では常にリアルタイムコマンドを実行できる状態なので、イメージデータ等の送信中であっても、必要なリアルタイムコマンドをすぐに実行させることができる。
【００２９】
図１に示す本実施の形態例に係る印刷システムは、ＢＬＵＥＴＯＯＴＨ（登録商標）などの無線通信３で接続されるホストコンピューター１とプリンター２を備える。かかる印刷システムは、ここでは一例として、ＰＯＳ（Ｐｏｉｎｔ  ｏｆ  Ｓａｌｅｓ）システムの一部として機能し、商品販売後のレシートの印刷などを主に行う。
【００３０】
ホストコンピューター１は、プリンター２にレシートなどの印刷命令を行うプリンター２のホスト装置である。ここでは一例として、ホストコンピューター１は、いわゆるレジ端末であり、商品販売時の精算処理等を行う。また、ホストコンピューター１は、販売員が携帯できるモバイル型の端末装置であっても構わない。
【００３１】
図示していないが、ホストコンピューター１は、ハードウェア構成として、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ、表示装置、通信インターフェース、操作装置、バーコードリーダー等の入力装置、現金を収納するドロワーなどを備えている。
【００３２】
ホストコンピューター１は、機能構成としては、図１に示すように、アプリケーション１１とプリンタードライバー１２を備える。
【００３３】
アプリケーション１１は、ここでは、いわゆるＰＯＳアプリケーションであり、商品販売時の精算処理等を実行する。具体的には、例えば、バーコードリーダー等の入力装置から入力された販売商品の情報に基づいて合計金額を算出、表示し、代金の受領後、レシートの印刷要求を行う。当該レシートの印刷要求は、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）などの標準形式の印刷要求データをプリンタードライバー１２に送信して行う。
【００３４】
なお、レシートには、店舗のロゴ、販売日時、販売商品の名称・個数・金額、合計金額、店舗情報・販売員情報などを含むバーコード等が含まれ、これらがプリンター２において印刷される。これら印刷対象を表すデータが上述した印刷要求データに含まれる。
【００３５】
また、アプリケーション１１は、ホストコンピューター１のＨＤＤ等に記憶されるアプリケーションプログラム、当該プログラムに従って処理を実行するＣＰＵ、前記プログラムや処理データがロードされるＲＡＭ、等によって構成される。
【００３６】
プリンタードライバー１２は、プリンター２用のドライバーである。プリンタードライバー１２は、上述したアプリケーション１１等からの印刷要求データを受信し、その印刷要求データで要求された印刷をプリンター２に命令する印刷データを生成する。その後、プリンタードライバー１２は、生成した印刷データをプリンター２に送信する。プリンタードライバー１２が生成する印刷データは、プリンター２用のコマンドで表現される。
【００３７】
なお、プリンター２用のコマンドには、上述したように、ホストコンピューター１からの送信の順番に（プリンター２での受信の順番に）処理されるコマンド（以下、通常コマンド（第１コマンド）と称す）と、プリンター２で受信後、通常コマンドに優先して即座に実行されるコマンド（以下、リアルタイムコマンド（第２コマンド）と称す）がある。
【００３８】
上記印刷データに含まれる、上記印刷対象の印刷命令を表すコマンド（以下、印刷命令コマンドと称す）は通常コマンドである。上述したレシートの印刷対象のうち、店舗のロゴ、バーコード等はイメージデータ（各画素が色の情報を持つデータ）として印刷命令コマンドに含まれ、販売日時、合計金額等はそれぞれのテキスト（文字）を表すコードとして印刷命令コマンドに含まれる。
【００３９】
なお、印刷命令コマンドの送信前などに発せられる、プリンター２のステータス情報を取得するコマンドや、印刷の中止時などに発せられる、プリンター２のデータバッファー（受信バッファー２５、プリントバッファー２６）に蓄積されたデータをクリアにさせるコマンドなどは、リアルタイムコマンドである。また、ＰＯＳ端末（ホストコンピューター１）のドロワーを開ける指示を出させるコマンド、警報音の指示を出させるコマンドなど、装置の駆動を指示させるコマンドもリアルタイムコマンドである。なお、これらのリアルタイムコマンドは、プリンタードライバー１２、図示していないプリンター２用のユーティリティーなどから発せられる。
【００４０】
また、プリンタードライバー１２は、上述したイメージデータなどデータサイズの大きいデータを印刷データとしてプリンター２に送信する際には、圧縮データとして印刷データに含める。本印刷システムでは、この圧縮データを生成する処理（圧縮処理）に特徴があり、その具体的な内容は後述する。
【００４１】
なお、プリンタードライバー１２は、ホストコンピューター１のＨＤＤ等に記憶されるドライバープログラム、当該プログラムに従って処理を実行するＣＰＵ、前記プログラムや処理データがロードされるＲＡＭ、等によって構成される。
【００４２】
次に、プリンター２は、ホストコンピューター１の命令に従ってレシートなどを印刷する、いわゆるＰＯＳプリンターである。プリンター２は、ここでは一例として、インクジェット方式又はサーマル方式のラインヘッドを備え、印刷媒体である用紙（ロール紙等）に連続して（印刷中用紙の搬送を止めずに）印刷を行うラインプリンターである。
【００４３】
図１に示すように、プリンター２は、コントローラー部２１と印刷機構部２２を備える。更に、プリンター２は、図示していないが、ユーザーへの表示装置、ユーザーの操作装置、警報音を発する装置、無線通信インターフェースなどを備える。
【００４４】
コントローラー部２１は、プリンター２の動作を制御する部分であり、図１に示すように、ＣＰＵ２３、ＲＡＭ２４、ＲＯＭ２７、ＮＶＲＡＭ２８等を備える。
【００４５】
ＣＰＵ２３は、ＲＯＭ２７に記憶されるプログラム（ファームウェア）に従って動作し、プリンター２の各部の制御を実行する。ホストコンピューター１から印刷データを受信した際には、印刷データに含まれる各コマンドを解釈し、当該解釈の結果に従って印刷機構部２２に印刷処理を指示する。また、ＣＰＵ２３は、リアルタイムコマンドを受信し際には、その指示内容を通常コマンドに優先して即座に実施する。
【００４６】
ＲＡＭ２４には、受信バッファー２５とプリントバッファー２６が設けられる。受信バッファー２５は、ホストコンピューター１から受信したコマンド（データ）を受信順に格納する（蓄積する）データバッファーである。また、プリントバッファー２６は、上述した印刷対象の画像データを格納する（蓄積する）データバッファーであり、当該プリントバッファー２６に格納された画像データが、順次、印刷機構部２２に送信されて、上述した印刷処理の指示がなされる。
【００４７】
ＮＶＲＡＭ２８には、設定情報、ステータス情報などプリンター２の電源が切断されても消さずに記憶しておくべき情報が格納される。
【００４８】
印刷機構部２２は、コントローラー部２１の指示に従って用紙への印刷処理を実行する部分であり、用紙の搬送部、ラインヘッドなどの印字部を備える。ここでは、コントローラー部２１の指示に従ってレシート等を印刷する。
【００４９】
プリンター２は、ホストコンピューター１から受信したコマンドを、受信順に、受信バッファー２５に格納する。受信したコマンドが通常コマンドである場合には、ＣＰＵ２３は、ＦＩＦＯ（ｆｉｒｓｔ  ｉｎ  ｆｉｒｓｔ  ｏｕｔ）方式の順番で、すなわち、先に格納されているコマンドから順番に、処理を実行する。一方、受信したコマンドがリアルタイムコマンドである場合には、ＣＰＵ２３は、受信後、通常コマンドに優先して即座にそのコマンドを実行する。この場合、受信バッファー２５に格納されたリアルタイムコマンドは、上記ＦＩＦＯ方式の順番で処理タイミングになった際には、読み捨てられる。
【００５０】
また、通常コマンドとして上述の順番で処理される印刷命令コマンドは、その処理時に、ＣＰＵ２３によって解釈されて、対応する印刷対象の画像データが生成される。生成された画像データは、上述の通り、プリントバッファー２６に格納され、順次、印刷機構部２２へ渡される。なお、印刷対象のデータが圧縮データである場合には、ＣＰＵ２３は、その圧縮データを伸長した後に上記画像データとする。
【００５１】
以上説明したような構成を有する本実施の形態例に係る印刷システムでは、ホストコンピューター１のプリンタードライバー１２の処理に特徴があり、以下、その具体的な処理内容について説明する。
【００５２】
図２は、プリンタードライバー１２の処理手順を例示したフローチャートである。以下、図２に基づいて、プリンタードライバー１２が印刷要求データを受信した際の処理内容について説明する。
【００５３】
まず、ホストコンピューター１のアプリケーション１１から上述した印刷要求データを受信する（図２のステップＳ１）。なお、ここでは、印刷要求データは、１レシートの印刷を要求するものである。
【００５４】
その後、プリンタードライバー１２は、受信した印刷要求データについて、所定の単位毎に、図２のステップＳ２−Ｓ８の処理を実行する。なお、印刷要求データには、印刷条件の設定など印刷の前処理を示すデータ、印刷対象を示すデータ、用紙のカットなど印刷後の処理を示すデータ等が含まれるが、印刷対象を示すデータについては、プリンタードライバー１２は、オブジェクト単位で図２のステップＳ２−Ｓ８の処理を実行する。ここで、オブジェクトとは、図形（イメージ、グラフィクス）や文字（テキスト）の一塊を意味する。
【００５５】
まず、ステップＳ２では、プリンタードライバー１２は、処理対象が、イメージ又はグラフィクスの印刷対象を示すデータであるか否かを判断する。当該判断の結果、イメージ又はグラフィクスの印刷対象を示すデータでない場合には（図２のステップＳ２のＮｏ）、処理がステップＳ７に移行する。
【００５６】
一方、上記判断の結果、イメージ又はグラフィクスの印刷対象を示すデータである場合には（図２のステップＳ２のＹｅｓ）、プリンタードライバー１２は、当該データについて圧縮処理（ステップＳ３−ステップＳ５のＮｏ）を実行する。
【００５７】
当該圧縮処理では、処理対象のデータを圧縮するが、データ圧縮の手法として、ここでは、デフレート圧縮を用い、さらに具体的には、Ｚｌｉｂを用いる。Ｚｌｉｂには、圧縮度合の違いによる１０の圧縮レベル（１−１０）が用意されている。
【００５８】
上記圧縮処理では、プリンタードライバー１２は、まず、データの圧縮に使用する圧縮レベルとして、標準圧縮レベルを選択する（図２のステップＳ３）。具体的には、一例として、圧縮レベル６を選択する。
【００５９】
次に、プリンタードライバー１２は、選択した圧縮レベルで対象のデータを圧縮する（図２のステップＳ４）。
【００６０】
その後、プリンタードライバー１２は、生成された圧縮データの中に、所定のリアルタイムコマンドと同一のデータ列が含まれているか否かを判断する（図２のステップＳ５）。ここで、所定のリアルタイムコマンドとしては、上述したデータバッファーに蓄積されたデータをクリアにさせるコマンド、装置の駆動を指示させるコマンドなど、実際に発せられていないにも関わらず誤実行することを防止したいものが予め選択されている。
【００６１】
また、圧縮データに所定のリアルタイムコマンドと同一のデータ列が含まれているかのサーチ処理は、従前の方法を用いることができる。
【００６２】
上記判断の結果、圧縮データの中に所定のリアルタイムコマンドと同一のデータ列が含まれていないと判断した場合には（図２のステップＳ５のＮｏ）、処理がステップＳ７に移行する。
【００６３】
一方、上記判断の結果、圧縮データの中に所定のリアルタイムコマンドと同一のデータ列が含まれていると判断した場合には（図２のステップＳ５のＹｅｓ）、プリンタードライバー１２は、圧縮レベルの変更を行う（図２のステップＳ６）。具体的には、処理対象のデータについてこれまでに使用（選択）していない圧縮レベルを選択する。処理対象のデータについて初めて当該処理を行う場合には、標準圧縮レベル（圧縮レベル６）以外の圧縮レベルが選択される。なお、当該圧縮レベルの変更（選択）は、予め定められた順番で行ってもよいし、乱数などを用いて行ってもよい。
【００６４】
その後、プリンタードライバー１２は、変更（選択）された圧縮レベルで再度データの圧縮を行う（図２のステップＳ４）。
【００６５】
このようにして、圧縮データの中に所定のリアルタイムコマンドと同一のデータ列が含まれていないと判断されるまで（図２のステップＳ５のＮｏ）、ステップＳ６、ステップＳ４、ステップＳ５の処理が繰り返し実行される。すなわち、圧縮データが所定のリアルタイムコマンドと同一のデータ列を含まないようになるまで、圧縮レベルを変えてデータの圧縮を行う。
【００６６】
なお、ステップＳ４におけるデータの圧縮は、常に、受信したデータに対して行なわれる。
【００６７】
処理がステップＳ７に移行すると、プリンタードライバー１２は、処理対象のデータをプリンター２用のコマンドで表現し（コマンド化し：イメージの印刷命令を示す第１コマンドを圧縮したイメージデータに付加してプリンター２で解釈可能な形式にし）、処理対象のデータ（上記所定の単位のデータ）についての処理を終了する。
【００６８】
その後、プリンタードライバー１２は、全てのデータ（上記所定の単位のデータ）について処理が終了するまで（図２のステップＳ８のＹｅｓ）、ステップＳ２−Ｓ８の処理を繰り返し実行する。
【００６９】
当該処理により、イメージデータ、グラフィクスデータは圧縮データとなってコマンド化され（上記印刷命令コマンドとされ）、テキストなどその他のデータは圧縮されずにコマンド化されて（上記印刷命令コマンドとされて）、受信した印刷要求データに相応する印刷データが生成される。
【００７０】
受信した印刷要求データについて全ての処理が終了すると（図２のステップＳ８のＹｅｓ）、プリンタードライバー１２は、生成された印刷データをプリンター２へ送信する（図２のステップＳ９）。
【００７１】
このようにして印刷要求を受けた際のプリンタードライバー１２の処理が終了し、プリンター２は上記送信された印刷データを受信して、当該印刷データに従って印刷を実行する。すなわち、当該例では、レシートの印刷を行う。
【００７２】
なお、プリンタードライバー１２は、必要な時に、適宜、リアルタイムコマンドをプリンター２に送信し、当該リアルタイムコマンドを受信したプリンター２は、上述の通り、通常コマンドに優先して即座にそのリアルタイムコマンドを実行する。
【００７３】
図３は、圧縮レベルと圧縮データのサイズを例示した図である。図３に示す例では、５つの異なるデータ（００１．ｐｒｍ−００５．ｐｒｍ）について、圧縮レベル１−９のそれぞれでデータの圧縮を行った際の圧縮データのサイズがバイト単位で示されている。各データについて、圧縮データのサイズを表右端の「元のデータサイズ」と比較すると、どの圧縮レベルにおいてもそれ相応の圧縮効果があり、圧縮度合の低い圧縮レベル１においても圧縮度合の高い圧縮レベル９の場合と大差のない（オーダーとして変わらない）圧縮効果があることがわかる。従って、図２に基づいて説明した圧縮処理を行い、最終的にどの圧縮レベルが選択されても（用いられても）、圧縮データのデータサイズを極端に大きくしてしまうことがなく、すなわち、プリンター２への通信時間を極端に長くしてしまうことがない。
【００７４】
以上説明したように、本実施の形態例に係るプリンタードライバー１２では、印刷データに含まれるイメージデータなどのサイズの大きいデータについて、所定のリアルタイムコマンドと同一のデータ列を含まない圧縮データとして、プリンター２へ送信するので、所定のリアルタイムコマンドについてプリンター２での誤実行を防止でき、且つ、サイズの大きいデータについて常に圧縮データとして送信できるので、特にラインヘッドを備えたラインプリンターであるプリンター２への送信速度が速く、連続印刷するプリンター２の印刷速度を落とすことによる白筋の発生などの印刷品質の劣化を防止することができる。更に、プリンター２側では、リアルタイムコマンドを常に実行できる状態なので、印刷データの送信中であっても、必要なリアルタイムコマンドをすぐに実行させることができる。
【００７５】
また、このような効果を、プリンタードライバー（プログラム）で実現することができる。
【００７６】
また、所定のリアルタイムコマンドと同一のデータ列を含まない圧縮データとするために、圧縮レベルを変えて再圧縮する方法を用い、比較的容易に実現できる。
【００７７】
また、上記所定のリアルタイムコマンドとして、データバッファーに蓄積されたデータをクリアにさせるコマンド、装置の駆動を指示させるコマンドなどを設定することで、影響が大きい誤実行を効果的に防止することができる。
【００７８】
なお、上述の説明では、圧縮データが所定のリアルタイムコマンドと同一のデータ列を含まないようにするために、再圧縮の際にＺｌｉｂの異なる圧縮レベルを選択するようにしていたが、これに限らず、圧縮データの内容（データ列）が変わる異なる圧縮方法を選択するようにすればよい。
【００７９】
また、上述の説明では、圧縮データが所定のリアルタイムコマンドと同一のデータ列を含まないようにしたが、全てのリアルタイムコマンドと同一のデータ列を含まないようにしてもよい。
【００８０】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【符号の説明】
【００８１】
１…ホストコンピューター、２…プリンター、３…無線通信、１１…アプリケーション、１２…プリンタードライバー、２１…コントローラー部、２２…印刷機構部、２３…ＣＰＵ、２４…ＲＡＭ、２５…受信バッファー、２６…プリントバッファー、２７…ＲＯＭ、２８…ＮＶＲＡＭ
【図１】
0006551054.tif 000002
【図２】
0006551054.tif 000003
【図３】
0006551054.tif 000004