(57)【要約】【課題】  特定のデバイスドライバがインストールされていても、情報処理装置上のアプリケーションから特定の画像処理がなされない状態の印刷ジョブを画像形成装置に出力する。【解決手段】    画像形成装置と通信する情報処理装置において、第１のデバイスドライバが特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する際、第１のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスを行う。また、特定の入力データを受信した場合、当該受信した特定の入力データに対して画像処理を行うことなく、画像形成装置に出力するサービスを提供することを特徴とする。【選択図】  図６
2018081416.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置と通信する情報処理装置であって、
特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する第１のデバイスドライバと、
前記第1のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスと、特定の入力データを前記画像形成装置に出力するサービスとを提供する第２のデバイスドライバと、
前記第２のデバイスドライバが前記入力データから取得される情報と、前記画像形成装置から取得するステータス情報とを対応づけた表示情報を生成して表示手段に出力する表示制御手段と、を備え、
前記第２のデバイスドライバは、前記画像形成装置から取得するステータス情報に従い、特定の入力データを画像処理することなく前記画像形成装置に出力することを特徴とする情報処理装置。
【請求項２】
前記画像形成装置から取得するステータス情報と対応づける表示情報は、仮想デバイス名を割当て管理することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のデバイスドライバは、前記特定の入力データを保持するキューを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第２のデバイスドライバは、前記画像形成装置と通信するランゲージモニタを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記特定の入力データは、特定される所定のポートから受信することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記入力データは、前記画像形成装置のクリーニング処理で用いるベタ画像データであることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
画像形成装置と通信する情報処理装置の制御方法であって、
第１のデバイスドライバで特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する第１の出力工程と、
第２のデバイスドライバで、前記第1のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスと、特定の入力データを前記画像形成装置に出力するサービスとを提供するサービス工程と、
前記第２のデバイスドライバが前記入力データから取得される情報と、前記画像形成装置から取得するステータス情報とを対応づけた表示情報を生成して表示手段に出力する表示制御工程と、を備え、
前記第２のデバイスドライバで、前記画像形成装置から取得するステータス情報に従い、特定の入力データを画像処理することなく前記画像形成装置に出力することを特徴とする情報処理装置の制御方法。
【請求項８】
請求項７に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
情報処理装置から画像形成装置等の周辺機器を利用するには、一般的にはその周辺機器に対応した特定のデバイスドライバ（画像形成装置であればプリンタドライバ）を、情報処理装置上で動作するオペレーションシステム（以下ＯＳと呼ぶ）に組み込む必要がある。
【０００３】
画像形成装置の利用においては、前記プリンタドライバをアプリケーションから起動させ、印刷に必要な設定を行い、画像データおよび印刷設定(以下、これらをまとめて印刷ジョブと呼ぶ)を生成し、生成された印刷ジョブを画像形成装置に送信する。印刷ジョブを受信した画像形成装置は印刷設定に応じた画像生成処理（以下、レンダリングと呼ぶ）を行い、用紙への印刷処理を行う。
【０００４】
従来のプリンタドライバは、以下の３つのモジュールを主たる要素として構成される。ユーザやアプリケーションからの入力を管理するユーザインターフェース（以下ＵＩと呼ぶ）モジュール、印刷ジョブを生成する印刷ジョブ生成モジュール、制御装置と画像形成装置間の通信処理を制御する通信制御モジュール（以下、ランゲージモニタと呼ぶ）である。
これらのモジュール群から構成されるプリンタドライバはVersion３ドライバ（以下、Ｖ３ドライバと呼ぶ）と呼ばれている。ランゲージモニタは、ＯＳを介し印刷ジョブ生成モジュールにより生成された印刷ジョブを受信し、画像形成装置へ送信する。またランゲージモニタは、ユーザやアプリケーションから印刷ジョブのキャンセル等の要求を受信すると、要求に応じた処理を実施し、ジョブを制御する。
【０００５】
またランゲージモニタを拡張し、プリンタドライバからの印刷ジョブを送信するだけでなく、画像形成装置側から画像形成装置の装置情報を受信し、使用する印刷通信用のプロトコルをサポートしたランゲージモニタを搭載したＶ３ドライバが存在する。このプロトコルをサポートしたランゲージモニタにより、メモリ搭載量の少ない画像形成装置においても、画像形成装置内のメモリ状態を情報として絶えずプリンタドライバが確認することにより安定した印刷を実行することが可能となる。
そして、このプロトコルをサポートしたランゲージモニタにより情報処理装置側で画像形成装置の状態を事細かに収集し、本来画像形成装置内で行う印刷ジョブの管理、制御を行うことができる。
さらに収集した画像形成装置の状態やユーザへのメッセージ表示、画像形成装置に対する設定の入力などを情報処理装置上のアプリケーションで行うことが可能なシステムが広く製品化され利用されている。このように本来画像形成装置上のパネル上で表示、入力できる内容を情報処理装置上のアプリケーションで行うことで画像形成装置上のパネル表示装置の簡素化が可能であり製品コストを低く抑えることができる。さらには、画像形成装置上でレンダリングを行わず、情報処理装置上のＶ３ドライバでレンダリングを行った画像データを画像形成装置へ転送することによって、印刷を行うシステムも製品化され利用されている。
【０００６】
一方、近年Microsoft社により導入されたWindows8（登録商標）以降では、上記構成と異なるプリンタドライバ構成が採用された。新しいプリンタドライバを構成するモジュール群には、専用のランゲージモニタが含まれていない。また使用可能な通信ポートは、ＵＳＢ（Universal Serial Bus）ポート及びＷＳＤ（Web Service on Device）ポートに限られる。
この構成によるプリンタドライバは、Version４ドライバ（以下、Ｖ４ドライバと呼ぶ）と呼ばれる。Ｖ４ドライバには、ランゲージモニタがないため、印刷ジョブ生成モジュールにより生成された印刷ジョブの画像形成装置への送信処理は、Windowsに標準搭載されているスプーラ（以下ＯＳスプーラと呼ぶ）により提供される。ＯＳスプーラは印刷ジョブを保存するバッファを持ち、印刷ジョブの管理を行うモジュールである。ここで、Ｖ４ドライバは、特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを画像形成装置に出力するデバイスドライバとして機能する。
【０００７】
Ｖ３ドライバを用いた印刷システムでは前述した通り、ランゲージモニタはＯＳを介して印刷ジョブ生成モジュールにより生成された印刷ジョブを受信するが、この際印刷ジョブはＯＳスプーラに一時保存される。Ｖ３ドライバを用いた印刷システムではこの一時保存された印刷ジョブをファイルとして取得しておき、任意のタイミングで再度ＯＳスプーラに再投入することでも印刷を実行することができる。
【０００８】
この機能を利用し、ユーザにとって設定が困難であったり、その都度設定するのが煩わしかったりするが、必ず所定の印刷設定で印刷を実行する必要があるジョブをファイルとして保持しておき、任意のタイミングでその印刷ジョブを実行することが可能である。例えば、YMCKのベタ画像を印字したい場合ディザ処理や間引き処理がかからないような印刷設定をした上で印刷する必要があるが、その設定をした上で画像処理まで完了した印刷ジョブを用意しておけば容易にベタ画像が印刷できる。
【０００９】
前述したメモリ搭載量の少ない画像形成装置においては画像形成装置上にクリーニング用のデータ（黒ベタの帯を印字）などを保持しておくことができない。そのため、情報処理装置上にクリーニング用の印刷ジョブを保持しておき、ユーザからクリーニング要求があった場合にそれをＯＳスプーラに再投入することでクリーニングを実現していた。
【００１０】
また、Ｖ３ドライバを用いた印刷システムではユーザやアプリケーションから印刷指示が行われた後でも印刷設定の変更が可能であり、その手法が開示されている（[特許文献1]参照）。このような技術を用いることによりユーザが誤って印刷設定を行った場合でも印刷設定の変更と変更後の設定での画像処理が可能である。前述のクリーニングの場合もクリーニングジョブの場合は所定の印刷設定に変更するようにしておけばユーザが設定を意識しなくても正しい設定でクリーニングを実行することができた。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開2014−029633号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
Ｖ４ドライバを用いた印刷システムにおいてはＶ３ドライバを用いた印刷システムの場合と印刷ジョブのデータフローの仕様が変更されている。主な変更点は以下の2つである。
【００１３】
〔変更点１〕
Ｖ３ドライバを用いた印刷システムの場合は、ＯＳスプーラが印刷ジョブ生成モジュールにより生成された印刷ジョブの出力結果が保存されるバッファであった。しかし、Ｖ４ドライバを用いた印刷システムの場合はアプリケーションから出力される印刷データの入力もＯＳスプーラに対して行われるようになった。印刷データはＯＳスプーラに入力された後、ユーザやアプリケーションからの印刷設定を反映させ、所定の画像処理が行われ、印刷ジョブとして再度ＯＳスプーラに出力される。このようにＯＳスプーラに入力された印刷データは必ずＶ４ドライバの処理が実行されるようになった。このため、Ｖ３ドライバで実現できていた「任意のタイミングでファイルとして保持しておいた印刷ジョブをＯＳスプーラに投入することで画像処理を行うことなく印刷を実行する」ということができなくなってしまった。
【００１４】
〔変更点２〕
Ｖ４ドライバを用いた印刷システムの場合はＯＳスプーラに入力する印刷データの形式が標準ＸＰＳ（XML Paper Specification）形式でなければならなくなった。標準ＸＰＳ以外のデータ形式の印刷データは不正データとして削除されてしまい、Ｖ３ドライバを用いた印刷システムで用いていた印刷ジョブファイルは活用できなくなってしまった。仮にＶ３ドライバを用いた印刷システムで用いていた印刷ジョブファイルをＸＰＳ形式に変換したとしても標準XPS形式には含まれないデータが含まれているため、やはり不正データとして扱われてしまう。
【００１５】
以上の変更点によって、任意の設定を印刷ジョブに付加するのはＶ４ドライバのＵＩモジュールを通してユーザ自身が行うしかなくなってしまった。このため、ユーザが設定を間違えたり、デフォルト設定のまま印刷を行ったりしても正しい印字結果にならないという問題があった。例えば、YMCKのベタ画像を印字したい場合にディザ処理や間引き処理が行われる設定になってしまっているとベタ画像で印字されなくなってしまう。結果としてクリーニングの場合はクリーニング効果が低下するという問題もあった。
【００１６】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、特定のデバイスドライバがインストールされていても、情報処理装置上のアプリケーションから特定の画像処理がなされない状態の印刷ジョブを画像形成装置に出力できる仕組みを提供することである。
【課題を解決するための手段】
【００１７】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
画像形成装置と通信する情報処理装置であって、特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する第１のデバイスドライバと、前記第１のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスと、特定の入力データを前記画像形成装置に出力するサービスとを提供する第２のデバイスドライバと、前記第２のデバイスドライバが前記入力データから取得される情報と、前記画像形成装置から取得するステータス情報とを対応づけた表示情報を生成して表示手段に出力する表示制御手段と、を備え、前記第2のデバイスドライバは、前記画像形成装置から取得するステータス情報に従い、特定の入力データを画像処理することなく前記画像形成装置に出力することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、特定のデバイスドライバがインストールされていても、情報処理装置上のアプリケーションから特定の画像処理がなされない状態の印刷ジョブを画像形成装置に出力できる。
【図面の簡単な説明】
【００１９】
【図１】印刷システムの概略構成を示す図である。
【図２】Ｖ４ドライバのソフトウェア構成を示す図である。
【図３】仮想デバイスサービスのソフトウェア構成を示す図である。
【図４】画像形成装置のハード構成を示しブロック図である。
【図５】情報処理装置の制御方法を説明するフローチャートである。
【図６】情報処理装置の制御方法を説明するフローチャートである。
【図７】情報処理装置の構成を説明するブロック図である。
【図８】情報処理装置で表示されるＵＩ画面を示す図である。
【図９】情報処理装置の制御方法を説明するフローチャートである。
【図１０】印刷システムの概略構成を示す図である。
【発明を実施するための形態】
【００２０】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００２１】
図１は、本実施形態を示す印刷システムの概略構成を示す図である。なお、図中の太い実線の矢印は、印刷ジョブのやり取りがあることを示し、細い点線の矢印は、印刷ジョブ以外のデータのやり取りがあることを示している。
図１において、情報処理装置101にインストールされたアプリケーション102は、ユーザが目的に応じて利用を行うソフトウェアであり、ユーザはアプリケーション102を用いて印刷の開始を指示することができる。
【００２２】
Windows（登録商標、以後、本明細書中では、Windowsについて登録商標の表記を省略する）標準スプーラ104は、情報処理装置101内にインストールされているＯＳ（本実施形態ではMicrosoft（登録商標） Windowsとする）内の印刷用スプーラである。Windows標準スプーラ104は、アプリケーション102から印刷指示データを含む印刷ジョブをＶ４ドライバ103の入力として受信し、不正な入力データでなければデータを保存する。
【００２３】
Ｖ４ドライバ103は、Windows標準スプーラ104に入力データが保存されるとその情報を取得し、それに従い印刷ジョブを生成するソフトウェアである。生成が完了した印刷ジョブは再びWindows標準スプーラ104に保存される。Windows標準スプーラ104は、Ｖ４ドライバ103が生成した印刷ジョブを一時的に保存しておき、それらを生成された順に一つずつ出力する。
Windows標準スプーラ104は、仮想デバイスサービス106に対してネットワーク経由で印刷ジョブを送信する。本実施形態では、自分自身に対してデータを送信するループバックを用いた通信で印刷ジョブを送信する。このシステムでは、Windows標準スプーラ104はいかなるジョブも仮想デバイスサービス106へ送信する。
【００２４】
ステータスウィンドウ105は、画像形成装置107、108のステータスの表示や任意の設定等を行うことを可能とするソフトウェアである。ステータスウィンドウ105は、ＲＰＣ（Remote Procedure Call）クライアント機能を持っており、それを用いて仮想デバイスサービス106と通信を行う。なお、本実施形態ではＲＰＣ通信を例に記載するが、通信方式はTCP／IP通信であってもその他の通信であってもよい。
ステータスウィンドウ105は、仮想デバイスサービス106に対して状態情報取得を命令し、返信として受け取った状態情報に基づいてステータスの表示を行う。ステータスウィンドウ105は機種情報を持っており、本実施形態では、機種情報は製品名とする。
【００２５】
仮想デバイスサービス106は、Ｖ４ドライバ103、Windows標準スプーラ104、ステータスウィンドウ105に対して物理的な画像形成装置のように振る舞うエミュレーターソフトウェアである。仮想デバイスサービス106との通信はWindows上のネットワーク機能を利用する。
画像形成装置107、108は、情報処理装置101から受信した印刷ジョブに基づいて画像の形成を行う。画像形成装置107、108は機種情報を持っており、本実施形態では、機種情報は製品名とする。設定アプリケーション109は、仮想デバイス300、301の設定、管理を行うソフトウェアである。
【００２６】
図２は、図１に示したＶ４ドライバ103のソフトウェア構成を示す図である。
なお、従来のＶ３ドライバではＯＳが提供するアプリケーションインターフェース（ＡＰＩ）を介してアプリケーション102からＯＳ（ドライバを含む）を呼び出しており、Devmodeとよばれるバイナリデータを印刷設定用のデータとして使用していた。
【００２７】
図２において、ＯＳが提供するＡＰＩを利用するアプリケーション102はＧＤＩ（Graphic Device Interface）を呼び出して、描画処理を行う。Ｖ４ドライバのＵＩはＯＳが標準で搭載しているＵＩ（以下、ＯＳ標準ＵＩと呼ぶ）での表示となる。Ｖ３ドライバと同等のＵＩを使用するためには、ＯＳが提供するＶ４ドライバ用拡張ＵＩソフトウェア（以下、拡張ＵＩソフトウェアと呼ぶ）をインストールする必要がある。
【００２８】
ユーザがアプリケーション102で印刷を行う場合、拡張ＵＩソフトウェア201がインストールされていれば拡張ＵＩソフトウェア201のＵＩが表示され、そうでなければＯＳ標準ＵＩが表示される。
本実施形態では、情報処理装置101に拡張ＵＩソフトウェア201がインストールされているものとして説明を行うが、拡張ＵＩソフトウェア201がインストールされていなくてもよい。
【００２９】
印刷設定管理部202は拡張ＵＩソフトウェア201やＯＳ標準ＵＩで表示する印刷設定項目や同時に設定できない印刷設定項目の組み合わせ（以下、コンフリクトと呼ぶ）などを管理している。表示する印刷設定項目やコンフリクトは画像形成装置107、108のサポートしている機能、能力に応じて画像形成装置ごと(機種ごと)に変更が可能である。
【００３０】
印刷設定はＶ４ドライバでは、PrintTicketと呼ばれる、ＸＭＬ（eXtensible  Markup  Language）をベースとした新しい印刷設定フォーマットで管理される。XMLは、Ｖ３ドライバにおけるDEVMODE構造体をベースにする印刷設定に代わって登場した印刷設定フォーマットである。
【００３１】
印刷設定管理部202は、拡張ＵＩソフトウェア201やＯＳ標準ＵＩで設定された印刷設定情報も保持する。デバイス情報取得部203は印刷ジョブ生成部204で印刷ジョブを生成するために必要な画像形成装置の情報を取得する。本実施形態の場合は仮想デバイスサービス106を経由して画像形成装置107、108の情報を取得する。
デバイス情報取得部203はＲＰＣクライアント機能を持ち、仮想デバイスサービス106が持つ図３に示すＲＰＣサーバ311、321と通信を行うことでそれぞれ画像形成装置107、108の情報を取得する。
【００３２】
印刷ジョブ生成部204はWindows標準スプーラ104から取得した入力データに対しレンダリング等を行い、印刷ジョブを生成する。この際、デバイス情報取得部203から取得した画像形成装置の情報や印刷設定管理部202が持つ印刷設定に応じた画像処理を行い、印刷ジョブを生成する。印刷ジョブ生成部204は機種情報を持ち、印刷ジョブを生成する際に内部に機種情報を埋め込む。本実施形態では、機種情報は製品名とする。
【００３３】
印刷ジョブ生成部204が受け取るデータはＸＰＳである。Win32APIを利用するアプリケーション102がＧＤＩを呼び出すとＯＳ内部でＸＰＳに自動変換されて、ＸＰＳドライバ（本実施形態ではＶ４ドライバ103が呼び出される。ＷＰＦ（Windows Presentation  Foundation）アプリケーションから印刷する場合、そのままＸＰＳドライバが呼び出される。
ＰＤＬ変換部205は印刷ジョブを送信する画像形成装置が対応するＰＤＬ（Page Description Language）に変換する。デバイスＩＦ部206はWindows標準スプーラ104に生成した印刷ジョブを送信する。
【００３４】
図３は、図１に示した仮想デバイスサービス106のソフトウェア構成を示す図である。
図３において、仮想デバイスサービス106は１つ以上の仮想デバイスを持ち、仮想デバイスはそれぞれ1つの画像形成装置と接続される。
本実施形態では、仮想デバイスサービス106は、仮想デバイスを2つ持ち、各仮想デバイス300、301はそれぞれ画像形成装置107と画像形成装置108に接続されているものとする。仮想デバイスサービス106は、外部から仮想デバイスの登録／削除を受け付ける機能を持つ。
【００３５】
また仮想デバイスサービス106は、不図示のインストーラによる仮想デバイスの登録に際して情報処理装置101が持つ受信ポート番号（以降「受信ポート番号」と呼ぶ）の指定を必要とする。仮想デバイスサービス106は指定された受信ポート番号と仮想デバイスを紐づけて管理する。
【００３６】
また仮想デバイスサービス106は、登録された仮想デバイスを実行する機能を持つ。仮想デバイスの実行は、仮想デバイスサービス106が実行された時、または仮想デバイスが新たに登録されたときに行う。
【００３７】
仮想デバイス300は、受信部310、ＲＰＣサーバ311、仮想デバイススプーラ312、仮想デバイスランゲージモニタ313、ポートモニタ314から構成される。また、仮想デバイス300は、機種情報を持つ。本実施形態では機種情報は製品名とし、仮想デバイス300内の仮想デバイススプーラ312が持つものとする。
【００３８】
受信部310は、仮想デバイス300と紐づけられたポート番号を介してWindows標準スプーラ104から受け付けた印刷ジョブを、仮想デバイススプーラ312に引き渡す。
【００３９】
ＲＰＣサーバ311は、ＲＰＣ通信によりステータスウィンドウ105やデバイス情報取得部203などのＲＰＣクライアント機能をもつ外部モジュールと仮想デバイススプーラ312との通信を仲介する。
【００４０】
仮想デバイススプーラ312は、受信部310から引き渡された印刷ジョブを格納するキューを持ち、前記印刷ジョブの管理と、仮想デバイスランゲージモニタ313への送信を行う。
【００４１】
また仮想デバイススプーラ312は、管理している印刷ジョブに対する、印刷ジョブ情報取得や印刷ジョブ削除などの、各種アクセス手段を提供する。このアクセス手段は仮想デバイスランゲージモニタ313や設定アプリケーション109によって利用される。また仮想デバイススプーラ312は、ＲＰＣサーバ311を介して各種命令受信及び命令への返信を行う。また仮想デバイススプーラ312は、仮想デバイスランゲージモニタ313への各種命令送信及び命令への返信受付を行う。また本実施形態では、仮想デバイススプーラ312は、自身が所属している仮想デバイス300の機種情報として、製品名を持つものとする。
【００４２】
仮想デバイスランゲージモニタ313は、印刷ジョブの制御及び各種情報の管理を行うモジュールであり、仮想デバイススプーラ312から受信した印刷ジョブを、ポートモニタ314を介して画像形成装置107へ送信する。
また、仮想デバイスランゲージモニタ313は、ポートモニタ314を介して、画像形成装置107への各種命令の送信、及び、画像形成装置107からの情報取得を行う。
本実施形態では、画像形成装置107の印刷状況、各種状態及び設定情報、エラー情報などを取得する。また、画像形成装置107と接続された際に製品名を取得する。
【００４３】
また、仮想デバイスランゲージモニタ313は、自身が持つ情報と画像形成装置107から取得した情報に基づいて状態の判断を行う。エラー状態であると判断した場合、印刷処理を停止するなどのエラー処理を行う。また、仮想デバイスランゲージモニタ313は、仮想デバイススプーラ312からの各種命令受信及び命令への返信を行う。
例えば、仮想デバイススプーラ312を介してステータスウィンドウ105）から状態情報取得の命令を受け付けた場合は、前述の状態判断に基づいた状態情報と、機種情報を返信する。
【００４４】
ポートモニタ314は、画像形成装置107と接続された情報処理装置101のポートと、仮想デバイスランゲージモニタ313との通信の仲介を行う。画像形成装置107は機種ごとに取り扱える通信が異なる場合があり、この画像形成装置107ごとに特化した通信処理を行う。仮想デバイス301は、情報処理装置101が持つポートの内、仮想デバイス300とは別のポートを介して画像形成装置108と接続されている。仮想デバイス301の構成は、仮想デバイス300と同じであるため詳細な説明は省略する。
【００４５】
図４は、画像形成装置107、108のハード構成を示しブロック図である。本実施形態ではネットワーク接続された画像形成装置108を用いて説明する。
図４において、ＣＰＵ432は、画像形成装置107、108の全体の動作を制御している。ＲＡＭ439は、ＣＰＵ432の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またＲＡＭ439は、ＮＶＲＡＭ（Non−volatile ＲＡＭ：不揮発性ＲＡＭ）領域も備えており、図示しない増設用ソケットに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００４６】
ＲＯＭ433は、各種フォントを記憶するフォントＲＯＭ433a、ＣＰＵ432により実行される制御プログラム等を記憶するプログラムＲＯＭ433b、及び各種データを記憶するデータＲＯＭ433cを備えている。I/F制御部438では、情報処理装置101との間でデータの送受信を行なう。本実施形態では有線ＬＡＮによる送受信を行う。印刷部I/F436は、プリンタエンジンである印刷部437とのインターフェースを制御している。
【００４７】
外部メモリ434は、外部メモリI/F440によりアクセスが制御されており、オプションとして接続されるハードディスク（ＨＤ）、Solid State Disk（ＳＳＤ）等を含んでいる。
【００４８】
外部メモリ434は、フォントデータ、フォームデータ等を記憶する。さらに、画像形成装置で一時的に作成、外部とのやり取りを行うためのファイル443を記憶することも可能である。
【００４９】
なお、ハードディスク等の外部メモリ434が接続されていない場合には、ＲＯＭ433のデータＲＯＭ433cに、情報処理装置101で利用される情報等を記憶することになる。なお、この外部メモリ434は1個に限らず複数備えるものであってもよい。
例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
操作部442には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。また、不図示のＮＶＲＡＭを有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。
【００５０】
ＣＰＵ432は、ＲＯＭ433のプログラムＲＯＭ433b）に記憶された制御プログラム等に基づき、印刷部I/F436を介して印刷部437に出力情報としての画像信号を出力する。また、ＣＰＵ432は各種I/F（ネットワークまたはUSB I/Fが主たるもの）438を介して情報処理装置101との通信処理が可能となっている。
【００５１】
そして、情報処理装置101から送信される印刷ジョブを受信すると共に、画像形成装置107、108内の情報等を情報処理装置101に通知可能な双方向通信経路が構成されている。
【００５２】
印刷システムを用いて印刷が行われた場合のデータの流れを説明する。
情報処理装置内でユーザが利用を行うアプリケーション102から印刷の開始がなされると、Ｖ４ドライバ103が呼ばれ、印刷ジョブを作成する。この印刷ジョブの作成においては、画像形成装置上の動的な画像パラメータが用いられる。
ここで図２におけるデバイス情報取得部203においては、仮想デバイスサービス106を通じて情報の受信が行われる。この情報とともに印刷ジョブ生成部204にて印刷ジョブの生成を行い、さらにPDL変換部205にてPDL形式の印刷ジョブに変換を行う。
印刷ジョブは情報処理装置101上で動作するWindowsにおけるWindows標準スプーラ104機能へ渡される。Windows標準スプーラ上の印刷ジョブはWindowsネットワーク機能における標準ポートモニタを通して、Windowsネットワーク機能を通して仮想デバイスサービス106の受信部320へ送信される。
仮想デバイスの受信部320は印刷ジョブをネットワークから受信し、仮想デバイス301内の仮想デバイススプーラ322が持つキューへ格納する。仮想デバイススプーラ322はキューに格納された印刷ジョブに対して、仮想デバイスランゲージモニタ323とやりとりをしながら、仮想デバイス301内のポートモニタ324を介して、画像形成装置108へ送信する。仮想デバイススプーラ322は同時に双方向通信によって画像形成装置108の状態情報を受け取り、ＲＰＣサーバ321を介して各種命令受信及び命令への返信を行う。
【００５３】
ステータスウィンドウ105はWindowsネットワーク機能を介して仮想デバイスサービス106とやりとりし、画像形成装置108の状態表示や画像形成装置上の設定項目の編集等を行う。
【００５４】
図５は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例印刷システムにおける情報処理装置101にインストールされた、Ｖ４ドライバ103の印刷処理の一例である。なお、各ステップは、ＣＰＵ432が記憶された制御プログラム（図３に示したモジュールを含む）を実行することで実現される。
【００５５】
Ｖ４ドライバ103は開始後の初期処理にて、画像形成装置上に存在する画像処理用の画像パラメータの取得を行う（S501）。これは以降の画像レンダリング処理において必要な画像パラメータである。この取得処理では、図２におけるＶ４ドライバ103中のデバイス情報取得部203が、図３の仮想デバイスサービス106内のＲＰＣサーバ311、321と通信を行い、画像パラメータの取得を行う。
つまり後述する図６におけるS611、S612にて応答がなされた結果の受信が行われる。ここで画像パラメータが得られないとデバイス情報取得部203が判断した場合には、画像補正に不足が現れるなど、印刷不具合の可能性があるが、そのような場合には、ある規定の値を用いて画像レンダリング処理は継続される。
【００５６】
次に、S502でＶ４ドライバ103はアプリケーション102からの印刷ジョブデータの取得を開始し、S503で、Ｖ４ドライバ103は印刷ジョブの入力があるかどうかを判断する。印刷ジョブが入力されたとＶ４ドライバ103が判断した場合、処理をS504へ進める。
そして、S504で、Ｖ４ドライバ103は後段である仮想デバイスサービス106からのメッセージデータ入力を行う。ここで、後段からのメッセージデータとは、印刷ジョブの受信完了を示すメッセージ等である。
S505で、Ｖ４ドライバ103が処理すべきメッセージデータが届いたかどうかを判断する。ここで、メッセージデータを受信していないとＶ４ドライバ103が判断した場合、Ｖ４ドライバ103は処理をS508へ進める。
【００５７】
一方、S505でメッセージデータが届いているとＶ４ドライバ103が判断した場合、Ｖ４ドライバ103は処理をS506へ進める。S506では、ステータスウィンドウ105がメッセージ種別に応じた表示等の処理を情報処理装置101の表示部に対して行う。なお、メッセージ種の詳細については記載省略する。
ここで、メッセージ種の一つとしては、例えば「印刷処理終了」があり、そのようなメッセージデータを受信した場合、Ｖ４ドライバ103は、S507にて処理終了と判定、ドライバ処理の終了へ進む。なお、異常終了などのメッセージの場合もS507にてYesの判定となる。
【００５８】
一方、S507で、印刷終了でないとＶ４ドライバ103が判断した場合には、Ｖ４ドライバ103は処理をS508に進める。そして、S508で、Ｖ４ドライバ103は受信した印刷ジョブに対してデータ処理が必要かどうかを判別する。ここで、データ処理の必要が無いとＶ４ドライバ103が判断した場合には、さらにアプリケーション102からのデータを受信するために、Ｖ４ドライバ103は処理をS502へ戻す。
【００５９】
一方、S508にてデータ処理、例えば画像処理を行うとＶ４ドライバ103が判断した場合、Ｖ４ドライバ103は処理をS509へ進める。S509で、Ｖ４ドライバ103の印刷データ生成部204を用いて、取得した画像補正用パラメータを用いてレンダリング処理を行う。S510では、Ｖ４ドライバ103がレンダリング処理結果をWindows標準スプーラ104へ保存する。その後、S511で、Ｖ４ドライバ103は、Windows標準スプーラ104から印刷ジョブの情報（ドキュメント名、ユーザ名、コンピュータ名）を取得し、その情報を印刷ジョブに埋め込む。
ここで埋め込まれた印刷ジョブの情報は、印刷ジョブが仮想デバイスサービス106へ送信された後に、可動デバイス301の仮想デバイスランゲージモニタ323により読み出され、画像形成装置108に印刷中のジョブの情報として報知される。ここで報知された印刷ジョブの情報は、その後、ステータスウィンドウ105により取得され、詳細は後述する図８に示すＵＩ画面の印刷ジョブ情報部805に表示される。
S512では、Windows標準スプーラ104上で、実際に印刷を行う画像形成装置108が入力可能な印刷ジョブの形式へデータのコンバートを行う。S513では、コンバートされた印刷ジョブをWindows標準スプーラ104へ保存する。S514では、Windowsネットワーク機能におけるWindows標準ポートモニタ（不図示）へ印刷ジョブの送信を依頼し、仮想デバイスサービス106へ送信を行う。
このようにして、Ｖ４ドライバ103が印刷ジョブの送信が終了したら、さらに次の印刷ジョブ送信を行うために、処理をS505へ戻す。
そして、Ｖ４ドライバ103は、S505以降の処理、メッセージ処理、レンダリング処理、データコンバート処理、データ送信処理を繰り返し行う。なお、上記処理では、印刷処理を終了させているが、終了ではなく、印刷ジョブ待ちとしても良い。
【００６０】
図６は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、情報処理装置101上で実行される、仮想デバイスサービス106の処理例である。なお、各ステップは、ＣＰＵ432が記憶された制御プログラム（図３に示したモジュールを含む）を実行することで実現される。以下、ＣＰＵ432が実行する仮想デバイス301を主体としてデータ処理を説明する。
【００６１】
S601にて仮想デバイス301の受信部320からデータを入力する。より具体的には、仮想デバイス301の受信部320がWindowsネットワーク機能のポートからデータを入力する。S602で、仮想デバイスサービス106の仮想デバイススプーラ322が処理の必要な印刷データが入力されたかどうかを判断する。ここで、処理の必要な印刷データが入力されたと仮想デバイススプーラ322が判断した場合、仮想デバイススプーラ322は処理をS603へ進める。
S603にて、仮想デバイススプーラ322は、受信部320が受信した入力データを仮想デバイススプーラ322のキューに積む。なお、ここで不図示ではあるが、入力データを一度に受け取れない場合もあり、その場合には分割して受信を行いながら、その都度キューに積む処理の中断、継続が行われ、最終的にキューに積む処理は完了する。
【００６２】
S604で、仮想デバイススプーラ322のキュー上に処理すべきデータがあるかどうかを判断する。ここで、キュー上にデータが無いと仮想デバイスサービス106が判断した場合には、処理をS601へ戻して、データ入力から処理を繰り返す。
一方、S604で、キュー上にデータが存在すると仮想デバイスサービス106が判断した場合、仮想デバイスサービス106は処理をS605に進める。
S605で仮想デバイスランゲージモニタ323がキューから印刷ジョブに埋め込まれた情報を取り出し、画像形成装置108へ向けて送信処理を制御する。S606で、仮想デバイスランゲージモニタ323は、S511でＶ４ドライバ103により印刷ジョブに埋め込まれた情報（ドキュメント名、ユーザ名、コンピュータ名）を取得し、画像形成装置108に印刷中のジョブの情報として報知する。
【００６３】
ここで、画像形成装置108に報知された印刷ジョブの情報はその後、ステータスウィンドウ105により取得され、図８に示すＵＩ画面上の印刷ジョブ情報部805に表示される。
S607では、仮想デバイスランゲージモニタ323は画像形成装置108との間でステータス情報を通信により取得する。S608では、仮想デバイスランゲージモニタ323が取得したステータス情報を利用して、さらに画像形成装置108のエンジン状態に合わせた画像データの送信を行う。その後、S609で、仮想デバイスランゲージモニタ323が送信すべき画像データが残っているかどうかを判断する。
ここで、仮想デバイスランゲージモニタ323が送信すべき画像データが残っていると判断した場合、処理をS607へ戻し、仮想デバイスランゲージモニタ323が送信すべき画像データが残っていないと判断した場合は、処理をS601に戻す。
【００６４】
一方、S602にて、仮想デバイススプーラ322が受信部320からの印刷ジョブが無いと判断した場合には、仮想デバイススプーラ322は処理をS611へ進める。
S611で、仮想デバイススプーラ322は、Ｖ４ドライバ103からの画像形成装置108を制御するコマンドの受信があるかどうか判断する。ここで、画像パラメータ取得コマンドの受信は無いと仮想デバイススプーラ322が判断した場合、仮想デバイススプーラ322は、処理をS615へ進める。
【００６５】
一方、S611で、仮想デバイススプーラ322がパラメータ取得コマンドを取得したと判断した場合、仮想デバイススプーラ322は処理をS612へ進める。
S612で、仮想デバイススプーラ322は、画像形成装置108に対して画像パラメータ取得のコマンド送信を行う。S613で、仮想デバイススプーラ322は、画像形成装置108からの応答を待つ。そして、画像形成装置108から応答を得た場合、S614で、仮想デバイススプーラ322は、Ｖ４ドライバ103側への返信処理を行う。
【００６６】
S615では、仮想デバイススプーラ322は、ステータスウィンドウ105等からの画像形成装置108を制御するコマンドの受信があるかどうかを判断する。ここで、仮想デバイススプーラ322が制御コマンドを受信したと判断した場合、仮想デバイススプーラ322は処理をS616へ進める。
S616で、仮想デバイススプーラ322が制御コマンド内容を解析し、画像形成装置108に対し、解析結果に対応する制御コマンドの送信を行い、処理をS617へ進める。
【００６７】
S617で、仮想デバイススプーラ322は、画像形成装置108から当該コマンドの応答を待つ。そして、画像形成装置108から応答が得られた場合、仮想デバイススプーラ322は、処理をS618へ進める。S618で、仮想デバイススプーラ322は画像形成装置108から応答された内容をステータスウィンドウ105等へPRCサーバ321を介して返答する。
S619で、仮想デバイススプーラ322は、他に画像形成装置108へ送信すべきものがあるか判断を行う。ここで、他に画像形成装置108に送信すべきものが存在すると判断した場合、仮想デバイススプーラ322は処理をS620へ進める。
【００６８】
一方、S619で他に画像形成装置108に送信すべきものが存在しないと仮想デバイススプーラ322が判断した場合、処理をS623へ進める。
S620では、仮想デバイススプーラ322が画像形成装置108へ制御コマンドを送信する処理を行う。そして、S621で、仮想デバイススプーラ322がその制御コマンドの応答を待つ。ここで、画像形成装置108から当該制御コマンドに対して応答が得られた場合、処理をS622に進める。
【００６９】
S622で、仮想デバイススプーラ322は、画像形成装置108から応答された内容を1仮想デバイスサービス106内にて反映を行い、処理をS601へ戻す。
一方、S623では、仮想デバイススプーラ322は、処理すべき制御コマンドではないが、なんらかのデータが到着しているということであるので、その場合にはデータ読み捨てを行い、処理をS601へ戻す。
【００７０】
図７は、本実施形態を示す情報処理装置の構成を説明するブロック図である本例は、情報処理装置101のステータスウィンドウ105の構成例に対応し、以下、仮想デバイスサービス106の仮想デバイス301が画像形成装置108と通信する処理を説明する。
【００７１】
図７において、アプリ制御部701はステータスウィンドウ105の動作を制御する。アプリ制御部701は、操作部705において、ユーザからの入力があったときは、それに従った表示を表示部706に表示するように指示する。
また、アプリ制御部701は、入力内容が画像形成装置108への指示が必要な場合はデバイス通信部708に仮想デバイスサービス106に画像形成装置108への指示を送信するよう指示する。
また、アプリ制御部701は、入力内容が画像形成装置108への印刷指示の場合は印刷ジョブ送信部707に入力内容に合わせた印刷ジョブを送信するように指示する。また、アプリ制御部701は、デバイス情報解析部704から画像形成装置108の状態変化が通知された場合は変化後の状態に合わせた表示を行うよう表示部706に指示する。
ハードウエアであるＲＯＭ702は主に表示部に表示するテキスト情報やフォント情報、BMP情報などが保存されている。ＲＡＭ703は、アプリ制御部701が各種制御を行うための一時情報が保存されており、デバイスの状態情報やユーザからの入力内容などを保存する。
デバイス情報解析部704は、デバイス通信部708が受信したデバイスの状態情報を解析し、表示部706に表示すべき状態を決定し、アプリ制御部701に通知する。
操作部705は、情報処理装置101の持つ入力ＩＦ709からの情報を基にユーザからの入力、操作内容を特定し、アプリ制御部701に通知する。入力ＩＦ709は情報処理装置101上の入力ＩＦであり、不図示のキーボードやマウスなどである。
表示部706はアプリ制御部701の指示に従い表示制御を実行して、情報処理装置101の持つ表示ＩＦ710に所定の表示を行う。ハードウエアである表示ＩＦ710は情報処理装置101上の表示ＩＦとして機能し、不図示のディスプレイなどで構成される。
【００７２】
印刷ジョブ送信部707は、アプリ制御部701からの指示をもとに印刷ジョブの生成を行い、生成した印刷ジョブを送信するようにデバイス通信部708に指示する。
印刷ジョブの生成は例えば、操作部705で「クリーニング実行」が指定された場合は、情報処理装置101上の外部メモリ711に保存されている生成済みのクリーニングジョブファイル712を取得してくるだけでよい。クリーニングジョブファイル712は本実施形態では不図示のインストーラでステータスウィンドウ105をインストールする際に外部メモリ711に保存される。
また、本実施形態ではクリーニングジョブファイルのみ例示しているが、その他の印刷ジョブを外部メモリ711に保存しておくことで同様に印刷を実行することができる。外部メモリ711は情報処理装置101上の不揮発性メモリであり、HDDなど何でもよい。
【００７３】
一方、例えば、操作部705で「デバイス状態の印刷指示（以下ステータスプリントと呼ぶ）」が指定された場合はＲＡＭ703に保存されている画像形成装置108の様々な情報を取得し、所定のレイアウトに合わせて印刷ジョブを生成する。これらは印刷ジョブ生成の一例であり、他の手段で印刷ジョブを生成してもよい。
【００７４】
デバイス通信部708は、アプリ制御部701などからの指示で仮想デバイスサービス106と通信を行う。通信を行うことで仮想デバイスサービスが持つ画像形成装置108の状態情報を取得したり、仮想デバイスサービス106に画像形成装置108への指示を行ったりする。
【００７５】
ここで、デバイス通信部708が仮想デバイスサービス106と通信を行うにあたり必要な仮想デバイスサービス固有情報の取得方法を説明する。仮想デバイスサービス固有情報とは本実施形態では仮想デバイスサービス106の存在する情報処理装置101のIPアドレスと仮想デバイス301と紐づけられた受信ポート番号を指すものとして以降は説明する。
【００７６】
ステータスウィンドウ105は、不図示のランチャから起動される。ランチャは不図示のインストーラでステータスウィンドウ105をインストールする際に同時に情報処理装置101にインストールされる。ランチャは情報処理装置101にインストールされているＶ４ドライバ103をＯＳのAPIを使用して取得する。ランチャは取得したＶ４ドライバ103のうち、外部メモリ711上に保存されているインストール時設定情報713があるＶ４ドライバ103のプリンタ名を表示する。
プリンタ名とはインストールしたＶ４ドライバ103に対するユーザが変更可能な名称である。インストール時設定情報713についての詳細は後述するが、ここにはインストールされているＶ４ドライバ103に対応したプリンタ名の情報が含まれる。
【００７７】
ユーザはこの表示されているプリンタ名のうちの１つを選択することで、選択したプリンタ名を持つ画像形成装置108に対応するステータスウィンドウ105を起動することができる。そして、起動されたステータスウィンドウ105は自身が接続するべき画像形成装置108に対応するプリンタ名を取得した状態で起動する。
【００７８】
次にデバイス通信部708はステータスウィンドウ105起動時に、取得したプリンタ名と紐づいている仮想デバイスサービス固有情報をインストール時設定情報713から取得する。
【００７９】
インストール時設定情報713は本実施形態における印刷システムを不図示のインストーラでインストールする際に設定した各種情報を外部メモリ711に保存したものである。
ここで、外部メモリ711に保存する方法として、情報処理装置101上のレジストリに保存してもよいし、設定ファイルとしてＨＤＤに保存するのであってもよい。本実施形態における印刷システムでは、Ｖ４ドライバ103と仮想デバイスサービス106が紐づいている必要がある。
そのためにＶ４ドライバ103のプリンタ名と仮想デバイス固有情報を紐づけてインストール時設定情報713として保存している。本実施形態ではＶ４ドライバ103のプリンタ名と仮想デバイス固有情報をインストール時設定情報713の具体例として記載しているが、例えば画像形成装置108のデバイスＩＤなど他にも様々な情報を含んでいてもよい。
【００８０】
以上説明したような手段で取得した仮想デバイスサービス固有情報とＲＰＣクライアント機能を使ってデバイス通信部708は仮想デバイスサービス106と通信が可能となる。
これにより、画像形成装置108の状態の取得、画像形成装置108への指示、印刷ジョブの送信を行うことができる。ここで、通信手段としてＲＰＣ通信を例に挙げたが、仮想デバイスサービス固有情報を使ってTCP／IP通信など他の通信手段で通信を行うようにしてもよい。
【００８１】
図８は、図３に示した仮想デバイススプーラ322のキューに印刷ジョブがない時のステータスウィンドウ105の画面例を示す図である。
図８において、表示ＩＦ710に表示されるステータスウィンドウTOP画面801は、選択された仮想デバイスのステータスの内容に応じてメインメッセージ部802、ステータス画面部803の表示を切り替える。補助メッセージ部804はステータスの補足情報などを表示する。
【００８２】
印刷ジョブ情報部805は、印刷中のジョブの情報（ドキュメント名、ユーザ名、コンピュータ名）を表示するが、本画面は仮想デバイススプーラ322のキューに印刷ジョブがないときの画面例なので、印刷中のジョブの情報は表示されていない。
【００８３】
ジョブキャンセルボタン806は、ユーザが押下することで、印刷中のジョブの印刷をキャンセルすることができる。エラースキップボタン807は、何らかのエラーによりジョブの印刷が止まっているときにユーザが押下することで、そのエラーをスキップ（無視し）、印刷を再開させることができる。
本画面は仮想デバイススプーラ322のキューに印刷ジョブがないときの画面例であるので、ジョブキャンセルボタン806およびエラースキップボタン807は無効になっている。
【００８４】
メニュー表示部808にはステータスウィンドウから実行可能なメニューが表示される。メニューには仮想デバイススプーラ322のキューにあるジョブリストが閲覧できる「ジョブ」、画像形成装置108への様々な設定や指示が可能な「メニュー」、ステータスウィンドウ105）の説明を表示する「ヘルプ」などが表示される。「メニュー」を選択すると前述した「クリーニング実行」や「ステータスプリント」なども表示され、実行することができる。なお、本実施形態において、画像形成装置108から取得するステータス情報と対応づける表示情報は、仮想デバイス名（VirtualPrinter_1）を割当て管理している。
【００８５】
図９は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、ステータスウィンドウ105がクリーニングジョブを仮想デバイスサービスに送信する処理例である。本実施形態では仮想デバイス301が画像形成装置108と通信する場合の例を用いて説明する。ここで、クリーニングジョブは、クリーニング処理で使用するYMCKのベタ画像データであるを一例とする。
【００８６】
ステータスウィンドウ105のデバイス通信部708は、起動時に図７で説明した方法でインストール時設定情報713から仮想デバイスサービス固有情報を取得する（S901）。ステータスウィンドウ105の操作部705は入力ＩＦ709を介してユーザからの入力を監視する（S902）。ここで、ユーザからの入力がないとステータスウィンドウ105のアプリ制御部701が判断した場合はユーザからの入力の監視を継続する。
【００８７】
S902において、ユーザからの入力があったとステータスウィンドウ105が判断した場合、その入力内容が「クリーニング実行」指示であるかをアプリ制御部701が判断する（S903）。ここで、入力内容が「クリーニング実行」指示であるとアプリ制御部701が判断した場合、印刷ジョブ送信部707は外部メモリ711に保持しているクリーニングジョブファイル712を取得する（S904）。
【００８８】
そして、アプリ制御部701は、外部メモリ711から取得したクリーニングジョブファイル712をS901において取得した仮想デバイスサービス固有情報が示す仮想デバイスサービス106に対して送信して（S905）、本処理を終了する。
これにより、仮想デバイスサービス106は仮想デバイスサービス固有情報に含まれる受信ポート番号に対応する仮想デバイス301の印刷ジョブを格納するキューにクリーニングジョブを格納し、クリーニングジョブが実行される。
【００８９】
以上により、Ｖ４ドライバ103を用いた印刷システムにおいても、ドライバに画像処理を実行させることなく、情報処理装置101上のステータスウィンドウ105）が持つ任意の印刷ジョブを実行することが可能となる。
【００９０】
〔第２実施形態〕
図１０は、本実施形態を示す情報処理装置を適用する印刷システムの構成を示す図である。なお、図中の太い実線の矢印は、印刷ジョブのやり取りがあることを示し、細い点線の矢印は、印刷ジョブ以外のデータのやり取りがあることを示している。
【００９１】
本システム構成は、第１実施形態で図１を用いて示したシステム構成に、2台の情報処理装置1001、1011をネットワーク経由で接続したものである。2台の情報処理装置1001、1011はそれぞれクライアントとして機能し、サーバとして機能する情報処理装置101を経由して、画像形成装置107、108に印刷を実行させることができる。
【００９２】
クライアントとして機能する情報処理装置1001、1011内には、アプリケーション1002、1012、Ｖ４ドライバ1003、1013、Windows標準スプーラ1004、1014、ステータスウィンドウ1005、1015がある。これらについての説明は、実施形態1と同様である。本実施形態と第１実施形態のシステム構成では、以下のような構成の違いがある。
【００９３】
Windows標準スプーラ1004、1014は、それぞれの送信先ポートとして登録されたプリンタに対して、ネットワーク経由で印刷ジョブを送信する。本実施形態では、サーバとして機能する別の情報処理装置101内の仮想デバイスサービス106に対して、ネットワーク経由で印刷ジョブを送信することになる。
【００９４】
ステータスウィンドウ1005、1015は、サーバとして機能する情報処理装置101内の仮想デバイスサービス106と通信を行う。これにより、第１の実施形態と同様の方法で、ステータスウィンドウ1005、1015は自身が持つ任意の印刷ジョブを実行することが可能となる。システムとして実行される処理は図１の各ブロック同様と考えてよい。  
【００９５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばASIC）によっても実現可能である。
【符号の説明】
【００９６】
101  情報処理装置
102  アプリケーション
103  Ｖ４ドライバ
105  ステータスウィンドウ
106  仮想デバイスサービス
107、108  画像形成装置
109  設定アプリケーション
【図１】
2018081416.tif 000003
【図２】
2018081416.tif 000004
【図３】
2018081416.tif 000005
【図４】
2018081416.tif 000006
【図５】
2018081416.tif 000007
【図６】
2018081416.tif 000008
【図７】
2018081416.tif 000009
【図８】
2018081416.tif 000010
【図９】
2018081416.tif 000011
【図１０】
2018081416.tif 000012