(57)【特許請求の範囲】
【請求項１】
第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、
前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、
前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、前記印刷装置へ送信し、
前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記印刷装置から当該印刷装置が対応するデータ形式の情報を取得する取得手段を更に有し、
前記判定手段は、前記取得手段にて取得した情報を用いて判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アプリケーションに対し、前記判定手段による判定結果を通知する通知手段を更に有することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記アプリケーションが生成するデータのデータ形式を確認する確認手段を更に有し、
前記送信手段は、前記確認手段による確認の結果、前記アプリケーションが前記第一のデータ形式のデータのみを生成するアプリケーションの場合、前記アプリケーションが生成する前記第一のデータ形式のデータをそのまま前記印刷装置に送信することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第一のデータ形式は、ＰｏｓｔＳｃｒｉｐｔ、またはＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）であることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第二のデータ形式は、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）であることを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置における制御方法であって、
前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定工程と、
前記判定工程にて前記第二のデータ形式に対応していると判定された場合に前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、前記印刷装置へ送信し、
前記判定工程にて前記第二のデータ形式に対応していないと判定された場合に前記アプリケーションが生成した前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信工程と
を有することを特徴とする制御方法。
【請求項８】
前記第二のデータ形式は、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）であることを特徴とする請求項７に記載の制御方法。
【請求項９】
コンピュータを、
第一のデータ形式に対応した印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段、
前記判定手段にて前記第二のデータ形式に対応していると判定された場合にアプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、前記印刷装置へ送信し、
前記判定手段にて前記第二のデータ形式に対応していないと判定された場合に前記アプリケーションが生成した前記第二のデータ形式のデータを、前記第一のデータ形式の形式に変換して前記印刷装置へ送信するよう制御する送信手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、情報処理装置およびその制御方法、並びにプログラムに関する。特に、クライアントコンピュータと接続されたデジタル複写機などの印刷装置に対し、印刷データを作成し、送信する際の技術に関する。
【背景技術】
【０００２】
従来、クライアントコンピュータが備えるプリンタドライバは、当該クライアントコンピュータにインストールされている各種アプリケーションから印刷指示を受け、ネットワークに接続されているプリンタに対する印刷データを作成する。一方、アプリケーションの中には、プリンタドライバに印刷データを作成させることなく、プリンタが処理可能なプリンタ言語の印刷データを直接が作成できるものが存在する。このアプリケーションが作成した印刷データは、プリンタドライバを介してそのままプリンタに送信することができる。本明細書では、このアプリケーションのことを以降、パススルーアプリケーションと呼ぶ。
【０００３】
代表的なパススルーアプリケーションのひとつとして、Ａｄｏｂｅ社のＡｃｒｏｂａｔ（登録商標）がある。Ａｃｒｏｂａｔ（登録商標）などのパススルーアプリケーションは、印刷実行時などに、印刷に使用されるプリンタドライバがＰｏｓｔＳｃｒｉｐｔ（以下、ＰＳ）パススルーに対応しているかどうかの問い合わせをプリンタドライバに対して行う。問い合わせを受けたプリンタドライバは、ＰＳパススルーに対応している場合、問い合わせを発信したアプリケーションに対して、自身がＰＳパススルーに対応していることを返信する。この場合、パススルーアプリケーションは自ら、プリンタが処理可能なＰＳコマンドを生成する。そして、パススルーアプリケーションは、ＰＳパススルーに対応しているプリンタドライバのポートとして指定されているプリンタに対して、そのＰＳ形式のデータをそのまま送信する仕組みとなっている。
【０００４】
パススルーアプリケーションが、印刷に使用されるプリンタドライバがＰＳパススルーに対応しているかどうかの問い合わせを行う手段としては様々なものがある。例えば、Ｗｉｎｄｏｗｓ（登録商標）では、プリンタエスケープ関数のＰＯＳＴＳＣＲＩＰＴ＿ＰＡＳＳＴＨＲＯＵＧＨの設定を参照することで、プリンタドライバがＰＳパススルーに対応しているかどうかを判断する。
【０００５】
一方、プリンタドライバが、ＰＳパススルーに非対応の場合は、クライアントコンピュータが有するオペレーティングシステム（以下、ＯＳ）上で定義されているＯＳ標準の描画方式により、プリンタドライバに対して印刷データの作成命令が発行される。なお、ＰＳパススルーに対応したプリンタドライバは、ＰＯＳＴＳＣＲＩＰＴ＿ＰＡＳＳＴＨＲＯＵＧＨの設定を意図的に“Ｏｆｆ”とすることもできる。この場合、ＰＳパススルーアプリケーションは、ＯＳ標準の描画方式で印刷命令を発行することになる。つまり、プリンタドライバがＰＳパススルーに対応していたとしても、ＰＳパススルー非対応のプリンタドライバと同様の描画方法を行うことも可能である。
【０００６】
また、特許文献１では、コンピュータにおいて、ＰＳ形式のデータをアプリケーションが生成し、ＰＳに対応していない非ポストスクリプトプリンタが指定された場合に、印刷システム２０８がＰＳ形式のデータをＰＣＬ、ＰＪＬといった非ポストスクリプト形式のデータに変換、生成する技術の開示がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２２６８０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、パススルーアプリケーションが作成する印刷データをプリンタに送信する場合において、プリンタドライバが作成する印刷データは特定の書式（以降、固定フォーマット）に限定される場合がある。この固定フォーマットの例として、印刷システムを構築しているＯＳがＷｉｎｄｏｗｓ（登録商標）環境では、ＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ）やＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）などがある。例えば、この印刷システムでは、固定フォーマットとしてＸＰＳ形式で印刷データを扱うように一貫して構築されているケースが想定される。
【０００９】
このような条件を有する印刷システムでは、例えば前述したＰＳを用いたパススルー印刷が実現できない、という課題があった。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明において、第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、前記印刷装置へ送信し、前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段とを有する。
【発明の効果】
【００１１】
本発明により、クライアント装置は、印刷装置が対応可能なデータ形式に応じた印刷データを作成できる。
【図面の簡単な説明】
【００１２】
【図１】印刷システムの構成例を示す図。
【図２】クライアントコンピュータの構成例を示すブロック図。
【図３】プリンタドライバのモジュール構成例を示す図。
【図４】ブリタンドライバのインストール方法を示すフローチャート。
【図５】印刷システムの従来構成例を示す図。
【図６】第一実施形態に係る印刷システムの構成図。
【図７】第一実施形態に係るフローチャート。
【図８】第一実施形態に係る印刷データ遷移と構造を示す図。
【図９】第二実施形態に係る印刷システムの構成図。
【図１０】第二実施形態に係るフローチャート。
【図１１】第二実施形態に係る印刷データ遷移と構造を示す図。
【発明を実施するための形態】
【００１３】
＜第一実施形態＞
図１〜図８は本発明に係る第一実施形態を示すものである。
【００１４】
［システム構成］
図１は、本発明が適用可能な印刷システムの構成例を示す図である。図１において、情報処理装置であるクライアントコンピュータ１０１、および印刷装置であるプリンタ１０２、１０３が、ネットワーク１０４を介して接続される。クライアントコンピュータ１０１にはオペレーティングシステム（以下、ＯＳ）、アプリケーション、およびプリンタドライバがインストールされている。この印刷システムにおいて、ユーザはクライアントコンピュータ１０１から印刷データをプリンタ１０２、１０３に送信し、印刷することができる。
【００１５】
図２は、クライアントコンピュータ１０１の内部ブロック図である。クライアントコンピュータ１０１内部は、中央演算装置（ＣＰＵ）２０３、揮発性メモリであるＲＡＭ２０４、不揮発性メモリであるＲＯＭ２０５を有する。更に、クライアントコンピュータ１０１は、キーボードコントローラ２０６、マウスコントローラ２０７、ビデオコントローラ２０８、外部記憶装置コントローラ２０９、外部メディア装置コントローラ２１０、ネットワークＩ／Ｆコントローラ２１１から構成される。またユーザがクライアントコンピュータ１０１を操作するためのキーボード２１２およびマウス２１３はそれぞれ、キーボードコントローラ２０６およびマウスコントローラ２０７に接続される。表示装置２１４は、ビデオコントローラ２０８に接続される。
【００１６】
また、大容量のデータを保存するための不揮発性の外部記憶装置２１５は、外部記憶装置コントローラ２０９に接続され、アプリケーションやデータの読み書きが行われる。また、外部メディア装置コントローラ２１０は、アプリケーションやドライバソフトウエアなどがメディア（ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ）などで提供される場合、外部メディア制御装置２１６にセットされたメディアから、プログラムを読み込むことができる。なお、クライアントコンピュータ１０１は、図１で説明したネットワーク１０４にネットワークＩ／Ｆコントローラ２１１を介して接続され、他の機器と通信が行われる。
【００１７】
通常、クライアントコンピュータ１０１を起動するための初期プログラムやクライアントコンピュータ１０１の各モジュールを制御するための基本的なプログラム（不図示）はＲＯＭ２０５に保存されている。またＯＳやアプリケーション、プリンタドライバは、外部記憶装置２１５に保存されている。クライアントコンピュータ１０１の電源が投入されると、まずＲＯＭ２０５に保存されているクライアントコンピュータ１０１を起動するためのプログラム（ブートローダ）が実行される。そして、そのプログラムが外部記憶装置２１５に保存されているＯＳをＲＡＭ２０４にロードし、その後、制御権をＯＳに渡す。ＯＳは、必要なモジュールやドライバをさらに外部記憶装置２１５からＲＡＭ２０４に読み込む。さらにユーザの指示により、ＯＳは、必要なアプリケーションを外部記憶装置２１５からＲＡＭ２０４に読み込み、実行する。
【００１８】
本実施形態では、プリンタドライバおよびプリンタドライバのインストーラはＣＤ−ＲＯＭなどの外部メディアで供給されるものとする。これに伴い、ユーザが外部メディア制御装置２１６にＣＤ−ＲＯＭなどをセットすることで、ＣＰＵ２０３が必要に応じてＲＡＭ２０４に読み込んだり、外部記憶装置２１５に保存したりする。
【００１９】
［プリンタドライバ］
次にプリンタドライバについて説明する。インストールする際に用意されるプリンタドライバは、例えば、図３に示すようなモジュール群で構成されている。プリンタドライバ３０１は、グラフィックレンダリングモジュール３０２、ＵＩ制御モジュール３０３、プリンタ仕様記述ファイル３０４、色処理モジュール３０５、入出力制御モジュール３０６から構成される。なお、上記構成に限定するものではなく、プリンタドライバの機能によってはこの他のモジュールから構成されることもある。
【００２０】
プリンタドライバにはいくつかの作成の仕方がある。例えば、ひとつのプリンタドライバで複数のプリンタを対応するために、グラフィックレンダリングモジュール３０２およびＵＩ制御モジュール３０３を複数のプリンタに対応できるように作成する。また、プリンタ仕様記述ファイル３０４に関しては、対応しているプリンタの分だけ、プリンタドライバに同梱しておく。このような方法では、ＵＩ制御モジュール３０３は、プリンタ仕様記述ファイル３０４に合わせてＵＩを表示、制御する。またグラフィックレンダリングモジュール３０２は、各プリンタに合わせたページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）およびプリンタ制御コマンドを発行するような構成となる。
【００２１】
［プリンタドライバインストール］
次に、上述したような構成のプリンタドライバをクライアントコンピュータ１０１へインストールする手順を説明する。図４はプリンタドライバのインストール手順を示したものである。ユーザは、プリンタドライバ３０１が格納されたＣＤ−ＲＯＭを準備するか、ネットワーク経由でプリンタドライバインストーラ（不図示）を入手しているものとする。
【００２２】
Ｓ４０１において、ユーザは、入手したプリンタドライバインストーラ（不図示）を起動する。この動作を起因としてＳ４０２において、プリンタドライバインストーラは、プリンタドライバモジュールを外部記憶装置２１５の所定の場所に格納する。プリンタドライバモジュールの格納場所は印刷システムによって異なる。例えば、Ｗｉｎｄｏｗｓ７（登録商標）では、
￥Ｗｉｎｄｏｗｓ￥ｓｙｓｔｅｍ３２￥ｓｐｏｏｌ￥ｄｒｉｖｅｒｓ￥ｗ３２ｘ８６
などのディレクトリ配下にプリンタドライバモジュールを格納する設定となっている。
【００２３】
プリンタドライバインストーラは、プリンタドライバモジュールを外部記憶装置２１５の上記のような所定のディレクトリに格納する。これでプリンタドライバのインストールは完了する。
【００２４】
［プリンタドライバ設定内容の保持方法］
プリンタドライバは、インストール時にドライバ内部で保持している初期設定情報を、クライアントコンピュータ１０１の全ての設定内容に対して割り当てる。これらの内容は、下記のレジストリと呼ばれる、ＯＳが管理する記憶手段に登録される。
ＨＫＥＹ＿ＣＵＲＲＥＮＴ＿ＵＳＥＲ￥Ｓｏｆｔｗａｒｅ
ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ￥ＳＯＦＴＷＡＲＥ￥
ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ￥ＳＹＳＴＥＭ￥
【００２５】
ここで、本実施形態においては、ユーザインタフェースアプリケーションも、プリンタドライバと共に提供される。このユーザインタフェースアプリケーションの機能および動作については後述するが、必ずしもプリンタドライバと１対１の関係に有るものではなく、複数のプリンタドライバに対して１つのユーザインタフェースアプリケーションが対応してもよい。また、プリンタドライバのインストール時にすでに、クライアント端末にユーザインタフェースアプリケーションがインストールされている場合には、これを追加でインストールする必要はない。
【００２６】
［印刷の開始から終了までの動作（従来例）］
図５を用いて、アプリケーションから印刷の指示が開始されてから、印刷装置が印刷データを処理するまでの従来技術の動作について説明する。図５では、固定フォーマットとして、例えばＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）を用いるものとして説明する。また、プリンタ５０２が対応しているプリンタ言語としては、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ）を用いて説明する。
【００２７】
クライアントコンピュータ５０１には、文書作成、あるいはドロー系、表計算などのアプリケーション５０３がインストールされている。アプリケーション５０３から印刷を実行する場合、クライアントコンピュータ５０１にインストールされているＰＳプリンタドライバ５０４に対して、印刷データの作成指示がなされる。この際、上述の通り、ＰＳパススルーに対応したアプリケーションは、印刷に使用されるＰＳプリンタドライバ５０４がＰＳパススルーに対応していると判断した場合、アプリケーション５０３自らがＰＳ形式の印刷データ５０６を作成する。
【００２８】
ＰＳプリンタドライバ５０４は、アプリケーション５０３により作成されたＰＳ形式の印刷データ５０６のパススルーを行う。具体的には、ＰＳプリンタドライバ５０４は、アプリケーション５０３が作成した、ＰＳ形式の印刷データ５０６を加工することなく、そのままＰＳプリンタドライバ５０４の出力先として設定されている印刷ポートに送信する。そして、プリンタ５０２は、パススルーが行われたＰＳ形式の印刷データ５０８の記述内容に基づいて、描画データに展開し、印刷を実行する。このとき、図５に示すＰＳ形式の印刷データ５０６と印刷データ５０８とは、同じものである。
【００２９】
一方、印刷に使用するプリンタドライバがＰＳパススルーに対応していないと判断された場合、アプリケーション５０３自らはＰＳ形式の印刷データを作成することなく、ＯＳの標準描画データフォーマットであるＸＰＳ形式の印刷データ５０５を送信する。そして、アプリケーション５０３は、ＰＳプリンタドライバ５０４に印刷データの作成指示を行う。
【００３０】
ＰＳプリンタドライバ５０４は、アプリケーション５０３が送信したＸＰＳ形式の印刷データ５０５をもとに、プリンタ５０２が解釈可能なプリンタ言語であるＰＳ形式の印刷データ５０７を作成する。プリンタ５０２は、ＰＳ形式の印刷データ５０７の記述内容に基づいて、描画データに展開し、印刷を実行する。
【００３１】
なお、ＸＰＳの他に、例えばＷｉｎｄｏｗｓ７（登録商標）などでは従来ＯＳから使用されているＧＤＩ（Ｇｒａｐｈｉｃａｌ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）が描画指示の手法として挙げられる。
【００３２】
［印刷の開始から終了までの動作（本願発明）］
ここで、本願発明の対象となる固定フォーマットで印刷データが扱われる印刷システムを図６に示す。また、印刷システムにおけるフローチャートを図７に示す。図６と図７において、同じ参照番号にて示しているものは、同じ処理を意味しているものとする。ここでも、固定フォーマット（第一のデータ形式）をＸＰＳとし、プリンタ言語（第二のデータ形式）をＰＳとしたケースで説明する。また、アプリケーション６０３は、パススルーアプリケーションであり、その機能として、ＰＳ形式のデータを固定フォーマットに内包させたデータ構造で印刷データを作成することができることを前提とする。
【００３３】
なお、ここでの「内包」とは、固定フォーマット（ここでは、ＸＰＳ）の印刷データ内に、異なる形式のプリンタ言語（ここでは、ＰＳ）のデータを含めることを意味する。言い換えると、ＰＳのデータをＸＰＳの形式のデータに含めることでパッケージ化している。これにより、その印刷データを固定フォーマットのデータとして扱うことを可能にしている。情報処理装置内では、その印刷データを一旦、固定フォーマットの印刷データとして扱い、その後にプリンタは内包されたプリンタ言語の印刷データを取り出して処理することができる。
【００３４】
クライアントコンピュータ６０１には、文書作成、あるいはドロー系、表計算などのアプリケーション６０３がインストールされている。アプリケーション６０３から印刷を実行する場合、クライアントコンピュータ６０１にインストールされているＰＳプリンタドライバ６０４に対して、事前に印刷データの作成指示がなされる。このとき、ＰＳプリンタドライバ６０４はアプリケーション６０３から、ＰＳパススルーに対応しているかどうかの問い合わせを受ける（ステップ０１、以下、Ｓ０１と表記）。
【００３５】
上記問い合わせを受信すると、ＰＳプリンタドライバ６０４は、各種印刷設定などを変更できるユーザインタフェースアプリケーション（図６ではＡｄｖａｎｃｅｄ  ＵＩ  Ａｐｐｌｉｃａｔｉｏｎ、以降ＡＵＩＡ）６０５を起動する（Ｓ０２）。そして、ＡＵＩＡ６０５は、印刷先として予め指定されているプリンタ６０２に、ＸＰＳをサポートしているか否かを問い合わせる（Ｓ０３）。ここで、ＸＰＳをサポートしているかの問い合わせとは、例えば、ＸＰＳコントローラを装着している状態か、あるいはＸＰＳを解釈可能なモジュールが使用可能な状態であるかなどを問い合わせることを指す。
【００３６】
ＡＵＩＡ６０５は、印刷に使用するプリンタ６０２がＸＰＳをサポートしているかどうかの情報を取得した後、ＰＳプリンタドライバ６０４に通知する（Ｓ０４）。また、ＡＵＩＡ６０５は、印刷に使用するプリンタ６０２がＸＰＳをサポートしているかどうかの情報と併せて、印刷データを作成する上で必要な設定情報６０６を生成し、アプリケーション６０３に渡す（Ｓ０５）。なお、ここでの設定情報６０６とは、例えば、ＰｒｉｎｔＴｉｃｋｅｔやＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（図６では“ＰＴ／ＰＣ”と表記）が挙げられる。
【００３７】
ＰＳプリンタドライバ６０４は、ＡＵＩＡ６０５から受信した、印刷に使用するプリンタ６０２がＸＰＳをサポートしているかどうかの情報をもとに、自らがＰＳパススルーに対応するかどうかの判定結果をアプリケーション６０３に対して通知する（Ｓ０６）。本実施形態では、印刷に使用するプリンタ６０２がＸＰＳをサポートしている場合は、アプリケーション６０３に対して、ＰＳプリンタドライバ６０４は自らがＰＳパススルーに対応していることを通知する。そうでない場合は、ＰＳプリンタドライバ６０４は、自らがＰＳパススルーに対応していないことを通知する。
【００３８】
アプリケーション６０３は、ＰＳプリンタドライバ６０４から受信した通知（返信情報）から、印刷に使用するＰＳプリンタドライバ６０４がＰＳパススルーに対応しているか否かを判定する。ＰＳプリンタドライバ６０４がＰＳパススルーに対応している場合（Ｓ０６にてＹＥＳ）、従来の動作のように、アプリケーション６０３自らがＰＳ形式の印刷データを作成する。なお、この場合、印刷システム内では固定フォーマットで扱われることに対応するため、アプリケーション６０３は、自ら作成したＰＳ形式の印刷データを固定フォーマットであるＸＰＳ形式のデータに内包させる（図８の印刷データ８０１）。そして、アプリケーション６０３は、印刷データ６０７としてＰＳプリンタドライバ６０４に送信する（Ｓ０７）。
【００３９】
ＰＳプリンタドライバ６０４は、アプリケーション６０３が作成したＰＳ形式の印刷データが内包されたＸＰＳ形式の印刷データを加工することなく、そのままＰＳプリンタドライバ６０４の出力先として設定されている印刷ポートに送信する（Ｓ０９）。つまり、ＰＳプリンタドライバ６０４は、印刷データを図６の印刷データ６０９として、プリンタ６０２に送信する。そして、プリンタ６０２は、印刷データ６０９の記述内容に基づいて、内包されているＰＳ形式の印刷データを抽出し、描画データに展開し、印刷を実行する。
【００４０】
一方、印刷に使用するＰＳプリンタドライバ６０４がＰＳパススルーに非対応のプリンタドライバである場合（Ｓ０６にてＮＯ）、アプリケーション６０３はＰＳ形式の印刷データを作成しない。この場合、アプリケーション６０３は、ＸＰＳ形式の印刷データを印刷データ６０７としてＰＳプリンタドライバ６０４へ送信する。そして、アプリケーション６０３は、ＰＳプリンタドライバ６０４に印刷データの作成指示を行う。つまり、ＰＳプリンタドライバ６０４は、ＸＰＳ形式で指示された印刷データ６０７を元に、ＰＳ形式の印刷データ６０８に変換する（Ｓ０８）。そして、Ｓ０９にて、ＰＳプリンタドライバ６０４は、ＰＳ形式に変換した印刷データ６０８を印刷データとして、プリンタ６０２へ送信する。その後、プリンタ９０２は、ＰＳプリンタドライバ９０４により変換されたＰＳ形式の印刷データ９０８の記述内容に基づいて、描画データに展開し、印刷を実行する。以上により、処理を終了する。
【００４１】
図８は、本実施形態における、プリンタドライバが処理する前後の各印刷データの状態を表したものである。印刷データ８０１は、プリンタがＸＰＳに対応している場合にアプリケーションが生成するデータ構造である。印刷データ８０１は、ＸＰＳ形式の印刷データにＰＳ形式の印刷データが内包されていることを表し、ＰＳプリンタドライバ８１０はパススルー時に、その印刷データを加工することなく、そのまま印刷データ８０３としてプリンタ６０２に送信する。
【００４２】
一方、印刷データ８０２は、プリンタがＸＰＳ形式に非対応である場合にアプリケーションが生成するデータ形式（ここではＸＰＳ形式）である。アプリケーションは、ＸＰＳ形式の印刷データ８０２を生成し、ＰＳプリンタドライバ８１０に渡す。そのため、ＰＳプリンタドライバ８１０は、アプリケーションから取得したＸＰＳ形式の印刷データ８０２をＰＳ形式の印刷データ８０４に変換する。
【００４３】
以上により、印刷システムにおいて、印刷手段であるプリンタの状態に応じて適切なデータ形式の印刷データを作成できる。
【００４４】
なお、本実施形態において、プリンタが実行可能なプリンタ言語として、ＰｏｓｔＳｃｒｉｐｔを例にとって述べたが、これに限定するものではない。例えば、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）などの他のＰＤＬを用いても構わない。また、ＸＰＳの代わりにＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ）を用いても構わない。
【００４５】
また、ユーザインタフェースアプリケーションは、本実施形態において、プリンタへの問い合わせおよび印刷設定の受付等の機能を有していたが、これに限定されるものではない。例えば、クライアント端末にインストールされたプリンタドライバが共通して有している機能を、ユーザインタフェースアプリケーションに実行させるように構成し、プリンタドライバそれぞれの機能をより簡略化するように構成しても構わない。
【００４６】
＜第二実施形態＞
図１〜図４および図９〜図１１は、第二実施形態を示すものである。なお、図１〜図４は第一実施形態と同様であるため、説明は省略する。
【００４７】
本実施形態に係る固定フォーマットで印刷データが扱われる印刷システムを図９に示す。また、印刷システムにおけるフローチャートを図１０に示す。図９と図１０において、同じ参照番号にて示しているものは、同じ処理を意味しているものとする。ここでも、固定フォーマットをＸＰＳとし、プリンタ言語をＰＳとしたケースで説明する。
【００４８】
クライアントコンピュータ９０１には、文書作成、あるいはドロー系、表計算などのアプリケーション９０３がインストールされている。アプリケーション９０３から印刷を実行する場合、クライアントコンピュータ９０１にインストールされているＰＳプリンタドライバ９０４に対して、事前に印刷データの作成指示がされる。このとき、ＰＳプリンタドライバ９０４は、アプリケーション９０３からＰＳパススルーに対応したプリンタドライバかどうかの問い合わせを受ける（Ｓ１１）。
【００４９】
上記問い合わせを受信すると、ＰＳプリンタドライバ９０４は、問い合わせをしてきたアプリケーション９０３の名称やバージョンの情報から、当該アプリケーションに関する判定を行う。具体的には、このアプリケーション９０３が、ＰＳ形式の印刷データを固定フォーマットに内包させた印刷データを発行するアプリケーションか、ＰＳ形式の印刷データのみを発行するアプリケーションかどうかを確認する。なお、ＰＳプリンタドライバ９０４が、問い合わせしてきたアプリケーションの情報を取得する手段として、例えば、Ｗｉｎｄｏｗｓ  ＯＳではＧｅｔＰａｒｅｎｔ関数などがある。また、例えば、問い合わせにより取得した情報と、予め保持しているリスト等に登録された情報とに基づいて、アプリケーションの機能を確認するようにしても構わない。
【００５０】
上記確認の結果、アプリケーション９０３がＰＳ形式の印刷データのみを発行するものである場合（Ｓ１２にてＹＥＳ）、ＰＳプリンタドライバ９０４は、アプリケーション９０３が発行したＰＳ形式のみの印刷データを加工しない。この場合、アプリケーション９０３は、受信したＰＳ形式の印刷データをそのままＰＳプリンタドライバ９０４の出力先として設定されている印刷ポートに送信する（Ｓ１３）。
【００５１】
一方、アプリケーション９０３がＰＳ形式の印刷データのみを発行するものでない場合（Ｓ１２にてＮＯ）、ＰＳプリンタドライバ９０４は、各種印刷設定などを変更できるＡＵＩＡ９０５を起動する（Ｓ１４）。そして、ＡＵＩＡ９０５は、印刷先として予め指定されているプリンタ９０２に、ＸＰＳをサポートしているか否かを問い合わせる（Ｓ１５）。ここでの問い合わせは、第一の実施形態と同様である。
【００５２】
ＡＵＩＡ９０５は、印刷に使用するプリンタ９０２がＸＰＳをサポートしているかどうかの情報を取得した後、ＰＳプリンタドライバ９０４に通知する（Ｓ１６）。また、ＡＵＩＡ９０５は、印刷に使用するプリンタ９０２がＸＰＳサポートしているかどうかの情報と併せて、印刷データを作成する上で必要な設定情報９０６を生成し、アプリケーション９０３に渡す（Ｓ１７）。なお、ここで用いられる設定情報９０６は、第一の実施形態と同様である。
【００５３】
ＰＳプリンタドライバ９０４は、ＡＵＩＡ９０５から受信した、印刷に使用するプリンタ９０２がＸＰＳをサポートしているかどうかの情報をもとに、アプリケーション９０３に対して、自らがＰＳパススルーに対応しているかどうかの返信を行う（Ｓ１８）。ここでの返信は、第一の実施形態と同様である。
【００５４】
アプリケーション９０３は、ＰＳプリンタドライバ９０４から受信した通知（返信情報）から、印刷に使用するＰＳプリンタドライバ９０４がＰＳパススルーに対応しているか否かを判定する。ＰＳプリンタドライバ９０４がＰＳパススルーに対応している場合（Ｓ１８にてＹＥＳ）、従来技術での動作で説明したように、アプリケーション９０３自らがＰＳ形式の印刷データ９０７を作成する。なお、この場合、印刷システム内では固定フォーマットで扱われることに対応するため、アプリケーション９０３は、自ら作成したＰＳ形式の印刷データを固定フォーマットに内包させる（図１１の印刷データ１１０２）。そして、アプリケーション９０３は、印刷データ９０７としてＰＳプリンタドライバ９０４に送信する（Ｓ１９）。
【００５５】
ＰＳプリンタドライバ９０４は、アプリケーション９０３が作成したＰＳ形式の印刷データが内包されたＸＰＳ形式の印刷データを加工することなく、そのままＰＳプリンタドライバ９０４の出力先として設定されている印刷ポートに送信する（Ｓ２１）。つまり、ＰＳプリンタドライバ９０４は、印刷データを図９の印刷データ９０９として、プリンタ９０２に送信する。そして、プリンタ９０２は、印刷データ９０９の記述内容に基づいて、内包されているＰＳデータを抽出し、描画データに展開し、印刷を実行する。
【００５６】
一方、印刷に使用するＰＳプリンタドライバ９０４がＰＳのパススルーに非対応のプリンタドライバである場合（Ｓ１８にてＮＯ）、アプリケーション９０３はＰＳ形式の印刷データを作成しない。この場合、アプリケーション９０３は、ＸＰＳ形式の印刷データを印刷データ９０７としてＰＳプリンタドライバ９０４へ送信する。つまり、ＰＳプリンタドライバ９０４は、ＸＰＳ形式で指示された印刷データ６０７を元に、ＰＳ形式の印刷データ９０８に変換する（Ｓ２０）。そして、Ｓ２１にて、ＰＳプリンタドライバ９０４は、ＰＳ形式に変換した印刷データ９０８を印刷データとして、プリンタ９０２へ送信する。プリンタ９０２は、ＰＳプリンタドライバ９０４により変換されたＰＳ形式の印刷データ９０８の記述内容に基づいて、描画データに展開し、印刷を実行する。
【００５７】
図１１は、本実施形態における、プリンタドライバが処理する前後の各印刷データの状態を表したものである。印刷データ１１０１は、ＰＳ形式の印刷データのみのパススルーデータ構成である。また、印刷データ１１０２は、ＸＰＳ形式の印刷データにＰＳ形式の印刷データが内包されていることを表している。ＰＳプリンタドライバ１１１０は、ＰＳパススルー時に、印刷データを加工することなく、そのまま印刷データ１１０４、１１０５としてプリンタ９０２に送信する。
【００５８】
一方、印刷データ１１０３は、プリンタがＸＰＳ形式に非対応である場合にアプリケーションが生成するデータ形式（ここではＸＰＳ形式）である。アプリケーションは、ＸＰＳ形式の印刷データ１１０３を生成し、ＰＳプリンタドライバ１１１０に渡す。そのため、ＰＳプリンタドライバ１１１０は、アプリケーションから取得したＸＰＳ形式の印刷データ１１０３をＰＳ形式の印刷データ１１０６に変換する。
【００５９】
以上により、印刷システムにおいて、印刷手段の状態もしくはアプリケーションの機能に応じて適切なデータ形式の印刷データを作成できる。
【００６０】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005759290.tif 000002
【図２】
0005759290.tif 000003
【図３】
0005759290.tif 000004
【図４】
0005759290.tif 000005
【図５】
0005759290.tif 000006
【図６】
0005759290.tif 000007
【図７】
0005759290.tif 000008
【図８】
0005759290.tif 000009
【図９】
0005759290.tif 000010
【図１０】
0005759290.tif 000011
【図１１】
0005759290.tif 000012