(57)【要約】【課題】特定の機種をサポートしている複数のバージョンを有するドライバ供給を効率良く行うことができるプリンタドライバによる印刷システムの提供し、また、プリンタドライバの機能追加、機能改善の変更をおこなったときに、効率良く動作確認を行うことができるようにする。【解決手段】画像形成装置の機能、特性に対応した画像処理、制御処理を遂行可能な複数の制御プログラムが搭載され、接続された周辺装置に対して印刷用データを供給可能な情報処理装置であって、前記画像形成装置の機種を示す情報を取得する取得手段と、前記取得手段が取得した情報が示す機種に対応する複数の制御プログラムのバージョンを示す情報とを管理する管理手段と、前記管理手段が管理している制御プログラムのバージョンのうち、最も新しいバージョンの制御プログラムを選択する選択手段とを備える。【選択図】　　　図９
2004078745.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置の機能に対応した処理を遂行可能な複数の制御プログラムが搭載可能であり、該周辺装置に接続可能な情報処理装置であって、
前記周辺装置の機種を示す情報を認識する認識手段と、
前記認識手段が認識した情報が示す機種に対応する複数の制御プログラムのバージョンを示す情報とを管理する管理手段と、
前記管理手段が管理している制御プログラムのバージョンのうち、最も新しいバージョンの制御プログラムを選択する選択手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記制御プログラムは、特定の機能を持った周辺装置または機能の異なる複数の周辺装置に対応した画像処理、制御処理を行うことができる機能を持つことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記制御プログラムが、前記管理手段の問い合わせに対し、自身が対応する周辺装置の機種を示す情報と自身のバージョンを示す情報を通知する通知手段を持つことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記管理手段は、制御プログラムが対応する周辺装置の機種を示す情報と制御プログラムのバージョンを示す情報を制御プログラムの識別情報をテーブルデータで管理することを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記管理手段はより上位の制御モジュールに問い合わせに対して、前記制御プログラムが対応する周辺装置の機種を示す情報を取得し、制御プログラムが対応する少なくとも１以上の周辺装置の機種を示す情報を、該制御プログラムが対応する周辺装置を示す情報として上位の制御プログラムに対し返却することを特徴とする請求項１乃至４のいずれかに記載の情報処理装置。
【請求項６】
前記選択手段が選択した制御プログラムを、対応する周辺装置を制御可能に設定する設定手段をさらに備えることを特徴とする請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
前記選択手段が選択していない制御プログラムの起動を抑止するよう制御する制御手段をさらに備えることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記選択手段の選択結果によらないで周辺装置を制御する第１制御プログラムと、前記選択手段の結果に応じて周辺装置を制御する第２制御プログラムを識別する識別手段を持ち、
前記識別手段が前記第１の制御プログラムが存在すると識別したときは該制御プログラムを起動するよう制御する起動制御手段をさらに備えたことを特徴とする請求項６乃至７に記載の情報処理装置。
【請求項９】
前記選択手段は、制御プログラムが対応する周辺装置のうち、周辺装置の制御条件、制御変数を格納したデータベースファイルが存在する場合に、制御プログラムは該周辺装置を制御可能であると認識する請求項６乃至８記載の情報処理装置。
【請求項１０】
周辺装置の機能に対応した画像処理、制御処理を遂行可能な複数の制御プログラムが搭載可能であり、接続された周辺装置に対して印刷用データを供給可能な情報処理装置を制御する制御方法において、
前記周辺装置の機種を示す情報を認識する認識工程と、
前記認識工程にて認識した情報が示す機種に対応する複数の制御プログラムのバージョンを示す情報とを管理する管理工程と、
前記管理工程が管理している制御プログラムのバージョンのうち、最も新しいバージョンの制御プログラムを選択する選択工程と、
を備えることを特徴とする制御方法。
【請求項１１】
前記制御プログラムは、特定の機能を持った周辺装置または機能の異なる複数の周辺装置に対応した画像処理、制御処理を行うことができる機能を持つことを特徴とする請求項１０記載の制御方法。
【請求項１２】
前記制御プログラムが、前記管理工程における問い合わせに対し、自身が対応する周辺装置の機種を示す情報と自身のバージョンを示す情報を通知する通知工程をさらに備えることを特徴とする請求項１０又は１１に記載の制御方法。
【請求項１３】
前記管理工程では、制御プログラムが対応する周辺装置の機種を示す情報と制御プログラムのバージョンを示す情報を制御プログラムの識別情報をテーブルデータで管理することを特徴とする請求項１０乃至１２のいずれかに記載の制御方法。
【請求項１４】
前記管理工程はより上位の制御モジュールに問い合わせに対して、前記制御プログラムが対応する周辺装置の機種を示す情報を取得し、制御プログラムが対応する少なくとも１以上の周辺装置の機種を示す情報を、該制御プログラムが対応する周辺装置を示す情報として上位の制御プログラムに対し返却することを特徴とする請求項１０乃至１３のいずれかに記載の制御方法。
【請求項１５】
前記選択工程が選択した制御プログラムを、対応する周辺装置を制御可能に設定する設定工程をさらに備えることを特徴とする請求項１０乃至１４のいずれかに記載の制御方法。
【請求項１６】
前記選択工程が選択していない制御プログラムの起動を抑止するよう制御する制御工程をさらに備えることを特徴とする請求項１３に記載の制御方法。
【請求項１７】
前記選択工程の選択結果によらないで周辺装置を制御する第１制御プログラムと、前記選択工程の結果に応じて周辺装置を制御する第２制御プログラムを識別する識別工程を持ち、
前記識別工程が前記第１の制御プログラムが存在すると識別したときは該制御プログラムを起動するよう制御する起動制御工程をさらに備えたことを特徴とする請求項１３又は１４に記載の制御方法。
【請求項１８】
前記選択工程は、前記制御工程が対応する周辺装置のうち、周辺装置の制御条件、制御変数を格納したデータベースファイルが存在する場合に、前記制御工程は該周辺装置を制御可能であると認識する請求項１５乃至１７記載のいずれかの制御方法。
【請求項１９】
周辺装置の機能に対応した画像処理、制御処理を遂行可能な複数の制御プログラムが搭載可能であり、接続された周辺装置に対して印刷用データを供給可能な情報処理装置において実行可能な実行プログラムにおいて、
前記周辺装置の機種を示す情報を認識する認識工程と、
前記認識工程にて認識した情報が示す機種に対応する複数の制御プログラムのバージョンを示す情報とを管理する管理工程と、
前記管理工程が管理している制御プログラムのバージョンのうち、最も新しいバージョンの制御プログラムを選択する選択工程と、
を前記情報処理装置に実行させることを特徴とする実行プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置、周辺装置、及びこれらを含むシステム、およびそれらの制御方法、制御プログラムに関するものである。
【０００２】
【従来の技術】
一般に、ホストコンピュータとプリンタによって構成される印刷システムにおいて印刷を行なう場合、まず、ホストコンピュータ側でアプリケーションを実行して文字や図形などの印刷対象の描画データを作成する。アプリケーションは、メニューなどで印刷処理が選択されたとき、オペレーティングシステム対して、作成された描画データを渡して印刷処理を依頼する。アプリケーションより印刷処理の依頼があったとき、オペレーティングシステムはアプリケーションより渡された描画データを、ホストコンピュータに接続されたプリンタが実行可能な印刷コマンドへ変換を行なうため、そのプリンタに対応したプリンタドライバを実行する。プリンタドライバは、オペレーティングシステムによって規定された手続きにより、描画データをオペレーティングシステムより受け取り、それを印刷コマンドへ変換する。そしてプリンタドライバはオペレーティングシステムの通信機能を使用して接続されたプリンタへ印刷コマンドの出力を行なう。
【０００３】
プリンタは、機種ごとに、サポートしている用紙サイズ、インクの種類、用紙への記録方法、搬送可能な用紙の種類、用紙の搬送方法などの機能に違いがあり、それにより印刷制御方法、画像処理方法、使用できるプリンタコマンドのパラメータが異なる。そのため、アプリケーションの描画データをプリンタの制御コマンドへ変換するプリンタドライバは、プリンタの機種別の機能や特性を十分考慮したうえで設計、作成を行わなければならない。よって、プリンタの機能特性の違いをプリンタドライバの制御アルゴリズムに反映させる必要あり、プリンタがサポートしているコマンド体系が同じであったとしても、制御アルゴリズムを実行するプログラムの違いからプリンタドライバの実行モジュールを各プリンタ個別に作成して供給することが行われている。
【０００４】
【発明が解決しようとする課題】
機種個別に対応しなければならない処理の部分を、プリンタドライバが、プリンタ機能のデータベースを参照して得た情報に応じて、内部アルゴリズムを切り替えるこというプログラムの組み方が考えられる。この場合、一つのプリンタドライバの実行モジュールで複数種類のプリンタをサポートすることが可能である。このようにして、機能特性の異なる複数種類のプリンタに対し、ひとつのプリンタドライバを製品として供給することも考えられる。
【０００５】
しかしながら、プリンタドライバに印刷制御機能を追加したり、プリンタドライバの画像処理を改善するために、プリンタドライバのバージョンアップを行なうことが多い。このとき、機能、特性の異なる、多種類のプリンタをサポートしているプリンタドライバを製品として供給している場合は、上記の機能追加、改善内容がサポートしているプリンタのうち特定機種のプリンタのみに対して効果を持つものであって、特定機種のみに関連するモジュールであっても、共通の実行モジュールを持つ場合には修正箇所のプログラムの誤りにより他のプリンタの制御機能に影響を与えてしまう可能性がある。このため、特定機種依存部分のみの改変に際しても、製品全体の品質保証上の観点からプリンタドライバがサポートしている改善対象機種以外のプリンタを含むすべてのプリンタに対して機能の動作確認を行う必要があり、工数は大変なものとなり、問題となっていた。
【０００６】
一方、上述の場合と対照的に、プリンタの各機種個別にプリンタドライバを作成して供給している場合、プリンタドライバの機能追加や改善を行なうときは、関係しているプリンタに対応したプリンタドライバを作成して動作確認を行なえばよく、特定機種の機能のバージョンアップ時の手間は少ない。しかしながら、プリンタの機種ごとに個別にプリンタドライバを作成し供給するため、複数機種のプリンタ用にプリンタドライバの製品リリースを行うとした場合、非常に手間がかかるという問題点があった。また、本来、プログラム上共通な処理があるにも関わらずプリンタごとにプリンタドライバの実行ファイルがあるため、複数のプリンタを一台のホストコンピュータで使用する時は、プリンタドライバが占有するディスク領域が大きくなるという問題点もあった。また、インターネットを経由して更新モジュールをダウンロードするときは、プリンタの機種ごとにプリンタドライバをダウンロードする必要が生じ、ダウンロード時間がかかるという問題点もあった。
【０００７】
本発明は前記問題点を鑑み、複数の機種のプリンタを制御可能とするプリンタドライバの作成、供給を効率良く行うことができるプリンタドライバによる印刷システムの提供が行え、また、プリンタドライバの機能追加、機能改善の変更をおこなったときに、効率良く動作確認を行うことができるプリンタドライバを使用した印刷システムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
斯かる目的の少なくとも一つを達成すべく、例えば、本願発明においては、以下の手段を提供する。
【０００９】
本願発明の第１の側面は、周辺装置の機能に対応した画像処理、制御処理を遂行可能な複数の制御プログラムが搭載され、接続された周辺装置に対して印刷用データを供給可能な情報処理装置であって、前記周辺装置の機種を示す情報を認識する認識手段と、前記認識手段が認識した情報が示す機種に対応する複数の制御プログラムのバージョンを示す情報とを管理する管理手段と、前記管理手段が管理している制御プログラムのバージョンのうち、最も新しいバージョンの制御プログラムを選択する選択手段とを備えることを特徴とする。
【００１０】
第２の側面は、前記制御プログラムは、特定の機能を持った周辺装置または機能の異なる複数の周辺装置に対応した画像処理、制御処理を行うことができる機能を持つことを特徴とする。
【００１１】
第３の側面は、前記制御プログラムが、前記管理手段の問い合わせに対し、自身が対応する周辺装置の機種を示す情報と自身のバージョンを示す情報を通知する通知手段を持つことを特徴とする。
【００１２】
第４の側面は、前記管理手段は、制御プログラムが対応する周辺装置の機種を示す情報と制御プログラムのバージョンを示す情報を制御プログラムの識別情報をテーブルデータで管理することを特徴とする。
【００１３】
第５の側面は、前記管理手段はより上位の制御モジュールに問い合わせに対して、前記制御プログラムが対応する周辺装置の機種を示す情報を取得し、制御プログラムが対応する少なくとも１以上の周辺装置の機種を示す情報を、該制御プログラムが対応する周辺装置を示す情報として上位の制御プログラムに対し返却することを特徴とする。
【００１４】
第６の側面は、前記選択手段が選択した制御プログラムを、対応する周辺装置を制御可能に設定する設定手段をさらに備えることを特徴とする。
【００１５】
第７の側面は、前記選択手段が選択していない制御プログラムの起動を抑止するよう制御する制御手段をさらに備えることを特徴とする。
【００１６】
第８の側面は、前記選択手段の選択結果によらないで周辺装置を制御する第１制御プログラムと、前記選択手段の結果に応じて周辺装置を制御する第２制御プログラムを識別する識別手段を持ち、前記識別手段が前記第１の制御プログラムが存在すると識別したときは該制御プログラムを起動するよう制御する起動制御手段をさらに備えたことを特徴とする。
【００１７】
第９の側面は、前記選択手段は、制御プログラムが対応する周辺装置のうち、周辺装置の制御条件、制御変数を格納したデータベースファイルが存在する場合に、制御プログラムは該周辺装置を制御可能であると認識することを特徴とする。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００１９】
（第１実施形態）
図１は本発明の一実施形態を示す印刷システムの構成を表すブロック図である。図１において、１はホストコンピュータであり、ＬＡＮやＵＳＢなどの通信バス１０を介してプリンタＡ１１，プリンタＢ１２が接続されている。図１ではプリンタは２つのみ図示したが、通信バス１０を介して任意の数のプリンタが接続可能である。
【００２０】
プリンタＡ１１およびプリンタＢ１２は、それぞれプリンタコントローラ１３およびプリンタエンジン１４を備えるインクジェットプリンタであり、種々のサイズのプリント媒体に画像、文字、グラフィクス等をプリント出力することができる。ここで、プリンタコントローラ１３はプリンタ全体の制御を実行する制御回路およびプログラムを意味し、一方、プリンタエンジン１４はインクジェットプリンタヘッドの走査やプリント媒体の搬送を行う機構そのものを意味するものである。プリンタ１１およびプリンタ１２は、それぞれインクジェットカートリッジを備え、インクジェットカートリッジはインクジェットヘッドのヘッドに供給するインクを貯留したインクタンクを各色毎に組合せて一体化したものである。本発明の周辺装置の一例である画像形成装置であるプリンタはインクジェットプリンタを想定しているが、これに限らない。本発明の画像形成装置は、レーザプリンタ、ファクシミリ、複写機、及びこれらの複合機であってもよい。
【００２１】
ホストコンピュータ１において、２はＣＰＵであり、起動時ＲＯＭ３に格納されたプログラムによりハードディスクやＣＤ−ＲＯＭなどの外部記憶装置６に格納されたオペレーティングシステム（以下、図面ではＯＳとすることがある。）をＲＡＭ４にロードし実行してシステムを制御する。５はＣＲＴあるいはＬＣＤなどの表示装置であり、ＣＰＵ１の制御にしたがって各種の表示を行うことができる。７はキーボード、マウスなどの入力装置であり、ＣＰＵ１への各種入力を行う。９はホストコンピュータ内部バスを表し、ＣＰＵ２、ＲＯＭ３、ＲＡＭ４、表示装置５、外部記憶装置６、入力装置７、外部Ｉ／Ｆ８どの間でデータのやり取りを可能にするものである。
【００２２】
外部記憶装置６には、オペレーティングシステムの他にアプリケーションプログラムやプリンタドライバなどの各種プログラムが格納されており、ＣＰＵ１は種々のアプリケーションプログラムを実行し、オペレーティングシステムの制御に従い、プリンタＡ１１、プリンタＢ１２に対応したプリンタドライバを実行して、アプリケーションプログラムの描画データをプリンタＡ１１、プリンタＢ１２が実行可能なプリンタ制御コマンドに変換する。プリンタドライバの制御にもとづきＣＰＵ１が生成したプリンタ制御コマンドは、Ｉ／Ｆ８により、通信バス１０に出力され、プリンタＡ１１またはプリンタＢ１２へ送信される。プリンタＡ１１またはプリンタＢ１２はこのようにしてホストコンピュータ１から送信されたプリンタ制御コマンドの受信を行ない、印刷を行なう。
【００２３】
本実施例では、ホストコンピュータ１上で実行されるオペレーティングシステムとして、例えば、Ｍａｃ　ＯＳ　Ｘ（商品名）を想定している。図２は、ＯＳにおける印刷処理に関係するプログラム実行モジュールの内部ブロック図を表す。アプリケーション１５は、あらかじめユーザの操作により作成された描画データを、オペレーティングシステム１６に渡すとともにオペレーティングシステム１６に対し印刷処理の依頼を行う。オペレーティングシステム１６はアプリケーションから渡された描画データを印刷スプールファイル１７にセーブする。アプリケーションから描画データをすべて受け取り印刷スプールファイル１７に保存した後、オペレーティングシステム１６は出力先のプリンタに対応したプリンタドライバ（本実施例では、プリンタモジュールと呼ばれる）１８をロードする。オペレーティングシステム１６は印刷スプールファイル１７から描画データをロードして、バンド処理を行ない、１バンド分のラスタライズデータを作成する。オペレーティングシステム１６は生成したラスタライズデータをプリンタドライバ１８に渡し処理依頼する。プリンタドライバ１８は渡されたラスタライズデータをプリンタコマンドへ変換して、オペレーティングシステム１６の通信機能を利用してプリンタ１９へ出力する。プリンタ１９ではこのようにして生成された印刷コマンドにもとづいて印刷を行う。
【００２４】
図３はプリンタドライバの詳細を表すブロック図である。プリンタドライバは、オペレーティングシステムＩ／Ｆモジュール２２と１つ以上の印刷制御モジュールで構成される。オペレーティングシステムＩ／Ｆモジュール２２と印刷制御モジュールは別ファイルである。印刷制御モジュールの追加を行えば、プリンタドライバの機能アップが容易に行える構造になっている。
【００２５】
オペレーティングシステムＩ／Ｆモジュール２２は、オペレーティングシステムとのインターフェース部分の処理と印刷制御モジュールを管理、実行する処理を行う。印刷制御モジュールは、オペレーティングシステムＩ／Ｆモジュール２２から実行され、オペレーティングシステムから渡されたデータをプリンタ制御コマンドに変換する処理を行う。印刷制御モジュールは、印刷制御モジュールのプログラムのバージョンに応じて、一つ以上の任意の数存在することができ、オペレーティングシステムＩ／Ｆモジュール２２により管理される。本実施例においては図３のように、プリンタ制御モジュールは２３と２４と２５の３つ存在する。
【００２６】
図４は本実施例において、各印刷制御モジュールのバージョンとサポートしているプリンタ機種を表す。印刷制御モジュール１のバージョンは１．０．０でプリンタＡ、プリンタＢ、プリンタＣをサポートする。印刷制御モジュール２のバージョンは２．０．０でプリンタＡ、プリンタＢ、プリンタＤをサポートする。印刷制御モジュール３のバージョンは３．０．０でプリンタＡ、プリンタＥをサポートする。バージョン番号が大きいモジュールの方が新しいモジュールである。これらの印刷制御モジュールは、オペレーティングシステムＩ／Ｆモジュール２２からの問い合わせに対して、自分自身のバージョンとサポートするプリンタ機種に関する情報を返却する機能を持つ。
【００２７】
本実施形態のＯＳでは、アプリケーションから印刷を行なう前に、ユーザはＯＳのアプリケーションであるプリントセンタを使用して印刷に使用するプリンタの登録を行う。つまりプリントセンタに登録され、プリントセンタにリスト表示されたプリンタに対してのみユーザは印刷を行うことが可能である。プリントセンタは、本実施形態のＯＳにおけるプリンタドライバであるプリンタモジュールを検索して各プリンタモジュールがサポートしている通信バス形式とプリンタの機能を示す情報の一例であるプリンタ機種情報の問い合わせを行う。プリントセンタは問い合わせの結果と現在ホストコンピュータに接続されたプリンタ機種名を比較して、接続されているプリンタとそれに対応するプリンタモジュールの対応づけを行う。接続されているプリンタに対応するプリンタモジュールがシステムに存在するときのみプリントセンタの画面からプリンタが登録可能である。
【００２８】
ユーザがプリントセンタを操作してプリンタを登録した場合、登録されたプリンタとそのプリンタに対応したプリンタドライバの情報がオペレーティングシステムの内部情報として保存される。アプリケーションから印刷が行なわれたとき、オペレーティングシステムはその内部情報を参照してプリンタに対応したプリンタモジュールをロード、実行することができる。
【００２９】
図５は、オペレーティングシステムからの問い合わせに対して、プリンタドライバのオペレーティングシステムＩ／Ｆモジュール２２が各印刷制御モジュールから返却されるバージョンとプリンタの機能を示す情報の一例であるサポートプリンタ情報をもとに、プリンタドライバがサポートしているプリンタの情報をオペレーティングシステムへ返却する処理を表したフローチャートである。
【００３０】
ステップＳ１において、オペレーティングシステムＩ／Ｆモジュール２２は、外部記憶装置上に存在する印刷制御モジュールの検索を行なう。この処理は、例えば、印刷制御モジュールをあらかじめ決めておいたディレクトリの中にインストールしておくものとし、オペレーティングシステムＩ／Ｆモジュールがそのディレクトリの中の実行ファイルを検索することにより行われる。ステップＳ２において検索で見つかった印刷制御モジュールの総数を変数ｎに格納する。ステップＳ３でカウンタ用の変数ｉを０に初期化する。ステップＳ４で、カウンタ変数ｉと印刷処理モジュール総数ｎを比較する。ｉ＜ｎのときは、ステップＳ５に進む。ステップＳ５で印刷制御モジュールのひとつをロードする。ステップＳ６で印刷制御モジュールにバージョン情報を問い合わせ取得する。例えば印刷制御モジュール１の場合はバージョン１．０．０という情報を取得する。ステップＳ７で印刷制御モジュールにサポートしているプリンタ情報を問い合わせ、取得する。例えば印刷制御モジュール１の場合はプリンタＡ、プリンタＢ、プリンタＣの情報を得る。ステップＳ８で、印刷制御モジュールのバージョンとサポートプリンタの情報により、サポートプリンタと最も新しいバージョンの印刷制御モジュールとの対応関係を保存する印刷制御モジュール管理テーブルの情報更新を行う。
【００３１】
図６は、印刷制御モジュール管理テーブルを表す。印刷制御モジュール管理テーブルは、サポートするプリンタと対応する印刷制御モジュール識別情報とその印刷制御モジュールのバージョン情報を持つ。
【００３２】
図５のステップＳ８の詳細を表したものが図７のフローチャートである。ステップＳ１１２で印刷制御モジュールがサポートしているプリンタの中で印刷制御モジュール管理テーブルに登録処理をしていないものがあるかないか調べて、あるときは、ステップＳ１１３以降の処理に進む。ステップＳ１１３で印刷制御モジュール管理テーブルの中に、現在処理対象となっているプリンタの情報が存在しないときは、単にそのプリンタの情報を印刷制御モジュール管理テーブルに記憶すればよく、ステップＳ１１５に進んで処理する。現在処理対象となっているプリンタの情報が印刷制御モジュール管理テーブルに存在するときはステップＳ１１４に進む。ステップＳ１１４では、対象となっているプリンタに関して印刷制御モジュール管理テーブルにすでに登録されている印刷制御モジュールのバージョンと、現在処理中の印刷制御モジュールより取得したバージョンを比較する。現在処理中の印刷制御モジュールより取得したバージョンの方が新しいときは、ステップＳ１１５に進む。ステップＳ１１５では、印刷制御モジュール管理テーブルの該当プリンタの情報を現在処理対象としている印刷制御モジュールの識別情報とバージョン情報により更新する。ステップＳ１１５の後、あるいはステップＳ１１４で、現在処理を行っている印刷制御モジュールのバージョンの方が古いときはステップＳ１１２に戻り、次のサポートプリンタに関して処理を行う。ステップＳ１１２で処理を行っていない印刷制御モジュールのサポートプリンタがもう存在しないと判断されるときは図５のステップＳ９へ進む。
【００３３】
図５のステップＳ９では印刷制御モジュールをアンロードする。ステップＳ１０で印刷制御モジュールのカウンタをインクリメントする。そして、ステップＳ４に戻り、次の印刷制御モジュールに関して同様の処理を行い印刷モジュール管理テーブルの更新処理を行う。ステップＳ４ですべての印刷制御モジュールについての処理を終えたと判断されるときは、ステップＳ１１に進む。
ステップＳ１１では、印刷制御モジュール管理テーブルを参照して、プリンタドライバがサポートしているプリンタの情報をオペレーティングシステムへ返却する。本実施例において印刷制御モジュールは３つあり、それぞれの印刷制御モジュールのバージョン、サポートするプリンタの情報は図４の表のようである。そして、すべての印刷制御モジュールに関する情報を印刷制御モジュール管理テーブルに登録した最終的な結果は、図６の表のようである。図６の表では、図３のようなブロック図で構成されるプリンタドライバは、プリンタＡ、プリンタＢ、プリンタＣ、プリンタＤ、プリンタＥの５機種のプリンタを印刷制御する機能を持ち、プリンタＡを制御するには印刷制御モジュール３を使用し、プリンタＢを制御するには印刷制御モジュール２を使用し、プリンタＣを制御するには印刷制御モジュール１を使用し、プリンタＤを制御するには印刷制御モジュール２を使用し、プリンタＥを制御するには印刷制御モジュール３を使用すればよいことがわかる。
【００３４】
本実施例において、オペレーティングシステムＩ／Ｆモジュール２２は、プリンタＡ、プリンタＢ、プリンタＣ、プリンタＤ、プリンタＥの５機種をサポートしているという情報をオペレーティングシステムへ返却する。これにより、プリンタＡ、プリンタＢ、プリンタＣ、プリンタＤ、プリンタＥがシステムに接続されていれば、プリントセンタのダイアログからこれらのプリンタが登録可能となる。本実施例の図１の印刷システムでは、プリンタＡ、プリンタＢが登録可能となり、ユーザがプリントセンタを操作してそれらのプリンタを選択すれば、アプリケーションデータをプリンタコマンドへ変換して出力することが可能となる。
【００３５】
アプリケーションを操作して印刷を実行すると、オペレーティングシステムは印刷処理を行うとき、プリントセンタで登録したときに保存したプリンタとプリンタドライバとの対応情報をもとに、オペレーティングシステムＩ／Ｆモジュール２２をロードして実行する。
【００３６】
図８は、アプリケーションの描画データを印刷処理するとき、オペレーティングシステムによりオペレーティングシステムＩ／Ｆモジュール２２が実行されたとき、どのように印刷処理を行うかを表したオペレーティングシステムＩ／Ｆモジュール２２のフローチャートである。ステップＳ１１６でプリンタの機種情報を取得する。ＵＳＢ用Ｉ／Ｆを持ちＵＳＢバスに接続可能なプリンタの場合は、ＩＥＥＥ１２８４デバイスＩＤを返却する機能を持つので、デバイスＩＤのプリンタモデル（ＭＤＬ：）としてプリンタの機種名が取得可能である。本実施形態のＯＳの場合、オペレーティングシステムがあらかじめデバイスＩＤにより取得したプリンタ機種名をプリンタドライバが参照可能なようになっている。ステップＳ１１７で、図６の印刷制御モジュール管理テーブルを参照して、印刷を行うプリンタに対応した印刷制御モジュールの識別情報を取得する。ステップＳ１１８でプリンタに対応する印刷制御モジュールをロードする。ステップＳ１１９で、オペレーティングシステムからの呼び出しに対応した印刷制御モジュールの関数を呼び出し実行する。
【００３７】
以上説明した処理により、オペレーティングシステムの呼び出しに応じて選択されたプリンタに対応した最も新しい印刷制御モジュールが実行され、アプリケーションの描画データがプリンタコマンドへ変換されプリンタへ出力される。
【００３８】
（第２実施形態）
図９は本発明の他の実施形態のプリンタドライバの構成を表すブロック図である。本実施例も図１の印刷システムにおけるプリンタドライバとして動作する。また、本実施形態のＯＳを想定した場合、図２のようなオペレーティングシステムの印刷制御のプリンタドライバとして動作する。本実施例のプリンタドライバは、印刷制御のメインプログラムが格納されたプリンタドライバとバージョン管理モジュールで構成される。図９においては３つのバージョンのプリンタドライバ１、プリンタドライバ２、プリンタドライバ３とバージョン管理モジュール３０がある例である。
【００３９】
本実施例は、前述した実施例と異なり制御プログラムのバージョンを管理するためのモジュールをオペレーティングシステムとのＩ／Ｆ仕様と切り離して設計が可能となる構成である。バージョン管理を行う部分のみをライブラリ化することで、プリンタドライバにおけるサポート機種の情報管理の仕組みが変更された場合、バージョン管理モジュールのみを更新することで容易に対応が可能である。また、プリンタドライバをインストールするプログラムがプリンタドライバのサポートプリンタ情報を取得したいとき、このライブラリとリンクするなど汎用的に使用できる。前述の実施例では、オペレーティングシステムが印刷処理実行時、プリンタドライバの関数をコールする度にどのバージョンの印刷制御モジュールを実行するかを判別しスイッチする制御が必要であるが、本実施例ではスイッチの必要はなくなり印刷処理のオーバーヘッドが少ない。また、本実施例では、本発明によらない従来技術によるプリンタドライバと共存して動作させることを考慮している。
【００４０】
本実施形態において、プリンタドライバは自身がサポート可能なプリンタの機種情報を格納したサポート情報ファイルを持つ。図１０は、プリンタドライバ１、プリンタドライバ２、プリンタドライバ３の各サポート情報ファイルの内容を表したものである。バージョンは１．０．０のプリンタドライバ１はプリンタＡ、プリンタＢ、プリンタＣの３機種のプリンタを制御する機能を持つ。バージョン２．０．０のプリンタドライバ２は、プリンタＡ、プリンタＢ、プリンタＤの３つの機種のプリンタを制御する機能を持つ。バージョン３．０．０のプリンタドライバ３は、プリンタＡ、プリンタＥを制御する機能を持つ。
【００４１】
また、プリンタドライバは、データベースファイルを持つ。データベースファイルには、プリンタの機能をあらわす情報や、プリンタを制御するためのコマンドや、プリンタのインク特性に応じた色変換テーブルなどの情報が格納されている。プリンタドライバ１はプリンタＡ、プリンタＢ、プリンタＣを制御するため、データベースＡ、データベースＢ、データベースＣを持つ。プリンタドライバ２は、プリンタＡ、プリンタＢ、プリンタＤを制御するための、データベースＡ、データベースＢ、データベースＤを持つ。プリンタドライバ３は、プリンタＡ、プリンタＥを制御するための、データベースＡ、データベースＥを持つ。プリンタドライバが持つデータベースファイルは図１０のサポート情報ファイルから知ることができる。
【００４２】
本実施例において、プリンタドライバはオペレーティングシステムからサポート機種の問い合わせを受けたとき、図１１のフローチャートにもとづいた処理を行う。ステップＳ２０１において、プリンタドライバは自身がサポートすべき機種の情報をバージョン管理モジュールへ問い合わせる。ステップＳ２０２において、バージョン管理モジュールより返却された情報をもとに、自身がサポートするプリンタ機種情報をオペレーティングシステムへ返却する。
【００４３】
図１２は、プリンタドライバが、そのプリンタドライバがサポートするプリンタ機種情報の問い合わせをバージョン管理モジュールへ行ったときの、バージョン管理モジュールの処理を表すフローチャートである。
【００４４】
ステップＳ２０３において、外部記憶装置上に存在するプリンタドライバの検索を行なう。この処理は、例えば、プリンタドライバをあらかじめ決めておいたディレクトリの中にインストールしておくものとし、バージョン管理モジュールがそのディレクトリの中の実行ファイルを検索することにより行われる。ステップＳ２０４において、検索で見つかったプリンタドライバの総数を変数ｎに格納する。ステップＳ２０５で、カウンタ用の変数ｉを０に初期化する。ステップＳ２０６で、カウンタ変数ｉと印刷処理モジュール総数ｎを比較する。ｉ＜ｎのときは、ステップＳ２０７に進む。本実施形態のＯＳにおいて、プリンタドライバはバンドルと呼ばれるディレクトリ階層構造で構成される。ステップＳ２０７において、ｉ番目のプリンタドライバのディレクトリ下のバージョン情報が記述してあるファイルを参照して、バージョン情報を取得する。ステップＳ２０８でｉ番目のプリンタドライバのディレクトリ下において、サポート情報ファイルを検索する。サポート情報ファイルが見つからない場合、ｉ番目のプリンタドライバは、バージョン管理モジュールを利用しない本発明の方法によらないプリンタドライバと考えられ、このときは、ステップＳ２１０へ進む。サポート情報ファイルが見つかった場合、そのプリンタドライバはバージョン管理モジュールを利用する本発明の方法によるプリンタドライバと考えられ、ステップＳ２０９へ進む。ステップＳ２０９において、サポート情報ファイルの中に記述されたそのプリンタドライバが制御可能なプリンタの情報とデータベースファイル名を取得する。そして、プリンタドライバのディレクトリ下で対象機種用のデータベースファイルを検索し、そのデータベースが見つかったとき、対象プリンタを制御可能であると判断する。サポート情報ファイルに複数のプリンタの機種情報が記述されている場合は、この処理を繰り返す。
【００４５】
一方、ステップＳ２１０においては、プリンタドライバは本発明によらないタイプのプリンタドライバと考えられるのでプリンタドライバのファイル名から、そのプリンタドライバがサポートする機種を知る。これは、例えば、バージョン管理モジュールが、プリンタドライバとプリンタ機種を対応付けるテーブルを持ち、これを参照することにより行われる。また、プリンタドライバのファイル名にプリンタの機種名が含まれるようなときは、バージョン管理モジュールはファイル名からサポートする機種名称を取得することができる。
【００４６】
ステップＳ２１１において、ｉ番目のプリンタドライバがサポートするプリンタ機種情報とプリンタドライバのバージョン番号により、モジュール管理テーブルを更新する。
【００４７】
図１４、図１５はモジュール管理テーブルの構造を表す図である。モジュール管理テーブルは、プリンタの機種を示す情報、プリンタドライバのバージョン番号、バージョン管理モジュールの処理を呼び出す本発明によるプリンタドライバかどうかを示す情報、プリンタドライバを識別するための情報を持つ。プリンタドライバを識別するための情報はオペレーティングシステムで管理されるプリンタドライバの参照情報である。
【００４８】
図１３はステップＳ２１１の詳細を表すフローチャートである。ステップＳ２１５にて、ステップＳ２０９またはＳ２１０にて取得したプリンタのうち、モジュール管理テーブルへの登録処理を行っていないプリンタがあるかどうかを調べる。登録処理を行っていないプリンタがあるときは、ステップＳ２１６へ進む。ステップＳ２１６において、登録処理を行おうとしているプリンタの情報がモジュール管理テーブルにすでに登録されているかどうかを調べる。ステップＳ２１６で処理対象となっているプリンタがモジュール管理テーブルに存在しないときは、単に処理対象となっているプリンタの情報をモジュール管理テーブルに登録すればよく、ステップＳ２２０へ進む。処理対象となっているプリンタがモジュール管理テーブルに存在するときは、ステップＳ２１７へ進む。ステップＳ２１７において、処理対象となっているプリンタドライバは、ステップＳ２０８でバージョン管理モジュールを呼び出すタイプのプリンタドライバであったかどうかを調べる。バージョン管理モジュールを呼び出さないプリンタドライバであるときは、ステップＳ２２０へ進み、モジュール管理テーブルを更新する。バージョン管理モジュールを呼び出すタイプのプリンタドライバであるときは、ステップＳ２１８へ進む。ステップＳ２１８において、モジュール管理テーブルに存在する対象プリンタのプリンタドライバがバージョン管理テーブルを呼び出すタイプのプリンタドライバかどうか調べる。バージョン管理テーブルを呼び出すタイプのプリンタドライバであるときは、ステップＳ２１９へ進む。バージョン管理テーブルを呼び出すタイプのプリンタドライバでないときは、モジュール管理テーブルの更新は行わず、ステップＳ２１５へ戻る。ステップＳ２１９において、対象となっているプリンタに関して、モジュール管理テーブルにすでに登録されているプリンタドライバのバージョンと、現在処理対象となっているプリンタドライバのバージョンを比較する。現在処理中のプリンタドライバのバージョンの方が新しいときは、ステップＳ２２０に進む。ステップＳ２２０では、モジュール管理テーブルの該当プリンタの情報を現在処理対象となっているプリンタドライバの識別情報とバージョン情報により更新する。また、バージョン管理モジュールを呼び出すタイプのプリンタドライバかどうかの情報も記録する。ステップＳ２２０の後、あるいはステップＳ２１９で、現在処理を行っているプリンタドライバのバージョンの方が古いときはステップＳ２１５に戻り、処理対象プリンタドライバの次のサポートプリンタに関して同様の処理を行う。
【００４９】
ｉ番目のプリンタドライバのサポートプリンタ機種の情報をすべてモジュール管理テーブルに登録した後は、図１２のステップＳ２１２へ進み、カウンタ変数ｉをインクリメントしてステップＳ２０６へ戻る。ステップＳ２０６で次に処理を行うプリンタドライバがあるときは、ステップＳ２０７以降の処理を繰り返す。ステップＳ２０６において、すべてのプリンタドライバについての処理を終えたと判断できるときは、ステップＳ２１３へ進む。
【００５０】
ステップＳ２１３では、モジュール管理テーブルを参照して、問い合わせのあったプリンタドライバがサポートするプリンタの情報を作成する処理を行う。本実施例図９において、プリンタドライバは３つあり、それぞれのプリンタドライバのバージョン、プリンタドライバがサポートすることが可能なプリンタ機種は、図１０の表のようである。すべてのプリンタドライバに関する情報をモジュール管理テーブルに登録した状態は、図１４のようである。図１４より、図９のような３つのバージョンのプリンタドライバが存在するとき、プリンタドライバ１がサポートすべきプリンタはプリンタＣで、プリンタドライバ２がサポートすべきプリンタはプリンタＢとプリンタＤで、プリンタドライバ３がサポートすべきプリンタはプリンタＡとプリンタＥであることがわかる。すなわち、図１６の表のようである。
【００５１】
ここで、図８のような構成にさらにプリンタＡをサポートする、バージョン管理モジュールによらないプリンタドライバ４が存在したときのケースについて説明する。このプリンタドライバのバージョンを０．５．０とする。バージョン管理モジュールによらないプリンタドライバは、図１３のフローチャートの処理により、バージョン管理モジュールによるプリンタドライバよりも優先してモジュール管理テーブルに登録される。これは、ユーザがプリンタドライバのインストーラを操作し、両タイプのプリンタドライバが混在して存在する状態になっても、オペレーティングシステムの仕様に対して矛盾なくプリンタドライバを動作させるためである。このときのモジュール管理テーブルの処理結果を示したのが、図１５である。プリンタＡに対応するプリンタドライバはバージョンが０．５．０であるプリンタドライバ４である。その結果、プリンタドライバ１がサポートすべきプリンタはプリンタＣで、プリンタドライバ２がサポートすべきプリンタはプリンタＢとプリンタＤで、プリンタドライバ３がサポートすべきプリンタはプリンタＥのみとなる。すなわち、図１７のようである。
【００５２】
ステップＳ２１４において、問い合わせのあったプリンタドライバがサポートすべきプリンタ機種情報を作成し返却して処理を終了する。
【００５３】
このようにして、バージョン管理モジュールが、各バージョンのプリンタドライバがサポートすべきプリンタ機種を判別してそれをプリンタドライバに返却し、プリンタドライバはその情報にもとづいて、オペレーティングシステムへ自身がサポートする機種情報を返却する。
【００５４】
オペレーティングシステムでは、各プリンタドライバのサポート機種情報をもとに接続されたプリンタとプリンタドライバの対応づけを行う。本実施形態のＯＳではプリントセンタが接続プリンタとプリンタドライバの対応づけを行っている。ここで、ホストコンピュータに、プリンタＡ、プリンタＢ、プリンタＣ、プリンタＤ、プリンタＥが接続されているとする。プリンタＡ、プリンタＢ、プリンタＣ、プリンタＤ、プリンタＥをプリントセンタで登録可能である。このとき、プリントセンタは、図９のようなプリンタドライバの構成では、プリンタドライバ１、プリンタドライバ２、プリンタドライバ３にサポート機種情報を問い合わせ、その返却情報の結果、プリンタＡに対してプリンタドライバ３を、プリンタＢに対してプリンタドライバ２、プリンタＣに対してプリンタドライバ１を、プリンタＤに対してプリンタドライバ２を、プリンタＥに対してプリンタドライバ３を対応づける。図９に、さらにバージョン管理モジュールによらないプリンタドライバ４が加わったプリンタドライバの構成では、プリントセンタは、プリンタＡに対してプリンタドライバ４を、プリンタＢに対してプリンタドライバ２、プリンタＣに対してプリンタドライバ１を、プリンタＤに対してプリンタドライバ２を、プリンタＥに対してプリンタドライバ３を対応づける。
【００５５】
このようにして、プリンタに対するプリンタドライバの対応づけが行われ、オペレーティングシステムが印刷処理を行うとき、各プリンタに対応したプリンタドライバがオペレーティングシステムによりロードされ実行される。
【００５６】
以上説明した様に、本願の上述の各実施形態によれば、複数機種のプリンタに対応したプリンタドライバを作成することができ、新しいバージョンの印刷制御を行う実行モジュールを追加することで任意のプリンタに対応した印刷処理のみの変更を可能とするため、バージョンアップを行なう際に対象プリンタのみに関して動作確認をすればよく、他のプリンタに関しての動作確認作業が不要となり、プリンタドライバのサポート、メンテナンス作業を容易に行うことができる印刷システムを提供することができる。
【００５７】
また、本願発明の別の側面によれば、複数機種のプリンタに対応したプリンタドライバを作成することができ、プリンタに対応したデータベースファイルが存在するときのみ、そのプリンタをサポートするように動作するため、目的に応じてサポート機種の調整が可能であるプリンタドライバを作成することができる。
【００５８】
また、本願発明の別の側面によれば、本発明によらない従来技術で作成されたプリンタドライバとの共存が可能であるので、従来型のプリンタドライバを提供している印刷システムに対して、本発明のタイプのプリンタドライバを導入するケースにおいても、オペレーティングシステムに対して矛盾することなく動作し、プリンタドライバ更新時に問題が発生しない印刷システムを提供することができる。
【００５９】
（他の実施形態）
本実施形態における各図に示す処理が、外部からインストールされるプログラムによって、それぞれの情報処理装置により遂行される。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群をホストコンピュータに供給される場合でも本発明は適用されるものである。
【００６０】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、又は、外部サーバ（図示省略）からダウンロードすることで、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００６１】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。
【００６２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、選択機種のプリンタを印刷制御する印刷システムにおいて、複数バージョン存在する印刷制御モジュールまたはプリンタドライバの中からより新しいバージョンのモジュールを選択できるため、最適な印刷制御が行える印刷システムを提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示す印刷システムの構成を示すブロック図である。
【図２】印刷システムにおいてオペレーティングシステムの印刷処理を表すブロック図である。
【図３】印刷システムにおいてプリンタドライバの構成を表すブロック図である。
【図４】印刷システムにおいて、各印刷処理モジュールのバージョンと各印刷処理モジュールがサポートするプリンタの情報を表した図である。
【図５】印刷システムのプリンタドライバのオペレーティングシステムＩ／Ｆモジュールが、各印刷制御モジュールのバージョン情報とサポートプリンタを管理するための印刷制御モジュール管理テーブルを作成する処理を表すフローチャートである。
【図６】各印刷制御モジュールのバージョン情報とサポートプリンタを管理するための印刷制御モジュール管理テーブルを表す表である。
【図７】図５のフローチャートにおいて、印刷制御モジュール管理テーブルを作成するための処理の詳細を説明するフローチャートである。
【図８】プリンタドライバのオペレーティングシステムＩ／Ｆモジュールが、印刷制御モジュール管理テーブルを用いて、対象プリンタをサポートする最も新しいバージョンの印刷制御モジュールを選択して実行する処理を示す図である。
【図９】本発明の他の実施形態を示す印刷システムにおけるプリンタドライバの構成を表すブロック図である。
【図１０】上記プリンタドライバのブロック図において、各プリンタドライバのバージョンと各プリンタドライバがサポートするプリンタの情報を示す図である。
【図１１】オペレーティングシステムよりサポートしているプリンタの問い合わせを受けたときの上記プリンタドライバの処理を示す図である。
【図１２】プリンタドライバよりプリンタドライバがサポートすべき機種情報の問い合わせを受けたときのバージョン管理モジュールの処理を示す図である。
【図１３】図１２のフローチャートにおいて、モジュール管理テーブルを更新する処理を示す図である。
【図１４】上記プリンタドライバのブロック図におけるモジュール管理テーブルの処理結果を示す図である。
【図１５】上記プリンタドライバのブロック図にモジュール管理テーブルによらないプリンタドライバが加わったときのモジュール管理テーブルの処理結果を示す図である。
【図１６】図１４のモジュール管理テーブルより求めたプリンタドライバと各プリンタドライバがサポートするプリンタとの関係を示す図である。
【図１７】図１５のモジュール管理テーブルより求めたプリンタドライバと各プリンタドライバがサポートするプリンタとの関係を示す図である。
【符号の説明】
１　ホストコンピュータ
２　ホストコンピュータＣＰＵ
３　ホストコンピュータＲＯＭ
４　ホストコンピュータＲＡＭ
５　ホストコンピュータ表示装置
６　ホストコンピュータ外部記憶装置
７　ホストコンピュータ入力装置
８　ホストコンピュータ外部Ｉ／Ｆ
９　ホストコンピュータ内部バス
１０　ホストコンピュータとプリンタを接続する外部バス
１１　プリンタＡ
１２　プリンタＢ
１３　プリンタコントローラ
１４　プリンタエンジン
１５　アプリケーション
１６　オペレーティングシステム
１７　印刷スプールファイル
１８　プリンタドライバ（プリンタモジュール）
１９　プリンタ
２０　オペレーティングシステム
２１　プリンタドライバ（プリンタモジュール）
２２　オペレーティングシステムＩ／Ｆモジュール
２３　印刷制御モジュール１
２４　印刷制御モジュール２
２５　印刷制御モジュール３
２６　オペレーティングシステム
２７　プリンタドライバ１
２８　プリンタドライバ２
２９　プリンタドライバ３
３０　バージョン管理モジュール
【図１】
2004078745.tif 000003
【図２】
2004078745.tif 000004
【図３】
2004078745.tif 000005
【図４】
2004078745.tif 000006
【図５】
2004078745.tif 000007
【図６】
2004078745.tif 000008
【図７】
2004078745.tif 000009
【図８】
2004078745.tif 000010
【図９】
2004078745.tif 000011
【図１０】
2004078745.tif 000012
【図１１】
2004078745.tif 000013
【図１２】
2004078745.tif 000014
【図１３】
2004078745.tif 000015
【図１４】
2004078745.tif 000016
【図１５】
2004078745.tif 000017
【図１６】
2004078745.tif 000018
【図１７】
2004078745.tif 000019