(57)【要約】【課題】使用するデバイスを変更した場合であっても、既存のモジュール（アプリケーション等）を修正することなく正しくデバイスを制御することができる変換プログラム、変換装置、およびデバイスドライバを提供する。【解決手段】入力された印刷設定データに応じてプリンタを制御する処理をコンピュータに実行させるプリンタドライバ５４の主処理モジュール５８と、プリンタドライバ５４外部からプリンタドライバ５４に対してプリンタを制御するために印刷設定データを出力する処理をコンピュータに実行させる外部のアプリケーション５２との間で、プリンタドライバ５４の主処理モジュール５８及びアプリケーション５２の一方から入力された印刷設定データをプリンタが正しく制御されるように変換して他方に出力する変換処理をコンピュータに実行させる印刷設定データ変換モジュール５６を実装する。【選択図】図４
2007141161.tif 000002
【特許請求の範囲】
【請求項１】
入力された制御情報に応じてデバイスを制御する処理をコンピュータに実行させるデバイスドライバと、前記デバイスドライバ外部から前記デバイスドライバに対して前記デバイスを制御するために制御情報を出力する処理をコンピュータに実行させる外部モジュールとの間で、前記デバイスドライバ及び前記外部モジュールの一方から入力された制御情報を前記デバイスが正しく制御されるように変換して他方に出力する変換処理をコンピュータに実行させる変換プログラム。
【請求項２】
前記変換処理は、
前記外部モジュールから入力された制御情報を前記デバイスドライバで使用可能な形式及び値となるように変換して前記デバイスドライバに出力する第１の変換処理、および
前記デバイスドライバから入力された制御情報を前記第１の変換処理とは逆方向に変換して前記外部モジュールに出力する第２の変換処理、
のいずれかである請求項１記載の変換プログラム。
【請求項３】
前記デバイスドライバの設定、前記外部モジュールの種類、前記外部モジュールと前記デバイスドライバとの間のインタフェース処理を実行するインタフェースモジュールの種類、該インターフェースモジュールの呼び出し手順、および前記変換処理を実行させるコンピュータで動作する基本ソフトウェアのバージョンのいずれかに応じて前記変換処理の処理内容を異ならせた請求項１または請求項２記載の変換プログラム。
【請求項４】
前記デバイスドライバの入出力インタフェース部分に設けた請求項１記載の変換プログラム。
【請求項５】
前記変換処理を実行させるコンピュータで動作する基本ソフトウェアの一部として設けた請求項１記載の変換プログラム。
【請求項６】
前記デバイスドライバと前記外部モジュールとの間のインタフェース処理を実行するインタフェースモジュールの一部として設けた請求項１記載の変換プログラム。
【請求項７】
請求項１乃至請求項６のいずれか１項記載の変換プログラムを記憶する記憶手段と、
前記記憶手段に記憶された変換プログラムを実行する実行手段と、
を含む変換装置。
【請求項８】
入力された制御情報に応じてデバイスを制御する処理をコンピュータに実行させる処理モジュールと、
前記処理モジュールと、前記処理モジュール外部から前記デバイスを制御するために制御情報を出力する処理をコンピュータに実行させる外部モジュールとの間で、前記処理モジュール及び前記外部モジュールの一方から入力された制御情報を前記デバイスが正しく制御されるように変換して他方に出力する変換処理をコンピュータに実行させる変換モジュールと、
を含むデバイスドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された制御情報を変換する変換プログラム、変換装置、およびデバイスドライバに関する。
【背景技術】
【０００２】
従来、ＳＩベンダの一括受注により、ホストコンピュータ、クライアント（端末やＰＣ）、及びスキャナやプリンタ等のデバイスがセットとして提供される場合には、業務アプリケーション（以下アプリケーション）の多くは、セットで提供される特定のデバイスのみを考慮して（他機種のデバイスは考慮せず、特定のデバイスのみに対応するように）設計されている。
【０００３】
このような環境において、デバイスを他のベンダのデバイスや新機種のデバイスに更新（リプレイス）した場合には、さまざまな問題が発生する。
【０００４】
ここで、デバイスとしてプリンタを例に挙げてこの問題について詳細に説明する。
【０００５】
プリンタを使用するクライアント端末等には、アプリケーションや、ＯＳとプリンタとの間でプリンタの動作に必要な情報の橋渡しを行ってプリンタを動作させるためのプリンタドライバがインストールされる。プリンタドライバは、プリンタドライバ外部のアプリケーションとの間でデバイス制御または画像処理を指示するための印刷設定に関するデータ（印刷設定データ）のやりとりを行うことにより、外部のアプリケーションからの印刷命令をプリンタに実行させることができる。印刷設定データには、例えば、プリンタの動作モードを制御するデータや、紙種、用紙サイズ、用紙の出力先（排出トレイ）、用紙の入力元（給紙トレイ）を指定するデータ、プリントするときの解像度やカラー／白黒を指定するデータ等が含まれる。
【０００６】
プリンタドライバとアプリケーションとの間では、一般的には、印刷設定インターフェースが使用されて、印刷設定データのやりとりが行われる。印刷設定インタフェースには多くの種類が存在するが、その代表的なものとしては、例えば、プリンタドライバが外部（アプリケーション等）から印刷設定データを受け入れるインタフェース（以下、ＩＦ００１と呼称）、外部にプリンタドライバの利用可能な機能（印刷設定項目）に関する情報（ここでは選択肢種別と設定値）を公開するインタフェース（以下、ＩＦ００２と呼称）、および外部にプリンタドライバの現在の設定値を公開するインタフェース（以下、ＩＦ００３と呼称）等がある。なお、印刷設定インタフェースは、一般的には、コンピュータを動作させるＯＳの基本機能の１つであるデバイスアクセス機能、或いはＯＳとは別のデバイスアクセスコンポーネントにより実現されることが多い。
【０００７】
図１２は、プリンタドライバＰＤと該プリンタドライバＰＤの外部のプログラムであるアプリケーションＡＰとの間で行われる印刷設定データのやりとりを説明する説明図である。図１２に示すように、プリンタドライバＰＤとアプリケーションＡＰとは、ＯＳのデバイスアクセス機能が提供する印刷設定インタフェース（ＩＦ００１〜００３）を介して相互に印刷設定データの授受を行う。
【０００８】
ここで、システム構築時にＳＩベンダにより提供された特定のプリンタ（旧プリンタＰ１）を、新プリンタＰ２にリプレイスした場合を考える（プリンタは不図示）。プリンタのリプレイスと同時に、プリンタドライバも、旧プリンタＰ１に対応するプリンタドライバＰＤ１から、新プリンタＰ２に対応するプリンタドライバＰＤ２に変更される。このとき、アプリケーションの修正は行わず、ＳＩベンダにより旧プリンタＰ１（プリンタドライバＰＤ１）用に開発されたアプリケーションＡＰ１を継続して使用するものとする。
【０００９】
図１３（Ａ）、（Ｂ）は、プリンタで選択可能な印刷設定データ（選択肢種別とそれに対応する設定値）を示したリストの具体例を示す図である。ここで、図１３（Ａ）を、給紙トレイという機能種別について、旧プリンタＰ１（旧プリンタドライバＰＤ１）において選択可能な選択肢種別とそれに対応する設定値（これらは上記印刷設定データに相当する）を示したリストとし、図１３（Ｂ）を、同じく給紙トレイについて新プリンタＰ２（新プリンタドライバＰＤ２）において選択可能な選択肢種別とそれに対応する設定値を示したリストとして説明する。図１３（Ａ）、（Ｂ）より明らかなように、旧プリンタＰ１と新プリンタＰ２とでは選択肢種別と設定値との対応関係、設定値として使用される数値が異なっている。
【００１０】
ここで、図１４に示すように、印刷設定インタフェースＩＦ００１を使用して、アプリケーションＡＰ１からプリンタドライバＰＤ２に対して印刷指示としての印刷設定データが出力された場合には、以下のような問題が生じる。
【００１１】
アプリケーションＡＰ１は、前述したように、もともとＳＩベンダにより旧プリンタＰ１（プリンタドライバＰＤ１）用に開発されたアプリケーションである。従って、印刷時に給紙トレイを指示する場合には、図１３（Ａ）の表に示される旧プリンタＰ１用の設定値が用いられる。ところが、新プリンタＰ２に対応するプリンタドライバＰＤ２では、アプリケーションＡＰ１から受け取った値を図１３（Ｂ）の表に示される新プリンタＰ２の設定値として解釈するため、新プリンタＰ２はユーザの意図する処理とは異なる処理を実行してしまう。例えば、図１４に示すように、アプリケーションＡＰ１から印刷時の給紙トレイが「手差しトレイ」となるように設定値（０）を指定したとしても、プリンタドライバＰＤ２では「自動選択」が指示されたものと解釈され、新プリンタＰ２の印刷処理では給紙トレイが自動選択されてしまう。
【００１２】
次に、印刷設定インタフェースＩＦ００２を使用する場合について説明する。
【００１３】
まず、ＳＩベンダによって特定プリンタ用に開発されたアプリケーションＡＰ１ではなく、広く汎用的に使用されるアプリケーション（特定のプリンタに依存しないアプリケーション）ＡＰ２が印刷設定インタフェースＩＦ００２を使用する場合について説明する。
【００１４】
特定のデバイスに依存しないアプリケーションＡＰ２は一般的に、印刷設定インタフェースＩＦ００１を介して印刷指示を出力する前に、印刷設定インタフェースＩＦ００２を介してプリンタドライバＰＤ２に対して利用可能な機能について問い合わせる。この問い合わせに対してプリンタドライバＰＤ２は、利用可能な機能についての情報を公開（出力）する。アプリケーションＡＰ２は、該出力された情報を受け取り、受け取った情報に基づいて、前述のように印刷設定インタフェースＩＦ００１を利用して印刷指示を出力する。このように、特定のプリンタに依存しないアプリケーションではどのようなデバイスであっても、正しい印刷設定データで印刷指示することができる。
【００１５】
図１５は、印刷設定インタフェースＩＦ００２によりアプリケーションＡＰ２がプリンタドライバＰＤ２から利用可能な機能についての情報を取得する場合について説明する説明図である。
【００１６】
図１５に示すように、および印刷設定インタフェースＩＦ００２を介してプリンタドライバＰＤ２からアプリケーションＡＰ２に出力された給紙トレイに関する情報は、プリンタドライバＰＤ２における選択肢種別と設定値との対応関係どおりにアプリケーションＡＰ２でそのまま利用される。すなわち、印刷指示において「自動選択」を指定する場合には設定値（０）を指定し、「トレイ１」を使用する場合には設定値（１）を指定し、「トレイ２」を使用する場合には設定値（２）を指定し、「トレイ３」を使用する場合には設定値（３）を指定し、「手差し」を指定する場合には設定値（４）を指定する。従って、特定のプリンタに依存しないアプリケーションＡＰ２では印刷設定インタフェースＩＦ００１を使用して問題なく印刷指示できる。
【００１７】
ところが、旧プリンタＰ１用に開発されたアプリケーションＡＰ１は、旧プリンタＰ１の利用可能な機能に関する情報を既に認識しており、プリンタドライバに利用可能な機能を問い合わせる必要がない（すなわち、旧プリンタＰ１以外のプリンタを使用することを想定していない）ことから、このアプリケーションＡＰ１が印刷設定インタフェースＩＦ００２を使用することは稀であるが、仮に使用したとすると、以下のような問題が生じる可能性がある。
【００１８】
図１６は、印刷設定インタフェースＩＦ００２によりアプリケーションＡＰ１がプリンタドライバＰＤ２から利用可能な機能についての情報を取得する場合について説明する説明図である。
【００１９】
同図に示すように、アプリケーションＡＰ１は、プリンタドライバＰＤ２から給紙トレイの選択肢種別（自動選択、トレイ１、トレイ２、トレイ３、手差し）およびこれを指定するための設定値として公開された値（０，１，２，３，４）を取得しても、この値を旧プリンタＰ１で利用可能な選択肢種別（手差しトレイ、上段トレイ、下段トレイ、不明、不明）に対応する設定値として解釈してしまうため、取得した新プリンタＰ２の選択肢種別と対応付けて利用することはない。これは、アプリケーションＡＰ１が特定のプリンタ（旧プリンタＰ１）用に開発されたアプリケーションであり、他のプリンタで印刷することを想定していなかったために生じる問題である。
【００２０】
これでは、アプリケーションＡＰ２から印刷設定インタフェースＩＦ００１で印刷指示したとしても、新プリンタＰ２はユーザの意図する印刷処理とは異なる印刷処理を実行してしまうことになる。
【００２１】
なお、旧プリンタＰ１用に開発されたアプリケーションＡＰ１が、上記印刷設定インタフェースＩＦ００２を全く使用しない場合でも、前述のように印刷設定インタフェースＩＦ００１による印刷指示で誤った解釈がなされ、ユーザの意図する印刷処理とは異なる印刷処理を実行してしまう。従って、いずれにしても、問題が生じる。
【００２２】
次に、印刷設定インタフェースＩＦ００３を使用する場合について説明する。
【００２３】
図１７は、印刷設定インタフェースＩＦ００３によりアプリケーションＡＰ１がプリンタドライバＰＤ２から現在の設定値を取得する場合について説明する説明図である。
【００２４】
アプリケーションＡＰ１は、プリンタドライバＰＤ２に対して、印刷設定インタフェースＩＦ００３を通じてプリンタドライバＰＤ２の現在の設定値の要求を出力する。これに対してプリンタドライバＰＤ２は、自身に設定されている現在の設定値を、印刷設定インタフェースＩＦ００３を通じてアプリケーションＡＰ１に返す。
【００２５】
この場合も、前述の印刷設定インタフェースＩＦ００２を使用した場合と同様に、設定値の意味の取り違えが発生する。図１７に示すように、プリンタドライバＰ２の給紙トレイについての現在の設定値が「自動選択」を意味する値（０）に設定されていた場合には、この設定値（０）をアプリケーションＡＰ１に返しても、アプリケーションＡＰ１は、旧プリンタドライバＰＤ１における設定値（０）に対応する「手差しトレイ」であると判断してしまう。
【００２６】
アプリケーションＡＰ１は、取得した現在の設定値を保持し、次の印刷処理時にこの設定値を利用して印刷指示を出力するため、次の印刷処理時に誤った指示を出力してしまう。
【００２７】
このように、印刷設定データはプリンタドライバ間で互換性を持たないため、新しいデバイスにリプレイスした後も旧システムから使用されているアプリケーションをそのまま使用すると、デバイスを従来と同等に動作させることができなくなってしまう、という問題が生じる。
【００２８】
そこで、アプリケーションを修正することが考えられるが、デバイスをリプレイスする時点では、既に業務アプリケーションのサポート契約は終わっており、新しいプリンタ用にアプリケーションを修正することが困難な状態になっていることが多い。また、可能であったとしても新たな費用がかかる、という問題がある。従って、アプリケーションの修正無しで正しくデバイスを制御させたい要望がある。
【００２９】
そこで、設定値変換モジュールをプリンタドライバと画像処理モジュールとの間に設け、一定の変換ルールを用いてプリンタドライバのＵＩ（ユーザインタフェース）の設定値を画像処理モジュールで利用可能な設定項目と設定値に変更して画像処理モジュールに出力することができる設定情報変換装置が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００５−５５９３７公報
【発明の開示】
【発明が解決しようとする課題】
【００３０】
しかしながら、上述した従来の設定情報変換装置では、設定値変換モジュールで変換された設定値が出力される画像処理モジュールは、アプリケーションからプリンタドライバに対して出力された印刷命令に基づいてプリンタに供給するイメージデータを生成するための画像処理モジュールであって、アプリケーション側のモジュールではなく、プリンタドライバ側で機能する内部モジュールである。上記設定情報変換装置は、プリンタドライバ本体と該内部モジュール間での設定値の調整を目的としたものであって、設定値変換モジュールはプリンタドライバ本体と内部モジュール間に設けられている。従って、上記設定変換装置では、プリンタドライバ外部（例えばアプリケーション）とプリンタドライバ間のデータの調整については全く考慮されていない。
【００３１】
特に、上記設定変換装置の設定値変換モジュールは、プリンタドライバのＵＩ上のインタフェースの設定項目及び設定値を変換するものであるため、ＵＩを使用しない設定項目については正しく処理することができない、という問題がある。例えば、外部アプリケーションは、プリンタドライバに印刷指示を入力するだけではなく、プリンタドライバが出力する情報に応じて、プリンタドライバのＵＩを使用せずに印刷指示を行うことがある。従って、プリンタドライバのＵＩに存在しない設定項目が外部アプリケーションから指定される場合もある。
【００３２】
上記従来の設定情報変換装置では、ＵＩからの設定項目を一定の変換ルールを用いて変換してプリンタドライバの内部モジュールに与えるだけであるため、印刷指示だけでなく前述の印刷設定インタフェースＩＦ００２やＩＦ００３によりプリンタドライバからアプリケーションに対して機能を公開したり現在の設定値を公開する場合を含め、プリンタドライバとアプリケーション間で双方向に印刷設定データをやりとりする場合には、プリンタドライバ側で一定の変換ルールを有するだけでは不具合が生じることもある。
【００３３】
本発明は上述した問題を解決するためになされたものであり、使用するデバイスを変更した場合であっても、既存のモジュール（アプリケーション等）を修正することなく正しくデバイスを制御することができる変換プログラム、変換装置、およびデバイスドライバを提供することを目的とする。
【課題を解決するための手段】
【００３４】
上記目的を達成するために、本発明の変換プログラムは、入力された制御情報に応じてデバイスを制御する処理をコンピュータに実行させるデバイスドライバと、前記デバイスドライバ外部から前記デバイスドライバに対して前記デバイスを制御するために制御情報を出力する処理をコンピュータに実行させる外部モジュールとの間で、前記デバイスドライバ及び前記外部モジュールの一方から入力された制御情報を前記デバイスが正しく制御されるように変換して他方に出力する変換処理をコンピュータに実行させる。
【００３５】
このように、デバイスドライバ及び該デバイスドライバ外部のモジュールの一方から入力された制御情報をデバイスドライバが制御するデバイスが正しく制御されるように変換して他方に出力する変換処理をコンピュータに実行させるようにしたため、使用するデバイスを変更した場合であっても、既存の外部モジュール（アプリケーション等）を修正することなく正しくデバイスを制御することができる。
【００３６】
なお、前記変換処理は、前記外部モジュールから入力された制御情報を前記デバイスドライバで使用可能な形式及び値となるように変換して前記デバイスドライバに出力する第１の変換処理、および前記デバイスドライバから入力された制御情報を前記第１の変換処理とは逆方向に変換して前記外部モジュールに出力する第２の変換処理、のいずれかとすることができる。
【００３７】
また、前記デバイスドライバの設定、前記外部モジュールの種類、前記外部モジュールと前記デバイスドライバとの間のインタフェース処理を実行するインタフェースモジュールの種類、該インターフェースモジュールの呼び出し手順、および前記変換処理を実行させるコンピュータで動作する基本ソフトウェアのバージョンのいずれかに応じて前記変換処理の処理内容を異ならせることができる。
【００３８】
なお、この変換プログラムを前記デバイスドライバの入出力インタフェース部分に設けてもよいし、前記変換処理を実行させるコンピュータで動作する基本ソフトウェアの一部として設けてもよいし、前記デバイスドライバと前記外部モジュールとの間のインタフェース処理を実行するインタフェースモジュールの一部として設けてもよい。
【００３９】
また、本発明の変換装置は、上記変換プログラムを記憶する記憶手段と、前記記憶手段に記憶された変換プログラムを実行する実行手段と、を含んで構成されている。
【００４０】
また、本発明のデバイスドライバは、入力された制御情報に応じてデバイスを制御する処理をコンピュータに実行させる処理モジュールと、前記処理モジュールと、前記処理モジュール外部から前記デバイスを制御するために制御情報を出力する処理をコンピュータに実行させる外部モジュールとの間で、前記処理モジュール及び前記外部モジュールの一方から入力された制御情報を前記デバイスが正しく制御されるように変換して他方に出力する変換処理をコンピュータに実行させる変換モジュールと、を含んで構成されている。
【００４１】
本発明の変換装置及びデバイスドライバも、本発明の変換プログラムと同様に作用するため、使用するデバイスを変更した場合であっても、既存の外部モジュール（アプリケーション等）を修正することなく正しくデバイスを制御することができる。
【発明の効果】
【００４２】
以上説明したように、本発明によれば、使用するデバイスを変更した場合であっても、デバイスドライバ外部の既存の外部モジュールを修正することなく正しくデバイスを制御することができる、という優れた効果を奏する。
【発明を実施するための最良の形態】
【００４３】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【００４４】
図１は、本発明の実施の形態に係るプリントシステムの概略的な構成を示す図である。
【００４５】
プリントシステムは、図１に示すように、プリント機能を備えたプリンタ３０と、プリンタ３０に描画データを送信するクライアントとしての複数のパーソナルコンピュータ（以下、ＰＣと称す）１０とを備え、ＰＣ１０とプリンタ３０とはネットワーク５を介して相互に接続されている。なお、ネットワーク５には、図示しないが、スキャナ、ファクシミリ装置、メールサーバなどがそれぞれ接続されてもよい。
【００４６】
なお、このプリントシステムは、もともとは、ＳＩベンダの一括受注により、ＰＣ１０とプリンタ２９（図示省略）とがセットで提供され構築されたシステムであったが、システム更新に伴って、プリンタについてはプリンタ２９とは異なる他のベンダのプリンタ３０にリプレイスされている。以下、プリンタ２９を旧プリンタ２９、プリンタ３０を新プリンタ３０と呼称する場合がある。
【００４７】
図２は、ＰＣ１０の構成を示すブロック図である。
【００４８】
ＰＣ１０は、全体を制御するＣＰＵ１２、ワークエリアとしてデータを一時格納するＲＡＭ１４、ＣＰＵ１２の制御プログラム等を記憶するＲＯＭ１６、各種画面や情報を表示するディスプレイ２１、ＣＤ−ＲＯＭドライブ２２を備えている。
【００４９】
また、ＰＣ１０は、ハードディスクドライブ（ＨＤＤ）２３を備えている。ＨＤＤ２３には、ＰＣ１０上で動作するＯＳ５０、アプリケーション５２、ＰＣ１０からプリンタ３０の機能を使用するためにネットワーク５を介してプリンタ３０を制御するプリンタドライバ５４（図４参照）を始めとする各種プログラムや、ＰＣ１０の動作に必要なデータなどが記憶されている。なお、アプリケーション５２は、システム構築時の特定のプリンタ（旧プリンタ２９）のみを考慮して設計されたものであるが、新プリンタ３０にリプレイスした後も、アプリケーション５２の修正は行わず、そのまま使用を継続している。プリンタドライバ５４は、新プリンタ３０に対応したドライバであり、プリンタのリプレイス時に新たにインストールされた。
【００５０】
さらに、ＰＣ１０は、文章や記号等を入力するキーボード２４、ポインティングデバイスであるマウス２５を備え、これらはインタフェース２６に接続されている。
【００５１】
ＣＰＵ１２は、ＲＯＭ１６或いはＨＤＤ２３に記憶されているプログラムを実行することにより、ＰＣ１０を動作させる。
【００５２】
なお、プリンタドライバ及び各種プログラムを格納する記憶媒体は、ＨＤＤ２３に限定されず、例えば、ＲＯＭ１６やＣＤ−ＲＯＭドライブ２２や外付けの記憶媒体であってもよいし、電気通信回線上の搬送波のような伝送媒体であってもよく、特に限定されない。
【００５３】
ＣＰＵ１２、ＲＡＭ１４、ＲＯＭ１６、及びインタフェース２６は、入出力ポート１８に接続されている。入出力ポート１８は、通信制御ユニット２０を介してネットワーク５に接続され、通信制御ユニット２０により、ネットワーク５に接続されたプリンタ３０等の他の機器と通信を行うことができる。
【００５４】
図３は、プリンタ３０の構成を示すブロック図である。
【００５５】
プリンタ３０は、描画データに基づいて感光体に静電潜像を記録し、静電潜像をモノクロトナーまたはカラートナーを用いて現像し、現像した画像を記録紙に転写して出力するプリント部３２と、プリンタ３０全体を制御するコントローラ３６と、操作画面を表示すると共に表示された操作画面のアイコンへの接触等によりプリンタを操作するためのタッチパネルなどの表示パネル３４と、ネットワーク５を介して受信した描画データ等が記憶されるメモリ３８と、データの入出力のための入出力ポート４０と、ネットワーク５に接続された他の機器と通信を行う通信制御ユニット４２とを備えている。
【００５６】
プリント部３２、コントローラ３６、表示パネル３４、メモリ３８、及び入出力ポート４０は、バスを介して相互に接続されている。さらに、入出力ポート４０は、通信制御ユニット４２を介してネットワーク５に接続されている。
【００５７】
コントローラ３６は、ＣＰＵ、ＲＯＭ、及びＲＡＭ（ＳＤＲＡＭ）を含んで構成されたマイクロコンピュータであり、ＲＯＭには、ＰＣ１０から送信された描画データに応じてプリント部３２を制御して印刷するためのプログラム等の各種プログラムが記憶されている。なお、上記プログラムを格納する記憶媒体は、ＲＯＭに限定されず、例えば、ＨＤＤ（図示省略）や外付けの記憶媒体であってもよいし、電気通信回線上の搬送波のような伝送媒体であってもよく、特に限定されない。
【００５８】
図４は、ＰＣ１０上で動作するプリンタドライバ及びその周辺のソフトウェア構成を示した構成図である。
【００５９】
ＯＳ（Operating System）５０は、ＰＣ１０を動作させる基本ソフトウェアである。ＯＳ５０は、デバイスアクセス機能の１つとして、プリンタドライバ５４とアプリケーション５２との間のインタフェース処理を実行する。このインタフェース処理を実行するモジュールを印刷設定インタフェースという。印刷設定インタフェースは、プリンタドライバ５４とアプリケーション５２との間の、印刷設定に関するデータ（印刷設定データ）のやりとりを仲介する。
【００６０】
印刷設定データには、例えば、プリンタ３０の動作モードを制御するデータや、紙種、用紙サイズ、用紙の出力先（排出トレイ）、用紙の入力元（給紙トレイ）を指定するデータ、プリントするときの解像度やカラー／白黒を指定するデータ等が含まれる。すなわち、印刷設定データは、プリンタドライバ５４にデバイス制御や画像処理を指示するための制御情報であって、これによりプリンタを制御することができる。この印刷設定データの形式や設定値は、プリンタの機種毎に異なる場合がある。
【００６１】
図１３（Ａ）、（Ｂ）は、プリンタで選択可能な印刷設定データ（選択肢種別とそれに対応する設定値）を示したリストの具体例を示す図である。ここでは、図１３（Ａ）は、給紙トレイという機能種別（印刷設定項目）について、旧プリンタ２９で選択可能な選択肢種別とそれに対応する設定値を示したリストとし、図１３（Ｂ）は、同じく給紙トレイについて新プリンタ３０において選択可能な選択肢種別とそれに対応する設定値を示したリストとする。図１３（Ａ）、（Ｂ）より明らかなように、旧プリンタ２９と新プリンタ３０とでは設定値として使用される数値、選択肢種別と設定値との対応関係が異なっている。
【００６２】
印刷設定データにより実行されるデバイス制御は、紙種に応じた印刷処理、印刷用紙の入力元（給紙トレイ）の制御等、プリンタ３０の動作の制御をいう。また、印刷設定データにより実行される画像処理は、指定されたカラー／白黒、解像度等に応じて描画データを生成する処理であって、プリンタ３０は、ここで生成された描画データに基づいて画像を形成することができる。
【００６３】
印刷設定データをやりとりするための印刷設定インタフェースには多くの種類が存在するが、その代表的なものとしては、例えば、プリンタドライバ５４が外部（ここではアプリケーション５２）から印刷設定データを受け入れる印刷指示用のインタフェース（以下、ＩＦ００１と呼称）、アプリケーション５２にプリンタドライバ５４の利用可能な機能（印刷設定項目）に関する情報（ここでは選択肢種別と設定値）を公開する機能公開のためのインタフェース（以下、ＩＦ００２と呼称）、およびアプリケーション５２にプリンタドライバ５４の現在の設定値を公開する設定公開のためのインタフェース（以下、ＩＦ００３と呼称）がある。
【００６４】
本実施の形態では、代表してこの３つの印刷設定インタフェースを利用する場合を例に挙げて説明するが、印刷設定インタフェースはこれらに限定されない。また、本実施の形態では、各印刷設定インタフェースは、コンピュータを動作させるＯＳ５０の基本機能の１つであるデバイスアクセス機能により提供されるが、ＯＳ５０とは別のデバイスアクセスコンポーネントにより提供されてもよい。
【００６５】
アプリケーション５２は、プリンタドライバ５４の外部にあって、プリンタドライバ５４との間で印刷設定データのやりとりを行う。例えば、プリンタドライバ５４に対して印刷指示のために印刷設定データを出力したり、プリンタドライバ５４から必要な印刷設定データを取得する等である。このように印刷設定データをやりとりすることにより、プリンタドライバ５４を介してプリンタ３０に印刷処理させることができる。
【００６６】
プリンタドライバ５４は、ＯＳ５０、アプリケーション５２との間で印刷設定データをやりとりし、プリンタ３０を制御する。プリンタドライバ５４は、印刷設定データ変換モジュール５６と主処理モジュール５８とにより構成されている。
【００６７】
印刷設定データ変換モジュール５６は、プリンタドライバ５４の入出力インタフェース部分に設けられ、外部のアプリケーション５２から印刷設定インタフェースを介して受信した印刷設定データを変換ルールに基づいて変換処理して、主処理モジュール５８に渡す。また、外部のアプリケーション５２に対して機能公開或いは現在の設定値を公開する場合も、必要に応じて変換ルールに基づいて変換処理する。前述したように、プリンタのリプレイス後も、アプリケーション５２は修正は施されていない。従って、主処理モジュール５８がアプリケーション５２からの印刷指示を適切に扱うことができるように、この印刷設定データ変換モジュール５６で変換処理を行う。
【００６８】
印刷設定データ変換モジュール５６で使用される変換ルールは、旧プリンタ２９と新プリンタ３０の印刷設定データの形式や設定値の違い（図１３（Ａ）および（Ｂ）参照。）に応じて予め作成しておき、プリンタを旧プリンタ２９から新プリンタ３０にリプレイスした時に新プリンタ３０用のプリンタドライバ５４のインストールと同時に設定される。
【００６９】
図５は、旧プリンタ２９から新プリンタ３０にリプレイスしたときに作成される給紙トレイという機能種別についての印刷設定データの変換ルールを示した図である。この図において、外部値とは旧プリンタ２９用に開発されたアプリケーション５２が理解できる値（旧プリンタ２９で利用可能な設定値）であり、内部値とはプリンタドライバ５４が理解できる値（新プリンタ３０で利用可能な設定値）である。変換ルール６０では、プリンタ２９とプリンタ３０の選択肢種別が略対応するように外部値６４と内部値６６を対応付けている。また、この変換ルール６０では、旧プリンタ２９で利用不能な設定値（０，１，２，および７以外の値）については、デフォルトの外部値とし、内部値０（自動選択）に対応付けている。なお、こうした変換ルールは、給紙トレイ以外の他の機能種別についても作成され設定されている。変換ルールは、どの機能種別についても作成され、印刷設定データ変換モジュール５６はこれを用いて変換処理する。以下、本実施の形態では、代表して「給紙トレイ」についての印刷設定データの変換処理について説明する。
【００７０】
印刷設定データ変換モジュール５６は、印刷設定インタフェースＩＦ００１〜００３の前後の処理として動作し、上記変換ルール６０を参照して、アプリケーション５２と主処理モジュール５８との間で変換処理をおこなう。
【００７１】
主処理モジュール５８は、プリンタ３０を制御するというプリンタドライバ本来の処理を実行するモジュールであり、ＯＳ５０、アプリケーション５２からの印刷設定データ変換モジュール５６を介して受け取った指示に従ってデバイス制御や画像処理を行う。
【００７２】
次に、印刷設定インタフェースＩＦ００１を使用してアプリケーション５２からプリンタドライバ５４に対して印刷指示が出力された場合に実行される、印刷設定データ変換モジュール５６の変換処理について、図６を参照しながら説明する。
【００７３】
ステップ１００では、アプリケーション５２から出力された印刷設定データの設定値を外部値として取得（入力）する。
【００７４】
ステップ１１０では、取得した外部値は、機能種別「給紙トレイ」の外部値であるか否かを判断する。他の機能種別の外部値であればステップ１２０に移行し、他の機能種別の変換処理を他の処理ルーチンで行い、入力された外部値を内部値に変換する。
【００７５】
一方、取得した外部値が機能種別「給紙トレイ」の外部値である場合には、ステップ１３０に移行し、入力された外部値は、給紙トレイの変換ルール６０に含まれているか否かを判断する。例えば、外部値が「０」であれば、「０」は「手差しトレイ」を意味する設定値として変換ルール６０に含まれているため、肯定判断（YES)される。また、外部値が「３」であれば、変換ルール６０に含まれていないため、否定判断(NO)される。
【００７６】
ステップ１３０で肯定判断された場合には、ステップ１４０に移行し、変換ルール６０上で対応する内部値を設定する。例えば、外部値が旧プリンタ２９では手差しトレイを意味する「０」であれば、変換ルール６０において外部値「０」に対応する内部値「４」（新プリンタ３０でも手差しトレイを意味する）が設定される。
【００７７】
一方、ステップ１３０で否定判断された場合には、ステップ１５０に移行し、デフォルトに対応する内部値を設定する。変換ルール６０を参照すると、デフォルトに対応する内部値は自動選択を意味する「０」となっている。従って、この「０」を設定する。すなわち、未定義の外部値が入力された場合には、「自動選択」に変換されることになる。
【００７８】
ステップ１２０、ステップ１４０、ステップ１５０のいずれかが終了すると、ステップ１６０に移行し、上記設定した内部値を主処理モジュール５８に出力する。
【００７９】
これにより、アプリケーション５２からの設定値は適切な内部値に置き換えられるため、プリンタドライバ５４（主処理モジュール５８）は、設定値を誤って解釈することなく正常にプリンタ３０を制御することができる。
【００８０】
次に、ＰＣ１０に、上記アプリケーション５２とは別に、特定デバイスに依存しない汎用的なアプリケーション（図示省略、以下、汎用アプリケーションと呼称）を実装し使用する場合について説明する。
【００８１】
特定デバイスに依存しない汎用アプリケーションは、印刷設定インタフェースＩＦ００１を使用して印刷指示を行う前に、機能公開のための印刷設定インタフェースＩＦ００２を使用してプリンタドライバ５４で利用可能な機能に関する情報（印刷設定データ、すなわち選択肢種別と設定値）をプリンタドライバ５４から取得して、これに基づいて印刷設定インタフェースＩＦ００１を介して印刷指示を行うのが一般的である。
【００８２】
具体的には、汎用アプリケーションからプリンタドライバ５４に対して、まず、印刷設定インタフェースＩＦ００２を介して機能公開要求を出力する。この機能公開要求に応じて、プリンタドライバ５４は、印刷設定インタフェースＩＦ００２を介して図１３（Ｂ）に示すようなリストの項目を順次汎用アプリケーションに対して出力する。汎用アプリケーションは、取得したリストを用いて、上述した印刷設定インタフェースＩＦ００１により印刷指示を行う。
【００８３】
ところが、ＰＣ１０には、印刷設定データ変換モジュール５６がプリンタドライバ５４の入出力インタフェース部分の一部として実装されているため、印刷設定インタフェースＩＦ００１を介して印刷指示を行うと、図７に示すように、取得したリストに応じて出力した設定値が変換ルール６０によって変換され、意図しない印刷結果となってしまう。
【００８４】
例えば、印刷時に給紙トレイを自動選択したい場合には、ＩＦ００２で取得したリストに基づいて、汎用アプリケーションは設定値「０」をプリンタドライバ５４に出力する。ところが、印刷設定データ変換モジュール５６は、この設定値「０」を変換ルール６０によって変換してしまうため、主処理モジュール５８には手差しトレイを意味する内部値「４」が出力されることになる。
【００８５】
そこで、本実施の形態では、特定のプリンタ（旧プリンタ２９）に依存するアプリケーション５２だけでなく、特定のプリンタに依存しない汎用アプリケーションからの印刷指示も主処理モジュール５８で正常に解釈できるように、印刷設定データ変換モジュール５６は、機能公開においては、上記変換ルール６０による変換とは逆方向の変換処理（逆変換処理）を行うようにしている。
【００８６】
以下、図８を参照して、この逆変換処理についてより詳細に説明する。
【００８７】
図８は、印刷設定インタフェースＩＦ００２を使用して、汎用アプリケーションからプリンタドライバ５４に対して機能公開要求が出力された場合に実行される、印刷設定データ変換モジュール５６の逆変換処理の流れを示したフローチャートである。
【００８８】
プリンタドライバ５４に印刷設定インタフェースＩＦ００２により機能公開要求が入力されると、プリンタドライバ５４の主処理モジュール５８はこの機能公開要求に応じて、図１３（Ｂ）に示す新プリンタ３０で使用できる給紙トレイのリスト（以下、プリンタリストと呼称する）の選択肢種別及び設定値の各々を順次外部のアプリケーションに出力しようとするが、このとき、印刷設定データ変換モジュール５６はこれを外部に出力する前に逆変換してから出力する。
【００８９】
まず、ステップ２００では、新プリンタ３０で使用できる給紙トレイのリスト（プリンタリスト）を取得する。
【００９０】
ステップ２１０では、プリンタリストの設定値を全て変換したか否かを判断する。ここで、全て変換していないと判断した場合には、ステップ２２０に移行する。
【００９１】
ステップ２２０では、プリンタリストの設定値を順番に１つ取得する。
【００９２】
ステップ２３０では、取得した値が変換ルール６０の内部値として存在する値か否かを判断する。例えば、プリンタリストが図１３（Ｂ）であって、ステップ２２０で、自動選択を意味する設定値「０」が取得された場合には、この「０」という値は図５に示す変換ルール６０の内部値に存在するため、肯定判断される。また、例えば、ステップ２２０で、自動選択を意味する設定値「３」が取得された場合には、この「３」という値は変換ルール６０の内部値には存在しないため、否定判断される。
【００９３】
ステップ２３０で肯定判断された場合には、ステップ２４０に移行する。ステップ２４０では、変換ルール６０において、上記取得した値に対応する外部値を設定する。例えば、プリンタリストが図１３（Ｂ）であって、ステップ２２０で、自動選択を意味する設定値「０」が取得された場合には、変換ルール６０で内部値「０」に対応する外部値「７」を設定する。すなわちここでは、設定値を上記図６で説明した変換処理の変換方向と逆方向に変換処理（逆変換処理）する。なお、変換ルール６０では、内部値「０」は、外部値「デフォルト」にも対応しているが、ここでは、デフォルト以外の外部値に設定する。
【００９４】
ステップ２５０では、逆変換した設定値を逆変換リストに出力し、ステップ２１０に戻る。例えば、選択肢種別「自動選択」に対する設定値を「７」として逆変換リストに出力する。
【００９５】
一方、ステップ２３０で否定判断された場合には、ステップ２４０〜２５０の処理は行わずに、ステップ２１０に戻る。すなわち、変換ルール６０の内部値として存在しない値は、逆変換リストにはリストされないことになる。
【００９６】
ステップ２１０で、プリンタリストの設定値（内部値）を全て変換したか否かを判断し、全て変換していないと判断した場合には、ステップ２２０以降の処理を繰り返す。ここで全て変換したと判断した場合には、ステップ２６０に移行し、逆変換リストに基づいて選択肢種別、設定値を出力する。
【００９７】
例えば、図１３（Ｂ）を変換ルール６０に基づいて全ての設定値（内部値）を逆変換処理すると、各設定値は図９に示すような外部値に逆変換される逆変換リストが生成される。なお、図９に示すように、変換ルール６０に存在しない設定値「３」は、ステップ２３０で否定判断される値であって、逆変換リストには出力されない。すなわち、機能公開されない。
【００９８】
この逆変換リストにより、汎用アプリケーションから出力された機能公開要求に応じて、プリンタドライバ５４の主処理モジュール５８から出力される内部値は順次外部値に変換されて汎用アプリケーションに出力される。従って汎用アプリケーションは、機能公開で取得した逆変換された値を用いて印刷指示できるため、印刷指示において汎用アプリケーションからプリンタドライバ５４に対して出力された設定値は印刷設定データ変換モジュール５６により変換ルール６０に基づいて適切に変換処理され、プリンタ３０を正常に動作させることができる。
【００９９】
なお、ここでは、機能公開要求されたときに印刷設定データ変換モジュール５６が自動的に逆変換リストを生成する例について説明したが、逆変換リストは機能公開要求時に限らず機能公開以前であればいつの時点で生成してもよい。
【０１００】
また、変換ルールに存在しない内部値の場合には、上記ではその値を機能公開しないようにしたが、内部値をそのまま公開してもよい。この場合には、印刷指示で該公開された内部値が出力されたとしても、デフォルトの外部値として変換処理されるため、問題なく新プリンタ３０を制御できる。
【０１０１】
また、ここでは、機能公開要求を出すアプリケーションを特定デバイスに依存しない汎用アプリケーションとして説明したが、印刷設定データ変換モジュール５６は、機能公開要求を出すアプリケーションが、汎用アプリケーションか特定デバイスに依存する専用のアプリケーション５２かによらず、機能公開要求を受けたときには、一律に上記で説明した逆変換処理を行うことができる。いずれの場合であっても、新プリンタ３０を適切に動作させることが可能となる。
【０１０２】
次に、アプリケーション５２が、プリンタドライバ５４の現在の設定値を公開する設定公開のための印刷設定インタフェースＩＦ００３を使用する場合について説明する。
【０１０３】
アプリケーション５２は、プリンタドライバ５４に対して、印刷設定インタフェースＩＦ００３を通じてプリンタドライバ５４の現在の設定値の要求を出力する。これに対してプリンタドライバ５４の主処理モジュール５８は、自身に設定されている現在の設定値を、印刷設定インタフェースＩＦ００３を通じてアプリケーション５２に返す。このとき、前述したように、アプリケーション５２は、旧プリンタ２９用に開発されたアプリケーションであるため、プリンタドライバ５４から受け取った新プリンタ３０用の設定値を、旧プリンタ２９における設定値と解釈してしまう。例えば、プリンタドライバ５４の給紙トレイについての現在の設定値が「自動選択」を意味する値「０」に設定されていた場合には、この設定値「０」をアプリケーション５２に返しても、アプリケーション５２は、図１３（Ａ）に示すように、旧プリンタ２９用の設定値「０」に対応する「手差しトレイ」であると判断してしまう。
【０１０４】
アプリケーション５２は、印刷設定インタフェースＩＦ００３で取得した現在の設定値を保持し、次の印刷処理時にこの設定値を利用して印刷指示を出力するため、上記のようにように、設定値の意味の取り違えが発生すると、次の印刷処理時に誤った指示を出力してしまう。従って、本実施の形態では、印刷設定インタフェースＩＦ００３による設定公開においても、印刷設定インタフェースＩＦ００２のように印刷設定データ変換モジュール５６で逆変換処理した設定値をアプリケーション５２に返すようにする。なお、ここでは逆変換リストは作成せず、変換ルール６０からダイレクトに逆変換して設定値を出力する。
【０１０５】
図１０は、印刷設定インタフェースＩＦ００３を使用して、アプリケーションからプリンタドライバ５４に対して設定公開要求が出力された場合に実行される、印刷設定データ変換モジュール５６の逆変換処理の流れを示したフローチャートである。
【０１０６】
ステップ３００では、アプリケーション５２からの設定公開要求に応じてプリンタドライバ５４の主処理モジュール５８から出力された現在の設定値（内部値）を取得する。
【０１０７】
ステップ３１０では、取得した値が、変換ルール６０の内部値として存在する値か否かを判断する。例えば、プリンタリストが図１３（Ｂ）であって、ステップ３００で、自動選択を意味する設定値「０」が取得された場合には、この「０」という値は、図５に示す変換ルール６０の内部値に存在するため、肯定判断される。また、例えば、ステップ２２０で、自動選択を意味する設定値「３」が取得された場合には、この「３」という値は、変換ルール６０の内部値には存在しないため、否定判断される。
【０１０８】
ステップ３１０で肯定判断された場合には、ステップ３２０に移行する。ステップ３２０では、変換ルール６０において、上記取得した値に対応する外部値を設定する。例えば、ステップ３００で、自動選択を意味する設定値「０」が取得された場合には、変換ルール６０で内部値「０」に対応する外部値「７」を設定する。すなわちここでは、設定値を上記図６で説明した変換処理の変換方向と逆方向に変換処理（逆変換処理）する。なお、変換ルール６０では、内部値「０」は、外部値「デフォルト」にも対応しているが、ここでは、デフォルト以外の外部値に設定する。
【０１０９】
一方、ステップ３１０で否定判断された場合には、ステップ３３０に移行する。ステップ３３０では、外部値の「デフォルト」に対応している内部値と同一の他の内部値を検索し、検索された内部値に対応する外部値を設定する。
【０１１０】
本実施の形態の変換ルール６０では、「デフォルト」に対応している内部値は「０」（自動選択）である。変換ルール６０には、この内部値「０」と同一の他の内部値「０」がもう１つ存在する（変換ルール６０の１行目）。この内部値「０」に対応する外部値「７」を設定する。すなわち、内部値に対応する適切な外部値が存在しないため、ここでは便宜上、同一の他の内部値に対応する外部値を設定している。
【０１１１】
ステップ３２０，３３０により、新プリンタ３０用の設定値は旧プリンタ２９用の設定値に逆変換される。
【０１１２】
ステップ３４０では、逆変換した設定値を設定公開要求を出したアプリケーションに対して出力する。最終的に、図１１に示すように、主処理モジュール５８から出力された新プリンタ３０における現在の設定値（内部値）は、旧プリンタ２９に対応した設定値（外部値）に変換される。
【０１１３】
このように逆変換された設定値はアプリケーション５２で保持され、次の印刷指示で用いられる。印刷指示はこの逆変換された値に基づいて出力されるため、アプリケーション５２からプリンタドライバ５４に対して出力された設定値は印刷設定データ変換モジュール５６により変換ルール６０に基づいて適切に変換処理され、プリンタ３０を正常に動作させることができる。
【０１１４】
また、ここでは、設定公開要求を出すアプリケーションを特定デバイスに依存するアプリケーション５２として説明したが、印刷設定データ変換モジュール５６は、設定公開要求を出すアプリケーションが、汎用アプリケーションか特定デバイスに依存する専用のアプリケーション５２かによらず、設定公開要求を受けたときには、一律に上記で説明した逆変換処理を行うことができる。いずれの場合であっても、新プリンタ３０を適切に動作させることが可能となる。
【０１１５】
以上説明したように、アプリケーション５２（或いは汎用アプリケーション）とプリンタドライバの主処理モジュール５８との間に印刷設定データ変換モジュール５６を介在させ、プリンタドライバの主処理モジュール５８及びアプリケーション５２の一方から入力された印刷設定データをプリンタ３０が正しく制御されるように変換して他方に出力するようにしたため、プリンタおよびプリンタドライバが変更されても、既存のアプリケーションを修正すること無く正しくプリンタを制御することができる。
【０１１６】
なお、上記実施の形態では、印刷設定データ変換モジュール５６をプリンタドライバ５４の入出力インタフェース部分に設けた例について説明したが、これに限定されず、プリンタドライバ５４外部のモジュール、例えばインタフェース処理を実行する独立したモジュールとして実装してもよいし、ＯＳ５０の機能の一部として設けてもよい。
【０１１７】
また、上記実施の形態では、機能種別として「給紙トレイ」を例に挙げたが、プリンタドライバの全ての設定可能な機能種別を対象とすることができる。
【０１１８】
なお、上記実施の形態では、各印刷設定インタフェースで同じ変換ルール６０を用いて変換処理（或いは逆変換処理）を行うようにしたが、各印刷設定インタフェースごとに異なる変換ルールを用意して、変換処理時に使用する変換ルールを切り替えることも可能である。前者の場合には、メンテナンスが容易となり、後者の場合には、変換処理を高速に実行できる。
【０１１９】
また、変換ルールは、アプリケーションの種類や、ＯＳ、機能種別ごとに切り替えることもできる。この場合、印刷設定インタフェースからアプリケーションを判別したり、各種設定毎にプリンタアイコンの生成が可能でディスプレイ上に複数個表示できる場合にはプリンタアイコンごとに異なる変換ルールを設定したりすることもできるし、外部から変換ルールを指定したりしてもよい。
【０１２０】
また、上記実施の形態では変換ルールをリスト化して設定した例について説明したが、これに限定されず、例えば、内部処理プログラム、外部処理モジュール、外部ファイル、テキスト形式などさまざまな形式で設定しておくことができる。
【０１２１】
また、印刷設定データ変換モジュール５６を外部のアプリケーションの種類に応じて上記変換処理、逆変換処理を実行するように設計してもよい。例えば、特定デバイスに依存するアプリケーションであれば、変換処理、逆変換処理を行うようにし、汎用アプリケーションであれば、変換処理、逆変換処理は一切行わない、等のように設計しておくこともできる。
【０１２２】
また、印刷指示を出力した外部アプリケーションが特定デバイスに依存するアプリケーションか、特定デバイスに依存しない汎用アプリケーションかを判別し、判別結果に応じて変換処理、逆変換処理を行うようにしてもよい。
【０１２３】
例えば、外部アプリケーションが印刷指示を出力する前に機能公開要求を出力しなかった場合には、該アプリケーションは特定デバイスに依存するアプリケーションであると判断して、印刷指示において変換処理を行うようにし、逆に、外部アプリケーションが印刷指示を出力する前に機能公開要求を出力した場合には、該アプリケーションは特定デバイスに依存しない汎用アプリケーションであると判断して、機能公開時には逆変換処理を行わず、印刷指示においても変換処理を行わないようにすることができる。
【０１２４】
また、同じように、デバイスドライバ設定、インターフェース種類、動作ＯＳバージョン、印刷設定インターフェースの呼び出しプロトコル等に応じて、上記変換処理、逆変換処理を実行するようにしてもよいし、変換ルールを切り替えて変換処理を実行するようにしてもよい。
【０１２５】
また、上記実施の形態では、変換ルールにおいて、外部値と内部値を一対一に対応付けた例について説明したが、一対多、多対多、多対一などの組み合わせで構成してもよい。１つの設定値に複数個の設定値が対応付けられる場合には、いずれの値を選択するかは、例えば、アプリケーション種別や使用される印刷設定インタフェースに応じてその都度選択することができる。
【０１２６】
なお、上記実施の形態では、印刷設定データ変換モジュール５６は、変換処理、及び逆変換処理の両方を行なう例について説明したが、外部のアプリケーションが、機能公開や設定公開などのプリンタドライバ５４から印刷設定データを取得するような機能を全く使用しない場合には、変換処理のみを行なうようにしてもよい。
【０１２７】
また、上記実施の形態では、印刷設定データを数値形式で表す例について説明したが、バイナリ形式、テキスト形式、ＸＭＬ形式等いずれの形式であってもよいし、形式が異なる印刷設定データを、印刷設定データ変換モジュール５６で所定の変換ルールを用いて所定の形式に変換するようにしてもよい。これによっても、デバイスが正常に動作するように制御することができる。
【０１２８】
また、上記実施の形態では、制御されるデバイスがプリンタの場合を例に挙げて説明したが、これに限定されず、スキャナ装置等、他のデバイスであってもよい。
【図面の簡単な説明】
【０１２９】
【図１】本発明の実施の形態に係るプリントシステムの概略的な構成を示す図である。
【図２】ＰＣの構成を示すブロック図である。
【図３】プリンタの構成を示すブロック図である。
【図４】ＰＣ上で動作するプリンタドライバ及びその周辺のソフトウェア構成を示した構成図である。
【図５】旧プリンタから新プリンタにリプレイスしたときに作成される給紙トレイという機能種別についての印刷設定データの変換ルールを示した図である。
【図６】印刷設定インタフェースＩＦ００１を使用して、アプリケーションからプリンタドライバに対して印刷指示が出力された場合に実行される、印刷設定データ変換モジュールの変換処理の流れを示したフローチャートである。
【図７】印刷設定インタフェースＩＦ００２を使用して取得したリストに応じて出力した設定値が、変換ルールによって変換されてしまう状態を示した説明図である。
【図８】印刷設定インタフェースＩＦ００２を使用して、アプリケーションからプリンタドライバに対して機能公開要求が出力された場合に実行される、印刷設定データ変換モジュールの逆変換処理の流れを示したフローチャートである。
【図９】機能公開において、新プリンタにおける現在の設定値（内部値）が、旧プリンタに対応した設定値（外部値）に変換される逆変換処理を説明する説明図である。
【図１０】印刷設定インタフェースＩＦ００３を使用して、アプリケーションからプリンタドライバに対して設定公開要求が出力された場合に実行される、印刷設定データ変換モジュールの逆変換処理の流れを示したフローチャートである。
【図１１】設定公開において、主処理モジュールから出力された新プリンタにおける現在の設定値（内部値）が、旧プリンタに対応した設定値（外部値）に変換される逆変換処理を説明する説明図である。
【図１２】プリンタドライバと該プリンタドライバの外部のプログラムであるアプリケーションとの間で行われる従来の一般的な印刷設定データのやりとりを説明する説明図である。
【図１３】プリンタで選択可能な選択肢種別とそれに対応する設定値を示したリストの具体例を示す図である。
【図１４】印刷設定インタフェースＩＦ００１により、特定のプリンタに依存するアプリケーションから新プリンタに対応するプリンタドライバに対して印刷指示が出力された場合の従来の動作について説明する説明図である。
【図１５】印刷設定インタフェースＩＦ００２により特定のプリンタに依存しない汎用的なアプリケーションがプリンタドライバから利用可能な機能についての情報を取得する場合の一般的な動作について説明する説明図である。
【図１６】印刷設定インタフェースＩＦ００２により特定のプリンタに依存するアプリケーションがプリンタドライバから利用可能な機能についての情報を取得する場合の従来の動作について説明する説明図である。
【図１７】印刷設定インタフェースＩＦ００３により特定のプリンタに依存するアプリケーションがプリンタドライバから現在の設定値を取得する場合の従来の動作について説明する説明図である。
【符号の説明】
【０１３０】
１０  ＰＣ
１８  入出力ポート
２０  通信制御ユニット
２１  ディスプレイ
２２  ＨＤＤ
２４  キーボード
２５  マウス
３０  プリンタ
３２  プリント部
３４  表示パネル
３６  コントローラ
３８  メモリ
４０  入出力ポート
４２  通信制御ユニット
５０  ＯＳ
５２  アプリケーション
５４  プリンタドライバ
５６  印刷設定データ変換モジュール
５８  主処理モジュール
６０  変換ルール
【図１】
2007141161.tif 000003
【図２】
2007141161.tif 000004
【図３】
2007141161.tif 000005
【図４】
2007141161.tif 000006
【図５】
2007141161.tif 000007
【図６】
2007141161.tif 000008
【図７】
2007141161.tif 000009
【図８】
2007141161.tif 000010
【図９】
2007141161.tif 000011
【図１０】
2007141161.tif 000012
【図１１】
2007141161.tif 000013
【図１２】
2007141161.tif 000014
【図１３】
2007141161.tif 000015
【図１４】
2007141161.tif 000016
【図１５】
2007141161.tif 000017
【図１６】
2007141161.tif 000018
【図１７】
2007141161.tif 000019