(57)【要約】【課題】簡単でしかも低コストな方法で低機能のプリンタを高機能なプリンタと同等に使用できるようにする。【解決手段】ネットワーク4に接続でき且つポストスクリプトなどの高機能言語を理解できる高機能プリンタ2の下流に、ネットワーク非対応で且つ高機能言語が理解できない低機能プリンタ3A,3B,...がバスやケーブルを介して接続され、一つのプリンタグループを構成する。高機能プリンタ2は、下流側の低機能プリンタ3A,3B,...の性能を調べて記憶し、そして、このプリンタグループ全体の性能をネットワーク4上のホストに通知する。ホスト内のプリンタドライバは、通知された性能に基づいてユーザインタフェース画面を作成し表示する。ホストから印刷ジョブデータを受けると、高機能プリンタ2は、そのジョブを処理するのに適したプリンタをグループ内から選択し、そのプリンタにジョブデータを転送する。【選択図】図１
2006146946.tif 000002
【特許請求の範囲】
【請求項１】
第１の言語で書かれた第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換する代理サーバと、
前記代理サーバより前記第２の印刷コマンドを受信して解釈して印刷を行う、少なくとも１つのプリンタと、
を有する印刷システム。
【請求項２】
第１の言語で書かれた第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換する過程と、
前記変換された第２の印刷コマンドを、前記第２の言語を解釈することができるプリンタに転送する過程と、
を有する印刷方法。
【請求項３】
第１の言語で書かれた第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換するコマンド変換手段と、
前記第２の言語が解釈できるプリンタと接続することができ、前記コマンド変換手段からの前記第２の印刷コマンドを前記プリンタへ転送する転送手段と
を有する代理サーバ。
【請求項４】
第１の言語が解釈できるホスト装置と第２の言語が解釈できるプリンタとに接続することができるものであって、
前記プリンタから前記第２の言語で書かれたプリンタステータスを示す第１のステータスメッセージを受信し、前記第１のステータスメッセージを前記第１の言語で書かれた第２のステータスメッセージに変換する変換手段と、
前記変換手段からの前記第２のステータスメッセージを前記ホスト装置へ転送する転送手段とを有する代理サーバ。
【請求項５】
第１の言語で書かれた第１の印刷コマンドを解釈して印刷を行う印刷手段と、
前記第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換するコマンド変換手段と、
少なくとも１つのプリンタと接続することができ、前記コマンド変換手段からの前記第２の印刷コマンドを、接続された前記プリンタへ転送する転送手段と
を有するプリンタ。
【請求項６】
前記コマンド変換手段が、
前記第１の印刷コマンドを解釈して少なくともプリミティブのラスタイメージのレンダリングを行うレンダリング手段と、
このレンダリング手段からの前記ラスタイメージを含むデータを前記第２の言語の印刷コマンドのフォーマットに組み込むことにより前記第２の印刷コマンドを作成するコマンド作成手段と
を有する請求項５記載のプリンタ。
【請求項７】
所定の複数の言語の中から前記第２の言語を選択する手段を更に有する請求項５記載のプリンタ。
【請求項８】
複数のプリンタと接続可能であり、
接続された前記複数のプリンタの中から、印刷を実行させるプリンタを選択する選択手段と、
前記選択されたプリンタの解釈できる言語を判定する判定手段とを有し、
前記第１の印刷コマンドを前記判定された言語の印刷コマンドに変換して、前記選択されたプリンタに転送する請求項５記載のプリンタ。
【請求項９】
前記第１の言語は画像表現能力の高い高機能言語であり、前記第２の言語は画像表現能力の低い低機能言語である請求項５記載のプリンタ。
【請求項１０】
前記印刷手段と前記転送手段の一方を選択的に働かせる選択手段を更に備えた請求項５記載のプリンタ。
【請求項１１】
前記選択手段が、前記第１の印刷コマンドが宛て先のプリンタを指定しているとき、前記宛て先プリンタが自分自身であれば前記印刷手段を働かせ、前記宛て先プリンタが前記接続されたプリンタであれば前記転送手段を働かせる請求項１０記載のプリンタ。
【請求項１２】
モノクロ印刷専用のプリンタであって、
前記選択手段が、前記第１の印刷コマンドが印刷色を指定しているとき、前記印刷色がモノクロであれば前記印刷手段を働かせ、前記印刷色がカラーであれば前記転送手段を働かせる請求項１０記載のプリンタ。
【請求項１３】
第１の言語が解釈できる第１の外部装置と第２の言語が解釈できる第２の外部装置とに接続することができるプリンタであって、
前記第１の外部装置から受信した第１の言語で書かれた情報を第２の言語で書かれた情報に変換して前記第２の外部装置へ転送する第１の変換転送手段と、
前記第２の外部装置から受信した第２の言語で書かれた情報を第１の言語で書かれた情報に変換して前記第１の外部装置へ転送する第２の変換転送手段と、
の内の少なくとも一方の変換転送手段を備えたプリンタ。
【請求項１４】
ホスト装置と他のプリンタとに接続することができるプリンタであって、
前記ホスト装置に対して前記他のプリンタの代理として働く代理サーバを備えたプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、デジタルプリンタ及びプリンタの利用技術に関し、特に、言語解釈能力、ネットワーク通信機能又はレンダリング能力などの点で性能の異なる複数のプリンタを調和的に使用したり、性能の劣るプリンタを高性能のプリンタと同等に使ったり、複数のプリンタ間で足りない性能を補い合ったりするための技術に関する。
【背景技術】
【０００２】
ホストコンピュータからプリンタに供給される印刷コマンドを記述するための言語として種々のものが開発されている。その中には、例えば米国アドビシステムズ社のページ記述言語「ポストスクリプト（PostScript)」（商標）のように、表現能力が非常に多才であって、他の言語では記述できないような複雑なグラフィックスを自在に表現できるものが存在する。このような高機能の高級言語を利用すれば、複雑なグラフィックスを美しく且つ高速に印刷することができる。そのためには、その高機能言語を解釈してレンダリングできる機能をプリンタが持っていなくてはならない。しかし、ポストスクリプトのような高機能言語を解釈できるプリンタは、より低機能な言語しか理解できないプリンタに比較して価格がかなり高い。そのため、例えばＬＡＮ等の通信ネットワーク上に複数台のプリンタを接続して使用するような場合、全てのプリンタを高機能言語対応にすると、導入コストが非常に高くなってしまう。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
さらに、ネットワークに複数のプリンタを接続した場合、次の様な問題も存在する。すなわち、異なる種類のプリンタ（例えばページプリンタとシリアルプリンタ）や、異なるメーカのプリンタを複数台揃えたとすると、プリンタ毎にプリンタが解釈できる言語が異なる。そのため、ホストコンピュータのユーザは、使用したいプリンタを予め決めて、そのプリンタに合った言語（実際にはプリンタドライバ）を選択しなければならない。しかし、ユーザにとっては、印刷品質さえ保証されればどのプリンタを使用しても構わないであろうから、プリンタの種類やプリンタのドライバを気にせずに、統一的な方法で種々のプリンタを利用できる方が便利である。
【０００４】
従来の通信ネットワーク、例えばインターネットでは、通常１個の端末に対して１個のＩＰアドレスが割り当てられ、ＩＰアドレスとＴＣＰ／ＩＰ実行機能とを個々に持ったネットワーク対応端末同士の交信がネットワークの基本である。
【０００５】
そのため、例えば職場内の全てのプリンタをインターネットに導入する場合、既存のプリンタの中にはインターネットに直接接続できない機種も多いため、それら多くのプリンタに高価なネットワーク・アダプタを導入しなければならない。そのための経済上の負担は非常に大きい。また、従来のプリンタの中にはネットワーク対応にすることが不可能な機種も多い。
【０００６】
この問題をより一般化した表現で述べれば、従来は、ネットワーク非対応の端末もネットワーク対応の端末も含めて、複数台の端末をまとめて１グループを構成し（例えば、職場内の全てのプリンタを１グループにまとめて）、グループ全体をネットワークに導入できるような中継機能をもった手段が提供されていない、ということである。
【０００７】
ところで、ネットワークにおける中継機能に関しては、従来の回線上には、インターネット上を転送されるデータを目的の端末まで届けるためのルーティング（通信経路の選択、隣接ネットワーク間との変換処理、ネットワークのＩＰアドレスの管理機能等）と呼ばれる中継動作を行うルータが存在する。しかし、このルータは、あくまでインターネット内でのドメイン間の中継を行うものであるから、上述したようなネットワーク非対応端末を含んだグループをネットワークに取込みたいという課題を解決する手段にはなり得ない。
【０００８】
インターネットにおけるＷＷＷサービスで提供される例えばＨＴＭＬで書かれた文書は、テキスト文字の中に音声、動画、静止画などの他種類のリソースが埋め込まれた複合文書である。また、インターネットの電子メールでは、ＭＩＭＥによって、テキスト文字に音声、動画、静止画などの他のリソースを添付した複合文書を送信することができる。このような複合文書には、例えば、文字ファイルはテキスト形式、ＨＴＭＬ形式、またはそれを作成したアプリケーション独自のファイル形式などで、静止画はＪＰＥＧ形式またはＧＩＦ形式などで、動画はＭＰＥＧ形式などで、というように、複数種のリソースがそれぞれ独自のファイル形式で組み込まれている。
【０００９】
従来のプリンタは、ある特定のプリンタ制御言語に対応したレンダラ（レンダリングつまり文書の印刷イメージの作成を行うモジュール）を備えているだけに過ぎない。そのため、従来のプリンタをホストコンピュータに接続した従来の印刷システムにおいては、上記のような複合文書を印刷する場合、ホストコンピュータが、その複合文書に含まれる各リソースのファイル形式を解釈し、その文書データをプリンタの理解できる特定のプリンタ制御言語で表現したデータに変換してプリンタに送っている。プリンタは、その特定のプリンタ制御言語で表現したデータを解釈して、その文書の印刷イメージを作成して印刷を行う。
【００１０】
このように、従来のプリンタは特定のプリンタ制御言語で表現されたデータしか理解できないから、複合文書データを印刷しようとする場合、ホストコンピュータで複合文書に含まれる各種のファイル形式を解釈してプリンタ制御言語のデータに変換しなければならない。しかし、特にインターネットのようなネットワークに接続できるネットワーク対応プリンタの場合、ＴＣＰ／ＩＰのようなネットワーク通信プロトコルの実行機能を有しているのであるから、その通信プロトコルで伝送することのできる複合文書をプリンタが解釈して印刷できれば、非常に便利である。
【００１１】
従って、本発明の目的は、言語解釈能力、ネットワーク通信機能又はレンダリング能力などの点で性能の異なる複数のプリンタをより便利に経済的に利用できるようにすることにある。
【００１２】
本発明の別の目的は、性能の劣るプリンタを、性能の優れたプリンタのように使用できるようにするための経済的な技術を提供することにある。
【００１３】
本発明のまた別の目的は、解釈できる言語の異なる複数台のプリンタを、単純に一つの言語で統一的に制御できるようにすることにある。
【００１４】
本発明の別の目的は、高機能言語を解釈できないプリンタを、高機能言語を解釈できるプリンタのごとくに使用できるようにすることにある。
【００１５】
本発明のまた別の目的は、簡単でしかも低コストな方式で複数のプリンタを自由に利用できるようにすることにある。
【００１６】
本発明の更に別の目的は、単一のプリンタドライバで、複数の異なる機種のプリンタに対して設定を行えるようにすることにある。
【００１７】
本発明の更にまた目的は、単独ではネットワーク接続が難しいような装置、例えばネットワーク非対応のプリンタ、の１台以上をまとめてネットワークに接続できるようにすることにある。
【００１８】
本発明のまた別の目的は、簡単でしかも低コストな方式でネットワーク非対応プリンタをネットワークに導入できるようにすることにある。
【００１９】
本発明の更に別の目的は、ファイル形式の異なる複数のリソースを含んだ複合文書を受信して印刷することができるプリンタ、又はそれを実質的に可能とする環境を提供することにある。
【課題を解決するための手段】
【００２０】
本発明の第１の側面に従う印刷システムは、第１の言語で書かれた第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換する代理サーバと、代理サーバより第２の印刷コマンドを受信して解釈し印刷を行う、少なくとも１つのプリンタとを備えている。
【００２１】
このシステムでは、代理サーバにプリンタが接続される。接続形態は、代理サーバ１台に対しプリンタ１台でもよいし、代理サーバ１台にプリンタ複数台でもよいし、代理サーバ複数台にプリンタ複数台でもよいし、専用ケーブルで接続してもよいし、ネットワークを介して接続してもよい。代理サーバは例えばポストスクリプトような第１の言語の印刷コマンドを受けると、これをプリンタが解釈できる第２の言語の印刷コマンドに変換して、プリンタに送出する。プリンタは受信した第２言語の印刷コマンドを解釈して印刷を行う。これにより、プリンタは、実際には第１の言語が解釈できなくても、外部から視ると第１の言語に対応したプリンタと実質的に同等に見える。
【００２２】
尚、代理サーバはプリンタであってもよく、その方がむしろ好ましい。
【００２３】
本発明の第２の側面に従う印刷方法は、第１の言語で書かれた第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換する過程と、変換された第２の印刷コマンドを、第２の言語を解釈することができるプリンタに転送する過程とを有する。
【００２４】
本発明の第３の側面に従う代理サーバは、第１の言語で書かれた第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換するコマンド変換手段と、少なくとも１つのプリンタと接続することができ、コマンド変換手段からの第２の印刷コマンドを、接続されたプリンタへ転送する転送手段と備えている。
【００２５】
本発明の第４の側面に従う代理サーバは、第１の言語が解釈できるホスト装置と第２の言語が解釈できるプリンタとに接続することができるものであって、プリンタから第２の言語で書かれたプリンタステータスを示す第１のステータスメッセージを受信し、この第１のステータスメッセージを第１の言語で書かれた第２のステータスメッセージに変換する変換手段と、この変換手段からの第２のステータスメッセージをホスト装置へ転送する転送手段とを有する。
【００２６】
本発明の第５の側面に従うプリンタは、第１の言語で書かれた第１の印刷コマンドを解釈して印刷を行う印刷手段と、第１の印刷コマンドを他の第２の言語で書かれた第２の印刷コマンドに変換するコマンド変換手段と、第２の言語が解釈できる少なくとも１つの別のプリンタと接続することができ、コマンド変換手段からの第２の印刷コマンドを、接続されたプリンタへ転送する転送手段とを備えている。
【００２７】
好適な実施の形態では、本発明のプリンタは、第１の印刷コマンドを解釈してプリミティブのラスタイメージのレンダリングを行い、このレンダリングで得られたラスタイメージを含むデータを第２の言語の印刷コマンドのフォーマットに組み込むことにより第２の印刷コマンドを作成する。そのため、このプリンタに接続された別のプリンタによる印刷には、第１の言語の表現能力が活かされることになる。従って、第１の言語がポストスクリプトのような高機能な言語である場合は、その高い表現能力を活かした高度な印刷結果が得られる。
【００２８】
また、この実施形態では、本発明のプリンタは、所定の複数の言語の中から第２の言語を選択する手段を有していて、このプリンタに別のプリンタが新規に接続されたり、変更されたり、追加されたりした場合に、その接続されたプリンタに応じて第２言語を選定する。従って、接続されているプリンタに確実に印刷を実行させることができる。
【００２９】
また、この実施形態では、本発明のプリンタは複数の他のプリンタと接続可能であり、接続された複数プリンタの中から印刷を実行させるプリンタを選択し、選択したプリンタの解釈できる言語を判定し、第１の印刷コマンドを判定した言語の印刷コマンドに変換して、選択したプリンタに転送する。印刷を実行させるプリンタの選択は、例えば、印刷コマンドが宛て先プリンタを指定していれば、その指定されたプリンタを選択する、或は、宛て先指定が無ければ、待機状態のプリンタの中から適当なものを選択するなどの方法がとれる。いずれにせよ、選択したプリンタの対応言語を判定してその言語にコマンドを変換するので、選択したプリンタに確実に印刷を行わせ得ると共に、複数台のプリンタを第１言語で統一的に制御できる。
【００３０】
また、この実施形態では、第１の言語はポストスクリプトのように画像表現能力の高い高機能言語であり、一方、第２の言語は画像表現能力の低い低機能言語である。従って、１台の高機能言語対応プリンタがあれば、これに高級言語非対応の安い低機能をプリンタを接続して、高機能言語対応の印刷システムを構築することができる。
【００３１】
更に、この実施形態では、本発明のプリンタは、自分自身で印刷するか、他のプリンタへ変換コマンドを転送するかを選択するための選択手段を備えている。例えば、受信した印刷コマンドが宛て先のプリンタの指定を含んでいて、その宛て先プリンタが自分自身であれば自分自身で印刷を行い、一方、宛て先プリンタ他のプリンタであればそのプリンタに変換コマンドを転送する。或は、本発明のプリンタがモノクロ印刷専用のプリンタである場合、受信した印刷コマンドがモノクロ印刷を指定していれば自分自身で印刷し、カラーを指定していれば、カラー印刷ができる他のプリンタを選んで、そのプリンタに変換コマンドを転送する。後者の場合、本発明のプリンタが例えばポストスクリプト対応のモノクロレーザプリンタであった場合、これに安価なカラープリンタ（例えばカラーインクジェットプリンタ）を接続することによって、ポストスクリプト対応のカラープリンタとほぼ同等の機能を安価に獲得できることになる。
【００３２】
本発明の第６の側面に従うプリンタは、第１の言語が解釈できる第１の外部装置と第２の言語が解釈できる第２の外部装置とに接続することができるものであって、第１の外部装置から受信した第１の言語で書かれた情報を第２の言語で書かれた情報に変換して第２の外部装置へ転送する第１の変換転送手段と、第２の外部装置から受信した第２の言語で書かれた情報を第１の言語で書かれた情報に変換して第１の外部装置へ転送する第２の変換転送手段との内の少なくとも一方の変換転送手段を備えている。
【００３３】
本発明の第７の側面に従うプリンタは、ホスト装置と他のプリンタとに接続することができるものであって、ホスト装置に対して他のプリンタの代理として働く代理サーバを備えている。
【００３４】
本発明の第８の側面に従うローカル・ルータは、通信ネットワークに接続でき、このネットワーク上での複数の場所を示す複数のネットワーク・アドレスを有していて、ネットワークから到来した上記複数のネットワーク・アドレスのいずれかに宛てた通信メッセージに対して応答するネットワーク通信手段と、上記複数のネットワーク・アドレスのいずれかに宛てた通信メッセージに含まれるデータを所定の複数の転送先へ転送することができ、その通信メッセージのネットワーク・アドレスに応じてそのデータの転送先を選択するデータ転送手段とを備える。
【００３５】
本発明のローカル・ルータに、データ転送先としてネットワーク非対応の装置（例えばプリンタ）を接続しておけば、このローカル・ルータがネットワークに対する通信処理を、それらネットワーク非対応装置に代行して行い、ネットワークから受信したデータをネットワーク非対応装置へ転送する。ネットワーク側から見れば、ネットワーク非対応装置がネットワーク対応装置と同様に見える。このように、ネットワーク非対応装置をネットワークに導入することができる。
【００３６】
本発明の第９の側面に従うネットワーク・プリンタは、上記のローカル・ルータの機能を持つとともに、上記データ転送先の中の少なくとも一つとして、自分自身の印刷処理手段を有している。
【００３７】
本発明の第１０の側面に従うネットワーク・プリンタは、通信ネットワーク及び他の装置と接続でき、自己及び自己に接続した他の装置を含む装置グループに割り当てられた全てのネットワーク・アドレスを有して、ネットワーク上のホストからの上記装置グループに属する装置の全てのネットワーク・アドレスのいずれかを含む通信に対して応答して、その装置グループに属する複数の装置とホストとの交信を中継する手段を備えている。
【００３８】
これら本発明の第９及び第１０の側面に従うネットワーク・プリンタによれば、これに他のネットワーク非対応の装置（例えばプリンタ）を接続しておけば、このネットワーク・プリンタは、自己のためのネットワークとの通信処理は勿論、他のネットワーク非対応装置のためのネットワークとの通信処理も全て代行して行い、通信のアドレスに応じてデータを自己で処理したり他のネットワーク非対応装置へ転送したりする。従って、このネットワーク・プリンタに加えて、単独ではネットワーク接続できないネットワーク非対応装置もグループとしてネットワークに取込み、物理的には１台のネットワーク・プリンタでありながら複数のネットワーク・アドレスをもった複数台のネットワーク対応装置の如くに機能することができる。
【００３９】
本発明の第１１の側面に従うネットワーク・プリンタは、ホストから通信ネットワークを通じて印刷要求を受信し、受信した印刷要求を複数の態様で処理することができ、前記受信した印刷要求の内容に応じて、その印刷要求を処理する態様を選択する手段を備えている。このネットワーク・プリンタによれば、ホストから受信した印刷要求の内容（例えば、印刷要求の宛て先装置を示すネットワークアドレス、印刷要求の宛て先アプリケーションを示すポートアドレスなど）に応じて、その印刷要求の処理態様を複数の処理態様の中から選択する（例えば、セキュリティ・レベルを選択する、用紙サイズを選択する、モノクロ印刷かカラー印刷かを選択する、そのネットワークプリンタに他のプリンタが接続されている場合にその印刷要求の印刷を行うプリンタを選択するなど）ことができる。従って、物理的に１台のネットワーク・プリンタでありながら、ホストから見ると、複数台のネットワーク対応プリンタの如くに機能することができる。
【００４０】
本発明のローカル・ルータ及びプリンタの上述した特徴的機能手段は、典型的にはコンピュータを用いて実現することができる。そのような機能手段としてコンピュータを動作させるためのコンピュータプログラムは、ディスク型記憶装置や半導体記憶装置や通信回線などの種々の媒体からコンピュータに提供することができる。
【００４１】
ところで、本明細書でいう「ネットワーク・アドレス」という用語は、その意味範疇に、ネットワーク上のノードを指定するアドレスを含むことは勿論であるが、それだけでなく、あるノードの装置内の場所、ポート、プロセス又は処理種別などを指定する情報も含むということに注意されたい。例えば、ＴＣＰ／ＩＰプロトコルでは、そのネットワーク層で処理されるＩＰアドレスはネットワーク・アドレスの典型例ではあるが、それだけでなく、例えばトランスポート層で処理されるポート番号や、アプリケーション層で処理される判別子なども本明細書でいうネットワーク・アドレスの一種である。
【００４２】
本発明の第１２の側面に従うプリンタは、ホストと接続するためのホスト接続手段と、他のプリンタと接続するためのプリンタ接続手段と、前記ホストから受信した印刷ジョブデータを前記接続された他のプリンタに転送する転送手段とを備える。このプリンタをホストに接続し、このプリンタに他のプリンタを接続することによって、このプリンタ及び他のプリンタを含む複数台のプリンタをホストが利用することができるようになる。
【００４３】
本発明のプリンタは、望ましくは、ネットワークに接続してネットワーク上のホストと通信するネットワーク接続手段を有することができる。それにより、ネットワーク上のホストは、ネットワークを通じて他のプリンタも利用できる。つまり、他のネットワーク非対応プリンタをネットワークに導入することができる。
【００４４】
本発明のプリンタは、望ましくは、接続された他のプリンタの性能を調査する性能調査手段をさらに備えることができる。それにより、調査した性能に基づいて他のプリンタを管理することができるようになる。その管理機能の具体的内容には、例えば、調査した他のプリンタの性能と自己の性能とをホストに通知する性能通知機能や、他のプリンタの性能と自己の性能とに基づいて、ホストからの印刷ジョブデータを自己及び他のプリンタからなるプリンタグループ内のどのプリンタで処理すべきかを判断して、選んだプリンタにジョブデータを転送する判断・転送機能などが考えられる。性能通知機能を設けると、ホストのプリンタドライバ側でプリンタグループの性能に応じた対応ができるようになる。判断・転送機能を設けると、ホスト側でプリンタドライバ側で特にプリンタを指定しなくても、印刷ジョブを処理するのに適したプリンタで自動的に印刷が行われる。勿論、プリンタドライバが指定したプリンタへジョブデータを転送する機能を本発明のプリンタに設けることも可能である。
【００４５】
本発明のプリンタは、上述した各種手段を当初から備えているものであってもよいが、必ずしもそうである必要はない。例えば、上述の手段を元々は備えていないプリンタに、上述の手段を備えたオプション品を取り付けることによって、あるいは、プリンタ内のマイクロコンピュータに外部の媒体から上述した手段のためのコンピュータプログラムをロードすることによって、あるいは、オプション品とプログラムロードとを組み合わせることによって、本発明のプリンタを実現することも可能である。
【００４６】
本発明のプリンタをモノクロページプリンタとして実施すると、これにカラーインクジェットプリンタを接続することによって、高速なモノクロ印刷と高品質なカラー印刷とが可能なプリントシステムが廉価に実現できる。また、本発明のプリンタを例えばアドビシステムズ社のポストスクリプトのような高表現機能言語対応のプリンタとして実施し、これに高表現機能言語非対応の標準的プリンタを接続し、かつ、本発明のプリンタにおいて標準的プリンタのためのレンダリングを行うようにすると、高表現機能言語対応のプリントシステムが廉価に実現できる。
【００４７】
本発明の第１３の側面に従うプリンタ管理装置は、ホストと接続するためのホスト接続手段と、プリンタと接続するためのプリンタ接続手段と、ホストから受信した印刷ジョブデータを前記接続されたプリンタに転送する転送手段とを備える。このプリンタ管理装置にホストと１台又は複数台のプリンタを接続することによって、ホストからそれらプリンタを利用することが可能となる。このプリンタ管理装置にさらにネットワーク接続手段を設ければ、ネットワーク非対応プリンタをネットワークに導入することができるようになる。このプリンタ管理装置に、上述した性能調査手段などををさらに設ければ、一層望ましい。
【００４８】
本発明の第１４の側面に従うプリンタは、ホスト又は他のプリンタのような上流側装置と接続するための上流接続手段と、別の他のプリンタのような下流側装置と接続するための下流接続手段と、上流側装置から受信した印刷ジョブデータを下流側装置に転送する転送手段とを備える。このプリンタを複数台数珠つなぎにして、最上流のプリンタをホストと接続することにより、それら複数台のプリンタをホストは利用することができる。
【００４９】
望ましくは、少なくとも最上流のプリンタにネットワーク接続手段を設けることができる。これにより、その下流側のネットワーク非対応プリンタをネットワークに導入することができる。
【００５０】
また、望ましくは、数珠つなぎの各プリンタに、それぞれの下流側プリンタの性能を調査する性能調査手段を設けることができる。
【００５１】
このプリンタも、元々上記手段を備えたものでもよいし、元々備えないプリンタにオプション品やプログラムロードによって上記手段を付与することで実現してもよい。
【００５２】
本発明の第１５の側面に従うプリンとシステムは、第１のプリンタに他のプリンタを接続してなるプリンタグループと、第１のプリンタ用のプリンタドライバを搭載したホストとを備え、第１のプリンタは、ホストから印刷ジョブデータを受信する受信手段と、受信した印刷ジョブデータをプリンタグループ内のいずれかのプリンタへ転送する転送手段とを有する。このシステムによれば、ホストはプリンタグループ内のプリンタを利用することができる。
【００５３】
第１のプリンタはネットワーク接続手段を有することが望ましく、これにより、プリンタグループ全体をネットワークに導入することができる。
【００５４】
第１のプリンタはさらに、他のプリンタの性能を調査する性能調査手段を有することが望ましい。
【００５５】
本発明の第１６の側面に従うプリンタドライバは、プリンタに対して性能通知要求を発する手段と、プリンタから性能通知要求を受けて、通知された性能に応じたユーザインタフェース画面を作成し表示する手段と、ユーザインタフェース画面でユーザが選択した設定値を指定したデータをプリンタへ送信する手段とを備える。このプリンタドライバによれば、プリンタの性能に応じて柔軟な対応ができる。特に、このプリンタドライバは、本発明のプリントステムのプリンタグループにおける第１のプリンタ用のプリンタドライバとして好適である。
【００５６】
また、この本発明のプリンタドライバを一つホストにインストールしてけば、使用したい全てのプリンタ機種の各々の専用ドライバをホストにインストールする必要が無くなる。本発明のプリンタドライバが、それ一つで、必要に応じて各プリンタから性能通知を受けて、動的に各プリンタ用のドライバに変身して表示および設定処理を行うからである。
【００５７】
本発明の第１７の側面に従うプリンタは、複合文書データを受信又は生成する複合文書手段と、所定の複数のファイル形式の各々に対応し、記複合文書データに含まれているリソースのうち、それぞれが対応するファイル形式のリソースのレンダリングを行う複数のレンダラと、この複数のレンダラのレンダリング結果を統合して最終的な印刷イメージを作成するイメージコンポーザと、その印刷イメージを印刷する印刷エンジンとを備える。
【００５８】
このプリンタは複合文書データの印刷が可能であり、特に、インターネットのようなネットワークに接続できるネットワーク対応プリンタとして構成されると、ネットワーク上を伝送される複合文書をそのまま受信して印刷できるので実用上のメリットが大きい。
【００５９】
このプリンタは望ましくは、他の機器とも接続され、そして、複合文書データに含まれるリソースのファイル形式を識別し、自己のレンダラのいずれもが対応しない非対応ファイル形式が含まれていた場合、その非対応ファイル形式のリソースを、他の機器に転送してレンダリングを依頼し、そして、その機器からレンダリング結果を受けてイメージコンポーザ又は自己のレンダラに渡す文書アナライザをさらに備えることができる。これにより、自分では対応できないファイル形式が含まれている複合文書も完全に印刷できる。
【００６０】
この場合、他の機器がレンダリングできるファイル形式を示した機器情報を有していて、上記文書アナライザが、その機器情報を参照して、非対応ファイル形式のリソースをレンダリングできる機器を選択するようになっていると、確実にレンダリングができるので好ましい。さらに、その機器情報を作成する手段を備えていると、他の機器の構成変更やレンダリング能力の変更などにも対応できるので一層好ましい。
【００６１】
また、自プリンタでレンダリングできないファイル形式のリソースについては、その部分を空白にして又は適当な代理イメージに置き換えて印刷する機能や、ユーザの指定したファイル形式のリソースだけをレンダリングして印刷する機能などを、このプリンタに付加してもよい。
【００６２】
本発明の第１８の側面に従うプリンタは、１台以上の他の機器と通信可能に接続する通信インタフェースと、複合文書データを受信又は生成する複合文書手段と、この複合文書データに含まれるリソースのファイル形式を識別し、少なくとも一つのファイル形式のリソースを、他の機器の内の選択された機器に転送してレンダリングを依頼し、そして、その機器からレンダリング結果を受ける文書アナライザと、そのレンダリング結果から最終的な印刷イメージを作成するイメージコンポーザと、その印刷イメージを印刷する印刷エンジンとを備える。
【００６３】
このプリンタは、自分では複合文書をレンダリングする能力がなくても、他の機器のレンダリング能力を利用することで、複合文書を印刷することが可能である。勿論、このプリンタも、自分で幾つかのファイル形式に対応したレンダラを備えることもできる。このプリンタも、インターネットのようなネットワークに接続できるネットワーク対応プリンタとして構成されると、ネットワークから複合文書をそのまま受信でき、かつ、ネットワーク上の種々の機器を利用できるので、実用上のメリットが高い。
【００６４】
また、他の機器でも自プリンタでもレンダリングできないファイル形式のリソースについては、その部分を空白にして又は適当な代理イメージに置き換えて印刷する機能や、ユーザの指定したファイル形式のリソースだけをレンダリングして印刷する機能などを、このプリンタに付加してもよい。
【００６５】
本発明の第１９の側面に従うプリンタサーバは、１台以上のプリンタを含む他の機器と通信可能に接続する通信インタフェースと、複合文書データを受信又は生成する複合文書手段と、その複合文書データを印刷すべきプリンタを他の機器の中から選択する手段と、その複合文書データに含まれるリソースのファイル形式を識別し、選択されたプリンタがレンダリングできるファイル形式のリソースをその選択されたプリンタに転送し、かつ、その選択されたプリンタがレンダリングできないファイル形式のリソースについては、これをレンダリングした結果をその選択されたプリンタに供給する文書アナライザとを備える。
【００６６】
このプリンタサーバをプリンタと組み合わせて用いれば、そのプリンタが自分では複合文書をレンダリングする能力がなくても、他の機器のレンダリング能力を利用することで、複合文書を印刷することが可能である。特に、例えば職場において、このプリンタサーバと職場の全プリンタとをＬＡＮなどで接続することにより、個々のプリンタを複合文書対応プリンタにしなくても、全てのプリンタで複合文書が印刷できるようになる。
【００６７】
このプリンタサーバは、上述した本発明のプリンタに組み込まれた形態で実施されてもよい。そのようにした本発明のプリンタは、これに他のプリンタと接続しておくと、自分でも複合文書が印刷できるし、他のプリンタに複合文書を印刷させることもできるので、特に、ＬＡＮなどに接続しておくと実用上のメリットが大きい。
【００６８】
本発明のプリンタやプリンタサーバの主要な構成要素であるレンダラや文書アナライザは、典型的にはプリンタ内やプリンタサーバ内のコンピュータを用いて実施することができるが、そのためのコンピュータプログラムは、各種半導体メモリ、各種ディスク型ストレージ、通信ネットワークなどの種々の媒体を通じてそのコンピュータにインストール又はロードすることができる。
【００６９】
本発明は、上述したプリンタやプリンタサーバに他の機器を接続してなる印刷システムも提供する。この印刷システムは、ホストコンピュータとプリンタとを１対１でケーブル接続した小規模な形態から、ＬＡＮやＷＡＮのような形態、さらにはインターネットのような大規模ネットワークの形態まで、ざまざまな形態で実施することができ、よって、その応用範囲は極めて広い。
【発明を実施するための最良の形態】
【００７０】
図１は本発明の印刷システムの第１の実施の形態を示した機能ブロック図である。
【実施例１】
【００７１】
ホストコンピュータ１は、例えばパーソナルコンピュータであって、所定の一つの高機能言語（例えばポストスクリプト）で書かれた印刷コマンドを送出する。このホストコンピュータ１に高機能プリンタ２が接続され、この高機能プリンタ２に低機能プリンタ３が接続されている。
【００７２】
高機能プリンタ２は、ホストコンピュータ１からの高機能言語で書かれた印刷コマンドを解釈して印刷すべきイメージをレンダリングするレンダリング機能と、そのレンダリングしたイメージを自分自身で印刷する印刷機能と、そのレンダリングしたイメージ（この場合のイメージは、最終的なバンドイメージ又はページイメージでもよいが、処理効率の点では中間コード形式のイメージの方が好ましい）を低機能プリンタ２が解釈できる所定の低機能言語で書かれた印刷コマンドの形式に仕立てて低機能プリンタ２に転送する転送機能と、この２つの機能を自動的に選択する選択機能（例えば、印刷コマンドの宛て先プリンタが自分自身であれば印刷機能を、低機能プリンタ３であれば転送機能を選択する）とを備えている。更に、高機能プリンタ２は、自己のプリンタステータスを高機能言語で書いたステータスメッセージの形でホストコンピュータ１へ通知するステータスリプライ機能と、低機能プリンタ３のプリンタステータスを低機能言語で書いたメッセージを低機能プリンタ３から受信して、これを高機能言語のステータスメッセージの形に変換してホストコンピュータ１へ送る代理ステータスリプライ機能とを備えている。
【００７３】
低機能プリンタ３は、高機能言語は解釈できないが、上記した低機能言語の印刷コマンドであれば、これを解釈して印刷が行えるプリンタである。低機能プリンタ３は、自己のプリンタステータスを示す低機能言語で書かれたメッセージを高機能プリンタ２へ送るステータスリプライ機能も有している。ここで、低機能言語は、高機能言語よりは表現能力が劣る言語であるが、これら低機能言語しかサポートしていない低機能プリンタ３は、通常、高機能言語をサポートしている高機能プリンタ２に比較して価格がかなり安い。
【００７４】
本実施形態の動作について説明する。ホストコンピュータ１からの高機能言語で書かれた印刷コマンドが高機能プリンタ２に受信されると、高機能プリンタ２はその印刷コマンドを解釈する。解釈の結果として、高機能プリンタ２は、まずその印刷コマンドの宛て先を認識し、そして、印刷すべき各ページ内の個々のプリミティブ（画像要素；つまり、個々の文字、図形、模様、又はそれらの空間的に連結した集合など）をレンダリングして各ページの中間コードを作成して自分自身のＲＡＭ（図示せず）に一旦保存する。印刷コマンドの宛て先が高機能プリンタ２である場合、続いて高機能プリンタ２はＲＡＭ内の中間コードから完全なバンドイメージを作成し、これを自分自身の印刷エンジン（図示せず）に転送して自分自身で印刷を行う。一方、印刷コマンドの宛て先が低機能プリンタ３である場合、続いて高機能プリンタ２はＲＡＭ内の中間コードを、低機能言語の印刷コマンドのフォーマットに組込んでその印刷コマンドを仕立て、これを低機能プリンタ３に転送する。低機能プリンタ３は、受信した低機能言語の印刷コマンドを解釈し、印刷イメージをレンダリングしてこれを印刷する。
【００７５】
高機能プリンタ２はまた、ホストコンピュータ１からの要求に応答して（または自発的に）、自己のプリンタステータスを高機能言語で書いたステータスメッセージの形でホストコンピュータ１に送る。更に、高機能プリンタ２は、ホストコンピュータ１から低機能プリンタ３に対するステータス要求を受けると、このステータス要求を低機能言語のステータス要求の形に変換して低機能プリンタ３に送る。低機能プリンタ３は、このステータス要求に応答して（又は自発的に）、自己のプリンタステータスを低機能言語で書いたステータスメッセージの形で高機能プリンタ２に送信する。すると、高機能プリンタ２は、この低機能言語のステータスメッセージからプリンタステータスを抽出し、これを高機能言語のステータスメッセージのフォーマットに組込むことにより高機能言語のステータスメッセージを仕立て、これをホストコンピュータ１に転送する。
【００７６】
高機能プリンタ２が自分自身で印刷を行う場合、高機能言語の持つ高い表現力を活かした高度な印刷結果が得られることは言うまでもない。さらに、低機能プリンタ３で印刷を行う場合にも、高機能プリンタ２が高機能言語から低機能言語への変換を行うため、ホストコンピュータ１としては低機能プリンタ３がどのような言語が解釈できるのかを意識することなく、一つの高機能言語だけで低機能プリンタ３を制御できると共に、イメージのレンダリングは高機能プリンタ２が高機能言語に基づいて行うので、やはり高機能言語の持つ高い表現力を失うことなく高度な印刷結果が得られる。ホストコンピュータ１はまた、高機能プリンタ２のプリンタステータスを把握できるだけでなく、高機能プリンタ２の代理ステータスリプライ機能によって、低機能プリンタ３のプリンタステータスも把握することができる。要するに、安価な低機能プリンタ３を高機能プリンタ２と実質的に同等に使用することができる。
【００７７】
本実施形態の一つの変形例として、高機能プリンタ２が例えばモノクロのレーザープリンタである場合、これに例えばカラーのインクジェットプリンタを低機能プリンタ３として接続し、高機能プリンタ２に高機能言語で書かれたカラー印刷コマンドが入力されると、高機能プリンタ２はそのカラー印刷コマンドから各色成分の中間コードを作成し（モノクロの中間コード作成プロセスを各色成分プレーン毎に繰り返せばよい）、それを低機能言語の印刷コマンドに仕立ててカラーインクジェットプリンタ３に送出するように構成することもできる。これにより、従来ならばカラーの高機能プリンタ（現状では極めて高価である）でなければ実現できなかった高機能言語を活かした高度なカラー印刷が、モノクロの高機能プリンタとカラーの低機能プリンタという低コストの構成で実現することができる。尚、この場合、高機能プリンタ２の選択機能は、上述の実施形態のような印刷コマンドの宛て先ではなく、印刷コマンドの色指定がモノクロかカラーかに応答することになる。
【００７８】
また、別の変形例として、高機能プリンタ２が、自分自身と低機能プリンタ３の負荷状態に応答して選択機能を働かせるようにすることもできる（例えば、自分自身が印刷中で低機能プリンタ３が待機中ならば転送機能を、その逆ならば印刷機能を選択する）。
【００７９】
さらに別の変形例として、高機能プリンタ２に代えて、高機能プリンタ２から印刷機能を除去した機能をもつ処理装置を用いてもよい。つまり、前述の実施形態では、高機能プリンタ２は「高機能プリンタ」そのものとして機能すると共に、低機能プリンタ３の代理として高機能言語を解釈する「代理サーバ」としても機能したのであるが、この変形例では上記処理装置は専ら「代理サーバ」として機能するのである。
【実施例２】
【００８０】
図２は本発明の印刷システムの第２の実施形態を示した機能ブロック図である。高機能プリンタ２は例えば社内のイントラネットワークのような内部通信ネットワーク５を介して複数台の低機能プリンタ３Ａ、３Ｂ、…と接続されていると共に、例えばインターネットのような外部通信ネットワーク４にも接続されている。尚、図示してないが、高機能プリンタ２には、低機能プリンタ３Ａ、３Ｂ、…だけでなく、他の高機能プリンタが接続されていても勿論かまわない。
【００８１】
高機能プリンタ２は、外部又は内部の通信ネットワーク４又は５上のホストコンピュータ（図示せず）から、ポストスクリプトのような高機能言語で書かれた印刷コマンドを受信する。すると、高機能プリンタ２は、受信した印刷コマンドに基づいて自分自身で印刷を行う（印刷機能）か、又は、低機能プリンタ３Ａ、３Ｂ、…の中から１台を選び、受信した高機能言語の印刷コマンドを、選んだ低機能プリンタが理解できる低機能言語の印刷コマンドに変換してその選んだ低機能プリンタに転送する（転送機能）。転送機能を働かせる場合、低機能プリンタ３Ａが例えばＡ言語に対応し、プリンタ３ｂが例えばＢ言語に対応しているとすると、高機能プリンタ２は、プリンタ３Ａを選んだ時は高機能言語印刷コマンドをＡ言語の印刷コマンドに変換し、プリンタ３ｂを選んだときは高機能言語印刷コマンドをＢ言語の印刷コマンドに変換する。Ａ言語又はＢ言語への変換のやり方は、図１に示した前述の実施形態のそれと同様である。
【００８２】
更に、高機能プリンタ２は、前述したステータスリプライ機能と代理ステータスリプライ機能も有している。従って、高機能プリンタ２は、プリンタ３ａからＡ言語で書かれたプリンタステータスのメッセージを受けると、これを高機能言語のプリンタステータスのメッセージに変換してホストコンピュータに転送し、また、プリンタ３ｂからＢ言語で書かれたプリンタステータスのメッセージを受けると、これを高機能言語のプリンタステータスのメッセージに変換してホストコンピュータに転送する。
【００８３】
次に本実施形態の動作について図３のフローチャートに従って説明する。高機能プリンタ２は、ステップ３０１にて通信ネットワーク４から印刷要求を受信すると、ステップ３０２にて、印刷を実行させるプリンタを選択する。ここで、印刷プリンタの選択は、例えば次のように行う。即ち、印刷コマンドに宛て先プリンタの指定があった場合、その指定されたプリンタを選択する。宛て先指定がなかった場合は、待機中のプリンタの中から適当な一台を選択する（例えば、待機中のプリンタの中から、予め定めてある各プリンタの優先順位又は識別番号の順で選択する、或は、累積使用頻度の少ない順に選択するなど）。また、印刷コマンドの色指定がカラーである場合は、必ずカラープリンタの中から選択し、色指定がモノクロの場合は、出来るだけモノクロプリンタの中から選択する。待機中のプリンタがなかった場合は、印刷コマンドの発信元へビジー等の応答メッセージを返送する。
【００８４】
次に高機能プリンタ２はステップ３０３にて、選択したプリンタが高機能言語（例えばポストスクリプト）を解釈できるかどうかを判定し、できる場合（例えば自分自身や他の高機能プリンタを選択した場合）はステップ３１２に進み、できない場合（例えば低機能プリンタ３Ａ、３Ｂを選択した場合）はステップ３０４へ進む。ステップ３１２に進んだ場合、高機能プリンタ２は通信ネットワーク４から後続の印刷コマンドを受信しつつ、ステップ３１３で、受信した印刷コマンドを選択した高機能プリンタにそのままの形で送出するか、又は自分自身を選択した場合は、印刷コマンドを解釈して中間コードを生成し、更に中間コードからバンドイメージを展開して印刷を行う。この動作を印刷コマンドの最後まで実行した後（ステップ３１４）、処理を終了する。
【００８５】
一方、ステップ３０４へ進んだ場合、高機能プリンタ２は、選択したプリンタが解釈できる言語が所定の幾つかの低機能言語（例えばＡ言語とＢ言語）の内のどれであるかをチェックする。続いて、チェックの結果に基づいて変換先の言語を決定する。例えば所定の低機能言語がＡ言語とＢ言語の２種類だけである場合、チェックの結果がＡ言語であればステップ３０５へ進んで、変換先の言語をＡ言語と決定し、一方、チェック結果がＡ言語でなければ、ステップ３０６へ進み、変換先の言語をＢ言語と決定する。
【００８６】
次に高機能プリンタ２はステップ３０７にて、後続の印刷コマンドを受信しつつ、受信した印刷コマンドを解釈して、個々のプリミティブのラスタイメージをレンダリングして中間コードを作成してＲＡＭに一旦格納する。このようにして、１ページ分の中間コードを作成する（ステップ３０８）。次に、高機能プリンタ２はステップ３０９にて、１ページ分の中間コードを、ステップ３０５又は３０６で決定した変換先の低機能言語の印刷コマンドフォーマットに組み込んで、その低機能言語の印刷コマンドを作成する。続いて、高機能プリンタ２はステップ３１０にて、作成した低機能言語の印刷コマンドを選択したプリンタに送出する。このようにして１ページ分の中間コードの全てを印刷コマンドに仕立てて選択プリンタに送出する（ステップ３１１）。高機能プリンタ２は、ステップ３０７から３１１までの処理を最後のページなで実行した後（ステップ３１５）、処理を終了する。
【００８７】
ところで、上述のステップ３０４でのチェックは、例えば次の様な方法で行うことができる。その一つは、ネットワーク５上のプリンタ３Ａ、３Ｂ、…が対応できる言語を例えばテーブルなどの形で高機能プリンタ２に登録しておき、その登録データを参照する方法である。この場合の対応言語の登録は、高機能プリンタ２がプリンタ３Ａ、３Ｂ、…に対応言語を問い合わせて自動的に行ってもよいし、オペレータがキーボード等から手作業で行ってもよい。また、チェックの別の方法は、高機能プリンタ２が、印刷コマンドを受信する都度に、選択したプリンタに対応言語を問い合わせる方法である。この場合も、問い合せて確認した言語をそのプリンタに対応づけて高機能プリンタ２内のテーブルなどに登録しておけば、以後同じプリンタを選択した場合には、問い合わせを行わずに、登録データを参照するだけで対応言語を判定することができる。
【００８８】
本実施形態によれば、複数台の低機能プリンタ３Ａ、３Ｂ、…を高機能言語で統一的に制御することができ、しかも、高機能言語の高い表現能力を活かした高度な印刷を低機能プリンタ３Ａ、３Ｂ、…を用いて行うことができる。従って、実質的機能において複数台の高機能プリンタを揃えたものに近いシステムを、複数台の低機能プリンタ３Ａ、３Ｂ、…を用いて極めて安価に構築することができる。
【００８９】
尚、本実施形態においても、高機能プリンタ２を印刷機能のない専用の「代理サーバ」に置き換えることも可能である。
【実施例３】
【００９０】
また、第３の実施形態として、図４に示すように、一つの（又は複数の小ネットワークが繋がってなる）通信ネットワーク６上にホストコンピュータ１Ａ、１Ｂ、…や高機能プリンタ２や各種の低機能プリンタ３Ａ、３Ｂ、…が存在するときに、高機能プリンタ２が、ホストコンピュータ１Ａ、１Ｂ、…からの高機能言語の印刷コマンドを低機能プリンタ３Ａ、３Ｂ、…を代理して受信し、これを選択した低機能プリンタの対応言語に変換してその低機能プリンタへ転送するようにすることもできる。
【００９１】
また、受信した印刷コマンドを選択プリンタの対応言語に変換するとき、上述の実施形態では受信印刷コマンドから中間コードを作成し、その中間コードを変換先言語のコマンドに仕立てているが、必ずしもその方法を採る必要はなく、別の方法でも良い。例えば、中間コードからバンド又はページの完全なラスタイメージを作成し、このバンドイメージ又はページイメージを変換先言語のコマンドに仕立ててもよい。或は、言語間のコマンドの対応関係に基づくコマンド変換用ルックアップテーブル又はコマンド変換関数を予め用意しておき、そのテーブル又は関数を用いて直接的に変換先言語のコマンドに変換することもできる。後者の方法は、高機能言語のコマンドから低機能言語のコマンドへ変換する場合には、高機能言語の表現能力が損なわれて画質が低下する場合があるが、下に説明する変形例のようなシステムで、表現能力が同等の別の言語又は表現能力が高い別の言語に変換する場合には好適である。
【００９２】
更に、図１から図４に示した各種の実施形態において、高機能プリンタ２をある特定の言語に対応したプリンタ（例えばＡ言語対応プリンタ）に置き換え、低機能プリンタ３、３Ａ、３Ｂ、…を他の各種の言語に対応したプリンタに置き換えて、Ａ言語対応プリンタ２が他のプリンタの「代理サーバ」としてＡ言語の印刷コマンドを受信し、これを他のプリンタの対応言語に変換して他のプリンタに転送するようにすることも可能である。このようなシステムでは、種類やメーカなどの異なる種々のプリンタが存在しても、それらのプリンタをＥＳＣ／Ｐａｇｅのような一つの言語で統一的に制御することが可能である。
【実施例４】
【００９３】
図５は本発明の第４の実施形態に係るローカル・ルータの機能をもったネットワーク・プリンタを用いた通信ネットワーク・システムの構成図である。
【００９４】
図５において、ローカル・ルータ機能付ネットワーク・プリンタ１１はインターネット１２に自ら接続してホスト１５との交信が可能である。ネットワーク・プリンタ１１には、それ単独ではインターネットには接続できない１台以上のネットワーク非対応プリンタ１３、１４、…が、各プリンタ１３、１４、…の接続できるインタフェースを介して接続されている。ネットワーク・プリンタ１１は、自らのＩＰアドレスを有し、かつプリンタとしての機能を持っているので、インターネット１２上の１台の端末プリンタとして動作することができる。それに加え、ネットワーク・プリンタ１１は、自己に接続された各ネットワーク非対応プリンタ１３、１４、…用のＩＰアドレスも有しており、そしてプリンタ１３、１４とホスト１５との交信の中継機能も備えているので、ネットワーク非対応プリンタ１３、１４、…のグループをインターネット１２に導入するためのローカル・ルータとしても動作することができる。
【００９５】
図６は図５に示すネットワーク・プリンタ１１のローカル・ルータとしての中継機能の説明図である。
【００９６】
ネットワーク・プリンタ１１は、インターネット１２の一部である例えば職場ＬＡＮのＥｔｈｅｒｎｅｔ（登録商標）１７と接続され、そして、インターネット１２での通信のためのＴＣＰ／ＩＰプロトコルスタックを構成する物理層１８、データリンク層１９、ネットワーク層２０、トランスポート層２１、アプリケーション層２２（例えば、ＨＴＴＰ、ＦＴＰ、ＳＭＴＰ、ＬＰＲなど）のプロトコル処理部を有している。
【００９７】
また、ネットワーク・プリンタ１１は、シリアルインタフェース（Ｓ）２４、パラレルインタフェース（Ｐ）２５及びユニバーサル・シリアルバス（ＵＳＢ）２６などのデータ・インタフェースも有しており、それらのデータ・インタフェースに複数台のネットワーク非対応プリンタ１３、１４、１６、…を接続することができる。そして、このネットワーク・プリンタ１１は、ＵＳＢ２６用の通信プロトコルスタックをなす物理層２７、データリンク層２８、ネットワーク層２９、トランスポート層３０、アプリケーション層３１、及びシリアル・インタフェース２４用のデータ通信プロトコルスタックをなす物理層３２、データリンク層３３、ネットワーク層３４、トランスポート層３５、アプリケーション層３６、並びにパラレル・インタフェース２５用のデータ通信プロトコルスタックをなす物理層３７、データリンク層３８、ネットワーク層３９、トランスポート層４０、アプリケーション層４１のプロトコル処理部も備えている。
【００９８】
各プロトコルスタックの内部で下層から上層へ及び上層から下層へとデータが受け渡され得ることは当然であるが、それに加え、後に詳述するように、ＴＣＰ／ＩＰプロトコルスタック中のネットワーク層２０と、他のプロトコルスタック中のネットワーク層２９、３４、３９との間でも、データの受け渡しが行われ得るようになっている。それにより、ネットワーク非対応プリンタ１３、１４、１６、…をインターネット１２に導入することが可能になる。
【００９９】
図７は、ネットワーク・プリンタ１１が有しているＩＰアドレスを示す。図７に示すように、ネットワーク・プリンタ１１は、プリンタ１１自身と他のプリンタ１３、１４、１６の４台のプリンタ用に例えば「１６３、１４１、２２、１」〜「１６３、１４１、２２、６」というＩＰアドレスを取得して、それら４つのＩＰアドレスを各アドレスが割り当てられた転送先（例えばプリンタ１１自身、シリアルインタフェース２４、パラレルインタフェース２５、ＵＳＢ２６など）と対応付けて、ＮＶＲＡＭ等の不揮発性メモリに登録して保持している。そして、インターネット１２から上記４個のＩＰアドレスの中のいずれかを含むパケットを受け取ると、それに対し全て自分で応答すると共に、以下に詳述するように、そのパケットのＩＰアドレスがプリンタ１１自身を指定しているならパケット内のデータをプリンタ１１自身で処理し、他の転送先（Ｓ、Ｐ、ＵＳＢ）を指定しているならば該当の転送先へ転送する。
【０１００】
このような処理は図６に示す構成上で次のように行われる。
【０１０１】
すなわち、Ｅｔｈｅｒｎｅｔ（登録商標）１７からホスト１５発信のパケットがネットワーク・プリンタ１１に到着する。図８に示すように、そのパケットは、まずＴＣＰ／ＩＰプロトコルスタックの物理層１８によって、電気信号からデータビット列へと変換されてデータリンク層１９へ渡される。データリンク層１９は、そのパケットのヘッダ部分にあるデータリンクヘッダＤＨを解釈し、そのデータリンクヘッダＤＨに含まれている宛て先ハードウェアを指す「ＭＡＣアドレス」をチェックする。因みに、このネットワーク・プリンタ１１にはその製造時に、インターネット１２上で唯一固有の特定の「ＭＡＣアドレス」が割り当てられており、データリンク層１９はそれを知っている。受信パケット中の宛て先ハードウェアのＭＡＣアドレスがこのネットワーク・プリンタ１１に割り当てられている特定のＭＡＣアドレスに一致すれば、データリンク層１９はその受信パケットからデータリンクヘッダＤＨを除去して残り部分をネットワーク層２０に渡す。
【０１０２】
ネットワーク層２０は、データリンク層１９から渡されたパケットのヘッダ部分にあるネットワークヘッダＮＨを解釈し、このネットワークヘッダＮＨに含まれている宛て先装置を指す「ＩＰアドレス」が、図７に示したようなＮＶＲＡＭ内のＩＰアドレス・リストに載っている「ＩＰアドレス」と一致するか否かをチェックする。その結果、受信パケット中の宛て先装置のＩＰアドレスが、このネットワーク・プリンタ１１に割り当てているＩＰアドレスに一致するならば、ネットワーク層２０は、その受信パケットからネットワークヘッダＮＨを更に除去して残り部分をトランスポート層２１へ渡す。一方、受信パケット中の宛て先装置のＩＰアドレスが、シリアルインタフェース２４、パラレルインタフェース２５又はＵＳＢ２６に割り当たられたＩＰアドレスに一致する場合は、ネットワーク層２０は、その受信パケットをシリアルインタフェース２４、パラレルインタフェース２５又はＵＳＢ２６用のプロトコルスタックのネットワーク層２９、３４又は３９へ渡す。尚、図８は、受信パケット中のＩＰアドレスがＵＳＢ２６のＩＰアドレスに一致したので、ＵＳＢ２６用プロトコルスタックのネットワーク層２９へパケットを渡した場合を例示している。このようにＴＣＰ／ＩＰスタックのネットワーク層２０が他のプロトコルスタックのネットワーク層２９、３４又は３９へ受信パケットを渡す場合、ネットワーク層２０はそのパケットのデータ形式を、渡し先のネットワーク層２９、３４又は３９が取り扱える形式に変換してから渡す。尚、そのデータ形式が具体的にどのようなものであるかは、インタフェース２４、２５、２６の具体的な仕様によって異なるが、それは公知であると共に本発明の本質に直接に関わるものではないから、この明細書では説明しない。ただ、一般的傾向として、他の非ネットワーク・インタフェース２４、２５、２６で使用されるデータやパケットやヘッダの形式・仕様は、ＴＣＰ／ＩＰプロトコルで使用されるそれに比較して、より簡素である。
【０１０３】
ＴＣＰ／ＩＰスタックのトランスポート層２１は、ネットワーク層２０から受信パケットを渡されると、そのヘッダ部分にあるトランスポートヘッダＴＨを解釈し、そのトランスポートヘッダＴＨに含まれている宛て先アプリケーションを指す「ポート番号」をチェックする。因みに、ＴＣＰ／ＩＰプロトコル体系では、例えば、ポート番号８０がＨＴＴＰ、ポート番号３１がＦＴＰなどというように、特定のポート番号が特定のアプリケーションを指定することが規定されており、トランスポート層２１はそれを知っている。従って、受信パケット中のポート番号がその特定のポート番号に一致すれば、トランスポート層２１は、その受信パケットからトランスポートヘッダＴＨを更に除去して残り部分を、そのポート番号で指定されたアプリケーション層２２の個別プロトコル（ＨＴＴＰ、ＦＴＰ、ＳＭＴＰ、ＬＰＲなど）へ渡す。アプリケーション層２２の各個別プロトコルは、渡されたパケットのアプリケーションヘッダＡＨを解釈し、そのパケットからアプリケーションヘッダＡＨを更に除去した正味のデータを、アプリケーションヘッダＡＨ内の「判別子」に対応したアプリケーション内部の処理ルーチン（図示せず）へ渡す。その処理ルーチンは、渡されたデータ（典型的には、印刷要求つまり印刷コマンド）を解釈して印刷処理を行う。この場合、ネットワーク・プリンタ１１が印刷を行うことになる。
【０１０４】
他インタフェース２６、２４又は２５用のプロトコルのネットワーク層２９、３４又は３９は、ＴＣＰ／ＩＰのネットワーク層２０から当該ネットワーク層２９、３４又は３９に適合した形式の受信データを渡されると、それを自プロトコルのデータリンク層２８、３３又は３８に渡す。データリンク層２８、３３又は３８はそれを自プロトコルの物理層２７、３２又は３７に渡し、物理層２７、３２又は３７はそれを電気信号に変換して、それぞれに接続されたネットワーク非対応プリンタ１６、１３又は１４へ送る。従って、この場合はネットワーク非対応プリンタ１６、１３又は１４によって印刷処理が行われることになる。尚、各他プロトコルスタック内で上層から下層へとデータが渡されるときの各層での処理は、インタフェース２４、２５、２６の具体的な仕様によって異なるが、それは公知であると共に本発明の本質に直接に関わるものではないから、この明細書では説明しない。ただ、一般的傾向として、非ネットワーク・インタフェース２４、２５、２６での各プロトコル層の処理は、ＴＣＰ／ＩＰプロトコルでのそれに比較してより簡素である（例えば、ネットワークヘッダＮＨとデータリンクヘッダＤＨとが区別されてない、あるいは、ネットワークヘッダＮＨとデータリンクヘッダＤＨが省略（長さが０）されている、など）。
【０１０５】
以上のようにして、ホスト１５からネットワーク・プリンタ１１に到来した印刷要求は、それに含まれている宛て先のＩＰアドレスに応じて、ネットワーク・プリンタ１１で印刷処理されたり、あるいは、非ネットワーク・プリンタ１３、１４又は１６に転送されてそこで印刷処理されたりする。
【０１０６】
また、ネットワーク・プリンタ１１又は非ネットワーク・プリンタ１３、１４又は１６からホスト１５宛てに出力されたデータ（例えば、プリンタステータスやエラーの通知など）は、上記とは逆の経路と過程を経て、ホスト１５を宛て先とするインターネット１２のパケット形式に仕立てられ、Ｅｔｈｅｒｎｅｔ（登録商標）１７へ送出される。この場合、非ネットワーク・インタフェース用プロトコルのネットワーク層２９、３４又は３９は、データをＴＣＰ／ＩＰのネットワーク層２０に渡すとき、そのデータをネットワーク層２０が取り扱うパケットの形式（つまり、ＴＣＰ／ＩＰのトランスポート層２１からネットワーク層２０に渡されるパケットと同様の形式）に変換して渡す。
【０１０７】
以上のようにして、ネットワーク非対応のプリンタ１３、１４、１６をインターネット１２に導入することができる。
【０１０８】
上記第４の実施形態において、複数のＩＰアドレスをもった１台のネットワーク・プリンタ１１内で各ＩＰアドレスに異なる優先順位を与えておき、優先順位によってセキュリティ・レベルを変えたり、用紙サイズを変えたり、モノクロ印刷かカラー印刷か、イメージ印刷かテキスト印刷か、又は通常印刷かＩＤパスワードが必要な親展印刷かといった選択をすることによって、物理的には１台のネットワーク・プリンタを、ネットワーク側から見ると機能の異なる複数台のプリンタであるかのように使用することも可能である。また、ネットワーク・プリンタが取得するＩＰアドレスは１つであっても、そのプリンタに接続されたネットワーク非対応プリンタをポート番号で識別することにより、１つのＩＰアドレスで複数台のプリンタをネットワークに導入することもできる。また、ネットワーク・プリンタに代えて、上述した中継機能のみをもったローカル・ルータを用いることもできる。
【０１０９】
また、ネットワーク・アドレスとして、ＩＰアドレスだけでなく他のもの、例えばポート番号や判別子など、を用いることも可能である。例えば、図６に示す構成において、Ｅｔｈｅｒｎｅｔ（登録商標）１７からネットワーク・プリンタ２２にパケットが到来すると、次のようなプロトコル処理を行うことができる。
【０１１０】
(1)データリンク層１９は、自分の物理的なアドレス(ＭＡＣアドレス)を宛て先としたパケットだけを取り込む。
【０１１１】
(2)ネットワーク層２０は、データリンク層１９から渡されたパケット中に他のプリンタ１３、１４、１６（又は他のインタフェース２４、２５、２６）を指定するＩＰアドレスを見つけると、そのパケットを指定されたインタフェースのプロトコルスタックへ送る。
【０１１２】
(3)トランスポート層２１は、ネットワーク層２０から渡されたパケット中に他のプリンタ１３、１４、１６（又は他のインタフェース２４、２５、２６）を指定するポート番号を見つけると、そのパケットを指定されたインタフェースのプロトコルスタックへ送る。
【０１１３】
(4)アプリケーション層２２は、トランスポート層２１から渡されたパケット中に他のプリンタ１３、１４、１６（又は他のインタフェース２４、２５、２６）を指定する判別子を見つけると、そのパケットを指定されたインタフェースのプロトコルスタックへ送る。
【０１１４】
この処理の実例を、米国マイクロソフト社のＷｉｎｄｏｗｓＮＴというＯＳを用いた場合で以下に示す。
【０１１５】
まず上記(2)の例を示す。図５に示す構成で、ホスト１５側でＯＳに対し次の２つの異なる送信命令を与えて２回の送信をネットワーク・プリンタ１１に対し行ったとする。
【０１１６】
１回目：lpr -S 163.141.22.51 print.dat
２回目：lpr -S 163.141.22.52 print.dat
この２つの送信命令は、共に「ＬＰＲ」というプロトコルで、それぞれ「163.141.22.51」、「163.141.22.52」という異なる２つのＩＰアドレスに、共に「print.dat」という名前の印刷コマンドデータを送ることをＯＳに命じている。もし、上記２つのＩＰアドレスのうち前者がネットワーク・プリンタ１１に、後者が他のプリンタに割り当たられていたとすると、１回目の送信データはネットワーク・プリンタ１１で印刷処理されるが、２回目の送信データは他のプリンタへ転送されることになる。
【０１１７】
この様子を図９に示す。宛て先ＩＰアドレスが「163.141.22.51」である印刷コマンドデータはネットワーク・プリンタ１１内の処理ルーチンに送られる。しかし、宛て先ＩＰアドレスが「163.141.22.52」や「163.141.22.53」のデータはそれぞれ、ＴＣＰ／ＩＰのネットワーク層２０から例えばＵＳＢ２６及びシリアルインタフェースのネットワーク層２９、３４へ渡されて非ネットワーク・プリンタ２６、２４へ転送される。なお、このようにＴＣＰ／ＩＰのネットワーク層２０で転送先を分ける場合、転送先の非ネットワーク・プリンタ２６、２４はＴＣＰ／ＩＰアプリケーション層プロトコル（ＬＰＲ、ＨＴＴＰ、ＦＴＰなど）を解釈できる必要がある。
【０１１８】
次に上記(3)の例を示す。ホスト１５側で次の２つの異なる送信命令を与えて２回の送信を行ったとする。
【０１１９】
１回目：lpr -S 163.141.22.51 print.dat
２回目：ftp 163.141.22.51 print.dat
１回目の送信命令は、「ＬＰＲ」というプロトコルで、「163.141.22.51」というＩＰアドレスに送信することを意味し、２回目の送信命令は、「ＦＴＰ」というプロトコルで、同じＩＰアドレスに送ることを意味する。すると、１回目送信のパケットにはＬＰＲに割り当てられた「５１５」というポート番号が、２回目送信のパケットにはＦＴＰに割り当てられた「２１」というポート番号が付されることになる。もし、ポート番号「５１５」がネットワーク・プリンタ１１のＬＰＲアプリケーションに、ポート番号「２１」が他のプリンタに割り当てられていたとすると、１回目の送信データはネットワーク・プリンタ１１で印刷処理されるが、２回目の送信データは他のプリンタへ転送されることになる。
【０１２０】
この様子を図１０に示す。宛て先ポート番号が「５１５」である印刷コマンドデータはネットワーク・プリンタ１１内の処理ルーチンに送られる。しかし、宛て先ポート番号が「２１」や「８１」のデータはそれぞれ、ＴＣＰ／ＩＰのトランスポート層２１から、例えばＵＳＢ２６及びシリアルインタフェースのトランスポート層３０、３５へ渡されて、非ネットワーク・プリンタ２６、２４へ転送される。なお、このようにＴＣＰ／ＩＰのトランスポート層で転送先を分ける場合も、転送先の非ネットワーク・プリンタ２６、２４はＴＣＰ／ＩＰアプリケーション層プロトコル（ＬＰＲ、ＨＴＴＰ、ＦＴＰなど）を解釈できる必要がある。
【０１２１】
次に、上記(4)の例を示す。ホスト１５側で次の２つの異なる送信命令を与えて２回の送信を行ったとする。
【０１２２】
１回目：lpr -S 163.141.22.51 -P PRINTER1 print.dat
２回目：lpr -S 163.141.22.51 -P PRINTER2 print.dat
１回目も２回目も、共にＬＰＲプロトコルで同一のＩＰアドレスに宛てて送っているが、アプリケーション内部のデータキューとして「PRINTER1」、「PRINTER2」という異なるものを指定している。因みに、ＬＰＲというプロトコルでは、内部に複数の印刷キューがあることを管理でき、別々の印刷キューに印刷要求をためられるようになっている。そして、「PRINTER1」、「PRINTER2」という印刷キューの指定は、アプリケーション層に対する判別子としてパケットに組込まれる。このとき、もし「PRINTER1」という判別子はネットワーク・プリンタ１１に、「PRINTER2」という判別子は他のプリンタに割り当たられていたとすると、１回目の送信データはネットワーク・プリンタ１１で印刷処理されるが、２回目の送信データは他のプリンタへ転送されることになる。
【０１２３】
この様子を図１１に示す。宛て先印刷キューが「PRINTER1」である印刷コマンドデータはネットワーク・プリンタ１１内の処理ルーチンに送られる。しかし、宛て先印刷キューが「PRINTER2」や「PRINTER3」のデータはそれぞれ、ＴＣＰ／ＩＰアプリケーション層２２のＬＰＲから、例えばＵＳＢ２６及びシリアルインタフェースのアプリケーション層３１、３６の無手順プロトコルへ渡されて、非ネットワーク・プリンタ２６、２４へ転送される。
【０１２４】
ところで、上の説明は特定の階層モデルを用いて行っており、その階層モデルは一つの論理的な概念である。よって、実際の装置の構成は、必ずしも上述した階層モデルと１対１に対応している必要はなく、もっと細かい階層構造になっていたり、あるいは、上記モデルの２つ以上の階層をまとめて実際の１つの階層になっているなどのさまざまな装置構成のバリエーションが、本発明の要旨を逸脱することなく採用できる。
【実施例５】
【０１２５】
図１２は、本発明の第５の実施形態に係るプリントシステムの構成図である。
【０１２６】
図１２において、ネットワーク対応プリンタ５１はネットワーク、例えばインターネット５５に接続して、インターネット５５上の任意のホスト５４とＴＣＰ／ＩＰプロトコルにより交信する機能をもつ。ネットワーク対応プリンタ５１は、また、複数のネットワーク非対応プリンタ（勿論、ネットワーク対応であってもよい）５２、５３…ｎを接続してそれらネットワーク非対応プリンタ５２、５３…ｎと交信するための、例えばシリアルインタフェースまたはパラレルインタフェースなどの接続ポートも備えている。本明細書では、ネットワーク対応プリンタ５１およびそれに接続されたプリンタ５２、５３…ｎをまとめてプリンタグループと呼び、このプリンタグループの中でインターネット５５に近い側を上流側、遠い側を下流側と呼ぶ。例えば、ネットワーク対応プリンタ５１は、このプリンタグループ内の最上流プリンタである。ネットワーク対応プリンタ５１と、その下流側のネットワーク非対応プリンタ５２、５３…ｎとの間の交信は、一般の１対１のホストとプリンタのシリアルインタフェースまたはパラレルインタフェースによる接続におけるものと同様のプロトコルで行われる。
【０１２７】
ネットワーク対応プリンタ５１は、プリンタ本来の機能の他に、下流側のプリンタ５２、５３、…ｎを管理しそれらをインターネット５５に導入する機能（以下、プリンタ管理機能という）をもつ。プリンタ管理機能は次の２つの処理機能を含む。第１は、下流プリンタ５２、５３、…ｎの性能を調査してホスト５４へ報告する処理（以下、調査処理という）である。第２は、ホスト５４からの受信した印刷ジョブをグループ内から選んだプリンタに転送する処理（以下、転送処理という）である。さらに、転送処理には、どのプリンタを選択するかを各プリンタの性能に基づいて判断する処理（以下、判断処理という）が含まれる。以下に、これらの処理の内容を説明する。
【０１２８】
図１３は、ネットワーク対応プリンタが行う調査処理のフローチャートである。
【０１２９】
この調査処理では、ネットワーク対応プリンタ５１はまず、下流プリンタ５２、５３、…、ｎに対して各プリンタがもつ全設定項目及び設定値範囲等の性能を問い合わせ、プリンタ５２、５３、…ｎからそれらの情報を取得し記憶する（１１００）。ここで、設定項目とは、プリンタの属性の種類を示す所定の項目であち、例えば印刷色、解像度、用紙サイズなどがある。また、設定値範囲とは、各設定項目に関して設定可能な値の範囲であって、例えば、ある種のカラープリンタの場合、印刷色についてはモノクロとカラー、解像度については３００ｄｐｉと６００ｄｐｉ、用紙サイズについては葉書、封筒、Ｂ５、Ａ４などが設定値範囲である。ネットワーク対応プリンタ５１は、プリンタグループ内の全ての下流プリンタを調べたか判断して（１１０１）、未だ未調査のプリンタが残っていれば調査を続け、全部調べ終わったらグループ内の全部のプリンタの全性能に自己プリンタの性能を加えた情報をホストへ送信する（１１０３）。
【０１３０】
この調査処理を行う契機としては、例えば、ホスト５４に最初に接続された時、或いは、ホスト５４からプリンタ性能を通知せよと要求された時などが採用できる。或いは、ネットワーク対応プリンタ５１の立ち上げ時、またはその後に下流プリンタ５２、５３…ｎのいずれかが立ち上った時、または立ち上げ後一定の周期で、下流プリンタの性能調査を行って記憶しておき、その後、ホスト５４に接続された時またはホスト５４から性能通知を要求された時に調査結果をホスト５４へ送るようにしてもよい。
【０１３１】
図１４は、ネットワーク対応プリンタ５１が行う転送処理のフローチャートである。
【０１３２】
図１４を参照して印刷ジョブを受取ったネットワーク対応プリンタ５１のドライバの動作について説明する。
【０１３３】
ネットワーク対応プリンタ５１は、ホスト５４から印刷ジョブを受けると、ジョブの内容を解析し、まず自プリンタの性能で印刷可能か否か判断する（１３００）。印刷可能ならば自プリンタで受信ジョブのデータを処理し印刷を実行する（１３０１）。
【０１３４】
自プリンタの性能では印刷不可能と判断した場合（また、自プリンタが別のジョブ処理を行っているために、今受信したジョブを処理するのに十分なリソースが確保できない場合も）、調査処理で記憶したグループ内の下流プリンタ５２、５３…ｎ中の１台の性能を調べ（１３０２）、そのプリンタの性能で受信ジョブを印刷可能か否かを判断する（１３０３）。その結果可能ならば、そのプリンタへ印刷ジョブを転送して印刷を実行させる（１３０４）。一方、そのプリンタの性能では印刷不可能（または、リソースが不十分）な場合は、別の下流のプリンタを次々に調べ（１３０５）、印刷可能なプリンタを見つけて付けてそれに印刷ジョブを転送する。グループ内の全プリンタを調べてもなお印刷不可能の場合は、ホスト５４へ印刷不可能を通知する（１３０６）。
【０１３５】
図１５は、図１４のフローの中のステップ１３００および１３０３の判断処理の詳細を示す。
【０１３６】
ステップ１３００と１３０３のいずれにおいても、ネットワーク対応プリンタ５１は図１５に示す処理を行う。まず、ネットワーク対応プリンタ５１は印刷ジョブの内容を調べて、そのジョブが指定しているプリンタ属性を取り出す（１４００）。ここで、ジョブが指定する属性はジョブデータ上で、典型的には「設定項目＝設定値」の形式で記述されている。例えば、「印刷色＝カラー、解像度＝６００」と書かれていれば、解像度６００ｄｐｉのカラー印刷ができるプリンタが必要であることを意味する。
【０１３７】
次に、ネットワーク対象プリンタ５１は、記憶してある対象プリンタ（１３００では自プリンタ１、１３０３では判断対象の下流プリンタ）の性能を参照して、ジョブの指定する設定値を対象プリンタがサポートできるか否か（つまり、対象プリンタの対応する設定項目の設定値範囲にジョブの指定する設定値が入っているかどうか）を判断する（１４０１）。その結果、例えば、印刷ジョブの指定が「印刷色＝カラー」あるのに対し、対象プリンタの設定範囲が「印刷色＝白黒」である場合のように、ジョブの指定をサポートできない場合には印刷不可能と判断する（１４０４）。
【０１３８】
一方、例えば上記の例で対象プリンタの設定範囲が「印刷色＝カラー及び白黒」である場合のように、ジョブの指定をサポートできる場合は、印刷ジョブの指定する他の設定値についても同様に調べて（１４０２）、全設定値につきサポートできるなるなら印刷印刷可能と判断する（１４０３）。
【０１３９】
以上のようなネットワーク対応プリンタ５１の処理によって、プリンタグループ内のプリンタ全てをインターネット５５に導入することができることになる。この場合、ネットワーク対応プリンタ５１の下流のネットワーク非対応プリンタ５２、５３、…、ｎは、基本的に、ホスト５４とシリアルインタフェースやパラレルインタフェースを介して接続されている場合と同じ動作を行えばよい。ホスト５４にとっては、ネットワーク対応プリンタ５１はプリンタグループの全プリンタの性能を併せ持ったはプリンタのように見えるので、そのようなプリンタとしてネットワーク対応プリンタ５１をホスト５４は取り扱えばよい。しかし、プリンタグループのプリンタ構成は変更される可能性が十分にあり、グループ構成の変更に応じてホスト５４からの見えるネットワーク対応プリンタ５１の性能も変化する。そのため、ホスト５４に搭載されるネットワーク対応プリンタ５１用のプリンタドライバは、そのようなグループ構成変更に柔軟に対応できるようなものであることが望ましい。
【０１４０】
図１６は、ホスト５４に搭載された上記のような柔軟性をもったプリンタドライバの処理フローの一例を示す。
【０１４１】
ホスト５４のプリンタドライバは、起動するとまず、プリンタグループ最上流のネットワーク対応プリンタ５１へ性能通知要求を送る（１５００）。次に、ネットワーク対応プリンタ５１からグループ内プリンタ全部の性能を受信すると（１５０１）、受信したプリンタ性能を記憶するとともに、それらの性能を全て含んだユーザインタフェース画面を生成して表示する（１５０２）。
【０１４２】
図１７は、ステップ１５０２で表示されたユーザインタフェース画面の２種類の例を示す。
【０１４３】
ユーザインタフェース画面は、１枚または重ねられたように表示される複数枚の設定ウィンドウ６０を含み、各設定ウィンドウ６０上には、設定項目を示す設定項目ボックス６１が１個または２個以上配置される。例えば、図１７（ａ）の例では、設定ウィンドウ６０が６枚あり、現在前面表示されている設定ウィンドウには１個の設定項目ボックス６１がある。図１７（ｂ）の例では、設定ウィンドウ６０が６枚あり、現在前面表示されている設定ウィンドウ６０には設定ボックス６１が３個ある。各設定項目ボックス６１の下方には、設定値を示すための設定値ボックス６２が２個、３個またはそれ以上の個数設けられ、各設定値ボックス６２の脇には、各設定値を選択するためのラジオボタン６３がある。
【０１４４】
起動当初、プリンタドライバは図１７に示すようなユーザインタフェース画面を作るための枠組みの情報だけを有しているに過ぎない。この段階では、ユーザインタフェース画面内の設定ウィンドウ６０の枚数、各設定ウィンドウ６０上に配置する設定項目ボックス６１の個数、各設定項目ボックス６１の下に配置する設定値ボックス６２の個数、ならびに各設定項目ボックス６１及び各設定値ボックス６２の内容は未定である。
【０１４５】
プリンタドライバは、ステップ１５０１でグループ内プリンタ全部の性能を受信すると、その性能情報に含まれている設定項目の個数や各設定項目の設定値の個数に応じて、設定ウィンドウ６０の枚数、各設定ウィンドウ６０上の設定項目ボックス６１の個数、各設定項目ボックス６１下の設定値ボックス６２の個数を決める。そして、性能情報に含まれている各設定項目の名称を各設定項目ボックス６１にエントリし、性能情報に含まれている各設定項目の各設定値を各設定値ボックス６２にエントリすることによって、図１７に示すようなユーザインタフェース画面を生成する。例えば、図１７（ａ）に示す設定項目の「ＰＡＩＮＴ」とは印刷色を意味し、設定値の「ＣＯＬＯＲ」はグループ内のいずれかのプリンタでカラー印刷が可能なことを、「ＭＯＮＯ」はグループ内のいずれかのプリンタで白黒印刷が可能なことを意味する。また、図１７（ｂ）に示す設定項目の「ＲＥＳＯＬＵＴＩＯＮ」は解像度を意味し、その設定値の「６００」「３００」はグループ内では６００ｄｐｉと３００ｄｐｉの２種類の解像度だけが選択可能であること意味し、設定項目の「ＰＡＰＥＲ ＳＩＺＥ」は用紙サイズを意味し、その設置値の「Ａ３」「Ａ４」「Ｂ４」はグループ内でこの３種の用紙サイズだけが選択可能であることを意味する。ユーザが、任意の設定値のラジオボタン６４をマウスクリックすることで、その設定値が選択でき、かつマウスクリックされたラジオボタン６４には黒丸印が付く。
【０１４６】
ユーザインタフェース画面上の「ＯＫ」ボタン６４をユーザがマウスクリックすると、プリンタドライバは選択された設定値を、指定されたプリンタ属性として記憶して、ステップ１５０３に進んで、ユーザからの印刷要求待ち状態になる。ユーザから印刷要求が入ると、プリンタドライバは、記憶したプリンタ属性と共に印刷対象の文書データをネットワーク対応プリンタ５１が解釈できる形式の印刷ジョブデータに変換して、ネットワーク対応プリンタ５１に送信する。
【０１４７】
以上のようにして、プリンタドライバはプリンタグループがもつ性能に柔軟に対応していくことができる。
【０１４８】
以下に、ホスト５４、ネットワーク対応プリンタ５１、および下流のネットワーク非対応プリンタ５２、３、…、ｎ間で交信される要求や性能情報の一具体例を示す。
【０１４９】
まず、ホスト５４からネットワーク対応プリンタ５１へ送られる性能通知要求の例を下に示す。
【０１５０】
＠ＥＪＬ ＩＮＱＵＩＲＥ ＡＬＬ ＲＡＮＧＥ＜ＬＦ＞
ここで、「＠ＥＪＬ」は使用する特定のジョブ制御言語における接頭辞である。「ＩＮＱＵＩＲＥ」は性能要求のコマンドコードであり、「ＡＬＬ ＲＡＮＧＥ」は全設定項目を指定するパラメータであるから、この文は、全設定項目について通知せよという要求を意味している。
【０１５１】
この要求を受けると、ネットワーク対応プリンタ５１は下流側のプリンタ５２、３、…、ｎの各々に対して性能を問い合わせるが、この問い合わせの要求も上記性能通知要求と同文である。
【０１５２】
下流側のプリンタ５２、５３、…、ｎの各々からネットワーク対応プリンタ５１へ返答される性能情報は例えば次のようなものである。
【０１５３】
＠ＥＪＬ ＡＮＳＷＥＲ ＡＬＬ ＲＡＮＧＥ＜ＬＦ＞
＠ＥＪＬ ＲＡＮＧＥ ＲＥＳＯＬＵＴＩＯＮ＝６００／３００＜ＬＦ＞
＠ＥＪＬ ＲＡＮＧＥ ＰＡＩＮＴ＝ＭＯＮＯ＜ＬＦ＞
＠ＥＪＬ ＲＡＮＧＥ ＰＡＰＥＲ ＳＩＺＥ＝Ａ４／Ｂ４＜ＬＦ＞
ここで、第１文の「ＡＮＳＷＥＲ」は性能通知のコマンドコードであり、この文は全設定項目についてここに通知するという宣言を意味している。第２文以下では、「ＲＡＮＧＥ」は設定項目の設定値範囲は以下の通りであるという意味のコマンドコードであり、これに続く「設定項目名」＝「設定値１/設定値２/…」という形式のパラメータは、その「設定項目名」に該当する設定項目の選択可能な設定値が「設定１」「設定値２」…であることを意味している。この例では、解像度は６００と３００ｄｐｉが、印刷色は白黒だけが、用紙サイズはＡ４とＢ４が選択可能である。
【０１５４】
ネットワーク対応プリンタ５１は、下流の全プリンタから性能情報を集めると、それをホスト５４へ通知するが、そのときの性能情報も上記と同様な形式である。その場合、＠ＥＪＬ ＡＮＳＷＥＲ ＡＬＬ ＲＡＮＧＥ＜ＬＦ＞という最初の宣言文に続いて、１台目の下流プリンタから受信した第２文以下のＲＡＮＧＥ文、次に２台目の下流プリンタから受信した第２文以下のＲＡＮＧＥ文、…というように複数台の下流プリンタからのＲＡＮＧＥ文をそのまま単純に繋げてホスト５４に送ってもよいし、あるいは、複数台の下流プリンタからの通知文を整理して例えば次のような新たなＲＡＮＧＥ文を編集して送ってもよい。
【０１５５】
＠ＥＪＬ ＡＮＳＷＥＲ ＡＬＬ ＲＡＮＧＥ＜ＬＦ＞
＠ＥＪＬ ＲＡＮＧＥ ＲＥＳＯＬＵＴＩＯＮ＝６００／３００＜ＬＦ＞
＠ＥＪＬ ＲＡＮＧＥ ＰＡＩＮＴ＝ＣＯＬＯＲ／ＭＯＮＯ＜ＬＦ＞
＠ＥＪＬ ＲＡＮＧＥ ＰＡＰＥＲ ＳＩＺＥ＝Ａ４／Ｂ４／ＬＴＲ＜ＬＦ＞
＠ＥＪＬ ＲＡＮＧＥ ＯＲＩＥＮＴＡＴＩＯＮ＝ＬＡＮＤ／ＰＯＲＴ＜ＦＦ＞
この例では、上に例示した或る下流プリンタからのＲＡＮＧＥ文では「ＰＡＩＮＴ＝ＭＯＮＯ」「ＰＡＰＥＲ ＳＩＺＥ＝Ａ４／Ｂ４」であったところ、他のプリンタからのＲＡＮＧＥ文の内容も加味されて、「ＰＡＩＮＴ＝ＣＯＬＯＲ／ＭＯＮＯ」「ＰＡＰＥＲ ＳＩＺＥ＝Ａ４／Ｂ４／ＬＴＲ」という内容の新たなＲＡＮＧＥ文が編集されている。
【０１５６】
ホスト５４のプリンタドライバは、このような性能情報を受けると、各ＲＡＮＧＥ文のパラメータから設定項目名と設定値とを抽出して、図１７に例示したようなユーザインタフェース画面を作成する。このユーザインタフェース画面上でＯＫボタンが押された後、印刷要求が入ると、ホスト５４からネットワーク対応プリンタ５１へ印刷ジョブデータが送られる。この印刷ジョブデータに含まれているプリンタ属性の指定は例えば次のような文である。
【０１５７】
＠ＥＪＬ ＳＥＴ ＲＥＳＯＬＵＴＩＯＮ＝６００＜ＬＦ＞
＠ＥＪＬ ＳＥＴ ＰＡＩＮＴ＝ＭＯＮＯ＜ＬＦ＞
＠ＥＪＬ ＳＥＴ ＰＡＰＥＲ ＳＩＺＥ＝Ａ３＜ＬＦ＞
ここで、「ＳＥＴ」は、次に続くパラメータが示す属性を指定するという意味のコマンドコードである。この例では、解像度が６００ｄｐｉ、印刷色が白黒、用紙サイズがＡ４が指定されている。
【実施例６】
【０１５８】
図１８は本発明の第６の実施形態に係るプリントシステムの構成図である。
【０１５９】
前実施形態ではネットワーク対応プリンタ５１に対して下流のプリンタ５２、５３、…、ｎがパラレルに接続されていたのに対し、この第２実施形態では、図１８に示すように、ネットワーク対応プリンタ７０を最上流として、複数のプリンタ７０、７１、…、ｍがディジーチェーン（バス、ケーブル等による簡単な数珠繋ぎ）状態でシリアルに接続されている。
【０１６０】
しかしながら、このような物理的接続形態の違いは、本発明にとって本質的ではない。どのような接続形態であっても、それぞれの接続形態に適した公知の通信方式によって、最上流のネットワーク対応プリンタ７０から下流の全プリンタ７１、…、ｍに性能通知要求を下達し、下流の全プリンタ７１、…、ｍからの性能情報を最上流のネットワーク対応プリンタ７０に集めることが可能である。例えば、図１８に示すディジーチェーンでは、もしＳＣＳＩのようにディジーチェーンを伝達される情報が途中のプリンタを透過できるならば、前実施形態と同様に最上流のネットワーク対応プリンタ７０だけが下流プリンタの管理機能を有していれば十分である。一方、ディジーチェーン内の各プリンタが、隣のプリンタから受けた情報を解釈し、その結果に基づいて独自に情報を作成して反対側の隣のプリンタに渡す、というようなリレー式の情報伝達方法をとる場合は、最上流のネットワーク対応プリンタ７０だけでなく、最下流プリンタｍ以外の他のプリンタ７１、…も下流プリンタの管理機能をもつ必要がある。
【０１６１】
後者のリレー式の場合、最下流プリンタｍ以外の他のプリンタ７０、７１、…は、このプリンタグループの性能をホスト５４に通知するために図１９に示すような動作を行う。
【０１６２】
図１９に示すように、各プリンタ７０、７１、…は、自分より上流側の装置（ネットワーク対応プリンタ７０の場合はホスト５４、他のプリンタ７１、…の場合は１段上流側のプリンタ）から性能通知要求が入ると、自分より１段下流側のプリンタに同様の性能通知要求を送り、その下流側プリンタ以下のプリンタグループの性能情報を取得して記憶する（１８００）。そして、１段下流側のプリンタの全てについてこの性能調査を行ったか否か判断する（１８０１）。
【０１６３】
なお、図１８の構成では、どのプリンタも、１段下流のプリンタは１台しかないので直ちに調査終了になる。しかし、或るプリンタにおいて、１段下流プリンタがパラレルにｎ台あるような場合（つまり、そのプリンタにおいて、ディジーチェーンがｎ本に枝別れている場合）には、そのプリンタはｎ台の下流プリンタに対してステップ１８００の処理を行う。
【０１６４】
このようにして下流のプリンタグループの性能を全部調べたら、各プリンタは、下流のプリンタグループの性能に自分の性能を加えて、１段上流のプリンタへ通知する（１８０２）。
【０１６５】
このようにして、最終的に、最上流のネットワーク対応プリンタ７０に、それより下流の全プリンタ７１、…、ｍの性能情報が集まるので、ネットワーク対応プリンタ７０はそれに自分の性能を加えてホスト５４に通知する（１８０２）。
【０１６６】
この後、ホスト５４から印刷ジョブデータがネットワーク対応プリンタ７０に到着すると、ネットワーク対応プリンタ７０は自分で印刷するか、下流のプリンタグループに印刷させるかを判断して、後者の場合、１段下流のプリンタ７１に印刷ジョブデータを渡す。以下、各プリンタは同様の判断を行い、より下流のプリンタグループに印刷させる場合は、１段下流のプリンタに印刷ジョブデータを渡す。このようにして、印刷ジョブデータは、最終的に印刷担当となるプリンタまでリレー式に転送されていく。この過程では、印刷ジョブデータを受けた各プリンタは、自分と下流側プリンタグループのいずれがそのジョブ処理に適しているかを判断し、それらプリンタでの判断に従って、いわば動的に最終的な印刷担当プリンタが決められる。
【０１６７】
上述した第５および第６の実施形態のように複数のプリンタをグループ化する場合、同種のプリンタをグループ化することで処理容量を増すことができるが、その他に、図２０に例示するような異種のプリンタの組み合わせで特有の効果を期待することができる。
【０１６８】
図２０（ａ）に示す例では、モノクロレーザプリンタとカラーインクジェットプリンタを組み合わせている。これにより、レーザプリンタが提供する高速で高解像度のモノクロ印刷機能と、カラーインクジェットプリンタが提供する高品質のカラー印刷機能とを併せ持ったネットワーク対応プリンタ機能が、１台でそのような機能をもったネットワーク対応プリンタ（ネットワーク対応カラーレーザプリンタ）よりずっと安価に実現することができる。さらに、インクジェットプリンタで印刷するときに、レーザプリンタが一般に有する高度な言語解釈およびレンダリング機能を利用できるように構成すれば、インクジェットプリンタを単独に使用する場合よりも高いスループットや短いホスト開放時間が得られる。
【０１６９】
図２０（ｂ）に示す例では、Ａ３用紙に印刷できる１台の高級大型プリンタと、Ａ４以下の用紙しか印刷できない数台の廉価プリンタとがグループ化されている。これにより、Ａ３対応の高級大型プリンタを複数台揃える場合よりずっと低い価格で、Ａ３用紙にもＡ４以下の用紙にも対応できる大容量のプリントシステムが構築でき、しかも、Ａ３プリンタとＡ４プリンタとをネットワーク上の同一アドレスにあるので、それらをネットワーク上の別のアドレスに配置するよりも使い勝手がよい。
【０１７０】
図２０（ｃ）の例では、例えばアドビシステムズ社のポストスクリプトのような表現能力の極めて豊かな高機能言語を解釈しレンダリングできる高機能プリンタと、そのような高機能言語解釈機能をもたない標準プリンタとがグループ化されている。これにより、高機能プリンタを複数台揃える場合よりずっと低い価格で、高機能言語対応の大容量のプリントシステムが構築できる。また、標準プリンタで印刷するときに、高機能プリンタの高機能言語解釈およびレンダリング機能を利用できるように構成すれば、標準プリンタで高機能プリンタと同様な品質の画像を印刷することができる。
【０１７１】
図２１は、上述した２つの実施形態において、印刷ジョブを処理すべきプリンタを判断する場合に、ジョブの指定する設定値をサポートできるプリンタが２台以上あった場合の判断処理の流れを示す。
【０１７２】
図２１に示すように、自分および下流の全部のプリンタを調べて、ジョブの指定する設定値をサポートできる候補プリンタが２台以上あるか否か調べ（１９００）、候補が１台しかない場合はその候補プリンタへジョブを転送する（１９０３）。しかし、候補が２台以上ある場合には、それらの候補の中から条件減算方式により
１、現在印刷中のプリンタ
２、トナーや紙等の残量がより少ないプリンタ
３、使用回数のより多いプリンタ
４、消耗品コストのより高いプリンタ
５、モノクロ指定ならカラープリンタ
６、低解像度指定なら高解像度プリンタ
７、地理的に距離が遠いプリンタ
を次々と除外していき、最終的に候補を１台に絞る（１９０１）。そして、その絞った候補プリンタに印刷ジョブを転送する（１９０２）。
【０１７３】
ホストのプリンタドライバは、上述したような柔軟な対応が可能なものである必要は必ずしもない。例えば、プリンタドライバは従来のように固定的に定まっている設定項目および設定値をユーザインタフェース画面に表示するものであって、ネットワーク対応プリンタからホストへプリンタグループの性能が通知されることもなく、ネットワーク対応プリンタのみがプリンタグループの性能を把握して、ジョブ内容に応じて印刷担当プリンタを選択するという構成も採用し得る。
【０１７４】
また、ネットワーク対応プリンタがホストに対し、単にグループ全体の性能を通知するのでなく、グループ内の個々のプリンタの識別と性能とを通知し、ホストのプリンタドライバが、グループ内の個々のプリンタ毎に各々の性能に応じたユーザインタフェース画面を作成して個別に表示することによって、ユーザがグループのプリンタ構成や各プリンタの性能を把握して、希望のプリンタを指定して印刷要求を発することができるようにした構成も採用可能である。この場合、プリンタドライバが印刷ジョブデータを発する段階で、どのプリンタに印刷させるかを指定することになるので、ネットワーク対応プリンタは、面倒な判断処理を省略して、単に指定されたプリンタに印刷ジョブデータを転送することができる。
【０１７５】
ネットワーク対応プリンタに代えて、ネットワーク接続機能と上述した下流側プリンタの管理機能だけをもったプリンタ管理装置を用いることもできる。
【０１７６】
ネットワーク対応プリンタは、元来のネットワーク対応プリンタであってもよいが、元来はネットワーク非対応であったところ、ネットワークアダプタなどのオプション品を付けることでネットワーク対応となったものであってもよい。上述した下流プリンタ管理機能は、プリンタに当初から備わっていてもよいが、必ずしもそうである必要はなく、例えば、ネットワークアダプタに備わっていてもよいし、増設ＲＯＭや増設ボードなどの別のオプション品でプリンタに提供してもよし、あるいは、ネットワークやホストなどから管理機能のプログラムをプリンタ内のマイクロコンピュータにロードしてもよい。
【実施例７】
【０１７７】
図２２は本発明の第７の実施形態にかかる印刷システムを示したブロック図である。
【０１７８】
プリンタ８１が、或るドメインを構成するイントラネットやＬＡＮなどのローカルな通信ネットワーク１７０に接続されている。この通信ネットワーク１７０には、他のプリンタ１０１、１０２及びホストコンピュータ１０３、１０４なども接続されている。この通信ネットワーク１７０は更に、外部の通信ネットワーク１６０にも接続されており、インターネットのような大規模ネットワークの一部を構成している。
【０１７９】
図２３は図２２に示したプリンタ８１の機能的な構成を示す。
【０１８０】
プリンタ８１は、通信インタフェース９１、イメージングコントローラ９２、及び印刷エンジンを９３を備える。通信インタフェース９１は、通信ネットワーク１７０に接続してネットワーク１７０、１６０上の他の装置とデータ通信を行うものである。イメージングコントローラ９２は、通信インタフェース９１を介して受信した文書データを解釈し、その文書の印刷イメージ（各ピクセル位置に着色剤のドットを打つか打たないかを示した２値ラスタイメージデータ）を作成するものである。印刷エンジン９３は、イメージングコントローラ９２が作成した印刷イメージを入力して、その印刷イメージに基づき着色剤を用いて用紙上にその文書イメージを印刷するものである。
【０１８１】
イメージングコントローラ９２は、文書アナライザ１２１と、特定のファイル形式Ａ、Ｂ（例えば、ＨＴＭＬとＪＰＥＧ）にそれぞれ対応したレンダラ１２３Ａ、１２３Ｂと、イメージコンポーザ１２５とを有する。なお、図２３には２つのファイル形式に対応したレンダラ１２３Ａ、１２３Ｂが示されているが、この２つというのは例示に過ぎず、より少ないまたはより多いファイル形式に対応したレンダラを有していてもよい。このイメージングコントローラ９２は、その全部をマイクロコンピュータによってソフト的に実現することも、或いはその少なくとも一部を専用ハードウェア回路で実現することも可能である。
【０１８２】
文書アナライザ１２１は、受信した文書データを分析し、その文書がどのようなファイル形式のリソースを含んでいるかを認識する。そして、その文書に所定のファイル形式Ａ、Ｂのリソースが含まれていれば、それらのリソースをそれぞれのファイル形式に対応するレンダラ１２３Ａ、１２３Ｂへ渡す。しかし、ファイル形式Ａ、Ｂ以外のファイル形式（例えばファイル形式Ｃとする）をもつリソースが含まれている場合は、そのリソースを、後述するように、同じネットワークドメイン（つまり、ネットワーク１７０）内に存在するの他の機器（プリンタ１０１、１０２、コンピュータ１０３、１０４など）の中で、当該ファイル形式Ｃに対応したレンダラをもつ機器に、そのファイル形式Ｃのリソースを転送してレンダリングを依頼し、そして、その機器からレンダリング結果のイメージを受ける。
【０１８３】
レンダラ１２３Ａは、ファイル形式Ａのリソース（例えば、ＨＴＭＬ文書）をレンダリングして、その印刷イメージを作る。レンダラ１２３Ｂは、ファイル形式Ｂのリソース（例えば、ＪＰＥＧ画像）をレンダリングして、その印刷イメージを作る。なお、メモリ効率を良くするため、レンダラ１２３Ａ、１２３Ｂは通常、文書の各１ページを複数のバンドに分割して、各バンド毎に順番に印刷イメージを作る。ここで、各レンダラ１２３Ａ、１２３Ｂが作った印刷イメージは、それぞれが対応するリソースの部分だけであるから、いずれも複合文書の完全な印刷イメージではない。
【０１８４】
イメージコンポーザ１２５は、レンダラ１２３Ａ、１２３Ｂが作成した各バンドの印刷メージ、および他の装置に依頼して作成してもらった各バンドの印刷イメージを取り込み、これらを結合して各バンドの完全な印刷イメージを作成する。
【０１８５】
印刷エンジン９３は、イメージコンポーザ９２の作成した各バンドの完全な印刷イメージを順次に受け取って、用紙上に各バンドイメージを順次に印刷することにより、各ページのハードコピーを作成する。
【０１８６】
次に本実施形態の動作について説明する。
【０１８７】
ここでは、ネットワーク１６０、１７０上の或るホストコンピュータ（例えばホストコンピュータ１０３とする）が、ＨＴＭＬで書かれた文書データをプリンタ８１に送った場合を想定する。このＨＴＭＬ文書データには例えばＪＰＧ画像やＧＩＦ画像などといった他のリソースが埋め込まれており、このＨＴＭＬ文書データと、それに埋め込まれた他のリソースとで複合文書データを構成している。プリンタ８１では図２４に示すような動作が行われる。
【０１８８】
まず、ステップ２３０１にて、通信インタフェース９１が、そのＨＴＭＬ文書データを受信してイメージングコントローラ９２に渡す。続いてステップ２３０２にて、通信インタフェース９１が、その受信ＨＴＭＬ文書に埋め込まれている他のリソースを受信してイメージングコントローラ９２に渡す。
【０１８９】
イメージングコントローラ９２では、文書アナライザ１２１が、ステップ２３０３で示すように、受信した複合文書に含まれる各リソースのファイル形式を判別し、次にステップ２３０４にて、判別した各ファイル形式がこのプリンタ８１でレンダリングできるものかどうか（つまり、形式ＡまたはＢか）を判定する。レンダリングできる場合はステップ２３０５に進み、できない場合はステップ２３０８に進む。
【０１９０】
ステップ２３０５に進むと、文書アナライザ１２１がファイル形式ＡまたはＢのリソースをレンダラ１２３Ａ又は１２３Ｂに渡し、レンダラ１２３Ａ又は１２３Ｂがそのリソースをレンダリングして、バンド単位の印刷データを作成しプリンタ内のメモリ（図示せず）に展開する。
【０１９１】
一方、ステップ２３０８に進むと、文書アナライザ１２１が、このプリンタ８１ではレンダリングできないファイル形式（例えばファイル形式Ｃとする）に対応したレンダラをもつ機器を、このプリンタ８１内に予め登録されている図２５に示すような機器テーブルを参照して探す。この機器テーブルには、図２５に示すように、このプリンタ８１と同じドメイン（つまり内部ネットワーク１７０）内の機器１０１、１０２、１０３、１０４の各々のネットワーク上の識別（例えばＩＰアドレス）とその機器がレンダリングできるファイル形式（例えば、その拡張子）とが登録されている。その結果、機器テーブル内にファイル形式Ｃをレンダリングできる機器があればステップ２３１０に進み、なければステップ２３１２に進む。
【０１９２】
ステップ２３１２に進んだ場合、文書アナライザ１２１は、そのレンダリングできないリソースの画像の代わりとなる所定の絵（例えば枠の絵）の画像ファイルを例えばレンダラ１２３Ｂに渡して、その絵の印刷イメージも作成させる。一方、ステップ２３１０に進んだ場合、文書アナライザ１２１は、そのファイル形式Ｃのリソースを、機器テーブルから選んだ機器にネットワーク１７０を通して送信して、それをレンダリングして返送するよう依頼する。例えば、ファイル形式ＣがＧＩＦの場合、ＧＩＦに対応しているプリンタ１０２にＧＩＦのリソースを送信する。なお、プリンタ１０２も例えば図２２に示したと同様の構成であり、プリンタ８１から依頼されたＧＩＦリソースを対応するレンダラでレンダリングして、その結果の印刷イメージをネットワーク１７０を通してプリンタ８１に返送する。プリンタ８１では、ステップ２３１１にて文書アナライザ１２１がプリンタ１０２からの印刷イメージを受信して、各バンド単位でその印刷イメージをメモリに展開する。
【０１９３】
こうして、複合文書の各バンドについて、そこに含まれる全てのリソースのレンダリングが終わると、処理はステップ２３０６に進んで、イメージコンポーザ１２５が、各リソースの印刷イメージを統合して各バンドの完全な印刷データをメモリ上に展開する。続いて、ステップ２３０７にて、その完全な印刷イメージを印刷エンジン９３が取り込んで用紙に印刷する。
【０１９４】
図２６は図２５に示した機器テーブルをプリンタ８１内のメモリに登録する手順を示したフローチャートである。この動作は、プリンタにユーザが命じたとき、定期的、プリンタの立ち上げ時など、適当な契機で随時に行うことができる。
【０１９５】
まず、プリンタ８１の文書アナライザ１２１は、ステップ２５０１にて、例えば同じドメインのルーティングテーブルをもつルータに問い合わせるなどして、ドメイン内の全ての機器１０１、１０２、１０３、１０４のアドレスをリストアップし、ステップ２５０２にて、リストアップした機器の各々に対して、その機器がレンダリング可能なファイル形式を問い合わせる。この問い合わせに対し一定時間内にその機器から応答があれば、文書アナライザ１２１は、ステップ２５０４に進み、その機器からレンダリングできるファイル形式の通知を受け取り、ステップ２５０５にて、そのファイル形式をその機器のアドレスに対応させて機器テーブルに登録する。この問い合わせと登録を、ドメイン内の全ての機器に対して行う。結果として、図２５に示したような機器テーブルが完成する。
【０１９６】
本実施形態によれば、プリンタ８１は、自己が有しているレンダラや他の機器が有しているレンダラを利用して、複数のファイル形式を含む複合文書を受信して印刷することができる。
【０１９７】
なお、本実施形態では、プリンタ８１は、図２４のステップ２３１０で、自分でレンダリングできないファイル形式Ｃのリソースを他の機器に送って、印刷イメージにレンダリングしてもらっている。しかし、もし、他の機器がそのファイル形式Ｃをプリンタ８１がレンダリングできるファイル形式（例えばＢ）に変換できるコンバータを有している場合には、ステップ２３１０で、その機器に対しレンダリングではなく、ファイル形式のＣからＢへのコンバートを依頼してもよい。その場合は、プリンタ８１は、ステップ２３１１でコンバート後のファイル形式Ｂのリソースを受信した後、点線矢印で示すようにステップ２３０５に進んで、そのファイル形式Ｂのリソースを、自己のレンダラ１２３Ｂでレンダリングする。
【０１９８】
また、図２２では図示省略してあるが、プリンタ８１には、特定のプリンタ制御言語で表現したデータを解釈し印刷イメージを作成する従来型のレンダラも当然に含まれている。そこで、上記のように他の機器にファイル形式のコンバートを依頼する場合、特定のプリンタ制御言語で表現したデータ（つまり、従来のプリンタがホストから受信していたと同じ形式のデータ）にコンバートしてもらって、それをプリンタ８１内の従来型のレンダラでレンダリングして印刷するようにしてもよい。
【実施例８】
【０１９９】
図２７は本発明の第第８の実施形態を示したブロック図である。
【０２００】
或るドメインを構成するネットワーク１７０に、本発明に従うプリンタ１５１及び他の機器、例えばプリンタ１５２、１５３やホストコンピュータ１５４などが接続されている。また、プリンタ１５１は外部の通信ネットワーク１８０にも接続されている。プリンタ１５１は、図２２に示したような構成をもっており、通信ネットワーク１８０から複合文書データを受信した場合、もし、この複合文書を印刷すべきドメイン内の特定のプリンタが、その複合文書に含まれる或るリソースをレンダリングできない場合には、そのリソースをレンダリング（または、上述したコンバート）できる機器を、自己を含むドメイン内の機器中から探して、その機器にレンダリングリングまたはコンバートを行わせ、その結果のデータを印刷を行うべきプリンタに転送する機能を有している。この機能を行うために、プリンタ１５１は、自己を含めたドメイン内の全機器のレンダリング能力を示した図２５に例示したと同様の機器テーブルを有している。なお、このような機能さえあれば、プリント機能はもたないプリンタサーバを、プリンタ１５１に代えて用いることも可能である。
【０２０１】
プリンタ１５１の動作について図２８に示したフローチャートに従って説明する。
【０２０２】
プリンタ１５１は、ステップ２７０１にて通信ネットワーク１８０から複合文書データを受信すると、ステップ２７０２にて、例えばこの複合文書データに含まれている宛先アドレスなどに基づいて、自己を含むドメイン内のプリンタ１５１、１５２、１５３の中から、その複合文書を印刷させるべきプリンタ（例えばプリンタ１５２とする）を選択する。次に、プリンタ１５１は、ステップ２７０３にて、その選択したプリンタ１５２がレンダリングできるファイル形式が何であるかを、予め登録されている機器テーブルを参照して調べ、ステップ２７０４にて、そのプリンタ１５２がその複合文書に含まれる全リソースをレンダリングできるかどうか判定する。その結果、レンダリングできる場合はステップ２７０７に進み、できない場合はステップ２７０５に進む。
【０２０３】
ステップ２７０７では、プリンタ１５１は、その複合文書データを、選択したプリンタ１５２に転送する。一方、ステップ２７０５に進んだ場合は、プリンタ１５１は、選択したプリンタ１５２がレンダリング不能なリソースをレンダリング（又はコンバート）できる機器を、機器テーブルを参照して検索し、その検索した機器にそのリソースを転送してレンダリング（又はコンバート）を依頼する（プリンタ１５１自身がレンダリング又はコンバートできる場合は自分でレンダリング又はコンバートする）。その後、ステップ２７０６に進み、プリンタ１５１は、受信した複合文書データの内の、選択プリンタ１５２がレンダリングできるリソースをその選択プリンタ１５２に転送し、さらに、ステップ２７０５でレンダリング又はコンバートした結果もその選択プリンタ１５２に転送する（他の機器でレンダリング又はコンバートした結果は、プリンタ１５１を経由させずに、他の機器から直接に選択プリンタ１５２に転送させてもよい）。その結果、選択プリンタ１５２は、複合文書を完全な形で印刷することができる。
【０２０４】
以上、本発明の好適な実施形態を説明したが、本発明は上記実施形態にのみ限定されるわけではなく、他の種々の形態でも実施することができる。
【０２０５】
上記の実施形態では、説明を分かりやすくするために、レンダリングという用語を、印刷イメージ（つまり印刷エンジンを駆動する２値ラスターイメージ）を作成することとして説明したが、必ずしもそれだけに限定されるものではない。すなわち、リソースから最終的な印刷イメージが作られるまでには、例えば、中間コード、ＲＧＢ多値ラスタイメージ、ＣＭＹＫ多値ラスタイメージなどの種々の形態の画像データが作られる。本発明の実施で用いるレンダラは、複合文書のリソースを、その固有のファイル形式には依存しないの何らかの形態の画像データに変換するものであればよく、レンダラから出力される画像データの形態は、上に例示した中間コード、ＲＧＢ多値ラスタイメージ、ＣＭＹＫ多値ラスタイメージなどの途中形態であってもよい。従って、本発明のプリンタ（又はプリンタサーバ）が、あるリソースを他の機器でレンダリングしてもらう場合におけるそのレンダリング結果というものは、必ずしも最終的な印刷イメージである必要はなく、印刷を行うプリンタ（又はプリンタサーバ）が最終的に印刷イメージ化できる画像データでさえであれば、中間コードの形態でも、多値ラスタイメージの形態でも何でもよい。
【０２０６】
さらに、上記実施形態では、説明を分かりやすくするために、レンダリングという用語の他に、コンバートという用語を用い、このコンバートを、着目しているプリンタ（又はプリンタサーバ）が対応できないファイル形式のリソースを対応できる形式のデータに変換する意味で用いている。しかし、本明細書の特許請求の範囲でいう「レンダリング」とは、上記実施形態におけるレンダリングだけでなく上記コンバートも含む広い意味であることに留意されたい。
【０２０７】
上記の実施形態では、本発明に従うプリンタは通信ネットワークから複合文書データを受信し、また、通信ネットワークを通じて他の機器にリソースのレンダリングを依頼したりしているが、そうした交信が必ずしも通信ネットワークを通じてを行われなくてはならないわけではない。シリアルインタフェースケーブルやパラレルインタフェースケーブルや各種のバスなどを介して、本発明のプリンタ（又はプリンタサーバ）が他のホストコンピュータやプリンタ等の機器と接続されている場合であっても、本発明のプリンタ（又はプリンタサーバ）は上述した実施形態と実質的に同様の動作を行うことができる。
【０２０８】
以上、本発明の好適な幾つかの実施形態を説明したが、それらは本発明の説明のためであって、本発明の範囲をそれら実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、上に説明した実施形態をとは具体的な構成、動作、機能、作用、効果において異なる他の種々の形態によっても実施することができるものである。
【図面の簡単な説明】
【０２０９】
【図１】本発明の印刷システムの第１の実施の形態を示した機能ブロック図。
【図２】本発明の印刷システムの第２の実施の形態を示した機能ブロック図。
【図３】図２に示した高機能プリンタの処理手順を示したフローチャート。
【図４】本発明の印刷システムの第３の実施の形態を示した機能ブロック図。
【図５】本発明の第４の実施形態に係るローカル・ルータの機能を有したネットワーク・プリンタを用いたネットワークシステムの構成図。
【図６】図５に示すネットワーク・プリンタの中継機能の構成図。
【図７】図６に示すネットワーク・プリンタがもつＩＰアドレスのリストを示す図。
【図８】図６に示すネットワーク・プリンタで行われる受信パケットの処理手順を示す説明図。
【図９】図６に示すネットワーク・プリンタで行われる受信パケットの別の処理手順を示す説明図。
【図１０】図６に示すネットワーク・プリンタで行われる受信パケットのさらに別の処理手順を示す説明図。
【図１１】図６に示すネットワーク・プリンタで行われる受信パケットのさらにまた別の処理手順を示す説明図。
【図１２】本発明の第５の実施形態に係るネットワーク対応プリントシステムの構成を示すブロック図。
【図１３】図１２に示すネットワーク対応プリンタの調査処理のフローチャート。
【図１４】図１２に示すネットワーク対応プリンタの転送処理のフローチャート。
【図１５】図１４に示す判断処理のフローチャート。
【図１６】図１２に示すホストのプリンタドライバの処理のフローチャート。
【図１７】プリンタドライバのユーザインタフェース画面例を示す図。
【図１８】本発明の第６の実施形態に係るネットワーク対応プリントシステムの構成を示すブロック図。
【図１９】図１８に示す各プリンタの処理のフローチャート。
【図２０】グループ化されたプリンタの組み合わせのバリエーションを示すブロック図。
【図２１】判断処理の別の例を示すフローチャート。
【図２２】本発明の第７の実施形態を示したブロック図。
【図２３】図２２に示したプリンタ８１の機能構成を示したブロック図。
【図２４】図２３に示したプリンタ８１の処理を示したフローチャート。
【図２５】図２３に示したプリンタ８１のメモリに格納される機器テーブルの例を示した図。
【図２６】図２２に示したプリンタが図２５に示した機器テーブルを作成する処理を示したフローチャート。
【図２７】本発明の第８の実施形態を示したブロック図。
【図２８】図２７に示したプリンタ１５１の処理を示したフローチャート。
【符号の説明】
【０２１０】
１  ホストコンピュータ
２  高機能プリンタ
３、３Ａ、３Ｂ  低機能プリンタ
４  通信ネットワーク
１１  ネットワーク・プリンタ
１２  インターネット
１３、１４、１６  ネットワーク非対応プリンタ
１５  ホストコンピュータ
１７  Ｅｔｈｅｒｎｅｔ（登録商標）
１８、２７  物理層
１９、２８  データリンク層
２０  トランスポート層
５１、７０  ネットワーク対応プリンタ
５２、５３、７１、ｎ、ｍ  下流側のプリンタ
５４  ホスト
５５  インターネット（ネットワーク）
８１、１０１、１０２、１５１、１５２、１５３  プリンタ
９１  通信インタフェース
９２  イメージングコントローラ
１２１  文書アナライザ
１２３  レンダラ
１２５  イメージコンポーザ
９３  印刷エンジン
１０３、１０４、１５４  ホストコンピュータ
１６０、１７０、１８０  通信ネットワーク
【図１】
2006146946.tif 000003
【図２】
2006146946.tif 000004
【図３】
2006146946.tif 000005
【図４】
2006146946.tif 000006
【図５】
2006146946.tif 000007
【図６】
2006146946.tif 000008
【図７】
2006146946.tif 000009
【図８】
2006146946.tif 000010
【図９】
2006146946.tif 000011
【図１０】
2006146946.tif 000012
【図１１】
2006146946.tif 000013
【図１２】
2006146946.tif 000014
【図１３】
2006146946.tif 000015
【図１４】
2006146946.tif 000016
【図１５】
2006146946.tif 000017
【図１６】
2006146946.tif 000018
【図１７】
2006146946.tif 000019
【図１８】
2006146946.tif 000020
【図１９】
2006146946.tif 000021
【図２０】
2006146946.tif 000022
【図２１】
2006146946.tif 000023
【図２２】
2006146946.tif 000024
【図２３】
2006146946.tif 000025
【図２４】
2006146946.tif 000026
【図２５】
2006146946.tif 000027
【図２６】
2006146946.tif 000028
【図２７】
2006146946.tif 000029
【図２８】
2006146946.tif 000030