(57)【要約】【課題】情報処理装置と印刷装置との間の接続に関わる自由度を高め、効率的に印刷装置における印刷処理を実行可能とする。【解決手段】印刷装置および情報処理装置と接続可能な印刷制御装置であって、前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報を取得する取得手段と、前記取得手段で取得した識別情報を格納する記憶手段と、前記情報処理装置と接続されるのに応じて、前記記憶手段に格納された識別情報を前記情報処理装置に送信する送信手段と、前記情報処理装置において、前記識別情報に基づいて特定されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信手段と、前記受信手段で受信した印刷データを前記印刷装置に送信する第２の送信手段とを有する【選択図】図２a
2007299225.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置および情報処理装置と接続可能な印刷制御装置であって、
前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報を取得する取得手段と、
前記取得手段で取得した識別情報を格納する記憶手段と、
前記情報処理装置と接続されるのに応じて、前記記憶手段に格納された識別情報を前記情報処理装置に送信する送信手段と、
前記情報処理装置において、前記識別情報に基づいて特定されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信手段と、
前記受信手段で受信した印刷データを前記印刷装置に送信する第２の送信手段と、
を有することを特徴とする印刷制御装置。
【請求項２】
印刷装置および情報処理装置と接続可能な印刷制御装置であって、
前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報と当該印刷装置に対応するプリンタドライバを取得する取得手段と、
前記取得手段で取得した識別情報とプリンタドライバとを格納する記憶手段と、
前記情報処理装置と接続されるのに応じて、前記記憶手段に格納された識別情報とプリンタドライバとを前記情報処理装置に送信する送信手段と、
前記情報処理装置において、前記送信手段によって送信されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信手段と、
前記受信手段で受信した印刷データを前記印刷装置に送信する第２の送信手段と、
を有することを特徴とする印刷制御装置。
【請求項３】
印刷装置、情報処理装置及びネットワークに接続可能な印刷制御装置であって、
前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報と前記ネットワークを介して前記印刷装置に接続するための接続用情報とを取得する取得手段と、
前記取得手段で取得した識別情報を格納する記憶手段と、
前記情報処理装置と接続されるのに応じて、前記記憶手段に格納された識別情報を前記情報処理装置に送信する送信手段と、
前記情報処理装置において、前記識別情報に基づいて特定されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信手段と、
前記受信手段で受信した印刷データを前記接続用情報に基づいて前記ネットワークを介して前記印刷装置へ送信する第２の送信手段と、
を備えることを特徴とする印刷制御装置。
【請求項４】
前記第２の送信手段によって前記印刷データを前記印刷装置に送信した後、前記記憶手段に格納されている識別情報を削除する削除手段を更に有することを特徴とする請求項１乃至３の何れかに記載の印刷制御装置。
【請求項５】
前記取得手段で取得された識別情報が、前記記憶手段に既に格納されているか否かを判断する判断手段と、
前記第２の送信手段は、前記判断手段において、既に格納されていると判断された場合に、前記印刷データを送信することを特徴とする請求項１乃至４の何れかに記載の印刷制御装置。
【請求項６】
前記判断手段において、既に格納されていないと判断された場合、前記印刷データの送信を禁止する禁止手段を更に有することを特徴とする請求項５記載の印刷制御装置。
【請求項７】
前記印刷データの前記印刷装置における印刷処理の実行状況を管理するための管理テーブルを更に記憶し、
前記第２の送信手段は、前記管理テーブルに管理される印刷処理の実行状況に基づいて印刷データを送信することを特徴とする請求項１乃至６の何れかに記載の印刷制御装置。
【請求項８】
前記第２の送信手段は、前記管理テーブルを更に前記印刷装置へ送信し、
前記管理テーブルは前記印刷処理の実行状況に応じて更新され、該実行状況に応じて前記印刷データが前記記憶手段より消去されることを特徴とする請求項７に記載の印刷制御装置。
【請求項９】
前記印刷装置において前記印刷データに関する印刷処理が完了した場合に、該印刷データは前記記憶手段より消去され、
前記印刷装置において前記印刷データに関する印刷処理が完了しなかった場合に、該印刷データは前記記憶手段より消去されないことを特徴とする請求項８に記載の印刷制御装置。
【請求項１０】
前記印刷処理の一部が完了しなかった場合には、前記管理テーブルは、完了した印刷処理の内容に応じて更新されることを特徴とする請求項９に記載の印刷制御装置。
【請求項１１】
前記印刷制御装置は、ＵＳＢメモリデバイスであることを特徴とする請求項１乃至１０の何れかに記載の印刷制御装置。
【請求項１２】
印刷装置および情報処理装置と接続可能な印刷制御装置の制御方法であって、
前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報を取得する取得工程と、
前記取得工程において取得した識別情報を記憶部に格納する記憶工程と、
前記情報処理装置と接続されるのに応じて、前記記憶部に格納された識別情報を前記情報処理装置に送信する送信工程と、
前記情報処理装置において、前記識別情報に基づいて特定されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信工程と、
前記受信工程において受信した印刷データを前記印刷装置に送信する第２の送信工程と、
を有することを特徴とする印刷制御装置の制御方法。
【請求項１３】
印刷装置および情報処理装置と接続可能な印刷制御装置の制御方法であって、
前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報と当該印刷装置に対応するプリンタドライバを取得する取得工程と、
前記取得工程において取得した識別情報とプリンタドライバとを記憶部に格納する記憶工程と、
前記情報処理装置と接続されるのに応じて、前記記憶部に格納された識別情報とプリンタドライバとを前記情報処理装置に送信する送信工程と、
前記情報処理装置において、前記送信工程において送信されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信工程と、
前記受信工程において受信した印刷データを前記印刷装置に送信する第２の送信工程と、
を有することを特徴とする印刷制御装置の制御方法。
【請求項１４】
印刷装置、情報処理装置及びネットワークに接続可能な印刷制御装置の制御方法であって、
前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報と前記ネットワークを介して前記印刷装置に接続するための接続用情報とを取得する取得工程と、
前記取得工程において取得した識別情報を記憶部格納する記憶工程と、
前記情報処理装置と接続されるのに応じて、前記記憶部に格納された識別情報を前記情報処理装置に送信する送信工程と、
前記情報処理装置において、前記識別情報に基づいて特定されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信工程と、
前記受信工程において受信した印刷データを前記接続用情報に基づいて前記ネットワークを介して前記印刷装置へ送信する第２の送信工程と、
を備えることを特徴とする印刷制御装置の制御方法。
【請求項１５】
請求項１２乃至１４のいずれかに記載の方法を、コンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷制御装置及びその制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
印刷装置は、ＰＤＬ(Page Description Language)などの独自の描画言語体系であるコマンドインターフェースを有する。これは、該印刷装置が、特定の情報処理装置、情報処理装置内で動作するオペレーションシステム（以下ＯＳと略）、又は、そのＯＳ上で動作するアプリケーションに依存しないようにするためである。
【０００３】
描画言語体系であるコマンドインターフェースは、個々の印刷装置に依存する。そこで、その依存性をカプセル化するために、ＯＳは、標準的な描画インターフェースを入力とし、印刷装置依存の描画言語体系のコマンドに変換して出力するためのモジュールとしてプリンタドライバを定義している。
【０００４】
このプリンタドライバは、一般に印刷装置の製造元やＯＳ開発者などによってそれぞれ作成され、情報処理装置内に予め格納されることが多い。情報処理装置内に格納されるプリンタドライバは多数存在するため、これら全てのプリンタドライバをユーザに示すのは混乱を招く要因となる。
【０００５】
そこで、ユーザの使用する印刷装置のみ効率的に通信経路に結びつけ、ユーザが使用可能な状態にすることが望ましい。そのためにＯＳの初期状態では、プリンタドライバは情報処理装置内に格納されるだけであり、特定の印刷装置にプリンタドライバを結びつける作業であるＯＳへのプリンタドライバのインストールは、ユーザにより行われることとなる。
【０００６】
従来は、このインストール作業をユーザ自身が手動で行っていた。しかし、プリンタドラバのインストール作業は、一般に煩雑な作業である。また、異なる描画言語体系のコマンドを、その描画体系をサポートしていない印刷装置に送信した場合には、印刷エラーとなるため、各印刷装置に対応したプリンタドライバを正しくインストールする必要があり、初心者には難しい作業であった。
【０００７】
このような煩雑なインストール作業を軽減するために、プラグ・アンド・プレー（ＰｎＰ）という機能がＯＳに導入されている。これによれば、セントロニクスやＵＳＢなどの通信媒介を用いて情報処理装置と印刷装置を直接接続するだけで、ユーザが操作を行わなくても自動的に情報処理装置と印刷装置で双方向通信が行われる。その上で、印刷装置に該当するドライバが情報処理装置にインストールされることとなる。
【０００８】
更に、ユニバーサル・プラグ・アンド・プレーという技術も導入されている。これによれば、情報処理装置と不特定の多数の印刷装置とがネットワークで接続されている場合でも、情報処理装置がネットワーク上の印刷装置を検索し、ユーザが指定する印刷装置と双方向通信が自動的に行われる。そして、印刷装置に該当するドライバが情報処理装置にインストールされる。
【０００９】
上記のプラグ・アンド・プレーのうち、物理接続を行う場合は、情報処理装置と印刷装置との間での通信媒介による直接接続を前提としている。そのため、情報処理装置から印刷装置を特定することは容易であるが、用いる通信媒介の最大転送距離内に、情報処理装置から印刷処理装置までの距離が限定される。即ち、両者を接続するためのケーブル等の物理的長さにより設置の自由度が制約されると共に、ケーブル自体の物理的な設置も煩雑なものであった。
【００１０】
また、ネットワーク接続のユニバーサル・プラグ・アンド・プレーの場合、ネットワーク上の印刷装置を検索した結果と、印刷装置の物理的な設置位置とを簡単に一致させることは困難である。また、情報処理装置がネットワークに参加していない場合には、印刷装置を使うためだけにネットワークへの接続設定が必要となり、作業の煩雑化を避けられない。
【００１１】
このような、プリンタドライバのインストール作業の負荷軽減、又はネットワークへの接続設定作業の負荷軽減を達成するために、持ち運び可能な記憶媒体（例えばＵＳＢメモリ）に印刷データを格納し、印刷することが考えられている（例えば特許文献１参照）。この方法によれば、情報処理装置にプリンタドライバをインストールする必要なく、ネットワークの設定も必要ない。また、情報処理装置と印刷装置を物理的なケーブルで接続する場合と違って、装置間の設置位置の自由度が損なわれることもなくなる。
【特許文献１】特開平8-244314号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来の技術では、記憶媒体に記憶することができる汎用的なフォーマットで作成されたデータを、記憶媒体に格納するものである。よって、例えば両面印刷の設定やステイプル処理の指示など、各印刷装置固有の機能を十分に使うことが出来なかった。また、一度記憶媒体に格納されたデータは、どの印刷装置でも印刷出力可能となっており、例えばユーザ毎に使用可能な印刷装置を制限している環境においては、使用権限の管理を行うことが困難であった。
【００１３】
そこで本発明は、情報処理装置で生成されたデータを記憶媒体に格納して、その記憶媒体を印刷装置に接続することによって実行する印刷システムの問題点を解決することを目的とする。具体的には、このような印刷システムにおいても、各印刷装置の機能を十分に使うことができるようにする。又はこのような印刷システムにおいても、印刷装置の使用権限の管理を行うことができるようにする。
【課題を解決するための手段】
【００１４】
上記の課題を解決するための一つの側面に対応する本発明は、印刷装置および情報処理装置と接続可能な印刷制御装置であって、前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報を取得する取得手段と、前記取得手段で取得した識別情報を格納する記憶手段と、前記情報処理装置と接続されるのに応じて、前記記憶手段に格納された識別情報を前記情報処理装置に送信する送信手段と、前記情報処理装置において、前記識別情報に基づいて特定されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信手段と、前記受信手段で受信した印刷データを前記印刷装置に送信する第２の送信手段と、を有することを特徴とする。
【００１５】
上記の課題を解決するための他の側面に対応する本発明は、印刷装置および情報処理装置と接続可能な印刷制御装置であって、前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報と当該印刷装置に対応するプリンタドライバを取得する取得手段と、前記取得手段で取得した識別情報とプリンタドライバとを格納する記憶手段と、前記情報処理装置と接続されるのに応じて、前記記憶手段に格納された識別情報とプリンタドライバとを前記情報処理装置に送信する送信手段と、前記情報処理装置において、前記送信手段によって送信されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信手段と、前記受信手段で受信した印刷データを前記印刷装置に送信する第２の送信手段と、を有することを特徴とする。
【００１６】
上記の課題を解決するための更なる側面に対応する本発明は、印刷装置、情報処理装置及びネットワークに接続可能な印刷制御装置であって、前記印刷装置に接続されるのに応じて、当該印刷装置を識別するための識別情報と前記ネットワークを介して前記印刷装置に接続するための接続用情報とを取得する取得手段と、前記取得手段で取得した識別情報を格納する記憶手段と、前記情報処理装置と接続されるのに応じて、前記記憶手段に格納された識別情報を前記情報処理装置に送信する送信手段と、前記情報処理装置において、前記識別情報に基づいて特定されたプリンタドライバを用いて生成された印刷データを、当該情報処理装置から受信する受信手段と、前記受信手段で受信した印刷データを前記接続用情報に基づいて前記ネットワークを介して前記印刷装置へ送信する第２の送信手段と、を備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、情報処理装置で生成されたデータを記憶媒体に格納して、その記憶媒体を印刷装置に接続することによって実行する印刷システムの問題点を解決することができる。具体的には、このような印刷システムにおいても、各印刷装置の機能を十分に使うことができるようになる。又はこのような印刷システムにおいても、印刷装置の使用権限の管理を行うことができるようになる。
【発明を実施するための最良の形態】
【００１８】
添付する図面を参照して、本発明の実施形態を説明する。
【００１９】
［第１の実施形態］
図１に、本実施形態における印刷制御装置の概観構成の一例を示す。印刷制御装置１００において、コネクタ１０１は、パーソナルコンピュータ等の情報処理装置３００と接続可能なＵＳＢの情報処理装置側接続コネクタである。また、コネクタ１０２は、印刷装置２００等のデバイスと接続可能なＵＳＢのデバイス側接続コネクタである。
【００２０】
本実施形態において、印刷制御装置１００は、コネクタ１０２を介して印刷装置２００に接続し、印刷装置２００を識別するための識別情報を取得する。印刷装置を識別するための識別情報とは、例えばデバイスＩＤである。そして、印刷制御装置１００は、コネクタ１０１を介して接続した情報処理装置３００に該識別情報を渡す。情報処理装置３００では、印刷制御装置１００から取得した識別情報に基づいて、印刷装置２００用のプリンタドライバを選択する。そして、選択されたプリンタドライバを用いて印刷データを生成する。尚、情報処理装置が適するプリンタドライバを有していない場合には、印刷制御装置１００からプリンタドライバを取得する。情報処理装置において生成された印刷データは、印刷制御装置１００内に格納される。その後、印刷制御装置１００が印刷装置にコネクタ１０２を介して接続された場合に、印刷制御装置１００は以前取得してあった印刷装置の識別情報を印刷装置に渡し、識別情報が一致するのを条件に印刷データを印刷装置に送信する。
【００２１】
尚、本発明の印刷制御装置は、ＵＳＢメモリデバイス（以下、ＵＳＢメモリ）や携帯電話やＰＤＡ（Personal Digital Assistants）等のユーザが持ち運び可能な装置であることが望ましい。本実施形態では、印刷制御装置として、ＵＳＢメモリを用いて説明する。
【００２２】
次に、図２を参照して、印刷制御装置１００の構成の一例を説明する。図２ａにおいて、コネクタ１０１は、USB I/F(ホスト側)に位置する。このコネクタ１０１により、印刷制御装置は、ホスト装置である情報処理装置との通信処理を行うことができる。
【００２３】
また、コネクタ１０２は、USB I/F(周辺装置側)に位置する。このコネクタ１０２により、印刷制御装置は、デバイス装置である印刷装置と通信処理を行うことができる。
【００２４】
仮想プリンタ部１０３は、USBのプリンタクラスの動作を行う処理部である。具体的には、ホストコントローラ側接続コネクタ１０１がホスト装置に接続された際に、印刷装置の代わりに該印刷装置がホストに接続された際と同様のプラグ・アンド・プレーの動作を含むUSB接続の初期化と通信を実行する。
【００２５】
ホストコントローラ部１０４は、USBのホスト側の動作を行う処理部である。ホストコントローラ部１０４は、デバイス側接続コネクタ１０２が印刷装置に接続された際に、情報処理装置の代わりに、あたかも直接情報処理装置が印刷装置と接続されたように動作する。より具体的には、USB接続のホスト側初期化処理、印刷装置が有するプラグ・アンド・プレー情報の読み取り、接続後に印刷制御装置１００に印刷データが格納されている場合には、該印刷データの印刷装置への出力を行う。
【００２６】
媒介変換部１０５は、ホストコントローラ側接続コネクタ１０１から印刷制御装置１００に入力された印刷データを、主記憶部１０６に格納しやすい形式に変換して、主記憶部１０６に格納する処理を行う。また、デバイス側接続コネクタ１０２が印刷装置に接続された際には、主記憶部１０６に格納されている印刷データを、USB接続の通信媒介を介して転送しやすい形式に変換し、ホストコントローラ部１０４へ渡す役割も果たす。
【００２７】
主記憶部１０６は、印刷データのような、情報処理装置と印刷装置との間で印刷動作のために受け渡されるデータを格納する記憶装置である。主記憶部１０６は更に、フィニッシャなどの印刷装置に関する機器構成情報のような、印刷装置より情報処理装置へ渡される情報を格納してもよい。また、印刷装置のステータスを示す情報を格納してもよい。
【００２８】
物理印刷装置情報記憶部１０７は、情報処理装置と印刷装置とがUSB接続の初期化の際に使われる印刷装置とのコンピュータとの接続を確立するために受け渡される情報、すなわちIEEE1284.4形式のデバイスIDなどの情報を保管する記憶部である。また、印刷装置から取得した、その印刷装置用のプリンタドライバを格納する。
【００２９】
蓄電池１０８は、デバイス側が自分の電源を内蔵しているセルフパワーでない場合（バスパワーの場合）に、デバイス側接続コネクタ１０２が印刷装置に接続された際の動作を確保するために電源供給を行う。蓄電池１０８は、ホストコントローラ側接続コネクタ１０１が情報処理装置に接続された際に充電されても良い。蓄電池１０８は、セルフパワーを前提にシステムが構成される場合には、含まれていなくても良い。
【００３０】
次に、図２ｂを参照して、印刷装置２００のハードウェア構成の一例を説明する。
【００３１】
コントローラ２５０はインタフェースユニット２５２と、システムコントローラ２５４と、メモリ２５６と、ユーザインタフェース（ＵＩ）２５８とを含む。このうち、システムコントローラ２５４は、印刷装置２００全体のセンサからページカウント情報を含む印刷エンジン情報を受ける。
【００３２】
印刷装置２００は、コンピュータネットワーク２６２を介して、印刷データを受信することができる。コンピュータネットワーク２６２には、例えば、電話線、コンピュータケーブル、ＩＳＤＮ線、無線、光ファイバ等の適切な通信媒体が含まれる。
【００３３】
受信する印刷データは、複数の電子ページと処理命令セットの形態の画像データを含むジョブ形式のデータである。各印刷データは、印刷装置２００で使用されるページ記述言語（ＰＤＬ）で記載されている。
【００３４】
なお、印刷データを記述するＰＤＬが印刷装置２００で使用されているＰＤＬと異なる場合には、変換ユニットにより、入力されるＰＤＬを印刷装置２００に対応するＰＤＬに変換してもよい。このような変換ユニットは、コントローラ２５０内のインタフェース（Ｉ／Ｆ）ユニット２５２に設けられても良い。
【００３５】
このインタフェースユニット２５２には、ネットワークインタフェース、ＦＤＤインタフェース、メモリカードインタフェース、ＵＳＢインタフェース、スキャナインタフェースが含まれる。
【００３６】
即ち、コンピュータネットワーク２６２以外の他のリモート画像データ源には、メモリカード２６７や本実施形態に対応する印刷制御装置としてのＵＳＢフラッシュメモリ（ＵＳＢメモリ）１００が含まれる。なお、これらにはログ情報などの書き込みも可能である。また、スキャナ２６４は、文書情報を光学的に読み取り、画像データに変換する読取手段であって、インタフェースユニット２５２を介して読み取った画像データをコントローラ２５０内に提供する。
【００３７】
メモリ２５６は、インタフェースユニット２５２を介して受信したデータ、或いは、ユーザーインタフェース２５８を介して表示スクリーン２５９に表示するためのデータが記憶されている。また、システムコントローラ２５４により印刷装置２００の動作を制御するための制御プログラムも格納され、更に、システムコントローラ２５４のワークエリアとして利用されても良い。また、自装置を識別するためのデバイスＩＤや、自装置用のプリンタドライバ等を記憶している。デバイスＩＤやプリンタドライバは、印刷制御装置が装着された際に、Ｉ／Ｆユニット２５２を介して印刷制御装置に入力される。
【００３８】
フィーダ２２０は、好適には、様々なタイプの支持材を印刷エンジン３０へと送る１つ以上のトレイを含む。
【００３９】
ユーザインタフェース２５８は、表示スクリーン２５９を介して印刷装置２００のオペレータからの指示入力を受け付けたり、表示スクリーン２５９における表示情報を制御してオペレータに情報を伝達する。具体的に、オペレータが、ユーザインタフェース２５８のグラフィック表現の１セクションをハイライトしたり、クリック、ダブルクリックしたり、またはそれを開くことで一連のメニューをナビゲーションできる。そして、印刷装置２００に関する情報や制御に達することで、文書フィーダ２０、印刷エンジン３０、およびフィニッシャ４０のモニタを可能にする。
【００４０】
また、印刷エンジン２３０は、記録紙などの記録媒体に印刷データの印刷を行う印刷処理部であって、印刷方式は特に限定されない。即ち、レーザビーム方式であっても、レーザビーム方式以外の電子写真方式（例えばＬＥＤ方式）でも、液晶シャッタ方式、インクジェット方式、熱転写方式、昇華方式でもその他のプリント方式であっても良い。
【００４１】
次に、図２ｃを参照して、情報処理装置３００のハードウェア構成の一例を説明する。情報処理装置３００は、汎用のパーソナルコンピュータで構成することができる。
【００４２】
図２ｃにおいて、３０１はＣＰＵで、ＲＡＭ（ランダムアクセスメモリ）３０２やＲＯＭ（リードオンリメモリ）３０５に格納されたプログラムやデータ等を用いて情報処理装置３００の制御を行うと共に、本発明に対応する処理を行う。３０２はＲＡＭで、内部記憶装置３０７内に格納された処理プログラムや外部記憶装置３０８に格納されている情報を読み込むエリアを備えると共に、ＣＰＵ３０１が各種の処理を実行する際に用いるワークエリアも備える。
【００４３】
３０３は情報処理装置３００のユーザーから入力を受付ける入力部であり、キーボードやマウスなどで構成される。３０４は通信Ｉ／Ｆ（インタフェース）で、電話網やインターネット等に接続するとともに、本発明の印刷制御装置１００としてのＵＳＢメモリを接続するためのＩ／Ｆとして機能する。３０５はＲＯＭで、情報処理装置３００全体の制御を行うプログラム（例えばブートプログラム等）等を格納する。３０６は表示画面としての表示部で、ＣＲＴや液晶画面により構成されている。
【００４４】
３０７は内部記憶装置で、主としてハードディスクで構成され、本実施形態に対応する処理を行うためのプログラムや各種アプリケーションデータ、プリンタドライバ等を格納する。ここに格納されているデータは必要に応じてＲＡＭ３０２に読み出される。３０８は外部記憶装置である。また、３０９は上述の各部を繋ぐバスである。
【００４５】
次に、本実施形態における全体的な処理の流れを、ユーザーシナリオとして図３のシーケンス図を参照して説明する。このシナリオは大きく分けて、以下の３つの工程からなる。
【００４６】
＜印刷制御装置１００の初期化＞
まず、ステップＳ３０１において、利用者４００は印刷を実行したい印刷装置２００へ、印刷制御装置１００のデバイス側接続コネクタ１０２を挿す。このときホストコントローラ部１０４と印刷装置２００との間で、USBの接続が初期化される。この初期化時に、印刷制御装置１００は、印刷装置２００が有するIEE1284.4形式のデバイスIDなど、USB接続の通信に必要な情報と印刷装置２００用のプリンタドライバを、物理印刷装置情報記憶部１０７へ保存する。
【００４７】
利用者４００は、初期化が終了した時点で印刷制御装置１００から印刷制御装置を抜く。初期化が終了したか否かの判断手法は、ここでは特に限定しないが、例えばユーザによる時間計測でも良いし、印刷制御装置１００に初期化タイミングを示すLEDや、印刷装置側にパネルを設けても良い。
【００４８】
＜情報処理装置３００へのプラグ・アンド・プレーと印刷＞
ステップＳ３０２において、利用者４００は印刷の実行を行いたい情報処理装置３００へ、印刷制御装置１００の情報処理装置側接続コネクタ１０１側を挿す。この接続時に仮想プリンタ部１０３は、ステップＳ３０１の"印刷制御装置の初期化"で格納された、物理印刷装置情報記憶部１０７に含まれる印刷装置２００固有のUSB接続関連の情報を用いて、USB接続を確立する。この印刷装置２００固有のUSB接続関連の情報には、IEEE1284．4形式のデバイスIDが含まれる。デバイスＩＤを取得した情報処理装置では、このデバイスＩＤに対応する印刷装置用のプリンタドライバが既に情報処理装置にインストールされているか否かを判断する。インストールされていないと判断された場合には、印刷制御装置にプリンタドライバのインストールを要求する。印刷制御装置は、この要求に応じて、物理印刷装置情報記憶部１０７に記憶されているプリンタドライバを情報処理装置にインストールする。
【００４９】
ステップＳ３０３において利用者４００は、プラグ・アンド・プレーで自動インストールされたプリンタドライバを指定して、アプリケーションから印刷を行う。仮想プリンタ部１０３は、このとき生成される印刷データを情報処理装置３００より受け取り、媒介変換部１０５が主記憶部１０６に格納しやすい形式に変換し、主記憶部１０６に格納する。利用者４００は、情報処理装置３００の印刷キューにデータがないことを確認し、印刷制御装置１００を情報処理装置３００から抜き取る。なお、印刷制御装置１００にLEDがある場合は、通信が終了したことをそのLEDで示してもよい。
【００５０】
＜印刷装置２００への出力＞
ステップＳ３０４において利用者４００は、印刷を実行したい印刷装置２００へ、印刷制御装置１００のデバイス側接続コネクタ１０２側を挿す。ホストコントローラ部１０４はUSB通信の初期化処理を行う。この際、印刷制御装置は、物理印刷装置情報記憶部１０７に格納されている印刷装置のデバイスＩＤを印刷装置２００へ送信する。印刷装置２００では、受信したデバイスＩＤと自身のデバイスＩＤとが一致するかを判断する。デバイスＩＤが一致すると判断されると、印刷装置２００は印刷データの受信を許可する旨を印刷制御装置１００に通知する。この通知を受け取った印刷制御装置１００は、印刷制御装置１００内の主記憶部１０６に印刷データが格納されている場合は、媒介変換部１０５を用いて主記憶部１０６に記録可能な形式からUSB通信に適切な形式のデータへ変換する。変換後のデータは、ホストコントローラ部１０４を用いて、印刷装置２００へ出力される。
【００５１】
次に、図４を参照して仮想プリンタ部１０３における処理の流れを説明する。仮想プリンタ部１０３は定期的に以下の処理を繰り返している。
【００５２】
まず、ステップＳ４０１では、印刷制御装置１００のホスト側接続コネクタ１０１において、情報処理装置３００から送信されたRESET信号を検出したかを監視している。もし、RESET信号を検出した場合には（ステップＳ４０１において「ＹＥＳ」）、ステップＳ４０２に移行する。一方、RESET信号を検出しない場合には（ステップＳ４０１において「ＮＯ」）、検出の監視を継続する。
【００５３】
ステップＳ４０２では、RESET信号の検出に伴い、RESET状態と認識してUSB通信関連の内部リセットを実行し、Default状態になる。但し、このとき物理印刷装置情報記憶部１０７に格納されている情報の変更は行わないが、主記憶部１０６に格納されている情報は削除されても良い。
【００５４】
次に、ステップＳ４０３において、情報処理装置３００からコンフィギュレーション情報の要求を受信したか否かを判定する。もし、該要求を受け付けた場合には（ステップＳ４０３において「ＹＥＳ」）、ステップＳ４０４に移行する。一方、該要求を受け付けない場合には（ステップＳ４０３において「ＮＯ」）、監視を継続する。
【００５５】
ステップＳ４０４では、物理印刷装置情報記憶部１０７に印刷装置２００のデバイスＩＤなどが格納されているか否かを判定する。もし、デバイスＩＤなどが格納されている場合には（ステップＳ４０４において「ＹＥＳ」）、ステップＳ４０５に移行する。一方、格納されていない場合には（ステップＳ４０４において「ＮＯ」）、ステップＳ４０６に移行する。
【００５６】
ステップＳ４０５では、物理印刷装置情報記憶部１０７に格納されている印刷装置２００のデバイスＩＤなどを用いて、USBのコンフィギュレーション情報を作成する。一方、ステップＳ４０６では、デバイスＩＤが格納されていない旨の情報を生成し、情報処理装置に送信する。これを受けた情報処理装置３００は、表示画面上に「プリンタが特定されていません」等の表示を行い、ユーザに対して印刷制御装置１００を印刷装置に接続することを促す。
【００５７】
ステップＳ４０７では、ステップＳ４０５にて作成されたコンフィギュレーション情報を、ホスト側接続コネクタ１０１を介して情報処理装置３００に送信し、コンフィギュレーションを行い、ＵＳＢ接続を確立する。具体的には、情報処理装置３００側では、コンフィギュレーション情報に含まれるデバイスＩＤを取得すると、そのデバイスＩＤに対応する印刷装置のためのプリンタドライバが既にインストールされているか否かを判断する。インストールされている場合にはそのプリンタドライバを特定する。インストールされていない場合には、その旨を印刷制御装置１００に通知する。この通知を受けた印刷制御装置１００は、物理印刷装置情報記憶部１０７に格納されている印刷装置２００用のプリンタドライバを情報処理装置にインストールする。
【００５８】
次に、ステップＳ４０８では、印刷データをホスト装置である情報処理装置３００から受信したか否かを判定する。印刷データを受信した場合には（ステップＳ４０８において「ＹＥＳ」）、ステップＳ４０９に移行する。一方、印刷データを受信しない場合には（ステップＳ４０８において「ＮＯ」）、処理を終了する。ここで、印刷データは、情報処理装置３００において、印刷装置２００用のプリンタドライバによって生成される。即ち、情報処理装置を操作するユーザは、単にデータのファイルを印刷制御装置に格納するのではなく、印刷制御装置にデバイスＩＤが記憶されている印刷装置用のプリンタドライバを使って、所望の印刷設定を設定した印刷データを作ることができる。
【００５９】
ステップＳ４０９では、ホスト側接続コネクタ１０１側を介して受信した印刷データを、媒介変換部１０５で変換する。またステップＳ４１０において、変換した印刷データを主記憶部１０６に保存する。その後、処理を終了する。
【００６０】
次に、図５を参照して、印刷制御装置１００内のホストコントローラ部１０４における処理の流れを説明する。ホストコントローラ部１０４は、定期的に以下の処理を繰り返している。
【００６１】
まず、ステップＳ５０１において、印刷制御装置１００のデバイス側接続コネクタ１０２側で印刷装置２００へのアタッチが検出されたか否かを監視している。もし、アタッチが検出された場合には（ステップＳ５０１において「ＹＥＳ」）、ステップＳ５０２に移行する。一方、アタッチが検出されない場合には（ステップＳ５０１において「ＮＯ」）、監視を継続する。
【００６２】
ステップＳ５０２では、デバイスがアタッチされたので、RESET信号をデバイスである印刷装置２００へ一定時間以上出力する。印刷装置２００側では、印刷制御装置１００から送信されるRESET信号に基づきRESET状態を認識し、内部リセットを実行してDefault状態になる。
【００６３】
続いて、ステップＳ５０３では、USBのコンフィギュレーション情報を印刷装置２００に要求し、印刷装置２００よりコンフィギュレーション情報を取得する。ステップＳ５０４では、取得したコンフィギュレーション情報に基づきＵＳＢ接続を確立する。
【００６４】
ステップＳ５０５では、印刷装置２００より取得したコンフィギュレーション情報のうち、IEEE1284.4形式のデバイスＩＤなど、印刷装置を識別するための識別情報を抽出する。ステップＳ５０６では、抽出したデバイスＩＤと、物理印刷装置情報記憶部１０７に格納されているデバイスＩＤとを比較する。比較の結果、物理印刷装置情報記憶部１０７に格納されているデバイスＩＤと抽出したデバイスＩＤの内容とが一致する場合には（ステップＳ５０７において「ＹＥＳ」）、ステップＳ５０９に移行する。一方、取得したデバイスＩＤが格納されているデバイスＩＤと異なる場合又は物理印刷装置情報記憶部１０７にデバイスＩＤが格納されていない場合には（ステップＳ５０７において「ＮＯ」）、ステップＳ５１３に移行する。
【００６５】
ステップＳ５０８では、主記憶部１０６に印刷データが格納されているか否かを判定する。もし印刷データが格納されている場合には（ステップＳ５０８において「ＹＥＳ」）、ステップＳ５０９に移行する。一方、印刷データが格納されていない場合には（ステップＳ５０８において「ＮＯ」）、処理を終了する。
【００６６】
ステップＳ５０９では、主記憶部１０６に格納されている印刷データを媒介変換部１０５で変換し、ステップＳ５１０においてデバイス側接続コネクタ１０２経由で印刷装置２００に送信する。
【００６７】
ステップＳ５１１では、印刷データの送信が成功したか否かを判定する。もし、送信が成功した場合には（ステップＳ５１１において「ＹＥＳ」）、主記憶部１０６に格納されていた印刷データを削除して、本処理を終了する。送信に失敗した場合には（ステップＳ５１１において「ＮＯ」）、送信処理を繰り返す。
【００６８】
このとき、印刷データが出力された印刷装置２００側では、取得した印刷データに基づいて印刷処理が実行される。
【００６９】
ステップＳ５０７における判定の結果、取得したデバイスＩＤが格納されているデバイスＩＤと異なる場合又は物理印刷装置情報記憶部１０７にデバイスＩＤが格納されていない場合には、ステップＳ５１３に移行する。ステップＳ５１３では、主記憶部１０６に印刷データが格納されているか否かを判定する。もし印刷データが格納されている場合には（ステップＳ５１３において「ＹＥＳ」）、ステップＳ５１４に移行する。一方、印刷データが格納されていない場合には（ステップＳ５１３において「ＮＯ」）、ステップＳ５１５に移行する。
【００７０】
ステップＳ５１４では、印刷装置２００に対して、印刷データの送信ができないことを示す通知を送信し、処理を終了する。この通知を受けた印刷装置２００は、表示画面に、「印刷できません」等の表示を行い、ユーザにこの印刷装置では印刷ができないことを知らせる。つまり、本実施形態の印刷制御装置では、事前にデバイスＩＤを取得した印刷装置と、印刷を実行しようとする印刷装置とが同じ印刷装置でなければ印刷を禁止するように制御している。これにより、印刷制御装置に格納されている印刷データをどの印刷装置でも印刷させてしまう状況を防ぐことができ、印刷装置の使用権限を管理する上で効果がある。
【００７１】
ステップＳ５１５では、ステップＳ５０５において抽出したデバイスＩＤを物理印刷装置情報記憶部１０７に格納し、処理を終了する。物理印刷装置情報記憶部１０７に既に別のデバイスＩＤが格納されていた場合には、そのデバイスＩＤをステップＳ５０５で抽出したデバイスＩＤに上書きする。物理印刷装置情報記憶部１０７に別のデバイスＩＤが格納されていない場合には、ステップＳ５０５で抽出したデバイスＩＤを新規に格納することになる。
【００７２】
尚、本実施形態においては、印刷制御装置に格納されているデバイスＩＤと印刷装置のデバイスＩＤが一致しない場合に印刷を禁止するために、印刷制御装置側でその判断、制御を行っている。しかし、この判断、制御を印刷装置側で行うようにしてもよい。この場合、印刷制御装置及び印刷装置は、以下のように動作することになる。
【００７３】
まず、印刷制御装置は、物理印刷装置情報記憶部１０７に格納されているデバイスＩＤと、主記憶部１０６に印刷データが格納されていることを印刷装置に通知する。これを受けた印刷装置は、受信したデバイスＩＤと、自身のデバイスＩＤとを比較し、一致するか否かを判断する。その結果、一致すると判断された場合には、印刷を許可する旨を示す通知を印刷制御装置に送信する。一方、一致しないと判断された場合には、印刷を禁止する旨を示す通知を印刷制御装置に通知し、表示画面に「印刷できません」等の表示を行う。印刷制御装置は、印刷を許可する旨を示す通知を受信した場合には、主記憶部１０６に格納されている印刷データを印刷装置に送信する。一方、印刷を禁止する旨を示す情報を受信した場合には、印刷データを送信しない。
【００７４】
このような方法を用いても、印刷制御装置に格納されている印刷データをどの印刷装置でも印刷させてしまう状況を防ぐことができる。
【００７５】
以上のように、本実施形態によれば、印刷制御装置としてＵＳＢメモリを用いて、情報処理装置に印刷装置に対応するプリンタドライバをインストールさせることができる。又は情報処理装置にインストールされているプリンタドライバの中から最適なプリンタドライバを選択させることができる。そして該プリンタドライバを用いて生成された印刷データをＵＳＢメモリ内に格納し、印刷装置に提供して、印刷データの印刷処理を実行することができる。
【００７６】
これにより、情報処理装置と印刷装置との間でケーブルなどによる物理的接続、或いは、ネットワークを介した接続を介さずとも、印刷処理を実行することができる。この時、単にＵＳＢメモリに画像データを記憶させ、印刷装置にその画像データを入力するのではなく、情報処理装置からプリンタドライバを介してＰＤＬフォーマットでの印刷データをＵＳＢメモリに記憶させることができる。従って、ユーザは、印刷データに例えばステイプル処理や両面印刷等の所望の印刷設定を設定することができる。また、デバイスＩＤが一致しない場合には印刷が実行されないため、ユーザがどの印刷装置でも勝手に印刷を実行してしまうことがないように管理することができる。
【００７７】
［第２の実施形態］
図６を参照して、本実施形態に対応する印刷制御装置を説明する。印刷制御装置５００は、情報処理装置３００と接続可能なUSBのホストコンピュータ側接続コネクタ１０１と、ＬＡＮケーブルなどを接続するためのネットワークケーブルコネクタ５０１を有している。
【００７８】
図７に、この印刷制御装置５００の構成の一例を示す。この印刷制御装置５００は、以下のブロックで構成されている。
【００７９】
コネクタ１０１は、USB I/F(ホスト側)に位置する。このコネクタ１０１により、ホスト装置である情報処理装置との通信処理を行うことができる。また、ネットワークケーブルコネクタ５０１は、ネットワークケーブルコネクタ５０１のブロック表現であり、ＬＡＮケーブルなどを接続して、印刷装置２００との通信処理を行うことができる。
【００８０】
印刷制御装置５００は、プリンタクラスである仮想プリンタ部１０３と、ストレージクラスである記憶装置制御部５０３という、２つのクラスを内包している。そこで、USBハブ５０２は、それぞれの処理部への通信を制御する。
【００８１】
仮想プリンタ部１０３は、USBのプリンタクラスの動作を行う処理部である。具体的には、ホストコンピュータ側接続コネクタ１０１がホスト装置に接続された際に、印刷装置の代わりに該印刷装置がホストに接続された際と同様のプラグ・アンド・プレーの動作を含むUSB接続の初期化と通信を実行する。その際の印刷装置２００のUSB関連情報については、物理印刷装置情報５０５を参照して説明する。
【００８２】
記憶装置制御部５０３は、USBのストレージクラスの動作を行う制御部である。ホストコンピュータ側接続コネクタ１０１がホスト装置に接続された際に、ストレージクラスとして書き込まれた情報を主記憶部１０６へ読み書きする。
【００８３】
主記憶部１０６は、印刷データのような情報処理装置３００と印刷装置２００との間で印刷動作のために受け渡されるデータを格納する記憶装置である。主記憶部１０６には、以下の情報が格納されている。
【００８４】
物理印刷装置情報５０５は、印刷装置２００が有する以下の２つの情報で構成されている。まず、IEEE1284.4形式のデバイスIDなど、印刷装置２００を識別するための識別情報である。これは、情報処理装置３００と印刷装置２００とのUSB接続の初期化の際に、印刷装置と情報処理装置との間で接続を確立するために受け渡される情報である。
【００８５】
次に、ネットワーク設定情報である。これは、印刷装置２００とネットワークを介して接続するための接続用情報であって、印刷装置２００が有するIPアドレスなどが含まれる。
【００８６】
印刷制御装置用設定情報５０６には、印刷制御装置５００がネットワーク接続を行うために必要なネットワーク情報が含まれる。例えば、ネットワークケーブルコネクタ５０１へ接続されるLAN環境が、印刷制御装置５００に固定的にＩＰアドレスを割り当てる場合は、そのIPアドレスやサブネットマスクなどの設定が保持される。またDHCPの場合も、割り当てられたアドレス情報が保存される。
【００８７】
媒介変換部５０４は、ホストコンピュータ側接続コネクタ１０１から印刷制御装置５００に入力された印刷データをネットワーク通信に適す形式に変換するための処理部である。併せて、ネットワークケーブルコネクタ５０１を介して受信した情報を、USB通信へ適する形式に変換できても良い。
【００８８】
ネットワーク通信部５０５は、媒介変換部１０５を介して入力された情報を、ネットワークケーブルコネクタ５０１介して通信するための通信部である。また、ネットワークケーブルコネクタ５０１より入手した情報を、媒介変換部１０５に与える。なお、動作の際に必要となる印刷制御装置５００のIPアドレスや、印刷装置２００のIPアドレス等の情報は、それぞれ、物理印刷装置情報５０５や印刷制御装置用設定情報５０６を参照して取得可能である。
【００８９】
次に、図８を参照して本実施形態のユーザシナリオを説明する。ユーザシナリオは、大きく分けて、以下の３つの工程からなる。このユーザシナリオは、訪問者４００が出張先にノートＰＣを持ち込んで特定の印刷装置へ印刷を行おうとする場合を示している。図８において、管理者６００は、出張先のネットワーク管理者である。なお、管理者６００と訪問者４００は同一人であってもよい。
【００９０】
＜印刷制御装置５００の初期化＞
まず、ステップＳ８０１において管理者６００は、印刷処理を実行させようとする印刷装置２００に、印刷制御装置５００のホストコンピュータ側接続コネクタ１０１を挿す。印刷制御装置５００と印刷装置２００との間でUSB接続が確立され、印刷装置２００からは記憶装置として認識される。
【００９１】
次に、ステップＳ８０２において、管理者６００は、印刷装置２００のコントロールパネルを操作し、主記憶部１０６内の物理印刷装置情報５０５と印刷制御装置用設定情報５０６が、USB通信により初期化される。この初期化処理については図９を参照して後述する。なお、図８では、印刷装置２００を用いて印刷制御装置５００を初期化したが、別途管理用のパーソナルコンピュータを用意して、それを用いて印刷装置の代替としてもよい。
【００９２】
＜印刷制御装置５００の貸し出し＞
ステップＳ８０３において、管理者６００は、初期化された印刷制御装置５００を、訪問者４００へ貸し出す。
【００９３】
＜印刷制御装置５００によるプリンタドライバのインストールと印刷処理＞
ステップＳ８０４において、訪問者４００は、ネットワークケーブルコネクタ５０１へネットワークケーブルを接続する。なお、無線LANの場合はこの接続は必要ない。  次にステップＳ８０５において、訪問者４００は、持参した情報処理装置３００へ、印刷制御装置５００のUSBのホストコントローラ接続コネクタ１０１を挿す。この時点でプラグ・アンド・プレーが実行され、情報処理装置３００に対応するプリンタドライバがインストールされる。
【００９４】
ステップＳ８０６では、訪問者４００が、情報処理装置３００内の所定のアプリケーションから、インストールされたプリンタドライバを用いて印刷を行う。
【００９５】
次に、図９を参照して、上記ステップＳ８０２における印刷制御装置５００の初期化シーケンスの詳細を説明する。
【００９６】
まず、ステップＳ９０１において、管理者６００は、印刷装置２００へ印刷制御装置５００のUSBのホストコンピュータ側接続コネクタ１０１を挿す。ステップＳ９０２では、印刷制御装置５００は、記憶装置（ＵＳＢメモリ）としてプラグ・アンド・プレーを行う。続いて、ステップＳ９０３では、印刷装置２００は、印刷制御装置５００を記憶装置として認識する。
【００９７】
更に、ステップＳ９０４では、管理者６００による印刷装置２００の操作パネルの操作に応じて、印刷制御装置５００の初期化が行われる。ここで、ステップＳ９０５では、印刷装置２００が、物理印刷装置情報５０５を、USB通信を用いて印刷制御装置５００へ送信する。この物理印刷装置情報５０５には、IEEE1284.4形式のデバイスIDなどの印刷装置としてUSB通信するために必要な情報と、印刷装置２００とネットワーク接続するために必要なIPアドレスなどの情報とが含まれる。また、印刷装置２００用のプリンタドライバが含まれる。このとき、印刷制御装置５００に固定アドレスを設定する場合には、ここ段階で割り当てておき、主記憶部１０６内の印刷制御装置用設定情報５０６として渡してもよい。
【００９８】
ステップＳ９０６において印刷制御装置５００は、印刷制御装置５００の主記憶部１０６に、印刷装置２００より受信した物理印刷装置情報５０５を記憶する。また、印刷制御装置５００に固定アドレスが設定された場合には、該アドレス情報を印刷制御装置用設定情報５０６として主記憶部１０６に記憶する。
【００９９】
ステップＳ９０７では、印刷装置２００は、印刷制御装置５００の主記憶部１０６への情報の書き込みが完了したか否かを確認する。書込完了が確認できれば本初期化処理の完了を、操作パネルを通して管理者６００へ通知する。一方、書込の完了が確認できない場合、書込に失敗した場合には、操作パネルを介して管理者６００に対して書込失敗の旨を通知する。その場合には、ステップＳ９０１からの処理が再度行われることとなる。
【０１００】
次に、図１０を参照して、印刷制御装置５００によるプリンタドライバのインストールと印刷処理の詳細について説明する。
【０１０１】
まず、ステップＳ１００１において、訪問者４００は、ネットワークケーブルコネクタ５０１へネットワークケーブルを接続する。無線LANの場合はこの接続は必要ない。次に、ステップＳ１００２において、印刷制御装置５００は、DHCPもしくはステップＳ９０５において印刷装置２００から受け取った印刷制御装置５００用の固定IPを用いて、LANとのネットワーク接続を確立する。
【０１０２】
更に、ステップＳ１００３では、訪問者４００は、情報処理装置３００に、印刷制御装置５００のホストコントローラ接続コネクタ１０１を挿す。ステップＳ１００４では、印刷制御装置５００は、ステップＳ９０６で記憶された主記憶部１０６内の物理印刷装置情報５０５として有効な情報を発見し、プリンタクラスとして通信を確立する。
【０１０３】
ステップＳ１００５では、情報処理装置３００が、印刷制御装置５００をプリンタクラスとして認識し、渡されたIEEE１２８４．４形式のデバイスIDを用いてプラグ・アンド・プレーを実行する。更に、情報処理装置３００は、IEEE１２８４．４形式のデバイスIDに該当するプリンタドライバをインストールする。ここで、情報処理装置３００が既に印刷装置２００用のプリンタドライバをインストール済みである場合には、プリンタドライバのインストールは省略される。即ち、印刷制御装置５００は、情報処理装置３００からの要求があった場合にのみプリンタドライバのインストールを行う。
【０１０４】
ステップＳ１００６では、情報処理装置３００内のアプリケーションより、インストールされたプリンタドライバを用いて印刷指示がなされる。印刷指示に応じて、ステップＳ１００７では、情報処理装置３００が、アプリケーションからの描画要求をプリンタドライバで印刷コマンドに変換する。更にステップＳ１００８において、情報処理装置３００は、USB接続で印刷コマンドを印刷制御装置５００へ渡す。更に、ステップ１００９において、印刷制御装置５００は、USB通信で受け取った印刷コマンドを、媒介変換部５０４でネットワーク通信に適用可能なデータ形式に変換する。また、ネットワーク通信部５０５は、ネットワークケーブルコネクタ５０１を介し、物理印刷装置情報５０５として主記憶部１０６に格納されているIPアドレスを利用して、変換された印刷コマンドを印刷装置２００へ送信する。
【０１０５】
ステップＳ１０１０において、印刷装置２００は、LAN経由で受信した印刷コマンドに基づいて印刷処理を実行する。
【０１０６】
次に、図１１を参照して、本実施形態に対応する印刷制御装置５００の処理を説明する。なお、情報処理装置３００に接続された印刷制御装置５００は、定期的に以下のステップＳ１１０７以降の処理を繰り返すこととなる。
【０１０７】
まず、ステップＳ１１０１では、印刷制御装置５００のホストコンピュータ側接続コネクタ１０１において、RESET信号を検出したかを監視している。もし、RESET信号を検出した場合には（ステップＳ１１０１において「ＹＥＳ」）、ステップＳ１１０２へ移行する。一方、RESET信号を検出しない場合には、監視を継続する。
【０１０８】
次に、ステップＳ１１０２では、RESET信号に基づき、RESET状態と認識してUSB通信関連の内部リセットを実行しDefault状態になる。このとき、主記憶部１０６に格納されている物理印刷装置情報５０５及び印刷制御装置用設定情報５０６は消去しない。
【０１０９】
次に、ステップＳ１１０３では、情報処理装置３００からコンフィギュレーションの要求を受信したか否かを判定する。もし、コンフィギュレーション要求を受け付けた場合には（ステップＳ１１０３において「ＹＥＳ」）、ステップＳ１１０４へ移行する。ステップＳ１１０４では、まず、記憶装置制御部５０３が情報処理装置３３０との間でコンフィギュレーションを実行し、ストレージクラスとしてUSB通信を確立する。
【０１１０】
更に、ステップＳ１１０５では、主記憶部１０６に物理印刷装置情報５０５が格納されているか否かを判定する。もし、物理印刷装置情報５０５が格納されている場合には（ステップＳ１１０５において「ＹＥＳ」）、ステップＳ１１０６に移行する。ステップＳ１１０６では、仮想プリンタ部１０３が、情報処理装置３００との間でコンフィギュレーションを実行し、プリンタクラスとしてUSB通信を更に確立する。物理印刷装置情報５０５が格納されていない場合、或いは、該物理印刷装置情報５０５が有効でない場合には（ステップＳ１１０５において「ＮＯ」）、ステップＳ１１０７へ移行する。
【０１１１】
ステップＳ１１０７では、ストレージクラスとして通信が確立されているか否かを判定する。もしストレージクラスとして通信が確立されている場合には（ステップＳ１１０７において「ＹＥＳ」）、ステップＳ１１０８へ移行する。一方、ストレージクラスとして通信が確立されていない場合には（ステップＳ１１０７において「ＮＯ」）、ステップＳ１１１０へ移行する。
【０１１２】
ステップＳ１１０８では、情報処理装置３００からデータの読み書きの要求を受け付けたか否かを判定する。もし、データの読み書き要求を受け付けた場合には（ステップＳ１１０８において「ＹＥＳ」）、ステップＳ１１０９へ移行する。一方、データの読み書き要求を受け付けない場合には（ステップＳ１１０８において「ＮＯ」）、ステップＳ１１１０へ移行する。
【０１１３】
ステップＳ１１０９では、ホストである情報処理装置３００からのデータの読み書き要求に対し、記憶装置制御部５０３を用いて主記憶部１０６を制御し、要求に対応する処理を実行する。即ち、データの読出要求であれば、要求対象データを主記憶部１０６から読み出す制御が実行される。また、データの書込要求であれば、要求対象データを主記憶部１０６へ書き込む制御が実行される。
【０１１４】
次に、ステップＳ１１１０では、プリンタクラスとして通信が確立されているか否かを判定する。もし、プリンタクラスで通信が確立されていない場合には（ステップＳ１１１０において「ＮＯ」）、処理を終了する。一方、プリンタクラスで通信が確立されている場合には（ステップＳ１１１０において「ＹＥＳ」）、ステップＳ１１１１へ移行する。ステップＳ１１１１では、情報処理装置３００から、仮想プリンタ部１０３が、のホストコンピュータ側接続コネクタ１０１経由で印刷データを受信したか否かを判定する。もし、印刷データを受信した場合には（ステップＳ１１１１において「ＹＥＳ」）、ステップＳ１１１２へ移行する。一方、印刷データを受信しない場合には（ステップＳ１１１１において「ＮＯ」）、印刷データの受信の監視を継続する。
【０１１５】
ステップＳ１１１２では、受信した印刷データを媒介変換部５０４において、ネットワーク通信部５０５における通信用のデータに変換する。ここで、受信した印刷データは、情報処理装置３００において、印刷制御装置から取得したデバイスＩＤに対応する印刷装置用のプリンタドライバを用いて生成された印刷データである。そして、ステップＳ１１１３で、変換後の印刷データをネットワーク通信部５０５を介して、ＬＡＮ経由で印刷装置２００へ送信する。尚、送信される印刷データには、物理印刷装置情報５５０に含まれるデバイスＩＤ付加して送信する。印刷データを受信した印刷装置では、デバイスＩＤが自身のデバイスＩＤに一致するかを判定し、一致する場合には印刷処理を実行する。一致しない場合にはエラーを通知し、印刷処理を行わない。
【０１１６】
以上のように、本実施形態によれば、印刷制御装置として利用可能なＵＳＢのコネクタ及び、ネットワークケーブル用コネクタをそれぞれ有するＵＳＢメモリを用いて、情報処理装置に所望のプリンタドライバをインストールさせることができる。更に、該プリンタドライバを用いて生成された印刷データを、ネットワーク上の印刷装置に提供して、印刷処理を実行することができる。
【０１１７】
これにより、情報処理装置をネットワークに接続するための設定を行わずとも、印刷制御装置として利用可能なＵＳＢメモリを用いて、所望のプリンタドライバのインストール及びネットワークを介した印刷処理を実行することができる。
【０１１８】
［第３の実施形態］
上記の実施形態では、印刷装置が１つのプリンタクラスを有する場合を示した。しかし、印刷装置が内部的にハブを有しており、複数のプリンタクラスを有する環境も考えられる。そのような環境でもそれぞれのデバイスに関してデバイスIDで論理的に情報を管理することにより、本発明が実施できることは言うまでもない。
【０１１９】
また第２の実施形態において、ネットワークとして有線接続の場合を説明したが、無線などのその他のネットワーク接続でも良い。さらに上記実施形態では、情報処理装置３００から受け取る印刷データに関してのみ記述したが、印刷装置２００よりフィニッシャなどのデバイス構成情報を取得保存して、印刷制御装置１００/５００が情報処理装置３００へ受け渡しも良い。
【０１２０】
［第４の実施形態］
本実施形態では、印刷制御装置１００の主記憶部１０６に、印刷データの印刷処理の実行状況を管理するためのジョブ管理テーブルを更に格納し、ジョブ管理テーブルの内容に基づいて、印刷装置２００における印刷処理を制御可能とするものである。
【０１２１】
本実施形態におけるジョブ管理テーブルの一例を、図１２に示す。ジョブ管理テーブル１２００には、印刷データの印刷処理に関する情報が格納される。具体的に、ジョブＩＤ（１２０１）、ジョブ名（１２０２）、ページ数（１２０３）、ページＩＤ（１２０４）、ページサイズ（１２０５）、実績（１２０６）、出力済みページ数（１２０７）及び完了（１２０８）が格納される。
【０１２２】
図１２のように、ジョブ管理テーブル１２００では、ジョブＩＤ（１２０１）毎に、印刷データに関する情報が管理されている。このジョブＩＤ（１２０１）は、印刷データ単位に一意に与えられる識別子である。このジョブＩＤ（１２０１）には、ジョブ名（１２０２）、ページ数（１２０３）が関連づけられる。ページ数（１２０３）は、印刷予定枚数であって、各ページにはページＩＤ（１２０４）が割り当てられている。ページサイズ（１２０５）及び実績（１２０６）までは、このページＩＤ（１２０４）に関連づけられる。
【０１２３】
実績（１２０６）は、ページＩＤ（１２０４）に対応するページの印刷が完了したか否かを示している。完了の場合には「済」が登録され、完了していない場合には「未」が登録される。この実績（１２０６）の合計が、ジョブＩＤ（１２０１）毎に出力済ページ数（１２０７）に登録される。出力済ページ数（１２０７）が、ページ数（１２０３）と一致する場合には、完了（１２０８）が「Ｙ」となり、一致しない場合には「Ｎ」となる。
【０１２４】
このようにジョブ管理テーブル１２００を参照することで、未完了のジョブを把握することができるだけでなく、一部のみ出力済みのジョブにおいて、未出力のページを把握することができる。
【０１２５】
次に、図１３を参照して、ジョブ管理テーブル１２００を利用して、印刷装置２００において印刷処理を行う場合の処理の一例を説明する。ここでの処理は、メモリ２５６に格納されている処理プログラムに基づいて、システムコントローラが印刷装置２００の動作を制御することで実行されるものである。
【０１２６】
印刷装置２００は、ステップＳ１３０１において、印刷制御装置１００がＵＳＢコネクタに接続されたか否かを監視している。もし、印刷制御装置１００がＵＳＢコネクタに接続された場合には、ステップＳ１３０２に移行して、主記憶部１０６から、印刷データを取得する。次に、ステップＳ１３０３において、ジョブ管理テーブル１２００を取得する。
【０１２７】
次に、ステップＳ１３０４では、ジョブ管理テーブル１２００において、印刷処理が未完了の印刷データが登録されているか否かを判定する。この判定は、ジョブ管理テーブル１２００における、完了（１２０８）の登録内容により行うことができる。もし、未完了の印刷データがある場合には（ステップＳ１３０４において「ＹＥＳ」）、ステップＳ１３０５に移行する。一方、未完了の印刷データがない場合には（ステップＳ１３０４において「ＮＯ」）、ステップＳ１３１３に移行する。
【０１２８】
ステップＳ１３１３では、印刷制御装置１００の主記憶部１０６内に格納された印刷データの印刷処理が完了した旨を、表示スクリーン２５９に表示する。その後、ステップＳ１３１４へ移行する。
【０１２９】
ステップＳ１３０５では、未完了の印刷データについて、データ単位で未出力ページの印刷出力を行う。ステップＳ１３０６では、未完了の印刷データの全ページの出力が完了したか否かを判定する。もし、全ページの出力が完了した場合には（ステップＳ１３０６において「ＹＥＳ」）、ステップＳ１３１１へ移行する。一方、全ページの出力が完了していない場合には、ステップＳ１３０７へ移行する。
【０１３０】
ステップＳ１３１１では、全ページについて印刷が終了した印刷データを、メモリ２５６から削除する。続くステップＳ１３１２では、ジョブ管理テーブル１２００において、実績（１２０６）、出力済みページ数（１２０７）及び完了（１２０８）をそれぞれ更新する。その後、ステップＳ１３０４に戻って、未完了の印刷データがあれば、その印刷処理を継続する。
【０１３１】
ステップＳ１３０７では、印刷を中断すべき状況が発生したか否かを判定する。この印刷を中断すべき状況とは、インク切れ、紙詰まり、記録紙の不足、或いは、印刷装置２００の動作不良など、印刷を継続できない状況の全てが含まれる。
【０１３２】
もし、中断すべき状況が発生しない場合には（ステップＳ１３０７において「ＮＯ」）、ステップＳ１３０５に戻って未出力のページの印刷処理を継続する。一方、中断すべき状況が発生した場合には、ステップＳ１３０８に移行する。
【０１３３】
ステップＳ１３０８では、メモリ２５６から処理を中断した印刷データを消去する。また、ステップＳ１３０９において、システムコントローラで管理している、印刷枚数のカウント数に基づき、処理を中断した印刷データについてジョブ管理テーブル１２００を更新する。即ち、印刷出力が終了したページＩＤ（１２０４）について、実績を「済」に変更し、出力済ページ数（１２０７）を中断するまでに出力した枚数に基づいて更新する。
【０１３４】
次に、ステップＳ１３１０において、表示スクリーン２５９において印刷中止表示を行う。その後、ステップＳ１３１４へ移行する。
【０１３５】
ステップＳ１３１４では、更新後のジョブ管理テーブル１２００を、印刷制御装置１００へ送信し、印刷制御装置１００内の主記憶部１０６のテーブルを更新する。また、ステップＳ１３１５では、メモリ２５６内のジョブ管理テーブル１２００に基づき、印刷処理が完了した印刷データについて印刷制御装置１００の主記憶部１０６から消去するように命令を送信する。この命令に応じて、印刷処理が完了した印刷データについては主記憶部１０６から消去されることとなり、中断により印刷処理が完了しなかったデータについては、主記憶部１０６内に保存されることとなる。
【０１３６】
なお、上記の印刷処理では、印刷装置２００における記録紙のサイズが、印刷データにおけるページサイズ（１２０５）に一致する場合を記載した。これに対し、印刷データに印刷装置２００が対応していないページサイズが含まれる（一部又は全部のページについて）場合が考えられる。また、ジョブ管理テーブル１２００には登録されていないが、モノクロとカラーが混在する印刷データも存在する。
【０１３７】
その場合には、ステップＳ１３０５では、未出力ページとして、印刷装置２００において対応可能なもの（記録紙サイズ、カラー／モノクロなど）のみを選択することができる。その上で、印刷装置２００により対応できない設定がなされたページについては、未処理のまま、ジョブ管理テーブル１２００内に未出力の実績（１２０６）を残したまま処理を終了することができる。
【０１３８】
これにより、印刷制御装置１００をとりあえず接続した印刷装置において、出力可能なページを出力し、出力できないページについては、他の印刷装置において実行することができる。
【０１３９】
なお、本実施形態では、第１の実施形態の変形例を説明したが、第２の実施形態についても同様に本実施形態の変形を適用することができる。
【０１４０】
以上のように、本実施形態によれば、印刷装置と情報処理装置がネットワークで接続されていない環境において、一部の印刷処理が中断、その他の理由により未完了となった場合でも、効率的に該未完了分の印刷処理を再開することができる。
【０１４１】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１４２】
また、本発明の目的は、前述した機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムに供給し、そのシステムがプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現し、そのプログラムコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【０１４３】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【０１４４】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１４５】
【図１】本発明の第１の実施形態に対応する印刷制御装置１００の概観の一例を示す図である。
【図２ａ】本発明の第１実施形態に対応する印刷制御装置１００の構成の一例を示す図である。
【図２ｂ】本発明の第１実施形態に対応する印刷装置２００のハードウェア構成の一例を示す図である。
【図２ｃ】本発明の第１実施形態に対応する情報処理装置３００のハードウェア構成の一例を示す図である。
【図３】本発明の第１の実施形態に対応する全体的な処理の流れを示すシーケンス図である。
【図４】本発明の第１の実施形態に対応する印刷制御装置１００の仮想プリンタ部１０３における処理の一例を示すフローチャートである。
【図５】本発明の第１の実施形態に対応する印刷制御装置１００のホストコントローラ部１０４における処理の一例を示すフローチャートである。
【図６】本発明の第２の実施形態に対応する印刷制御装置５００の概観の一例を示す図である。
【図７】本発明の第２の実施形態に対応する印刷制御装置５００の構成の一例を示す図である。
【図８】本発明の第２の実施形態に対応する全体的な処理の流れを示すシーケンス図である。
【図９】本発明の第２の実施形態に対応する印刷制御装置５００の初期化処理に係るシーケンス図である。
【図１０】本発明の第２の実施形態に対応する印刷制御装置５００のインストールと印刷処理に係るシーケンス図である。
【図１１】本発明の第２の実施形態に対応する印刷制御装置５００の処理の一例を示すフローチャートである。
【図１２】本発明の第４の実施形態に対応するジョブ管理テーブル１２００のデータ構成の一例を示す図である。
【図１３】本発明の第４の実施形態に対応する印刷装置２００の処理の一例を示すフローチャートである。
【図１】
2007299225.tif 000003
【図２ａ】
2007299225.tif 000004
【図２ｂ】
2007299225.tif 000005
【図２ｃ】
2007299225.tif 000006
【図３】
2007299225.tif 000007
【図４】
2007299225.tif 000008
【図５】
2007299225.tif 000009
【図６】
2007299225.tif 000010
【図７】
2007299225.tif 000011
【図８】
2007299225.tif 000012
【図９】
2007299225.tif 000013
【図１０】
2007299225.tif 000014
【図１１】
2007299225.tif 000015
【図１２】
2007299225.tif 000016
【図１３】
2007299225.tif 000017