(57)【特許請求の範囲】
【請求項１】
アプリケーションを記憶するサーバとプリンタドライバを記憶するクライアントを有する印刷システムであって、
前記サーバは、
印刷設定ファイルの中に、独自のインタフェースの印刷設定を埋め込む埋込手段と、
前記埋込手段により独自のインタフェースの印刷設定が埋め込まれた印刷設定ファイルを前記プリンタドライバに送信する送信手段と、
前記クライアントにより独自のインタフェースの印刷設定が共通のインタフェースの印刷設定に置き換えられた印刷設定ファイルを受信する受信手段とを備え、
前記クライアントは、
前記送信手段により送信された前記印刷設定ファイルを検証して、前記印刷設定ファイルの中に独自のインタフェースの印刷設定が含まれているかどうかを判断する判断手段と、
前記判断手段により独自のインタフェースの印刷設定が含まれていると判断した場合、独自のインタフェースの印刷設定を共通のインタフェースの印刷設定に置き換える置換手段と、
前記置換手段により置き換えられた共通のインタフェースの印刷設定を含む印刷設定ファイルを前記アプリケーションに返送する返送手段とを備えることを特徴とする印刷システム。
【請求項２】
プリンタドライバを記憶するクライアントに印刷設定ファイルを送信する情報処理装置であって、
印刷設定ファイルの中に、独自のインタフェースの印刷設定を埋め込む埋込手段と、
前記埋込手段により独自のインタフェースの印刷設定が埋め込まれた印刷設定ファイルを前記プリンタドライバに送信する送信手段と、
前記クライアントにより置き換えられた印刷設定ファイルを受信する受信手段とを備えることを特徴とする情報処理装置。
【請求項３】
アプリケーションを記憶するサーバから印刷設定ファイルを受信する情報処理装置であって、
前記サーバから送信される前記印刷設定ファイルを検証して、前記印刷設定ファイルの中に独自のインタフェースの印刷設定が含まれているかどうかを判断する判断手段と、
前記判断手段により独自のインタフェースの印刷設定が含まれていると判断した場合、独自のインタフェースの印刷設定を共通のインタフェースの印刷設定に置き換える置換手段と、
前記置換手段により置き換えられた共通インタフェースの印刷設定を含む印刷設定ファイルを前記アプリケーションに返送する返送手段とを備えることを特徴とする情報処理装置。
【請求項４】
アプリケーションを記憶するサーバとプリンタドライバを記憶するクライアントを有する印刷システムにおけるデータ処理方法であって、
前記サーバは、
印刷設定ファイルの中に、独自のインタフェースの印刷設定を埋め込む埋込ステップと、
前記埋込ステップにより独自のインタフェースの印刷設定が埋め込まれた印刷設定ファイルを前記プリンタドライバに送信する送信ステップと、
前記クライアントにより独自のインタフェースの印刷設定が共通のインタフェースの印刷設定に置き換えられた印刷設定ファイルを受信する受信ステップとを備え、
前記クライアントは、
前記送信ステップにより送信された前記印刷設定ファイルを検証して、前記印刷設定ファイルの中に独自のインタフェースの印刷設定が含まれているかどうかを判断する判断ステップと、
前記判断ステップにより独自のインタフェースの印刷設定が含まれていると判断した場合、独自のインタフェースの印刷設定を共通のインタフェースの印刷設定に置き換える置換ステップと、
前記置換ステップにより置き換えられた共通のインタフェースの印刷設定を含む印刷設定ファイルを前記アプリケーションに返送する返送ステップとを備えることを特徴とするデータ処理方法。
【請求項５】
プリンタドライバを記憶するクライアントに印刷設定ファイルを送信する情報処理装置におけるデータ処理方法であって、
印刷設定ファイルの中に、独自のインタフェースの印刷設定を埋め込む埋込ステップと、
前記埋込ステップにより独自のインタフェースの印刷設定が埋め込まれた印刷設定ファイルを前記プリンタドライバに送信する送信ステップと、
前記クライアントにより置き換えられた印刷設定ファイルを受信する受信ステップとを備えることを特徴とするデータ処理方法。
【請求項６】
アプリケーションを記憶するサーバから印刷設定ファイルを受信する情報処理装置におけるデータ処理方法であって、
前記サーバから送信される前記印刷設定ファイルを検証して、前記印刷設定ファイルの中に独自のインタフェースの印刷設定が含まれているかどうかを判断する判断ステップと、
前記判断ステップにより独自のインタフェースの印刷設定が含まれていると判断した場合、独自のインタフェースの印刷設定を共通のインタフェースの印刷設定に置き換える置換ステップと、
前記置換ステップにより置き換えられた共通インタフェースの印刷設定を含む印刷設定ファイルを前記アプリケーションに返送する返送ステップとを備えることを特徴とするデータ処理方法。
【請求項７】
請求項５〜６のいずれか１項に記載のデータ処理方法をコンピュータに実行させるプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項８】
請求項５〜６のいずれか１項に記載のデータ処理方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバとクライアントとで印刷処理を行う印刷システムに関するものである。
【背景技術】
【０００２】
クライアントコンピュータとプリンタから構成される印刷システムにおいて印刷を行う場合には、クライアントコンピュータに印刷アプリケーションとプリンタに印刷可能なプリンタドライバをインストールする。その場合、アプリケーションは、プリンタドライバとオペレーティングシステム（OS）で決められた共通のインタフェースを使って印刷指示や印刷設定を行う。
【０００３】
しかし、デバイス独自の拡張機能をアプリケーションから利用するような密接な連携を行う場合には、共通インタフェースに設定の方法が定義されていないため、利用することができないという課題があった。
【０００４】
ここで述べた拡張機能とは、例えばステイプルなどのプリンタ固有機能の設定や、プリンタ構成情報の取得のことを表わす。上記課題を解決するために、下記特許文献１では、プリンタドライバに、共通インタフェースとは別の独自インタフェースを作成し、アプリケーションが独自インタフェースを使用することで解決方法を提案している。
【０００５】
また、従来、ターミナルサーバとターミナルクライアントを備える印刷システム環境において、ユーザがドキュメントを印刷する場合には以下の方法をとっていた。
【０００６】
まず、ユーザはターミナルクライアントからターミナルサーバに接続する。次に、ターミナルサーバ上のアプリケーションを立ち上げ、ドキュメントをオープンする。
【０００７】
続いて、ユーザの操作に基づいて、アプリケーションメニューより、印刷を選択する。このとき、ターミナルサーバ上にインストールされているプリンタドライバが使用され、ユーザはそのプリンタドライバで印刷属性設定および印刷指示を行う。実際の印刷ジョブは、ターミナルサーバ上のプリンタドライバにより生成され、プリンタに送信されることとなる。
【０００８】
上記印刷システムにおいても、アプリケーションとプリンタドライバが共通のインタフェースで行えないような密接な連携を行いたい場合は、プリンタドライバに独自インタフェースを作成することで使用することが可能となる。
【特許文献１】USP6847466
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、上述したターミナルサーバを備える印刷システム以外に、次のようなターミナルサーバ−ターミナルクライアントの印刷システムが発表されている。
【００１０】
このような印刷システムでは、ターミナルサーバにユーザが使用するアプリケーションおよびプリンタドライバがインストールされる。また、ターミナルクライアントにもプリンタドライバをインストールし、プリンタを接続する。
【００１１】
この場合、ターミナルクライアントからターミナルサーバに接続をして、ターミナルサーバのアプリケーションから印刷指示を行うと次のような印刷の流れとなる。
【００１２】
まず、ターミナルサーバのアプリケーションは、ターミナルサーバのプリンタドライバに印刷ジョブを送信する。
【００１３】
次に、ターミナルサーバのプリンタドライバは基本的にアプリケーションから受信した印刷ジョブをターミナルクライアントに送信する。ターミナルクライアント側では、印刷ジョブ受信部が印刷ジョブを受信する。次に、印刷ジョブ受信部は、ターミナルクライアントのプリンタドライバに印刷ジョブを送信する。
【００１４】
続いて、ターミナルクライアントのプリンタドライバは必要があれば印刷ジョブをプリンタが解釈可能な描画データに変換して印刷ジョブをプリンタに送信する。プリンタは、その印刷ジョブあるいは描画データを使用して印刷出力を行う。
【００１５】
ところが、この新しい形態の印刷システムでは、実際にプリンタに接続するプリンタドライバがターミナルクライアントにインストールしてあるため、アプリケーションからプリンタに接続するプリンタドライバにアクセスすることができない。
【００１６】
アプリケーションがアクセス可能なターミナルサーバのプリンタドライバは、ターミナルクライアントのドライバへ印刷ジョブを送信する機能のみを持つドライバであり、独自インタフェースを持たない。
【００１７】
また、ターミナルサーバのプリンタドライバの共通インタフェースは拡張が可能で、プリンタドライバが共通インタフェースを拡張すれば、独自インタフェースを使って行っていた密接な連携は可能となる。
【００１８】
しかし、アプリケーションは、独自のインタフェースで行っていた設定や情報取得を、拡張した共通インタフェースでどのように行えば良いか知ることができない。
【００１９】
従って、アプリケーションは、プリンタに接続するプリンタドライバの独自インタフェースが使用不可となる。そのため、上述した従来のターミナルサーバ−ターミナルクライアントクライアントで実現していたアプリケーションとプリンタドライバの密接な連携が難しいという課題があった。
【００２０】
また、上述した印刷システム以外にも、例えば以下の理由１〜３により、アプリケーションが今まで使っていたインタフェースが使用できない場合、アプリケーションとして機能が十分に発揮できない同様の課題があった。
【００２１】
理由１）システムの構成上の都合でアプリケーションがプリンタドライバに直接アクセスできない。
【００２２】
理由２）プリンタドライバの構成上の都合で独自インタフェースを作れない。
【００２３】
理由３）プリンタドライバの独自インタフェースが別のインタフェースに変更される。
【００２４】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、サーバが作成する独自のインタフェースの印刷設定をクライアントのプリンタドライバにより共通のインタフェースの印刷設定に置き換えられる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成する本発明の印刷システムは以下に示す構成を備える。
【００２６】
アプリケーションを記憶するサーバとプリンタドライバを記憶するクライアントを有する印刷システムであって、前記サーバは、印刷設定ファイルの中に、独自のインタフェースの印刷設定を埋め込む埋込手段と、前記埋込手段により独自のインタフェースの印刷設定が埋め込まれた印刷設定ファイルを前記プリンタドライバに送信する送信手段と、前記クライアントにより独自のインタフェースの印刷設定が共通のインタフェースの印刷設定に置き換えられた印刷設定ファイルを受信する受信手段とを備え、前記クライアントは、前記送信手段により送信された前記印刷設定ファイルを検証して、前記印刷設定ファイルの中に独自のインタフェースの印刷設定が含まれているかどうかを判断する判断手段と、前記判断手段により独自のインタフェースの印刷設定が含まれていると判断した場合、独自のインタフェースの印刷設定を共通のインタフェースの印刷設定に置き換える置換手段と、前記置換手段により置き換えられた共通のインタフェースの印刷設定を含む印刷設定ファイルを前記アプリケーションに返送する返送手段とを備えることを特徴とする。
【発明の効果】
【００２７】
本発明によれば、サーバが作成する独自のインタフェースの印刷設定をクライアントのプリンタドライバにより共通のインタフェースの印刷設定に置き換えることができる。
【発明を実施するための最良の形態】
【００２８】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００２９】
＜システム構成の説明＞
〔第１実施形態〕
図１、図２は、本発明の実施形態を示す印刷システムの構成を説明するブロック図である。本例は、ターミナルサーバ、ターミナルクライアントおよびプリンタから構成される印刷システム例である。
【００３０】
図１において、１０１はターミナルサーバであり、この印刷システムの構成例ではプリンタ１０３がターミナルサーバ１０１に接続されている。なお、ターミナルクライアントは、説明のために１台接続される場合を示すが、通常は複数台接続されている。
【００３１】
１０４は通信媒体で、ターミナルサーバ１０１とターミナルクライアント１０２を接続する。この印刷システムの構成例では、ユーザはターミナルクライアント１０２からターミナルサーバ１０１に接続し、アプリケーションおよび印刷に使用するためのプリンタドライバはターミナルサーバ１０１に搭載されているものを使用する。つまり、ユーザが印刷を行う場合、以下のような操作となる。
【００３２】
まず、ユーザがターミナルクライアント１０２に接続されるキーボード、ポインティング・デバイスを操作して、ターミナルサーバ１０１に搭載されているアプリケーションを使用し、アプリケーションメニューから印刷を指示する。
【００３３】
この印刷の指示に基づき、アプリケーションはプリンタドライバに印刷データを送り、プリンタドライバはプリンタ１０３が解釈可能な印刷コードに変換してプリンタ１０３に送る。
【００３４】
プリンタ１０３は送られてきた印刷コードをワークメモリを介して描画し、描画した印刷データをプリンタエンジンから出力する。
【００３５】
図２に示す印刷システムを、図１に示す印刷システムと比較すると、ターミナルサーバ１０１、ターミナルクライアントの構成は同じであるが、異なる点は、プリンタ１０３がターミナルクライアント１０２に接続されている点、及びプリンタドライバがターミナルクライアント１０２に搭載されている点である。
【００３６】
つまり、ユーザが印刷を行う場合、以下のような操作となる。
【００３７】
まず、ユーザがターミナルクライアント１０２のキーボード、ポインティング・デバイスを操作して、ターミナルサーバ１０１に搭載されているアプリケーションを使用し、アプリケーションメニューから印刷を指示する。この印刷の指示に基づき、アプリケーションは印刷データをターミナルサーバ１０１のシステムを通してターミナルクライアント１０２に送る。
【００３８】
ターミナルクライアント１０２側では、送られてきた印刷データを、ターミナルクライアント１０２に搭載されているプリンタドライバを使用してプリンタが解釈可能に印刷コードに変換してプリンタ１０３に送る。プリンタ１０３は送られてきた印刷コードをワークメモリを介して描画し、描画した印刷データをプリンタエンジンから出力する。
【００３９】
このようにして、図１、図２のターミナルサーバ１０１およびターミナルクライアント１０２から構成される印刷システムにおいて印刷が実行される。
【００４０】
以下、本実施形態は、図２に示したターミナルサーバ１０１およびターミナルクライアント１２から構成される印刷システムについて詳述する。
【００４１】
＜ターミナルサーバ／ターミナルクライアントの印刷データの流れ＞
図３は、図２のターミナルサーバ１０１およびターミナルクライアント１０２から構成される印刷システムにおける印刷データの流れを説明するためのブロック図である。なお、この印刷システムでは、ターミナルサーバ１０１からターミナルクライアント１０２に送信される印刷データとして、共通フォーマットのデータを想定する。
【００４２】
本実施形態の共通フォーマットには、Ｍｉｃｒｏｓｏｆｔ社のＸＰＳ（ＸＭＬ Ｐａｐｅｒ Ｓｐｅｃｉｆｉｃａｔｉｏｎ：プラットフォームに依存しないドキュメントフォーマット）を使用する。
【００４３】
まず、ターミナルサーバ１０１は、以下のように構成される。すなわち、ターミナルサーバ１０１には、ターミナルクライアント１０２から使用されるアプリケーション３０３が搭載されている。このアプリケーション３０３は、共通フォーマット印刷データを生成するものである。共通フォーマット印刷データは、ターミナルサーバ１０１に搭載されているターミナルサーバプリンタドライバ３０５に渡される。その渡された印刷データは、スプーラ３０６を通して、ターミナルクライアント１０２に送信される。
【００４４】
次に、ターミナルクライアント１０２は以下のように構成される。すなわち、ターミナルクライアント１０２には、ターミナルサーバ１０１から送られてきた共通フォーマット印刷データを受信する３０７のプリント制御モジュールがある。
【００４５】
また、ターミナルクライアント１０２に搭載されるプリンタドライバ３１０は、共通フォーマット印刷データをターミナルサーバ１０１から受信して、プリンタ３１１が解釈可能な印刷データに変換しプリンタ３１１に送信するものである。
【００４６】
なお、プリンタ３１１が共通フォーマット印刷データを直接レンダリングして印刷出力可能な場合には、プリンタドライバ３１０は受け取った共通フォーマット印刷データをそのままプリンタ３１１に送信する。
【００４７】
以上説明したように、ユーザは、ターミナルクライアント１０２からターミナルサーバ１０１のアプリケーションにより、ユーザのドキュメントを印刷することが可能となっている。
【００４８】
＜従来の独自インタフェースを用いた密接な連携方法＞
アプリケーションとプリンタドライバが同じコンピュータ上にインストールされている一般的な印刷システム構成上で、アプリケーションからプリンタドライバの独自インタフェースを用いた密接な連携を行う場合、図４のような構成となる。
【００４９】
図４は、一般的な印刷システムのモジュール構成を説明するブロック図である。
【００５０】
図４において、コンピュータ４０１には、アプリケーション４０２とプリンタドライバ４０４とスプーラ４０５が存在する。なお、オペレーティングシステム（ＯＳ）については図示は省略している。
【００５１】
アプリケーション４０２が印刷を行う際、通常の印刷であれば、共通インタフェース４０３を用いて、プリンタドライバ４０４から情報を取得して印刷データを送信する。
【００５２】
プリンタドライバ４０４は、スプーラ４０５を経由して、プリンタ４０６に印刷データを送信する。また、アプリケーション４０２が、共通インタフェース４０３には存在しないステイプル設定やプリンタ４０６の詳細情報を取得する場合には、独自インタフェース４０７を使って行うことができる。
【００５３】
＜アプリケーションとプリンタドライバの密接な連携方法＞
図１に示した印刷システムにおいては、アプリケーションとプリンタ１０３に接続されたプリンタドライバが同じターミナルサーバ１０１に存在するため、図４に示した印刷システムの構成と同様となり、独自インタフェースを用いた密接な連携を行うことが可能となる。
【００５４】
一方、図２に示しステップ印刷システムにおいては、詳細は後述するが、独自インタフェースを用いた密接な連携を行えない構成となっている。
【００５５】
＜バリデイト処理＞
近年のプリンタドライバには、バリデイト処理と呼ばれる機能が実装されている。
【００５６】
このバリデイト処理は、アプリケーションなどからプリンタドライバに送られてきた印刷設定のファイル内容を検証し、プリンタドライバが扱える正しい印刷設定ファイルに修正を行う機能である。
【００５７】
バリデイト処理内容を大きく分類すると、「フォーマットの検証」、「記載内容の検証」、「設定値の検証」の３つの処理となる。
【００５８】
ここで、「フォーマットの検証」は、印刷設定ファイルの文書フォーマットがプリンタドライバで扱えるフォーマットであるかを検証するものである。
【００５９】
例えば、本実施形態では、共通フォーマットにＸＰＳを想定しているため、プリンタドライバは、印刷設定ファイルが、ＸＭＬドキュメントとして正しいかどうかを検証する。
【００６０】
もし、上記印刷設定ファイルを扱えないフォーマットであるとプリンタドライバが判断した場合は、扱えない文章として、アプリケーションに通知する。
【００６１】
一方、プリンタドライバが扱えるフォーマットであると判断した場合は、次の「記載内容の検証」を行う。
【００６２】
ここで、「記載内容の検証」とは、上記印刷設定ファイルに記載してある記載内容をプリンタドライバが解釈できるかどうかを検証するものである。
【００６３】
もし、プリンタドライバが扱えない記載であると判断した場合は、該当する記載を削除して、次の設定の検証を行う。そして、全設定の検証が完了すると、次の「設定値の検証」を行う。
【００６４】
ここで、「設定値の検証」とは、プリンタドライバの印刷設定に設定同士が矛盾（コンフリクト）を起こしていないかを検証するものである。
【００６５】
もし、プリンタドライバが設定同士が矛盾を起こしていると判断した場合は、プリンタドライバ内の矛盾解決ルールに従って、矛盾を解消する。
【００６６】
例えば、ステイプル設定と用紙サイズ設定が行われており、ステイプルができない用紙サイズである場合、これら２つの設定が矛盾しているとプリンタドライバが判断する。
【００６７】
また、プリンタドライバ内のルールが、ステイプル設定と用紙サイズが矛盾を起こしている場合の矛盾解決ルールが、ステイプル設定を行わないようするとなっていたとすると、プリンタドライバは、ステイプル設定を行わないように設定ファイルを書き換える。
【００６８】
上記検証を終えた印刷設定ファイルは、バリデイト処理が完了した印刷設定ファイルとして、プリンタドライバは、アプリケーションに印刷設定ファイルを送信し、バリデイト処理を完了させる。
【００６９】
次に、前述した図２に示した印刷システムにおけるアプリケーションとプリンタドライバが密接な連携を行う際の問題点と、アプリケーションとプリンタドライバが密接な連携を行うための方法について説明する。
【００７０】
図２に示した印刷システムにおいては、アプリケーションは、ターミナルサーバ１０１に存在し、プリンタドライバはプリンタ１０３に接続されたターミナルクライアント１０２に存在するため、図４に示した印圧システムの構成とは異なる。
【００７１】
アプリケーションは、ターミナルサーバ１０１に存在するターミナルサーバ用のプリンタドライバにのみアクセスが可能となり、プリンタ１０３に接続されたターミナルクライアント１０２内のプリンタドライバにアクセスすることができない。このため、ターミナルクライアント１０２内のアプリケーションは、プリンタドライバの独自インタフェースを使うことができない。
【００７２】
また、ターミナルクライアント１０２内のプリンタドライバは、共通インタフェースの拡張を行っているが、ターミナルサーバ１０１のアプリケーションは、独自インタフェースで行っていた設定や情報取得を、拡張した共通インタフェースでの方法に変換できない。
【００７３】
そのため、ターミナルサーバ１０１のアプリケーションは、ターミナルクライアント１０２のプリンタドライバと、従来の方法を用いて密接な連携を行うことはできない。
【００７４】
＜アプリケーションとプリンタドライバが密接な連携を行うための方法＞
本実施形態のアプリケーションとプリンタドライバが密接な連携を実施するための方法を図３を用いて説明する。
【００７５】
図３に示したアプリケーション３０３に、アクセス可能なプリンタドライバで使用できない独自インタフェースで設定する印刷設定がある場合、独自インタフェースの記載を、共通インタフェースのフォーマット内に埋め込む処理を追加する。
【００７６】
この埋込処理は、独自インタフェースの記載だけでなく、独自インタフェースであることを示すタグを合わせて埋め込む。加えて、アプリケーション３０３に、共通インタフェースを用いて、ターミナルサーバプリンタドライバ３０５に対し印刷設定フォーマットのバリデイト（検証）を行う処理（図８参照）を追加する。
【００７７】
図５は、図２に示した印刷システムにおける印刷設定ファイルの一例を示す図である。本例は、共通インタフェースで利用可能な印刷設定フォーマットの中に、独自インタフェースを埋め込む際の例と、置換え後の例である。（１）が置換え前の例で、（２）が置換え後の例である。
【００７８】
図５において、（１）は、独自インタフェースの記載を、共通インタフェースのフォーマットに埋め込んだ状態に対応する。
【００７９】
加えて、アプリケーション３０３に、印刷の際、バリデイト処理で置き換えられた印刷設定と共通インタフェースを用いて、ターミナルサーバプリンタドライバ３０５に印刷を行う処理を追加する。
【００８０】
プリンタドライバ３１０には、バリデイト対象の印刷設定フォーマットの中に、独自インタフェースであることを示すタグがあった場合、共通インタフェースで利用可能な記載に置き換える処理をバリデイト処理へ追加する（図９参照）。
【００８１】
（２）は、独自インタフェースの記載を共通インタフェースの記載に置換えた例である。
【００８２】
上記処理を追加することで、独自インタフェースを用いて行っていた密接な連携と同等の連携を行うことが可能となる。
【００８３】
また、情報取得に関しても印刷設定と同様に、バリデイトを行う際の印刷設定フォーマットの中に独自インタフェースの情報取得の指示を埋め込むことで、共通インタフェースを使って情報取得処理（図１０参照）が可能となる。
【００８４】
図５において、５００１、５００６は、５００１と５００６の間の記載が置換え対象であることを示すタグである。
【００８５】
５００２、５００５は、５００２と５００５の間の記載が文字列であることを示すタグである。５００３は、独自インタフェースでステイプル設定を行うための指示である。５００４は、独自インタフェースでステイプルの位置を示すための指示である。
【００８６】
５０１１、５０１７は、５０１１と５０１６の間の記載が置換え終了された記載であることを示すタグである。
【００８７】
５０１２、５０１６は、５０１２と５０１６の間の記載が文字列であることを示すタグである。５０１３、５０１５は、共通インタフェースでステイプル設定を行うための指示のためのタグである。
【００８８】
５０１４は、共通インタフェースでステイプルの位置を示すための指示のためのタグである。５０１５は、共通インタフェースでステイプル設定を行うための指示のためのタグである。
【００８９】
図６は、本実施形態を示す印刷システムにおけるモジュールの構成を説明するブロック図である。以下、図６を用いて、印刷処理を詳細に説明する。
【００９０】
図６において、ターミナルサーバ１０１には、アプリケーション１００３とダミードライバ１００４がインストールしてある。ここで、アプリケーション１００３とダミードライバ１００４は、ターミナルサーバ１０１が備える不揮発性メモリ、例えばハードディスク等に記憶されている。また、ターミナルサーバ１０１のＣＰＵは、上記アプリケーション１００３とダミードライバ１００４をＲＡＭにロードして実行する。
【００９１】
ダミードライバ１００４は、ターミナルクライアント１０２のプリンタドライバ１００５に共通インタフェース１００８を通じて印刷指示や情報取得処理を行うことが可能に構成されている。ターミナルクライアント１０２には、プリンタドライバ１００５がインストールされており、プリンタドライバ１００５は、インタフェース１００９を介してプリンタ１０３に印刷指示や情報取得処理を行うことが可能である。
【００９２】
アプリケーション１００３がプリンタ１０３を使用して印刷を行う場合、ダミードライバ１００４を通じて、プリンタドライバ１００５を使って印刷を行う。
【００９３】
しかし、アプリケーション１００３とダミードライバ１００４の共通インタフェース１００７は、共通インタフェースであり、プリンタドライバ１００５との間では使える独自インタフェースが使えない。
【００９４】
そこで、アプリケーション１００３は、まず、独自インタフェースの印刷設定１０１１を、ダミードライバ１００４との共通インタフェース１００７で使えるフォーマットに埋め込み、印刷設定ファイル１０１０を作成する。
【００９５】
次に、アプリケーション１００３は、ダミードライバ１００４に対して、バリデイト指示と印刷設定ファイル１０１０を送信する。ダミードライバ１００４は、アプリケーション１００３からバリデイト指示を受け取ると、当該バリデイト指示と合わせて受信した印刷設定ファイル１０１０を、ターミナルクライアント１０２のプリンタドライバ１００５へ、バリデイト指示と共に送信する。
【００９６】
ターミナルクライアント１０２のプリンタドライバ１００５は、バリデイト指示と印刷設定ファイル１０１２をダミードライバ１００４から受信すると、図９に一例を示すバリデイト処理を開始する。
【００９７】
プリンタドライバ１００５による上記バリデイト処理により、印刷設定ファイル１０１２に埋め込まれている独自設定１０１３を共通設定１０１５に置換えた印刷設定ファイル１０１４が作成される。
【００９８】
そして、プリンタドライバ１００５は、作成した印刷設定ファイル１０１４を、バリデイト処理完了の通知と共に、ターミナルサーバ１０１のダミードライバ１００４へ返送する。
【００９９】
ターミナルサーバ１０１のダミードライバ１００４は、バリデイト処理完了の通知をターミナルクライアント１０２のプリンタドライバ１００５から受信すると、共通インタフェース１００７を使って、印刷設定ファイル１０１６を送信する。
【０１００】
また、アプリケーション１００３は、上記バリデイト処理完了通知を受信したら、バリデイトされた印刷設定ファイル１０１６を使って、ダミードライバ１００４にプリンタドライバ１００５へ印刷するように、印刷指示を出す。
【０１０１】
その際、印刷データと共に送信する印刷設定ファイルは、バリデイト処理が完了した印刷設定ファイル１０１６を用いる。ダミードライバ１００４は、アプリケーション１００３から印刷指示を受信すると、共通設定１０１７に基づく印刷指示をプリンタドライバ１００５に送信すると共に、受信した印刷データと印刷設定ファイルもプリンタドライバ１００５に送信する。
【０１０２】
プリンタドライバ１００５は、共通設定１０１７に基づく印刷指示をアプリケーション１００３から受信すると、共に受信した印刷データと印刷設定ファイル１０１６を使い、プリンタ１００６により印刷を行う。
【０１０３】
次に、上記で説明した印刷設定ファイル内に記載された独自インタフェースの記載をバリデイト処理で置き換えることができないプリンタドライバに対して印刷する場合を、図７を用いて説明する。
【０１０４】
図７は、本実施形態を示す印刷システムにおける他のモジュールの構成を説明するブロック図である。以下、図７を用いて、印刷処理を詳細に説明する。
【０１０５】
図６に示した構成と異なるのは、プリンタドライバ１１０１とプリンタ１１０２を追加した点である。
【０１０６】
図７において、プリンタドライバ１１０１は、独自インタフェースを持っていないプリンタドライバで、図６に示したプリンタドライバ１００５のように、印刷設定ファイル内に記載された独自インタフェースの記載をバリデイト処理で置き換えることもできない。
【０１０７】
そのため、図７に示す構成では、プリンタ１１０２に対して密接な連携を、図６と同じ方法で行うことができない。
【０１０８】
そこで、図７に示す構成では、最初にプリンタドライバ１００５でバリデイト処理のみを行い、独自インタフェースの記載を含んだ印刷設定ファイル１０１０を印刷設定ファイル１１０７に置き換えて保存しておく。そして、印刷時には、保存しておいた印刷設定ファイル１１０７を使って、ダミードライバ１００４に、プリンタドライバ１１０１へ印刷指示を行うように指示を出す。
【０１０９】
ターミナルクライアント１０２のプリンタドライバ１１０１は、印刷指示をダミードライバ１００４から受信すると、共に受信した印刷データと印刷設定ファイル１１０７を使い、インタフェース１１０４を介してプリンタ１１０２により印刷を行う。
【０１１０】
図８は、本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、アプリケーションで、共通インタフェースを用いて、独自インタフェースの印刷設定作成処理に対応する。
【０１１１】
なお、Ｓ６０１〜Ｓ６０６は各ステップを示し、各ステップは、ターミナルサーバ１０１のＣＰＵがＲＡＭにロードされるダミードライバ１００４を実行することで実現される。
【０１１２】
Ｓ６０１は、ターミナルサーバ１０１のＣＰＵはダミードライバ１００４を実行することにより、アプリケーション１００３が行う印刷設定の中に、直接アクセスするプリンタドライバ１００５が使えないインタフェースを用いる必要があるかどうかをテーブルを参照して判断する。ここで、テーブルは、ターミナルサーバ１０１が備える記憶装置に保持されている。
【０１１３】
具体的には、独自インタフェースを使用する必要がある印刷設定の項目をテーブルにもっておき、ダミードライバ１００４がそのテーブルの印刷設定に該当するかどうかを判断する。ここで、ダミードライバ１００４が該当すると判断した場合は、プリンタドライバ１００５が使えないインタフェースを用いる必要があると判断する。
【０１１４】
Ｓ６０１で、プリンタドライバが使えないインタフェースを用いる必要があるとダミードライバ１００４が判断した場合は、Ｓ６０２へ進む。
【０１１５】
一方、プリンタドライバが使えないインタフェースを用いる必要がないとダミードライバ１００４が判断した場合は、Ｓ６０６へ進む。
【０１１６】
Ｓ６０２では、ダミードライバ１００４が印刷設定の中で、独自インタフェースを用いる必要がないもので印刷設定を作成する。
【０１１７】
そして、Ｓ６０３で、ダミードライバ１００４は、Ｓ６０２で作成した印刷設定の中に、独自インタフェースであることを示すタグと独自インタフェースで行う印刷設定の記載を追記する。
【０１１８】
次に、Ｓ６０４で、ダミードライバ１００４は、Ｓ６０３で作成した印刷設定をバリデイトするために、プリンタドライバ１００５に送信する。
【０１１９】
そして、Ｓ６０５で、ダミードライバ１００４は、Ｓ６０４でバリデイトされた印刷設定を使って印刷処理を実行して、本処理を終了する。
【０１２０】
一方、Ｓ６０６では、ダミードライバ１００４は、独自インタフェースがないため、共通インタフェースの記載のみを使って、印刷設定を作成して、本処理を終了する。
【０１２１】
図９は、本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。本例は、図６に示したターミナルクライアント１０２のプリンタドライバ１０５が実行する印刷設定内の独自インタフェースの記載を共通インタフェースの記載に置換えるバリデイトの処理例である。
【０１２２】
なお、Ｓ７０１〜Ｓ７０５は各ステップを示し、各ステップは、ターミナルクライアント１０２のＣＰＵがＲＡＭにロードされるプリンタドライバ１００５を実行することで実現される。
【０１２３】
Ｓ７０１で、プリンタドライバ１００５は、アプリケーション１００３から共通インタフェース１００８経由で、印刷設定を受信する。そして、Ｓ７０２で、プリンタドライバ１００５が印刷設定内に置換え部分があるかを調べる。ここで、プリンタドライバ１００５が印刷設定内に置き換え部分があると判断した場合は、Ｓ７０３へ進み、置き換え部分がないと判断した場合は、Ｓ７０４へ進む。
【０１２４】
そして、Ｓ７０３で、プリンタドライバ１００５は、印刷設定内の置換え対象部分に記載されている独自インタフェースの記載を、共通インタフェースの記載に置き換える。
【０１２５】
次に、Ｓ７０４で、プリンタドライバ１００５は、通常のバリデイト処理を行い、印刷設定の記載の検証を行う。そして、Ｓ７０５で、プリンタドライバ１００５は、共通インタフェース１００８を介して、アプリケーション１００３へ印刷設定を送信して、本処理を終了する。
【０１２６】
図１０は、本実施形態を示す情報処理装置における第３のデータ処理手順の一例を示すフローチャートである。本例は、アプリケーションで、共通インタフェースを用いて、独自インタフェースの情報取得処理を行うための処理に対応する。
【０１２７】
なお、Ｓ８０１〜Ｓ８０６は各ステップを示し、各ステップは、ターミナルサーバ１０１のＣＰＵがＲＡＭにロードされるアプリケーション１００３を実行することで実現される。
【０１２８】
Ｓ０８０１は、アプリケーション１００３が行う情報取得処理の中に、直接アクセスするプリンタドライバ１００５が使えないインタフェースを用いる必要があるかどうかを判断する。ここで、アプリケーション１００３が直接アクセスするプリンタドライバ１００５が使えないインタフェースを用いる必要があると判断した場合は、Ｓ８０２へ進む。
【０１２９】
一方、Ｓ８０２で、直接アクセスするプリンタドライバ１００５が使えないインタフェースを用いる必要がないと判断した場合は、Ｓ８０６へ進む。
【０１３０】
Ｓ８０２では、アプリケーション１００３は、情報取得処理の中で、独自インタフェースを用いる必要がないインタフェースにより情報の取得処理を実行する。
【０１３１】
そして、Ｓ８０３で、アプリケーション１００３は、独自インタフェースであることを示すタグと独自インタフェースで行う情報取得処理を記載した印刷設定を作成する。
【０１３２】
次に、Ｓ８０４で、Ｓ８０３で作成した印刷設定をバリデイトするために、ダミードライバ１００４を介してプリンタドライバ１００５に送信する。
【０１３３】
そして、Ｓ８０５で、アプリケーション１００３は、Ｓ８０４によりバリデイトされた印刷設定を使って、より具体的には、バリデイト結果内の変換済みの命令を取得して、情報取得処理を実行して、本処理を終了する。
【０１３４】
一方、Ｓ８０６では、独自インタフェースがないため、アプリケーション１００３は、共通インタフェース１００８を使って、情報取得処理を行い、本処理を終了。
【０１３５】
これにより、アプリケーションが、システムの構成上の都合でプリンタドライバに直接アクセスできない場合に、独自インタフェースが使える環境とほぼ同じ密接な連携を行うことが可能となる。また、プリンタドライバの都合など他の理由で、独自インタフェースが使えなくなった場合でも同様に、独自インタフェースが使える環境とほぼ同じ密接な連携を行うことが可能となる。
【０１３６】
〔第２実施形態〕
図１１は、本実施形態を示す印刷システムのモジュール構成を説明するブロック図である。本例は、同一のコンピュータ９０１に、アプリケーション９０２とプリンタドライバ９０４が存在するが、第１実施形態とは別の要因で、共通インタフェース９０３のみしか使えない環境を想定している例である。
【０１３７】
ここで、独自インタフェース９０７が使えない要因とは、以下を想定している。
【０１３８】
要因（１）
プリンタドライバが独自インタフェースを持っていない場合
要因（２）
プリンタドライバが独自インタフェースを別の独自インタフェースに変更した場合
このように構成された印刷システムの環境で、アプリケーション９０２とプリンタドライバ９０４が密接な連携を行うための方法を示す。
【０１３９】
図１１において、アプリケーション９０２に、アクセス可能なプリンタドライバ９０４で使用できない独自インタフェースで設定する印刷設定がある場合、独自インタフェースの記載を、共通インタフェース９０３のフォーマット内に埋め込む処理を追加する。
【０１４０】
この埋め込み処理は、独自インタフェース９０７の記載だけでなく、独自インタフェースであることを示すタグを合わせて埋め込む（図１２参照）。
【０１４１】
加えて、アプリケーション９０２に、共通インタフェース９０３を用いて、プリンタドライバ９０４に対し印刷設定フォーマットのバリデイト（検証）を行う処理（図８参照）を追加する。
【０１４２】
具体的には、図１２の（１）に示すように、独自インタフェースの記載を共通インタフェースのフォーマットに埋め込む処理を行う。
【０１４３】
加えて、アプリケーション９０２に、印刷の際、バリデイト処理で置き換えられた印刷設定と共通インタフェース９０３を用いて、プリンタドライバ９０４に印刷を行う処理を追加する。
【０１４４】
プリンタドライバ９０４には、バリデイト対象の印刷設定フォーマットの中に、独自インタフェースであることを示すタグがあった場合、共通インタフェースで利用可能な記載に置き換える処理をバリデイト処理へ追加する（図９参照）。
【０１４５】
図１２の（２）は、独自インタフェースの記載を共通インタフェースの記載に置換えた例である。
【０１４６】
上記処理を追加することで、独自インタフェースを用いて行っていた密接な連携と同等の連携を行うことが可能となる。また、情報取得に関しても印刷設定と同様に、バリデイトを行う際の印刷設定フォーマットの中に独自インタフェースの情報取得指示を埋め込むことで、共通インタフェースを使って情報取得処理（図８参照）が可能となる。ここで、取得される情報とは、現在のプリンタドライバの設定値や、設定項目が含まれる。
【０１４７】
図１２は、図１１に示した印刷システムにおける印刷設定ファイルの一例を示す図である。本例は、共通インタフェースで利用可能な印刷設定フォーマットの中に、情報取得用の独自インタフェースを埋め込む際の例と、置換え後の例である。（１）が置換え前の例で、（２）が置換え後の例である。
【０１４８】
図１２の（１）において、１２００１、１２００５は、１２００１と１２００５の間の記載が置換え対象であることを示すタグである。
【０１４９】
１２００２、１２００４は、１２００２と１２００４の間の記載が文字列であることを示すタグである。
【０１５０】
１２００３は、独自インタフェースで現在のステイプル位置を取得するための指示である。
【０１５１】
図１２の（２）において、１２０１１、１２０１７は、１２０１１と１２０１７の間の記載が置換え終了された記載であることを示すタグである。
【０１５２】
１２０１２、１２０１６は、１２０１２と１２０１６の間の記載が文字列であることを示すタグである。
【０１５３】
１２０１３は、現在のステイプル位置を取得するための指示である。
【０１５４】
上記実施形態によれば、アプリケーションが取得した印刷設定をターミナルサーバ内の記憶装置に保持しておくので、変換後の印刷設定が対応しているインタフェースのプリンタドライバであれば、特別な対応を行わなくても、プリンタ固有の印刷設定や情報取得を行うことが可能になる。
【０１５５】
〔第３実施形態〕
以下、図１３に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１５６】
図１３は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１５７】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１５８】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１５９】
本実施形態における図８、図９、図１０に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１６０】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１６１】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１６２】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１６３】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１６４】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１６５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１６６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１６７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６９】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０１７０】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０１７１】
【図１】本発明の実施形態を示す印刷システムの構成を説明するブロック図である。
【図２】本発明の実施形態を示す印刷システムの構成を説明するブロック図である。
【図３】図２のターミナルサーバおよびターミナルクライアントから構成される印刷システムにおける印刷データの流れを説明するのブロック図である。
【図４】一般的な印刷システムのモジュール構成を説明するブロック図である。
【図５】図２に示した印刷システムにおける印刷設定ファイルの一例を示す図である。
【図６】本実施形態を示す印刷システムにおけるモジュールの構成を説明するブロック図である。
【図７】本実施形態を示す印刷システムにおける他のモジュールの構成を説明するブロック図である。
【図８】本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図９】本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１０】本実施形態を示す情報処理装置における第３のデータ処理手順の一例を示すフローチャートである。
【図１１】本実施形態を示す印刷システムのモジュール構成を説明するブロック図である。
【図１２】図１１に示した印刷システムにおける印刷設定ファイルの一例を示す図である。
【図１３】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１７２】
１０１  ターミナルサーバ
１０２  ターミナルクライアント
１０３  アプリケーション
１０４  ダミードライバ
１００５  プリンタドライバ
【図１】
0005025513.tif 000002
【図２】
0005025513.tif 000003
【図３】
0005025513.tif 000004
【図４】
0005025513.tif 000005
【図５】
0005025513.tif 000006
【図６】
0005025513.tif 000007
【図７】
0005025513.tif 000008
【図８】
0005025513.tif 000009
【図９】
0005025513.tif 000010
【図１０】
0005025513.tif 000011
【図１１】
0005025513.tif 000012
【図１２】
0005025513.tif 000013
【図１３】
0005025513.tif 000014