JP4285474B2 - 印刷システム、方法及びプリンタ - Google Patents

印刷システム、方法及びプリンタ Download PDF

Info

Publication number
JP4285474B2
JP4285474B2 JP2005351752A JP2005351752A JP4285474B2 JP 4285474 B2 JP4285474 B2 JP 4285474B2 JP 2005351752 A JP2005351752 A JP 2005351752A JP 2005351752 A JP2005351752 A JP 2005351752A JP 4285474 B2 JP4285474 B2 JP 4285474B2
Authority
JP
Japan
Prior art keywords
printer
network
function
print
language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005351752A
Other languages
English (en)
Other versions
JP2006146946A (ja
Inventor
敏博 島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005351752A priority Critical patent/JP4285474B2/ja
Publication of JP2006146946A publication Critical patent/JP2006146946A/ja
Application granted granted Critical
Publication of JP4285474B2 publication Critical patent/JP4285474B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、一般には、デジタルプリンタ及びプリンタの利用技術に関し、特に、言語解釈能力、ネットワーク通信機能又はレンダリング能力などの点で性能の異なる複数のプリンタを調和的に使用したり、性能の劣るプリンタを高性能のプリンタと同等に使ったり、複数のプリンタ間で足りない性能を補い合ったりするための技術に関する。
ホストコンピュータからプリンタに供給される印刷コマンドを記述するための言語として種々のものが開発されている。その中には、例えば米国アドビシステムズ社のページ記述言語「ポストスクリプト(PostScript)」(商標)のように、表現能力が非常に多才であって、他の言語では記述できないような複雑なグラフィックスを自在に表現できるものが存在する。このような高機能の高級言語を利用すれば、複雑なグラフィックスを美しく且つ高速に印刷することができる。そのためには、その高機能言語を解釈してレンダリングできる機能をプリンタが持っていなくてはならない。しかし、ポストスクリプトのような高機能言語を解釈できるプリンタは、より低機能な言語しか理解できないプリンタに比較して価格がかなり高い。そのため、例えばLAN等の通信ネットワーク上に複数台のプリンタを接続して使用するような場合、全てのプリンタを高機能言語対応にすると、導入コストが非常に高くなってしまう。
さらに、ネットワークに複数のプリンタを接続した場合、次の様な問題も存在する。すなわち、異なる種類のプリンタ(例えばページプリンタとシリアルプリンタ)や、異なるメーカのプリンタを複数台揃えたとすると、プリンタ毎にプリンタが解釈できる言語が異なる。そのため、ホストコンピュータのユーザは、使用したいプリンタを予め決めて、そのプリンタに合った言語(実際にはプリンタドライバ)を選択しなければならない。しかし、ユーザにとっては、印刷品質さえ保証されればどのプリンタを使用しても構わないであろうから、プリンタの種類やプリンタのドライバを気にせずに、統一的な方法で種々のプリンタを利用できる方が便利である。
従来の通信ネットワーク、例えばインターネットでは、通常1個の端末に対して1個のIPアドレスが割り当てられ、IPアドレスとTCP/IP実行機能とを個々に持ったネットワーク対応端末同士の交信がネットワークの基本である。
そのため、例えば職場内の全てのプリンタをインターネットに導入する場合、既存のプリンタの中にはインターネットに直接接続できない機種も多いため、それら多くのプリンタに高価なネットワーク・アダプタを導入しなければならない。そのための経済上の負担は非常に大きい。また、従来のプリンタの中にはネットワーク対応にすることが不可能な機種も多い。
この問題をより一般化した表現で述べれば、従来は、ネットワーク非対応の端末もネットワーク対応の端末も含めて、複数台の端末をまとめて1グループを構成し(例えば、職場内の全てのプリンタを1グループにまとめて)、グループ全体をネットワークに導入できるような中継機能をもった手段が提供されていない、ということである。
ところで、ネットワークにおける中継機能に関しては、従来の回線上には、インターネット上を転送されるデータを目的の端末まで届けるためのルーティング(通信経路の選択、隣接ネットワーク間との変換処理、ネットワークのIPアドレスの管理機能等)と呼ばれる中継動作を行うルータが存在する。しかし、このルータは、あくまでインターネット内でのドメイン間の中継を行うものであるから、上述したようなネットワーク非対応端末を含んだグループをネットワークに取込みたいという課題を解決する手段にはなり得ない。
インターネットにおけるWWWサービスで提供される例えばHTMLで書かれた文書は、テキスト文字の中に音声、動画、静止画などの他種類のリソースが埋め込まれた複合文書である。また、インターネットの電子メールでは、MIMEによって、テキスト文字に音声、動画、静止画などの他のリソースを添付した複合文書を送信することができる。このような複合文書には、例えば、文字ファイルはテキスト形式、HTML形式、またはそれを作成したアプリケーション独自のファイル形式などで、静止画はJPEG形式またはGIF形式などで、動画はMPEG形式などで、というように、複数種のリソースがそれぞれ独自のファイル形式で組み込まれている。
従来のプリンタは、ある特定のプリンタ制御言語に対応したレンダラ(レンダリングつまり文書の印刷イメージの作成を行うモジュール)を備えているだけに過ぎない。そのため、従来のプリンタをホストコンピュータに接続した従来の印刷システムにおいては、上記のような複合文書を印刷する場合、ホストコンピュータが、その複合文書に含まれる各リソースのファイル形式を解釈し、その文書データをプリンタの理解できる特定のプリンタ制御言語で表現したデータに変換してプリンタに送っている。プリンタは、その特定のプリンタ制御言語で表現したデータを解釈して、その文書の印刷イメージを作成して印刷を行う。
このように、従来のプリンタは特定のプリンタ制御言語で表現されたデータしか理解できないから、複合文書データを印刷しようとする場合、ホストコンピュータで複合文書に含まれる各種のファイル形式を解釈してプリンタ制御言語のデータに変換しなければならない。しかし、特にインターネットのようなネットワークに接続できるネットワーク対応プリンタの場合、TCP/IPのようなネットワーク通信プロトコルの実行機能を有しているのであるから、その通信プロトコルで伝送することのできる複合文書をプリンタが解釈して印刷できれば、非常に便利である。
従って、本発明の目的は、言語解釈能力、ネットワーク通信機能又はレンダリング能力などの点で性能の異なる複数のプリンタをより便利に経済的に利用できるようにすることにある。
本発明の別の目的は、性能の劣るプリンタを、性能の優れたプリンタのように使用できるようにするための経済的な技術を提供することにある。
本発明のまた別の目的は、解釈できる言語の異なる複数台のプリンタを、単純に一つの言語で統一的に制御できるようにすることにある。
本発明の別の目的は、高機能言語を解釈できないプリンタを、高機能言語を解釈できるプリンタのごとくに使用できるようにすることにある。
本発明のまた別の目的は、簡単でしかも低コストな方式で複数のプリンタを自由に利用できるようにすることにある。
本発明の更に別の目的は、単一のプリンタドライバで、複数の異なる機種のプリンタに対して設定を行えるようにすることにある。
本発明の更にまた目的は、単独ではネットワーク接続が難しいような装置、例えばネットワーク非対応のプリンタ、の1台以上をまとめてネットワークに接続できるようにすることにある。
本発明のまた別の目的は、簡単でしかも低コストな方式でネットワーク非対応プリンタをネットワークに導入できるようにすることにある。
本発明の更に別の目的は、ファイル形式の異なる複数のリソースを含んだ複合文書を受信して印刷することができるプリンタ、又はそれを実質的に可能とする環境を提供することにある。
本発明の第1の側面に従う印刷システムは、第1の言語で書かれた第1の印刷コマンドを他の第2の言語で書かれた第2の印刷コマンドに変換する代理サーバと、代理サーバより第2の印刷コマンドを受信して解釈し印刷を行う、少なくとも1つのプリンタとを備えている。
このシステムでは、代理サーバにプリンタが接続される。接続形態は、代理サーバ1台に対しプリンタ1台でもよいし、代理サーバ1台にプリンタ複数台でもよいし、代理サーバ複数台にプリンタ複数台でもよいし、専用ケーブルで接続してもよいし、ネットワークを介して接続してもよい。代理サーバは例えばポストスクリプトような第1の言語の印刷コマンドを受けると、これをプリンタが解釈できる第2の言語の印刷コマンドに変換して、プリンタに送出する。プリンタは受信した第2言語の印刷コマンドを解釈して印刷を行う。これにより、プリンタは、実際には第1の言語が解釈できなくても、外部から視ると第1の言語に対応したプリンタと実質的に同等に見える。
尚、代理サーバはプリンタであってもよく、その方がむしろ好ましい。
本発明の第2の側面に従う印刷方法は、第1の言語で書かれた第1の印刷コマンドを他の第2の言語で書かれた第2の印刷コマンドに変換する過程と、変換された第2の印刷コマンドを、第2の言語を解釈することができるプリンタに転送する過程とを有する。
本発明の第3の側面に従う代理サーバは、第1の言語で書かれた第1の印刷コマンドを他の第2の言語で書かれた第2の印刷コマンドに変換するコマンド変換手段と、少なくとも1つのプリンタと接続することができ、コマンド変換手段からの第2の印刷コマンドを、接続されたプリンタへ転送する転送手段と備えている。
本発明の第4の側面に従う代理サーバは、第1の言語が解釈できるホスト装置と第2の言語が解釈できるプリンタとに接続することができるものであって、プリンタから第2の言語で書かれたプリンタステータスを示す第1のステータスメッセージを受信し、この第1のステータスメッセージを第1の言語で書かれた第2のステータスメッセージに変換する変換手段と、この変換手段からの第2のステータスメッセージをホスト装置へ転送する転送手段とを有する。
本発明の第5の側面に従うプリンタは、第1の言語で書かれた第1の印刷コマンドを解釈して印刷を行う印刷手段と、第1の印刷コマンドを他の第2の言語で書かれた第2の印刷コマンドに変換するコマンド変換手段と、第2の言語が解釈できる少なくとも1つの別のプリンタと接続することができ、コマンド変換手段からの第2の印刷コマンドを、接続されたプリンタへ転送する転送手段とを備えている。
好適な実施の形態では、本発明のプリンタは、第1の印刷コマンドを解釈してプリミティブのラスタイメージのレンダリングを行い、このレンダリングで得られたラスタイメージを含むデータを第2の言語の印刷コマンドのフォーマットに組み込むことにより第2の印刷コマンドを作成する。そのため、このプリンタに接続された別のプリンタによる印刷には、第1の言語の表現能力が活かされることになる。従って、第1の言語がポストスクリプトのような高機能な言語である場合は、その高い表現能力を活かした高度な印刷結果が得られる。
また、この実施形態では、本発明のプリンタは、所定の複数の言語の中から第2の言語を選択する手段を有していて、このプリンタに別のプリンタが新規に接続されたり、変更されたり、追加されたりした場合に、その接続されたプリンタに応じて第2言語を選定する。従って、接続されているプリンタに確実に印刷を実行させることができる。
また、この実施形態では、本発明のプリンタは複数の他のプリンタと接続可能であり、接続された複数プリンタの中から印刷を実行させるプリンタを選択し、選択したプリンタの解釈できる言語を判定し、第1の印刷コマンドを判定した言語の印刷コマンドに変換して、選択したプリンタに転送する。印刷を実行させるプリンタの選択は、例えば、印刷コマンドが宛て先プリンタを指定していれば、その指定されたプリンタを選択する、或は、宛て先指定が無ければ、待機状態のプリンタの中から適当なものを選択するなどの方法がとれる。いずれにせよ、選択したプリンタの対応言語を判定してその言語にコマンドを変換するので、選択したプリンタに確実に印刷を行わせ得ると共に、複数台のプリンタを第1言語で統一的に制御できる。
また、この実施形態では、第1の言語はポストスクリプトのように画像表現能力の高い高機能言語であり、一方、第2の言語は画像表現能力の低い低機能言語である。従って、1台の高機能言語対応プリンタがあれば、これに高級言語非対応の安い低機能をプリンタを接続して、高機能言語対応の印刷システムを構築することができる。
更に、この実施形態では、本発明のプリンタは、自分自身で印刷するか、他のプリンタへ変換コマンドを転送するかを選択するための選択手段を備えている。例えば、受信した印刷コマンドが宛て先のプリンタの指定を含んでいて、その宛て先プリンタが自分自身であれば自分自身で印刷を行い、一方、宛て先プリンタ他のプリンタであればそのプリンタに変換コマンドを転送する。或は、本発明のプリンタがモノクロ印刷専用のプリンタである場合、受信した印刷コマンドがモノクロ印刷を指定していれば自分自身で印刷し、カラーを指定していれば、カラー印刷ができる他のプリンタを選んで、そのプリンタに変換コマンドを転送する。後者の場合、本発明のプリンタが例えばポストスクリプト対応のモノクロレーザプリンタであった場合、これに安価なカラープリンタ(例えばカラーインクジェットプリンタ)を接続することによって、ポストスクリプト対応のカラープリンタとほぼ同等の機能を安価に獲得できることになる。
本発明の第6の側面に従うプリンタは、第1の言語が解釈できる第1の外部装置と第2の言語が解釈できる第2の外部装置とに接続することができるものであって、第1の外部装置から受信した第1の言語で書かれた情報を第2の言語で書かれた情報に変換して第2の外部装置へ転送する第1の変換転送手段と、第2の外部装置から受信した第2の言語で書かれた情報を第1の言語で書かれた情報に変換して第1の外部装置へ転送する第2の変換転送手段との内の少なくとも一方の変換転送手段を備えている。
本発明の第7の側面に従うプリンタは、ホスト装置と他のプリンタとに接続することができるものであって、ホスト装置に対して他のプリンタの代理として働く代理サーバを備えている。
本発明の第8の側面に従うローカル・ルータは、通信ネットワークに接続でき、このネットワーク上での複数の場所を示す複数のネットワーク・アドレスを有していて、ネットワークから到来した上記複数のネットワーク・アドレスのいずれかに宛てた通信メッセージに対して応答するネットワーク通信手段と、上記複数のネットワーク・アドレスのいずれかに宛てた通信メッセージに含まれるデータを所定の複数の転送先へ転送することができ、その通信メッセージのネットワーク・アドレスに応じてそのデータの転送先を選択するデータ転送手段とを備える。
本発明のローカル・ルータに、データ転送先としてネットワーク非対応の装置(例えばプリンタ)を接続しておけば、このローカル・ルータがネットワークに対する通信処理を、それらネットワーク非対応装置に代行して行い、ネットワークから受信したデータをネットワーク非対応装置へ転送する。ネットワーク側から見れば、ネットワーク非対応装置がネットワーク対応装置と同様に見える。このように、ネットワーク非対応装置をネットワークに導入することができる。
本発明の第9の側面に従うネットワーク・プリンタは、上記のローカル・ルータの機能を持つとともに、上記データ転送先の中の少なくとも一つとして、自分自身の印刷処理手段を有している。
本発明の第10の側面に従うネットワーク・プリンタは、通信ネットワーク及び他の装置と接続でき、自己及び自己に接続した他の装置を含む装置グループに割り当てられた全てのネットワーク・アドレスを有して、ネットワーク上のホストからの上記装置グループに属する装置の全てのネットワーク・アドレスのいずれかを含む通信に対して応答して、その装置グループに属する複数の装置とホストとの交信を中継する手段を備えている。
これら本発明の第9及び第10の側面に従うネットワーク・プリンタによれば、これに他のネットワーク非対応の装置(例えばプリンタ)を接続しておけば、このネットワーク・プリンタは、自己のためのネットワークとの通信処理は勿論、他のネットワーク非対応装置のためのネットワークとの通信処理も全て代行して行い、通信のアドレスに応じてデータを自己で処理したり他のネットワーク非対応装置へ転送したりする。従って、このネットワーク・プリンタに加えて、単独ではネットワーク接続できないネットワーク非対応装置もグループとしてネットワークに取込み、物理的には1台のネットワーク・プリンタでありながら複数のネットワーク・アドレスをもった複数台のネットワーク対応装置の如くに機能することができる。
本発明の第11の側面に従うネットワーク・プリンタは、ホストから通信ネットワークを通じて印刷要求を受信し、受信した印刷要求を複数の態様で処理することができ、前記受信した印刷要求の内容に応じて、その印刷要求を処理する態様を選択する手段を備えている。このネットワーク・プリンタによれば、ホストから受信した印刷要求の内容(例えば、印刷要求の宛て先装置を示すネットワークアドレス、印刷要求の宛て先アプリケーションを示すポートアドレスなど)に応じて、その印刷要求の処理態様を複数の処理態様の中から選択する(例えば、セキュリティ・レベルを選択する、用紙サイズを選択する、モノクロ印刷かカラー印刷かを選択する、そのネットワークプリンタに他のプリンタが接続されている場合にその印刷要求の印刷を行うプリンタを選択するなど)ことができる。従って、物理的に1台のネットワーク・プリンタでありながら、ホストから見ると、複数台のネットワーク対応プリンタの如くに機能することができる。
本発明のローカル・ルータ及びプリンタの上述した特徴的機能手段は、典型的にはコンピュータを用いて実現することができる。そのような機能手段としてコンピュータを動作させるためのコンピュータプログラムは、ディスク型記憶装置や半導体記憶装置や通信回線などの種々の媒体からコンピュータに提供することができる。
ところで、本明細書でいう「ネットワーク・アドレス」という用語は、その意味範疇に、ネットワーク上のノードを指定するアドレスを含むことは勿論であるが、それだけでなく、あるノードの装置内の場所、ポート、プロセス又は処理種別などを指定する情報も含むということに注意されたい。例えば、TCP/IPプロトコルでは、そのネットワーク層で処理されるIPアドレスはネットワーク・アドレスの典型例ではあるが、それだけでなく、例えばトランスポート層で処理されるポート番号や、アプリケーション層で処理される判別子なども本明細書でいうネットワーク・アドレスの一種である。
本発明の第12の側面に従うプリンタは、ホストと接続するためのホスト接続手段と、他のプリンタと接続するためのプリンタ接続手段と、前記ホストから受信した印刷ジョブデータを前記接続された他のプリンタに転送する転送手段とを備える。このプリンタをホストに接続し、このプリンタに他のプリンタを接続することによって、このプリンタ及び他のプリンタを含む複数台のプリンタをホストが利用することができるようになる。
本発明のプリンタは、望ましくは、ネットワークに接続してネットワーク上のホストと通信するネットワーク接続手段を有することができる。それにより、ネットワーク上のホストは、ネットワークを通じて他のプリンタも利用できる。つまり、他のネットワーク非対応プリンタをネットワークに導入することができる。
本発明のプリンタは、望ましくは、接続された他のプリンタの性能を調査する性能調査手段をさらに備えることができる。それにより、調査した性能に基づいて他のプリンタを管理することができるようになる。その管理機能の具体的内容には、例えば、調査した他のプリンタの性能と自己の性能とをホストに通知する性能通知機能や、他のプリンタの性能と自己の性能とに基づいて、ホストからの印刷ジョブデータを自己及び他のプリンタからなるプリンタグループ内のどのプリンタで処理すべきかを判断して、選んだプリンタにジョブデータを転送する判断・転送機能などが考えられる。性能通知機能を設けると、ホストのプリンタドライバ側でプリンタグループの性能に応じた対応ができるようになる。判断・転送機能を設けると、ホスト側でプリンタドライバ側で特にプリンタを指定しなくても、印刷ジョブを処理するのに適したプリンタで自動的に印刷が行われる。勿論、プリンタドライバが指定したプリンタへジョブデータを転送する機能を本発明のプリンタに設けることも可能である。
本発明のプリンタは、上述した各種手段を当初から備えているものであってもよいが、必ずしもそうである必要はない。例えば、上述の手段を元々は備えていないプリンタに、上述の手段を備えたオプション品を取り付けることによって、あるいは、プリンタ内のマイクロコンピュータに外部の媒体から上述した手段のためのコンピュータプログラムをロードすることによって、あるいは、オプション品とプログラムロードとを組み合わせることによって、本発明のプリンタを実現することも可能である。
本発明のプリンタをモノクロページプリンタとして実施すると、これにカラーインクジェットプリンタを接続することによって、高速なモノクロ印刷と高品質なカラー印刷とが可能なプリントシステムが廉価に実現できる。また、本発明のプリンタを例えばアドビシステムズ社のポストスクリプトのような高表現機能言語対応のプリンタとして実施し、これに高表現機能言語非対応の標準的プリンタを接続し、かつ、本発明のプリンタにおいて標準的プリンタのためのレンダリングを行うようにすると、高表現機能言語対応のプリントシステムが廉価に実現できる。
本発明の第13の側面に従うプリンタ管理装置は、ホストと接続するためのホスト接続手段と、プリンタと接続するためのプリンタ接続手段と、ホストから受信した印刷ジョブデータを前記接続されたプリンタに転送する転送手段とを備える。このプリンタ管理装置にホストと1台又は複数台のプリンタを接続することによって、ホストからそれらプリンタを利用することが可能となる。このプリンタ管理装置にさらにネットワーク接続手段を設ければ、ネットワーク非対応プリンタをネットワークに導入することができるようになる。このプリンタ管理装置に、上述した性能調査手段などををさらに設ければ、一層望ましい。
本発明の第14の側面に従うプリンタは、ホスト又は他のプリンタのような上流側装置と接続するための上流接続手段と、別の他のプリンタのような下流側装置と接続するための下流接続手段と、上流側装置から受信した印刷ジョブデータを下流側装置に転送する転送手段とを備える。このプリンタを複数台数珠つなぎにして、最上流のプリンタをホストと接続することにより、それら複数台のプリンタをホストは利用することができる。
望ましくは、少なくとも最上流のプリンタにネットワーク接続手段を設けることができる。これにより、その下流側のネットワーク非対応プリンタをネットワークに導入することができる。
また、望ましくは、数珠つなぎの各プリンタに、それぞれの下流側プリンタの性能を調査する性能調査手段を設けることができる。
このプリンタも、元々上記手段を備えたものでもよいし、元々備えないプリンタにオプション品やプログラムロードによって上記手段を付与することで実現してもよい。
本発明の第15の側面に従うプリンとシステムは、第1のプリンタに他のプリンタを接続してなるプリンタグループと、第1のプリンタ用のプリンタドライバを搭載したホストとを備え、第1のプリンタは、ホストから印刷ジョブデータを受信する受信手段と、受信した印刷ジョブデータをプリンタグループ内のいずれかのプリンタへ転送する転送手段とを有する。このシステムによれば、ホストはプリンタグループ内のプリンタを利用することができる。
第1のプリンタはネットワーク接続手段を有することが望ましく、これにより、プリンタグループ全体をネットワークに導入することができる。
第1のプリンタはさらに、他のプリンタの性能を調査する性能調査手段を有することが望ましい。
本発明の第16の側面に従うプリンタドライバは、プリンタに対して性能通知要求を発する手段と、プリンタから性能通知要求を受けて、通知された性能に応じたユーザインタフェース画面を作成し表示する手段と、ユーザインタフェース画面でユーザが選択した設定値を指定したデータをプリンタへ送信する手段とを備える。このプリンタドライバによれば、プリンタの性能に応じて柔軟な対応ができる。特に、このプリンタドライバは、本発明のプリントステムのプリンタグループにおける第1のプリンタ用のプリンタドライバとして好適である。
また、この本発明のプリンタドライバを一つホストにインストールしてけば、使用したい全てのプリンタ機種の各々の専用ドライバをホストにインストールする必要が無くなる。本発明のプリンタドライバが、それ一つで、必要に応じて各プリンタから性能通知を受けて、動的に各プリンタ用のドライバに変身して表示および設定処理を行うからである。
本発明の第17の側面に従うプリンタは、複合文書データを受信又は生成する複合文書手段と、所定の複数のファイル形式の各々に対応し、記複合文書データに含まれているリソースのうち、それぞれが対応するファイル形式のリソースのレンダリングを行う複数のレンダラと、この複数のレンダラのレンダリング結果を統合して最終的な印刷イメージを作成するイメージコンポーザと、その印刷イメージを印刷する印刷エンジンとを備える。
このプリンタは複合文書データの印刷が可能であり、特に、インターネットのようなネットワークに接続できるネットワーク対応プリンタとして構成されると、ネットワーク上を伝送される複合文書をそのまま受信して印刷できるので実用上のメリットが大きい。
このプリンタは望ましくは、他の機器とも接続され、そして、複合文書データに含まれるリソースのファイル形式を識別し、自己のレンダラのいずれもが対応しない非対応ファイル形式が含まれていた場合、その非対応ファイル形式のリソースを、他の機器に転送してレンダリングを依頼し、そして、その機器からレンダリング結果を受けてイメージコンポーザ又は自己のレンダラに渡す文書アナライザをさらに備えることができる。これにより、自分では対応できないファイル形式が含まれている複合文書も完全に印刷できる。
この場合、他の機器がレンダリングできるファイル形式を示した機器情報を有していて、上記文書アナライザが、その機器情報を参照して、非対応ファイル形式のリソースをレンダリングできる機器を選択するようになっていると、確実にレンダリングができるので好ましい。さらに、その機器情報を作成する手段を備えていると、他の機器の構成変更やレンダリング能力の変更などにも対応できるので一層好ましい。
また、自プリンタでレンダリングできないファイル形式のリソースについては、その部分を空白にして又は適当な代理イメージに置き換えて印刷する機能や、ユーザの指定したファイル形式のリソースだけをレンダリングして印刷する機能などを、このプリンタに付加してもよい。
本発明の第18の側面に従うプリンタは、1台以上の他の機器と通信可能に接続する通信インタフェースと、複合文書データを受信又は生成する複合文書手段と、この複合文書データに含まれるリソースのファイル形式を識別し、少なくとも一つのファイル形式のリソースを、他の機器の内の選択された機器に転送してレンダリングを依頼し、そして、その機器からレンダリング結果を受ける文書アナライザと、そのレンダリング結果から最終的な印刷イメージを作成するイメージコンポーザと、その印刷イメージを印刷する印刷エンジンとを備える。
このプリンタは、自分では複合文書をレンダリングする能力がなくても、他の機器のレンダリング能力を利用することで、複合文書を印刷することが可能である。勿論、このプリンタも、自分で幾つかのファイル形式に対応したレンダラを備えることもできる。このプリンタも、インターネットのようなネットワークに接続できるネットワーク対応プリンタとして構成されると、ネットワークから複合文書をそのまま受信でき、かつ、ネットワーク上の種々の機器を利用できるので、実用上のメリットが高い。
また、他の機器でも自プリンタでもレンダリングできないファイル形式のリソースについては、その部分を空白にして又は適当な代理イメージに置き換えて印刷する機能や、ユーザの指定したファイル形式のリソースだけをレンダリングして印刷する機能などを、このプリンタに付加してもよい。
本発明の第19の側面に従うプリンタサーバは、1台以上のプリンタを含む他の機器と通信可能に接続する通信インタフェースと、複合文書データを受信又は生成する複合文書手段と、その複合文書データを印刷すべきプリンタを他の機器の中から選択する手段と、その複合文書データに含まれるリソースのファイル形式を識別し、選択されたプリンタがレンダリングできるファイル形式のリソースをその選択されたプリンタに転送し、かつ、その選択されたプリンタがレンダリングできないファイル形式のリソースについては、これをレンダリングした結果をその選択されたプリンタに供給する文書アナライザとを備える。
このプリンタサーバをプリンタと組み合わせて用いれば、そのプリンタが自分では複合文書をレンダリングする能力がなくても、他の機器のレンダリング能力を利用することで、複合文書を印刷することが可能である。特に、例えば職場において、このプリンタサーバと職場の全プリンタとをLANなどで接続することにより、個々のプリンタを複合文書対応プリンタにしなくても、全てのプリンタで複合文書が印刷できるようになる。
このプリンタサーバは、上述した本発明のプリンタに組み込まれた形態で実施されてもよい。そのようにした本発明のプリンタは、これに他のプリンタと接続しておくと、自分でも複合文書が印刷できるし、他のプリンタに複合文書を印刷させることもできるので、特に、LANなどに接続しておくと実用上のメリットが大きい。
本発明のプリンタやプリンタサーバの主要な構成要素であるレンダラや文書アナライザは、典型的にはプリンタ内やプリンタサーバ内のコンピュータを用いて実施することができるが、そのためのコンピュータプログラムは、各種半導体メモリ、各種ディスク型ストレージ、通信ネットワークなどの種々の媒体を通じてそのコンピュータにインストール又はロードすることができる。
本発明は、上述したプリンタやプリンタサーバに他の機器を接続してなる印刷システムも提供する。この印刷システムは、ホストコンピュータとプリンタとを1対1でケーブル接続した小規模な形態から、LANやWANのような形態、さらにはインターネットのような大規模ネットワークの形態まで、ざまざまな形態で実施することができ、よって、その応用範囲は極めて広い。
図1は本発明の印刷システムの第1の実施の形態を示した機能ブロック図である。
ホストコンピュータ1は、例えばパーソナルコンピュータであって、所定の一つの高機能言語(例えばポストスクリプト)で書かれた印刷コマンドを送出する。このホストコンピュータ1に高機能プリンタ2が接続され、この高機能プリンタ2に低機能プリンタ3が接続されている。
高機能プリンタ2は、ホストコンピュータ1からの高機能言語で書かれた印刷コマンドを解釈して印刷すべきイメージをレンダリングするレンダリング機能と、そのレンダリングしたイメージを自分自身で印刷する印刷機能と、そのレンダリングしたイメージ(この場合のイメージは、最終的なバンドイメージ又はページイメージでもよいが、処理効率の点では中間コード形式のイメージの方が好ましい)を低機能プリンタ2が解釈できる所定の低機能言語で書かれた印刷コマンドの形式に仕立てて低機能プリンタ2に転送する転送機能と、この2つの機能を自動的に選択する選択機能(例えば、印刷コマンドの宛て先プリンタが自分自身であれば印刷機能を、低機能プリンタ3であれば転送機能を選択する)とを備えている。更に、高機能プリンタ2は、自己のプリンタステータスを高機能言語で書いたステータスメッセージの形でホストコンピュータ1へ通知するステータスリプライ機能と、低機能プリンタ3のプリンタステータスを低機能言語で書いたメッセージを低機能プリンタ3から受信して、これを高機能言語のステータスメッセージの形に変換してホストコンピュータ1へ送る代理ステータスリプライ機能とを備えている。
低機能プリンタ3は、高機能言語は解釈できないが、上記した低機能言語の印刷コマンドであれば、これを解釈して印刷が行えるプリンタである。低機能プリンタ3は、自己のプリンタステータスを示す低機能言語で書かれたメッセージを高機能プリンタ2へ送るステータスリプライ機能も有している。ここで、低機能言語は、高機能言語よりは表現能力が劣る言語であるが、これら低機能言語しかサポートしていない低機能プリンタ3は、通常、高機能言語をサポートしている高機能プリンタ2に比較して価格がかなり安い。
本実施形態の動作について説明する。ホストコンピュータ1からの高機能言語で書かれた印刷コマンドが高機能プリンタ2に受信されると、高機能プリンタ2はその印刷コマンドを解釈する。解釈の結果として、高機能プリンタ2は、まずその印刷コマンドの宛て先を認識し、そして、印刷すべき各ページ内の個々のプリミティブ(画像要素;つまり、個々の文字、図形、模様、又はそれらの空間的に連結した集合など)をレンダリングして各ページの中間コードを作成して自分自身のRAM(図示せず)に一旦保存する。印刷コマンドの宛て先が高機能プリンタ2である場合、続いて高機能プリンタ2はRAM内の中間コードから完全なバンドイメージを作成し、これを自分自身の印刷エンジン(図示せず)に転送して自分自身で印刷を行う。一方、印刷コマンドの宛て先が低機能プリンタ3である場合、続いて高機能プリンタ2はRAM内の中間コードを、低機能言語の印刷コマンドのフォーマットに組込んでその印刷コマンドを仕立て、これを低機能プリンタ3に転送する。低機能プリンタ3は、受信した低機能言語の印刷コマンドを解釈し、印刷イメージをレンダリングしてこれを印刷する。
高機能プリンタ2はまた、ホストコンピュータ1からの要求に応答して(または自発的に)、自己のプリンタステータスを高機能言語で書いたステータスメッセージの形でホストコンピュータ1に送る。更に、高機能プリンタ2は、ホストコンピュータ1から低機能プリンタ3に対するステータス要求を受けると、このステータス要求を低機能言語のステータス要求の形に変換して低機能プリンタ3に送る。低機能プリンタ3は、このステータス要求に応答して(又は自発的に)、自己のプリンタステータスを低機能言語で書いたステータスメッセージの形で高機能プリンタ2に送信する。すると、高機能プリンタ2は、この低機能言語のステータスメッセージからプリンタステータスを抽出し、これを高機能言語のステータスメッセージのフォーマットに組込むことにより高機能言語のステータスメッセージを仕立て、これをホストコンピュータ1に転送する。
高機能プリンタ2が自分自身で印刷を行う場合、高機能言語の持つ高い表現力を活かした高度な印刷結果が得られることは言うまでもない。さらに、低機能プリンタ3で印刷を行う場合にも、高機能プリンタ2が高機能言語から低機能言語への変換を行うため、ホストコンピュータ1としては低機能プリンタ3がどのような言語が解釈できるのかを意識することなく、一つの高機能言語だけで低機能プリンタ3を制御できると共に、イメージのレンダリングは高機能プリンタ2が高機能言語に基づいて行うので、やはり高機能言語の持つ高い表現力を失うことなく高度な印刷結果が得られる。ホストコンピュータ1はまた、高機能プリンタ2のプリンタステータスを把握できるだけでなく、高機能プリンタ2の代理ステータスリプライ機能によって、低機能プリンタ3のプリンタステータスも把握することができる。要するに、安価な低機能プリンタ3を高機能プリンタ2と実質的に同等に使用することができる。
本実施形態の一つの変形例として、高機能プリンタ2が例えばモノクロのレーザープリンタである場合、これに例えばカラーのインクジェットプリンタを低機能プリンタ3として接続し、高機能プリンタ2に高機能言語で書かれたカラー印刷コマンドが入力されると、高機能プリンタ2はそのカラー印刷コマンドから各色成分の中間コードを作成し(モノクロの中間コード作成プロセスを各色成分プレーン毎に繰り返せばよい)、それを低機能言語の印刷コマンドに仕立ててカラーインクジェットプリンタ3に送出するように構成することもできる。これにより、従来ならばカラーの高機能プリンタ(現状では極めて高価である)でなければ実現できなかった高機能言語を活かした高度なカラー印刷が、モノクロの高機能プリンタとカラーの低機能プリンタという低コストの構成で実現することができる。尚、この場合、高機能プリンタ2の選択機能は、上述の実施形態のような印刷コマンドの宛て先ではなく、印刷コマンドの色指定がモノクロかカラーかに応答することになる。
また、別の変形例として、高機能プリンタ2が、自分自身と低機能プリンタ3の負荷状態に応答して選択機能を働かせるようにすることもできる(例えば、自分自身が印刷中で低機能プリンタ3が待機中ならば転送機能を、その逆ならば印刷機能を選択する)。
さらに別の変形例として、高機能プリンタ2に代えて、高機能プリンタ2から印刷機能を除去した機能をもつ処理装置を用いてもよい。つまり、前述の実施形態では、高機能プリンタ2は「高機能プリンタ」そのものとして機能すると共に、低機能プリンタ3の代理として高機能言語を解釈する「代理サーバ」としても機能したのであるが、この変形例では上記処理装置は専ら「代理サーバ」として機能するのである。
図2は本発明の印刷システムの第2の実施形態を示した機能ブロック図である。高機能プリンタ2は例えば社内のイントラネットワークのような内部通信ネットワーク5を介して複数台の低機能プリンタ3A、3B、…と接続されていると共に、例えばインターネットのような外部通信ネットワーク4にも接続されている。尚、図示してないが、高機能プリンタ2には、低機能プリンタ3A、3B、…だけでなく、他の高機能プリンタが接続されていても勿論かまわない。
高機能プリンタ2は、外部又は内部の通信ネットワーク4又は5上のホストコンピュータ(図示せず)から、ポストスクリプトのような高機能言語で書かれた印刷コマンドを受信する。すると、高機能プリンタ2は、受信した印刷コマンドに基づいて自分自身で印刷を行う(印刷機能)か、又は、低機能プリンタ3A、3B、…の中から1台を選び、受信した高機能言語の印刷コマンドを、選んだ低機能プリンタが理解できる低機能言語の印刷コマンドに変換してその選んだ低機能プリンタに転送する(転送機能)。転送機能を働かせる場合、低機能プリンタ3Aが例えばA言語に対応し、プリンタ3bが例えばB言語に対応しているとすると、高機能プリンタ2は、プリンタ3Aを選んだ時は高機能言語印刷コマンドをA言語の印刷コマンドに変換し、プリンタ3bを選んだときは高機能言語印刷コマンドをB言語の印刷コマンドに変換する。A言語又はB言語への変換のやり方は、図1に示した前述の実施形態のそれと同様である。
更に、高機能プリンタ2は、前述したステータスリプライ機能と代理ステータスリプライ機能も有している。従って、高機能プリンタ2は、プリンタ3aからA言語で書かれたプリンタステータスのメッセージを受けると、これを高機能言語のプリンタステータスのメッセージに変換してホストコンピュータに転送し、また、プリンタ3bからB言語で書かれたプリンタステータスのメッセージを受けると、これを高機能言語のプリンタステータスのメッセージに変換してホストコンピュータに転送する。
次に本実施形態の動作について図3のフローチャートに従って説明する。高機能プリンタ2は、ステップ301にて通信ネットワーク4から印刷要求を受信すると、ステップ302にて、印刷を実行させるプリンタを選択する。ここで、印刷プリンタの選択は、例えば次のように行う。即ち、印刷コマンドに宛て先プリンタの指定があった場合、その指定されたプリンタを選択する。宛て先指定がなかった場合は、待機中のプリンタの中から適当な一台を選択する(例えば、待機中のプリンタの中から、予め定めてある各プリンタの優先順位又は識別番号の順で選択する、或は、累積使用頻度の少ない順に選択するなど)。また、印刷コマンドの色指定がカラーである場合は、必ずカラープリンタの中から選択し、色指定がモノクロの場合は、出来るだけモノクロプリンタの中から選択する。待機中のプリンタがなかった場合は、印刷コマンドの発信元へビジー等の応答メッセージを返送する。
次に高機能プリンタ2はステップ303にて、選択したプリンタが高機能言語(例えばポストスクリプト)を解釈できるかどうかを判定し、できる場合(例えば自分自身や他の高機能プリンタを選択した場合)はステップ312に進み、できない場合(例えば低機能プリンタ3A、3Bを選択した場合)はステップ304へ進む。ステップ312に進んだ場合、高機能プリンタ2は通信ネットワーク4から後続の印刷コマンドを受信しつつ、ステップ313で、受信した印刷コマンドを選択した高機能プリンタにそのままの形で送出するか、又は自分自身を選択した場合は、印刷コマンドを解釈して中間コードを生成し、更に中間コードからバンドイメージを展開して印刷を行う。この動作を印刷コマンドの最後まで実行した後(ステップ314)、処理を終了する。
一方、ステップ304へ進んだ場合、高機能プリンタ2は、選択したプリンタが解釈できる言語が所定の幾つかの低機能言語(例えばA言語とB言語)の内のどれであるかをチェックする。続いて、チェックの結果に基づいて変換先の言語を決定する。例えば所定の低機能言語がA言語とB言語の2種類だけである場合、チェックの結果がA言語であればステップ305へ進んで、変換先の言語をA言語と決定し、一方、チェック結果がA言語でなければ、ステップ306へ進み、変換先の言語をB言語と決定する。
次に高機能プリンタ2はステップ307にて、後続の印刷コマンドを受信しつつ、受信した印刷コマンドを解釈して、個々のプリミティブのラスタイメージをレンダリングして中間コードを作成してRAMに一旦格納する。このようにして、1ページ分の中間コードを作成する(ステップ308)。次に、高機能プリンタ2はステップ309にて、1ページ分の中間コードを、ステップ305又は306で決定した変換先の低機能言語の印刷コマンドフォーマットに組み込んで、その低機能言語の印刷コマンドを作成する。続いて、高機能プリンタ2はステップ310にて、作成した低機能言語の印刷コマンドを選択したプリンタに送出する。このようにして1ページ分の中間コードの全てを印刷コマンドに仕立てて選択プリンタに送出する(ステップ311)。高機能プリンタ2は、ステップ307から311までの処理を最後のページなで実行した後(ステップ315)、処理を終了する。
ところで、上述のステップ304でのチェックは、例えば次の様な方法で行うことができる。その一つは、ネットワーク5上のプリンタ3A、3B、…が対応できる言語を例えばテーブルなどの形で高機能プリンタ2に登録しておき、その登録データを参照する方法である。この場合の対応言語の登録は、高機能プリンタ2がプリンタ3A、3B、…に対応言語を問い合わせて自動的に行ってもよいし、オペレータがキーボード等から手作業で行ってもよい。また、チェックの別の方法は、高機能プリンタ2が、印刷コマンドを受信する都度に、選択したプリンタに対応言語を問い合わせる方法である。この場合も、問い合せて確認した言語をそのプリンタに対応づけて高機能プリンタ2内のテーブルなどに登録しておけば、以後同じプリンタを選択した場合には、問い合わせを行わずに、登録データを参照するだけで対応言語を判定することができる。
本実施形態によれば、複数台の低機能プリンタ3A、3B、…を高機能言語で統一的に制御することができ、しかも、高機能言語の高い表現能力を活かした高度な印刷を低機能プリンタ3A、3B、…を用いて行うことができる。従って、実質的機能において複数台の高機能プリンタを揃えたものに近いシステムを、複数台の低機能プリンタ3A、3B、…を用いて極めて安価に構築することができる。
尚、本実施形態においても、高機能プリンタ2を印刷機能のない専用の「代理サーバ」に置き換えることも可能である。
また、第3の実施形態として、図4に示すように、一つの(又は複数の小ネットワークが繋がってなる)通信ネットワーク6上にホストコンピュータ1A、1B、…や高機能プリンタ2や各種の低機能プリンタ3A、3B、…が存在するときに、高機能プリンタ2が、ホストコンピュータ1A、1B、…からの高機能言語の印刷コマンドを低機能プリンタ3A、3B、…を代理して受信し、これを選択した低機能プリンタの対応言語に変換してその低機能プリンタへ転送するようにすることもできる。
また、受信した印刷コマンドを選択プリンタの対応言語に変換するとき、上述の実施形態では受信印刷コマンドから中間コードを作成し、その中間コードを変換先言語のコマンドに仕立てているが、必ずしもその方法を採る必要はなく、別の方法でも良い。例えば、中間コードからバンド又はページの完全なラスタイメージを作成し、このバンドイメージ又はページイメージを変換先言語のコマンドに仕立ててもよい。或は、言語間のコマンドの対応関係に基づくコマンド変換用ルックアップテーブル又はコマンド変換関数を予め用意しておき、そのテーブル又は関数を用いて直接的に変換先言語のコマンドに変換することもできる。後者の方法は、高機能言語のコマンドから低機能言語のコマンドへ変換する場合には、高機能言語の表現能力が損なわれて画質が低下する場合があるが、下に説明する変形例のようなシステムで、表現能力が同等の別の言語又は表現能力が高い別の言語に変換する場合には好適である。
更に、図1から図4に示した各種の実施形態において、高機能プリンタ2をある特定の言語に対応したプリンタ(例えばA言語対応プリンタ)に置き換え、低機能プリンタ3、3A、3B、…を他の各種の言語に対応したプリンタに置き換えて、A言語対応プリンタ2が他のプリンタの「代理サーバ」としてA言語の印刷コマンドを受信し、これを他のプリンタの対応言語に変換して他のプリンタに転送するようにすることも可能である。このようなシステムでは、種類やメーカなどの異なる種々のプリンタが存在しても、それらのプリンタをESC/Pageのような一つの言語で統一的に制御することが可能である。
図5は本発明の第4の実施形態に係るローカル・ルータの機能をもったネットワーク・プリンタを用いた通信ネットワーク・システムの構成図である。
図5において、ローカル・ルータ機能付ネットワーク・プリンタ11はインターネット12に自ら接続してホスト15との交信が可能である。ネットワーク・プリンタ11には、それ単独ではインターネットには接続できない1台以上のネットワーク非対応プリンタ13、14、…が、各プリンタ13、14、…の接続できるインタフェースを介して接続されている。ネットワーク・プリンタ11は、自らのIPアドレスを有し、かつプリンタとしての機能を持っているので、インターネット12上の1台の端末プリンタとして動作することができる。それに加え、ネットワーク・プリンタ11は、自己に接続された各ネットワーク非対応プリンタ13、14、…用のIPアドレスも有しており、そしてプリンタ13、14とホスト15との交信の中継機能も備えているので、ネットワーク非対応プリンタ13、14、…のグループをインターネット12に導入するためのローカル・ルータとしても動作することができる。
図6は図5に示すネットワーク・プリンタ11のローカル・ルータとしての中継機能の説明図である。
ネットワーク・プリンタ11は、インターネット12の一部である例えば職場LANのEthernet(登録商標)17と接続され、そして、インターネット12での通信のためのTCP/IPプロトコルスタックを構成する物理層18、データリンク層19、ネットワーク層20、トランスポート層21、アプリケーション層22(例えば、HTTP、FTP、SMTP、LPRなど)のプロトコル処理部を有している。
また、ネットワーク・プリンタ11は、シリアルインタフェース(S)24、パラレルインタフェース(P)25及びユニバーサル・シリアルバス(USB)26などのデータ・インタフェースも有しており、それらのデータ・インタフェースに複数台のネットワーク非対応プリンタ13、14、16、…を接続することができる。そして、このネットワーク・プリンタ11は、USB26用の通信プロトコルスタックをなす物理層27、データリンク層28、ネットワーク層29、トランスポート層30、アプリケーション層31、及びシリアル・インタフェース24用のデータ通信プロトコルスタックをなす物理層32、データリンク層33、ネットワーク層34、トランスポート層35、アプリケーション層36、並びにパラレル・インタフェース25用のデータ通信プロトコルスタックをなす物理層37、データリンク層38、ネットワーク層39、トランスポート層40、アプリケーション層41のプロトコル処理部も備えている。
各プロトコルスタックの内部で下層から上層へ及び上層から下層へとデータが受け渡され得ることは当然であるが、それに加え、後に詳述するように、TCP/IPプロトコルスタック中のネットワーク層20と、他のプロトコルスタック中のネットワーク層29、34、39との間でも、データの受け渡しが行われ得るようになっている。それにより、ネットワーク非対応プリンタ13、14、16、…をインターネット12に導入することが可能になる。
図7は、ネットワーク・プリンタ11が有しているIPアドレスを示す。図7に示すように、ネットワーク・プリンタ11は、プリンタ11自身と他のプリンタ13、14、16の4台のプリンタ用に例えば「163、141、22、1」〜「163、141、22、6」というIPアドレスを取得して、それら4つのIPアドレスを各アドレスが割り当てられた転送先(例えばプリンタ11自身、シリアルインタフェース24、パラレルインタフェース25、USB26など)と対応付けて、NVRAM等の不揮発性メモリに登録して保持している。そして、インターネット12から上記4個のIPアドレスの中のいずれかを含むパケットを受け取ると、それに対し全て自分で応答すると共に、以下に詳述するように、そのパケットのIPアドレスがプリンタ11自身を指定しているならパケット内のデータをプリンタ11自身で処理し、他の転送先(S、P、USB)を指定しているならば該当の転送先へ転送する。
このような処理は図6に示す構成上で次のように行われる。
すなわち、Ethernet(登録商標)17からホスト15発信のパケットがネットワーク・プリンタ11に到着する。図8に示すように、そのパケットは、まずTCP/IPプロトコルスタックの物理層18によって、電気信号からデータビット列へと変換されてデータリンク層19へ渡される。データリンク層19は、そのパケットのヘッダ部分にあるデータリンクヘッダDHを解釈し、そのデータリンクヘッダDHに含まれている宛て先ハードウェアを指す「MACアドレス」をチェックする。因みに、このネットワーク・プリンタ11にはその製造時に、インターネット12上で唯一固有の特定の「MACアドレス」が割り当てられており、データリンク層19はそれを知っている。受信パケット中の宛て先ハードウェアのMACアドレスがこのネットワーク・プリンタ11に割り当てられている特定のMACアドレスに一致すれば、データリンク層19はその受信パケットからデータリンクヘッダDHを除去して残り部分をネットワーク層20に渡す。
ネットワーク層20は、データリンク層19から渡されたパケットのヘッダ部分にあるネットワークヘッダNHを解釈し、このネットワークヘッダNHに含まれている宛て先装置を指す「IPアドレス」が、図7に示したようなNVRAM内のIPアドレス・リストに載っている「IPアドレス」と一致するか否かをチェックする。その結果、受信パケット中の宛て先装置のIPアドレスが、このネットワーク・プリンタ11に割り当てているIPアドレスに一致するならば、ネットワーク層20は、その受信パケットからネットワークヘッダNHを更に除去して残り部分をトランスポート層21へ渡す。一方、受信パケット中の宛て先装置のIPアドレスが、シリアルインタフェース24、パラレルインタフェース25又はUSB26に割り当たられたIPアドレスに一致する場合は、ネットワーク層20は、その受信パケットをシリアルインタフェース24、パラレルインタフェース25又はUSB26用のプロトコルスタックのネットワーク層29、34又は39へ渡す。尚、図8は、受信パケット中のIPアドレスがUSB26のIPアドレスに一致したので、USB26用プロトコルスタックのネットワーク層29へパケットを渡した場合を例示している。このようにTCP/IPスタックのネットワーク層20が他のプロトコルスタックのネットワーク層29、34又は39へ受信パケットを渡す場合、ネットワーク層20はそのパケットのデータ形式を、渡し先のネットワーク層29、34又は39が取り扱える形式に変換してから渡す。尚、そのデータ形式が具体的にどのようなものであるかは、インタフェース24、25、26の具体的な仕様によって異なるが、それは公知であると共に本発明の本質に直接に関わるものではないから、この明細書では説明しない。ただ、一般的傾向として、他の非ネットワーク・インタフェース24、25、26で使用されるデータやパケットやヘッダの形式・仕様は、TCP/IPプロトコルで使用されるそれに比較して、より簡素である。
TCP/IPスタックのトランスポート層21は、ネットワーク層20から受信パケットを渡されると、そのヘッダ部分にあるトランスポートヘッダTHを解釈し、そのトランスポートヘッダTHに含まれている宛て先アプリケーションを指す「ポート番号」をチェックする。因みに、TCP/IPプロトコル体系では、例えば、ポート番号80がHTTP、ポート番号31がFTPなどというように、特定のポート番号が特定のアプリケーションを指定することが規定されており、トランスポート層21はそれを知っている。従って、受信パケット中のポート番号がその特定のポート番号に一致すれば、トランスポート層21は、その受信パケットからトランスポートヘッダTHを更に除去して残り部分を、そのポート番号で指定されたアプリケーション層22の個別プロトコル(HTTP、FTP、SMTP、LPRなど)へ渡す。アプリケーション層22の各個別プロトコルは、渡されたパケットのアプリケーションヘッダAHを解釈し、そのパケットからアプリケーションヘッダAHを更に除去した正味のデータを、アプリケーションヘッダAH内の「判別子」に対応したアプリケーション内部の処理ルーチン(図示せず)へ渡す。その処理ルーチンは、渡されたデータ(典型的には、印刷要求つまり印刷コマンド)を解釈して印刷処理を行う。この場合、ネットワーク・プリンタ11が印刷を行うことになる。
他インタフェース26、24又は25用のプロトコルのネットワーク層29、34又は39は、TCP/IPのネットワーク層20から当該ネットワーク層29、34又は39に適合した形式の受信データを渡されると、それを自プロトコルのデータリンク層28、33又は38に渡す。データリンク層28、33又は38はそれを自プロトコルの物理層27、32又は37に渡し、物理層27、32又は37はそれを電気信号に変換して、それぞれに接続されたネットワーク非対応プリンタ16、13又は14へ送る。従って、この場合はネットワーク非対応プリンタ16、13又は14によって印刷処理が行われることになる。尚、各他プロトコルスタック内で上層から下層へとデータが渡されるときの各層での処理は、インタフェース24、25、26の具体的な仕様によって異なるが、それは公知であると共に本発明の本質に直接に関わるものではないから、この明細書では説明しない。ただ、一般的傾向として、非ネットワーク・インタフェース24、25、26での各プロトコル層の処理は、TCP/IPプロトコルでのそれに比較してより簡素である(例えば、ネットワークヘッダNHとデータリンクヘッダDHとが区別されてない、あるいは、ネットワークヘッダNHとデータリンクヘッダDHが省略(長さが0)されている、など)。
以上のようにして、ホスト15からネットワーク・プリンタ11に到来した印刷要求は、それに含まれている宛て先のIPアドレスに応じて、ネットワーク・プリンタ11で印刷処理されたり、あるいは、非ネットワーク・プリンタ13、14又は16に転送されてそこで印刷処理されたりする。
また、ネットワーク・プリンタ11又は非ネットワーク・プリンタ13、14又は16からホスト15宛てに出力されたデータ(例えば、プリンタステータスやエラーの通知など)は、上記とは逆の経路と過程を経て、ホスト15を宛て先とするインターネット12のパケット形式に仕立てられ、Ethernet(登録商標)17へ送出される。この場合、非ネットワーク・インタフェース用プロトコルのネットワーク層29、34又は39は、データをTCP/IPのネットワーク層20に渡すとき、そのデータをネットワーク層20が取り扱うパケットの形式(つまり、TCP/IPのトランスポート層21からネットワーク層20に渡されるパケットと同様の形式)に変換して渡す。
以上のようにして、ネットワーク非対応のプリンタ13、14、16をインターネット12に導入することができる。
上記第4の実施形態において、複数のIPアドレスをもった1台のネットワーク・プリンタ11内で各IPアドレスに異なる優先順位を与えておき、優先順位によってセキュリティ・レベルを変えたり、用紙サイズを変えたり、モノクロ印刷かカラー印刷か、イメージ印刷かテキスト印刷か、又は通常印刷かIDパスワードが必要な親展印刷かといった選択をすることによって、物理的には1台のネットワーク・プリンタを、ネットワーク側から見ると機能の異なる複数台のプリンタであるかのように使用することも可能である。また、ネットワーク・プリンタが取得するIPアドレスは1つであっても、そのプリンタに接続されたネットワーク非対応プリンタをポート番号で識別することにより、1つのIPアドレスで複数台のプリンタをネットワークに導入することもできる。また、ネットワーク・プリンタに代えて、上述した中継機能のみをもったローカル・ルータを用いることもできる。
また、ネットワーク・アドレスとして、IPアドレスだけでなく他のもの、例えばポート番号や判別子など、を用いることも可能である。例えば、図6に示す構成において、Ethernet(登録商標)17からネットワーク・プリンタ22にパケットが到来すると、次のようなプロトコル処理を行うことができる。
(1)データリンク層19は、自分の物理的なアドレス(MACアドレス)を宛て先としたパケットだけを取り込む。
(2)ネットワーク層20は、データリンク層19から渡されたパケット中に他のプリンタ13、14、16(又は他のインタフェース24、25、26)を指定するIPアドレスを見つけると、そのパケットを指定されたインタフェースのプロトコルスタックへ送る。
(3)トランスポート層21は、ネットワーク層20から渡されたパケット中に他のプリンタ13、14、16(又は他のインタフェース24、25、26)を指定するポート番号を見つけると、そのパケットを指定されたインタフェースのプロトコルスタックへ送る。
(4)アプリケーション層22は、トランスポート層21から渡されたパケット中に他のプリンタ13、14、16(又は他のインタフェース24、25、26)を指定する判別子を見つけると、そのパケットを指定されたインタフェースのプロトコルスタックへ送る。
この処理の実例を、米国マイクロソフト社のWindowsNTというOSを用いた場合で以下に示す。
まず上記(2)の例を示す。図5に示す構成で、ホスト15側でOSに対し次の2つの異なる送信命令を与えて2回の送信をネットワーク・プリンタ11に対し行ったとする。
1回目:lpr -S 163.141.22.51 print.dat
2回目:lpr -S 163.141.22.52 print.dat
この2つの送信命令は、共に「LPR」というプロトコルで、それぞれ「163.141.22.51」、「163.141.22.52」という異なる2つのIPアドレスに、共に「print.dat」という名前の印刷コマンドデータを送ることをOSに命じている。もし、上記2つのIPアドレスのうち前者がネットワーク・プリンタ11に、後者が他のプリンタに割り当たられていたとすると、1回目の送信データはネットワーク・プリンタ11で印刷処理されるが、2回目の送信データは他のプリンタへ転送されることになる。
この様子を図9に示す。宛て先IPアドレスが「163.141.22.51」である印刷コマンドデータはネットワーク・プリンタ11内の処理ルーチンに送られる。しかし、宛て先IPアドレスが「163.141.22.52」や「163.141.22.53」のデータはそれぞれ、TCP/IPのネットワーク層20から例えばUSB26及びシリアルインタフェースのネットワーク層29、34へ渡されて非ネットワーク・プリンタ26、24へ転送される。なお、このようにTCP/IPのネットワーク層20で転送先を分ける場合、転送先の非ネットワーク・プリンタ26、24はTCP/IPアプリケーション層プロトコル(LPR、HTTP、FTPなど)を解釈できる必要がある。
次に上記(3)の例を示す。ホスト15側で次の2つの異なる送信命令を与えて2回の送信を行ったとする。
1回目:lpr -S 163.141.22.51 print.dat
2回目:ftp 163.141.22.51 print.dat
1回目の送信命令は、「LPR」というプロトコルで、「163.141.22.51」というIPアドレスに送信することを意味し、2回目の送信命令は、「FTP」というプロトコルで、同じIPアドレスに送ることを意味する。すると、1回目送信のパケットにはLPRに割り当てられた「515」というポート番号が、2回目送信のパケットにはFTPに割り当てられた「21」というポート番号が付されることになる。もし、ポート番号「515」がネットワーク・プリンタ11のLPRアプリケーションに、ポート番号「21」が他のプリンタに割り当てられていたとすると、1回目の送信データはネットワーク・プリンタ11で印刷処理されるが、2回目の送信データは他のプリンタへ転送されることになる。
この様子を図10に示す。宛て先ポート番号が「515」である印刷コマンドデータはネットワーク・プリンタ11内の処理ルーチンに送られる。しかし、宛て先ポート番号が「21」や「81」のデータはそれぞれ、TCP/IPのトランスポート層21から、例えばUSB26及びシリアルインタフェースのトランスポート層30、35へ渡されて、非ネットワーク・プリンタ26、24へ転送される。なお、このようにTCP/IPのトランスポート層で転送先を分ける場合も、転送先の非ネットワーク・プリンタ26、24はTCP/IPアプリケーション層プロトコル(LPR、HTTP、FTPなど)を解釈できる必要がある。
次に、上記(4)の例を示す。ホスト15側で次の2つの異なる送信命令を与えて2回の送信を行ったとする。
1回目:lpr -S 163.141.22.51 -P PRINTER1 print.dat
2回目:lpr -S 163.141.22.51 -P PRINTER2 print.dat
1回目も2回目も、共にLPRプロトコルで同一のIPアドレスに宛てて送っているが、アプリケーション内部のデータキューとして「PRINTER1」、「PRINTER2」という異なるものを指定している。因みに、LPRというプロトコルでは、内部に複数の印刷キューがあることを管理でき、別々の印刷キューに印刷要求をためられるようになっている。そして、「PRINTER1」、「PRINTER2」という印刷キューの指定は、アプリケーション層に対する判別子としてパケットに組込まれる。このとき、もし「PRINTER1」という判別子はネットワーク・プリンタ11に、「PRINTER2」という判別子は他のプリンタに割り当たられていたとすると、1回目の送信データはネットワーク・プリンタ11で印刷処理されるが、2回目の送信データは他のプリンタへ転送されることになる。
この様子を図11に示す。宛て先印刷キューが「PRINTER1」である印刷コマンドデータはネットワーク・プリンタ11内の処理ルーチンに送られる。しかし、宛て先印刷キューが「PRINTER2」や「PRINTER3」のデータはそれぞれ、TCP/IPアプリケーション層22のLPRから、例えばUSB26及びシリアルインタフェースのアプリケーション層31、36の無手順プロトコルへ渡されて、非ネットワーク・プリンタ26、24へ転送される。
ところで、上の説明は特定の階層モデルを用いて行っており、その階層モデルは一つの論理的な概念である。よって、実際の装置の構成は、必ずしも上述した階層モデルと1対1に対応している必要はなく、もっと細かい階層構造になっていたり、あるいは、上記モデルの2つ以上の階層をまとめて実際の1つの階層になっているなどのさまざまな装置構成のバリエーションが、本発明の要旨を逸脱することなく採用できる。
図12は、本発明の第5の実施形態に係るプリントシステムの構成図である。
図12において、ネットワーク対応プリンタ51はネットワーク、例えばインターネット55に接続して、インターネット55上の任意のホスト54とTCP/IPプロトコルにより交信する機能をもつ。ネットワーク対応プリンタ51は、また、複数のネットワーク非対応プリンタ(勿論、ネットワーク対応であってもよい)52、53…nを接続してそれらネットワーク非対応プリンタ52、53…nと交信するための、例えばシリアルインタフェースまたはパラレルインタフェースなどの接続ポートも備えている。本明細書では、ネットワーク対応プリンタ51およびそれに接続されたプリンタ52、53…nをまとめてプリンタグループと呼び、このプリンタグループの中でインターネット55に近い側を上流側、遠い側を下流側と呼ぶ。例えば、ネットワーク対応プリンタ51は、このプリンタグループ内の最上流プリンタである。ネットワーク対応プリンタ51と、その下流側のネットワーク非対応プリンタ52、53…nとの間の交信は、一般の1対1のホストとプリンタのシリアルインタフェースまたはパラレルインタフェースによる接続におけるものと同様のプロトコルで行われる。
ネットワーク対応プリンタ51は、プリンタ本来の機能の他に、下流側のプリンタ52、53、…nを管理しそれらをインターネット55に導入する機能(以下、プリンタ管理機能という)をもつ。プリンタ管理機能は次の2つの処理機能を含む。第1は、下流プリンタ52、53、…nの性能を調査してホスト54へ報告する処理(以下、調査処理という)である。第2は、ホスト54からの受信した印刷ジョブをグループ内から選んだプリンタに転送する処理(以下、転送処理という)である。さらに、転送処理には、どのプリンタを選択するかを各プリンタの性能に基づいて判断する処理(以下、判断処理という)が含まれる。以下に、これらの処理の内容を説明する。
図13は、ネットワーク対応プリンタが行う調査処理のフローチャートである。
この調査処理では、ネットワーク対応プリンタ51はまず、下流プリンタ52、53、…、nに対して各プリンタがもつ全設定項目及び設定値範囲等の性能を問い合わせ、プリンタ52、53、…nからそれらの情報を取得し記憶する(1100)。ここで、設定項目とは、プリンタの属性の種類を示す所定の項目であち、例えば印刷色、解像度、用紙サイズなどがある。また、設定値範囲とは、各設定項目に関して設定可能な値の範囲であって、例えば、ある種のカラープリンタの場合、印刷色についてはモノクロとカラー、解像度については300dpiと600dpi、用紙サイズについては葉書、封筒、B5、A4などが設定値範囲である。ネットワーク対応プリンタ51は、プリンタグループ内の全ての下流プリンタを調べたか判断して(1101)、未だ未調査のプリンタが残っていれば調査を続け、全部調べ終わったらグループ内の全部のプリンタの全性能に自己プリンタの性能を加えた情報をホストへ送信する(1103)。
この調査処理を行う契機としては、例えば、ホスト54に最初に接続された時、或いは、ホスト54からプリンタ性能を通知せよと要求された時などが採用できる。或いは、ネットワーク対応プリンタ51の立ち上げ時、またはその後に下流プリンタ52、53…nのいずれかが立ち上った時、または立ち上げ後一定の周期で、下流プリンタの性能調査を行って記憶しておき、その後、ホスト54に接続された時またはホスト54から性能通知を要求された時に調査結果をホスト54へ送るようにしてもよい。
図14は、ネットワーク対応プリンタ51が行う転送処理のフローチャートである。
図14を参照して印刷ジョブを受取ったネットワーク対応プリンタ51のドライバの動作について説明する。
ネットワーク対応プリンタ51は、ホスト54から印刷ジョブを受けると、ジョブの内容を解析し、まず自プリンタの性能で印刷可能か否か判断する(1300)。印刷可能ならば自プリンタで受信ジョブのデータを処理し印刷を実行する(1301)。
自プリンタの性能では印刷不可能と判断した場合(また、自プリンタが別のジョブ処理を行っているために、今受信したジョブを処理するのに十分なリソースが確保できない場合も)、調査処理で記憶したグループ内の下流プリンタ52、53…n中の1台の性能を調べ(1302)、そのプリンタの性能で受信ジョブを印刷可能か否かを判断する(1303)。その結果可能ならば、そのプリンタへ印刷ジョブを転送して印刷を実行させる(1304)。一方、そのプリンタの性能では印刷不可能(または、リソースが不十分)な場合は、別の下流のプリンタを次々に調べ(1305)、印刷可能なプリンタを見つけて付けてそれに印刷ジョブを転送する。グループ内の全プリンタを調べてもなお印刷不可能の場合は、ホスト54へ印刷不可能を通知する(1306)。
図15は、図14のフローの中のステップ1300および1303の判断処理の詳細を示す。
ステップ1300と1303のいずれにおいても、ネットワーク対応プリンタ51は図15に示す処理を行う。まず、ネットワーク対応プリンタ51は印刷ジョブの内容を調べて、そのジョブが指定しているプリンタ属性を取り出す(1400)。ここで、ジョブが指定する属性はジョブデータ上で、典型的には「設定項目=設定値」の形式で記述されている。例えば、「印刷色=カラー、解像度=600」と書かれていれば、解像度600dpiのカラー印刷ができるプリンタが必要であることを意味する。
次に、ネットワーク対象プリンタ51は、記憶してある対象プリンタ(1300では自プリンタ1、1303では判断対象の下流プリンタ)の性能を参照して、ジョブの指定する設定値を対象プリンタがサポートできるか否か(つまり、対象プリンタの対応する設定項目の設定値範囲にジョブの指定する設定値が入っているかどうか)を判断する(1401)。その結果、例えば、印刷ジョブの指定が「印刷色=カラー」あるのに対し、対象プリンタの設定範囲が「印刷色=白黒」である場合のように、ジョブの指定をサポートできない場合には印刷不可能と判断する(1404)。
一方、例えば上記の例で対象プリンタの設定範囲が「印刷色=カラー及び白黒」である場合のように、ジョブの指定をサポートできる場合は、印刷ジョブの指定する他の設定値についても同様に調べて(1402)、全設定値につきサポートできるなるなら印刷印刷可能と判断する(1403)。
以上のようなネットワーク対応プリンタ51の処理によって、プリンタグループ内のプリンタ全てをインターネット55に導入することができることになる。この場合、ネットワーク対応プリンタ51の下流のネットワーク非対応プリンタ52、53、…、nは、基本的に、ホスト54とシリアルインタフェースやパラレルインタフェースを介して接続されている場合と同じ動作を行えばよい。ホスト54にとっては、ネットワーク対応プリンタ51はプリンタグループの全プリンタの性能を併せ持ったはプリンタのように見えるので、そのようなプリンタとしてネットワーク対応プリンタ51をホスト54は取り扱えばよい。しかし、プリンタグループのプリンタ構成は変更される可能性が十分にあり、グループ構成の変更に応じてホスト54からの見えるネットワーク対応プリンタ51の性能も変化する。そのため、ホスト54に搭載されるネットワーク対応プリンタ51用のプリンタドライバは、そのようなグループ構成変更に柔軟に対応できるようなものであることが望ましい。
図16は、ホスト54に搭載された上記のような柔軟性をもったプリンタドライバの処理フローの一例を示す。
ホスト54のプリンタドライバは、起動するとまず、プリンタグループ最上流のネットワーク対応プリンタ51へ性能通知要求を送る(1500)。次に、ネットワーク対応プリンタ51からグループ内プリンタ全部の性能を受信すると(1501)、受信したプリンタ性能を記憶するとともに、それらの性能を全て含んだユーザインタフェース画面を生成して表示する(1502)。
図17は、ステップ1502で表示されたユーザインタフェース画面の2種類の例を示す。
ユーザインタフェース画面は、1枚または重ねられたように表示される複数枚の設定ウィンドウ60を含み、各設定ウィンドウ60上には、設定項目を示す設定項目ボックス61が1個または2個以上配置される。例えば、図17(a)の例では、設定ウィンドウ60が6枚あり、現在前面表示されている設定ウィンドウには1個の設定項目ボックス61がある。図17(b)の例では、設定ウィンドウ60が6枚あり、現在前面表示されている設定ウィンドウ60には設定ボックス61が3個ある。各設定項目ボックス61の下方には、設定値を示すための設定値ボックス62が2個、3個またはそれ以上の個数設けられ、各設定値ボックス62の脇には、各設定値を選択するためのラジオボタン63がある。
起動当初、プリンタドライバは図17に示すようなユーザインタフェース画面を作るための枠組みの情報だけを有しているに過ぎない。この段階では、ユーザインタフェース画面内の設定ウィンドウ60の枚数、各設定ウィンドウ60上に配置する設定項目ボックス61の個数、各設定項目ボックス61の下に配置する設定値ボックス62の個数、ならびに各設定項目ボックス61及び各設定値ボックス62の内容は未定である。
プリンタドライバは、ステップ1501でグループ内プリンタ全部の性能を受信すると、その性能情報に含まれている設定項目の個数や各設定項目の設定値の個数に応じて、設定ウィンドウ60の枚数、各設定ウィンドウ60上の設定項目ボックス61の個数、各設定項目ボックス61下の設定値ボックス62の個数を決める。そして、性能情報に含まれている各設定項目の名称を各設定項目ボックス61にエントリし、性能情報に含まれている各設定項目の各設定値を各設定値ボックス62にエントリすることによって、図17に示すようなユーザインタフェース画面を生成する。例えば、図17(a)に示す設定項目の「PAINT」とは印刷色を意味し、設定値の「COLOR」はグループ内のいずれかのプリンタでカラー印刷が可能なことを、「MONO」はグループ内のいずれかのプリンタで白黒印刷が可能なことを意味する。また、図17(b)に示す設定項目の「RESOLUTION」は解像度を意味し、その設定値の「600」「300」はグループ内では600dpiと300dpiの2種類の解像度だけが選択可能であること意味し、設定項目の「PAPER SIZE」は用紙サイズを意味し、その設置値の「A3」「A4」「B4」はグループ内でこの3種の用紙サイズだけが選択可能であることを意味する。ユーザが、任意の設定値のラジオボタン64をマウスクリックすることで、その設定値が選択でき、かつマウスクリックされたラジオボタン64には黒丸印が付く。
ユーザインタフェース画面上の「OK」ボタン64をユーザがマウスクリックすると、プリンタドライバは選択された設定値を、指定されたプリンタ属性として記憶して、ステップ1503に進んで、ユーザからの印刷要求待ち状態になる。ユーザから印刷要求が入ると、プリンタドライバは、記憶したプリンタ属性と共に印刷対象の文書データをネットワーク対応プリンタ51が解釈できる形式の印刷ジョブデータに変換して、ネットワーク対応プリンタ51に送信する。
以上のようにして、プリンタドライバはプリンタグループがもつ性能に柔軟に対応していくことができる。
以下に、ホスト54、ネットワーク対応プリンタ51、および下流のネットワーク非対応プリンタ52、3、…、n間で交信される要求や性能情報の一具体例を示す。
まず、ホスト54からネットワーク対応プリンタ51へ送られる性能通知要求の例を下に示す。
@EJL INQUIRE ALL RANGE<LF>
ここで、「@EJL」は使用する特定のジョブ制御言語における接頭辞である。「INQUIRE」は性能要求のコマンドコードであり、「ALL RANGE」は全設定項目を指定するパラメータであるから、この文は、全設定項目について通知せよという要求を意味している。
この要求を受けると、ネットワーク対応プリンタ51は下流側のプリンタ52、3、…、nの各々に対して性能を問い合わせるが、この問い合わせの要求も上記性能通知要求と同文である。
下流側のプリンタ52、53、…、nの各々からネットワーク対応プリンタ51へ返答される性能情報は例えば次のようなものである。
@EJL ANSWER ALL RANGE<LF>
@EJL RANGE RESOLUTION=600/300<LF>
@EJL RANGE PAINT=MONO<LF>
@EJL RANGE PAPER SIZE=A4/B4<LF>
ここで、第1文の「ANSWER」は性能通知のコマンドコードであり、この文は全設定項目についてここに通知するという宣言を意味している。第2文以下では、「RANGE」は設定項目の設定値範囲は以下の通りであるという意味のコマンドコードであり、これに続く「設定項目名」=「設定値1/設定値2/…」という形式のパラメータは、その「設定項目名」に該当する設定項目の選択可能な設定値が「設定1」「設定値2」…であることを意味している。この例では、解像度は600と300dpiが、印刷色は白黒だけが、用紙サイズはA4とB4が選択可能である。
ネットワーク対応プリンタ51は、下流の全プリンタから性能情報を集めると、それをホスト54へ通知するが、そのときの性能情報も上記と同様な形式である。その場合、@EJL ANSWER ALL RANGE<LF>という最初の宣言文に続いて、1台目の下流プリンタから受信した第2文以下のRANGE文、次に2台目の下流プリンタから受信した第2文以下のRANGE文、…というように複数台の下流プリンタからのRANGE文をそのまま単純に繋げてホスト54に送ってもよいし、あるいは、複数台の下流プリンタからの通知文を整理して例えば次のような新たなRANGE文を編集して送ってもよい。
@EJL ANSWER ALL RANGE<LF>
@EJL RANGE RESOLUTION=600/300<LF>
@EJL RANGE PAINT=COLOR/MONO<LF>
@EJL RANGE PAPER SIZE=A4/B4/LTR<LF>
@EJL RANGE ORIENTATION=LAND/PORT<FF>
この例では、上に例示した或る下流プリンタからのRANGE文では「PAINT=MONO」「PAPER SIZE=A4/B4」であったところ、他のプリンタからのRANGE文の内容も加味されて、「PAINT=COLOR/MONO」「PAPER SIZE=A4/B4/LTR」という内容の新たなRANGE文が編集されている。
ホスト54のプリンタドライバは、このような性能情報を受けると、各RANGE文のパラメータから設定項目名と設定値とを抽出して、図17に例示したようなユーザインタフェース画面を作成する。このユーザインタフェース画面上でOKボタンが押された後、印刷要求が入ると、ホスト54からネットワーク対応プリンタ51へ印刷ジョブデータが送られる。この印刷ジョブデータに含まれているプリンタ属性の指定は例えば次のような文である。
@EJL SET RESOLUTION=600<LF>
@EJL SET PAINT=MONO<LF>
@EJL SET PAPER SIZE=A3<LF>
ここで、「SET」は、次に続くパラメータが示す属性を指定するという意味のコマンドコードである。この例では、解像度が600dpi、印刷色が白黒、用紙サイズがA4が指定されている。
図18は本発明の第6の実施形態に係るプリントシステムの構成図である。
前実施形態ではネットワーク対応プリンタ51に対して下流のプリンタ52、53、…、nがパラレルに接続されていたのに対し、この第2実施形態では、図18に示すように、ネットワーク対応プリンタ70を最上流として、複数のプリンタ70、71、…、mがディジーチェーン(バス、ケーブル等による簡単な数珠繋ぎ)状態でシリアルに接続されている。
しかしながら、このような物理的接続形態の違いは、本発明にとって本質的ではない。どのような接続形態であっても、それぞれの接続形態に適した公知の通信方式によって、最上流のネットワーク対応プリンタ70から下流の全プリンタ71、…、mに性能通知要求を下達し、下流の全プリンタ71、…、mからの性能情報を最上流のネットワーク対応プリンタ70に集めることが可能である。例えば、図18に示すディジーチェーンでは、もしSCSIのようにディジーチェーンを伝達される情報が途中のプリンタを透過できるならば、前実施形態と同様に最上流のネットワーク対応プリンタ70だけが下流プリンタの管理機能を有していれば十分である。一方、ディジーチェーン内の各プリンタが、隣のプリンタから受けた情報を解釈し、その結果に基づいて独自に情報を作成して反対側の隣のプリンタに渡す、というようなリレー式の情報伝達方法をとる場合は、最上流のネットワーク対応プリンタ70だけでなく、最下流プリンタm以外の他のプリンタ71、…も下流プリンタの管理機能をもつ必要がある。
後者のリレー式の場合、最下流プリンタm以外の他のプリンタ70、71、…は、このプリンタグループの性能をホスト54に通知するために図19に示すような動作を行う。
図19に示すように、各プリンタ70、71、…は、自分より上流側の装置(ネットワーク対応プリンタ70の場合はホスト54、他のプリンタ71、…の場合は1段上流側のプリンタ)から性能通知要求が入ると、自分より1段下流側のプリンタに同様の性能通知要求を送り、その下流側プリンタ以下のプリンタグループの性能情報を取得して記憶する(1800)。そして、1段下流側のプリンタの全てについてこの性能調査を行ったか否か判断する(1801)。
なお、図18の構成では、どのプリンタも、1段下流のプリンタは1台しかないので直ちに調査終了になる。しかし、或るプリンタにおいて、1段下流プリンタがパラレルにn台あるような場合(つまり、そのプリンタにおいて、ディジーチェーンがn本に枝別れている場合)には、そのプリンタはn台の下流プリンタに対してステップ1800の処理を行う。
このようにして下流のプリンタグループの性能を全部調べたら、各プリンタは、下流のプリンタグループの性能に自分の性能を加えて、1段上流のプリンタへ通知する(1802)。
このようにして、最終的に、最上流のネットワーク対応プリンタ70に、それより下流の全プリンタ71、…、mの性能情報が集まるので、ネットワーク対応プリンタ70はそれに自分の性能を加えてホスト54に通知する(1802)。
この後、ホスト54から印刷ジョブデータがネットワーク対応プリンタ70に到着すると、ネットワーク対応プリンタ70は自分で印刷するか、下流のプリンタグループに印刷させるかを判断して、後者の場合、1段下流のプリンタ71に印刷ジョブデータを渡す。以下、各プリンタは同様の判断を行い、より下流のプリンタグループに印刷させる場合は、1段下流のプリンタに印刷ジョブデータを渡す。このようにして、印刷ジョブデータは、最終的に印刷担当となるプリンタまでリレー式に転送されていく。この過程では、印刷ジョブデータを受けた各プリンタは、自分と下流側プリンタグループのいずれがそのジョブ処理に適しているかを判断し、それらプリンタでの判断に従って、いわば動的に最終的な印刷担当プリンタが決められる。
上述した第5および第6の実施形態のように複数のプリンタをグループ化する場合、同種のプリンタをグループ化することで処理容量を増すことができるが、その他に、図20に例示するような異種のプリンタの組み合わせで特有の効果を期待することができる。
図20(a)に示す例では、モノクロレーザプリンタとカラーインクジェットプリンタを組み合わせている。これにより、レーザプリンタが提供する高速で高解像度のモノクロ印刷機能と、カラーインクジェットプリンタが提供する高品質のカラー印刷機能とを併せ持ったネットワーク対応プリンタ機能が、1台でそのような機能をもったネットワーク対応プリンタ(ネットワーク対応カラーレーザプリンタ)よりずっと安価に実現することができる。さらに、インクジェットプリンタで印刷するときに、レーザプリンタが一般に有する高度な言語解釈およびレンダリング機能を利用できるように構成すれば、インクジェットプリンタを単独に使用する場合よりも高いスループットや短いホスト開放時間が得られる。
図20(b)に示す例では、A3用紙に印刷できる1台の高級大型プリンタと、A4以下の用紙しか印刷できない数台の廉価プリンタとがグループ化されている。これにより、A3対応の高級大型プリンタを複数台揃える場合よりずっと低い価格で、A3用紙にもA4以下の用紙にも対応できる大容量のプリントシステムが構築でき、しかも、A3プリンタとA4プリンタとをネットワーク上の同一アドレスにあるので、それらをネットワーク上の別のアドレスに配置するよりも使い勝手がよい。
図20(c)の例では、例えばアドビシステムズ社のポストスクリプトのような表現能力の極めて豊かな高機能言語を解釈しレンダリングできる高機能プリンタと、そのような高機能言語解釈機能をもたない標準プリンタとがグループ化されている。これにより、高機能プリンタを複数台揃える場合よりずっと低い価格で、高機能言語対応の大容量のプリントシステムが構築できる。また、標準プリンタで印刷するときに、高機能プリンタの高機能言語解釈およびレンダリング機能を利用できるように構成すれば、標準プリンタで高機能プリンタと同様な品質の画像を印刷することができる。
図21は、上述した2つの実施形態において、印刷ジョブを処理すべきプリンタを判断する場合に、ジョブの指定する設定値をサポートできるプリンタが2台以上あった場合の判断処理の流れを示す。
図21に示すように、自分および下流の全部のプリンタを調べて、ジョブの指定する設定値をサポートできる候補プリンタが2台以上あるか否か調べ(1900)、候補が1台しかない場合はその候補プリンタへジョブを転送する(1903)。しかし、候補が2台以上ある場合には、それらの候補の中から条件減算方式により
1、現在印刷中のプリンタ
2、トナーや紙等の残量がより少ないプリンタ
3、使用回数のより多いプリンタ
4、消耗品コストのより高いプリンタ
5、モノクロ指定ならカラープリンタ
6、低解像度指定なら高解像度プリンタ
7、地理的に距離が遠いプリンタ
を次々と除外していき、最終的に候補を1台に絞る(1901)。そして、その絞った候補プリンタに印刷ジョブを転送する(1902)。
ホストのプリンタドライバは、上述したような柔軟な対応が可能なものである必要は必ずしもない。例えば、プリンタドライバは従来のように固定的に定まっている設定項目および設定値をユーザインタフェース画面に表示するものであって、ネットワーク対応プリンタからホストへプリンタグループの性能が通知されることもなく、ネットワーク対応プリンタのみがプリンタグループの性能を把握して、ジョブ内容に応じて印刷担当プリンタを選択するという構成も採用し得る。
また、ネットワーク対応プリンタがホストに対し、単にグループ全体の性能を通知するのでなく、グループ内の個々のプリンタの識別と性能とを通知し、ホストのプリンタドライバが、グループ内の個々のプリンタ毎に各々の性能に応じたユーザインタフェース画面を作成して個別に表示することによって、ユーザがグループのプリンタ構成や各プリンタの性能を把握して、希望のプリンタを指定して印刷要求を発することができるようにした構成も採用可能である。この場合、プリンタドライバが印刷ジョブデータを発する段階で、どのプリンタに印刷させるかを指定することになるので、ネットワーク対応プリンタは、面倒な判断処理を省略して、単に指定されたプリンタに印刷ジョブデータを転送することができる。
ネットワーク対応プリンタに代えて、ネットワーク接続機能と上述した下流側プリンタの管理機能だけをもったプリンタ管理装置を用いることもできる。
ネットワーク対応プリンタは、元来のネットワーク対応プリンタであってもよいが、元来はネットワーク非対応であったところ、ネットワークアダプタなどのオプション品を付けることでネットワーク対応となったものであってもよい。上述した下流プリンタ管理機能は、プリンタに当初から備わっていてもよいが、必ずしもそうである必要はなく、例えば、ネットワークアダプタに備わっていてもよいし、増設ROMや増設ボードなどの別のオプション品でプリンタに提供してもよし、あるいは、ネットワークやホストなどから管理機能のプログラムをプリンタ内のマイクロコンピュータにロードしてもよい。
図22は本発明の第7の実施形態にかかる印刷システムを示したブロック図である。
プリンタ81が、或るドメインを構成するイントラネットやLANなどのローカルな通信ネットワーク170に接続されている。この通信ネットワーク170には、他のプリンタ101、102及びホストコンピュータ103、104なども接続されている。この通信ネットワーク170は更に、外部の通信ネットワーク160にも接続されており、インターネットのような大規模ネットワークの一部を構成している。
図23は図22に示したプリンタ81の機能的な構成を示す。
プリンタ81は、通信インタフェース91、イメージングコントローラ92、及び印刷エンジンを93を備える。通信インタフェース91は、通信ネットワーク170に接続してネットワーク170、160上の他の装置とデータ通信を行うものである。イメージングコントローラ92は、通信インタフェース91を介して受信した文書データを解釈し、その文書の印刷イメージ(各ピクセル位置に着色剤のドットを打つか打たないかを示した2値ラスタイメージデータ)を作成するものである。印刷エンジン93は、イメージングコントローラ92が作成した印刷イメージを入力して、その印刷イメージに基づき着色剤を用いて用紙上にその文書イメージを印刷するものである。
イメージングコントローラ92は、文書アナライザ121と、特定のファイル形式A、B(例えば、HTMLとJPEG)にそれぞれ対応したレンダラ123A、123Bと、イメージコンポーザ125とを有する。なお、図23には2つのファイル形式に対応したレンダラ123A、123Bが示されているが、この2つというのは例示に過ぎず、より少ないまたはより多いファイル形式に対応したレンダラを有していてもよい。このイメージングコントローラ92は、その全部をマイクロコンピュータによってソフト的に実現することも、或いはその少なくとも一部を専用ハードウェア回路で実現することも可能である。
文書アナライザ121は、受信した文書データを分析し、その文書がどのようなファイル形式のリソースを含んでいるかを認識する。そして、その文書に所定のファイル形式A、Bのリソースが含まれていれば、それらのリソースをそれぞれのファイル形式に対応するレンダラ123A、123Bへ渡す。しかし、ファイル形式A、B以外のファイル形式(例えばファイル形式Cとする)をもつリソースが含まれている場合は、そのリソースを、後述するように、同じネットワークドメイン(つまり、ネットワーク170)内に存在するの他の機器(プリンタ101、102、コンピュータ103、104など)の中で、当該ファイル形式Cに対応したレンダラをもつ機器に、そのファイル形式Cのリソースを転送してレンダリングを依頼し、そして、その機器からレンダリング結果のイメージを受ける。
レンダラ123Aは、ファイル形式Aのリソース(例えば、HTML文書)をレンダリングして、その印刷イメージを作る。レンダラ123Bは、ファイル形式Bのリソース(例えば、JPEG画像)をレンダリングして、その印刷イメージを作る。なお、メモリ効率を良くするため、レンダラ123A、123Bは通常、文書の各1ページを複数のバンドに分割して、各バンド毎に順番に印刷イメージを作る。ここで、各レンダラ123A、123Bが作った印刷イメージは、それぞれが対応するリソースの部分だけであるから、いずれも複合文書の完全な印刷イメージではない。
イメージコンポーザ125は、レンダラ123A、123Bが作成した各バンドの印刷メージ、および他の装置に依頼して作成してもらった各バンドの印刷イメージを取り込み、これらを結合して各バンドの完全な印刷イメージを作成する。
印刷エンジン93は、イメージコンポーザ92の作成した各バンドの完全な印刷イメージを順次に受け取って、用紙上に各バンドイメージを順次に印刷することにより、各ページのハードコピーを作成する。
次に本実施形態の動作について説明する。
ここでは、ネットワーク160、170上の或るホストコンピュータ(例えばホストコンピュータ103とする)が、HTMLで書かれた文書データをプリンタ81に送った場合を想定する。このHTML文書データには例えばJPG画像やGIF画像などといった他のリソースが埋め込まれており、このHTML文書データと、それに埋め込まれた他のリソースとで複合文書データを構成している。プリンタ81では図24に示すような動作が行われる。
まず、ステップ2301にて、通信インタフェース91が、そのHTML文書データを受信してイメージングコントローラ92に渡す。続いてステップ2302にて、通信インタフェース91が、その受信HTML文書に埋め込まれている他のリソースを受信してイメージングコントローラ92に渡す。
イメージングコントローラ92では、文書アナライザ121が、ステップ2303で示すように、受信した複合文書に含まれる各リソースのファイル形式を判別し、次にステップ2304にて、判別した各ファイル形式がこのプリンタ81でレンダリングできるものかどうか(つまり、形式AまたはBか)を判定する。レンダリングできる場合はステップ2305に進み、できない場合はステップ2308に進む。
ステップ2305に進むと、文書アナライザ121がファイル形式AまたはBのリソースをレンダラ123A又は123Bに渡し、レンダラ123A又は123Bがそのリソースをレンダリングして、バンド単位の印刷データを作成しプリンタ内のメモリ(図示せず)に展開する。
一方、ステップ2308に進むと、文書アナライザ121が、このプリンタ81ではレンダリングできないファイル形式(例えばファイル形式Cとする)に対応したレンダラをもつ機器を、このプリンタ81内に予め登録されている図25に示すような機器テーブルを参照して探す。この機器テーブルには、図25に示すように、このプリンタ81と同じドメイン(つまり内部ネットワーク170)内の機器101、102、103、104の各々のネットワーク上の識別(例えばIPアドレス)とその機器がレンダリングできるファイル形式(例えば、その拡張子)とが登録されている。その結果、機器テーブル内にファイル形式Cをレンダリングできる機器があればステップ2310に進み、なければステップ2312に進む。
ステップ2312に進んだ場合、文書アナライザ121は、そのレンダリングできないリソースの画像の代わりとなる所定の絵(例えば枠の絵)の画像ファイルを例えばレンダラ123Bに渡して、その絵の印刷イメージも作成させる。一方、ステップ2310に進んだ場合、文書アナライザ121は、そのファイル形式Cのリソースを、機器テーブルから選んだ機器にネットワーク170を通して送信して、それをレンダリングして返送するよう依頼する。例えば、ファイル形式CがGIFの場合、GIFに対応しているプリンタ102にGIFのリソースを送信する。なお、プリンタ102も例えば図22に示したと同様の構成であり、プリンタ81から依頼されたGIFリソースを対応するレンダラでレンダリングして、その結果の印刷イメージをネットワーク170を通してプリンタ81に返送する。プリンタ81では、ステップ2311にて文書アナライザ121がプリンタ102からの印刷イメージを受信して、各バンド単位でその印刷イメージをメモリに展開する。
こうして、複合文書の各バンドについて、そこに含まれる全てのリソースのレンダリングが終わると、処理はステップ2306に進んで、イメージコンポーザ125が、各リソースの印刷イメージを統合して各バンドの完全な印刷データをメモリ上に展開する。続いて、ステップ2307にて、その完全な印刷イメージを印刷エンジン93が取り込んで用紙に印刷する。
図26は図25に示した機器テーブルをプリンタ81内のメモリに登録する手順を示したフローチャートである。この動作は、プリンタにユーザが命じたとき、定期的、プリンタの立ち上げ時など、適当な契機で随時に行うことができる。
まず、プリンタ81の文書アナライザ121は、ステップ2501にて、例えば同じドメインのルーティングテーブルをもつルータに問い合わせるなどして、ドメイン内の全ての機器101、102、103、104のアドレスをリストアップし、ステップ2502にて、リストアップした機器の各々に対して、その機器がレンダリング可能なファイル形式を問い合わせる。この問い合わせに対し一定時間内にその機器から応答があれば、文書アナライザ121は、ステップ2504に進み、その機器からレンダリングできるファイル形式の通知を受け取り、ステップ2505にて、そのファイル形式をその機器のアドレスに対応させて機器テーブルに登録する。この問い合わせと登録を、ドメイン内の全ての機器に対して行う。結果として、図25に示したような機器テーブルが完成する。
本実施形態によれば、プリンタ81は、自己が有しているレンダラや他の機器が有しているレンダラを利用して、複数のファイル形式を含む複合文書を受信して印刷することができる。
なお、本実施形態では、プリンタ81は、図24のステップ2310で、自分でレンダリングできないファイル形式Cのリソースを他の機器に送って、印刷イメージにレンダリングしてもらっている。しかし、もし、他の機器がそのファイル形式Cをプリンタ81がレンダリングできるファイル形式(例えばB)に変換できるコンバータを有している場合には、ステップ2310で、その機器に対しレンダリングではなく、ファイル形式のCからBへのコンバートを依頼してもよい。その場合は、プリンタ81は、ステップ2311でコンバート後のファイル形式Bのリソースを受信した後、点線矢印で示すようにステップ2305に進んで、そのファイル形式Bのリソースを、自己のレンダラ123Bでレンダリングする。
また、図22では図示省略してあるが、プリンタ81には、特定のプリンタ制御言語で表現したデータを解釈し印刷イメージを作成する従来型のレンダラも当然に含まれている。そこで、上記のように他の機器にファイル形式のコンバートを依頼する場合、特定のプリンタ制御言語で表現したデータ(つまり、従来のプリンタがホストから受信していたと同じ形式のデータ)にコンバートしてもらって、それをプリンタ81内の従来型のレンダラでレンダリングして印刷するようにしてもよい。
図27は本発明の第第8の実施形態を示したブロック図である。
或るドメインを構成するネットワーク170に、本発明に従うプリンタ151及び他の機器、例えばプリンタ152、153やホストコンピュータ154などが接続されている。また、プリンタ151は外部の通信ネットワーク180にも接続されている。プリンタ151は、図22に示したような構成をもっており、通信ネットワーク180から複合文書データを受信した場合、もし、この複合文書を印刷すべきドメイン内の特定のプリンタが、その複合文書に含まれる或るリソースをレンダリングできない場合には、そのリソースをレンダリング(または、上述したコンバート)できる機器を、自己を含むドメイン内の機器中から探して、その機器にレンダリングリングまたはコンバートを行わせ、その結果のデータを印刷を行うべきプリンタに転送する機能を有している。この機能を行うために、プリンタ151は、自己を含めたドメイン内の全機器のレンダリング能力を示した図25に例示したと同様の機器テーブルを有している。なお、このような機能さえあれば、プリント機能はもたないプリンタサーバを、プリンタ151に代えて用いることも可能である。
プリンタ151の動作について図28に示したフローチャートに従って説明する。
プリンタ151は、ステップ2701にて通信ネットワーク180から複合文書データを受信すると、ステップ2702にて、例えばこの複合文書データに含まれている宛先アドレスなどに基づいて、自己を含むドメイン内のプリンタ151、152、153の中から、その複合文書を印刷させるべきプリンタ(例えばプリンタ152とする)を選択する。次に、プリンタ151は、ステップ2703にて、その選択したプリンタ152がレンダリングできるファイル形式が何であるかを、予め登録されている機器テーブルを参照して調べ、ステップ2704にて、そのプリンタ152がその複合文書に含まれる全リソースをレンダリングできるかどうか判定する。その結果、レンダリングできる場合はステップ2707に進み、できない場合はステップ2705に進む。
ステップ2707では、プリンタ151は、その複合文書データを、選択したプリンタ152に転送する。一方、ステップ2705に進んだ場合は、プリンタ151は、選択したプリンタ152がレンダリング不能なリソースをレンダリング(又はコンバート)できる機器を、機器テーブルを参照して検索し、その検索した機器にそのリソースを転送してレンダリング(又はコンバート)を依頼する(プリンタ151自身がレンダリング又はコンバートできる場合は自分でレンダリング又はコンバートする)。その後、ステップ2706に進み、プリンタ151は、受信した複合文書データの内の、選択プリンタ152がレンダリングできるリソースをその選択プリンタ152に転送し、さらに、ステップ2705でレンダリング又はコンバートした結果もその選択プリンタ152に転送する(他の機器でレンダリング又はコンバートした結果は、プリンタ151を経由させずに、他の機器から直接に選択プリンタ152に転送させてもよい)。その結果、選択プリンタ152は、複合文書を完全な形で印刷することができる。
以上、本発明の好適な実施形態を説明したが、本発明は上記実施形態にのみ限定されるわけではなく、他の種々の形態でも実施することができる。
上記の実施形態では、説明を分かりやすくするために、レンダリングという用語を、印刷イメージ(つまり印刷エンジンを駆動する2値ラスターイメージ)を作成することとして説明したが、必ずしもそれだけに限定されるものではない。すなわち、リソースから最終的な印刷イメージが作られるまでには、例えば、中間コード、RGB多値ラスタイメージ、CMYK多値ラスタイメージなどの種々の形態の画像データが作られる。本発明の実施で用いるレンダラは、複合文書のリソースを、その固有のファイル形式には依存しないの何らかの形態の画像データに変換するものであればよく、レンダラから出力される画像データの形態は、上に例示した中間コード、RGB多値ラスタイメージ、CMYK多値ラスタイメージなどの途中形態であってもよい。従って、本発明のプリンタ(又はプリンタサーバ)が、あるリソースを他の機器でレンダリングしてもらう場合におけるそのレンダリング結果というものは、必ずしも最終的な印刷イメージである必要はなく、印刷を行うプリンタ(又はプリンタサーバ)が最終的に印刷イメージ化できる画像データでさえであれば、中間コードの形態でも、多値ラスタイメージの形態でも何でもよい。
さらに、上記実施形態では、説明を分かりやすくするために、レンダリングという用語の他に、コンバートという用語を用い、このコンバートを、着目しているプリンタ(又はプリンタサーバ)が対応できないファイル形式のリソースを対応できる形式のデータに変換する意味で用いている。しかし、本明細書の特許請求の範囲でいう「レンダリング」とは、上記実施形態におけるレンダリングだけでなく上記コンバートも含む広い意味であることに留意されたい。
上記の実施形態では、本発明に従うプリンタは通信ネットワークから複合文書データを受信し、また、通信ネットワークを通じて他の機器にリソースのレンダリングを依頼したりしているが、そうした交信が必ずしも通信ネットワークを通じてを行われなくてはならないわけではない。シリアルインタフェースケーブルやパラレルインタフェースケーブルや各種のバスなどを介して、本発明のプリンタ(又はプリンタサーバ)が他のホストコンピュータやプリンタ等の機器と接続されている場合であっても、本発明のプリンタ(又はプリンタサーバ)は上述した実施形態と実質的に同様の動作を行うことができる。
以上、本発明の好適な幾つかの実施形態を説明したが、それらは本発明の説明のためであって、本発明の範囲をそれら実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、上に説明した実施形態をとは具体的な構成、動作、機能、作用、効果において異なる他の種々の形態によっても実施することができるものである。
本発明の印刷システムの第1の実施の形態を示した機能ブロック図。 本発明の印刷システムの第2の実施の形態を示した機能ブロック図。 図2に示した高機能プリンタの処理手順を示したフローチャート。 本発明の印刷システムの第3の実施の形態を示した機能ブロック図。 本発明の第4の実施形態に係るローカル・ルータの機能を有したネットワーク・プリンタを用いたネットワークシステムの構成図。 図5に示すネットワーク・プリンタの中継機能の構成図。 図6に示すネットワーク・プリンタがもつIPアドレスのリストを示す図。 図6に示すネットワーク・プリンタで行われる受信パケットの処理手順を示す説明図。 図6に示すネットワーク・プリンタで行われる受信パケットの別の処理手順を示す説明図。 図6に示すネットワーク・プリンタで行われる受信パケットのさらに別の処理手順を示す説明図。 図6に示すネットワーク・プリンタで行われる受信パケットのさらにまた別の処理手順を示す説明図。 本発明の第5の実施形態に係るネットワーク対応プリントシステムの構成を示すブロック図。 図12に示すネットワーク対応プリンタの調査処理のフローチャート。 図12に示すネットワーク対応プリンタの転送処理のフローチャート。 図14に示す判断処理のフローチャート。 図12に示すホストのプリンタドライバの処理のフローチャート。 プリンタドライバのユーザインタフェース画面例を示す図。 本発明の第6の実施形態に係るネットワーク対応プリントシステムの構成を示すブロック図。 図18に示す各プリンタの処理のフローチャート。 グループ化されたプリンタの組み合わせのバリエーションを示すブロック図。 判断処理の別の例を示すフローチャート。 本発明の第7の実施形態を示したブロック図。 図22に示したプリンタ81の機能構成を示したブロック図。 図23に示したプリンタ81の処理を示したフローチャート。 図23に示したプリンタ81のメモリに格納される機器テーブルの例を示した図。 図22に示したプリンタが図25に示した機器テーブルを作成する処理を示したフローチャート。 本発明の第8の実施形態を示したブロック図。 図27に示したプリンタ151の処理を示したフローチャート。
符号の説明
1 ホストコンピュータ
2 高機能プリンタ
3、3A、3B 低機能プリンタ
4 通信ネットワーク
11 ネットワーク・プリンタ
12 インターネット
13、14、16 ネットワーク非対応プリンタ
15 ホストコンピュータ
17 Ethernet(登録商標)
18、27 物理層
19、28 データリンク層
20 トランスポート層
51、70 ネットワーク対応プリンタ
52、53、71、n、m 下流側のプリンタ
54 ホスト
55 インターネット(ネットワーク)
81、101、102、151、152、153 プリンタ
91 通信インタフェース
92 イメージングコントローラ
121 文書アナライザ
123 レンダラ
125 イメージコンポーザ
93 印刷エンジン
103、104、154 ホストコンピュータ
160、170、180 通信ネットワーク

Claims (2)

  1. 画像表現能力の高い第1の言語で書かれた第1の印刷コマンドを解釈して印刷を行う印刷手段と、
    接続された複数のプリンタの中から、印刷を実行させるプリンタを選択するプリンタ選択手段と、
    前記選択されたプリンタの解釈できる画像表現能力の低い第2の言語を判定する判定手段と、
    前記第1の印刷コマンドを、前記判定された第2の言語で書かれた第2の印刷コマンドに変換するコマンド変換手段と、
    前記コマンド変換手段からの前記第2の印刷コマンドを、接続された前記プリンタへ転送する転送手段と、
    前記印刷手段と前記転送手段の一方を選択的に働かせる選択手段と
    を有し、
    前記コマンド変換手段が、前記第1の印刷コマンドを解釈して少なくともプリミティブのラスタイメージのレンダリングを行うレンダリング手段と、このレンダリング手段からの前記ラスタイメージを含むデータを前記第2の言語の印刷コマンドのフォーマットに組み込むことにより前記第2の印刷コマンドを作成するコマンド作成手段とを有し、
    前記選択手段が、前記第1の印刷コマンドが宛て先のプリンタを指定しているとき、前記宛て先プリンタが自分自身であれば前記印刷手段を働かせ、前記宛て先プリンタが前記接続されたプリンタであれば前記転送手段を働かせる、
    プリンタ。
  2. モノクロ印刷専用のプリンタであって、前記選択手段が、前記第1の印刷コマンドが印刷色を指定しているとき、前記印刷色がモノクロであれば前記印刷手段を働かせ、前記印刷色がカラーであれば前記転送手段を働かせる請求項1記載のプリンタ。
JP2005351752A 1997-07-25 2005-12-06 印刷システム、方法及びプリンタ Expired - Fee Related JP4285474B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005351752A JP4285474B2 (ja) 1997-07-25 2005-12-06 印刷システム、方法及びプリンタ

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP19955597 1997-07-25
JP23939597 1997-09-04
JP26975597 1997-10-02
JP28506997 1997-10-17
JP2005351752A JP4285474B2 (ja) 1997-07-25 2005-12-06 印刷システム、方法及びプリンタ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP17082298A Division JPH11184649A (ja) 1997-07-25 1998-06-18 印刷システム、方法及びプリンタ

Publications (2)

Publication Number Publication Date
JP2006146946A JP2006146946A (ja) 2006-06-08
JP4285474B2 true JP4285474B2 (ja) 2009-06-24

Family

ID=36626460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005351752A Expired - Fee Related JP4285474B2 (ja) 1997-07-25 2005-12-06 印刷システム、方法及びプリンタ

Country Status (1)

Country Link
JP (1) JP4285474B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104582A (ja) * 2007-10-03 2009-05-14 Ricoh Co Ltd 印刷システムおよび印刷制御方法
JP2009104583A (ja) * 2007-10-03 2009-05-14 Ricoh Co Ltd 印刷システム、ホスト装置、プログラムおよびレポート印刷方法
US8159707B2 (en) * 2008-08-01 2012-04-17 Sharp Laboratories Of America, Inc. Method and system for unified batch job processing
JP5083124B2 (ja) * 2008-08-27 2012-11-28 コニカミノルタビジネステクノロジーズ株式会社 制御装置、ワークフロー制御プログラムおよびワークフロー制御方法
JP2013240964A (ja) * 2012-05-22 2013-12-05 Seiko Epson Corp 媒体処理装置、及び、posシステム
JP6115342B2 (ja) * 2013-06-17 2017-04-19 コニカミノルタ株式会社 プルプリントシステム、プルプリントサーバーおよびコンピュータープログラム
JP6065761B2 (ja) * 2013-06-20 2017-01-25 セイコーエプソン株式会社 制御装置、および、制御装置の制御方法
JP6464751B2 (ja) * 2015-01-07 2019-02-06 コニカミノルタ株式会社 画像形成システム、画像形成装置、遠隔制御方法および遠隔制御プログラム

Also Published As

Publication number Publication date
JP2006146946A (ja) 2006-06-08

Similar Documents

Publication Publication Date Title
US6369909B1 (en) Print system, printing method, and printer
JP4285474B2 (ja) 印刷システム、方法及びプリンタ
US7099027B1 (en) Method and apparatus for distributing print jobs
US7162518B2 (en) Network interface apparatus, image processing apparatus, data providing method, and program
US8861010B2 (en) Notifying a print client of an end of an image process on print data
US9086832B2 (en) Printer
EP0882580A2 (en) A method of managing print files in an electronic prepress system, and system using the method
CN101110012A (zh) 信息处理设备和方法以及计算机程序产品
JP2005004751A (ja) ネイティブ構造の文書印刷命令を伝達するためのシステム、および、その方法
JP2007200324A (ja) Mimeタイプベースのプリンタドライバ選択
US20060092463A1 (en) Printout system and method using an RIP server
JP3714804B2 (ja) 分散印刷方法、分散印刷システムおよび記録媒体
US20020051197A1 (en) Public line connection device for printer and print system
EP1439684B1 (en) Apparatus, method and system for providing information in accordance with one of a plurality of protocols
US20040205619A1 (en) Method and system for chained format translation
JP4045800B2 (ja) プリントシステム及び方法
US20020184342A1 (en) Port monitoring methods and arrangements for enhanced document distribution
JP3257588B2 (ja) 印刷データ生成装置及び印刷データ生成方法
JP2005202723A (ja) 印刷システム
JP5298725B2 (ja) 画像処理装置、画像処理方法、画像処理システムおよびプログラム
JP4438698B2 (ja) 分散印刷システム,印刷方法,及び,コンピュータプログラム
JP4635821B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2003296051A (ja) 印刷システムおよびプリンタコントローラ
JP2008155483A (ja) ネットワークプリンタ、ネットワークプリントシステムおよびプリンタドライバ
JP5696744B2 (ja) 画像処理装置、画像処理方法、画像処理システムおよびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090123

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090303

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090316

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees