(57)【要約】【課題】プリンタドライバが処理できない機能又は設定をデフォルト値に変換するＯＳ下での印刷処理にあって、プリンタドライバに対して、規則にしたがった変換処理を行った後の実行要求にしたがった印刷を行わせることができる情報処理装置を提供する。【解決手段】情報処理装置の受付手段は、印刷の実行要求をＯＳから受け付け、変換手段は、前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換し、転送手段は、前記変換手段により変換された実行要求を前記プリンタドライバに転送する。【選択図】図１
2019185627.tif 000002
【特許請求の範囲】
【請求項１】
印刷の実行要求をＯＳから受け付ける受付手段と、
前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、
前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段
を有する情報処理装置。
【請求項２】
プリンタドライバが受付可能な実行要求の定義を予め記憶しており、該定義をＯＳによってアクセス可能にしている記憶手段
をさらに有する請求項１に記載の情報処理装置。
【請求項３】
前記記憶手段は、前記プリンタドライバが処理し得る機能又は設定が定義されているＧＰＤファイルを記憶している、
請求項２に記載の情報処理装置。
【請求項４】
前記変換規則を、前記プリンタドライバの構成情報を用いて生成する生成手段
をさらに有し、
前記変換手段は、前記生成手段によって生成された変換規則にしたがって変換処理を行う、
請求項１に記載の情報処理装置。
【請求項５】
前記転送手段の転送先のプリンタドライバを選択する選択手段をさらに有し、
前記生成手段は、前記変換規則を前記選択手段により選択されたプリンタドライバの構成情報を用いて生成する、
請求項４に記載の情報処理装置。
【請求項６】
コンピュータを、
印刷の実行要求をＯＳから受け付ける受付手段と、
前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、
前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、他の印刷システムにおいて設定された、プリンタドライバ又は印刷装置では解釈できない印刷設定情報を、プリンタドライバ又は印刷装置において解釈できるようにする仕組みを提供することを課題とし、アプリケーションより印刷要求があり、その要求中の印刷設定情報がジョブチケット形式で記述されている場合、ジョブチケットに記述された未知の名前空間を示すタグ文字列があれば、辞書データベースに解釈可のタグ文字列への変換要求を行い、その結果を受け、解釈不可とタグ文字列を解釈可のタグ文字列に置換し、印刷設定を行うことが開示されている。
【０００３】
特許文献２には、複数の情報処理装置においてユーザーが実行を指示したジョブを取り扱う場合に、その取り扱いの条件を、容易かつ柔軟に変更できるようにすることを課題とし、プリンタドライバの形式を備え、上記プリンタドライバが用いる設定データの形式で、１以上の条件毎に該条件が満たされた場合に実行すべき処理を示す条件情報を含む設定データを記憶するダミードライバに対し、上記設定データの送信を要求して上記設定データを取得し、実行要求を受け付けたジョブが上記取得手順で取得した設定データに含まれる条件情報が示す条件に該当するか否か判断し、該当すると判断した場合に、上記実行要求を受け付けたジョブに対してその条件と対応する処理を実行した後、そのジョブの実行をプリンタドライバに要求するようにしたことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−０６５８３９号公報
【特許文献２】特開２０１５−１７６５２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アプリケーションが印刷処理を行う場合、アプリケーションからの印刷の実行要求をＯＳが受け取り、ＯＳがプリンタドライバにその印刷の実行要求を渡すことを行っている。例えば、プリンタドライバが処理できない機能又は設定を受け付けた場合は、そのプリンタドライバ内で、その機能又は設定を変換することが行われていた。しかし、ＯＳによっては、アプリケーションからの印刷の実行要求をプリンタドライバに渡す際に、そのプリンタドライバが処理できない機能又は設定をデフォルト値に変換することを行ってしまうものがある。このようにした場合、プリンタドライバが予め備えていた変換処理を行うことができなくなるので、アプリケーションからの印刷の実行要求にしたがった印刷が行われなくなってしまう。
本発明は、プリンタドライバが処理できない機能又は設定をデフォルト値に変換するＯＳ下での印刷処理にあって、プリンタドライバに対して、規則にしたがった変換処理を行った後の実行要求にしたがった印刷を行わせることができる情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、印刷の実行要求をＯＳから受け付ける受付手段と、前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段を有する情報処理装置である。
【０００７】
請求項２の発明は、プリンタドライバが受付可能な実行要求の定義を予め記憶しており、該定義をＯＳによってアクセス可能にしている記憶手段をさらに有する請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記記憶手段は、前記プリンタドライバが処理し得る機能又は設定が定義されているＧＰＤファイルを記憶している、請求項２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記変換規則を、前記プリンタドライバの構成情報を用いて生成する生成手段をさらに有し、前記変換手段は、前記生成手段によって生成された変換規則にしたがって変換処理を行う、請求項１に記載の情報処理装置である。
【００１０】
請求項５の発明は、前記転送手段の転送先のプリンタドライバを選択する選択手段をさらに有し、前記生成手段は、前記変換規則を前記選択手段により選択されたプリンタドライバの構成情報を用いて生成する、請求項４に記載の情報処理装置である。
【００１１】
請求項６の発明は、コンピュータを、印刷の実行要求をＯＳから受け付ける受付手段と、前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段として機能させるための情報処理プログラムである。
【発明の効果】
【００１２】
請求項１の情報処理装置によれば、プリンタドライバが処理できない機能又は設定をデフォルト値に変換するＯＳ下での印刷処理にあって、プリンタドライバに対して、規則にしたがった変換処理を行った後の実行要求にしたがった印刷を行わせることができる。
【００１３】
請求項２の情報処理装置によれば、プリンタドライバが受付可能な実行要求の定義を、ＯＳによってアクセス可能にしておくことができる。
【００１４】
請求項３の情報処理装置によれば、プリンタドライバが処理し得る機能又は設定が定義されているＧＰＤファイルを用いることができる。
【００１５】
請求項４の情報処理装置によれば、事前に変換規則を設定せずに変換処理を行うことができる。
【００１６】
請求項５の情報処理装置によれば、事前に変換規則を設定せずに変換処理を行うことができる。
【００１７】
請求項６の情報処理プログラムによれば、プリンタドライバが処理できない機能又は設定をデフォルト値に変換するＯＳ下での印刷処理にあって、プリンタドライバに対して、規則にしたがった変換処理を行った後の実行要求にしたがった印刷を行わせることができる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を利用したシステム構成例を示す説明図である。
【図３】アプリケーション、ＯＳ、プリンタドライバの処理例を示す説明図である。
【図４】アプリケーション、ＯＳ、プリンタドライバの処理例を示す説明図である。
【図５】アプリケーション、ＯＳ、プリンタドライバの処理例を示す説明図である。
【図６】本実施の形態の構成例についての具体的なモジュール構成図である。
【図７】本実施の形態による処理例を示すフローチャートである。
【図８】本実施の形態による処理例を示すフローチャートである。
【図９】本実施の形態による処理例を示す説明図である。
【図１０】本実施の形態による処理例を示す説明図である。
【図１１】本実施の形態による処理例を示すフローチャートである。
【図１２】アプリケーション・プリンタドライバ対応テーブルのデータ構造例を示す説明図である。
【図１３】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係、ログイン等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。また、「Ａ、Ｂ、Ｃ」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その１つのみを選んでいる場合（例えば、Ａのみ）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２０】
本実施の形態である情報処理モジュール１００は、プリンタドライバ１７０を介して画像処理装置に印刷させるものであって、図１の例に示すように、実行要求受付モジュール１１０、実行要求変換モジュール１２０、実行要求転送モジュール１３０を有しており、ＯＳ１６０、プリンタドライバ１７０と接続されている。情報処理モジュール１００は、印刷実行を受け付けるプリンタドライバ１７０が処理し得ない実行要求が行われた際に、その実行要求に類似した処理（機能又は設定）に代替させて実行させることを可能とするものである。
情報処理モジュール１００は、ＯＳ１６０とプリンタドライバ１７０との間を仲介する機能を有する。なお、情報処理モジュール１００は、アプリケーション１５０からの印刷親和性を鑑み、一般的なプリンタドライバを模した中間プリンタドライバの１機能形態をとるのが望ましい。また、情報処理モジュール１００とプリンタドライバ１７０が一対一に対応していてもよいし、情報処理モジュール１００に対してプリンタドライバ１７０が複数あってもよい。前者の場合は、ＯＳ１６０に対して情報処理モジュール１００が複数あってもよい。具体的には、ＯＳ１６０が制御できるプリンタドライバ１７０の数だけ情報処理モジュール１００もあることになる。後者の場合は、ＯＳ１６０と情報処理モジュール１００が一対一に対応しており、ＯＳ１６０は情報処理モジュール１００を介して複数のプリンタドライバ１７０を制御することが可能である。
【００２１】
アプリケーション１５０は、ＯＳ１６０と接続されている。アプリケーション１５０は、ユーザーの操作又は予め定められたプログラムにしたがって、印刷の実行要求をＯＳ１６０に対して行う。アプリケーション１５０として、例えば、文書作成プログラム（いわゆるワープロソフト）等が該当する。ここで、アプリケーション１５０は、プリンタドライバ１７０の処理できる機能を印刷要求前に問合せ、その機能範囲内でのみ印刷要求を行うよう作成されていることが一般的である。一方で、ある個別のプリンタ特有の機能又は設定を利用する前提で固定的（「固定的」とは、汎用的にではなく、そのプリンタ専用という意味）に作成される場合もあり、この場合にプリンタドライバ１７０の処理できない印刷の実行要求を行うことがある。本実施の形態である情報処理モジュール１００は、主にそのような実行要求に対応するものであるが、前述の一般的なアプリケーションにも対応できるようにしている。
【００２２】
ＯＳ１６０は、情報処理モジュール１００、アプリケーション１５０と接続されている。ＯＳ１６０は、アプリケーション１５０から受け付けた印刷の実行要求を情報処理モジュール１００（プリンタドライバ１７０）に渡す。ただし、ＯＳ１６０は、プリンタドライバ１７０が処理できない機能又は設定をデフォルト値に変換することを行う。具体例として、Ｗｉｎｄｏｗｓ（登録商標）におけるｖｅｒｓｉｏｎ４（ｖ４）と呼ばれる新しいプリンタドライバのアーキテクチャを採用したものが該当する。詳細については、図３〜５の例を用いて後述する。
【００２３】
プリンタドライバ１７０は、情報処理モジュール１００と接続されている。プリンタドライバ１７０は、プリンタを制御するためのプログラムであり、プリンタ毎に用意されている。例えば、プリンタがカラー印刷対応であるか（白黒印刷のみか）、給紙手段又は排紙手段の種類（取り扱うことができる用意サイズ等）等によって、制御できる機能又は設定が異なる。
【００２４】
実行要求受付モジュール１１０は、印刷の実行要求をＯＳ１６０から受け付ける。そして、この印刷の実行要求を解釈する。
実行要求変換モジュール１２０は、実行要求受付モジュール１１０が受け付けた実行要求を、変換規則にしたがって、プリンタドライバ１７０が解釈可能な実行要求に変換する。
また、実行要求変換モジュール１２０は、変換規則を、プリンタドライバ１７０の構成情報を用いて生成するようにしてもよい。そして、実行要求変換モジュール１２０は、その変換規則にしたがって変換処理を行うようにしてもよい。
また、実行要求変換モジュール１２０は、転送先のプリンタドライバを選択してもよい。そして、実行要求変換モジュール１２０は、変換規則を選択したプリンタドライバの構成情報を用いて生成するようにしてもよい。
【００２５】
また、情報処理モジュール１００は、プリンタドライバ１７０が受付可能な実行要求の定義を予め記憶しており、その定義をＯＳ１６０によってアクセス可能にしている記憶手段を有していてもよい。
ＯＳ１６０側は、この記憶手段内の定義にアクセスし、プリンタドライバ１７０が処理できない機能又は設定があった場合は、デフォルト値に変換することを行う。ただし、本実施の形態では、「プリンタドライバ１７０が受付可能な実行要求」であるので、変換前の実行要求についても定義しているので、デフォルト値に変換されることなく、アプリケーション１５０からの印刷の実行要求がそのまま情報処理モジュール１００（中間プリンタドライバ）に渡されることになる。
具体例として、記憶手段は、プリンタドライバ１７０が処理し得る機能又は設定が定義されているＧＰＤファイルを記憶していてもよい。この記憶手段は、より詳細には、後述する図６の例に示す設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１が該当する。
【００２６】
実行要求転送モジュール１３０は、実行要求変換モジュール１２０により変換された実行要求をプリンタドライバ１７０に転送する。
【００２７】
図２は、本実施の形態を利用したシステム構成例を示す説明図である。
図２（ａ）の例は、スタンドアロンとしてのシステム構成を示している。情報処理装置２００は、情報処理モジュール１００、アプリケーション１５０、ＯＳ１６０、プリンタドライバ１７０を有している。情報処理装置２００と画像処理装置２５０は、接続されている。情報処理装置２００に対して複数の画像処理装置２５０が接続されていてもよい。アプリケーション１５０からの印刷の実行要求にしたがって、画像処理装置２５０が印刷を行う。
図２（ｂ）の例は、通信回線２９０を介して、情報処理装置２００と画像処理装置２５０が接続されるシステム構成を示している。情報処理装置２００Ａ、情報処理装置２００Ｂ、情報処理装置２００Ｃ、画像処理装置２５０は、通信回線２９０を介してそれぞれ接続されている。通信回線２９０は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。いずれかの情報処理装置２００からの印刷の実行要求にしたがって、画像処理装置２５０が印刷を行う。
【００２８】
情報処理モジュール１００を用いないで、印刷の実行要求が行われる場合について、図３〜５を用いて説明する。
例えば、Ｗｉｎｄｏｗｓプリンタドライバは、ＤＥＶＭＯＤＥやＰｒｉｎｔＴｉｃｋｅｔといった印刷設定情報を記述する公知のデータ構造をアプリケーション１５０から受け取って印刷処理を実行する。一方、これらＤＥＶＭＯＤＥやＰｒｉｎｔＴｉｃｋｅｔは構造の大枠や一部既定の設定は定義されているものの、詳細はプリンタドライバによって異なる。このため、例えば、特定のプリンタドライバを利用する前提で特定のＤＥＶＭＯＤＥやＰｒｉｎｔＴｉｃｋｅｔを固定的に指示するようなアプリケーションが存在した場合、プリンタドライバの変更に伴い正常に動作しなくなることがあった。
これに対し、プリンタドライバが、自身の処理し得ない実行要求を受けた段階で、その実行要求を自身が処理し得る要求に自己変換して代替実行させる手段が考え得る。
しかし、Ｗｉｎｄｏｗｓ８以降に導入されているＶ４と呼ばれる新しいアーキテクチャに基づくプリンタドライバにおいては、プリンタドライバが実行要求を受ける前にＯＳが介在して、実行できない要求をデフォルト値に丸め込む（変更する）場合がある。このために、実行要求を受けたプリンタドライバは、元々がどのような実行要求であったかを知る術がなく、本来実施したい代替実行ができない状況にあった。
【００２９】
図３、図４、図５の例を用いて、Ｖ４アーキテクチャにおけるＯＳ１６０、プリンタドライバ１７０の機能、処理を説明し、プリンタドライバ１７０における課題例を示す。
図３は、アプリケーション１５０、ＯＳ１６０、プリンタドライバＡ：１７０Ａ、プリンタドライバＢ：１７０Ｂの処理例を示す説明図である。
図３の例では、あるＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）用のアプリケーション１５０が固定のＤＥＶＭＯＤＥを用いて給紙手段（ＩｎｐｕｔＢｉｎ）を指示している例を示している。より具体的には、プリンタドライバＡ：１７０ＡでＴｒａｙ１：３２５を示すＩｎｐｕｔＢｉｎ内部定義値が［１０１］（設定値３１０）であった前提で、ＩｎｐｕｔＢｉｎ＝［１０１］を固定的に指示している。
【００３０】
なお、Ｖ４プリンタドライバでは自身の処理し得る機能／設定をＧＰＤ（Ｇｅｎｅｒｉｃ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ）ファイル記憶モジュール３５０に定義する。具体的には、プリンタドライバＡ：１７０ＡのＧＰＤファイル記憶モジュール３５０Ａでは、以下のような定義がなされている。
つまり、ＧＰＤファイル記憶モジュール３５０Ａに、例えば、
「＊Ｆｅａｔｕｒｅ：ＩｎｐｕｔＢｉｎ｛
＊Ａｕｔｏ｛＊ＩＤ：７｝
＊Ｂｙｐａｓｓ｛＊ＩＤ：４｝
＊Ｔｒａｙ１｛＊ＩＤ：１０１｝
｝」
が記憶されている。つまり、プリンタドライバＡ：１７０Ａでは、“Ｔｒａｙ１”を示すＩｎｐｕｔＢｉｎ内部定義値を［１０１］としている（ＧＰＤファイル記憶モジュール３５０Ａ内の定義における「＊Ｔｒａｙ１｛＊ＩＤ：１０１｝」参照）。
そして、プリンタドライバＢ：１７０ＢのＧＰＤファイル記憶モジュール３５０Ｂに、例えば、
「＊Ｆｅａｔｕｒｅ：ＩｎｐｕｔＢｉｎ｛
＊ＡｕｔｏＴｒａｙ｛＊ＩＤ：７｝
＊Ｍａｎｕａｌ｛＊ＩＤ：４｝
＊Ｔｒａｙ１｛＊ＩＤ：１｝
｝」
が記憶されている。プリンタドライバ毎にＩＤが違うことがある。つまり、プリンタドライバＢ：１７０Ｂでは、“Ｔｒａｙ１”を示すＩｎｐｕｔＢｉｎ内部定義値を［１］としている（ＧＰＤファイル記憶モジュール３５０Ｂ内の定義における「＊Ｔｒａｙ１｛＊ＩＤ：１｝」参照）。そして、ＧＰＤファイル記憶モジュール３５０Ｂ内では［１０１］は定義されていない。
【００３１】
アプリケーション１５０は、プリンタドライバ毎に指示を変えられない場合がある。例えば、同じアプリケーション１５０からそのままプリンタドライバＢ：１７０Ｂに印刷要求を行うと、設定値３１０［１０１］はＧＰＤファイル記憶モジュール３５０Ｂ内に定義されていないので、ＯＳ１６０が「ＩｎｐｕｔＢｉｎ＝［１０１］はプリンタドライバＢ：１７０Ｂが処理し得ない」と判断して、ＩｎｐｕｔＢｉｎ＝［７］（デフォルト値）に変換処理３６０Ｂを行う。つまり、ＯＳ１６０は、Ｄｅｖｍｏｄｅ値３１５からＰＴ３２０への変換処理３６０を行うものであり、いわゆるＧＰＤの未定義の値を「ＡｕｔｏＳｅｌｅｃｔ」（デフォルト値３３０であるＡｕｔｏＳｅｌｅｃｔ３３５）に変換している。これにより、本来アプリケーション１５０では“Ｔｒａｙ１”からの給紙を期待していたはずが、“ＡｕｔｏＳｅｌｅｃｔ”で給紙されてしまうこととなる。プリンタドライバＢ：１７０Ｂでは、ＧＰＤファイル記憶モジュール３５０Ｂ内の定義によってデフォルト値３３０はＡｕｔｏＳｅｌｅｃｔ３３５に対応している。
なお、変換処理３６０Ａでは、設定値３１０は、ＧＰＤファイル記憶モジュール３５０Ａ内に定義されているので、変換処理３６０Ａを行わずに、設定値３１０をそのままプリンタドライバＡ：１７０Ａに渡している。プリンタドライバＡ：１７０Ａでは、ＧＰＤファイル記憶モジュール３５０Ａ内の定義によって設定値３１０はＴｒａｙ１：３２５に対応している。
【００３２】
図４は、アプリケーション１５０、ＯＳ１６０、プリンタドライバＢ：１７０Ｂの処理例を示す説明図である。図４の例は、図３の例を改良したものである。具体例として、プリンタドライバＢ：１７０Ｂ内に代替実行処理モジュール４１０を加えたものである。
Ｖ４アーキテクチャが導入される前、つまり、ＯＳ１６０が変換処理３６０の処理を行っていない場合は、代替実行処理モジュール４１０が、“１０１”を“１”に読みかえて実行すれば、ＧＰＤファイル記憶モジュール３５０Ｂ内に“１０１”の定義がなかったとしても、“１０１”の対応ができることになる。
しかし、前述したように、Ｖ４アーキテクチャが導入された後のＯＳ１６０では変換処理３６０Ｂが行われてしまうので、代替実行処理モジュール４１０が変換すべきであるか否か、そして、変換すべきとわかったとしても、元々の指示（設定値３１０の［１０１］）を知ることができないので、代替実行処理モジュール４１０での処理を行うことができない。
【００３３】
図５は、アプリケーション１５０、ＯＳ１６０、プリンタドライバＢ：１７０Ｂの処理例を示す説明図である。図５の例は、図４の例を改良したものである。具体例として、ＧＰＤファイル記憶モジュール３５０Ｂ内に［１０１］の定義を加えたものである。つまり、元の実行要求を解釈できるようにＧＰＤファイルにダミーの定義を追加しておくものである。
ＧＰＤファイル記憶モジュール３５０Ｂ内に［１０１］の定義があるので、ＯＳ１６０は、実行要求された値（［１０１］）を取得することが可能となる。そして、代替実行処理モジュール４１０は、“１０１”を“１”に読みかえて実行することができることになる。
しかし、ユーザー５１０が印刷指示を行う場合に、表示装置５２０にドライバユーザーインタフェース５５０が表示されるが、余計な設定項目が並び、操作性が低下することになる。例えば、ドライバユーザーインタフェース５５０として、給紙手段の選択があり、その設定項目として、「自動選択」、「手差し」、「トレイ１」、「トレイ１（ダミー１）」、「トレイ１（ダミー２）」、「トレイ１（ダミー３）」、「トレイ１（ダミー４）」等がある。このように、設定項目が多く並ぶことになる。これは、プリンタドライバＡ：１７０Ａ（又は、他のプリンタドライバ１７０）における設定項目を全て網羅して、ＧＰＤファイル記憶モジュール３５０Ｂ内に提示するため、多くの設定項目がドライバユーザーインタフェース５５０内に表示されることになるからである。
【００３４】
図６は、本実施の形態の構成例についての具体的なモジュール構成図である。
中間プリンタドライバコンポーネント群６００は、図１の例に示した情報処理モジュール１００を含んでいる。
中間プリンタドライバコンポーネント群６００は、印刷実行するプリンタドライバが処理し得ない実行要求が行われた際にその実行要求に類似する処理に代替させるための処理を行うものである。
まず印刷の実行要求を解釈することが可能な中間プリンタドライバ（中間プリンタドライバコンポーネント群６００の１つ）で印刷の実行要求を受け付け、印刷実行するプリンタドライバ（プリンタドライバコンポーネント群６７０の１つ）が解釈可能な実行要求に変換した後に、印刷実行するプリンタドライバ（プリンタドライバコンポーネント群６７０の１つ）に印刷の実行要求を転送する。
これによって、例えば特定の基幹アプリケーションにハードコード（特定の動作環境を前提とした処理やデータをソースコードの中に直に記述すること）されたような既定の印刷の実行要求を変更することなく、その実行要求の指示意図を保ったままで任意のプリンタに出力先を変更することができるようになる。また、プリンタそのものを置き換える場合、旧プリンタ（旧プリンタドライバ）への印刷の実行要求にも新プリンタ（旧プリンタドライバ）が対応できるようになる。
【００３５】
図６の例では、実線の矢印で、主な印刷経路（印刷の実行要求の流れ）を示している。
アプリケーション１５０は、ＯＳ１６０のＸＰＳスプールファイル記憶モジュール６０５、中間プリンタドライバコンポーネント群６００内のプリンタドライバＣｏｒｅモジュール６１１のＣｏｎｆｉｇｕｒａｔｉｏｎモジュール６１１１と接続されている。アプリケーション１５０は、印刷の実行を指示するアプリケーションである。
ＯＳ１６０は、ＸＰＳスプールファイル記憶モジュール６０５、プリントスプーラ６０６、ポートモニタ６０７を有している。
ＸＰＳスプールファイル記憶モジュール６０５は、アプリケーション１５０、中間プリンタドライバコンポーネント群６００内の情報処理モジュール１００の実行要求受付モジュール１１０と実行要求転送モジュール１３０、プリンタドライバコンポーネント群６７０内のプリンタドライバＣｏｒｅモジュール６２１のＲｅｎｄｅｒｉｎｇモジュール６２１３と接続されている。ＸＰＳスプールファイル記憶モジュール６０５（ＸＰＳはＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎの略）は、Ｖ４アーキテクチャでは印刷データをＸＰＳファイルフォーマットにてスプールする。ＯＳ管理の領域である。
プリントスプーラ６０６は、ポートモニタ６０７、プリンタドライバコンポーネント群６７０内のプリンタドライバＣｏｒｅモジュール６２１のＲｅｎｄｅｒｉｎｇモジュール６２１３と接続されている。プリントスプーラ６０６は、印刷処理のスケジュール管理を行う。Ｒｅｎｄｅｒｉｎｇ（印刷データ生成処理）された印刷データを受け付け、順次送信制御する。ＯＳ管理の領域である。
ポートモニタ６０７は、プリントスプーラ６０６、プリンタドライバコンポーネント群６７０内のプリンタドライバＣｏｒｅモジュール６２１のＣｏｎｅｃｔｉｏｎモジュール６２１４、プリンタ６９０と接続されている。ポートモニタ６０７は、プリントスプーラ６０６とプリンタ６９０とのデータやり取りを仲介する。ＯＳ管理の領域である。
プリンタ６９０は、ＯＳ１６０のポートモニタ６０７と接続されている。プリンタ６９０は、画像処理装置２５０（印刷装置）である。
【００３６】
中間プリンタドライバコンポーネント群６００は、プリンタドライバＣｏｒｅモジュール６１１、情報処理モジュール１００を有している。中間プリンタドライバコンポーネント群６００は、プリンタドライバの形式を有し、印刷に関する実行応答を行う。なお、ＷｉｎｄｏｗｓのＶ４アーキテクチャ形式では、プリンタドライバとしてのＣｏｒｅ部分と拡張処理を行うアプリケーション部分があり、これらを連動させて動作させる。ここではこれらコンポーネント群をまとめて１つのプリンタドライバと説明する。
【００３７】
プリンタドライバＣｏｒｅモジュール６１１は、Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール６１１１を有している。プリンタドライバＣｏｒｅモジュール６１１は、プリンタドライバの本体部分である。標準的な構成では、ＵＩモジュール、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１、Ｒｅｎｄｅｒｉｎｇモジュール、Ｃｏｎｎｅｃｔｉｏｎモジュールを有する。ここでは、本実施の形態に必要なＣｏｎｆｉｇｕｒａｔｉｏｎモジュール６１１１のみを記載しているが、他を併せて有してもよい。
【００３８】
Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール６１１１は、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１、拡張禁則モジュール６１１１２を有しており、情報処理モジュール１００、アプリケーション１５０と接続されている。Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール６１１１は、プリンタドライバが備える設定項目や禁則定義の情報を保持し、印刷設定（ＤＥＶＭＯＤＥ／ＰｒｉｎｔＴｉｃｋｅｔ６８２）や構成情報（ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ６８６）の応答を行う。
設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１は、ＯＳ１６０が規定する形式に則って定義した設定項目（機能又は設定）、禁則定義情報を保持する。
拡張禁則モジュール６１１１２は、各プリンタベンダーで独自拡張した設定項目、その挙動を定義し、処理する。
本実施の形態では、アプリケーション１５０からの様々な印刷の実行要求を受け付けできるよう（解釈できるよう）、想定でき得る全ての機能又は設定を有しておく。ここで「想定でき得る全ての機能又は設定」として、プリンタドライバコンポーネント群６７０（複数のプリンタドライバ）が実行可能な機能又は設定の総和をいう。
【００３９】
情報処理モジュール１００は、実行要求受付モジュール１１０、実行要求変換モジュール１２０、実行要求転送モジュール１３０を有しており、プリンタドライバＣｏｒｅモジュール６１１のＣｏｎｆｉｇｕｒａｔｉｏｎモジュール６１１１、プリンタドライバコンポーネント群６７０のプリンタドライバＣｏｒｅモジュール６２１と接続されている。本実施の形態では、情報処理モジュール１００は、ＷｉｎｄｏｗｓのＶ４アーキテクチャ形式のプリンタドライバにおけるプレプリント機能の拡張コンポーネントとして備える。特に、ＷｉｎｄｏｗｓのＶ４アーキテクチャでは、ワークフローアプリケーションともいわれる構成部分である。本実施の形態では、実行要求の解釈、変換、転送の処理を行う。
情報処理モジュール１００は、アプリケーション１５０からの印刷指示後に呼び出され、ＸＰＳスプールファイル記憶モジュール６０５内のＸＰＳスプールデータに加工を施した後、通常はプリントスプーラ６０６へデータを送る。本実施の形態では、再度スプール領域（ＸＰＳスプールファイル記憶モジュール６０５）へ送り、印刷実行をプリンタドライバコンポーネント群６７０に転送する。
処理中は、プリンタドライバＣｏｒｅモジュール６１１の情報を構成情報（ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ６８４）にて参照する。
後述する実行要求の解釈、変換、転送内容を事後設定、又は、都度設定できるよう、情報処理モジュール１００自体に別途ＵＩモジュールを設けてもよい。
【００４０】
実行要求受付モジュール１１０は、ＯＳ１６０のＸＰＳスプールファイル記憶モジュール６０５と接続されている。実行要求受付モジュール１１０は、印刷の実行要求を受け付け、その受け付けた印刷の実行要求の意味を解釈する。
実装の一例としては、プリンタドライバＣｏｒｅモジュール６１１に定義される構成情報（Ｐｒｉｎｔ  Ｃａｐａｂｉｌｉｔｉｅｓ６８６）から意味を解釈するが、情報処理モジュール１００自体にこれを定義又は都度設定できてもよい。ここでは後段の印刷実行するプリンタドライバコンポーネント群６７０が解釈できない要求のみを抽出するだけとし、後段の実行要求変換モジュール１２０の定義ルールにて単純変換させてもよい。
【００４１】
実行要求変換モジュール１２０は、実行要求受付モジュール１１０が受け付けた印刷の実行要求を、後段の印刷実行するプリンタドライバコンポーネント群６７０が解釈できる要求に変換する。
実装の一例としては、特定の変換ルールを事前設定しておき、このルールにしたがった変換を行う。この変換ルールについては、適当なタイミングでユーザー設定できるようにしてもよい。さらに、それぞれのプリンタドライバＣｏｒｅモジュール６１１、プリンタドライバＣｏｒｅモジュール６２１の構成情報（Ｐｒｉｎｔ  Ｃａｐａｂｉｌｉｔｉｅｓ６８８）を踏まえて変換ルールを自動生成させてもよい。
【００４２】
実行要求転送モジュール１３０は、ＯＳ１６０のＸＰＳスプールファイル記憶モジュール６０５と接続されている。実行要求転送モジュール１３０は、実行要求変換モジュール１２０によって変換された印刷の実行要求を、後段の印刷実行するプリンタドライバコンポーネント群６７０に転送する。
実装の一例としては、中間プリンタドライバコンポーネント群６１１設置時に転送先を設定するが、都度転送先を設定できてもよい。
【００４３】
プリンタドライバコンポーネント群６７０は、プリンタドライバＣｏｒｅモジュール６２１を有している。プリンタドライバコンポーネント群６７０は、標準的なプリンタドライバ（ＷｉｎｄｏｗｓＶ４アーキテクチャ形式）である。本実施の形態では、実質的な印刷実行（印刷データ生成等を含む）を行う。ここでは、プリンタドライバＣｏｒｅモジュール６２１のみを有するが、中間プリンタドライバコンポーネント群６００のように拡張アプリケーションである情報処理モジュール１００を有してもよい。
【００４４】
プリンタドライバＣｏｒｅモジュール６２１は、Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール６２１１、ＵＩモジュール６２１２、Ｒｅｎｄｅｒｉｎｇモジュール６２１３、Ｃｏｎｅｃｔｉｏｎモジュール６２１４を有しており、中間プリンタドライバコンポーネント群６００の情報処理モジュール１００と接続されている。プリンタドライバＣｏｒｅモジュール６２１は、プリンタドライバの本体部分である。標準的な構成では、ＵＩモジュール６２１２、Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール６２１１、Ｒｅｎｄｅｒｉｎｇモジュール６２１３、Ｃｏｎｎｅｃｔｉｏｎモジュール６２１４を有する。
【００４５】
Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール６２１１は、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６２１１１、拡張禁則モジュール６２１１２を有している。Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール６２１１は、プリンタドライバが備える設定項目や禁則定義の情報を保持し、印刷設定（ＤＥＶＭＯＤＥ／ＰｒｉｎｔＴｉｃｋｅｔ６８２）や構成情報（ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ６８８）の応答を行う。
設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６２１１１は、ＯＳ１６０が規定する形式に則って定義した設定項目（機能又は設定）、禁則定義情報を保持する。
拡張禁則モジュール６２１１２は、各プリンタベンダーで独自拡張した設定項目、その挙動を定義し、処理する。
ただし、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６２１１１、拡張禁則モジュール６２１１２では、出力先のプリンタ６９０が実行可能な範囲の設定のみを有している。
【００４６】
ＵＩモジュール６２１２は、プリンタドライバの印刷設定画面を表示する。
Ｒｅｎｄｅｒｉｎｇモジュール６２１３は、ＯＳ１６０のＸＰＳスプールファイル記憶モジュール６０５、プリントスプーラ６０６と接続されている。Ｒｅｎｄｅｒｉｎｇモジュール６２１３は、ＸＰＳスプールファイル記憶モジュール６０５内のＸＰＳスプールデータからプリンタ６９０が処理可能な印刷データを生成する。ＸＰＳ  Ｆｉｌｔｅｒは、この印刷データ生成処理を行う実体であり、一般的に処理要求単位に用意する。
Ｃｏｎｅｃｔｉｏｎモジュール６２１４は、ＯＳ１６０のポートモニタ６０７と接続されている。Ｃｏｎｅｃｔｉｏｎモジュール６２１４は、プリンタ６９０との通信制御を行う。プリンタ６９０の状態を問い合わせたり、プリンタ６９０の設定を取得したりする。
【００４７】
図７は、本実施の形態の導入例を示すフローチャートである。
なお、特定の印刷の実行要求を固定実行するアプリケーション１５０（例えば、図３等の例で示した設定［１０１］等としているアプリケーション１５０）、印刷実行するプリンタドライバ１７０（標準ドライバ）が設置されている環境があるとする。図９に示す例を用いて説明する。図９の例では、前述のアプリケーション１５０、プリンタドライバＢ：１７０Ｂ（プリンタドライバコンポーネント群６７０に相当）が設置されているとする。プリンタドライバＢ：１７０ＢのＧＰＤファイル記憶モジュール３５０Ｂに、例えば、
「＊Ｆｅａｔｕｒｅ：ＩｎｐｕｔＢｉｎ｛
＊ＡｕｔｏＴｒａｙ｛＊ＩＤ：７｝
＊Ｍａｎｕａｌ｛＊ＩＤ：４｝
＊Ｔｒａｙ１｛＊ＩＤ：１｝
｝」
が記憶されている。つまり、［１０１］は定義されていない。
【００４８】
ステップＳ７０２では、想定される設定をＧＰＤファイルに定義する。アプリケーション１５０からの様々な印刷の実行要求を受け付けできるよう（解釈できるよう）、想定でき得る設定をＧＰＤファイルに定義しておく。
例えば、給紙トレイ（ＩｎｐｕｔＢｉｎ）の“Ｔｒａｙ１”指定パターンとして、定義値［１］／［１１］／［１０１］／［２６１］／［９０１］等を用意しておく。前述したように、他のプリンタドライバ１７０（例えば、前述のプリンタドライバＡ：１７０Ａ）が対応している設定である。
図９の例に示すように、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１内のＧＰＤファイルには、このステップＳ７０２によって、
「＊Ｆｅａｔｕｒｅ：ＩｎｐｕｔＢｉｎ｛
＊ＡｕｔｏＴｒａｙ｛＊ＩＤ：７｝
＊Ｍａｎｕａｌ｛＊ＩＤ：４｝
＊Ｔｒａｙ１｛＊ＩＤ：１｝
＊Ｔｒａｙ１＿Ｄｕｍｍｙ１｛＊ＩＤ：１１｝
＊Ｔｒａｙ１＿Ｄｕｍｍｙ２｛＊ＩＤ：１０１｝
＊Ｔｒａｙ１＿Ｄｕｍｍｙ３｛＊ＩＤ：２６１｝
＊Ｔｒａｙ１＿Ｄｕｍｍｙ４｛＊ＩＤ：９０１｝
・・・
｝」
を記憶する。
【００４９】
ステップＳ７０４では、変換ルールを設定する。印刷の実行要求の変換ルールを実行要求変換モジュール１２０内に設定しておく。例えば、給紙トレイ（ＩｎｐｕｔＢｉｎ）の“Ｔｒａｙ１”変換ルールとして、定義値［１１］／［１０１］／［２６１］／［９０１］を受け付けた場合に［１］に変換するルールを設定しておく。図９に示す例では、実行要求変換モジュール１２０内で、変換処理９１５として「Ｔｒａｙ１＿Ｄｕｍｍｙ２→Ｔｒａｙ１」を設定する。
【００５０】
ステップＳ７０６では、中間プリンタドライバ（図６の例では、中間プリンタドライバコンポーネント群６００）を設置する。
ステップＳ７０８では、印刷の実行要求の転送先として、設置済みのプリンタドライバ１７０（標準ドライバ）を設定する。
【００５１】
図８は、本実施の形態による処理例を示すフローチャートである。図７の例に示すフローチャートによる導入の後に、印刷処理を行うものである。
ステップＳ８０２では、アプリケーション１５０が印刷の実行要求を行う。これによって、中間ドライバ（中間プリンタドライバコンポーネント群６００）に対して印刷の実行要求が行われる。図９に示す例では、アプリケーション１５０が、設定値３１０として［１０１］を設定している。なお、ＯＳ１６０では、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１に［１０１］が定義されているので、変換処理は行われない。
【００５２】
ステップＳ８０４では、実行要求受付モジュール１１０が、印刷の実行要求を受け付け、その内容を解釈する。例えば、給紙トレイ（ＩｎｐｕｔＢｉｎ）の［１０１］設定を受け取り、これが“Ｔｒａｙ１”を示していることを解釈する。図９に示す例では、実行要求受付モジュール１１０が、Ｔｒａｙ１＿Ｄｕｍｍｙ２：９１０として設定値３１０を受け付ける。
【００５３】
ステップＳ８０６では、実行要求変換モジュール１２０が、変換ルールに基づいて、印刷の実行要求を変換する。例えば、給紙トレイ（ＩｎｐｕｔＢｉｎ）の［１０１］設定を、［１］設定に変換する。図９に示す例では、実行要求変換モジュール１２０が、具体的変換処理９２０として「１０１→１」を行う。
ステップＳ８０８では、実行要求転送モジュール１３０が、変換後の印刷の実行要求をプリンタドライバ１７０に転送する。例えば、転送先として登録されたプリンタドライバ１７０に対して印刷の実行要求を行う。図９に示す例では、実行要求転送モジュール１３０が、Ｔｒａｙ１：９２５の設定値９３０「１」で転送する。
ステップＳ８１０では、標準ドライバであるプリンタドライバ１７０は、印刷処理を行う。図９に示す例では、プリンタドライバＢ：１７０Ｂが、Ｔｒａｙ１：９２５の設定値９３０「１」で、画像処理装置２５０で印刷させる。
【００５４】
なお、本実施の形態によれば、ユーザー５１０が別用途でドライバユーザーインタフェース１０５０を操作する際には、画像処理装置２５０に対して印刷実行するプリンタドライバＢ：１７０Ｂを直接操作すればよく、その場合にドライバユーザーインタフェース１０５０に余分な選択肢が表示されることも無い。
図１０は、本実施の形態による処理例を示す説明図である。ドライバユーザーインタフェース１０５０を表示装置５２０に表示し、ユーザー５１０に選択させる。例えば、ドライバユーザーインタフェース１０５０として。給紙手段の選択があり、プリンタドライバＢ：１７０Ｂにおける設定項目として、「自動選択」、「手差し」、「トレイ１」がある。中間プリンタドライバコンポーネント群６００の設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１内の定義内の項目を用いるのではなく、プリンタドライバＢ：１７０ＢのＧＰＤファイル記憶モジュール３５０Ｂを用いているので、余分な設定項目が表示されることもない。
【００５５】
前述の例では、事前に変換ルールを設定しておかなければならず、基本的には標準ドライバ（プリンタドライバ１７０）毎に中間ドライバ（情報処理モジュール１００、中間プリンタドライバコンポーネント群６００における中間ドライバの１つ）を用意する必要がある。
前述の図８の例に示すフローチャートのステップＳ８０６にて、実行要求変換モジュール１２０による処理として、図１１の例に示すフローチャートの処理を追加することで、変換ルールを生成でき、標準ドライバ（プリンタドライバ１７０）によらない中間ドライバ（情報処理モジュール１００）を提供することができる。つまり、複数のプリンタドライバ１７０を１つの情報処理モジュール１００で管理することができるようになる。
【００５６】
図１１は、本実施の形態（主に実行要求変換モジュール１２０）による処理例を示すフローチャートである。実行要求変換モジュール１２０が行う、事前に変換処理が定義されていない機能又は設定が、印刷の実行要求に含まれていた場合の対処例を示すものである。
ステップＳ１１０２では、実行要求受付モジュール１１０から印刷の実行要求と解釈結果を受け取る。
ステップＳ１１０４では、中間ドライバ自身のプリンタドライバＣｏｒｅモジュール６１１、標準ドライバのプリンタドライバＣｏｒｅモジュール６２１から構成情報（Ｐｒｉｎｔ  Ｃａｐａｂｉｌｉｔｉｅｓ６８６、Ｐｒｉｎｔ  Ｃａｐａｂｉｌｉｔｉｅｓ６８８）を取得する。
【００５７】
ステップＳ１１０６では、印刷の実行要求された機能毎（又は設定毎）に以下（ステップＳ１１０８〜ステップＳ１１１４までの処理）を繰り返す。
ステップＳ１１０８では、印刷要求された設定値が標準ドライバの構成情報（Ｐｒｉｎｔ  Ｃａｐａｂｉｌｉｔｉｅｓ６８８）に含まれるか否かを判断し、含まれる場合はステップＳ１１１４へ進み（変換処理不要）、含まれない場合はステップＳ１１１０へ進む（変換処理必要）。
【００５８】
ステップＳ１１１０では、印刷要求の解釈結果と標準ドライバの構成情報（Ｐｒｉｎｔ  Ｃａｐａｂｉｌｉｔｉｅｓ６８８）をつき合わせ、同じ要求を意図する標準ドライバ側の設定値を特定する。例えば、ＧＰＤの定義にしたがって設定値［１０１］は“Ｔｒａｙ１”と解釈され、変換規則を持たない実行要求変換モジュール１２０は、転送先の標準ドライバ（予め定められている標準ドライバ、又は、後述するように標準ドライバを選択する）の構成情報から“Ｔｒａｙ１”の設定値を抽出する。その上で、設定値［１０１］から設定値［１］に変更する変換規則を生成する。
ステップＳ１１１２では、印刷要求された設定値を、特定した設定値に変換する。例えば、図３では設定値［１０１］を“Ｔｒａｙ１”である［１］に変換する。
【００５９】
ステップＳ１１１４では、対象としている印刷の実行要求内で全ての機能（又は設定）を処理したか否かを判断し、処理した場合はステップＳ１１１６へ進み、それ以外の場合はステップＳ１１０８へ戻る。
ステップＳ１１１６では、実行要求転送モジュール１３０に処理結果を渡す。
【００６０】
さらに、この図１１の例に示すフローチャートによる処理を追加することと併せて、実行要求転送モジュール１３０に設定する印刷の実行要求の転送先（プリンタドライバ１７０）を、中間ドライバ（情報処理モジュール１００）の設置後に任意に変更できる仕組みを設けてもよい。例えば、アプリケーション・プリンタドライバ対応テーブル１２００を設けてもよい。実行要求転送モジュール１３０は、アプリケーション・プリンタドライバ対応テーブル１２００にしたがって、プリンタドライバ１７０を選択して転送すればよい。図１２は、アプリケーション・プリンタドライバ対応テーブル１２００のデータ構造例を示す説明図である。アプリケーション・プリンタドライバ対応テーブル１２００は、アプリケーション欄１２１０、プリンタドライバ欄１２２０を有している。アプリケーション欄１２１０は、アプリケーション１５０の識別子を記憶している。プリンタドライバ欄１２２０は、プリンタドライバ１７０の識別子（識別子には名称を含めてもよい）を記憶している。アプリケーション・プリンタドライバ対応テーブル１２００は、アプリケーション１５０が印刷の実行要求を行った際に生成される。そして、その後、ユーザーの操作等によって任意の時期に変更されてもよい。このアプリケーション・プリンタドライバ対応テーブル１２００によって、実行要求転送モジュール１３０は、アプリケーション１５０に合わせて、プリンタドライバ１７０を選択することができる。
これらを組み合わせることで、同一環境に複数種の標準ドライバ（プリンタドライバ１７０）が存在した場合でも、１つの中間ドライバ（情報処理モジュール１００）で対処可能となる。
【００６１】
図１３を参照して、本実施の形態の情報処理装置２００、画像処理装置２５０のハードウェア構成例について説明する。図１３に示す構成は、例えばパーソナルコンピュータ（ＰＣ）等によって構成されるものであり、スキャナ等のデータ読み取り部１３１７と、プリンタ等のデータ出力部１３１８を備えたハードウェア構成例を示している。
【００６２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３０１は、前述の実施の形態において説明した各種のモジュール、すなわち、アプリケーション１５０、ＯＳ１６０、情報処理モジュール１００、実行要求受付モジュール１１０、実行要求変換モジュール１２０、実行要求転送モジュール１３０、プリンタドライバ１７０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００６３】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３０２は、ＣＰＵ１３０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３０３は、ＣＰＵ１３０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバス等から構成されるホストバス１３０４により相互に接続されている。
【００６４】
ホストバス１３０４は、ブリッジ１３０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バス等の外部バス１３０６に接続されている。
【００６５】
キーボード１３０８、マウス等のポインティングデバイス１３０９は、操作者により操作されるデバイスである。ディスプレイ１３１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス１３０９とディスプレイ１３１０の両方の機能を備えているタッチスクリーン等であってもよい。その場合、キーボードの機能の実現について、キーボード１３０８のように物理的に接続しなくても、画面（タッチスクリーン）上にソフトウェアでキーボード（いわゆるソフトウェアキーボード、スクリーンキーボード等ともいわれる）を描画して、キーボードの機能を実現するようにしてもよい。
【００６６】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１３１１は、ハードディスク（フラッシュ・メモリ等であってもよい）を内蔵し、ハードディスクを駆動し、ＣＰＵ１３０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６１１１１、設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール６２１１１等としての機能を実現させる。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
【００６７】
ドライブ１３１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１３１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１３０７、外部バス１３０６、ブリッジ１３０５、及びホストバス１３０４を介して接続されているＲＡＭ１３０３に供給する。なお、リムーバブル記録媒体１３１３も、データ記録領域として利用可能である。
【００６８】
接続ポート１３１４は、外部接続機器１３１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１３１４は、インタフェース１３０７、及び外部バス１３０６、ブリッジ１３０５、ホストバス１３０４等を介してＣＰＵ１３０１等に接続されている。通信部１３１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１３１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１３１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００６９】
なお、図１３に示す情報処理装置２００、画像処理装置２５０のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１３に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図１３に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００７０】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００７１】
１００…情報処理モジュール
１１０…実行要求受付モジュール
１２０…実行要求変換モジュール
１３０…実行要求転送モジュール
１５０…アプリケーション
１６０…ＯＳ
１７０…プリンタドライバ
２００…情報処理装置
２５０…画像処理装置
２９０…通信回線
３１０…設定値
３１５…Ｄｅｖｍｏｄｅ値
３２０…ＰＴ
３２５…Ｔｒａｙ１
３３０…デフォルト値
３３５…ＡｕｔｏＳｅｌｅｃｔ
３５０…ＧＰＤファイル記憶モジュール
３６０…変換処理
４１０…代替実行処理モジュール
６００…中間プリンタドライバコンポーネント群
６０５…ＸＰＳスプールファイル記憶モジュール
６０６…プリントスプーラ
６０７…ポートモニタ
６１１…プリンタドライバＣｏｒｅモジュール
６１１１…Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール
６１１１１…設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール
６１１１２…拡張禁則モジュール
６２１…プリンタドライバＣｏｒｅモジュール
６２１１…Ｃｏｎｆｉｇｕｒａｔｉｏｎモジュール
６２１１１…設定項目／禁則（ＧＰＤ／ＰＰＤ）記憶モジュール
６２１１２…拡張禁則モジュール
６２１２…ＵＩモジュール
６２１３…Ｒｅｎｄｅｒｉｎｇモジュール
６２１４…Ｃｏｎｅｃｔｉｏｎモジュール
６７０…プリンタドライバコンポーネント群
６８２…ＤＥＶＭＯＤＥ／ＰｒｉｎｔＴｉｃｋｅｔ
６８４、６８６、６８８…Ｐｒｉｎｔ  Ｃａｐａｂｉｌｉｔｉｅｓ
６９０…プリンタ
【図１】
2019185627.tif 000003
【図２】
2019185627.tif 000004
【図３】
2019185627.tif 000005
【図４】
2019185627.tif 000006
【図５】
2019185627.tif 000007
【図６】
2019185627.tif 000008
【図７】
2019185627.tif 000009
【図８】
2019185627.tif 000010
【図９】
2019185627.tif 000011
【図１０】
2019185627.tif 000012
【図１１】
2019185627.tif 000013
【図１２】
2019185627.tif 000014
【図１３】
2019185627.tif 000015