(57)【特許請求の範囲】
【請求項１】
データ処理装置と、印刷装置とを備えた印刷システムにおいて、
印刷装置は、データ処理装置と接続され、データ処理装置から送信された印刷データを印刷する印刷装置であって、
少なくとも１つのソフトウェアを記憶する記憶部と、
データ処理装置から、記憶部に記憶された前記ソフトウェアの１つを指定する指定コマンドを受信する受信部と、
受信部に受信された前記指定コマンドに基づいて、記憶部から、指定された指定ソフトウェアを読み出す処理部と、
処理部により読み出された前記指定ソフトウェアを、データ処理装置に送信する送信部と、
送信部から受け取った前記指定ソフトウェアに基づいてデータ処理装置が処理した印刷データであって、データ処理装置から送信され、受信部により受信された印刷データを印刷するプリント部とを備え、
データ処理装置は、
印刷装置が処理可能な形式のデータにより印刷装置に印刷動作を行わせるコントローラを含み、
コントローラは、
データ処理装置で実行されるアプリケーションと前記アプリケーションが使用すべきソフトウェアとの対応を規定した対応テーブルを管理する管理部と、
実行中のアプリケーションを特定するアプリケーション特定情報と前記対応テーブルとに基づいて、印刷装置の記憶部に記憶された前記ソフトウェアの１つを指定する前記指定コマンドを生成するコントローラ処理部と、
コントローラ処理部により生成された前記指定コマンドを前記印刷装置に送信するコントローラ送信部と、
印刷装置から前記指定ソフトウェアを受信するコントローラ受信部と
を備えており、前記コントローラ処理部は、コントローラ受信部により受信された前記指定ソフトウェアで前記印刷データを処理し、前記コントローラ送信部は、コントローラ処理部により処理された前記印刷データを印刷装置に送信し、
印刷装置の記憶部に記憶された前記少なくとも１つのソフトウェアは、コントローラで利用されていた前のバージョンのソフトウェアである、印刷システム。
【請求項２】
前記受信部は、前記指定ソフトウェアの送信後、前記印刷データの受信前に、前記データ処理装置から、前記指定ソフトウェアとは異なるソフトウェアを受信し、
前記処理部は、前記受信部が受信した前記ソフトウェアを前記記憶部に記憶させ、
前記プリント部による前記印刷データの印刷が終了すると、前記処理部は、前記記憶部に記憶された前記ソフトウェアを読み出し、前記データ処理装置に送信する、請求項１に記載の印刷システム。
【請求項３】
前記データ処理装置において実行中のアプリケーションは、印刷命令および該アプリケーション名を含むプリントコマンドと、印刷データとを含む印刷ジョブを生成して前記コントローラに提供し、
前記コントローラは、前記印刷ジョブのプリントコマンドを解析して、前記アプリケーション特定情報を生成する解析部をさらに含む、請求項１に記載の印刷システム。
【請求項４】
前記管理部が管理する前記対応テーブルが、実行中のアプリケーションと前記アプリケーションが使用すべきソフトウェアとの対応を含む場合に、
前記コントローラ処理部は、前記アプリケーションが使用すべきソフトウェアを指定ソフトウェアとして指定する、請求項１に記載の印刷システム。
【請求項５】
前記管理部が管理する前記対応テーブルが、実行中のアプリケーションと前記アプリケーションが使用すべきソフトウェアとの対応を含まない場合には、
前記コントローラ処理部は、現在使用しているソフトウェアを指定ソフトウェアとして前記印刷データを処理する、請求項１に記載の印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のソフトウェアのうちから最適なソフトウェアを選択してデータ処理を行う技術に関する。
【０００２】
【従来の技術】
コンピュータで利用されるソフトウェアは、ソフトメーカーによる新機能の付加、不具合の修正等を目的として、その内容が更新される場合がある。このような更新は、一般にバージョンアップと呼ばれる。ある機能や処理等に関連してソフトウェアのバージョンアップが行われると、その機能や処理の内容や速度等は改善される。
【０００３】
【発明が解決しようとする課題】
しかし、特定の機能等に関してソフトウェアのバージョンアップを行うと、他の機能、精度が劣ったり、速度が落ち処理時間を要する等の副作用を生じる場合がある。例えば、印刷ソフトウェアのバージョンアップにより、ある画像処理ソフトウェアの印刷速度・画質等は改善されたが、一方文書編集ソフトウェアの印字速度が大幅に低下する場合である。
【０００４】
本発明の目的は、ソフトウェアのバージョンアップの際に副作用が生じないようにすることである。
【０００５】
【課題を解決するための手段】
本発明による印刷システムは、
データ処理装置と、印刷装置とを備えた印刷システムにおいて、
印刷装置は、データ処理装置と接続され、データ処理装置から送信された印刷データを印刷する印刷装置であって、
少なくとも１つのソフトウェアを記憶する記憶部と、
データ処理装置から、記憶部に記憶された前記ソフトウェアの１つを指定する指定コマンドを受信する受信部と、
受信部に受信された前記指定コマンドに基づいて、記憶部から、指定された指定ソフトウェアを読み出す処理部と、
処理部により読み出された前記指定ソフトウェアを、データ処理装置に送信する送信部と、
送信部から受け取った前記指定ソフトウェアに基づいてデータ処理装置が処理した印刷データであって、データ処理装置から送信され、受信部により受信された印刷データを印刷するプリント部とを備え、
データ処理装置は、
印刷装置が処理可能な形式のデータにより印刷装置に印刷動作を行わせるコントローラを含み、
コントローラは、
データ処理装置で実行されるアプリケーションと前記アプリケーションが使用すべきソフトウェアとの対応を規定した対応テーブルを管理する管理部と、
実行中のアプリケーションを特定するアプリケーション特定情報と前記対応テーブルとに基づいて、印刷装置の記憶部に記憶された前記ソフトウェアの１つを指定する前記指定コマンドを生成するコントローラ処理部と、
コントローラ処理部により生成された前記指定コマンドを前記印刷装置に送信するコントローラ送信部と、
印刷装置から前記指定ソフトウェアを受信するコントローラ受信部と
を備えており、前記コントローラ処理部は、コントローラ受信部により受信された前記指定ソフトウェアで前記印刷データを処理し、前記コントローラ送信部は、コントローラ処理部により処理された前記印刷データを印刷装置に送信し、
印刷装置の記憶部に記憶された前記少なくとも１つのソフトウェアは、コントローラで利用されていた前のバージョンのソフトウェアである、印刷システム
であり、これにより上記目的が達成される。
【０００６】
前記受信部は、前記指定ソフトウェアの送信後、前記印刷データの受信前に、前記データ処理装置から、前記指定ソフトウェアとは異なるソフトウェアを受信し、
前記処理部は、前記受信部が受信した前記ソフトウェアを前記記憶部に記憶させ、
前記プリント部による前記印刷データの印刷が終了すると、前記処理部は、前記記憶部に記憶された前記ソフトウェアを読み出し、前記データ処理装置に送信してもよい。
【０００７】
前記データ処理装置において実行中のアプリケーションは、印刷命令および該アプリケーション名を含むプリントコマンドと、印刷データとを含む印刷ジョブを生成して前記コントローラに提供し、
前記コントローラは、前記印刷ジョブのプリントコマンドを解析して、前記アプリケーション特定情報を生成する解析部をさらに含んでもよい。
【０００８】
前記管理部が管理する前記対応テーブルが、実行中のアプリケーションと前記アプリケーションが使用すべきソフトウェアとの対応を含む場合に、
前記コントローラ処理部は、前記アプリケーションが使用すべきソフトウェアを指定ソフトウェアとして指定してもよい。
【０００９】
前記管理部が管理する前記対応テーブルが、実行中のアプリケーションと前記アプリケーションが使用すべきソフトウェアとの対応を含まない場合には、
前記コントローラ処理部は、現在使用しているソフトウェアを指定ソフトウェアとして前記印刷データを処理してもよい。
【００１５】
【発明の実施の形態】
以下、添付の図面を参照して、本発明の実施の形態を説明する。
【００１６】
図１は、本発明の印刷システム１０を示す図である。印刷システム１０は、データ処理装置２と、プリンタ４とを含む。印刷システム１０は、データ処理装置２から送信された印刷ジョブに基づいて、プリンタ４が印刷を行うシステムである。データ処理装置２は、パーソナルコンピュータ（ＰＣ）等のデータ処理を行う装置である。一方のプリンタ４は、データ処理装置２と接続されて印刷を行う印刷装置であればよく、レーザプリンタ、銀塩プリンタ等の周知のプリンタのみならず、コピー機でもよい。
【００１７】
続いて図２を参照して、印刷システム１０をより具体的に説明する。図２は、印刷システム１０のデータ処理装置２およびプリンタ４の構成を示す図である。まず本実施の形態による印刷システム１０の主な特徴を説明する。印刷システム１０では、データ処理装置２のプリンタコントローラ２６で利用されるファームウェア（ＥＥＰＲＯＭ２６４に記憶されているソフトウェア）が新しいバージョンに更新された場合に、プリンタ４に設けたハードディスクに更新前のバージョンのファームウェアを保存する。そして印刷時には、アプリケーションに応じて適切なファームウェアを選択して設定を変更することにより、どのアプリケーションを利用しても、処理速度が従来よりも遅くなることのない、また誤動作のない印刷環境を提供できる。例えば、ファームウェアのバージョンアップによって画像処理アプリケーションの印刷速度・画質等が改善されるが、一方文書編集ソフトウェアの印字速度が大幅に低下した場合を考えると、画像処理アプリケーションによる印刷時には現在のファームウェアを利用し、一方文書編集アプリケーションによる印刷時には以前のバージョンのファームウェアを利用して従来と同じ速度による印刷を行うことができる。
【００１８】
以下では、まずデータ処理装置２の構成およびプリンタ４の構成を説明し、その後印刷システム１０の動作を説明する。
【００１９】
データ処理装置２は、メインＣＰＵ２０と、入力部２１と、ハードディスク２２と、メインメモリ２３と、グラフィックコントローラ２４と、表示部２５と、プリンタコントローラ２６と、これらの構成要素を接続して、構成要素間のデータ伝送を行うバス２７とを含む。以下各々を説明する。メインＣＰＵ２０は、データ処理装置２の処理全般を行う処理装置である。例えば、メインＣＰＵ２０は、ハードディスク２２に格納されたアプリケーションソフトウェアに基づいて画像処理や文書編集処理等を行う。入力部２１は、ユーザがデータ処理装置２に指示やデータを入力するための機構である。例えば入力部２１は、キーボード、マウスの他、フロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ等のデータ読取装置も含まれる。さらに、データ処理装置２がネットワークで他のデータ処理装置と接続されている場合には、それらから送信されるデータを受け取るインターフェースの機能も含む。ハードディスク２２は、データ処理装置２の動作を制御するオペレーティングシステム（ＯＳ）プログラムや、そのＯＳ上で動作するアプリケーションプログラム等が格納されている。
【００２０】
メインメモリ２３は、メインＣＰＵ２０がプログラムの実行等の処理を行う際に利用するメモリであり、例えば、画像処理アプリケーションの実行、画像処理アプリケーションにおける処理対象の画像データの展開等が行われる。さらに本実施の形態による処理は、メインメモリ２３に格納されているコンピュータプログラム（ソフトウェア）の実行ステップに基づいて行われる。コンピュータプログラムは、例えばプリンタドライバの一部として規定される。グラフィックコントローラ２４は、プリンタドライバ等に基づいてメインＣＰＵ２０が処理した結果の画像を表示部２５に表示するための処理を行う。例えば、表示部２５が周知のモニタである場合には、モニタのどの画素にどの色を与えるかのデータ処理を行う。表示部２５は、メインＣＰＵ２０の処理の結果を表示する、モニタ等の周知の表示装置である。
【００２１】
プリンタコントローラ２６は、メインＣＰＵ２０が実行しているアプリケーションソフトウェアで印刷を行うときに、メインＣＰＵ２０から印刷ジョブを受け取る。印刷ジョブとは、プリンタ４に印刷を行わせる処理の単位である。印刷ジョブは、ユーザからの印刷命令に応答して、データ処理装置２において実行されているアプリケーション、例えば、画像処理ソフトウェア、文書編集ソフトウェアにより生成される。印刷ジョブのデータ構造の例を表１に示す。印刷ジョブは、印刷すべき指示を表す印刷命令（印刷開始コード）およびジョブを生成したアプリケーション名を含むプリントコマンドと、実質的な印刷内容に関する印刷データとを含む。
0004239392.tif 000002
【００２２】
受け取った印刷ジョブの印刷命令にしたがって、プリンタコントローラ２６は印刷に向けた処理を開始する。すなわち、受け取った印刷ジョブの印刷データを処理してプリンタ４が処理可能な形式のデータを生成し、そのデータをプリンタ４に送信して印刷装置に印刷を行わせる。
【００２３】
プリンタコントローラ２６の具体的な構成を説明する。プリンタコントローラ２６は、コントローラＣＰＵ２６０と、コントローラメモリ２６１と、プリントコマンド解析部２６２と、バージョン管理部２６３と、ＥＥＰＲＯＭ２６４と、コントローラ送信部／受信部２６５と、プリンタコントローラ２６内の構成要素を接続するバス２６６とを含む。
【００２４】
コントローラＣＰＵ２６０は、ＲＯＭ２６１に格納されているファームウェアに基づいて、プリンタコントローラ２６の動作を制御する。後に詳述されるが、具体的にはプリントコマンド解析部２６２の動作、バージョン管理部２６３によるバージョン対応テーブルの管理、検索および検索結果に基づいて作成されるバージョン指定コマンドの作成、プリンタ４とのデータの授受等を制御する。ＥＥＰＲＯＭ２６４へのファームウェアの書き込みを行う際にもコントローラＣＰＵ２６０が動作を制御する。またコントローラＣＰＵ２６０は、ファームウェアに基づく基本的処理を利用して、メインＣＰＵ２０からの動作指示に関連する処理も行うことができる。
【００２５】
ＲＯＭ２６１は、ファームウェアを格納する電気的に書き換え可能なＲＯＭ（ＥＥＰＲＯＭ（Electrically Erasable Program ROM））等である。ファームウェアとは、ＥＥＰＲＯＭ２６４等のＲＯＭに記憶されているソフトウェアをいう。ファームウェアの例は、例えば、プリンタコントローラ２６の基本的入出力動作およびプリンタ４を制御するためのプログラム（いわゆるＢＩＯＳ）である。ＲＯＭ２６４に格納されたファームウェアに基づいて、コントローラＣＰＵ２６０はデータの入出力のための基本的な動作を行い、プリンタ４の動作を制御し、印刷動作を行わせる。ＥＥＰＲＯＭが利用されていることからも明らかなように、ファームウェアは書き換え可能に格納されている。ファームウェアの書き換えは、新機能の付加、不具合の修正等を目的としたソフトメーカーによるファームウェアの更新（バージョンアップ）を受けて、ユーザにより行われる。
【００２６】
プリントコマンド解析部２６２は、印刷ジョブに含まれるプリントコマンドを解析し、その印刷ジョブを生成したアプリケーション名を特定する。特定されたアプリケーション名は、アプリケーション毎に付される文字コード等でよく、そのアプリケーションを特定するアプリケーション特定情報と言及される。なお、プリントコマンド中のアプリケーション名を示すデータの位置は、印刷命令フィールドのデータ量がわかっていれば、先頭からそのデータ量だけ後の位置がその開始位置となる。印刷命令フィールドのデータ量が不明の場合には、例えばその開始位置に特定のビットパターンを挿入してマーカとして利用し、位置を特定してもよい。
【００２７】
次に、バージョン管理部２６３は、データ処理装置２で実行されるアプリケーションとアプリケーションが使用すべきファームウェアとの対応を規定したバージョン対応テーブルを管理する。表２は、バージョン管理部２６３が管理するバージョン対応テーブルの例を示す。バージョン対応テーブルは、メインメモリ上に読み込まれたプリンタドライバの一部に含まれていてもよい。この場合には、そのドライバの供給元が適切（最適）と思われるファームウェアのバージョンをアプリケーション毎に特定することになる。またバージョン対応テーブルは、ユーザが入力部２１等を介して作成したものでもよい。ユーザは、ユーザ個別の印刷システム１０の使用環境において、印字品質や印刷速度等を考慮してより適切にバージョン対応テーブルを作成できる。
【００２８】
なお、コントローラＣＰＵ２６０（図２）がプリントコマンド解析部２６２およびバージョン管理部２６３（図２）の機能を備え、動作を行ってもよい。
0004239392.tif 000003
【００２９】
コントローラメモリ２６４は、印刷ジョブを受け取った後に一時的にその印刷ジョブを格納し、またプリンタ４との送受信に利用されるデータ等を格納する、周知のＲＡＭ（Random Access Memory）である。コントローラメモリ２６４はまた、プリントコマンド解析部２６２により解析されて得られたアプリケーション特定情報の保持、コントローラＣＰＵ２６０により生成された、ファームウェア、より詳細には必要なファームウェアのバージョンを指定するバージョン指定コマンドの保持等を行う。
【００３０】
コントローラ送信部／受信部２６５は、それぞれプリンタ４とデータの送信／受信を行うための機構であり、例えば、プリンタ用インターフェースである。データ処理装置２がプリンタ４と情報を授受する際は、すべて送信部／受信部２６５を介して行われるので、以後は、コントローラ送信部／受信部２６５を介していることを特に明示しないこととする。
【００３１】
続いて、プリンタ４の構成を説明する。プリンタ４は、プリンタＣＰＵ４０と、プリンタメモリ４１と、プリント部４２と、プリンタハードディスク４３と、プリンタ送信部／受信部４４と、これらの構成要素を接続して、構成要素間のデータ伝送を行うバス４５とを含む。プリンタＣＰＵ４０は、データの入出力のための基本的な動作を行い、プリンタコントローラ２６からの指示等に基づいてプリンタ４を制御する。プリンタメモリ４１は、プリンタコントローラ２６から受け取ったデータを一時的に格納する。例えば、プリンタＣＰＵ４０が印刷の対象となる印刷データを受け取った場合には、プリンタメモリ４１はその印刷データを格納し、印刷の終了とともに消去する。プリント部４２は、印刷データを印刷するため機構を備えている。これらはレーザプリンタ、銀塩プリンタ等における周知の機構であるのでその詳細な説明は省略する。
【００３２】
プリンタハードディスク４３は、プリンタコントローラ２６から送信されてくるファームウェアを格納する。「送信されてくるファームウェア」とは、プリンタコントローラ２６内のＲＯＭ２６１に格納されているファームウェアがバージョンアップされる際に、それまで使用されていたファームウェアである。また、現在使用されているファームウェアの場合もある。後者の現在使用されているファームウェアは、一時的な退避を目的として格納される。バージョンアップが何度もされている場合には、その都度、バージョンアップされる前のファームウェアが格納され、蓄積されていく。本発明による処理を行う際には、バージョンアップ前の少なくとも１つのファームウェアが記録されていればよい。プリンタハードディスク４３は、あるバージョンのファームウェアを読み出すよう要求されると、そのバージョンのファームウェアを取り出して、プリンタメモリ４１に転送する。また、ファームウェア等の情報を書き込むよう要求されると、その情報を書き込む。
【００３３】
プリンタ送信部／受信部４４は、それぞれデータ処理装置２のプリンタコントローラ２６とデータの送信／受信を行うための機構であり、例えば、プリンタのインターフェースである。プリンタ４がデータ処理装置２と情報を授受する際は、すべてプリンタ送信部／受信部４４を介して行われるので、以後は、コントローラ送信部／受信部２６５同様、プリンタ送信部／受信部４４を介していることを特に明示しないこととする。
【００３４】
続いて、以上のように構成された印刷システム１０の動作を説明する。本実施の形態における印刷システム１０の動作は、大きくプリンタコントローラ２６が行う動作と、プリンタ４が行う動作とに分けることができる。よって、以下ではプリンタコントローラ２６の動作と、プリンタ４の動作とをそれぞれ説明する。説明に際しては、メインメモリ２３にはすでにアプリケーション（例えば、画像処理ソフトウェアＡ）が読み込まれ、メインＣＰＵ２０により実行されているとする。さらに、ＲＯＭ２６１のファームウェアは、少なくとも一度バージョンアップされており、以前のバージョンのファームウェアがプリンタ４のプリンタハードディスク４３に格納されているとする。アプリケーションからプリンタ４へ印刷を行う際に、本実施の形態による処理が行われる。
【００３５】
図３は、印刷システム１０（図２）におけるプリンタコントローラ２６（図２）の動作手順を示すフローチャートである。まずプリンタコントローラ２６（図２）のコントローラＣＰＵ２６０（図２）は、印刷ジョブを受け取ってプリントコマンドを解析し、印刷ジョブを作成したアプリケーション名を特定する（ステップＳ３０２）。このプリントコマンドの解析は、表１を参照して説明した印刷ジョブのデータ構造に基づいて行われる。続いて、得られたアプリケーション名（アプリケーション特定情報）に基づいてバージョン管理部２６３（図２）に格納されているバージョン対応テーブル（表２）を検索し、そのアプリケーションに対応するバージョンのファームウェアが存在するか否かを判定する（ステップＳ３０４）。存在しない場合（ステップＳ３０４の「いいえ」の場合）には、現在ＲＯＭ２６１（図２）に設定されているファームウェアに基づいて印刷ジョブの印刷データを処理し、プリンタ４（図２）へ転送すれば（ステップＳ３０６）、プリンタコントローラ２６（図２）の処理は終了する。
【００３６】
バージョン対応テーブル（表２）の検索の結果、そのアプリケーションに対応するバージョンのファームウェアが存在する場合（ステップＳ３０４の「はい」の場合）には、その対応するバージョンに関する情報（例えば、バージョン番号）を取り出し、バージョン指定コマンドとしてプリンタ４（図２）に転送する（ステップＳ３０８）。コントローラＣＰＵ２６０（図２）が、プリンタ４（図２）から指定された対応バージョンのファームウェア（指定ファームウェア）を受け取ると（ステップＳ３１０）、現在ＲＯＭ２６１（図２）に設定されているファームウェアをプリンタ４（図２）に転送する（ステップＳ３１２）。この処理は、指定ファームウェアをＲＯＭ２６１（図２）に設定する前に行われる。その理由は、指定ファームウェアをＲＯＭ２６１（図２）に設定すると、それまで使用していたファームウェアは消去され印刷ジョブの終了後に現状に復帰できなくなるので、一時的にプリンタ４（図２）に退避させる必要があるからである。
【００３７】
退避が終了すると、指定ファームウェアを設定する（ステップＳ３１２）。その後コントローラＣＰＵ２６０（図２）は、指定ファームウェアに基づいて印刷データを処理し、印刷のためプリンタ４（図２）へ転送する（ステップＳ３１４）。プリンタ４（図２）への転送が終了すると、プリンタコントローラ２６（図２）の印刷のための処理が終了した旨の通知とともに、退避させていた元のバージョンのファームウェアをプリンタ４（図２）から受け取り、再設定する（ステップＳ３１６）。
【００３８】
なお、上述のステップＳ３１０において、プリンタハードディスク４３（図２）に指定ファームウェアが存在せず、指定ファームウェアを受け取ることができない場合がある。この場合にはコントローラＣＰＵ２６０（図２）はその旨の応答をプリンタ４（図２）から受け取る。そして現在設定されているファームウェアで印刷データを処理し、プリンタ４（図２）へ送信すればよい。または使用可能な複数のバージョンに優先順位を設けてバージョン対応テーブル（表２）に記述しておき、２番目の優先順位にあるバージョンのファームウェアを指定ファームウェアとして再びステップＳ３０８からの処理を繰り返してもよい。
【００３９】
次に図４を参照して、プリンタ４（図２）が行う動作を説明する。図４は、印刷システム１０（図２）におけるプリンタ４（図２）の動作手順を示すフローチャートである。プリンタ４（図２）のプリンタＣＰＵ４０は、プリンタコントローラ２６（図２）からデータを受け取ると（ステップＳ４０２）、そのデータがバージョン指定コマンドを含むか否かを判定する（ステップＳ４０４）。バージョン指定コマンドを含まない場合（ステップＳ４０４の「いいえ」の場合）には、印刷データを受け取り、印刷を行う（ステップＳ４０６）。
【００４０】
バージョン指定コマンドを含む場合（ステップＳ４０４の「はい」の場合）には、バージョン指定コマンドに指定ファームウェアが記述されているので、その指定ファームウェアがプリンタハードディスク４３（図２）に存在するか否かをさらに判定する（ステップＳ４０５）。指定ファームウェアが存在しない場合（ステップＳ４０５の「いいえ」の場合）には、その旨の応答をプリンタコントローラ２６（図２）に送信し、プリンタコントローラ２６（図２）から印刷データを受け取った後、印刷を行う（ステップＳ４０６）。この場合、プリンタコントローラ２６（図２）は、現在設定されているファームウェアで印刷データの処理を行い、プリンタ４（図２）に送信することになる。
【００４１】
指定ファームウェアが存在する場合（ステップＳ４０５の「はい」の場合）には指定ファームウェアをプリンタハードディスク４３（図２）から取り出し、プリンタコントローラ２６（図２）へ転送する（ステップＳ４０８）。転送後、プリンタコントローラ２６（図２）からは、先に設定されていたファームウェアが送信されてくる。そこで、プリンタＣＰＵ４０（図２）はそのファームウェアを受け取り、プリンタハードディスク４３（図２）に退避させる（ステップＳ４１０）。「退避」とは、いつでも読み出しができるように、ファームウェアをプリンタハードディスク４３（図２）に保存することを意味する。
【００４２】
続いてプリンタＣＰＵ４０（図２）は、プリンタコントローラ２６（図２）から印刷データを受け取り、プリント部４２はその印刷データを印刷する（ステップＳ４１２）。印刷が終了すると、その旨の通知とともに、プリンタＣＰＵ４０（図２）は、プリンタハードディスク４３（図２）に退避させていたファームウェアを読み出し、プリンタコントローラ２６（図２）へ転送する（ステップＳ４１４）。このようにして、プリンタ４（図２）の処理が終了する。
【００４３】
以上、本発明の実施の形態を説明した。上述した説明では、プリントコマンド（表１）に記述されたアプリケーション名とバージョン対応テーブル（表２）とに基づいて、そのアプリケーションに最適なバージョンのファームウェアを検索していた。しかし、プリントコマンド（表１）に使用したいバージョンを直接記述して、指定ファームウェアを取得することもできる。これは、例えばアプリケーションからの印刷時に、入力部２１（図２）を介してユーザが利用したいバージョンを入力することにより実現される。すなわち、使用したいファームウェアを直接入力できる。これによれば、バージョン対応テーブル（表２）を利用する必要がなくなる。
【００４４】
図１では、データ処理装置２とプリンタ４とが１対１で接続されているが、複数のデータ処理装置２がネットワークによりプリンタ４と接続されていてもよい。このような例においては、プリンタ４は、データ処理装置２のそれぞれについて、ファームウェアを保存していてもよいし、所定のデータ処理装置２のプリンタコントローラ２６（図２）用ファームウェアのみを保存しておいてもよい。
【００４５】
また、ファームウェアがバージョンアップされる際に、それまで使用されていたバージョンのファームウェアが保存の対象であると説明した。しかし、（１）ファームウェアに限定する必要はなく、ソフトウェアであればよい。また、（２）バージョンが異なる同名のソフトウェアである必要もない。異なるバージョンであれば、そのそれぞれは異なるソフトウェアだからである。
【００４６】
本実施の形態で説明したデータ処理装置２（図２）およびプリンタ４（図２）の処理動作は、そのような処理を規定するコンピュータプログラムをそれぞれが実行することにより行われる。例えば、プリンタ４（図２）では、プリンタＣＰＵ４０（図２）がそのようなコンピュータプログラムを解釈し、実行する。またデータ処理装置２（図２）では、メインＣＰＵ２０（図２）および／またはコントローラＣＰＵ２６０（図２）がそのようなコンピュータプログラムを解釈し、実行する。コンピュータプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ等の光ディスクや、フロッピーディスク、ハードディスク等の磁気記録媒体に記録でき、またインターネット等の電気通信回線を介して他のコンピュータに伝送され、通信相手のコンピュータのメモリ等の記録媒体に記録される。プリンタ４（図２）に関しては、コンピュータプログラムはデータ処理装置２から転送されて、ＲＯＭ（図示せず）に格納すればよい。
【００４７】
【発明の効果】
本発明の印刷装置によれば、印刷データを処理するためのソフトウェアを印刷装置が保持し、ソフトウェアの１つを指定する指定コマンドに基づいて指定されたソフトウェアを提供する。提供されたソフトウェアに基づいて印刷データが処理されるので、印字品質、印刷速度等を考慮した上で、印刷データを処理すべきソフトウェアを指定できる。したがって、十分な処理速度で、かつ誤動作のない印刷環境を提供できる。
【００４８】
本発明の印刷システムによれば、データ処理装置のプリンタコントローラで利用されるファームウェアが新しいバージョンに更新された場合に、プリンタに設けたハードディスクに更新前のバージョンのファームウェアを保存する。そして印刷時には、アプリケーションに応じて適切なファームウェアを選択して設定を変更することにより、どのアプリケーションを利用しても、処理速度が従来よりも遅くなることのない、また誤動作のない印刷環境を提供できる。
【図面の簡単な説明】
【図１】  本発明の印刷システムを示す図である。
【図２】  印刷システムのデータ処理装置およびプリンタの構成を示す図である。
【図３】  印刷システムにおけるプリンタコントローラの動作手順を示すフローチャートである。
【図４】  印刷システムにおけるプリンタの動作手順を示すフローチャートである。
【符号の説明】
４  プリンタ
１０  印刷システム
２６  プリンタコントローラ
４０  プリンタＣＰＵ
４３  プリンタハードディスク
２６０  コントローラＣＰＵ
２６１  ＲＯＭ
２６２  プリントコマンド解析部
２６３  バージョン管理部
【図１】
0004239392.tif 000004
【図２】
0004239392.tif 000005
【図３】
0004239392.tif 000006
【図４】
0004239392.tif 000007