(57)【要約】【課題】実プリンタとの間の双方向通信に依存した機能の利用を可能にする。【解決手段】実プリンタを用いて印刷出力する情報処理装置において、アプリケーションから受信した画像データに基づいて印刷データを生成するプリンタドライバと、印刷データを受信し実プリンタへの出力制御を行う仮想プリンタと、を有する。仮想プリンタは、実プリンタと通信し該実プリンタの情報を取得する取得手段と、実プリンタの情報に基づいて、前記印刷データを送信する送信手段と、を有する。プリンタドライバは、仮想プリンタを介して取得した実プリンタの情報に基づいて画像データに対してレンダリング処理を実行し印刷データを生成する。【選択図】図１
2015204045.tif 000002
【特許請求の範囲】
【請求項１】
実プリンタを用いて印刷出力する情報処理装置であって、
アプリケーションから受信した画像データに基づいて、前記実プリンタで印刷処理されることになる印刷データを生成するプリンタドライバと、
前記プリンタドライバにより生成された印刷データを受信し前記実プリンタへの出力制御を行う仮想プリンタと、
を有し、
前記仮想プリンタは、
前記実プリンタと通信し該実プリンタの情報を取得する取得手段と、
前記実プリンタの情報に基づいて、前記印刷データを送信する送信手段と、
を有し、
前記プリンタドライバは、
前記仮想プリンタを介して取得した前記実プリンタの情報に基づいて前記画像データに対してレンダリング処理を実行し前記印刷データを生成する
ことを特徴とする情報処理装置。
【請求項２】
前記情報は、前記実プリンタの画像処理エンジンで利用されるパラメータ情報を含み、
前記プリンタドライバは、前記パラメータ情報を利用してレンダリング処理を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報は、前記実プリンタにおける印刷データの処理状況に関する情報を含み、
前記プリンタドライバは、前記実プリンタにおける印刷データの処理状況を表示する表示手段を更に有する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記プリンタドライバは、前記実プリンタで処理される印刷データに対する指示を受け付ける受付手段を更に有し、
前記仮想プリンタは、
前記プリンタドライバから前記指示を受信する受信手段と、
前記受信手段で受信された指示に基づいて前記実プリンタの動作を制御する制御手段と、
を更に有する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記受付手段は、前記実プリンタで処理される１以上の印刷データに含まれる１つの印刷データの指定と、該指定された１つの印刷データに対する指示内容と、を前記指示として受け付ける
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記指示は、印刷データの処理の、一時停止、削除の何れかを含む
ことを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記プリンタドライバは、前記画像データを第１のフォーマットの印刷データを生成し、
前記仮想プリンタは、前記プリンタドライバから受信した前記第１のフォーマットの印刷データに基づいて、前記実プリンタで解釈可能な第２のフォーマットの印刷データを生成する
ことを特徴とする請求項１乃至６の何れか一項に記載の情報処理装置。
【請求項８】
前記プリンタドライバは、生成した印刷データをＯＳにより提供されるスプーラに出力するように構成されており、
前記仮想プリンタは、前記スプーラを介して前記プリンタドライバから印刷データを受信するように構成されている
ことを特徴とする請求項１乃至７の何れか一項に記載の情報処理装置。
【請求項９】
実プリンタを用いて印刷出力する情報処理装置の制御方法であって、
前記情報処理装置は、
アプリケーションから受信した画像データに基づいて、前記実プリンタで印刷処理されることになる印刷データを生成するプリンタドライバと、
前記プリンタドライバにより生成された印刷データを受信し前記実プリンタへの出力制御を行う仮想プリンタと、
を有し、前記制御方法は、
前記仮想プリンタが、前記実プリンタと通信し該実プリンタの情報を取得する取得工程と、
前記仮想プリンタが、前記実プリンタの情報に基づいて、前記印刷データを送信する送信工程と、
を含み、
前記プリンタドライバは、前記仮想プリンタを介して取得した前記実プリンタの情報に基づいて前記画像データに対してレンダリング処理を実行し前記印刷データを生成するよう構成されている
ことを特徴とする情報処理装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置との間の双方向通信に依存した機能の利用を可能にするための情報処理装置及びその制御方法に関するものである。
【背景技術】
【０００２】
情報処理装置から画像形成装置等の周辺機器を利用するには、一般的にはその周辺機器に対応した特定のデバイスドライバ（画像形成装置であればプリンタドライバ）を、情報処理装置上で動作するオペレーションシステム（ＯＳ）に組み込む必要がある。そして、画像形成装置を利用する場合、プリンタドライバをアプリケーションから起動させ、印刷に必要な設定を行い、画像形成装置への出力を行う。プリンタドライバにおける画像形成装置への出力においては、アプリケーションから取得した印刷データを画像形成装置に転送することで用紙への印刷指示を行う。画像形成装置とプリンタドライバとの間の通信では、プリンタドライバからの印刷データを送るだけでなく、装置側からの情報を使用する印刷通信用の双方向通信プロトコルも広く利用されている。
【０００３】
この双方向通信プロトコルにより、プリンタドライバは、メモリ状態を確認することが出来る。そのため、メモリ搭載量の少ない画像形成装置を利用する場合においても安定した印刷を実行することが可能になる。また、双方向通信プロトコルにより、情報処理装置は、画像形成装置の状態情報の表示、ユーザへのメッセージ表示などを実現している。
【０００４】
また、上述の双方向通信プロトコルは、製品の価格を抑える目的にも利用されている。例えば、画像生成処理（レンダリング）を画像形成装置側で行う代わりに情報処理装置側で行い、レンダリング後の画像データを画像形成装置へ転送する構成の印刷システムも存在する。このような印刷システムは、ホストベース型印刷システムと呼ばれ、画像形成装置の価格を低く抑えることを可能としている。
【０００５】
更に、特許文献１では、画像形成装置に直接（ローカル接続）またはネットワークで接続され、ホスト装置として機能するプリンタアダプタが提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３０９６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の特許文献１に記載の技術では、これまで双方向通信プロトコルを使用することにより実現していた機能を実現することが出来ない。例えば、画像形成装置における、メモリ状態、印刷画像補正処理、装置情報などの各種情報を取得し利用することができない。
【０００８】
本発明は上述の問題点に鑑みなされたものであり、画像形成装置との間の双方向通信に依存した機能の利用を可能にするための情報処理装置を実現することを目的としている。
【課題を解決するための手段】
【０００９】
上述の問題点を解決するため、本発明に係る情報処理装置は以下の構成を備える。すなわち、実プリンタを用いて印刷出力する情報処理装置であって、アプリケーションから受信した画像データに基づいて、前記実プリンタで印刷処理されることになる印刷データを生成するプリンタドライバと、前記プリンタドライバにより生成された印刷データを受信し前記実プリンタへの出力制御を行う仮想プリンタと、を有し、前記仮想プリンタは、前記実プリンタと通信し該実プリンタの情報を取得する取得手段と、前記実プリンタの情報に基づいて、前記印刷データを送信する送信手段と、を有し、前記プリンタドライバは、前記仮想プリンタを介して取得した前記実プリンタの情報に基づいて前記画像データに対してレンダリング処理を実行し前記印刷データを生成する。
【発明の効果】
【００１０】
本発明によれば、画像形成装置との間の双方向通信に依存した機能の利用を可能にするための情報処理装置を実現することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態のシステム構成図、及び、各装置の内部構成を示すブロック図 。
【図２】基本プリンタドライバの印刷処理の一例を示すフローチャート。
【図３】プリンタ情報表示の処理の一例を示すフローチャート。
【図４】仮想画像形成装置の処理の一例を示すフローチャート。
【図５】画像形成装置の処理の一例を示すフローチャート。
【図６】システム構成を示すブロック図。
【発明を実施するための形態】
【００１２】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１３】
（第１実施形態）
本発明に係る情報処理装置の第１実施形態として、画像形成装置（実プリンタ）を用いて印刷出力する情報処理装置を例に挙げて以下に説明する。
【００１４】
＜システム構成＞
図１（ａ）は、第１実施形態に係るネットワークシステムの概略構成を示すブロック図である。このネットワークシステムは、１以上の情報処理装置１０１ａ，１０１ｂ...と、情報処理装置１０１より印刷データを受信して印刷を行う１以上の画像形成装置１０２ａ，１０２ｂ...等を含んでいる。これらの装置は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）で構成されるネットワーク１０４を介して接続されている。
【００１５】
図１（ｂ）は、情報処理装置１０１と画像形成装置１０２の各装置の内部構成を示すブロック図である。情報処理装置１０１において、ＣＰＵ１１１は、ＲＡＭ１１２に記憶されているプログラムに従って、システムバス１１４に接続される各装置を統括的に制御している。ＲＡＭ１１２は、ＣＰＵ１１１の主メモリ、ワークエリア等としても機能している。ＲＯＭ１１３は、各種プログラム及びデータを格納している。
【００１６】
キーボードＩ／Ｆ１１５は、キーボード１１９や不図示のポインティング装置（タッチパネル等）からのキー入力を制御する。ディスプレイＩ／Ｆ１１６は、ディスプレイ１２０への表示を制御している。外部メモリＩ／Ｆ１１７は、例えばフラッシュメモリ、ＳＳＤ（Solid State Drive）等の外部メモリ１２１とのアクセスを制御する。外部メモリ１２１は、オペレーティングシステム（ＯＳ）１２２をはじめ、各種アプリケーションプログラム１２３、印刷処理関連プログラム１２４を記憶する。さらに、外部メモリ１２１は、不図示のユーザファイル、編集ファイル等を記憶する情報処理装置が読み取り可能な記憶媒体として機能する。なお、ここではＯＳ１２２として米Ｍｉｃｒｏｓｏｆｔ社の Ｗｉｎｄｏｗｓ（登録商標）を使用するものとする。
【００１７】
印刷処理関連プログラム１２４は、第１実施形態に係る、インストーラ１２５、基本プリンタドライバ１２６、仮想画像形成装置（仮想プリンタ）１２７を含んでいる。基本プリンタドライバ１２６は、対象となる画像形成装置１０２に対応してインストールが可能なドライバソフトウェアである。仮想画像形成装置１２７は、仮想プリンタ機能１２９と実プリンタドライバ機能（１２８）を含むドライバソフトウェアである。
【００１８】
実プリンタドライバ機能１２８は、画像形成装置１０２との双方向通信方式に対応している。各種Ｉ／Ｆ（ネットワーク及びＵＳＢ Ｉ／Ｆが主たるもの）１１８は、ネットワーク１０４または、ＵＳＢ等のローカルバスを介して画像形成装置１０２に接続され、画像形成装置１０２との間で通信制御処理を行う。仮想プリンタ機能１２９は、ＯＳ上で物理的な画像形成装置のように振る舞い実プリンタへの出力制御を行う装置を実現するエミュレーターソフトウェアである。
【００１９】
＜機能構成＞
図６は、情報処理装置１０１内、印刷処理関連プログラム１２４におけるソフトウェア機能ブロック図を示している。
【００２０】
情報処理装置内でユーザが利用を行うアプリケーションプログラム１２３から印刷の開始が指示されると、基本プリンタドライバ１２６が呼び出され、実プリンタで印刷処理されることになる印刷データが作成され、ＯＳ１２２内の印刷用スプーラ機能に渡される。スプーラ上の印刷データはＯＳ標準のポートモニタを通して、仮想画像形成装置１２７へ送信される。仮想画像形成装置１２７は、ポートから印刷データを受信し、キューへ格納する。キューに格納された印刷データはランゲージモニタに渡され、ランゲージモニタはエンジンモニタとやりとりをしながら、ポートモニタを介して、画像形成装置１０２へ印刷データを送信する。
【００２１】
なお、仮想画像形成装置１２７のキューはＯＳ１２２の標準のキューとは別個の機能部をして実現される。仮想画像形成装置１２７のキューは仮想画像形成装置１２７に印刷データが送信された場合にキューイングされ、ＯＳ１２２の標準のキューはスプーラに印刷データが送信された場合にキューイングされる。以下の説明においては、特に断りがなければ仮想画像形成装置１２７のキューを単にキューと呼ぶ。
【００２２】
また、ランゲージモニタは、双方向通信によって画像形成装置１０２の状態情報を受け取り、エンジンモニタ等へ通知する。ステータスウィンドウは、ランゲージモニタとやりとりし、画像形成装置１０２の状態の表示等を行う。そして、インストーラ１２５は、印刷処理関連プログラム１２４を情報処理装置１０１内にインストールするためのプログラムである。
【００２３】
次に画像形成装置１０２の構成について説明する。ＣＰＵ１３２は、画像形成装置１０２の全体の動作を制御している。ＲＡＭ１３９は、ＣＰＵ１３２の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またこのＲＡＭ１３９は、不揮発性ＲＡＭ（Non-volatile RAM）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ１３３は、各種フォントを記憶するフォントＲＯＭ１３３ａ、ＣＰＵ１３２により実行される制御プログラム等を記憶するプログラムＲＯＭ１３３ｂ、及び各種データを記憶するデータＲＯＭ１３３ｃを備えている。
【００２４】
各種Ｉ／Ｆ（ネットワーク及びＵＳＢ Ｉ／Ｆが主たるもの）１３８では、情報処理装置１０１との間でデータの送受信を行なう。印刷部Ｉ／Ｆ１３６は、画像処理エンジンである印刷部１３７とのインターフェースを制御している。
【００２５】
外部メモリ１３４は、外部メモリＩ／Ｆ１４０によりアクセスが制御されており、オプションとして接続されるハードディスク（ＨＤ）、ＳＳＤ（Solid State Drive）等を含んでいる。外部メモリ１３４は、フォントデータ、フォームデータ等を記憶する。さらに、画像形成装置で一時的に作成したり、外部とのやり取りを行うためのファイル１４３を記憶することも可能である。なお、ハードディスク等の外部メモリ１３４が接続されていない場合には、ＲＯＭ１３３のデータＲＯＭ１３３ｃに、情報処理装置１０１で利用される情報等を記憶することになる。なお、この外部メモリ１３４は１個に限らず複数備えるものであってもよい。例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【００２６】
操作部１４２には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。また、不図示のＮＶＲＡＭを有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。ＣＰＵ１３２は、ＲＯＭ１３３のプログラムＲＯＭ１３３ｂに記憶された制御プログラム等に基づき、印刷部Ｉ／Ｆ１３６を介して印刷部１３７に出力情報としての画像信号を出力する。また、ＣＰＵ１３２は各種Ｉ／Ｆ（ネットワークまたはＵＳＢ Ｉ／Ｆが主たるもの）１３８を介して情報処理装置１０１との通信処理が可能となっている。そして、情報処理装置１０１から送信される印刷データを受信すると共に、画像形成装置１０２内の情報等を情報処理装置１０１に通知可能な双方向通信経路が構成されている。画像形成装置１０２の情報（実プリンタの情報）には後述するパラメータ情報及び後述するステータス情報が含まれている。
【００２７】
＜システムの動作＞
図２は、基本プリンタドライバ１２６の印刷処理の一例を示すフローチャートである。まず、開始後の初期処理にて、基本プリンタドライバ１２６は、画像形成装置上に存在する画像処理用のパラメータ（パラメータ情報）の取得を行う（Ｓ２０１）。これは以降の画像レンダリング処理において必要なパラメータである。当該パラメータの取得は、図６における基本プリンタドライバ中のフィルタ機能部を通して、仮想画像形成装置のランゲージモニタと通信を行うことにより実現される。つまり、後述する図４におけるＳ４１１、Ｓ４１２にて応答がなされた結果の受信が行われる。なお、ここでパラメータが得られない場合には、画像の補正不足など、印刷不具合が発生する可能性があるが、そのような場合には、ある規定の値を用いて画像レンダリング処理は継続される。
【００２８】
次に、Ｓ２０２、Ｓ２０３では、基本プリンタドライバ１２６は、アプリケーションからの印刷用データ（画像データ）の入力を待つ。ここでアプリケーションからの印刷用データとはＸＰＳ（XML Paper Specification）データ形式を想定している。印刷用データが入力されたならば、Ｓ２０４へ進む。
【００２９】
Ｓ２０４では、基本プリンタドライバ１２６は、後段である仮想画像形成装置からのメッセージデータ入力を行う。後段からのメッセージデータとは、印刷用データの受信完了を示すメッセージ等である。処理すべきメッセージデータが届いたかどうかをＳ２０５で判断を行い、メッセージデータを受信していない場合にはＳ２０８へ進み、メッセージデータが届いた場合にはＳ２０６へ進む。
【００３０】
Ｓ２０６では、基本プリンタドライバ１２６は、メッセージ種別に応じた表示等の処理を行う（メッセージ種別の詳細については説明を省略する）。例えば、メッセージ種別の１つとして「印刷処理終了」があり、その場合にはＳ２０７にて処理終了と判定し、ドライバ処理の終了へ進む。異常終了などの場合もＳ２０７にてＹｅｓの判定となる。印刷終了でない場合にはＳ２０８に遷移し、基本プリンタドライバ１２６は、受信した印刷データのレンダリング処理が必要かどうかを判別する。処理の必要が無い場合には、さらにアプリケーションからのデータを受信するためにＳ２０２へ戻る。一方、レンダリング処理を行う場合にはＳ２０９へ進む。
【００３１】
Ｓ２０９では、基本プリンタドライバ１２６は、取得したパラメータを用いてレンダリング処理を行う。Ｓ２１０では、基本プリンタドライバ１２６は、レンダリング処理結果をＯＳにより提供されるスプーラへ保存する。その後、Ｓ２１１ではフィルタ機能を用いて、実際に印刷を行う画像形成装置が解釈可能な印刷データの形式（フォーマット）へデータのコンバートを行う。ここではスプーラ上でコンバートが行われる（Ｓ２１２）。つまりスプーラ上に変換後の印刷データが保存されている。そのコンバート処理の次では、Ｓ２１３にて標準のポートモニタへ印刷データの送信を依頼する。印刷データ送信が終了したら、さらに次の印刷データ送信を行うために、Ｓ２０５へ戻り、さらにメッセージ処理、レンダリング処理、コンバート処理、データ送信を繰り返し行う。
【００３２】
図３は、画像形成装置１０２の状況を表示するステータスウィンドウが実行する処理の一例を示すフローチャートである。開始後、基本プリンタドライバ１２６のステータスウィンドウは、初期通信処理（Ｓ３０１）を行い、ステータスウィンドウ自身の通信先の画像形成装置が正しいかどうかを判定する（Ｓ３０２）。具体的には、仮想画像形成装置１２７がエミュレーションを行う画像形成装置の機種名と、ステータスウィンドウ自身が表示を行う画像形成装置の機種名とが一致するか否かの判定を行う。機種名が正しくない場合には、ステータスウィンドウは、画像形成装置の機種が合致しない旨のエラー表示を行い（Ｓ３０４）、初期通信処理Ｓ３０１へ戻る。正しくならない限りは前記処理を繰り返す。Ｓ３０２にて合致した場合には、Ｓ３０３へ進み画像形成装置の状態情報を取得するためのステータス通信を行う。
【００３３】
Ｓ３０５では、基本プリンタドライバ１２６は、取得したステータスに応じて、ステータス情報表示の更新を行う。ステータスにおいて、Ｒｅａｄｙ状態の場合には、画像形成装置を管理することが可能となる表示制御がなされる。一方、不可能な場合には、例えばグレーアウト表示がなされる。また、基本プリンタドライバ１２６における表示機能自身の管理設定が、メニュー操作によって可能となるよう制御される。Ｒｅａｄｙ状態の判断をＳ３０６にて行い、Ｒｅａｄｙ状態の場合にはＳ３０７へ進みメニュー入力が行われているかどうかを判断する。Ｓ３０７にてメニュー入力が行われていると判断した場合に、Ｓ３０８へ進み、画像形成装置の管理制御（プリンタ制御）の場合には、Ｓ３０９にて操作メニューに応じた画像形成装置を制御するコマンドの送信を行う。
【００３４】
Ｓ３０８にて、基本プリンタドライバ１２６のステータスウィンドウは、ステータスウィンドウ自身の表示機能管理についてのメニュー操作であった場合には、Ｓ３１０にて表示機能管理項目の参照や設定、設定の反映が行われ、Ｓ３０３のステータス表示へ戻る。一方、Ｓ３０９に進みプリンタ制御コマンド送信を行った場合には、ステータスウィンドウは、Ｓ３１１にてデバイスからのプリンタ制御コマンドの応答を待つ。応答があった場合にはＳ３１２に進み応答受信処理を行い、Ｓ３１３ではコマンド応答結果に応じた処理を行う。応答結果に応じた処理とは、設定への結果表示などであり、例えば、設定にてエラーが返された場合には対処要請の表示を行う。
【００３５】
また、Ｓ３０６において印刷中と判定された場合、基本プリンタドライバ１２６は、印刷中のジョブ操作を可能にする。Ｓ３１４では、ステータスウィンドウは、実行されている印刷ジョブについての情報（処理状況）を取得すべくランゲージモニタにコマンドを送信し、コマンドの返信がなされた場合（Ｓ３１６）、Ｓ３１７に進む。Ｓ３１７では、ステータスウィンドウは、応答情報の解析を行い、Ｓ３１８にてジョブの各種詳細情報についての表示を行う。さらに、ステータスウィンドウは、メニュー入力（受付手段）を判断し、ジョブの一時停止操作を受けたのか（Ｓ３１９）、ジョブの削除操作を受けたのか（Ｓ３２０）の判断を行い、Ｓ３２１にてメニュー操作に応じたジョブ操作コマンドをランゲージモニタに送信する。すなわち、制御対象のジョブの指定と、当該ジョブに対する制御の指示内容とを受け付ける。
【００３６】
ステータスウィンドウは、Ｓ３２２にてコマンド応答を待ち、応答された場合（Ｓ３２３）、Ｓ３２４にて応答に応じた処理を行う。その後、ステータスウィンドウは、Ｓ３０３へ戻り、ステータス更新を行う。なお、Ｓ３２０にてＮｏの判定となった場合にはメニュー入力がない場合なので、ステータスウィンドウは、Ｓ３０３に戻り、ステータス更新を行う。
【００３７】
図４は、仮想画像形成装置の処理の一例を示すフローチャートである。
【００３８】
Ｓ４０１では、仮想画像形成装置１２７は、ポートからデータを入力する。Ｓ４０２では、仮想画像形成装置１２７は、処理の必要な印刷データが入力されたか否かを判断する。印刷データが入力されたと判断されたなら、仮想画像形成装置１２７は、Ｓ４０３にてデータをキューに格納する。なお、キューは、データの入力は一度に受け取れない場合もあり、その場合には分割して受信を行う。またここでは、入力されたデータは印刷用の印刷データとして説明を行っているが、仮想ＷＳＤ（Web Services for Devices）プリンタの場合では、ＷＳＤプリンタ機能としてのＷＥＢサービスにも応答を行う（不図示）。
【００３９】
次に、仮想画像形成装置１２７は、キュー上に処理すべきデータが無い場合には、Ｓ４０１のデータ入力からの処理に戻る。キュー上にデータが存在する場合にはＳ４０５に進み、キューからデータを取り出し、仮想画像形成装置としての処理を始める。Ｓ４０６では、仮想画像形成装置１２７のランゲージモニタは、実画像形成装置（実プリンタ）と双方向通信を行い、実画像形成装置の情報であるステータス情報を取得する。ランゲージモニタは、取得したステータス情報をエンジンモニタに送信し（Ｓ４０７）、さらにエンジンモニタからの情報を受信する。実画像形成装置のエンジン状態に合わせた画像イメージの送信をＳ４０８にて行う。その後は、ランゲージモニタは、残る画像イメージの処理をエンジンモニタと協働して行い、最終的に印刷が終了するまで繰り返し行う（Ｓ４０９）。印刷が終了するとＳ４０１へ戻る。
【００４０】
Ｓ４０２では、仮想画像形成装置１２７は、ポートからの印刷データが無いと判断された場合には、Ｓ４１１へ進み、基本ドライバのフィルタ機能部からのパラメータ取得コマンドの受信があるかどうか判断する。パラメータ取得コマンドが受信されていない場合、Ｓ４１５へ進む。パラメータ取得コマンドを受信した場合、Ｓ４１２へ進み、実画像形成装置に対してパラメータ取得のコマンド送信を行う。仮想画像形成装置１２７は、実画像形成装置からの応答を待機する（Ｓ４１３）。そして、仮想画像形成装置１２７は、実画像形成装置からの応答を受信した場合、Ｓ４１４にて、基本ドライバへの返信処理を行い、Ｓ４１５へ進む。
【００４１】
Ｓ４１５では、仮想画像形成装置１２７のランゲージモニタは、ステータスウィンドウからの画像形成装置管理制御（プリンタ制御）コマンドの受信があるかどうかの判定を行う。コマンド受信と判定したなら、コマンド内容を解析し、実画像形成装置に対し、解析結果に対応する制御コマンドの送信を行う（Ｓ４１６）。仮想画像形成装置１２７は、実画像形成装置からのコマンドの応答を待機する（Ｓ４１７）。そして、仮想画像形成装置１２７は、実画像形成装置からの応答を受信した場合、Ｓ４１８にてその内容をステータスウィンドウへさらに転送（返信）する。次にＳ４１９へ進み、仮想画像形成装置１２７は、他に実画像形成装置へ送信すべきものがあるか判断を行い、存在する場合にはＳ４２０へ進み、存在しない場合にはＳ４２１へ進む。
【００４２】
Ｓ４２０では、仮想画像形成装置１２７は、実画像形成装置へ送信するコマンド送信処理を行う。仮想画像形成装置１２７は、実画像形成装置からのコマンドの応答をＳ４２１にて待ち、応答が得られたならＳ４２２に進み、その応答を仮想画像形成装置内にて反映を行う。次にＳ４０１へ戻る。なお、Ｓ４２１において、処理すべきコマンドではないデータが到着している場合にはデータ読み捨てを行い、Ｓ４０１へ戻る。
【００４３】
図５は、画像形成装置（実プリンタ）１０２の印刷処理の一例を示すフローチャートである。Ｓ５０１では、画像形成装置１０２は、情報処理装置１０１からデータの入力を行い、入力データの判定をＳ５０２で行う。画像形成装置１０２は、処理が必要と判断した入力データがあった場合、Ｓ５０３へ進む。他の場合には、画像形成装置１０２は、さらにデータ入力を待機する。ここで意味の無いデータの場合には読み捨てがあってもよい。なお、入力データは、画像形成装置が認識可能なコマンド形式として入力される。
【００４４】
Ｓ５０３では、画像形成装置１０２は、入力データのコマンド解析を行い、解析結果に応じた処理を行う。まず、Ｓ５０４にてパラメータ取得コマンドと判断された場合、画像形成装置１０２は、画像形成装置自身が持つ画像補正用のパラメータを参照、獲得する（Ｓ５０５）。そして、画像形成装置１０２は、取得コマンドに対する返信を行うためのバッファ領域に、獲得したパラメータを設定し（Ｓ５０６）、コマンド返信処理にて返信を行う（Ｓ５０７）。その後、画像形成装置１０２は、Ｓ５０１のデータ入力待ちへ戻る。
【００４５】
Ｓ５０４でパラメータ取得コマンド以外の印刷装置制御コマンド（装置の設定参照や設定実行、装置の状態参照など）の場合には、それぞれの制御コマンドをＳ５０８にて判断し、制御コマンドに応じた処理をＳ５０９で行う。なお。コマンド種別にて応答する必要のないものも存在するが、その場合にはＳ５１０にてＮｏと判断し、Ｓ５０１のデータ入力待ちへ戻る。Ｓ５１０にてＹｅｓの判断した場合には、画像形成装置１０２は、返信処理をＳ５０７にて行う。その後、Ｓ５０１のデータ入力待ちへ戻る。
【００４６】
なお、Ｓ５０３にて印刷データ（印刷コマンドを含む）であると解析された場合、Ｓ５１１へ進み、画像形成装置１０２は、印刷データの解析を行い、画像形成装置の現像機（エンジン）の制御（Ｓ５１２）と共に印刷処理を実行する。印刷終了後は、Ｓ５０１のデータ入力待ちへ戻る。
【００４７】
以上説明したとおり、第１実施形態によれば、情報処理装置内の仮想画像形成装置（仮想プリンタ）が画像形成装置（実プリンタ）と双方向通信を行い、印刷データを作成するのに必要なパラメータを画像形成装置から取得する。これにより、画像形成装置との直接の双方向通信が出来ない基本プリンタドライバであっても、画像形成装置のパラメータを、仮想画像形成装置を介して取得することが可能となる。そのため、当該パラメータを利用した好適な印刷データを生成することが可能となる。
【００４８】
このように、基本プリンタドライバを利用する場合であっても、画像形成装置との間の双方向通信に依存した機能の利用が可能となる。また、基本プリンタドライバにおける処理を終了した印刷ジョブについても、仮想画像形成装置を介して状況表示や制御を行うことが可能となる。そのため、ＯＳの仕組みが変わり、画像形成装置との双方向通信の仕組みに変更があった場合においても、双方向通信に依存した機能の利用が可能となる。
【００４９】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００５０】
１０１  情報処理装置；１０２  画像形成装置；１０４  ネットワーク；１２６  基本プリンタドライバ；１２７  仮想画像形成装置
【図１】
2015204045.tif 000003
【図２】
2015204045.tif 000004
【図３】
2015204045.tif 000005
【図４】
2015204045.tif 000006
【図５】
2015204045.tif 000007
【図６】
2015204045.tif 000008