(57)【特許請求の範囲】
【請求項１】
増設メモリを持つことができるプリンタと、このプリンタのためのプリンタドライバを有したホストコンピュータとを備えたプリントシステムにおいて、
プリンタドライバは、
前記プリンタが実行できる、印刷動作に関する複数のプログラムと、
前記プリンタに問い合せて、前記増設メモリの容量を確認する確認手段と、
前記複数のプログラムの中から、確認した増設メモリの容量が多いほど高機能のプログラムを選択して、前記プリンタへダウンロードするダウンロード手段と、
前記ダウンロードしたプログラムに応じた形式の印刷データを生成して、前記プリンタへ送信するデータ生成手段と
を有し、
前記プリンタは、
前記プリンタドライバの確認手段に応答して、前記増設メモリの容量をホストコンピュータへ回答する回答手段と、
前記ダウンロードされたプログラムに従って、前記ホストコンピュータから送信された印刷データを処理する印刷処理手段と
を有し、
前記確認した増設メモリの容量が、前記複数のプログラムのいずれを実行するにも不足であるとき、前記ダウンロード手段は前記プログラムのダウンロードを省略し、前記データ生成手段は前記プリンタがもつ標準的な印刷動作プログラムに応じた形式の印刷データを生成する、
ことを特徴とするプリントシステム。
【請求項２】
請求項１記載のシステムにおいて、前記複数のプログラムは、圧縮された２値形式の印刷データを伸張する伸張プログラムと、圧縮された多値形式の印刷データを伸張し且つ２値化する２値化・伸張プログラムを含むことを特徴とするプリントシステム。
【請求項３】
請求項１記載のシステムにおいて、前記ダウンロード手段が、前記複数のプログラムの中から、前記確認した増設メモリの容量の下で実行することが可能なプログラムを選択することを特徴とするプリントシステム。
【請求項４】
請求項１記載のシステムにおいて、前記ダウンロード手段は、前記データ生成手段が動作する都度に、前記データ生成手段の動作に先立って動作することを特徴とするプリントシステム。
【請求項５】
請求項１記載のシステムにおいて、前記ダウンロード手段は、前記データ生成手段から独立して動作することを特徴とするプリントシステム。
【請求項６】
請求項１記載のシステムにおいて、前記データ生成手段は、前記印刷データのデータ形式を示すタグを前記印刷データに付加し、前記印刷処理手段は、受信した印刷データに付加されているタグにより示されるデータ形式に応じたプログラムを用いて、前記印刷データを処理することを特徴とするプリントシステム。
【請求項７】
増設メモリを持つことができるプリンタと、このプリンタに接続されたホスト装置とを備えたプリントシステムにおけるプリント方法において、
Ａ．前記ホスト装置が、
ａ）前記プリンタに問い合せて、前記増設メモリの容量を確認するステップと、
ｂ）前記ホスト装置内に用意された、前記プリンタが実行できる、印刷動作に関する複数のプログラムの中から、確認した増設メモリの容量が多いほど高機能のプログラムを選択して、前記プリンタへダウンロードするステップと、
ｃ）前記ダウンロードしたプログラムに応じた形式の印刷データを生成して、前記プリンタへ送信するステップと、
Ｂ．前記プリンタが、
ｄ）前記ホスト装置からの問い合せに応答して、前記増設メモリの容量を前記ホスト装置へ回答するステップと、
ｅ）前記ダウンロードされたプログラムに従って、前記ホスト装置から送信された印刷データを処理するステップと
を備え、
前記確認した増設メモリの容量が、前記複数のプログラムのいずれを実行するにも不足であるとき、前記ｂ）のステップを省略し、前記ｃ）のステップでは、前記プリンタがもつ標準的な印刷動作プログラムに応じた形式の印刷データを生成する、
ることを特徴とするプリント方法。
【請求項８】
増設メモリを持つことができるプリンタを駆動するプリンタドライバにおいて、
前記プリンタが実行できる、印刷動作に関する複数のプログラムと、
前記プリンタに問い合せて、前記増設メモリの容量を確認する確認手段と、
前記複数のプログラムの中から、確認した増設メモリの容量が多いほど高機能のプログラムを選択して、前記プリンタへダウンロードするダウンロード手段と、前記ダウンロードしたプログラムに応じた形式の印刷データを生成して、前記プリンタへ送信するデータ生成手段と
を備え、
前記確認した増設メモリの容量が、前記複数のプログラムのいずれを実行するにも不足であるとき、前記ダウンロード手段は前記プログラムのダウンロードを省略し、前記データ生成手段は前記プリンタがもつ標準的な印刷動作プログラムに応じた形式の印刷データを生成する、
ことを特徴とするプリンタドライバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータとこれに接続されたプリンタとを含むプリントシステム、及び同システムで用いられるプリンタドライバに関する。
【０００２】
【従来の技術】
一般に、プリントシステムは、ホストコンピュータに接続されたプリンタと、ホストコンピュータによって実行されるプログラムであるプリンタドライバとを含む。プリンタドライバは、アプリケーションから与えられる印刷すべき画像を表したデータを、プリンタが理解できる形式のデータに変換して、これをプリンタへ送るためにＯＳ（オペレーティングシステム）へ渡す。
【０００３】
プリンタが理解できるデータ形式は、プリンタが持っている印刷動作プログラムによって異なる。多くのプリンタの印刷動作は２値方式（つまり、ドットを打つか、打たないか）であるから、アプリケーションからの元画像データはプリンタで印刷される前に２値データに変換されなければならない。
【０００４】
この変換は２値化とかハーフトーニングなどと呼ばれるが、プリンタ内の印刷動作プログラムが２値化処理を行う機能を持っていれば、プリンタドライバは２値化処理を行う必要がない。逆に、プリンタの印刷動作プログラムが２値化処理機能を持っていなければ、プリンタドライバが２値化処理を行わなくてはならない。
【０００５】
このように、プリンタの印刷動作プログラムの持つ機能に応じて、プリンタドライバが行うべき処理が異なってくる。一般に、プリンタの印刷動作プログラムが高機能であれば、プリンタドライバの処理負担が軽減され、印刷に要する時間が短縮される傾向にある。
【０００６】
従来の一般的なプリンタは、ＲＯＭ内に印刷動作プログラムが予め格納されており、ハードウェアを交換しない限り印刷動作プログラムをバージョンアップすることはできない。これに対し、特開平８−２０７４００号公報に開示の技術は、印刷動作プログラムをホストコンピュータからプリンタのＲＡＭへダウンロードすることにより、プリンタのハードウェアを変更することなしに容易に印刷シーケンスの変更に対応できるようにしている。
【０００７】
【発明が解決しようとする課題】
上記従来技術において、ホストコンピュータからダウンロードされた印刷動作プログラムはプリンタのＲＡＭに格納されるから、プリンタの持つＲＡＭの容量によってダウンロードできる印刷動作プログラムのサイズに限界がある。高機能の印刷動作プログラムをダウンロードしようとしても、もし、プリンタのメモリ量が少な過ぎれば、それは不可能である。
【０００８】
一方、ＳＩＭＭのような脱着可能なＲＡＭが増設できるプリンタでは、増設されたメモリの容量が充分大きければ、高機能の印刷動作プログラムをダウンロードして、高速印刷を実現できる。もし、増設メモリ量が充分多いにも拘らず、低機能の印刷動作プログラムしかプリンタに持たせてなければ、増設メモリを有効に利用せず勿体ない。
【０００９】
しかし、一般のユーザにとって、こうしたことを理解して、プリンタのメモリ容量に応じ最適な印刷動作プログラムを選択しダウンロードすることは、実際上不可能である。
【００１０】
従って、本発明の目的は、ホストコンピュータから印刷動作に関するプログラムをプリンタへダウンロードできるプリントシステムにおいて、プリンタの持つメモリの容量に応じてダウンロードするプログラムを自動的に選択できるようにすることにある。
【００１１】
【課題を解決するための手段】
本発明のプリントシステムは、増設メモリを持つことができるプリンタと、このプリンタのためのプリンタドライバを有したホストコンピュータとを備える。ホストコンピュータのプリンタドライバは、プリンタが実行できる、印刷動作に関する複数のプログラムと、プリンタに問い合せて増設メモリの容量を確認する確認手段と、上記複数のプログラムの中から、確認した増設メモリの容量に応じたプログラムを選択してプリンタへダウンロードするダウンロード手段と、ダウンロードしたプログラムに応じた形式の印刷データを生成してプリンタへ送信するデータ生成手段とを有する。プリンタは、プリンタドライバの確認手段に応答して、増設メモリの容量をホストコンピュータへ回答する回答手段と、ダウンロードされたプログラムに従って、ホストコンピュータから送信された印刷データを処理する印刷処理手段とを有する。
【００１２】
本発明によれば、プリンタドライバ側でプリンタ内の増設メモリの容量をチェックし、その容量を最大限に活用した印刷動作プログラムを選んでプリンタにダウンロードすることができるようになる。例えば、増設メモリが大きい程、より高機能のプログラムをプリンタにダウンロードして、ホストコンピュータ側の処理負担を軽減し、もって、ホストの開放を早くしたり、全体のスループットを高めたりすることができる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面に基づいて説明する。
【００１４】
図１は本発明の一実施形態に係るプリントシステムの構成図である。
【００１５】
このシステムは、ホストコンピュータ１と、これに接続されるプリンタ１０とを含む。プリンタ１０は、ホストコンピュータ１との間のデータの授受を行うホストインタフェース（Ｉ／Ｆ）２、ホストコンピュータ１からの印刷データを処理するＣＰＵ４、標準的な印刷動作プログラム及び文字フォントなどの固定データを格納したＲＯＭ６、ＣＰＵ４の主記憶や各種バッファ及びワークエリアなどとして利用されるＲＡＭ５とＳＩＭＭ（増設メモリ）３、及びＣＰＵ４が印刷データを処理した結果生成するイメージデータを受けて実際に印刷を行う印刷メカニズム及びその駆動回路７を備えている。
【００１６】
ホストコンピュータ１には、プリンタ１０用のプリンタドライバがインストールされている。このプリンタドライバは、プリンタ１０のＣＰＵ４に適合した複数種類の印刷動作に関わるプログラム（以下、単に「プログラム」と呼ぶ）を持っており、プリンタ１０内のＳＩＭＭ３の容量に応じて、最適なプログラムを選択してプリンタ１０にダウンロードする機能を有している。
【００１７】
図２は、印刷処理が行われるときのプリンタドライバとプリンタ間の通信内容を示すタイムチャートである。
【００１８】
プリンタドライバは、起動時又はユーザから印刷実行を命じられた時、まずプリンタ１０にＳＩＭＭ３の容量を確認せよと命じる。するとプリンタ１０は、その命令に応答してＳＩＭＭ容量を調べプリンタドライバに回答する。プリンタドライバはその回答を受け、持っている複数のプログラムの中からＳＩＭＭ容量に見合ったプログラムを選択する。そして、プリンタドライバは、選択したプログラムをプリンタ１０に送り、プリンタ１０のＣＰＵ４は、受信したプログラムをＲＡＭ５又はＳＩＭＭ３の主記憶にロードする（つまり、選択プログラムのダウンロードが行われる）。
【００１９】
ダウンロードが完了しそのプログラムが実行可能な状態になると、プリンタ１０はプログラム実行可能の旨をプリンタドライバに通知する。プリンタドライバはこの通知を受けると、ダウンロードしたプログラムに応じた形式の印刷データを生成してプリンタ１０に送信する。プリンタ１０のＣＰＵ４は、この印刷データを受信すると、標準的な印刷動作プログラムとダウンロードされたプログラムとを実行して、受信データからイメージデータを作成する。印刷メカニズム及びその駆動回路７は、そのイメージデータを受けて用紙に実際のイメージを印刷する。
【００２０】
以下、プリンタドライバの処理を説明する。
【００２１】
図３は第１の実施形態にかかるプリンタドライバの処理フローを示す。
【００２２】
この実施形態では、プリンタドライバは、１つの印刷ジョブのデータをプリンタ１０へ送信する都度、その前に必ずＳＩＭＭ容量に応じたプログラムをダウンロードするように動作する。
【００２３】
ダウンロードできるプログラムには、実際上種々のものが採用し得るが、ここでは例として、次の２種類のプログラム＃１、＃２を想定する。第１のプログラム＃１は、圧縮された２値形式のイメージを含む印刷データから、これを伸張して元の２値形式のイメージを含む印刷データに復元するプログラム（以下、単に「伸張プログラム」という）である。第２のプログラム＃２は、圧縮された多値形式のイメージを含む印刷データから、これを伸張して元の多値形式のイメージを含む印刷データを復元し、更にその多値形式のイメージを２値化して２値形式のイメージを生成するプログラム（以下、「２値化・伸張プログラム」という）である。従って、伸張プログラム＃１より２値化・伸張プログラム＃２の方が、２値化処理を含むために高機能であり、プログラムを実行するのに必要なメモリ容量も大きい。
【００２４】
ここで、「多値形式のイメージ」とは、各画素の各カラー値が、例えば８ビットワードのような多階調を表現できるワードで表現されている形式のイメージデータをいい、アプリケーションからプリンタドライバに渡される写真や絵画のイメージデータは通常この形式である。「２値形式のイメージ」とは、各画素の各カラー値が、そのカラーのドットを打つか打たないかを示した１ビットワードで表現されている形式のイメージデータであり、「多値形式のイメージ」に２値化処理（ハーフトーニング）を施すことにより得られる。
【００２５】
図３に示すように、プリンタドライバは、アプリケーション上で起動されたとき、又は起動後にユーザから印刷実行命令を受けたとき、まずプリンタ１０に命じてＳＩＭＭ３の容量を確認する（Ｓ１）。その結果、ＳＩＭＭ容量が伸張プログラム＃１を実行するのに必要なメモリ容量より小さいときは、ステップＳ２以下の処理へ進む。即ち、プログラム＃１も＃２もダウンロードせずに、アプリケーションから受けた多値形式のイメージデータを２値化して、２値形式のイメージをもつ印刷データ（以下、「２値形式の印刷データ」という）を作成し（Ｓ２）、その２値形式の印刷データを簡易圧縮し（Ｓ３）、この簡易圧縮したデータにそのデータ形式を示すタグ＃１を付け（Ｓ４）、これをプリンタ１０へ送信する（Ｓ１４）。ここで、「簡易圧縮」とは、プリンタ１０がＲＯＭ６内に持っている標準的な印刷動作プログラムがサポートしている圧縮方法である。
【００２６】
また、ステップＳ１で確認したＳＩＭＭ容量が、２値化・伸張プログラム＃２２を実行するには不足しているが伸張プログラム＃１を実行するには充分である場合は、ステップＳ５以下の処理へ進む。即ち、伸張プログラム＃１をプリンタ１０へダウンロードする（Ｓ５）。ダウンロードが終わりプリンタ１０から実行可能の通知が来ると（Ｓ６でｙ）、アプリケーションからの多値イメージデータを２値化して、２値形式の印刷データを作成し（Ｓ７）、これを本圧縮する（Ｓ８）。そして、本圧縮した２値形式の印刷データに、そのデータ形式を示すのタグ＃２を付けて（Ｓ９）、プリンタ１０へ送信する（Ｓ１４）。ここで、「本圧縮」とは、伸張プログラム＃１及び２値化・伸張プログラムがサポートしている圧縮方法であり、「簡易圧縮」より圧縮率が高い。
【００２７】
また、ステップＳ１で確認したＳＩＭＭ容量が、２値化・伸張プログラム＃２を実行するのに充分であれば、ステップＳ１０以下の処理へ進む。即ち、２値化・伸張プログラム＃２をプリンタ１０へダウンロードし（Ｓ１０）、プリンタ１０から実行可能の通知が来ると（Ｓ１１でｙ）、アプリケーションからの多値イメージデータから、多値形式のイメージをもつ印刷データ（以下、「多値形式の印刷データ」という）を生成してこれを本圧縮し（Ｓ１２）、この本圧縮した多値形式印刷データにそのデータ形式を示すタグ＃３を付け（Ｓ１３）、プリンタ１０へ送信する。
【００２８】
図４及び図５は、第２の実施形態に係るプリンタドライバの処理フローを示す。
【００２９】
この実施形態では、プリンタドライバは、図４に示すプログラムのダウンロード処理を、図５に示す印刷データの送信処理から独立して行う。
【００３０】
プリンタドライバは、最初の起動時若しくは最初の印刷命令を受けたとき、又は起動後にプリンタ１０の電源投入を検知したとき、図４に示すプログラムのダウンロード処理を行う。即ち、まずプリンタ１０のＳＩＭＭ容量を確認する（Ｓ２１）。その結果、ＳＩＭＭ容量が伸張プログラム＃１の実行に必要な量より小さければ、プログラムをダウンロードせずにこの処理を終える。ＳＩＭＭ容量が２値化・伸張プログラム＃２の実行には足りないが伸張プログラム＃１の実行には充分であれば、伸張プログラム＃１をダウンロードし（Ｓ２２）、ダウンロードが終わりプリンタ１０から実行可能の回答を得ると（Ｓ２３でｙ）、この処理を終了する。ＳＩＭＭ容量が２値化・伸張プログラム＃２の実行に充分であれば、２値化・伸張プログラム＃２をダウンロードし（Ｓ２４）、ダウンロードが終わりプリンタ１０から実行可能の回答を得ると（Ｓ２５でｙ）、この処理を終了する。
【００３１】
プリンタドライバは、印刷命令を受けたとき、図５に示す印刷データ送信処理を行う。まず、プリンタ１０に問い合せて、既にダウンロードされているプログラムの種類をチェックする（Ｓ３１）。ダウンロードされているプログラムが無い場合には、図４のステップＳ２以下と同様に、アプリケーションからの多値イメージデータを２値化し（Ｓ３２）、簡易圧縮し（Ｓ３３）、タグ＃１を付けて（Ｓ３４）、プリンタ１０へ送信する（Ｓ４０）。
【００３２】
伸張プログラム＃１がダウンロードされている場合は、図４のステップＳ７以下と同様に、アプリケーションからの多値イメージデータを２値化し（Ｓ３５）、本圧縮し（Ｓ３６）、タグ＃２を付けて（Ｓ３７）、プリンタ１０へ送信する（Ｓ４０）。
【００３３】
２値化・伸張プログラム＃２がダウンロードされている場合は、図４のステップＳ１２以下と同様に、アプリケーションからの多値イメージデータを本圧縮し（Ｓ３８）、タグ＃３を付けて（Ｓ３９）、プリンタ１０へ送信する（Ｓ４０）。
【００３４】
図６は、図４及び５の処理によりプリンタドライバから転送されるデータストリームの構成例を示す。この例では、最初に、例えば２値化プログラムと伸張プログラムからなる２値化・伸張プログラム＃２が転送され、それに後続して、２つの印刷ジョブのデータＡ、Ｂが転送される。２つの印刷データＡ、Ｂは共に本圧縮された２値形式の印刷データであり、各々の先頭にはそのデータ形式を示すタグ＃３が付されている。
【００３５】
図７は、プリンタが印刷データを処理するときの処理フローを示す。
【００３６】
まず、印刷データストリームの先頭のタグを読み込み（Ｓ５１）、そのタグを識別する（Ｓ５２）。タグ＃１の場合は、後続の印刷データは簡易圧縮した２値形式のデータであるから、ＲＯＭ６（図１参照）内の標準プログラムに含まれている簡易伸張ルーチンでその印刷データを伸張して２値形式の印刷データにする（Ｓ５３）。また、タグ＃２の場合は、後続の印刷データは本圧縮した２値形式のデータであるから、既にＳＩＭＭ３内にダウンロードされている伸張プログラム＃１を実行して、その印刷データを伸張して２値形式の印刷データにする（Ｓ５４）。こうして２値形式の印刷データを得た後、標準の印刷動作プログラムを用いて、その印刷データから２値形式のイメージデータを生成してＲＡＭ５又はＳＩＭＭ３内のイメージバッファに展開する（Ｓ５６）。そして、この２値イメージデータをイメージバッファから印刷メカニズム及び駆動回路７に転送して実際の印刷を行なう（Ｓ５７）。
【００３７】
一方、タグ＃３の場合は、後続の印刷データは本圧縮した多値形式のデータであるから、既にＳＩＭＭ３内にダウンロードされている２値化・伸張プログラム＃２を用いて、その印刷データをまず伸張し、続いて、その伸長した印刷データに２値化処理を施して２値形式のイメージデータを生成しイメージバッファに展開する（Ｓ５５、Ｓ５６）。そして、この２値イメージデータをイメージバッファから印刷メカニズム及び駆動回路７に転送して実際の印刷を行なう（Ｓ５７）。
【００３８】
以上説明した実施形態は例示であり、また、上に説明した具体的な構成、処理、機能なども例示に過ぎず、それのみに本発明を限定するものではない。本発明は、上に説明した実施形態以外の種々の形態でも実施することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るプリントシステムの構成図である。
【図２】プリンタドライバとプリンタ間の通信タイムチャートである。
【図３】第１の実施形態にかかるプリンタドライバの処理を示すフローチャートである。
【図４】第２の実施形態にかかるプリンタドライバのダウンロード処理を示すフローチャートである。
【図５】第２の実施形態にかかるプリンタドライバの印刷データ送信処理を示すフローチャートである。
【図６】プリンタドライバから転送されるデータ構成を示す説明図である。
【図７】プリンタ側の処理を示すフローチャートである。
【符号の説明】
１  ホストコンピュータ
２  ホストＩ／Ｆ
３  ＳＩＭＭ
４  ＣＰＵ
５  ＲＡＭ
６  ＲＯＭ
７  印刷メカニズム及びその駆動回路
１０  プリンタ
【図１】
0003815633.tif 000002
【図２】
0003815633.tif 000003
【図３】
0003815633.tif 000004
【図４】
0003815633.tif 000005
【図５】
0003815633.tif 000006
【図６】
0003815633.tif 000007
【図７】
0003815633.tif 000008