(57)【特許請求の範囲】
【請求項１】
受信した印刷ジョブを格納するスプーラと、前記印刷ジョブの処理状態を表示する表示制御手段とを利用する印刷制御装置であって、
前記スプーラから出力された印刷ジョブを保持し、印刷装置に対する印刷ジョブの送信と、当該印刷装置において印刷ジョブが完了したか否かと、を管理する印刷ジョブ管理手段を備え、
前記印刷ジョブ管理手段から前記印刷装置に対して印刷ジョブの送信が完了した場合、前記印刷ジョブ管理手段は、送信完了の通知を前記スプーラに出力し、
前記印刷ジョブ管理手段が前記印刷装置から前記印刷ジョブの処理が完了したことを示す通知を受け付けた場合、前記印刷ジョブ管理手段は、印刷完了の通知を前記スプーラに出力し、
前記表示制御手段は、前記スプーラが受け付けた前記送信完了の通知と、前記印刷完了の通知と、により前記印刷ジョブの処理状態の表示を制御することを特徴とする印刷制御装置。
【請求項２】
前記印刷ジョブ管理手段は、前記スプーラに格納されている印刷ジョブに対して、当該印刷ジョブの処理を制御するための操作が行われたか否かを判定し、当該操作が行われたと判定された場合、前記印刷ジョブ管理手段が保持している印刷ジョブのうち、前記スプーラに格納され前記操作が加えられた印刷ジョブに対応する印刷ジョブに対して、当該操作を反映させることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記操作には、前記印刷ジョブの処理の中断、中断した処理の再開、前記印刷ジョブの削除のうち少なくとも１つが含まれることを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記スプーラは、前記印刷ジョブ管理手段から出力される前記印刷完了の通知に基づいて、前記スプーラから該当する印刷ジョブを削除し、
前記表示制御手段は、削除された前記印刷ジョブの表示を削除することを特徴とする請求項１に記載の印刷制御装置。
【請求項５】
前記印刷ジョブ管理手段が保持している前記印刷ジョブに設定されている情報を設定変更するための変更手段を更に備え、
前記印刷ジョブ管理手段は、前記変更手段から設定変更の要求を受け付けた場合に、設定変更の対象となる印刷ジョブが前記印刷装置に送信済みであるか判定し、当該印刷装置に対して未だ送信されていない場合に、当該印刷ジョブに前記設定変更を反映することを特徴とする請求項１に記載の印刷制御装置。
【請求項６】
受信した印刷ジョブを格納するスプーラと、前記印刷ジョブの処理状態を表示する表示制御手段とを利用する印刷制御装置における印刷制御方法であって、
印刷ジョブ管理手段が、前記スプーラから出力された印刷ジョブを保持し、印刷装置に対する印刷ジョブの送信と、当該印刷装置において印刷ジョブが完了したか否かと、を管理する印刷ジョブ管理工程を有し、
前記印刷ジョブ管理工程の処理により前記印刷装置に対して印刷ジョブの送信が完了した場合、前記印刷ジョブ管理工程では、送信完了の通知を前記スプーラに出力し、
前記印刷ジョブ管理工程が前記印刷装置から前記印刷ジョブの処理が完了したことを示す通知を受け付けた場合、前記印刷ジョブ管理工程では、印刷完了の通知を前記スプーラに出力し、
前記表示制御手段は、前記スプーラが受け付けた前記送信完了の通知と、前記印刷完了の通知と、により前記印刷ジョブの処理状態の表示を制御することを特徴とする印刷制御方法。
【請求項７】
前記印刷ジョブ管理工程では、前記スプーラに格納されている印刷ジョブに対して、当該印刷ジョブの処理を制御するための操作が行われたか否かを判定し、当該操作が行われたと判定された場合、前記印刷ジョブ管理手段が保持している印刷ジョブのうち、前記スプーラに格納され前記操作が加えられた印刷ジョブに対応する印刷ジョブに対して、当該操作を反映させることを特徴とする請求項６に記載の印刷制御方法。
【請求項８】
前記操作には、前記印刷ジョブの処理の中断、中断した処理の再開、前記印刷ジョブの削除のうち少なくとも１つが含まれることを特徴とする請求項７に記載の印刷制御方法。
【請求項９】
前記スプーラは、前記印刷ジョブ管理工程の処理により出力される前記印刷完了の通知に基づいて、前記スプーラから該当する印刷ジョブを削除し、
前記表示制御手段は、削除された前記印刷ジョブの表示を削除することを特徴とする請求項６に記載の印刷制御方法。
【請求項１０】
変更手段が、前記印刷ジョブ管理手段により保持されている前記印刷ジョブに設定されている情報を設定変更するための変更工程を更に有し、
前記印刷ジョブ管理工程では、前記変更工程により設定変更の要求が受け付けられた場合に、設定変更の対象となる印刷ジョブが前記印刷装置に送信済みであるか判定し、当該印刷装置に対して未だ送信されていない場合に、当該印刷ジョブに前記設定変更を反映することを特徴とする請求項６に記載の印刷制御方法。
【請求項１１】
コンピュータを、請求項１乃至５のいずれか１項に記載の印刷制御装置の各手段として機能させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを格納したコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御技術に関する。
【背景技術】
【０００２】
ホストコンピュータが作成した印刷ジョブをプリンタに送信し、プリンタが印刷ジョブを処理して紙媒体へ印刷を行う印刷システムが知られている。そのような印刷システムおいて、例えば、マイクロソフト社のＯＳ、Ｗｉｎｄｏｗｓ（登録商標）においては、ユーザが印刷を指示すると、プリントキューのグラフィカルユーザインタフェースで印刷ジョブの処理の状況を閲覧することができる。これにより、印刷ジョブがプリントキューにキューイングされ、プリントキューから出力されたか否かをユーザは知ることが出来る。
【０００３】
しかし、ユーザは、プリントキューから印刷ジョブが出力されたことを知ることが出来ても、印刷ジョブの処理が完了したか否かは知ることができない。例えば、プリントキューから出力された印刷ジョブに対するレンダリング等の印刷処理の状況や印刷処理が終了したことをプリントキューでは知ることが出来ないという問題がある。
【０００４】
また、一度、キューイングされた印刷ジョブは、部数などの印刷ジョブの設定（印刷ジョブ設定）を変更することが出来ないという問題もある。
【０００５】
これら問題の1つの解決方法として、特許文献１には、ランゲージモニタを用いたジョブの監視技術が開示されている。特許文献１は印刷ジョブの見届け処理として、印刷ジョブの処理が完了するまでランゲージモニタがプリントキューに対し、送信が完了していても、送信未完了と通知することでプリントキューからの出力と、実際の印刷出力とを一致させる構成を開示している。
【０００６】
また、ステータス表示アプリケーションで、ランゲージモニタが保持しているジョブ情報を表示する方法もある。しかし、ユーザが印刷ジョブを確認し、または操作するためには、プリントキューとアプリケーションの両方を確認する必要があり、操作が煩雑になるという問題も生じる。
【特許文献１】特開2007-11469号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１では、印刷ジョブの表示は、見届け処理が必要なジョブに限定されおり、印刷ジョブの一覧を表示させることはできない。また、キューイングされた後の印刷ジョブの設定を変更については考慮されていない。
【課題を解決するための手段】
【０００８】
本発明は、スプーラから印刷ジョブが送信された後でも、印刷装置で印刷処理が完了するまで、印刷ジョブの情報の表示、印刷ジョブの操作を印刷ジョブの処理に反映させることが可能な印刷制御技術を提供することを目的とする。
【０００９】
上記の目的を達成する印刷制御装置は、受信した印刷ジョブを格納するスプーラと、前記印刷ジョブの処理状態を表示する表示制御手段とを利用する印刷制御装置であって、
前記スプーラから出力された印刷ジョブを保持し、印刷装置に対する印刷ジョブの送信と、当該印刷装置において印刷ジョブが完了したか否かと、を管理する印刷ジョブ管理手段を備え、
前記印刷ジョブ管理手段から前記印刷装置に対して印刷ジョブの送信が完了した場合、前記印刷ジョブ管理手段は、送信完了の通知を前記スプーラに出力し、
前記印刷ジョブ管理手段が前記印刷装置から前記印刷ジョブの処理が完了したことを示す通知を受け付けた場合、前記印刷ジョブ管理手段は、印刷完了の通知を前記スプーラに出力し、
前記表示制御手段は、前記スプーラが受け付けた前記送信完了の通知と、前記印刷完了の通知と、により前記印刷ジョブの処理状態の表示を制御することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、スプーラから印刷ジョブが送信された後でも、印刷装置で印刷処理が完了するまで、印刷ジョブの情報の表示、印刷ジョブの操作を印刷ジョブの処理に反映させることが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の好適な実施形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１２】
（第１実施形態）
（情報処理装置、印刷装置のハードウエア構成）
本実施形態に好適な情報処理装置（ホストコンピュータ）と印刷装置との構成を図１、図２を参照して説明する。本実施形態では、印刷装置として、レーザビームプリンタを例に説明しているが、本発明の趣旨はこの例に限定されるものではなく、インクジェット方式など他のプリンタ方式の印刷装置に対しても適用可能であることはいうまでもない。
【００１３】
図１は、印刷装置の例として、レーザビームプリンタ（ＬＢＰ）の構成を示す図である。
【００１４】
印刷装置１５００（以下、ＬＢＰ１５００とも表記する）は、ホストコンピュータから供給される印刷ジョブ（印刷情報（文字コード等）やフォーム情報あるいはマクロ命令等）の入力を受け付けて、記憶することが可能である。また、ＬＢＰ１５００は、印刷ジョブに基づいて、対応する文字パターンやフォームパターン等を生成し、記録媒体である記録紙等に画像を形成することが可能である。
【００１５】
操作部１５０１には印刷装置１５００を操作するためのスイッチおよびＬＥＤ表示器等が配されている。プリンタ制御ユニット１０００は、ＬＢＰ１５００の制御およびホストコンピュータから供給される文字情報等を解析する。プリンタ制御ユニット１０００は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１５０２に出力する。レーザドライバ１５０２は半導体レーザ１５０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１５０３から発射されるレーザ光１５０４のオン・オフを切り換える。
【００１６】
レーザ光１５０４は回転多面鏡１５０５で左右方向に振らされて静電ドラム１５０６上を走査露光する。これにより、静電ドラム１５０６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１５０６の周囲に配設された現像ユニット１５０７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１５００に装着した用紙カセット１５０８に収納されている。カットシート記録紙は、給紙ローラ１５０９および搬送ローラ１５１０と搬送ローラ１５１１とにより、装置内に取り込まれて、静電ドラム１５０６に供給される。また、ＬＢＰ１５００には、図示しないカードスロットを少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なる制御カード（エミュレーションカード）を接続できるよう構成されている。更に、ＬＢＰ１５００には、図示しないハードティスクを備え、フォントデータを格納したり、前述したオプションフォントカード、言語系の異なる制御カード（エミュレーションカード）の内容をダウンロードすることもできる。
【００１７】
図２は、ホストコンピュータと印刷装置の構成を説明するブロック図である。ここでは、ホストコンピュータと、印刷装置として、レーザビームプリンタ（図１）を例にして説明する。
【００１８】
ホストコンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備える。ＣＰＵ１はシステムバス４に接続される各デバイスを総括的に制御する。
【００１９】
ＲＯＭ３のプログラム用ＲＯＭには、ＣＰＵ１の制御プログラムあるいは本発明の実施形態にかかるプリンタセレクタやネットワークプリンタドライバのプログラム等が記憶されている。ＲＯＭ３のフォント用ＲＯＭには文書処理の際に使用するフォントデータ等が記憶されており、ＲＯＭ３のデータ用ＲＯＭには文書処理等を行う際に使用する各種データが記憶されている。
【００２０】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア並びに本発明の実施形態にかかるプリンタ管理テーブルや、外部記憶装置からコピーされた不図示のプリンタ配置図登録リスト等を格納する記憶装置として機能する。キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。
【００２１】
外部メモリコントローラ（ＤＫＣ）７は、外部メモリ１１とのアクセスを制御する。例えば、外部メモリ１１は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイルならびに、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）或いはフラッシュＥＥＰＲＯＭ等がある。ネットワークコントローラ（ＮＴＷＣ）８は、双方向インタフェース（インタフェース）２１を介して印刷装置１５００に接続されて、印刷装置１５００との通信制御処理を実行する。ＣＰＵ１は、例えば、ＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００２２】
ＣＰＵ１２は、印刷装置１５００の動作を制御する。また、ＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等、或いは外部メモリ１４に記憶された制御プログラム等を実行する。ＣＰＵ１２は、制御プログラムに基づいてシステムバス１５に接続される各種のデバイスとのアクセスを総括的に制御する。そして、ＣＰＵ１２は、印刷部インタフェース１６を介して接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００２３】
ＲＯＭ１３のフォント用ＲＯＭには上記の出力情報を生成する際に使用するフォントデータ等が記憶されている。ＲＯＭ１３のデータ用ＲＯＭには、ハードディスク２３等の外部記憶装置が無い印刷装置の場合には、ホストコンピュータ上で利用される各種特性情報等が記憶される。
【００２４】
ＣＰＵ１２は、入出力部１８を介してホストコンピュータ３０００との通信処理が可能となっており、印刷装置１５００内の情報等をホストコンピュータ３０００に通知することが可能に構成されている。ＲＡＭ１９は、ＣＰＵ１２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いることが可能である。
【００２５】
ハードディスク（ＨＤ）２３は、ディスクコントローラ（ＤＫＣ）２２によりアクセスが制御され、またＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスが制御される。外部メモリ１４は、印刷装置１５００にオプションとして接続可能である、外部メモリ１４には、フォントデータ、エミュレーションプログラム、フォームデータ等が記憶される。また、操作部１５０１には印刷装置１５００を操作するためのスイッチおよびＬＥＤ表示器等が配されている。
【００２６】
（情報処理装置、印刷装置の機能構成）
図３は、ホストコンピュータ３０００、印刷装置１５００における機能構成を説明するためのブロック図である。図３のホストコンピュータ３０００において、オペレーティングシステム（以下、ＯＳと呼ぶ）は、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）を使用するものとする。印刷装置１５００は、ランゲージモニタ３０８と相互に通信が可能な状態でホストコンピュータ３０００と接続している。
【００２７】
印刷装置１５００は、状態管理部３１０を備える。状態管理部３１０は、ステータスとして、現在の印刷装置１５００の状態と、印刷中の印刷ジョブの状態とを管理することが可能である。状態管理部３１０は、不図示の状態検知部、メモリ、状態解析部及び通信部などから構成される。状態管理部３１０はホストコンピュータ３０００からの要求に応じて現在のステータスをホストコンピュータ３０００に通知することが可能である。
【００２８】
ホストコンピュータ３０００には、印刷処理機能を有する任意のアプリケーション３０１がインストールされている。アプリケーション３０１を介して印刷が要求された描画データは、ＯＳの描画モジュールであるグラフィクス・デバイス・インタフェース（以下、ＧＤＩ）３０２経由でジョブ出力手段としてプリンタグラフィックスドライバ３０３に渡される。プリンタグラフィックスドライバ３０３は渡されたデータに基づき印刷ジョブを生成する。生成された印刷ジョブは、印刷装置１５００へ印刷要求として出力される。
【００２９】
本実施形態におけるＧＤＩ３０２は、出力データを一旦ＥＭＦ（Ｅｎｈａｎｃｅｄ Ｍｅｔａ Ｆｉｌｅ）データとしてスプールする。スプールされたデータは、ＯＳのモジュールで構成されるジョブ管理機能を備えたスプーラ３０４に渡される。
【００３０】
スプーラ３０４は、受信した印刷ジョブをプリントキュー３０５に格納し、順次印刷ジョブを出力することが可能である。スプーラ３０４は、渡されたジョブに関する情報をジョブが終了するまで保持し、管理する。具体的な管理としては、例えば、印刷装置毎に印刷ジョブのサイズ、ジョブ名等が管理され、印刷装置毎の印刷ジョブのサイズ、ジョブ名等は、プリントキュー３０５に表示される。プリントキュー３０５はスプーラ３０４が現在保持しているスプールデータの処理状態を表示する役割を担う。プリントキュー３０５は、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが持つ標準的機能である。例えば、プリンタグラフィックスドライバ３０３やドライバＵＩ３０７、アプリケーション３０１などから所定のインタフェース関数を用いて参照できる。参照を行った主体は、現在、プリントキュー３０５において管理されているジョブの情報（キューの情報）を取得することが出来る。
【００３１】
スプーラ３０４がスプールデータを受け取った以後の処理は、アプリケーションの処理とは別プロセスとして動作する。スプールが終了すると、プリントプロセッサ３０６に印刷要求を発行する。
【００３２】
印刷要求の発行に基づき、プリントプロセッサ３０６は、スプーラ３０４から印刷出力情報と描画データをページ単位で読み込み、１ページずつＧＤＩ３０２を介してプリンタグラフィックスドライバ３０３に出力して印刷するように要求する。プリントプロセッサ３０６は、ＯＳのモジュールとして用意されているが、プリンタベンダー等がカスタマイズしたものを用いても良い。
【００３３】
プリントプロセッサ３０６から印刷が要求されたプリンタグラフィックスドライバ３０３は、ＧＤＩ３０２が持つ描画機能であるＧＤＩレンダリングエンジンを用いて、描画データをプリンタの印刷解像度に合わせてラスタイメージデータにレンダリングする。その後、色処理、プリンタコマンドの付加などを行い、印刷ジョブとして生成し、印刷装置１５００に出力する。
【００３４】
実際には、プリンタグラフィックスドライバ３０３から出力されたデータは、ＧＤＩ３０２経由でランゲージモニタ３０８に送信依頼という形で出力される。
【００３５】
ランゲージモニタ３０８は印刷ジョブを特定サイズのパケットに区切り、印刷装置１５００に出力することが可能である。また、ランゲージモニタ３０８は、印刷装置１５００との通信により、印刷装置１５００の状態または現在印刷中の印刷ジョブの処理状況に関する情報を取得することも可能である。ランゲージモニタ３０８は、スプーラ３０４から出力された印刷ジョブを保持し、印刷装置１５００に対する印刷ジョブの送信、印刷装置１５００において印刷ジョブが完了したか否かを管理する印刷ジョブ管理手段として機能する。
【００３６】
ドライバＵＩ３０７は、主に印刷ジョブに係わる各種設定を行うことが可能なアプリケーションまたはユーティリティである。
【００３７】
プリンタステータスモニタ３０９は、印刷装置１５００の状態、現在印刷中の印刷ジョブの処理状況、ランゲージモニタ３０８が保持する印刷ジョブに関する情報（ジョブ情報）を表示することが可能なＧＵＩである。
【００３８】
図４は、従来例におけるランゲージモニタの処理を説明する図である。スプーラ４０１からランゲージモニタ４０２に印刷ジョブ（図４の場合、Ｊｏｂ４１からＪｏｂ４４）が渡されると、ランゲージモニタ４０２は印刷終了をスプーラ４０１に通知する。スプーラ４０１は、印刷終了の通知を受けると、プリントキュー４０４から該当する印刷ジョブ（Ｊｏｂ４１からＪｏｂ４４）を削除する。
【００３９】
プリンタステータスモニタ４０３は、ランゲージモニタ４０２が印刷ジョブを保持していても、プリントキュー４０４から印刷ジョブ（Ｊｏｂ４１からＪｏｂ４４）を参照することはできない。プリンタステータスモニタ４０３においては、印刷装置で処理の対象となっている印刷ジョブのみ（図４の場合、Ｊｏｂ４１）が表示可能である。ランゲージモニタ４０２が印刷ジョブを保持していても、処理の順位が先頭でない印刷ジョブ（Ｊｏｂ４２〜Ｊｏｂ４４）をユーザが確認したり、その設定を変更したりする操作を行うことはできない。
【００４０】
図５は、本実施形態にかかるランゲージモニタの処理を説明する図である。ランゲージモニタ３０８は、受け取った印刷ジョブを印刷装置に出力した段階で、出力完了のみをスプーラ３０４に通知する。この場合、プリントキュー３０５から印刷ジョブの情報（ジョブ名）が削除されるのではなく、状態が「プリンタに送信」と表示される。図５においては、印刷ジョブとして、Ｊｏｂ５１〜Ｊｏｂ５４が「プリンタに送信」の状態にある。プリンタステータスモニタ３０９は、ランゲージモニタ３０８が保持する印刷ジョブ（Ｊｏｂ５１〜Ｊｏｂ５４）、印刷装置１５００の状態、現在印刷中の印刷ジョブの処理状況を表示することが可能である。
【００４１】
ランゲージモニタ３０８は、印刷装置１５００に印刷ジョブを送信し、印刷装置１５００からページ単位の印刷ジョブの処理状況を示す情報を受信すると、スプーラ３０４に、印刷ジョブ（例えば、図５のＪｏｂ５５）は、印刷中であることを通知する。更に、ランゲージモニタ３０８は、印刷装置１５００に印刷ジョブを送信し、印刷装置１５００の状態から印刷ジョブの印刷完了を示す情報を受信すると（印刷完了時）、スプーラ３０４に印刷完了を通知する。これによりスプーラ３０４から印刷ジョブの情報が削除される。
【００４２】
また、ランゲージモニタ３０８はスプーラ３０４を監視する。スプーラ３０４で印刷ジョブの一時停止（一時中断）、再開などに関するジョブ操作（スプーラの操作）が行われた場合、該当する印刷ジョブをランゲージモニタ３０８が保持していれば、ジョブ操作を印刷ジョブに反映可能である。
【００４３】
印刷ジョブの処理が印刷装置１５００で完了するまで、プリントキュー３０５に印刷ジョブの情報を表示することが可能になる。スプーラ３０４において、印刷ジョブの一時中断等のジョブ操作が指示された場合であっても、印刷ジョブの処理が完了するまで、ジョブ操作を印刷ジョブの処理に反映して、印刷ジョブの実行を制御することができる。
【００４４】
（ランゲージモニタの処理）
次に、ランゲージモニタ３０８の処理を図６のフローチャートを参照して説明する。フローチャートの処理は、ＣＰＵ１の全体的な制御の下に、ランゲージモニタ３０８が実行する。ランゲージモニタ３０８は、ワーク領域として印刷ジョブ識別情報リスト（ＪｏｂＩｄＬｉｓｔ）を持ち、現在保持している印刷ジョブの識別情報（ＪｏｂＩｄ）を格納する。印刷ジョブ識別情報リストには、現在処理中のジョブの識別情報（ＣｕｒｒｅｎｔＪｏｂＩｄ）も格納される。現在処理中の印刷ジョブがなければ、初期値は０である。ランゲージモニタ３０８は、印刷ジョブ識別情報リストに格納されている識別情報を参照することにより、ランゲージモニタ３０８が保持している印刷ジョブ、印刷装置１５００により現在処理中の印刷ジョブを特定することができる。
【００４５】
ステップＳ６０１において、ランゲージモニタ３０８は、ＧＤＩ３０２を介して、スプーラ３０４から印刷開始指示を受け取り、印刷ジョブを特定するための識別情報（ＪｏｂＩｄ）を記憶する。このときプリントキュー３０５の状態は「印刷中」と表示される（例えば、図５のＪｏｂ５５）。プリントキュー３０５における識別情報（ＪｏｂＩｄ）と、ランゲージモニタ３０８が保持する印刷ジョブの識別情報（ＪｏｂＩｄ）と、は共通であり、識別情報（ＪｏｂＩｄ）に基づき印刷ジョブを特定することができる。
【００４６】
ステップＳ６０２において、ランゲージモニタ３０８は、スプーラ３０４から印刷ジョブデータを１ブロック受信し、ステップＳ６０３に処理を進める。
【００４７】
ステップＳ６０３において、ランゲージモニタ３０８は、ユーザによってスプーラ３０４の操作が行われたかどうかを判定する。ユーザがスプーラ３０４を操作したか否かは、ＯＳの用意したＡＰＩをコールすることで判定可能である。このときスプーラからどのジョブに対して操作が行われたかについては、ＡＰＩによってＪｏｂＩｄが得られるため、ＪｏｂＩｄから判定することが可能である。スプーラでの操作があった場合はステップＳ６０４に進み、なかった場合は、ステップＳ６１１に進む。
【００４８】
ステップＳ６０４において、ランゲージモニタ３０８は、操作が加えられた印刷ジョブの識別情報（ＪｏｂＩｄ）に対応する印刷ジョブがあるかを判定し、対応する印刷ジョブがある場合はステップＳ６０５に進み、ない場合はステップＳ６０２に戻る。
【００４９】
ステップＳ６０５において、ランゲージモニタ３０８は、スプーラ３０４での操作が再開だった場合は、ステップＳ６０６に進み、そうでない場合はステップＳ６０７に進む。
【００５０】
ステップＳ６０６において、ランゲージモニタ３０８は、該当する印刷ジョブの印刷装置１５００への送信処理を再開する。
【００５１】
一方、ステップＳ６０７において、ランゲージモニタ３０８は、スプーラでの操作がジョブの一時停止かジョブの削除かを判定する。ジョブの一時停止である場合は、ステップＳ６０８に進み、ジョブの削除である場合は、ステップＳ６０９に進む。
【００５２】
ステップＳ６０８において、ランゲージモニタ３０８は、印刷装置１５００への送信処理を停止し、ステップＳ６０２に処理を戻す。
【００５３】
一方、ステップＳ６０９において、ランゲージモニタ３０８は、該当する印刷ジョブの印刷データを削除し、ステップＳ６１０に処理を進める。
【００５４】
ステップＳ６１０において、ランゲージモニタ３０８は、削除した印刷ジョブが現在処理中の印刷ジョブかどうかを判定し、現在処理中のジョブの場合は、処理を終了する。そうでない場合はステップＳ６０２に処理を戻す。
【００５５】
一方、ステップＳ６１１おいて、ランゲージモニタ３０８は、スプーラ３０４から受信したデータが１ページ分になったかどうかを判定する。１ページ分ある場合は、ステップＳ６１２に処理を進め、そうでない場合は、ステップＳ６０２に処理を戻す。１ページ分のデータの最後にはページデータの終端であるコマンドが含まれているため、ランゲージモニタ３０８は、そのコマンドが含まれているか否かで１ページ分のデータを受信したか否かを判定することが可能である。
【００５６】
ステップ６１２において、ランゲージモニタ３０８は、１ページ分のデータを印刷装置１５００へブロックに分割して送信する。
【００５７】
ステップＳ６１３において、ランゲージモニタ３０８は、印刷ジョブの全ての印刷データを受信したか否かを判定し、受信した場合は、ステップＳ６１４に処理を進め、そうでない場合は、ステップＳ６０２に処理を戻す。印刷ジョブの最後には、印刷ジョブの終端であるコマンドが含まれているため、ランゲージモニタ３０８は、そのコマンドが含まれているか否かで印刷ジョブの終了を判定することが可能である。
【００５８】
ステップＳ６１４において、ランゲージモニタ３０８は、スプーラ３０４に印刷ジョブの送信完了を通知する。この通知を受けて、プリントキュー３０５の状態は、「プリンタに送信」が表示される。
【００５９】
ステップＳ６１５において、ランゲージモニタ３０８は、ユーザによってスプーラ３０４の操作が行われたかどうかを判定する。スプーラ３０４の操作が行われた場合、ステップＳ６１６に処理を進める。一方、スプーラ３０４の操作が行われなかった場合、ステップＳ６２３に処理を進める。スプーラ３０４の操作は、印刷ジョブに対する識別情報（ＪｏｂＩｄ）に基づき、どの印刷ジョブに対して操作が行われたか、特定される。
【００６０】
ステップＳ６１６において、ランゲージモニタ３０８は、操作が加えられた印刷ジョブの識別情報（ＪｏｂＩｄ）に対応する印刷ジョブがあるかを判定し、対応する印刷ジョブがある場合はステップＳ６１７に処理を進める。一方、対応する印刷ジョブがない場合、ランゲージモニタ３０８は、ステップＳ６１５に処理を戻す。
【００６１】
ステップＳ６１７において、ランゲージモニタ３０８は、スプーラ３０４での操作が再開であるか否かを判定する。スプーラ３０４での操作が再開の場合、ステップＳ６１８に処理を進める。ステップＳ６１７の判定で、スプーラ３０４での操作が再開でない場合、処理をステップＳ６１９に進める。
【００６２】
ステップＳ６１８において、ランゲージモニタ３０８は、該当する印刷ジョブの印刷装置１５００への送信処理を再開する。
【００６３】
ステップＳ６１９において、ランゲージモニタ３０８は、スプーラ３０４での操作が印刷ジョブの一時停止（送信停止）であるか、保持している印刷ジョブの削除かを判定する。印刷ジョブの一時停止（送信停止）である場合は、ステップＳ６２０に処理を進め、印刷ジョブの削除である場合は、ステップＳ６２１に処理を進める。
【００６４】
ステップＳ６２０において、ランゲージモニタ３０８は、印刷装置１５００への送信処理を停止し、ステップＳ６０２に処理を戻す。
【００６５】
ステップＳ６２１において、ランゲージモニタ３０８は、保持している印刷ジョブの中から該当する印刷ジョブの印刷データを削除し、処理をステップＳ６２２に進める。
【００６６】
ステップＳ６２２において、ランゲージモニタ３０８は、削除した印刷ジョブが現在処理中の印刷ジョブかどうかを判定し、現在処理中のジョブの場合は、処理を終了する。そうでない場合はステップＳ６１５に処理を戻す。
【００６７】
ステップＳ６２３において、ランゲージモニタ３０８は、印刷ジョブが完了（印刷完了）したか否かを判定する。ランゲージモニタ３０８は、印刷装置１５００との通信により、印刷装置１５００の状態または現在印刷中の印刷ジョブの処理状況に関する情報を取得し、印刷ジョブの処理が完了したか否かを判定することが可能である。印刷ジョブの処理が完了している場合は、処理をステップＳ６２４に進め、印刷ジョブの処理が完了していない場合は、処理をＳ６１５に戻す。
【００６８】
ステップＳ６２４において、ランゲージモニタ３０８は、印刷ジョブの処理が完了したことを示す情報をスプーラ３０４に送信して、印刷完了を通知する。以上の処理により、ランゲージモニタ３０８の一連の処理を終了する。印刷完了の通知を受信したスプーラ３０４は、プリントキュー３０５から該当する印刷ジョブの情報を削除する。
【００６９】
（スプーラの動作）
次に、印刷処理開始時におけるスプーラ３０４の処理を図１１のフローチャートを参照して説明する。フローチャートの処理は、ＣＰＵ１の全体的な制御の下に、スプーラ３０４が実行する。図１１のフローチャートにおいては、スプーラ３０４の説明を説明するものであり、ユーザがジョブ操作を行った場合については、説明を省略する。
【００７０】
ステップＳ１１０１において、スプーラ３０４は、ＧＤＩ３０２を介して、プリンタグラフィックスドライバ３０３から印刷ジョブ（印刷データ）を受信したか否かを判定する。印刷ジョブ（印刷データ）を受信した場合、スプーラ３０４は、ステップＳ１１０２に処理を進める。印刷ジョブ（印刷データ）を受信していない場合、スプーラ３０４は、ステップＳ１１０１に処理を戻す。
【００７１】
ステップＳ１１０２において、スプーラ３０４は、プリントキュー３０５に「スプール中」を表示し、ステップＳ１１０３に処理を進める。
【００７２】
ステップＳ１１０３において、スプーラ３０４は、印刷データを全て受信したか否かを判定する。印刷データを全て受信した場合はステップＳ１１０４に処理を進める。ステップＳ１１０３の判定で、全ての印刷データの受信が完了していない場合は、ステップＳ１１０１に処理を戻す。全てのデータを受信したか否かは、プリンタグラフィックスドライバ３０３が全ての印刷データの送信を完了したことを通知するため、その通知に基づいて、スプーラ３０４は、全ての印刷データの受信完了を判定できる。
【００７３】
ステップＳ１１０４において、スプーラ３０４は、ランゲージモニタ３０８に印刷ジョブの印刷データを１ブロック送信し、ステップＳ１１０５に処理を進める。
【００７４】
ステップＳ１１０５において、スプーラ３０４は、プリントキュー３０５に「印刷中」を表示させて、処理をステップＳ１１０６に進める。
【００７５】
ステップＳ１１０６において、スプーラ３０４は、印刷ジョブの印刷データを全てランゲージモニタ３０８に送信したか否かを判定し、全て送信した場合はステップＳ１１０７に進む。全ての印刷データの送信が完了していない場合は処理をＳ１１０４に戻す。
【００７６】
ステップＳ１１０７において、スプーラ３０４は、ランゲージモニタ３０８から送信完了が通知されているか判定する。この送信完了の通知は、図６のステップＳ６１４の処理に対応する。送信完了が通知された場合、スプーラ３０４は、ステップＳ１１０８に処理を進め、ステップＳ１１０８において、スプーラ３０４は、プリントキュー３０５に「プリンタに送信」を表示させる。
【００７７】
一方、送信完了の通知を受信しない場合、スプーラ３０４は、処理をステップＳ１１０９に進める。ステップＳ１１０９において、スプーラ３０４は、ランゲージモニタ３０８から印刷ジョブの印刷完了（印刷ジョブの終了）が通知されているか判定する。ランゲージモニタ３０８から送信される印刷完了の通知は、図６のステップＳ６２４に対応するものである。印刷完了が通知された場合、スプーラ３０４は、ステップＳ１１１０に処理を進め、印刷完了通知を受信していない場合は、処理をステップＳ１１０７に戻し、同様の処理を繰り返す。ステップＳ１１１０において、スプーラ３０４は、プリントキュー３０５から該当する印刷ジョブの情報を削除し、処理を終了する。
【００７８】
スプーラ３０４から印刷ジョブが送信された後でも、印刷装置１５００で印刷処理が完了するまで、印刷ジョブの情報の表示、印刷ジョブの操作を印刷ジョブの処理に反映させることが可能になる。
【００７９】
（第２実施形態）
本実施形態では、ランゲージモニタ３０８が保持する印刷ジョブの情報を、プリンタステータスモニタ３０９により変更する構成を説明する。ランゲージモニタ３０８で保持している印刷ジョブは、印刷装置１５００へ送信する前であれば、例えば、部数など、印刷ジョブに設定されている印刷ジョブ情報を変更することも可能である。
【００８０】
図７は、プリンタステータスモニタ３０９の表示制御により表示されるＵＩ画面７０１を例示する図である。ＵＩ画面７０１には、ランゲージモニタ３０８が保持している印刷ジョブがリスト表示される。ユーザは、ＵＩ画面７０１にリスト表示されている印刷ジョブから印刷ジョブ情報を変更するものを選択し（図７では、Ｊｏｂ５１が選択された状態になっている）、選択ボタン７０２を押下すると、選択が確定する。
【００８１】
図８は、プリンタステータスモニタ３０９の表示制御により表示される印刷ジョブ情報設定画面８０１を例示する図である。印刷ジョブ情報設定画面８０１には、印刷ジョブの情報を変更するための設定欄８０２が表示される。設定ボタン８０３が押下されると設定内容が確定する。プリンタステータスモニタ３０９は、設定ボタン８０３の押下により設定内容の確定を受け付けると、ランゲージモニタ３０８に対し、ＪｏｂＩｄを指定して、印刷ジョブ情報の設定変更を要求する。
【００８２】
図９は、印刷ジョブ情報の設定変更の要求を処理するランゲージモニタ３０８の処理の流れを説明するフローチャートである。フローチャートの処理は、ＣＰＵ１の全体的な制御の下に、ランゲージモニタ３０８が実行する。この処理は、第１実施形態で説明した印刷処理と並行して行われる。
【００８３】
ステップＳ９０１において、ランゲージモニタ３０８は、プリンタステータスモニタ３０９から印刷ジョブ情報の設定変更の要求があるか否を判定する。
【００８４】
設定変更の要求がない場合、ランゲージモニタ３０８は、ステップＳ９０１に戻り、設定変更の要求待ちの状態で待機する。
【００８５】
印刷ジョブ情報の設定変更の要求がプリンタステータスモニタ３０９から入力された場合、ランゲージモニタ３０８は、処理をステップＳ９０２に進める。ステップＳ９０２において、ランゲージモニタ３０８は、設定変更が要求された印刷ジョブを保持しているか否かを判定する。ランゲージモニタ３０８は、印刷装置１５００に送信前の印刷ジョブとして保持しているもののＪｏｂＩｄと、プリンタステータスモニタ３０９から送信されたＪｏｂＩｄとを比較して、印刷ジョブの有無を判定することが可能である。
【００８６】
設定変更が要求された印刷ジョブをランゲージモニタ３０８が保持している場合、ランゲージモニタ３０８は、処理をステップＳ９０３に進める。一方、設定変更が要求された印刷ジョブをランゲージモニタ３０８が保持していない場合は、処理をステップＳ９０４に進める。
【００８７】
ステップＳ９０３において、ランゲージモニタ３０８は、該当する印刷ジョブの印刷データが印刷装置１５００へ送信済みか否かを判定する。印刷データが印刷装置１５００へ送信済みの場合、ランゲージモニタ３０８は、処理をステップＳ９０４に進める。一方、ステップＳ９０３の判定で、該当する印刷ジョブの印刷データが印刷装置１５００へ送信済みでない場合は、処理をステップＳ９０５に進める。印刷装置１５００に印刷データが送信済みであるか否かは、ランゲージモニタ３０８に送信対象の印刷データとして残っているか否かで判定することが可能である。
【００８８】
ステップＳ９０５において、ランゲージモニタ３０８は、プリンタステータスモニタ３０９からの要求に基づき、印刷ジョブ情報の変更を行い、処理をステップＳ９０１に戻す。
【００８９】
一方、ステップＳ９０４において、ランゲージモニタ３０８は、プリンタステータスモニタ３０９からの要求に基づいた設定の変更ができなかったことを、プリンタステータスモニタ３０９に通知して、処理をＳ９０１に戻す。この通知を受け付けたプリンタステータスモニタ３０９はエラー表示を、例えば、ＵＩ画面（図１０）に表示する。
【００９０】
尚、本実施形態では、ランゲージモニタで保持する印刷ジョブに対して設定変更を行う例を説明したが、本発明の趣旨はこの例に限定されるものではない。例えば、ランゲージモニタなどを経由して印刷ジョブの情報を取得/設定が出来れば、印刷装置側に印刷ジョブを保持する形式の印刷装置に対しても適用が可能である。
【００９１】
スプーラ３０４から印刷ジョブが送信された後でも、印刷ジョブが開始される前まで、印刷ジョブの情報の設定を変更することが可能になる。
【００９２】
（他の実施形態）
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録したコンピュータ可読の記憶媒体を、システムあるいは装置に供給することによっても、達成されることは言うまでもない。また、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００９３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９４】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９６】
【図１】印刷装置の例として、レーザビームプリンタの構成を示す図である。
【図２】ホストコンピュータと印刷装置の構成を説明するブロック図である。
【図３】ホストコンピュータと印刷装置の機能構成を説明するブロック図である。
【図４】従来例におけるランゲージモニタの動作を説明する図である。
【図５】本発明の第１実施形態にかかるランゲージモニタの処理を説明する図である。
【図６】本発明の第１実施形態にかかるランゲージモニタの処理の流れを説明する図である。
【図７】本発明の第２実施形態にかかるステータスモニタの表示制御により表示されるＵＩ画面を例示する図である。
【図８】本発明の第２実施形態にかかるステータスモニタの表示制御により表示される印刷ジョブ情報設定画面を例示する図である。
【図９】本発明の第２実施形態にかかる印刷ジョブ情報の設定変更の要求を処理するランゲージモニタの処理の流れを説明する図である。
【図１０】本発明の第２実施形態にかかるステータスモニタからの要求に基づいた設定の変更ができなかったことを通知するＵＩ画面を例示する図である。
【図１１】本発明の第１実施形態にかかるスプーラの処理の流れを説明する図である。
【符号の説明】
【００９７】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
５  ＫＢＣ（キーボードコントローラ）
６  ＣＲＴＣ（ＣＲＴコントローラ）
７  ＤＫＣ（ディスクコントローラ）
８  ＮＴＷＣ（ネットワークコントローラ）
９  ＫＢ（キーボード）
１０  ＣＲＴ
３０００  ホストコンピュータ
【図１】
0004944682.tif 000002
【図２】
0004944682.tif 000003
【図３】
0004944682.tif 000004
【図４】
0004944682.tif 000005
【図５】
0004944682.tif 000006
【図６】
0004944682.tif 000007
【図７】
0004944682.tif 000008
【図８】
0004944682.tif 000009
【図９】
0004944682.tif 000010
【図１０】
0004944682.tif 000011
【図１１】
0004944682.tif 000012