JP2018081416A - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents
情報処理装置、情報処理装置の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2018081416A JP2018081416A JP2016222261A JP2016222261A JP2018081416A JP 2018081416 A JP2018081416 A JP 2018081416A JP 2016222261 A JP2016222261 A JP 2016222261A JP 2016222261 A JP2016222261 A JP 2016222261A JP 2018081416 A JP2018081416 A JP 2018081416A
- Authority
- JP
- Japan
- Prior art keywords
- image forming
- forming apparatus
- information
- virtual device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Control Or Security For Electrophotography (AREA)
Abstract
【課題】 特定のデバイスドライバがインストールされていても、情報処理装置上のアプリケーションから特定の画像処理がなされない状態の印刷ジョブを画像形成装置に出力する。【解決手段】画像形成装置と通信する情報処理装置において、第1のデバイスドライバが特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する際、第1のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスを行う。また、特定の入力データを受信した場合、当該受信した特定の入力データに対して画像処理を行うことなく、画像形成装置に出力するサービスを提供することを特徴とする。【選択図】 図6
Description
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
情報処理装置から画像形成装置等の周辺機器を利用するには、一般的にはその周辺機器に対応した特定のデバイスドライバ(画像形成装置であればプリンタドライバ)を、情報処理装置上で動作するオペレーションシステム(以下OSと呼ぶ)に組み込む必要がある。
画像形成装置の利用においては、前記プリンタドライバをアプリケーションから起動させ、印刷に必要な設定を行い、画像データおよび印刷設定(以下、これらをまとめて印刷ジョブと呼ぶ)を生成し、生成された印刷ジョブを画像形成装置に送信する。印刷ジョブを受信した画像形成装置は印刷設定に応じた画像生成処理(以下、レンダリングと呼ぶ)を行い、用紙への印刷処理を行う。
従来のプリンタドライバは、以下の3つのモジュールを主たる要素として構成される。ユーザやアプリケーションからの入力を管理するユーザインターフェース(以下UIと呼ぶ)モジュール、印刷ジョブを生成する印刷ジョブ生成モジュール、制御装置と画像形成装置間の通信処理を制御する通信制御モジュール(以下、ランゲージモニタと呼ぶ)である。
これらのモジュール群から構成されるプリンタドライバはVersion3ドライバ(以下、V3ドライバと呼ぶ)と呼ばれている。ランゲージモニタは、OSを介し印刷ジョブ生成モジュールにより生成された印刷ジョブを受信し、画像形成装置へ送信する。またランゲージモニタは、ユーザやアプリケーションから印刷ジョブのキャンセル等の要求を受信すると、要求に応じた処理を実施し、ジョブを制御する。
これらのモジュール群から構成されるプリンタドライバはVersion3ドライバ(以下、V3ドライバと呼ぶ)と呼ばれている。ランゲージモニタは、OSを介し印刷ジョブ生成モジュールにより生成された印刷ジョブを受信し、画像形成装置へ送信する。またランゲージモニタは、ユーザやアプリケーションから印刷ジョブのキャンセル等の要求を受信すると、要求に応じた処理を実施し、ジョブを制御する。
またランゲージモニタを拡張し、プリンタドライバからの印刷ジョブを送信するだけでなく、画像形成装置側から画像形成装置の装置情報を受信し、使用する印刷通信用のプロトコルをサポートしたランゲージモニタを搭載したV3ドライバが存在する。このプロトコルをサポートしたランゲージモニタにより、メモリ搭載量の少ない画像形成装置においても、画像形成装置内のメモリ状態を情報として絶えずプリンタドライバが確認することにより安定した印刷を実行することが可能となる。
そして、このプロトコルをサポートしたランゲージモニタにより情報処理装置側で画像形成装置の状態を事細かに収集し、本来画像形成装置内で行う印刷ジョブの管理、制御を行うことができる。
さらに収集した画像形成装置の状態やユーザへのメッセージ表示、画像形成装置に対する設定の入力などを情報処理装置上のアプリケーションで行うことが可能なシステムが広く製品化され利用されている。このように本来画像形成装置上のパネル上で表示、入力できる内容を情報処理装置上のアプリケーションで行うことで画像形成装置上のパネル表示装置の簡素化が可能であり製品コストを低く抑えることができる。さらには、画像形成装置上でレンダリングを行わず、情報処理装置上のV3ドライバでレンダリングを行った画像データを画像形成装置へ転送することによって、印刷を行うシステムも製品化され利用されている。
そして、このプロトコルをサポートしたランゲージモニタにより情報処理装置側で画像形成装置の状態を事細かに収集し、本来画像形成装置内で行う印刷ジョブの管理、制御を行うことができる。
さらに収集した画像形成装置の状態やユーザへのメッセージ表示、画像形成装置に対する設定の入力などを情報処理装置上のアプリケーションで行うことが可能なシステムが広く製品化され利用されている。このように本来画像形成装置上のパネル上で表示、入力できる内容を情報処理装置上のアプリケーションで行うことで画像形成装置上のパネル表示装置の簡素化が可能であり製品コストを低く抑えることができる。さらには、画像形成装置上でレンダリングを行わず、情報処理装置上のV3ドライバでレンダリングを行った画像データを画像形成装置へ転送することによって、印刷を行うシステムも製品化され利用されている。
一方、近年Microsoft社により導入されたWindows8(登録商標)以降では、上記構成と異なるプリンタドライバ構成が採用された。新しいプリンタドライバを構成するモジュール群には、専用のランゲージモニタが含まれていない。また使用可能な通信ポートは、USB(Universal Serial Bus)ポート及びWSD(Web Service on Device)ポートに限られる。
この構成によるプリンタドライバは、Version4ドライバ(以下、V4ドライバと呼ぶ)と呼ばれる。V4ドライバには、ランゲージモニタがないため、印刷ジョブ生成モジュールにより生成された印刷ジョブの画像形成装置への送信処理は、Windowsに標準搭載されているスプーラ(以下OSスプーラと呼ぶ)により提供される。OSスプーラは印刷ジョブを保存するバッファを持ち、印刷ジョブの管理を行うモジュールである。ここで、V4ドライバは、特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを画像形成装置に出力するデバイスドライバとして機能する。
この構成によるプリンタドライバは、Version4ドライバ(以下、V4ドライバと呼ぶ)と呼ばれる。V4ドライバには、ランゲージモニタがないため、印刷ジョブ生成モジュールにより生成された印刷ジョブの画像形成装置への送信処理は、Windowsに標準搭載されているスプーラ(以下OSスプーラと呼ぶ)により提供される。OSスプーラは印刷ジョブを保存するバッファを持ち、印刷ジョブの管理を行うモジュールである。ここで、V4ドライバは、特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを画像形成装置に出力するデバイスドライバとして機能する。
V3ドライバを用いた印刷システムでは前述した通り、ランゲージモニタはOSを介して印刷ジョブ生成モジュールにより生成された印刷ジョブを受信するが、この際印刷ジョブはOSスプーラに一時保存される。V3ドライバを用いた印刷システムではこの一時保存された印刷ジョブをファイルとして取得しておき、任意のタイミングで再度OSスプーラに再投入することでも印刷を実行することができる。
この機能を利用し、ユーザにとって設定が困難であったり、その都度設定するのが煩わしかったりするが、必ず所定の印刷設定で印刷を実行する必要があるジョブをファイルとして保持しておき、任意のタイミングでその印刷ジョブを実行することが可能である。例えば、YMCKのベタ画像を印字したい場合ディザ処理や間引き処理がかからないような印刷設定をした上で印刷する必要があるが、その設定をした上で画像処理まで完了した印刷ジョブを用意しておけば容易にベタ画像が印刷できる。
前述したメモリ搭載量の少ない画像形成装置においては画像形成装置上にクリーニング用のデータ(黒ベタの帯を印字)などを保持しておくことができない。そのため、情報処理装置上にクリーニング用の印刷ジョブを保持しておき、ユーザからクリーニング要求があった場合にそれをOSスプーラに再投入することでクリーニングを実現していた。
また、V3ドライバを用いた印刷システムではユーザやアプリケーションから印刷指示が行われた後でも印刷設定の変更が可能であり、その手法が開示されている([特許文献1]参照)。このような技術を用いることによりユーザが誤って印刷設定を行った場合でも印刷設定の変更と変更後の設定での画像処理が可能である。前述のクリーニングの場合もクリーニングジョブの場合は所定の印刷設定に変更するようにしておけばユーザが設定を意識しなくても正しい設定でクリーニングを実行することができた。
V4ドライバを用いた印刷システムにおいてはV3ドライバを用いた印刷システムの場合と印刷ジョブのデータフローの仕様が変更されている。主な変更点は以下の2つである。
〔変更点1〕
V3ドライバを用いた印刷システムの場合は、OSスプーラが印刷ジョブ生成モジュールにより生成された印刷ジョブの出力結果が保存されるバッファであった。しかし、V4ドライバを用いた印刷システムの場合はアプリケーションから出力される印刷データの入力もOSスプーラに対して行われるようになった。印刷データはOSスプーラに入力された後、ユーザやアプリケーションからの印刷設定を反映させ、所定の画像処理が行われ、印刷ジョブとして再度OSスプーラに出力される。このようにOSスプーラに入力された印刷データは必ずV4ドライバの処理が実行されるようになった。このため、V3ドライバで実現できていた「任意のタイミングでファイルとして保持しておいた印刷ジョブをOSスプーラに投入することで画像処理を行うことなく印刷を実行する」ということができなくなってしまった。
V3ドライバを用いた印刷システムの場合は、OSスプーラが印刷ジョブ生成モジュールにより生成された印刷ジョブの出力結果が保存されるバッファであった。しかし、V4ドライバを用いた印刷システムの場合はアプリケーションから出力される印刷データの入力もOSスプーラに対して行われるようになった。印刷データはOSスプーラに入力された後、ユーザやアプリケーションからの印刷設定を反映させ、所定の画像処理が行われ、印刷ジョブとして再度OSスプーラに出力される。このようにOSスプーラに入力された印刷データは必ずV4ドライバの処理が実行されるようになった。このため、V3ドライバで実現できていた「任意のタイミングでファイルとして保持しておいた印刷ジョブをOSスプーラに投入することで画像処理を行うことなく印刷を実行する」ということができなくなってしまった。
〔変更点2〕
V4ドライバを用いた印刷システムの場合はOSスプーラに入力する印刷データの形式が標準XPS(XML Paper Specification)形式でなければならなくなった。標準XPS以外のデータ形式の印刷データは不正データとして削除されてしまい、V3ドライバを用いた印刷システムで用いていた印刷ジョブファイルは活用できなくなってしまった。仮にV3ドライバを用いた印刷システムで用いていた印刷ジョブファイルをXPS形式に変換したとしても標準XPS形式には含まれないデータが含まれているため、やはり不正データとして扱われてしまう。
V4ドライバを用いた印刷システムの場合はOSスプーラに入力する印刷データの形式が標準XPS(XML Paper Specification)形式でなければならなくなった。標準XPS以外のデータ形式の印刷データは不正データとして削除されてしまい、V3ドライバを用いた印刷システムで用いていた印刷ジョブファイルは活用できなくなってしまった。仮にV3ドライバを用いた印刷システムで用いていた印刷ジョブファイルをXPS形式に変換したとしても標準XPS形式には含まれないデータが含まれているため、やはり不正データとして扱われてしまう。
以上の変更点によって、任意の設定を印刷ジョブに付加するのはV4ドライバのUIモジュールを通してユーザ自身が行うしかなくなってしまった。このため、ユーザが設定を間違えたり、デフォルト設定のまま印刷を行ったりしても正しい印字結果にならないという問題があった。例えば、YMCKのベタ画像を印字したい場合にディザ処理や間引き処理が行われる設定になってしまっているとベタ画像で印字されなくなってしまう。結果としてクリーニングの場合はクリーニング効果が低下するという問題もあった。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、特定のデバイスドライバがインストールされていても、情報処理装置上のアプリケーションから特定の画像処理がなされない状態の印刷ジョブを画像形成装置に出力できる仕組みを提供することである。
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
画像形成装置と通信する情報処理装置であって、特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する第1のデバイスドライバと、前記第1のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスと、特定の入力データを前記画像形成装置に出力するサービスとを提供する第2のデバイスドライバと、前記第2のデバイスドライバが前記入力データから取得される情報と、前記画像形成装置から取得するステータス情報とを対応づけた表示情報を生成して表示手段に出力する表示制御手段と、を備え、前記第2のデバイスドライバは、前記画像形成装置から取得するステータス情報に従い、特定の入力データを画像処理することなく前記画像形成装置に出力することを特徴とする。
画像形成装置と通信する情報処理装置であって、特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する第1のデバイスドライバと、前記第1のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスと、特定の入力データを前記画像形成装置に出力するサービスとを提供する第2のデバイスドライバと、前記第2のデバイスドライバが前記入力データから取得される情報と、前記画像形成装置から取得するステータス情報とを対応づけた表示情報を生成して表示手段に出力する表示制御手段と、を備え、前記第2のデバイスドライバは、前記画像形成装置から取得するステータス情報に従い、特定の入力データを画像処理することなく前記画像形成装置に出力することを特徴とする。
本発明によれば、特定のデバイスドライバがインストールされていても、情報処理装置上のアプリケーションから特定の画像処理がなされない状態の印刷ジョブを画像形成装置に出力できる。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示す印刷システムの概略構成を示す図である。なお、図中の太い実線の矢印は、印刷ジョブのやり取りがあることを示し、細い点線の矢印は、印刷ジョブ以外のデータのやり取りがあることを示している。
図1において、情報処理装置101にインストールされたアプリケーション102は、ユーザが目的に応じて利用を行うソフトウェアであり、ユーザはアプリケーション102を用いて印刷の開始を指示することができる。
図1において、情報処理装置101にインストールされたアプリケーション102は、ユーザが目的に応じて利用を行うソフトウェアであり、ユーザはアプリケーション102を用いて印刷の開始を指示することができる。
Windows(登録商標、以後、本明細書中では、Windowsについて登録商標の表記を省略する)標準スプーラ104は、情報処理装置101内にインストールされているOS(本実施形態ではMicrosoft(登録商標) Windowsとする)内の印刷用スプーラである。Windows標準スプーラ104は、アプリケーション102から印刷指示データを含む印刷ジョブをV4ドライバ103の入力として受信し、不正な入力データでなければデータを保存する。
V4ドライバ103は、Windows標準スプーラ104に入力データが保存されるとその情報を取得し、それに従い印刷ジョブを生成するソフトウェアである。生成が完了した印刷ジョブは再びWindows標準スプーラ104に保存される。Windows標準スプーラ104は、V4ドライバ103が生成した印刷ジョブを一時的に保存しておき、それらを生成された順に一つずつ出力する。
Windows標準スプーラ104は、仮想デバイスサービス106に対してネットワーク経由で印刷ジョブを送信する。本実施形態では、自分自身に対してデータを送信するループバックを用いた通信で印刷ジョブを送信する。このシステムでは、Windows標準スプーラ104はいかなるジョブも仮想デバイスサービス106へ送信する。
Windows標準スプーラ104は、仮想デバイスサービス106に対してネットワーク経由で印刷ジョブを送信する。本実施形態では、自分自身に対してデータを送信するループバックを用いた通信で印刷ジョブを送信する。このシステムでは、Windows標準スプーラ104はいかなるジョブも仮想デバイスサービス106へ送信する。
ステータスウィンドウ105は、画像形成装置107、108のステータスの表示や任意の設定等を行うことを可能とするソフトウェアである。ステータスウィンドウ105は、RPC(Remote Procedure Call)クライアント機能を持っており、それを用いて仮想デバイスサービス106と通信を行う。なお、本実施形態ではRPC通信を例に記載するが、通信方式はTCP/IP通信であってもその他の通信であってもよい。
ステータスウィンドウ105は、仮想デバイスサービス106に対して状態情報取得を命令し、返信として受け取った状態情報に基づいてステータスの表示を行う。ステータスウィンドウ105は機種情報を持っており、本実施形態では、機種情報は製品名とする。
ステータスウィンドウ105は、仮想デバイスサービス106に対して状態情報取得を命令し、返信として受け取った状態情報に基づいてステータスの表示を行う。ステータスウィンドウ105は機種情報を持っており、本実施形態では、機種情報は製品名とする。
仮想デバイスサービス106は、V4ドライバ103、Windows標準スプーラ104、ステータスウィンドウ105に対して物理的な画像形成装置のように振る舞うエミュレーターソフトウェアである。仮想デバイスサービス106との通信はWindows上のネットワーク機能を利用する。
画像形成装置107、108は、情報処理装置101から受信した印刷ジョブに基づいて画像の形成を行う。画像形成装置107、108は機種情報を持っており、本実施形態では、機種情報は製品名とする。設定アプリケーション109は、仮想デバイス300、301の設定、管理を行うソフトウェアである。
画像形成装置107、108は、情報処理装置101から受信した印刷ジョブに基づいて画像の形成を行う。画像形成装置107、108は機種情報を持っており、本実施形態では、機種情報は製品名とする。設定アプリケーション109は、仮想デバイス300、301の設定、管理を行うソフトウェアである。
図2は、図1に示したV4ドライバ103のソフトウェア構成を示す図である。
なお、従来のV3ドライバではOSが提供するアプリケーションインターフェース(API)を介してアプリケーション102からOS(ドライバを含む)を呼び出しており、Devmodeとよばれるバイナリデータを印刷設定用のデータとして使用していた。
なお、従来のV3ドライバではOSが提供するアプリケーションインターフェース(API)を介してアプリケーション102からOS(ドライバを含む)を呼び出しており、Devmodeとよばれるバイナリデータを印刷設定用のデータとして使用していた。
図2において、OSが提供するAPIを利用するアプリケーション102はGDI(Graphic Device Interface)を呼び出して、描画処理を行う。V4ドライバのUIはOSが標準で搭載しているUI(以下、OS標準UIと呼ぶ)での表示となる。V3ドライバと同等のUIを使用するためには、OSが提供するV4ドライバ用拡張UIソフトウェア(以下、拡張UIソフトウェアと呼ぶ)をインストールする必要がある。
ユーザがアプリケーション102で印刷を行う場合、拡張UIソフトウェア201がインストールされていれば拡張UIソフトウェア201のUIが表示され、そうでなければOS標準UIが表示される。
本実施形態では、情報処理装置101に拡張UIソフトウェア201がインストールされているものとして説明を行うが、拡張UIソフトウェア201がインストールされていなくてもよい。
本実施形態では、情報処理装置101に拡張UIソフトウェア201がインストールされているものとして説明を行うが、拡張UIソフトウェア201がインストールされていなくてもよい。
印刷設定管理部202は拡張UIソフトウェア201やOS標準UIで表示する印刷設定項目や同時に設定できない印刷設定項目の組み合わせ(以下、コンフリクトと呼ぶ)などを管理している。表示する印刷設定項目やコンフリクトは画像形成装置107、108のサポートしている機能、能力に応じて画像形成装置ごと(機種ごと)に変更が可能である。
印刷設定はV4ドライバでは、PrintTicketと呼ばれる、XML(eXtensible Markup Language)をベースとした新しい印刷設定フォーマットで管理される。XMLは、V3ドライバにおけるDEVMODE構造体をベースにする印刷設定に代わって登場した印刷設定フォーマットである。
印刷設定管理部202は、拡張UIソフトウェア201やOS標準UIで設定された印刷設定情報も保持する。デバイス情報取得部203は印刷ジョブ生成部204で印刷ジョブを生成するために必要な画像形成装置の情報を取得する。本実施形態の場合は仮想デバイスサービス106を経由して画像形成装置107、108の情報を取得する。
デバイス情報取得部203はRPCクライアント機能を持ち、仮想デバイスサービス106が持つ図3に示すRPCサーバ311、321と通信を行うことでそれぞれ画像形成装置107、108の情報を取得する。
デバイス情報取得部203はRPCクライアント機能を持ち、仮想デバイスサービス106が持つ図3に示すRPCサーバ311、321と通信を行うことでそれぞれ画像形成装置107、108の情報を取得する。
印刷ジョブ生成部204はWindows標準スプーラ104から取得した入力データに対しレンダリング等を行い、印刷ジョブを生成する。この際、デバイス情報取得部203から取得した画像形成装置の情報や印刷設定管理部202が持つ印刷設定に応じた画像処理を行い、印刷ジョブを生成する。印刷ジョブ生成部204は機種情報を持ち、印刷ジョブを生成する際に内部に機種情報を埋め込む。本実施形態では、機種情報は製品名とする。
印刷ジョブ生成部204が受け取るデータはXPSである。Win32APIを利用するアプリケーション102がGDIを呼び出すとOS内部でXPSに自動変換されて、XPSドライバ(本実施形態ではV4ドライバ103が呼び出される。WPF(Windows Presentation Foundation)アプリケーションから印刷する場合、そのままXPSドライバが呼び出される。
PDL変換部205は印刷ジョブを送信する画像形成装置が対応するPDL(Page Description Language)に変換する。デバイスIF部206はWindows標準スプーラ104に生成した印刷ジョブを送信する。
PDL変換部205は印刷ジョブを送信する画像形成装置が対応するPDL(Page Description Language)に変換する。デバイスIF部206はWindows標準スプーラ104に生成した印刷ジョブを送信する。
図3は、図1に示した仮想デバイスサービス106のソフトウェア構成を示す図である。
図3において、仮想デバイスサービス106は1つ以上の仮想デバイスを持ち、仮想デバイスはそれぞれ1つの画像形成装置と接続される。
本実施形態では、仮想デバイスサービス106は、仮想デバイスを2つ持ち、各仮想デバイス300、301はそれぞれ画像形成装置107と画像形成装置108に接続されているものとする。仮想デバイスサービス106は、外部から仮想デバイスの登録/削除を受け付ける機能を持つ。
図3において、仮想デバイスサービス106は1つ以上の仮想デバイスを持ち、仮想デバイスはそれぞれ1つの画像形成装置と接続される。
本実施形態では、仮想デバイスサービス106は、仮想デバイスを2つ持ち、各仮想デバイス300、301はそれぞれ画像形成装置107と画像形成装置108に接続されているものとする。仮想デバイスサービス106は、外部から仮想デバイスの登録/削除を受け付ける機能を持つ。
また仮想デバイスサービス106は、不図示のインストーラによる仮想デバイスの登録に際して情報処理装置101が持つ受信ポート番号(以降「受信ポート番号」と呼ぶ)の指定を必要とする。仮想デバイスサービス106は指定された受信ポート番号と仮想デバイスを紐づけて管理する。
また仮想デバイスサービス106は、登録された仮想デバイスを実行する機能を持つ。仮想デバイスの実行は、仮想デバイスサービス106が実行された時、または仮想デバイスが新たに登録されたときに行う。
仮想デバイス300は、受信部310、RPCサーバ311、仮想デバイススプーラ312、仮想デバイスランゲージモニタ313、ポートモニタ314から構成される。また、仮想デバイス300は、機種情報を持つ。本実施形態では機種情報は製品名とし、仮想デバイス300内の仮想デバイススプーラ312が持つものとする。
受信部310は、仮想デバイス300と紐づけられたポート番号を介してWindows標準スプーラ104から受け付けた印刷ジョブを、仮想デバイススプーラ312に引き渡す。
RPCサーバ311は、RPC通信によりステータスウィンドウ105やデバイス情報取得部203などのRPCクライアント機能をもつ外部モジュールと仮想デバイススプーラ312との通信を仲介する。
仮想デバイススプーラ312は、受信部310から引き渡された印刷ジョブを格納するキューを持ち、前記印刷ジョブの管理と、仮想デバイスランゲージモニタ313への送信を行う。
また仮想デバイススプーラ312は、管理している印刷ジョブに対する、印刷ジョブ情報取得や印刷ジョブ削除などの、各種アクセス手段を提供する。このアクセス手段は仮想デバイスランゲージモニタ313や設定アプリケーション109によって利用される。また仮想デバイススプーラ312は、RPCサーバ311を介して各種命令受信及び命令への返信を行う。また仮想デバイススプーラ312は、仮想デバイスランゲージモニタ313への各種命令送信及び命令への返信受付を行う。また本実施形態では、仮想デバイススプーラ312は、自身が所属している仮想デバイス300の機種情報として、製品名を持つものとする。
仮想デバイスランゲージモニタ313は、印刷ジョブの制御及び各種情報の管理を行うモジュールであり、仮想デバイススプーラ312から受信した印刷ジョブを、ポートモニタ314を介して画像形成装置107へ送信する。
また、仮想デバイスランゲージモニタ313は、ポートモニタ314を介して、画像形成装置107への各種命令の送信、及び、画像形成装置107からの情報取得を行う。
本実施形態では、画像形成装置107の印刷状況、各種状態及び設定情報、エラー情報などを取得する。また、画像形成装置107と接続された際に製品名を取得する。
また、仮想デバイスランゲージモニタ313は、ポートモニタ314を介して、画像形成装置107への各種命令の送信、及び、画像形成装置107からの情報取得を行う。
本実施形態では、画像形成装置107の印刷状況、各種状態及び設定情報、エラー情報などを取得する。また、画像形成装置107と接続された際に製品名を取得する。
また、仮想デバイスランゲージモニタ313は、自身が持つ情報と画像形成装置107から取得した情報に基づいて状態の判断を行う。エラー状態であると判断した場合、印刷処理を停止するなどのエラー処理を行う。また、仮想デバイスランゲージモニタ313は、仮想デバイススプーラ312からの各種命令受信及び命令への返信を行う。
例えば、仮想デバイススプーラ312を介してステータスウィンドウ105)から状態情報取得の命令を受け付けた場合は、前述の状態判断に基づいた状態情報と、機種情報を返信する。
例えば、仮想デバイススプーラ312を介してステータスウィンドウ105)から状態情報取得の命令を受け付けた場合は、前述の状態判断に基づいた状態情報と、機種情報を返信する。
ポートモニタ314は、画像形成装置107と接続された情報処理装置101のポートと、仮想デバイスランゲージモニタ313との通信の仲介を行う。画像形成装置107は機種ごとに取り扱える通信が異なる場合があり、この画像形成装置107ごとに特化した通信処理を行う。仮想デバイス301は、情報処理装置101が持つポートの内、仮想デバイス300とは別のポートを介して画像形成装置108と接続されている。仮想デバイス301の構成は、仮想デバイス300と同じであるため詳細な説明は省略する。
図4は、画像形成装置107、108のハード構成を示しブロック図である。本実施形態ではネットワーク接続された画像形成装置108を用いて説明する。
図4において、CPU432は、画像形成装置107、108の全体の動作を制御している。RAM439は、CPU432の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またRAM439は、NVRAM(Non−volatile RAM:不揮発性RAM)領域も備えており、図示しない増設用ソケットに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
図4において、CPU432は、画像形成装置107、108の全体の動作を制御している。RAM439は、CPU432の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またRAM439は、NVRAM(Non−volatile RAM:不揮発性RAM)領域も備えており、図示しない増設用ソケットに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
ROM433は、各種フォントを記憶するフォントROM433a、CPU432により実行される制御プログラム等を記憶するプログラムROM433b、及び各種データを記憶するデータROM433cを備えている。I/F制御部438では、情報処理装置101との間でデータの送受信を行なう。本実施形態では有線LANによる送受信を行う。印刷部I/F436は、プリンタエンジンである印刷部437とのインターフェースを制御している。
外部メモリ434は、外部メモリI/F440によりアクセスが制御されており、オプションとして接続されるハードディスク(HD)、Solid State Disk(SSD)等を含んでいる。
外部メモリ434は、フォントデータ、フォームデータ等を記憶する。さらに、画像形成装置で一時的に作成、外部とのやり取りを行うためのファイル443を記憶することも可能である。
なお、ハードディスク等の外部メモリ434が接続されていない場合には、ROM433のデータROM433cに、情報処理装置101で利用される情報等を記憶することになる。なお、この外部メモリ434は1個に限らず複数備えるものであってもよい。
例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
操作部442には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びLED表示器等が配されている(不図示)。また、不図示のNVRAMを有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。
例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
操作部442には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びLED表示器等が配されている(不図示)。また、不図示のNVRAMを有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。
CPU432は、ROM433のプログラムROM433b)に記憶された制御プログラム等に基づき、印刷部I/F436を介して印刷部437に出力情報としての画像信号を出力する。また、CPU432は各種I/F(ネットワークまたはUSB I/Fが主たるもの)438を介して情報処理装置101との通信処理が可能となっている。
そして、情報処理装置101から送信される印刷ジョブを受信すると共に、画像形成装置107、108内の情報等を情報処理装置101に通知可能な双方向通信経路が構成されている。
印刷システムを用いて印刷が行われた場合のデータの流れを説明する。
情報処理装置内でユーザが利用を行うアプリケーション102から印刷の開始がなされると、V4ドライバ103が呼ばれ、印刷ジョブを作成する。この印刷ジョブの作成においては、画像形成装置上の動的な画像パラメータが用いられる。
ここで図2におけるデバイス情報取得部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の状態情報を受け取り、RPCサーバ321を介して各種命令受信及び命令への返信を行う。
情報処理装置内でユーザが利用を行うアプリケーション102から印刷の開始がなされると、V4ドライバ103が呼ばれ、印刷ジョブを作成する。この印刷ジョブの作成においては、画像形成装置上の動的な画像パラメータが用いられる。
ここで図2におけるデバイス情報取得部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の状態情報を受け取り、RPCサーバ321を介して各種命令受信及び命令への返信を行う。
ステータスウィンドウ105はWindowsネットワーク機能を介して仮想デバイスサービス106とやりとりし、画像形成装置108の状態表示や画像形成装置上の設定項目の編集等を行う。
図5は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例印刷システムにおける情報処理装置101にインストールされた、V4ドライバ103の印刷処理の一例である。なお、各ステップは、CPU432が記憶された制御プログラム(図3に示したモジュールを含む)を実行することで実現される。
V4ドライバ103は開始後の初期処理にて、画像形成装置上に存在する画像処理用の画像パラメータの取得を行う(S501)。これは以降の画像レンダリング処理において必要な画像パラメータである。この取得処理では、図2におけるV4ドライバ103中のデバイス情報取得部203が、図3の仮想デバイスサービス106内のRPCサーバ311、321と通信を行い、画像パラメータの取得を行う。
つまり後述する図6におけるS611、S612にて応答がなされた結果の受信が行われる。ここで画像パラメータが得られないとデバイス情報取得部203が判断した場合には、画像補正に不足が現れるなど、印刷不具合の可能性があるが、そのような場合には、ある規定の値を用いて画像レンダリング処理は継続される。
つまり後述する図6におけるS611、S612にて応答がなされた結果の受信が行われる。ここで画像パラメータが得られないとデバイス情報取得部203が判断した場合には、画像補正に不足が現れるなど、印刷不具合の可能性があるが、そのような場合には、ある規定の値を用いて画像レンダリング処理は継続される。
次に、S502でV4ドライバ103はアプリケーション102からの印刷ジョブデータの取得を開始し、S503で、V4ドライバ103は印刷ジョブの入力があるかどうかを判断する。印刷ジョブが入力されたとV4ドライバ103が判断した場合、処理をS504へ進める。
そして、S504で、V4ドライバ103は後段である仮想デバイスサービス106からのメッセージデータ入力を行う。ここで、後段からのメッセージデータとは、印刷ジョブの受信完了を示すメッセージ等である。
S505で、V4ドライバ103が処理すべきメッセージデータが届いたかどうかを判断する。ここで、メッセージデータを受信していないとV4ドライバ103が判断した場合、V4ドライバ103は処理をS508へ進める。
そして、S504で、V4ドライバ103は後段である仮想デバイスサービス106からのメッセージデータ入力を行う。ここで、後段からのメッセージデータとは、印刷ジョブの受信完了を示すメッセージ等である。
S505で、V4ドライバ103が処理すべきメッセージデータが届いたかどうかを判断する。ここで、メッセージデータを受信していないとV4ドライバ103が判断した場合、V4ドライバ103は処理をS508へ進める。
一方、S505でメッセージデータが届いているとV4ドライバ103が判断した場合、V4ドライバ103は処理をS506へ進める。S506では、ステータスウィンドウ105がメッセージ種別に応じた表示等の処理を情報処理装置101の表示部に対して行う。なお、メッセージ種の詳細については記載省略する。
ここで、メッセージ種の一つとしては、例えば「印刷処理終了」があり、そのようなメッセージデータを受信した場合、V4ドライバ103は、S507にて処理終了と判定、ドライバ処理の終了へ進む。なお、異常終了などのメッセージの場合もS507にてYesの判定となる。
ここで、メッセージ種の一つとしては、例えば「印刷処理終了」があり、そのようなメッセージデータを受信した場合、V4ドライバ103は、S507にて処理終了と判定、ドライバ処理の終了へ進む。なお、異常終了などのメッセージの場合もS507にてYesの判定となる。
一方、S507で、印刷終了でないとV4ドライバ103が判断した場合には、V4ドライバ103は処理をS508に進める。そして、S508で、V4ドライバ103は受信した印刷ジョブに対してデータ処理が必要かどうかを判別する。ここで、データ処理の必要が無いとV4ドライバ103が判断した場合には、さらにアプリケーション102からのデータを受信するために、V4ドライバ103は処理をS502へ戻す。
一方、S508にてデータ処理、例えば画像処理を行うとV4ドライバ103が判断した場合、V4ドライバ103は処理をS509へ進める。S509で、V4ドライバ103の印刷データ生成部204を用いて、取得した画像補正用パラメータを用いてレンダリング処理を行う。S510では、V4ドライバ103がレンダリング処理結果をWindows標準スプーラ104へ保存する。その後、S511で、V4ドライバ103は、Windows標準スプーラ104から印刷ジョブの情報(ドキュメント名、ユーザ名、コンピュータ名)を取得し、その情報を印刷ジョブに埋め込む。
ここで埋め込まれた印刷ジョブの情報は、印刷ジョブが仮想デバイスサービス106へ送信された後に、可動デバイス301の仮想デバイスランゲージモニタ323により読み出され、画像形成装置108に印刷中のジョブの情報として報知される。ここで報知された印刷ジョブの情報は、その後、ステータスウィンドウ105により取得され、詳細は後述する図8に示すUI画面の印刷ジョブ情報部805に表示される。
S512では、Windows標準スプーラ104上で、実際に印刷を行う画像形成装置108が入力可能な印刷ジョブの形式へデータのコンバートを行う。S513では、コンバートされた印刷ジョブをWindows標準スプーラ104へ保存する。S514では、Windowsネットワーク機能におけるWindows標準ポートモニタ(不図示)へ印刷ジョブの送信を依頼し、仮想デバイスサービス106へ送信を行う。
このようにして、V4ドライバ103が印刷ジョブの送信が終了したら、さらに次の印刷ジョブ送信を行うために、処理をS505へ戻す。
そして、V4ドライバ103は、S505以降の処理、メッセージ処理、レンダリング処理、データコンバート処理、データ送信処理を繰り返し行う。なお、上記処理では、印刷処理を終了させているが、終了ではなく、印刷ジョブ待ちとしても良い。
ここで埋め込まれた印刷ジョブの情報は、印刷ジョブが仮想デバイスサービス106へ送信された後に、可動デバイス301の仮想デバイスランゲージモニタ323により読み出され、画像形成装置108に印刷中のジョブの情報として報知される。ここで報知された印刷ジョブの情報は、その後、ステータスウィンドウ105により取得され、詳細は後述する図8に示すUI画面の印刷ジョブ情報部805に表示される。
S512では、Windows標準スプーラ104上で、実際に印刷を行う画像形成装置108が入力可能な印刷ジョブの形式へデータのコンバートを行う。S513では、コンバートされた印刷ジョブをWindows標準スプーラ104へ保存する。S514では、Windowsネットワーク機能におけるWindows標準ポートモニタ(不図示)へ印刷ジョブの送信を依頼し、仮想デバイスサービス106へ送信を行う。
このようにして、V4ドライバ103が印刷ジョブの送信が終了したら、さらに次の印刷ジョブ送信を行うために、処理をS505へ戻す。
そして、V4ドライバ103は、S505以降の処理、メッセージ処理、レンダリング処理、データコンバート処理、データ送信処理を繰り返し行う。なお、上記処理では、印刷処理を終了させているが、終了ではなく、印刷ジョブ待ちとしても良い。
図6は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、情報処理装置101上で実行される、仮想デバイスサービス106の処理例である。なお、各ステップは、CPU432が記憶された制御プログラム(図3に示したモジュールを含む)を実行することで実現される。以下、CPU432が実行する仮想デバイス301を主体としてデータ処理を説明する。
S601にて仮想デバイス301の受信部320からデータを入力する。より具体的には、仮想デバイス301の受信部320がWindowsネットワーク機能のポートからデータを入力する。S602で、仮想デバイスサービス106の仮想デバイススプーラ322が処理の必要な印刷データが入力されたかどうかを判断する。ここで、処理の必要な印刷データが入力されたと仮想デバイススプーラ322が判断した場合、仮想デバイススプーラ322は処理をS603へ進める。
S603にて、仮想デバイススプーラ322は、受信部320が受信した入力データを仮想デバイススプーラ322のキューに積む。なお、ここで不図示ではあるが、入力データを一度に受け取れない場合もあり、その場合には分割して受信を行いながら、その都度キューに積む処理の中断、継続が行われ、最終的にキューに積む処理は完了する。
S603にて、仮想デバイススプーラ322は、受信部320が受信した入力データを仮想デバイススプーラ322のキューに積む。なお、ここで不図示ではあるが、入力データを一度に受け取れない場合もあり、その場合には分割して受信を行いながら、その都度キューに積む処理の中断、継続が行われ、最終的にキューに積む処理は完了する。
S604で、仮想デバイススプーラ322のキュー上に処理すべきデータがあるかどうかを判断する。ここで、キュー上にデータが無いと仮想デバイスサービス106が判断した場合には、処理をS601へ戻して、データ入力から処理を繰り返す。
一方、S604で、キュー上にデータが存在すると仮想デバイスサービス106が判断した場合、仮想デバイスサービス106は処理をS605に進める。
S605で仮想デバイスランゲージモニタ323がキューから印刷ジョブに埋め込まれた情報を取り出し、画像形成装置108へ向けて送信処理を制御する。S606で、仮想デバイスランゲージモニタ323は、S511でV4ドライバ103により印刷ジョブに埋め込まれた情報(ドキュメント名、ユーザ名、コンピュータ名)を取得し、画像形成装置108に印刷中のジョブの情報として報知する。
一方、S604で、キュー上にデータが存在すると仮想デバイスサービス106が判断した場合、仮想デバイスサービス106は処理をS605に進める。
S605で仮想デバイスランゲージモニタ323がキューから印刷ジョブに埋め込まれた情報を取り出し、画像形成装置108へ向けて送信処理を制御する。S606で、仮想デバイスランゲージモニタ323は、S511でV4ドライバ103により印刷ジョブに埋め込まれた情報(ドキュメント名、ユーザ名、コンピュータ名)を取得し、画像形成装置108に印刷中のジョブの情報として報知する。
ここで、画像形成装置108に報知された印刷ジョブの情報はその後、ステータスウィンドウ105により取得され、図8に示すUI画面上の印刷ジョブ情報部805に表示される。
S607では、仮想デバイスランゲージモニタ323は画像形成装置108との間でステータス情報を通信により取得する。S608では、仮想デバイスランゲージモニタ323が取得したステータス情報を利用して、さらに画像形成装置108のエンジン状態に合わせた画像データの送信を行う。その後、S609で、仮想デバイスランゲージモニタ323が送信すべき画像データが残っているかどうかを判断する。
ここで、仮想デバイスランゲージモニタ323が送信すべき画像データが残っていると判断した場合、処理をS607へ戻し、仮想デバイスランゲージモニタ323が送信すべき画像データが残っていないと判断した場合は、処理をS601に戻す。
S607では、仮想デバイスランゲージモニタ323は画像形成装置108との間でステータス情報を通信により取得する。S608では、仮想デバイスランゲージモニタ323が取得したステータス情報を利用して、さらに画像形成装置108のエンジン状態に合わせた画像データの送信を行う。その後、S609で、仮想デバイスランゲージモニタ323が送信すべき画像データが残っているかどうかを判断する。
ここで、仮想デバイスランゲージモニタ323が送信すべき画像データが残っていると判断した場合、処理をS607へ戻し、仮想デバイスランゲージモニタ323が送信すべき画像データが残っていないと判断した場合は、処理をS601に戻す。
一方、S602にて、仮想デバイススプーラ322が受信部320からの印刷ジョブが無いと判断した場合には、仮想デバイススプーラ322は処理をS611へ進める。
S611で、仮想デバイススプーラ322は、V4ドライバ103からの画像形成装置108を制御するコマンドの受信があるかどうか判断する。ここで、画像パラメータ取得コマンドの受信は無いと仮想デバイススプーラ322が判断した場合、仮想デバイススプーラ322は、処理をS615へ進める。
S611で、仮想デバイススプーラ322は、V4ドライバ103からの画像形成装置108を制御するコマンドの受信があるかどうか判断する。ここで、画像パラメータ取得コマンドの受信は無いと仮想デバイススプーラ322が判断した場合、仮想デバイススプーラ322は、処理をS615へ進める。
一方、S611で、仮想デバイススプーラ322がパラメータ取得コマンドを取得したと判断した場合、仮想デバイススプーラ322は処理をS612へ進める。
S612で、仮想デバイススプーラ322は、画像形成装置108に対して画像パラメータ取得のコマンド送信を行う。S613で、仮想デバイススプーラ322は、画像形成装置108からの応答を待つ。そして、画像形成装置108から応答を得た場合、S614で、仮想デバイススプーラ322は、V4ドライバ103側への返信処理を行う。
S612で、仮想デバイススプーラ322は、画像形成装置108に対して画像パラメータ取得のコマンド送信を行う。S613で、仮想デバイススプーラ322は、画像形成装置108からの応答を待つ。そして、画像形成装置108から応答を得た場合、S614で、仮想デバイススプーラ322は、V4ドライバ103側への返信処理を行う。
S615では、仮想デバイススプーラ322は、ステータスウィンドウ105等からの画像形成装置108を制御するコマンドの受信があるかどうかを判断する。ここで、仮想デバイススプーラ322が制御コマンドを受信したと判断した場合、仮想デバイススプーラ322は処理をS616へ進める。
S616で、仮想デバイススプーラ322が制御コマンド内容を解析し、画像形成装置108に対し、解析結果に対応する制御コマンドの送信を行い、処理をS617へ進める。
S616で、仮想デバイススプーラ322が制御コマンド内容を解析し、画像形成装置108に対し、解析結果に対応する制御コマンドの送信を行い、処理をS617へ進める。
S617で、仮想デバイススプーラ322は、画像形成装置108から当該コマンドの応答を待つ。そして、画像形成装置108から応答が得られた場合、仮想デバイススプーラ322は、処理をS618へ進める。S618で、仮想デバイススプーラ322は画像形成装置108から応答された内容をステータスウィンドウ105等へPRCサーバ321を介して返答する。
S619で、仮想デバイススプーラ322は、他に画像形成装置108へ送信すべきものがあるか判断を行う。ここで、他に画像形成装置108に送信すべきものが存在すると判断した場合、仮想デバイススプーラ322は処理をS620へ進める。
S619で、仮想デバイススプーラ322は、他に画像形成装置108へ送信すべきものがあるか判断を行う。ここで、他に画像形成装置108に送信すべきものが存在すると判断した場合、仮想デバイススプーラ322は処理をS620へ進める。
一方、S619で他に画像形成装置108に送信すべきものが存在しないと仮想デバイススプーラ322が判断した場合、処理をS623へ進める。
S620では、仮想デバイススプーラ322が画像形成装置108へ制御コマンドを送信する処理を行う。そして、S621で、仮想デバイススプーラ322がその制御コマンドの応答を待つ。ここで、画像形成装置108から当該制御コマンドに対して応答が得られた場合、処理をS622に進める。
S620では、仮想デバイススプーラ322が画像形成装置108へ制御コマンドを送信する処理を行う。そして、S621で、仮想デバイススプーラ322がその制御コマンドの応答を待つ。ここで、画像形成装置108から当該制御コマンドに対して応答が得られた場合、処理をS622に進める。
S622で、仮想デバイススプーラ322は、画像形成装置108から応答された内容を1仮想デバイスサービス106内にて反映を行い、処理をS601へ戻す。
一方、S623では、仮想デバイススプーラ322は、処理すべき制御コマンドではないが、なんらかのデータが到着しているということであるので、その場合にはデータ読み捨てを行い、処理をS601へ戻す。
一方、S623では、仮想デバイススプーラ322は、処理すべき制御コマンドではないが、なんらかのデータが到着しているということであるので、その場合にはデータ読み捨てを行い、処理をS601へ戻す。
図7は、本実施形態を示す情報処理装置の構成を説明するブロック図である本例は、情報処理装置101のステータスウィンドウ105の構成例に対応し、以下、仮想デバイスサービス106の仮想デバイス301が画像形成装置108と通信する処理を説明する。
図7において、アプリ制御部701はステータスウィンドウ105の動作を制御する。アプリ制御部701は、操作部705において、ユーザからの入力があったときは、それに従った表示を表示部706に表示するように指示する。
また、アプリ制御部701は、入力内容が画像形成装置108への指示が必要な場合はデバイス通信部708に仮想デバイスサービス106に画像形成装置108への指示を送信するよう指示する。
また、アプリ制御部701は、入力内容が画像形成装置108への印刷指示の場合は印刷ジョブ送信部707に入力内容に合わせた印刷ジョブを送信するように指示する。また、アプリ制御部701は、デバイス情報解析部704から画像形成装置108の状態変化が通知された場合は変化後の状態に合わせた表示を行うよう表示部706に指示する。
ハードウエアであるROM702は主に表示部に表示するテキスト情報やフォント情報、BMP情報などが保存されている。RAM703は、アプリ制御部701が各種制御を行うための一時情報が保存されており、デバイスの状態情報やユーザからの入力内容などを保存する。
デバイス情報解析部704は、デバイス通信部708が受信したデバイスの状態情報を解析し、表示部706に表示すべき状態を決定し、アプリ制御部701に通知する。
操作部705は、情報処理装置101の持つ入力IF709からの情報を基にユーザからの入力、操作内容を特定し、アプリ制御部701に通知する。入力IF709は情報処理装置101上の入力IFであり、不図示のキーボードやマウスなどである。
表示部706はアプリ制御部701の指示に従い表示制御を実行して、情報処理装置101の持つ表示IF710に所定の表示を行う。ハードウエアである表示IF710は情報処理装置101上の表示IFとして機能し、不図示のディスプレイなどで構成される。
また、アプリ制御部701は、入力内容が画像形成装置108への指示が必要な場合はデバイス通信部708に仮想デバイスサービス106に画像形成装置108への指示を送信するよう指示する。
また、アプリ制御部701は、入力内容が画像形成装置108への印刷指示の場合は印刷ジョブ送信部707に入力内容に合わせた印刷ジョブを送信するように指示する。また、アプリ制御部701は、デバイス情報解析部704から画像形成装置108の状態変化が通知された場合は変化後の状態に合わせた表示を行うよう表示部706に指示する。
ハードウエアであるROM702は主に表示部に表示するテキスト情報やフォント情報、BMP情報などが保存されている。RAM703は、アプリ制御部701が各種制御を行うための一時情報が保存されており、デバイスの状態情報やユーザからの入力内容などを保存する。
デバイス情報解析部704は、デバイス通信部708が受信したデバイスの状態情報を解析し、表示部706に表示すべき状態を決定し、アプリ制御部701に通知する。
操作部705は、情報処理装置101の持つ入力IF709からの情報を基にユーザからの入力、操作内容を特定し、アプリ制御部701に通知する。入力IF709は情報処理装置101上の入力IFであり、不図示のキーボードやマウスなどである。
表示部706はアプリ制御部701の指示に従い表示制御を実行して、情報処理装置101の持つ表示IF710に所定の表示を行う。ハードウエアである表示IF710は情報処理装置101上の表示IFとして機能し、不図示のディスプレイなどで構成される。
印刷ジョブ送信部707は、アプリ制御部701からの指示をもとに印刷ジョブの生成を行い、生成した印刷ジョブを送信するようにデバイス通信部708に指示する。
印刷ジョブの生成は例えば、操作部705で「クリーニング実行」が指定された場合は、情報処理装置101上の外部メモリ711に保存されている生成済みのクリーニングジョブファイル712を取得してくるだけでよい。クリーニングジョブファイル712は本実施形態では不図示のインストーラでステータスウィンドウ105をインストールする際に外部メモリ711に保存される。
また、本実施形態ではクリーニングジョブファイルのみ例示しているが、その他の印刷ジョブを外部メモリ711に保存しておくことで同様に印刷を実行することができる。外部メモリ711は情報処理装置101上の不揮発性メモリであり、HDDなど何でもよい。
印刷ジョブの生成は例えば、操作部705で「クリーニング実行」が指定された場合は、情報処理装置101上の外部メモリ711に保存されている生成済みのクリーニングジョブファイル712を取得してくるだけでよい。クリーニングジョブファイル712は本実施形態では不図示のインストーラでステータスウィンドウ105をインストールする際に外部メモリ711に保存される。
また、本実施形態ではクリーニングジョブファイルのみ例示しているが、その他の印刷ジョブを外部メモリ711に保存しておくことで同様に印刷を実行することができる。外部メモリ711は情報処理装置101上の不揮発性メモリであり、HDDなど何でもよい。
一方、例えば、操作部705で「デバイス状態の印刷指示(以下ステータスプリントと呼ぶ)」が指定された場合はRAM703に保存されている画像形成装置108の様々な情報を取得し、所定のレイアウトに合わせて印刷ジョブを生成する。これらは印刷ジョブ生成の一例であり、他の手段で印刷ジョブを生成してもよい。
デバイス通信部708は、アプリ制御部701などからの指示で仮想デバイスサービス106と通信を行う。通信を行うことで仮想デバイスサービスが持つ画像形成装置108の状態情報を取得したり、仮想デバイスサービス106に画像形成装置108への指示を行ったりする。
ここで、デバイス通信部708が仮想デバイスサービス106と通信を行うにあたり必要な仮想デバイスサービス固有情報の取得方法を説明する。仮想デバイスサービス固有情報とは本実施形態では仮想デバイスサービス106の存在する情報処理装置101のIPアドレスと仮想デバイス301と紐づけられた受信ポート番号を指すものとして以降は説明する。
ステータスウィンドウ105は、不図示のランチャから起動される。ランチャは不図示のインストーラでステータスウィンドウ105をインストールする際に同時に情報処理装置101にインストールされる。ランチャは情報処理装置101にインストールされているV4ドライバ103をOSのAPIを使用して取得する。ランチャは取得したV4ドライバ103のうち、外部メモリ711上に保存されているインストール時設定情報713があるV4ドライバ103のプリンタ名を表示する。
プリンタ名とはインストールしたV4ドライバ103に対するユーザが変更可能な名称である。インストール時設定情報713についての詳細は後述するが、ここにはインストールされているV4ドライバ103に対応したプリンタ名の情報が含まれる。
プリンタ名とはインストールしたV4ドライバ103に対するユーザが変更可能な名称である。インストール時設定情報713についての詳細は後述するが、ここにはインストールされているV4ドライバ103に対応したプリンタ名の情報が含まれる。
ユーザはこの表示されているプリンタ名のうちの1つを選択することで、選択したプリンタ名を持つ画像形成装置108に対応するステータスウィンドウ105を起動することができる。そして、起動されたステータスウィンドウ105は自身が接続するべき画像形成装置108に対応するプリンタ名を取得した状態で起動する。
次にデバイス通信部708はステータスウィンドウ105起動時に、取得したプリンタ名と紐づいている仮想デバイスサービス固有情報をインストール時設定情報713から取得する。
インストール時設定情報713は本実施形態における印刷システムを不図示のインストーラでインストールする際に設定した各種情報を外部メモリ711に保存したものである。
ここで、外部メモリ711に保存する方法として、情報処理装置101上のレジストリに保存してもよいし、設定ファイルとしてHDDに保存するのであってもよい。本実施形態における印刷システムでは、V4ドライバ103と仮想デバイスサービス106が紐づいている必要がある。
そのためにV4ドライバ103のプリンタ名と仮想デバイス固有情報を紐づけてインストール時設定情報713として保存している。本実施形態ではV4ドライバ103のプリンタ名と仮想デバイス固有情報をインストール時設定情報713の具体例として記載しているが、例えば画像形成装置108のデバイスIDなど他にも様々な情報を含んでいてもよい。
ここで、外部メモリ711に保存する方法として、情報処理装置101上のレジストリに保存してもよいし、設定ファイルとしてHDDに保存するのであってもよい。本実施形態における印刷システムでは、V4ドライバ103と仮想デバイスサービス106が紐づいている必要がある。
そのためにV4ドライバ103のプリンタ名と仮想デバイス固有情報を紐づけてインストール時設定情報713として保存している。本実施形態ではV4ドライバ103のプリンタ名と仮想デバイス固有情報をインストール時設定情報713の具体例として記載しているが、例えば画像形成装置108のデバイスIDなど他にも様々な情報を含んでいてもよい。
以上説明したような手段で取得した仮想デバイスサービス固有情報とRPCクライアント機能を使ってデバイス通信部708は仮想デバイスサービス106と通信が可能となる。
これにより、画像形成装置108の状態の取得、画像形成装置108への指示、印刷ジョブの送信を行うことができる。ここで、通信手段としてRPC通信を例に挙げたが、仮想デバイスサービス固有情報を使ってTCP/IP通信など他の通信手段で通信を行うようにしてもよい。
これにより、画像形成装置108の状態の取得、画像形成装置108への指示、印刷ジョブの送信を行うことができる。ここで、通信手段としてRPC通信を例に挙げたが、仮想デバイスサービス固有情報を使ってTCP/IP通信など他の通信手段で通信を行うようにしてもよい。
図8は、図3に示した仮想デバイススプーラ322のキューに印刷ジョブがない時のステータスウィンドウ105の画面例を示す図である。
図8において、表示IF710に表示されるステータスウィンドウTOP画面801は、選択された仮想デバイスのステータスの内容に応じてメインメッセージ部802、ステータス画面部803の表示を切り替える。補助メッセージ部804はステータスの補足情報などを表示する。
図8において、表示IF710に表示されるステータスウィンドウTOP画面801は、選択された仮想デバイスのステータスの内容に応じてメインメッセージ部802、ステータス画面部803の表示を切り替える。補助メッセージ部804はステータスの補足情報などを表示する。
印刷ジョブ情報部805は、印刷中のジョブの情報(ドキュメント名、ユーザ名、コンピュータ名)を表示するが、本画面は仮想デバイススプーラ322のキューに印刷ジョブがないときの画面例なので、印刷中のジョブの情報は表示されていない。
ジョブキャンセルボタン806は、ユーザが押下することで、印刷中のジョブの印刷をキャンセルすることができる。エラースキップボタン807は、何らかのエラーによりジョブの印刷が止まっているときにユーザが押下することで、そのエラーをスキップ(無視し)、印刷を再開させることができる。
本画面は仮想デバイススプーラ322のキューに印刷ジョブがないときの画面例であるので、ジョブキャンセルボタン806およびエラースキップボタン807は無効になっている。
本画面は仮想デバイススプーラ322のキューに印刷ジョブがないときの画面例であるので、ジョブキャンセルボタン806およびエラースキップボタン807は無効になっている。
メニュー表示部808にはステータスウィンドウから実行可能なメニューが表示される。メニューには仮想デバイススプーラ322のキューにあるジョブリストが閲覧できる「ジョブ」、画像形成装置108への様々な設定や指示が可能な「メニュー」、ステータスウィンドウ105)の説明を表示する「ヘルプ」などが表示される。「メニュー」を選択すると前述した「クリーニング実行」や「ステータスプリント」なども表示され、実行することができる。なお、本実施形態において、画像形成装置108から取得するステータス情報と対応づける表示情報は、仮想デバイス名(VirtualPrinter_1)を割当て管理している。
図9は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、ステータスウィンドウ105がクリーニングジョブを仮想デバイスサービスに送信する処理例である。本実施形態では仮想デバイス301が画像形成装置108と通信する場合の例を用いて説明する。ここで、クリーニングジョブは、クリーニング処理で使用するYMCKのベタ画像データであるを一例とする。
ステータスウィンドウ105のデバイス通信部708は、起動時に図7で説明した方法でインストール時設定情報713から仮想デバイスサービス固有情報を取得する(S901)。ステータスウィンドウ105の操作部705は入力IF709を介してユーザからの入力を監視する(S902)。ここで、ユーザからの入力がないとステータスウィンドウ105のアプリ制御部701が判断した場合はユーザからの入力の監視を継続する。
S902において、ユーザからの入力があったとステータスウィンドウ105が判断した場合、その入力内容が「クリーニング実行」指示であるかをアプリ制御部701が判断する(S903)。ここで、入力内容が「クリーニング実行」指示であるとアプリ制御部701が判断した場合、印刷ジョブ送信部707は外部メモリ711に保持しているクリーニングジョブファイル712を取得する(S904)。
そして、アプリ制御部701は、外部メモリ711から取得したクリーニングジョブファイル712をS901において取得した仮想デバイスサービス固有情報が示す仮想デバイスサービス106に対して送信して(S905)、本処理を終了する。
これにより、仮想デバイスサービス106は仮想デバイスサービス固有情報に含まれる受信ポート番号に対応する仮想デバイス301の印刷ジョブを格納するキューにクリーニングジョブを格納し、クリーニングジョブが実行される。
これにより、仮想デバイスサービス106は仮想デバイスサービス固有情報に含まれる受信ポート番号に対応する仮想デバイス301の印刷ジョブを格納するキューにクリーニングジョブを格納し、クリーニングジョブが実行される。
以上により、V4ドライバ103を用いた印刷システムにおいても、ドライバに画像処理を実行させることなく、情報処理装置101上のステータスウィンドウ105)が持つ任意の印刷ジョブを実行することが可能となる。
〔第2実施形態〕
図10は、本実施形態を示す情報処理装置を適用する印刷システムの構成を示す図である。なお、図中の太い実線の矢印は、印刷ジョブのやり取りがあることを示し、細い点線の矢印は、印刷ジョブ以外のデータのやり取りがあることを示している。
図10は、本実施形態を示す情報処理装置を適用する印刷システムの構成を示す図である。なお、図中の太い実線の矢印は、印刷ジョブのやり取りがあることを示し、細い点線の矢印は、印刷ジョブ以外のデータのやり取りがあることを示している。
本システム構成は、第1実施形態で図1を用いて示したシステム構成に、2台の情報処理装置1001、1011をネットワーク経由で接続したものである。2台の情報処理装置1001、1011はそれぞれクライアントとして機能し、サーバとして機能する情報処理装置101を経由して、画像形成装置107、108に印刷を実行させることができる。
クライアントとして機能する情報処理装置1001、1011内には、アプリケーション1002、1012、V4ドライバ1003、1013、Windows標準スプーラ1004、1014、ステータスウィンドウ1005、1015がある。これらについての説明は、実施形態1と同様である。本実施形態と第1実施形態のシステム構成では、以下のような構成の違いがある。
Windows標準スプーラ1004、1014は、それぞれの送信先ポートとして登録されたプリンタに対して、ネットワーク経由で印刷ジョブを送信する。本実施形態では、サーバとして機能する別の情報処理装置101内の仮想デバイスサービス106に対して、ネットワーク経由で印刷ジョブを送信することになる。
ステータスウィンドウ1005、1015は、サーバとして機能する情報処理装置101内の仮想デバイスサービス106と通信を行う。これにより、第1の実施形態と同様の方法で、ステータスウィンドウ1005、1015は自身が持つ任意の印刷ジョブを実行することが可能となる。システムとして実行される処理は図1の各ブロック同様と考えてよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えばASIC)によっても実現可能である。
101 情報処理装置
102 アプリケーション
103 V4ドライバ
105 ステータスウィンドウ
106 仮想デバイスサービス
107、108 画像形成装置
109 設定アプリケーション
102 アプリケーション
103 V4ドライバ
105 ステータスウィンドウ
106 仮想デバイスサービス
107、108 画像形成装置
109 設定アプリケーション
Claims (8)
- 画像形成装置と通信する情報処理装置であって、
特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する第1のデバイスドライバと、
前記第1のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスと、特定の入力データを前記画像形成装置に出力するサービスとを提供する第2のデバイスドライバと、
前記第2のデバイスドライバが前記入力データから取得される情報と、前記画像形成装置から取得するステータス情報とを対応づけた表示情報を生成して表示手段に出力する表示制御手段と、を備え、
前記第2のデバイスドライバは、前記画像形成装置から取得するステータス情報に従い、特定の入力データを画像処理することなく前記画像形成装置に出力することを特徴とする情報処理装置。 - 前記画像形成装置から取得するステータス情報と対応づける表示情報は、仮想デバイス名を割当て管理することを特徴とする請求項1に記載の情報処理装置。
- 前記第2のデバイスドライバは、前記特定の入力データを保持するキューを備えることを特徴とする請求項1に記載の情報処理装置。
- 前記第2のデバイスドライバは、前記画像形成装置と通信するランゲージモニタを備えることを特徴とする請求項1に記載の情報処理装置。
- 前記特定の入力データは、特定される所定のポートから受信することを特徴とする請求項1に記載の情報処理装置。
- 前記入力データは、前記画像形成装置のクリーニング処理で用いるベタ画像データであることを特徴とする請求項1に記載の情報処理装置。
- 画像形成装置と通信する情報処理装置の制御方法であって、
第1のデバイスドライバで特定のオペレーションシステムに従う印刷プロセスに従い、アプリケーションから受け取る印刷情報に所定の画像処理を行うことで生成される印刷データを前記画像形成装置に出力する第1の出力工程と、
第2のデバイスドライバで、前記第1のデバイスドライバから出力される印刷データを前記画像形成装置に出力するサービスと、特定の入力データを前記画像形成装置に出力するサービスとを提供するサービス工程と、
前記第2のデバイスドライバが前記入力データから取得される情報と、前記画像形成装置から取得するステータス情報とを対応づけた表示情報を生成して表示手段に出力する表示制御工程と、を備え、
前記第2のデバイスドライバで、前記画像形成装置から取得するステータス情報に従い、特定の入力データを画像処理することなく前記画像形成装置に出力することを特徴とする情報処理装置の制御方法。 - 請求項7に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016222261A JP2018081416A (ja) | 2016-11-15 | 2016-11-15 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016222261A JP2018081416A (ja) | 2016-11-15 | 2016-11-15 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018081416A true JP2018081416A (ja) | 2018-05-24 |
Family
ID=62198966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016222261A Pending JP2018081416A (ja) | 2016-11-15 | 2016-11-15 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018081416A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021002132A (ja) * | 2019-06-20 | 2021-01-07 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
WO2021117277A1 (ja) * | 2019-12-12 | 2021-06-17 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
WO2023248382A1 (ja) * | 2022-06-22 | 2023-12-28 | 三菱電機株式会社 | 制御装置、制御システム、制御方法およびプログラム |
-
2016
- 2016-11-15 JP JP2016222261A patent/JP2018081416A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021002132A (ja) * | 2019-06-20 | 2021-01-07 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
JP7374623B2 (ja) | 2019-06-20 | 2023-11-07 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法 |
WO2021117277A1 (ja) * | 2019-12-12 | 2021-06-17 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
US11775230B2 (en) | 2019-12-12 | 2023-10-03 | Brother Kogyo Kabushiki Kaisha | Non-transitory computer-readable storage medium, information processing device, and printing method for controlling a printer from an information processing device |
WO2023248382A1 (ja) * | 2022-06-22 | 2023-12-28 | 三菱電機株式会社 | 制御装置、制御システム、制御方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102549370B1 (ko) | 정보 처리 장치, 제어 방법 및 프로그램 | |
JP6604834B2 (ja) | 情報処理装置及びその制御方法、プログラム | |
US8537438B2 (en) | Information processing apparatus in which a plurality of types of print drivers and plurality of graphics units run, control method therefor, and program | |
JP7086754B2 (ja) | 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム | |
JP5665590B2 (ja) | 印刷システム、クライアント、制御方法、およびプログラム | |
JP7355147B2 (ja) | アプリケーションプログラム | |
JP6609140B2 (ja) | 情報処理装置とその制御方法、及びデバイスアプリケーションとプログラム | |
JP2020009420A (ja) | 情報処理装置および制御方法、制御プログラム | |
JP2018081416A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP5759290B2 (ja) | 情報処理装置およびその制御方法、並びにプログラム | |
JP2017204139A (ja) | 更新アプリケーション及び更新方法 | |
JP2013161450A (ja) | ネットワークプリンター管理システム、ネットワークプリンター管理装置及びその制御方法 | |
JP2015204045A (ja) | 情報処理装置及びその制御方法 | |
WO2023190149A1 (ja) | サポートプログラムおよび印刷システム | |
JP7328405B2 (ja) | 情報処理装置、情報処理装置の制御方法及び印刷設定アプリケーション | |
WO2023190148A1 (ja) | サポートプログラム | |
JP2013016103A (ja) | 情報処理システム及び情報処理装置 | |
JP6440573B2 (ja) | 情報処理装置および情報処理方法 | |
JP2016053861A (ja) | 画像形成装置の監視情報の管理システム及びプログラム | |
JP2020181593A (ja) | 印刷システム、画像形成装置、印刷システムの制御方法、画像形成装置の制御方法、及びプログラム | |
JP2013218473A (ja) | ネットワーク上の画像処理装置の管理システム | |
JP2020016951A (ja) | 情報処理装置、制御方法、およびプログラム | |
JP2019128936A (ja) | クライアント装置、制御方法、およびそのプログラム | |
JP2016053860A (ja) | 画像形成装置の監視情報の管理システム | |
JP2015075822A (ja) | 印刷制御システム、印刷制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20180306 |