(57)【要約】【課題】第１のプリンタドライバによって印刷を行いつつ、第２のプリンタドライバにおける機能を利用するのに好適な印刷制御装置、印刷制御方法、及び、プログラムを提供する。【解決手段】印刷制御装置として機能するホストコンピュータ１において、第１のプリンタドライバは、第１の形式の印刷対象の印刷をプリンタ２に実行させる。第２のプリンタドライバは、プリンタ２を出力先とし、第２の形式の印刷対象の印刷処理を行う。監視手段は、第２のプリンタドライバの印刷処理に応じてプリンタ２を監視する。制御手段は、第１のプリンタドライバが第１の形式の印刷対象の印刷をプリンタ２に実行させたことに応答して、第２のプリンタドライバに、プリンタ２に印刷を実行させないような制御命令を含んだ第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理に応じたプリンタ２の監視処理を監視手段に実行させる。【選択図】図１
2014071573.tif 000002
【特許請求の範囲】
【請求項１】
第１の形式の印刷対象の印刷をプリンタに実行させる第１のプリンタドライバと、
前記プリンタを出力先とし、第２の形式の印刷対象の印刷処理を行う第２のプリンタドライバと、
前記プリンタの状態を監視する監視手段と、
前記第１のプリンタドライバが前記第１の形式の印刷対象の印刷を前記プリンタに実行させたことに応答して、前記第２のプリンタドライバに、前記プリンタに印刷を実行させないような制御命令を含んだ前記第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理によって前記監視手段に前記プリンタの状態を監視する処理を実行させる制御手段と、
を備える印刷制御装置。
【請求項２】
前記第１のプリンタドライバは、ＧＤＩ（Graphics Device Interface）を介して前記第１の印刷対象から生成された描画データを前記プリンタのページ記述言語にレンダリングするＧＤＩプリンタドライバを有し、
前記第２のプリンタドライバは、前記第２の形式の印刷対象としてＸＰＳ（XML Paper Specification）形式の文書データの印刷処理を実行するＸＰＳプリンタドライバを有する、
ことを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記制御手段は、前記制御命令を前記ＸＰＳ形式の文書データに含まれるＰｒｉｎｔＴｉｃｋｅｔに記述することにより、前記第２のプリンタドライバを制御する、
ことを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記制御手段は、前記制御命令によって、前記第２のプリンタドライバに、データ容量が０のページ記述言語、又は前記プリンタに何も処理を実行させない命令を記述したページ記述言語を生成させ、該生成したページ記述言語を前記プリンタに送信させる、
ことを特徴とする請求項１乃至３のいずれか１項に記載の印刷制御装置。
【請求項５】
前記プリンタは、前記第１のプリンタドライバ及び前記第２のプリンタドライバからの印刷ジョブを受信し、前記監視手段の監視対象として物理的なプリンタを模擬する仮想プリンタである、
ことを特徴とする請求項１乃至４のいずれか１項に記載の印刷制御装置。
【請求項６】
前記監視手段によって得られた前記プリンタの状態を示す情報が所定の通知条件を満たしたか否かを判別する判別手段と、
前記判別手段が前記所定の通知条件が満たされたと判別した場合に、前記プリンタの状態を示す情報を該印刷制御装置のユーザに通知する通知手段と、
をさらに備えることを特徴とする請求項１乃至５のいずれか１項に記載の印刷制御装置。
【請求項７】
第１の形式の印刷対象の印刷をプリンタに実行させる第１のプリンタドライバと、前記プリンタを出力先とし、第２の形式の印刷対象の印刷処理を行う第２のプリンタドライバと、前記プリンタの状態を監視する監視手段と、を備える印刷制御装置を準備し、
前記第１のプリンタドライバが前記第１の形式の印刷対象の印刷を前記プリンタに実行させたことに応答して、前記第２のプリンタドライバに、前記プリンタに印刷を実行させないような制御命令を含んだ前記第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理によって前記監視手段に前記プリンタの状態を監視する処理を実行させる、
ことを特徴とする印刷制御方法。
【請求項８】
第１の形式の印刷対象の印刷をプリンタに実行させる第１のプリンタドライバと、前記プリンタを出力先とし、第２の形式の印刷対象の印刷処理を行う第２のプリンタドライバと、前記プリンタの状態を監視する監視手段と、を備えるコンピュータに、
前記第１のプリンタドライバが前記第１の形式の印刷対象の印刷を前記プリンタに実行させたことに応答して、前記第２のプリンタドライバに、前記プリンタに印刷を実行させないような制御命令を含んだ前記第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理によって前記監視手段に前記プリンタの状態を監視する処理を実行させる制御機能、
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ社（登録商標）のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおいて動作するアプリケーションからイメージやグラフィックやテキストを印刷装置にて印刷するための処理フローとして、ＧＤＩ（Graphics Device Interface）を経由したＧＤＩ印刷パスと、ＸＰＳ（XML Paper Specification）ドキュメントをスプールファイルとして使用するＸＰＳ印刷パスとがある。
【０００３】
ＧＤＩとは、Ｗｉｎｄｏｗｓ（登録商標）のサブシステムであり、アプリケーションがディスプレイやプリンタへのイメージやグラフィックやテキストの描画を行うために使用されるインターフェースである。ＧＤＩ印刷パスでは、アプリケーションが印刷実行時にＧＤＩを通して描画命令を実行すると、ＧＤＩが適切なＧＤＩプリンタドライバを呼び出して、ＰＤＬ（Page Description Language：ページ記述言語）へのレンダリング等の印刷処理を実行する。
【０００４】
ＸＰＳとは、電子文書の形式の１つであり、ＸＭＬ（Extensible Markup Language）等の業界標準を使用してクロスプラットフォームドキュメントを作成するためのオープンなドキュメント形式である。ＸＰＳは、電子文書の他、印刷スプールファイル、ＰＤＬとしても使用される。ＸＰＳ形式の印刷対象の印刷処理を行うプリンタドライバを、ＸＰＳプリンタドライバという。
【０００５】
Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおいてプリンタドライバが動作するシステムには、ＧＤＩプリンタドライバとＸＰＳプリンタドライバとのいずれかしか適用できないものがある。例えば非特許文献１には、Ｍｉｃｒｏｓｏｆｔ社（登録商標）のオペレーティングシステムであるＷｉｎｄｏｗｓ８（登録商標）がサポートするＶｅｒｓｉｏｎ４プリンタドライバモデル（以下、Ｖ４プリンタドライバと称する。）は、ＸＰＳプリンタドライバについては適用可能であるが、ＧＤＩプリンタドライバを適用できないことが開示されている。
【０００６】
Ｖ４プリンタドライバでは、ＧＤＩアプリケーションがイメージやグラフィックやテキストの印刷を行う場合、ＧＤＩアプリケーションからのＧＤＩへの描画命令がＭＸＤＣ（Microsoft XPS Document Converter）によってＸＰＳドキュメントに変換される。すなわち、ＧＤＩアプリケーションの印刷も、ＸＰＳドキュメントに変換されることによりＸＰＳ印刷パスを介して印刷される。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｄｅｖｅｌｏｐｉｎｇ  ｖ４  Ｐｒｉｎｔｅｒ  Ｄｒｉｖｅｒｓ（ＵＲＬ：http://msdn.microsoft.com/library/windows/hardware/br259124），２０１１年９月１３日公開
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＧＤＩからＸＰＳへの変換を行った場合、この変換の精度によっては、変換された出力結果がＧＤＩ印刷パスへ出力した場合の出力結果とは異なってしまう可能性がある。これを避けるために、ＧＤＩアプリケーションから印刷を行う場合には、ＧＤＩプリンタドライバが動作可能な環境で行うという方法がある。
【０００９】
例えば、Ｗｉｎｄｏｗｓ８（登録商標）以前のＷｉｎｄｏｗｓ（登録商標）で使用されていたＶｅｒｓｉｏｎ３プリンタドライバモデル（以下、Ｖ３プリンタドライバと称する。）は、ＧＤＩプリンタドライバが動作可能である。そのため、ＸＰＳドキュメントを印刷する場合にはＶ４プリンタドライバのもとで印刷を行いつつ、ＧＤＩアプリケーション上の文書や画像を印刷する場合にはＶ３プリンタドライバのもとで印刷を行えば、ＧＤＩからＸＰＳへの変換を行わずにどちらの印刷も可能である。
【００１０】
しかし、Ｖ３プリンタドライバを用いてＧＤＩアプリケーションの印刷を行うと、例えばＷｉｎｄｏｗｓ８（登録商標）で新たに導入されたＭｅｔｒｏスタイルデバイスアプリによるプリンタ通知機能のような、Ｖ４プリンタドライバに特有の各種機能を利用することができない。そのため、ＧＤＩアプリケーション上の文書や画像を印刷する方法として、Ｖ４プリンタドライバにおいて動作する各種機能を利用しつつ、ＧＤＩからＸＰＳへの変換処理によって出力結果が変わってしまうおそれのない印刷方法への要望がある。
【００１１】
本発明は、以上のような課題を解決するために好適な印刷制御装置、印刷制御方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明に係る印刷制御装置は、
第１の形式の印刷対象の印刷をプリンタに実行させる第１のプリンタドライバと、
前記プリンタを出力先とし、第２の形式の印刷対象の印刷処理を行う第２のプリンタドライバと、
前記プリンタの状態を監視する監視手段と、
前記第１のプリンタドライバが前記第１の形式の印刷対象の印刷を前記プリンタに実行させたことに応答して、前記第２のプリンタドライバに、前記プリンタに印刷を実行させないような制御命令を含んだ前記第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理によって前記監視手段に前記プリンタの状態を監視する処理を実行させる制御手段と、
を備える。
【発明の効果】
【００１３】
本発明によれば、好適な印刷制御装置、印刷制御方法、及び、プログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態を説明する印刷システムのシステム構成の一例を示すブロック図である。
【図２】ホストコンピュータの印刷制御処理に係るソフトウェアの機能構成を示すブロック図である。
【図３】ホストコンピュータのプリンタ監視処理に係るソフトウェアの機能構成を示すブロック図である。
【図４】プリンタの状態を通知するアプリケーションが起動した様子の一例を示す図である。
【図５】ホストコンピュータの印刷制御処理の具体例を示すシーケンス図である。
【図６】ホストコンピュータの印刷制御処理の流れを示すフローチャートである。
【図７】ＸＰＳプリンタドライバの制御処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当する部分には同一符号を付す。
【００１６】
以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であれば下記の各構成要素を均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。また、以下の説明では、本発明の理解を容易にするため、重要でない公知の技術的事項の説明を適宜省略する。
【００１７】
図１に、本発明の実施形態を説明する印刷システムのシステム構成の一例を示す。この印刷システムは、印刷制御装置として機能するホストコンピュータ（ホスト機器）１、及びプリンタ２を備える。ホストコンピュータ１とプリンタ２は、ＬＡＮ（Local Area Network）等のネットワーク、又はＵＳＢ（Universal Serial Bus）によって互いに接続されている。
【００１８】
ホストコンピュータ１は、制御部４、及び印刷処理部１２を備える。制御部４は、ＣＰＵ（Central Processing Unit）３、表示部５、操作部６、記憶装置制御部７、記憶装置（ＨＤＤ（Hard Disk Drive））８、ＬＡＮ通信制御部９、ＵＳＢ通信制御部１０、及び監視制御部１１を備える。
【００１９】
ＣＰＵ３は、命令やデータを転送するための伝送経路であるシステムバスを介して接続されたホストコンピュータ１の各部の動作を制御する。ＣＰＵ３は、不図示のＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）をワークメモリとして用いながら、ＲＯＭや記憶装置（ＨＤＤ）８に記憶されているＯＳ（Operating System）やアプリケーションソフトウェア等の各種プログラムを読み出し、適宜実行する。なお、本実施形態では、ＯＳとしてＷｉｎｄｏｗｓ８（登録商標）が用いられる場合を説明する。
【００２０】
ＣＰＵ３は、表示部５を制御して、ホストコンピュータ１における各種の出力結果を、例えばＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等のような表示装置に表示する。また、ＣＰＵ３は、操作部６を制御して、ユーザからの各種の操作入力を、例えばキーボードやマウス等のような入力装置を介して受け付ける。
【００２１】
記憶装置（ＨＤＤ）８は、各種のアプリケーションソフトウェア等、ホストコンピュータ１の動作に必要となる各種データを記憶する。記憶装置制御部７は、記憶装置（ＨＤＤ）８へのデータ書き込み、及び記憶装置（ＨＤＤ）８に記憶されたデータの読み出し制御を行う。
【００２２】
また、ＣＰＵ３は、ＬＡＮ通信制御部９又はＵＳＢ通信制御部１０を制御してプリンタ２と通信を行い、ＰＤＬ（ページ記述言語）等の印刷データをプリンタ２に送信する。さらに、ＣＰＵ３は、監視制御部１１を制御し、ＬＡＮ通信制御部９又はＵＳＢ通信制御部１０を介した通信のもと、プリンタ２の状態監視を行う。
【００２３】
印刷処理部１２は、印刷実行部１３、ＡＰＩ（Application Programming Interface）設定部１４、ＵＩ（User Interface）部１５、を備えている。ＡＰＩ設定部１４は、描画データを作成するための各種設定を行うためのインターフェースである。また、ＵＩ部１５は、印刷の設定情報を表示したり、印刷の設定入力を受け付けたりするためのユーザインタフェースである。
【００２４】
印刷実行部１３は、ＣＰＵ３の制御のもと、ＡＰＩ設定部１４にて設定されたアプリケーションに従って描画データを作成する。そして、印刷実行部１３は、描画データをプリンタ２の対応した印刷データに変換し、上記ＬＡＮ通信制御部９又はＵＳＢ通信制御部１０を介してプリンタ２に送信する。このような構成によって、印刷処理部１２は、後述するＧＤＩによる印刷処理とＸＰＳによる印刷処理とを実行する。
【００２５】
一方、プリンタ２は、制御部２０、及び印刷部２１を備える。制御部２０は、ＣＰＵ１９、ＬＡＮ通信制御部２２、ＵＳＢ通信制御部２３、記憶装置制御部２４、記憶装置（ＨＤＤ）２５、ＩＣカードリーダー制御部２６、コマンド解析制御部２７、パネル表示制御部２８、及びオペレーションパネル２９を備えている。
【００２６】
ＣＰＵ１９は、命令やデータを転送するための伝送経路であるシステムバスを介して接続されたプリンタ２の各部の動作を制御する。ＣＰＵ１９は、不図示のＲＯＭ及びＲＡＭをワークメモリとして用いながら、ＲＯＭや記憶装置（ＨＤＤ）２５に記憶されている各種プログラムを適宜実行することにより、プリンタ２の各部の動作を制御する。
【００２７】
例えばＣＰＵ１９は、ＬＡＮ通信制御部２２又はＵＳＢ通信制御部２３を介して上記ホストコンピュータ１と通信を行い、ホストコンピュータ１から送信された印刷データを受信する。そして、ＣＰＵ１９は、コマンド解析制御部２７の機能により印刷データのコマンド解析を行って画像データを生成し、印刷部２１に送る。
【００２８】
記憶装置（ＨＤＤ）２５は、プリンタ２のシステムプログラムや各種のデータ等を記憶する。記憶装置制御部２４は、記憶装置（ＨＤＤ）２５へのデータ書き込み、及び記憶装置（ＨＤＤ）２５に記憶されたデータの読み出し制御を行う。
【００２９】
ＩＣカードリーダー制御部２６は、不図示のカードリーダーライターに接続され、カードリーダーライターが、ＩＣカードに記録されたデータの読み取りやＩＣカードへのデータの書き込みを行うよう制御する。また、パネル表示制御部２８は、オペレーションパネル２９に接続され、オペレーションパネル２９に種々の画像や文字、記号等を表示することによって種々の印刷処理の結果を操作者に提示する。
【００３０】
また、印刷部２１は、印刷制御部２１ａ、印刷機構部２１ｂ、及び給紙装置制御部２１ｃを備えている。印刷制御部２１ａは、制御部２０から送信された印刷データから生成された画像データに従って印刷機構部２１ｂを制御し、給紙装置制御部２１ｃの制御に従って印刷機構部２１ｂに記録紙（用紙）を供給し、画像データに従った画像の印刷処理を行う。
【００３１】
図２に、ホストコンピュータ１の印刷制御処理に係るソフトウェアの機能構成を示す。
【００３２】
ホストコンピュータ１は、ＧＤＩ印刷パスとＸＰＳ印刷パスとを備える。ＧＤＩ印刷パスは、ＧＤＩ３１、スプーラ３２、ＧＤＩレンダリングエンジン３３、ＧＤＩプリンタドライバ３４等を用いて構築されるパスであり、ＧＤＩアプリケーション３０上の文書や画像の印刷処理を実行するパスである。一方、ＸＰＳ印刷パスは、スプーラ３２、フィルタパイプラインマネージャ３８、ＸＰＳプリンタドライバ３９等を用いて構築されるパスであり、ＸＰＳドキュメントである文書データ３７の印刷処理を実行するパスである。ＧＤＩ印刷パスとＸＰＳ印刷パスは、１つのＴＣＰＭｏｎ３５に接続され、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）ポートの出力先が１つのプリンタ２となるように設定される。これら各部は上述した制御部４等によって制御されてそれぞれの処理を実行する。
【００３３】
このような２つの印刷パスを実現するため、本実施形態では、ＧＤＩ印刷パスのＧＤＩプリンタドライバ３４は、例えばＶ３プリンタドライバのもとで動作し、ＸＰＳ印刷パスのＸＰＳプリンタドライバ３９は、例えばＶ４プリンタドライバのもとで動作するように、ホストコンピュータ１の印刷制御のフローが構築されている。
【００３４】
ＧＤＩアプリケーション３０は、ディスプレイやプリンタへの出力処理がＧＤＩ３１に基づいて実行されるアプリケーションである。ＧＤＩアプリケーションの一例として、ワードプロセッサのような文書の作成・編集をする機能をもつアプリケーション、図形や写真画像を編集する機能をもつアプリケーション、表計算機能をもつアプリケーション等が挙げられる。
【００３５】
ＧＤＩ３１は、Ｗｉｎｄｏｗｓ（登録商標）に搭載されたプログラムの１つであり、プリンタやディスプレイをコントロールするためのインターフェースである。ＧＤＩ３１は、ＧＤＩアプリケーション３０からの印刷対象の描画命令に応じて描画データや、その他印刷処理に必要なデータを、スプーラ３２へと供給する。
【００３６】
スプーラ３２は、キュー機能を有し、描画データを一時的に記憶装置８等の記憶領域に保存し、実行していく。具体的に説明すると、ＧＤＩ印刷パスでは、スプーラ３２は、ＧＤＩ３１から供給される描画データを一時的に保存し、順次ＧＤＩレンダリングエンジン３３に供給していく。また、ＸＰＳ印刷パスでは、スプーラ３２は、ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６によって生成されたＸＰＳドキュメントである文書データ３７をスプールファイルとして保存し、順次フィルタパイプラインマネージャ３８に供給していく。
【００３７】
ＧＤＩプリンタドライバ３４は、ＧＤＩレンダリングエンジン３３を用いてスプーラ３２から受け取った描画データをプリンタ２が処理可能な形式であるＰＤＬ（ページ記述言語）へレンダリングする。ＧＤＩプリンタドライバ３４は、例えばハードウェアベンダーによって提供されるモジュールであり、ＧＤＩアプリケーション３０からＧＤＩ３１へされた描画命令がスプーラ３２を介してＧＤＩレンダリングエンジン３３へと送られることに応答して、ＤＤＩ（Device Driver Interface）を呼び出して描画命令に基づきプリンタに対応したＰＤＬを生成する。そして、ＧＤＩプリンタドライバ３４は、生成したＰＤＬデータを、適宜のスプーラや言語モニタを介してＴＣＰＭｏｎ３５へと送る。
【００３８】
さらに、本実施形態では、Ｖ４プリンタドライバが有するプリンタ状態監視の機能を利用するため、Ｖ４プリンタドライバのもとで制御されるＸＰＳ印刷パスにおいても印刷処理を実行させる。なお、プリンタの監視は、利用端末のバッテリーの消費を最小限にする等の理由から、常時は行われず、印刷実行時に限って行われる。そのため、ＧＤＩプリンタドライバ３４は、ＧＤＩ３１から描画データを受け取りＰＤＬの生成を行ったことを契機として、プリンタの監視機能を有効化させる。具体的には、ＧＤＩプリンタドライバ３４は、ＧＤＩ３１から描画データを受け取りＰＤＬの生成を行うことに応答して、ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６に対して、所定の制御命令を含んだＸＰＳドキュメントである文書データ３７を生成するように要求する。
【００３９】
ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６は、ＸＰＳ形式のドキュメントを生成するためのインターフェースである。ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６は、ＧＤＩプリンタドライバ３４からの要求に応じて、ＸＰＳプリンタドライバ３９への制御命令をＰｒｉｎｔＴｉｃｋｅｔに記述し、そのＰｒｉｎｔＴｉｃｋｅｔを含んだＸＰＳドキュメントである文書データ３７を生成する。そして、ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６は、生成したＸＰＳドキュメントである文書データ３７をスプールファイルとしてスプーラ３２へ送る。これによって、従来のようにＧＤＩ３１を経由することなくＸＰＳドキュメントである文書データを生成する。なお、ＰｒｉｎｔＴｉｃｋｅｔとは、印刷設定情報が記述されたＸＭＬドキュメントであり、ＸＰＳドキュメントに構成パーツとして含めることが可能である。
【００４０】
本実施形態におけるＸＰＳ印刷パスは、Ｖ４プリンタドライバのプリンタ状態監視の仕組みを利用する目的の為に使用されるものであるため、実際には印刷処理を行わない。そのため、ＸＰＳ印刷パスで生成されるＰＤＬは、プリンタ２に実際には印刷処理を実行させないように、空（容量が０バイト）のＰＤＬ又はＮＯＰ（何も処理をしない）命令が記述されたＰＤＬ等のようなプリンタ２に実質的に印刷処理を実行させないＰＤＬ（以下、空のＰＤＬという。）となる。
【００４１】
このような空のＰＤＬを生成するため、ＧＤＩプリンタドライバ３４は、ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６に、空のＰＤＬを生成する旨の制御命令を記述したＰｒｉｎｔＴｉｃｋｅｔを含ませたＸＰＳドキュメントである文書データ３７を生成させる。
【００４２】
フィルタパイプラインマネージャ３８は、スプーラ３２にスプールされたＸＰＳドキュメントである文書データ３７を読み込み、ＸＰＳプリンタドライバ（ＸＰＳフィルタドライバ）３９を介してＸＰＳドキュメントである文書データ３７をＰＤＬに変換する。ＸＰＳプリンタドライバ３９は、例えばハードウェアベンダーによって提供されるモジュールであり、フィルタパイプラインマネージャ３８を制御してＸＰＳドキュメントである文書データ３７をプリンタ２で処理可能な形式であるＰＤＬに変換する。
【００４３】
このとき生成されるＰＤＬは、ＸＰＳドキュメントである文書データ３７のＰｒｉｎｔＴｉｃｋｅｔに記述された内容に従い、空のＰＤＬとなる。ＸＰＳプリンタドライバ３９は、生成した空のＰＤＬをＴＣＰＭｏｎ３５へと送る。
【００４４】
ＴＣＰＭｏｎ３５は、標準ＴＣＰ／ＩＰポートモニタと呼ばれるＷｉｎｄｏｗｓシステムモジュールである。ＴＣＰＭｏｎ３５は、ＴＣＰ／ＩＰネットワークに直接接続されているＴＣＰ／ＩＰプリンタへの印刷ジョブを送信する機能と、ＳＮＭＰ（Simple Network Management Protocol）を利用した詳細なプリンタの状態監視を行う機能と、を有する。
【００４５】
なお、ＳＮＭＰは、ネットワークに接続された機器を監視・制御するためのプロトコルである。本実施形態では、ＳＮＭＰマネージャとして動作するホストコンピュータ１のＴＣＰＭｏｎ３５が、プリンタ２をＳＮＭＰエージェントとして監視・制御する。
【００４６】
一方、プリンタ２は、ＴＣＰＭｏｎ３５によって監視されるＳＮＭＰエージェントとしての各種機能を有する。例えば、プリンタ２は、自身の状態を外部に知らせるためのＭＩＢ（Management Information Base）と呼ばれる管理情報ベースを有する。また、プリンタ２は、ＴＣＰＭｏｎ３５からＳＮＭＰの“Ｇｅｔ  Ｒｅｑｕｅｓｔ”メッセージが発せられてプリンタ２の状態取得が行われると、ＳＮＭＰの“Ｇｅｔ  Ｒｅｓｐｏｎｓｅ”メッセージを発生させてＴＣＰＭｏｎ３５へ応答を返す機能を備える。さらに、プリンタ２は、ＳＮＭＰの“Ｔｒａｐ”メッセージを発生させて、自身の状態変化を自発的にＴＣＰＭｏｎ３５へと通知する手段等も備える。
【００４７】
このように、ＧＤＩプリンタドライバ３４は、ＧＤＩ３１からの描画データからＰＤＬを生成するとともに、同一のＴＣＰ／ＩＰポートが割り当てられたＸＰＳプリンタドライバ３９に対してダミーの印刷処理を実行させる。このダミーの印刷処理により、以下に説明するＶ４プリンタドライバが有するプリンタ監視処理の機能を利用できるようになる。
【００４８】
図３に、ホストコンピュータ１のプリンタ監視処理に係るソフトウェアの機能構成を示す。ホストコンピュータ１は、プリンタ監視処理に係る構成として、ＴＣＰＭｏｎ  Ｂｉｄｉ  ＸＭＬ４０と  ＤｒｉｖｅｒＥｖｅｎｔ  ＸＭＬ４１と、ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ（構成モジュール）４２と、ＰｒｎＮｔｆｙ．ｄｌｌ４３と、Ｍｅｔｒｏスタイルデバイスアプリ４４と、を備える。
【００４９】
ＴＣＰＭｏｎ  Ｂｉｄｉ  ＸＭＬ４０は、ＴＣＰＭｏｎ３５が行う監視の設定を記述するファイルである。ＴＣＰＭｏｎ  Ｂｉｄｉ  ＸＭＬ４０に設定された監視項目により拡張することによって、例えば規定の監視状態である標準Ｂｉｄｉ（Bidirectional：双方向）通信スキーマ以外に、ＴＣＰＭｏｎ３５が監視する項目を拡張することができる。
【００５０】
ＤｒｉｖｅｒＥｖｅｎｔ  ＸＭＬ４１は、ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２がＰｒｎＮｔｆｙ．ｄｌｌ４３に対してイベントを発生させるべきＢｉｄｉクエリとトリガーについて記述するファイルである。例えば、トナーの残容量というクエリに対し、２０％以下の場合といったトリガーを設定できる。その設定においては、トナー残容量が２０％以下となった場合、ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２が、ＡｓｙｎｃＵＩ（Asynchronous User Interface：非同期イベント）通知を発生させ、ＰｒｎＮｔｆｙ．ｄｌｌ４３に送信する。
【００５１】
ＴＣＰＭｏｎ  Ｂｉｄｉ  ＸＭＬ４０は、例えばＷＤＫ（Windows（登録商標） Driver Kit）に含まれる“\Include\um\tcpbidi.xsd”のＸＭＬスキーマに従う。同じく、ＤｒｉｖｅｒＥｖｅｎｔ  ＸＭＬ４１は、ＷＤＫに含まれる“\Include\um\printerdriverevents.xsd”のＸＭＬスキーマに従う。なお、ＷＤＫとは、Ｍｉｃｒｏｓｏｆｔ社（登録商標）が提供するＷｉｎｄｏｗｓ（登録商標）のドライバ開発システムであり、ＸＭＬスキーマとは、ＸＭＬ文書の論理的構造を定義した文書である。
【００５２】
ＴＣＰＭｏｎ３５は、プリンタ２との通信を行い、ＳＮＭＰに従った監視制御のもと、ＴＣＰＭｏｎ  Ｂｉｄｉ  ＸＭＬ４０に設定された項目についてプリンタ２を監視する。ＴＣＰＭｏｎ３５は、プリンタ２から機器の状態を知らせる応答又は通知を受信すると、受信した監視データをＢｉｄｉデータとしてＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２に送る。
【００５３】
ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２は、アプリケーションとプリンタの機能や設定に関する情報を通信するＷｉｎｄｏｗｓシステムモジュールである。ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２は、ＴＣＰＭｏｎ３５から監視データを受け取り、その監視データがＤｒｉｖｅｒＥｖｅｎｔ  ＸＭＬ４１に設定されたイベント発生条件を満たすと、非同期イベントＡｓｙｎｃＵＩ通知を発生させ、ＰｒｎＮｔｆｙ．ｄｌｌ４３に送る。
【００５４】
ＰｒｎＮｔｆｙ．ｄｌｌ４３は、ＡｓｙｎｃＵＩのリスナであり、ＰｒｎＮｔｆｙ．ｄｌｌ４３は、ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２からイベントを受信した時に、適切なＭｅｔｒｏスタイルデバイスアプリ４４を起動させる。
【００５５】
Ｍｅｔｒｏスタイルデバイスアプリ４４は、例えばＶ４プリンタドライバと連係して動作するＷｉｎｄｏｗｓ８（登録商標）のアプリケーションである。Ｍｅｔｒｏスタイルデバイスアプリ４４は、本実施形態のプリンタ監視処理のもと、発生したイベントにおける監視データを、ＸＰＳ印刷パスの出力先として設定されたプリンタの状態として通知する機能を有する。
【００５６】
Ｍｅｔｒｏスタイルデバイスアプリ４４が起動したときの様子を図４に示す。ＴＣＰＭｏｎ３５がプリンタ２の監視を行った結果、例えば図４に示すような、トナーの残量が少なくなった旨を通知し、トナーの残量を表示したり、スムーズにトナーの交換できるように誘導したりするための画像がホストコンピュータ１の画面に表示される。また、例えば紙詰まりや用紙切れが起きたときにも、Ｍｅｔｒｏスタイルデバイスアプリ４４が起動し、対応する表示画像がホストコンピュータ１の画面に表示される。このように、ＰｒｎＮｔｆｙ．ｄｌｌ４３は、ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２から受け取ったイベントに応答して、対応するＭｅｔｒｏスタイルデバイスアプリ４４を起動させる。
【００５７】
Ｍｅｔｒｏスタイルデバイスアプリ４４は、このような監視データの通知を、ＸＰＳ印刷パスの出力先として設定されたプリンタの状態として通知する。本実施形態では、ＸＰＳ印刷パスでは実質的な印刷処理は行われていないが、ＧＤＩ印刷パスと同じ１つのプリンタ２がＸＰＳ印刷パスの出力先として設定されている。そのため、印刷処理を行ったプリンタと監視対象のプリンタとを一致させて、印刷を実行したプリンタの状態を適切に監視することができる。
【００５８】
このような印刷制御処理の具体例を、図５に示すシーケンス図を参照して説明する。
【００５９】
ＧＤＩアプリケーション３０が関数StartDocを呼び出して印刷ジョブを開始すると（ステップＡ１１）、ＧＤＩ３１は、ＤＤＩの該当関数DrvStartDocを呼び出して、ドキュメントの印刷を開始するのに必要な制御情報をＧＤＩプリンタドライバ３４に送信する（ステップＡ１２）。すると、ＧＤＩプリンタドライバ３４は、印刷ジョブを開始するためのＰＤＬを生成する。そして、ＧＤＩプリンタドライバ３４は、関数WritePrinterを呼び出して、生成したＰＤＬをプリンタ２に送信するようスプーラ３２に通知する（ステップＡ１３）。
【００６０】
また、ＧＤＩプリンタドライバ３４は、プリンタ２の状態監視を有効化する為に、プリンタ２に関連付けられたＸＰＳプリンタドライバ３９へ印刷ジョブを、ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６を使用して送信する。例えば、ＧＤＩプリンタドライバ３４は、関数StartXpsPrintJobを呼び出してＸＰＳプリンタドライバ３９での印刷を開始させたり（ステップＡ１４）、ＸＰＳ印刷パスにおいて印刷内容を書き込むためのストリームを開く関数IXpsOMObjectFactory::CreatePackageWriterOnStream（ステップＡ１５）や新たなドキュメントの印刷を開始する関数IXpsOMPackageWriter::StartNewDocument（ステップＡ１６）等を用いて、ＸＰＳでの印刷を実行したりする。
【００６１】
続いて、ＧＤＩアプリケーション３０が関数StartPageによって新しいページデータの受け入れを指示すると（ステップＡ２１）、ＧＤＩ３１は、ＤＤＩの該当関数DrvStartPageを呼び出して、新しいページの印刷を開始するのに必要な制御情報をＧＤＩプリンタドライバ３４に送信する（ステップＡ２２）。すると、ＧＤＩプリンタドライバ３４は、ページ開始の為のＰＤＬを生成し、関数WritePrinterを呼び出して、生成したＰＤＬをプリンタ２に送信するようスプーラ３２に通知する（ステップＡ２３）。
【００６２】
続いて、ＧＤＩアプリケーション３０がＧＤＩ３１に描画命令を行うと（ステップＡ３１）、ＧＤＩ３１は、それに該当するＤＤＩ関数を呼び出して、描画するのに必要な制御情報をＧＤＩプリンタドライバ３４に送信する（ステップＡ３２）。すると、ＧＤＩプリンタドライバ３４は、描画の為のＰＤＬを生成し、関数WritePrinterを呼び出して、生成したＰＤＬをプリンタ２に送信するようスプーラ３２に通知する（ステップＡ３３）。
【００６３】
ページの描画が完了し、ＧＤＩアプリケーション３０が関数EndPageによって１ページ分の書き込みが終了したことを通知すると（ステップＡ４１）、ＧＤＩ３１は、ＤＤＩの該当関数DrvEndPageを呼び出して、ページの印刷を終了するのに必要な制御情報をＧＤＩプリンタドライバ３４に送信する（ステップＡ４２）。すると、ＧＤＩプリンタドライバ３４は、ページ終了の為のＰＤＬを生成し、関数WritePrinterを呼び出して、生成したＰＤＬをプリンタ２に送信するようスプーラ３２に通知する（ステップＡ４３）。
【００６４】
このとき、ＧＤＩプリンタドライバ３４は、関数IXpsOMPackageWriter::AddPageを呼び出し、ＸＰＳ印刷パスにおいても新たなページへの描画を開始する通知を、ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６を介してＸＰＳプリンタドライバ３９に送信する（ステップＡ４４）。
【００６５】
上記ステップＡ２１〜Ａ４４までの処理を印刷指示がされたドキュメントのページ数分繰り返して全てのページの描画が完了すると、ＧＤＩアプリケーション３０は、関数EndDocを用いて印刷ジョブを終了する（ステップＡ５１）。ＧＤＩ３１は、ＤＤＩの該当関数DrvEndDocを呼び出して、ドキュメントの印刷を終了するのに必要な制御情報をＧＤＩプリンタドライバ３４に送信する（ステップＡ５２）。すると、ＧＤＩプリンタドライバ３４は、印刷ジョブを終了させるためのＰＤＬを生成する。そして、ＧＤＩプリンタドライバ３４は、関数WritePrinterを呼び出して、生成したＰＤＬをプリンタ２に送信するようスプーラ３２に通知する（ステップＡ５３）。
【００６６】
このような印刷の開始から終了までの間、ＴＣＰＭｏｎ３５は、プリンタ２の状態監視を続ける。プリンタ２を監視しているＴＣＰＭｏｎ３５は、ＤｒｉｖｅｒＥｖｅｎｔ  ＸＭＬ４１で指定された状態のいずれかを検知すると、対応するイベントが発生し、ＸＰＳプリンタドライバ３９に関連付けられたＭｅｔｒｏスタイルデバイスアプリ４４が起動することになる。
【００６７】
印刷ジョブが終了する場合、ＧＤＩプリンタドライバ３４は、ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６を介してＸＰＳプリンタドライバ３９へ印刷ジョブを送信して、プリンタ２の状態監視も終了させる。具体的には、ＧＤＩプリンタドライバ３４は、関数IXpsOMPackageWriter::Close（ステップＡ５４）や関数IXpsPrintJobStream::Close（ステップＡ５５）等を呼び出して、ＸＰＳ印刷パスにおける印刷ジョブを終了させる。
【００６８】
さらに、以上のような印刷制御処理の流れについて、図６に示すフローチャートを参照して説明する。
【００６９】
印刷制御処理が開始されると、ＧＤＩ３１がＧＤＩアプリケーション３０の描画命令に対応する描画データをＧＤＩプリンタドライバ３４に通知し、ＧＤＩプリンタドライバ３４が、ＧＤＩレンダリングエンジン３３を用いてＧＤＩ３１が生成した描画データをＰＤＬへレンダリングしてＰＤＬを生成し、プリンタ２に送信する（ステップＢ１１）。
【００７０】
一方で、印刷が開始されると、ＧＤＩプリンタドライバ３４は、ＸＰＳ印刷パスでも印刷処理を実行するように、ＸＰＳプリンタドライバ３９を制御する（ステップＢ１２）。すなわち、印刷処理の最中に実行されるプリンタ２の状態の監視をＸＰＳ印刷パスにおいて動作するアプリケーションを介して利用できるようにするため、ＧＤＩプリンタドライバ３４は、ダミーの印刷処理を実行するようにＸＰＳプリンタドライバ３９への制御命令を行う。
【００７１】
このＸＰＳプリンタドライバ３９を制御する処理の詳細については、以下、図７のフローチャートを参照して説明する。
【００７２】
図７のフローチャートにおいて、ＸＰＳプリンタドライバ３９の制御処理が開始されると、ＧＤＩプリンタドライバ３４は、まずＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ３６を用いて、制御命令を記述したＰｒｉｎｔＴｉｃｋｅｔを含むＸＰＳドキュメントである文書データ３７を生成する（ステップＢ２１）。ＸＰＳ印刷パスはプリンタ２の状態監視のために用いられるものであるため、ＰｒｉｎｔＴｉｃｋｅｔには、プリンタ２に実質的な印刷処理をさせないよう空のＰＤＬを生成する旨の命令が記述される。
【００７３】
ＸＰＳドキュメントである文書データ３７を生成すると、ＸＰＳプリンタドライバ３９は、スプーラ３２を介してＸＰＳドキュメントである文書データ３７を取得し、それを変換して空のＰＤＬを生成する（ステップＢ２２）。すなわち、ＸＰＳプリンタドライバ３９は、ＸＰＳドキュメントである文書データ３７内に記述されたＰｒｉｎｔＴｉｃｋｅｔの命令に従い、プリンタ２に実質的な印刷処理を行わせない空のＰＤＬを生成する。
【００７４】
空のＰＤＬを生成すると、ＸＰＳプリンタドライバ３９は、生成した空のＰＤＬを、ＧＤＩ印刷パスにおいて送信したものと同じプリンタ２に送信する（ステップＢ２３）。そして、ＸＰＳプリンタドライバの制御処理は終了する。
【００７５】
このように、ＧＤＩ印刷パスと同じプリンタ２がポートの出力先として設定されたＸＰＳ印刷パスにおいても印刷処理を実行することで、ＧＤＩ印刷パスで実質的な印刷を行いつつ、ＸＰＳ印刷パス特有のアプリケーションも利用することが可能となる。
【００７６】
図６のフローチャートに戻って、ＸＰＳプリンタドライバ３９を制御してＸＰＳ印刷パスで印刷処理を実行させると、ＴＣＰＭｏｎ３５が、プリンタ２の状態監視をした結果、監視データをプリンタ２から受信したか否かを判別する（ステップＢ１３）。すなわち、ＳＮＭＰの機能に基づいてホストコンピュータ１からの要求に対してプリンタ２からされた応答や、プリンタ２が自発的にする通知を受信したか否かを判別する。
【００７７】
監視データをプリンタ２から受信していないと（ステップＢ１３；ＮＯ）、この印刷制御処理は、印刷が終了したか否かを判別するステップＢ１６の処理へと移行する。
【００７８】
一方、監視データをプリンタ２から受信すると（ステップＢ１３；ＹＥＳ）、続けてＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ４２が、受信した監視データがイベント発生させるべき所定の通知条件を満たしたか否かを判別する（ステップＢ１４）。すなわち、受信した監視データが示すプリンタ２の状態が、ＤｒｉｖｅｒＥｖｅｎｔ  ＸＭＬ４１においてユーザに通知すべき状態としてあらかじめ設定された状態のいずれかであるか否かを判別する。
【００７９】
監視データが所定の通知条件を満たした場合（ステップＢ１４；ＹＥＳ）、ＰｒｎＮｔｆｙ．ｄｌｌ４３が、Ｍｅｔｒｏスタイルデバイスアプリ４４を起動させて監視データを通知する（ステップＢ１５）。例えば、図４に示したような画像をホストコンピュータ１の画面に表示することで、プリンタ２の状態をユーザに提示する。
【００８０】
一方、監視データがトリガーの条件を満たしていない場合には（ステップＢ１４；ＮＯ）、監視データ通知のためのアプリケーションは起動されずに、印刷制御処理はステップＢ１６へと移行する。
【００８１】
ステップＢ１６では、ＧＤＩプリンタドライバ３４が、指示された印刷が終了したか否かを判別する（ステップＢ１６）。すなわち、指示された印刷ドキュメントのすべてのページの印刷処理が完了したか否かを判別する。
【００８２】
印刷が終了していないと（ステップＢ１６；ＮＯ）、この印刷制御処理はステップＢ１１に戻る。すなわち、印刷指示がされたドキュメントのうちの印刷が未完了のページや部分について、引き続きＧＤＩプリンタドライバ３４は、描画データのＰＤＬを生成してプリンタ２に送信する（ステップＢ１１）。このとき、ＧＤＩプリンタドライバ３４は、必要に応じてＸＰＳプリンタドライバ３９にも印刷処理を実行させるように制御する（ステップＢ１２）。また、ＴＣＰＭｏｎ３５が監視データを受信した場合には、必要に応じてユーザに通知するアプリケーションを起動させる処理が行われる（ステップＢ１３〜Ｂ１５）。このような印刷処理と監視処理を、指示された印刷データの印刷が完了するまで行う。
【００８３】
最終的に、指示された描画データの印刷が終了すると（ステップＢ１６；ＹＥＳ）、ＧＤＩプリンタドライバ３４は、ＸＰＳ印刷パスでも印刷処理を終了するように、ＸＰＳプリンタドライバ３９に対して行っているダミーの印刷処理を終了させることで、ＸＰＳプリンタドライバ３９に関連付けられたプリンタであるプリンタ２の監視処理が終了する（ステップＢ１７）。そして、図６のフローチャートに示した印刷制御処理は終了する。
【００８４】
以上説明したように、本実施形態では、同一ポートに関連付けられたＧＤＩプリンタドライバ３４とＸＰＳプリンタドライバ３９とにより、実質的な印刷処理はＧＤＩ印刷パスで行い、同時にＸＰＳ印刷パスでは空のＰＤＬを用いたダミーの印刷処理を行う。これにより、ＧＤＩアプリケーションからＸＰＳ印刷パスへ印刷した際のＧＤＩからＸＰＳへの変換によって発生しうる印刷出力不具合を回避しつつ、ＧＤＩプリンタドライバでは採用できないＶ４プリンタドライバの拡張機能との連携を実現可能となる。
【００８５】
また、ＰＤＬへのレンダリング処理はＧＤＩプリンタドライバ３４によって行われ、ＸＰＳ印刷パスで生成されるＰＤＬは空であるため、ＸＰＳプリンタドライバ３９には特にＰＤＬへのレンダリング処理を実装する必要がない。そのため、例えばＷｉｎｄｏｗｓ８（登録商標）以前のＧＤＩプリンタドライバをそのまま使用することができ、開発工数の削減につながる。
【００８６】
以上に本発明の実施形態について説明したが、これらの実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【００８７】
例えば、ＧＤＩプリンタドライバ３４及びＸＰＳプリンタドライバ３９の出力先であり、監視の対象となるプリンタ２は、実際のプリンタデバイスではなくてもよい。すなわち、プリンタ２は、ＧＤＩプリンタドライバ３４及びＸＰＳプリンタドライバ３９から送信された印刷ジョブを受信し、ＴＣＰＭｏｎ３５が監視する監視対象として物理的なプリンタデバイスを模擬した仮想的なプリンタデバイスであってもよい。例えば、ＲＡＷ印刷プロトコル（ＴＣＰポート９１００）をソフトウェア的に模倣し、ＳＮＭＰエージェントとしてプリンタデバイスを模倣して動作するサーバーソフトウェアによる仮想的なプリンタデバイスを、プリンタ２として実装可能である。なお、ＴＣＰポート９１００は、ＩＡＮＡ（Internet Assigned Numbers Authority）にてＰＤＬのデータストリームとして割り当てられており、ＲＡＷ形式の印刷ジョブを受信する。
【００８８】
また、上記実施形態では、ＧＤＩプリンタドライバ３４は、ＧＤＩ印刷パスにおけるＰＤＬへのレンダリングをしたことを契機として、ＸＰＳ印刷パスにおいて空のＰＤＬを生成するようにＸＰＳプリンタドライバ３９を制御した。これは、一般的にプリンタドライバに紐付けされたプリンタの監視は、利用端末のバッテリーの消費を最小限にする等の理由から、常時行われるよりも印刷実行時に限って行われることが多いためである。しかし、空のＰＤＬ生成させるタイミングは、ＧＤＩ印刷パスにおいて印刷処理が実行されたタイミングに限らず、任意のタイミングで上記のプリンタ監視機能を有効化できるようにすることも可能である。
【００８９】
なお、本発明に係る機能を実現するための構成を予め備えた印刷制御装置として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係る印刷制御装置として機能させることもできる。すなわち、上記実施形態で例示した印刷制御装置として機能するホストコンピュータ１による各機能構成を実現させるためのプログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するＣＰＵ等が実行できるように適用することで、本発明に係る印刷制御装置として機能させることができる。また、本発明に係る印刷制御方法は、印刷制御装置を用いて実施できる。
【００９０】
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード等のコンピュータ読み取り可能な記憶媒体に格納して適用できる。さらに、プログラムを搬送波に重畳し、インターネットなどの通信媒体を介して適用することもできる。例えば、通信ネットワーク上の掲示板（ＢＢＳ：Bulletin Board System）にプログラムを掲示して配信してもよい。そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【００９１】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００９２】
（付記１）
第１の形式の印刷対象の印刷をプリンタに実行させる第１のプリンタドライバと、
前記プリンタを出力先とし、第２の形式の印刷対象の印刷処理を行う第２のプリンタドライバと、
前記プリンタの状態を監視する監視手段と、
前記第１のプリンタドライバが前記第１の形式の印刷対象の印刷を前記プリンタに実行させたことに応答して、前記第２のプリンタドライバに、前記プリンタに印刷を実行させないような制御命令を含んだ前記第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理によって前記監視手段に前記プリンタの状態を監視する処理を実行させる制御手段と、
を備える印刷制御装置。
【００９３】
（付記２）
前記第１のプリンタドライバは、ＧＤＩ（Graphics Device Interface）を介して前記第１の印刷対象から生成された描画データを前記プリンタのページ記述言語にレンダリングするＧＤＩプリンタドライバを有し、
前記第２のプリンタドライバは、前記第２の形式の印刷対象としてＸＰＳ（XML Paper Specification）形式の文書データの印刷処理を実行するＸＰＳプリンタドライバを有する、
ことを特徴とする付記１に記載の印刷制御装置。
【００９４】
（付記３）
前記制御手段は、前記制御命令を前記ＸＰＳ形式の文書データに含まれるＰｒｉｎｔＴｉｃｋｅｔに記述することにより、前記第２のプリンタドライバを制御する、
ことを特徴とする付記２に記載の印刷制御装置。
【００９５】
（付記４）
前記制御手段は、前記制御命令によって、前記第２のプリンタドライバに、データ容量が０のページ記述言語、又は前記プリンタに何も処理を実行させない命令を記述したページ記述言語を生成させ、該生成したページ記述言語を前記プリンタに送信させる、
ことを特徴とする付記１乃至３のいずれか１つに記載の印刷制御装置。
【００９６】
（付記５）
前記プリンタは、前記第１のプリンタドライバ及び前記第２のプリンタドライバからの印刷ジョブを受信し、前記監視手段の監視対象として物理的なプリンタを模擬する仮想プリンタである、
ことを特徴とする付記１乃至４のいずれか１つに記載の印刷制御装置。
【００９７】
（付記６）
前記監視手段によって得られた前記プリンタの状態を示す情報が所定の通知条件を満たしたか否かを判別する判別手段と、
前記判別手段が前記所定の通知条件が満たされたと判別した場合に、前記プリンタの状態を示す情報を該印刷制御装置のユーザに通知する通知手段と、
をさらに備えることを特徴とする付記１乃至５のいずれか１つに記載の印刷制御装置。
【００９８】
（付記７）
第１の形式の印刷対象の印刷をプリンタに実行させる第１のプリンタドライバと、前記プリンタを出力先とし、第２の形式の印刷対象の印刷処理を行う第２のプリンタドライバと、前記プリンタの状態を監視する監視手段と、を備える印刷制御装置を準備し、
前記第１のプリンタドライバが前記第１の形式の印刷対象の印刷を前記プリンタに実行させたことに応答して、前記第２のプリンタドライバに、前記プリンタに印刷を実行させないような制御命令を含んだ前記第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理によって前記監視手段に前記プリンタの状態を監視する処理を実行させる、
ことを特徴とする印刷制御方法。
【００９９】
（付記８）
第１の形式の印刷対象の印刷をプリンタに実行させる第１のプリンタドライバと、前記プリンタを出力先とし、第２の形式の印刷対象の印刷処理を行う第２のプリンタドライバと、前記プリンタの状態を監視する監視手段と、を備えるコンピュータに、
前記第１のプリンタドライバが前記第１の形式の印刷対象の印刷を前記プリンタに実行させたことに応答して、前記第２のプリンタドライバに、前記プリンタに印刷を実行させないような制御命令を含んだ前記第２の形式の印刷対象の印刷処理を実行させ、当該実行させた印刷処理によって前記監視手段に前記プリンタの状態を監視する処理を実行させる制御機能、
を実現させることを特徴とするプログラム。
【符号の説明】
【０１００】
１…ホストコンピュータ、２…プリンタ、３…ＣＰＵ、４…制御部、５…表示部、６…操作部、７…記憶装置制御部、８…記憶装置（ＨＤＤ）、９…ＬＡＮ通信制御部、１０…ＵＳＢ通信制御部、１１…監視制御部、１２…印刷処理部、１３…印刷実行部、１４…ＡＰＩ設定部、１５…ＵＩ部、１９…ＣＰＵ、２０…制御部、２１…印刷部、２１ａ…印刷制御部、２１ｂ…印刷機構部、２１ｃ…給紙装置、２２…ＬＡＮ通信制御部、２３…ＵＳＢ通信制御部、２４…記憶装置制御部、２５…記憶装置（ＨＤＤ）、２６…ＩＣカードリーダー制御部、２７…コマンド解析制御部、２８…パネル表示制御部、２９…オペレーションパネル、３０…ＧＤＩアプリケーション、３１…ＧＤＩ、３２…スプーラ、３３…ＧＤＩレンダリングエンジン、３４…ＧＤＩプリンタドライバ、３５…ＴＣＰＭｏｎ、３６…ＸＰＳ  Ｐｒｉｎｔ  ＡＰＩ、３７…文書データ、３８…フィルタパイプラインマネージャ、３９…ＸＰＳプリンタドライバ、４０…ＴＣＰＭｏｎ  Ｂｉｄｉ  ＸＭＬ、４１…ＤｒｉｖｅｒＥｖｅｎｔ  ＸＭＬ、４２…ＰｒｉｎｔＣｏｎｆｉｇ．ｄｌｌ、４３…ＰｒｎＮｔｆｙ．ｄｌｌ、４４…Ｍｅｔｒｏスタイルデバイスアプリ
【図１】
2014071573.tif 000003
【図２】
2014071573.tif 000004
【図３】
2014071573.tif 000005
【図４】
2014071573.tif 000006
【図５】
2014071573.tif 000007
【図６】
2014071573.tif 000008
【図７】
2014071573.tif 000009