(57)【特許請求の範囲】
【請求項１】
ジョブを処理する情報処理装置であって、
印刷装置の装置エラーを検出する装置エラー検出手段と、
前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであるか否かを判断する判断手段と、
前記装置エラーが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記装置エラーの情報を表示しないよう制御する表示手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記ジョブの設定エラーを検出する設定エラー検出手段と、
前記装置エラー検出手段及び設定エラー検出手段で検出されたエラーの情報をファイルとして前記情報処理装置の記録部に書き込む書き込み手段と、を更に有し、
前記書き込み手段は、前記装置エラーと前記設定エラーとが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記設定エラーのみを前記ファイルとして書き込み、
前記表示手段は、前記ファイルを読み込むことによって、前記設定エラーの情報を表示し、前記装置エラーの情報を表示しないよう制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判断手段は、フォームの作成を行うためのジョブを、前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブとして判断することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記フォームの作成を行うためのジョブからフォームを作成する作成手段と、
前記作成手段で作成されたフォームを前記情報処理装置の記憶部に記憶する記憶手段と、を更に有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記印刷装置に送信する印刷コマンドを生成する生成手段を更に有し、
前記判断手段は、前記ジョブが前記記憶部に記憶されたフォームのうちユーザー操作により指定されたフォームを用いて印刷を行う印刷ジョブであるか否かを更に判断し、
前記生成手段は、前記ジョブが前記ユーザー操作により指定されたフォームを用いて印刷を行う印刷ジョブであると判断された場合、前記ユーザー操作により指定されたフォームと前記印刷ジョブとを用いて印刷コマンドを生成することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記フォームは、前記印刷装置において、透明インクの印刷領域を特定するために用いることを特徴とする請求項３乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
ジョブを処理する情報処理装置であって、
印刷装置の装置エラーを検出する装置エラー検出手段と、
前記ジョブの設定エラーを検出する設定エラー検出手段と、
前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであるか否かを判断する判断手段と、
前記装置エラーと前記設定エラーとが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記装置エラーの情報よりも前記設定エラーの情報を優先して表示するよう制御する表示手段と、
を有することを特徴とする情報処理装置。
【請求項８】
ジョブを処理する情報処理装置が実行する表示制御方法であって、
印刷装置の装置エラーを検出する装置エラー検出工程と、
前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであるか否かを判断する判断工程と、
前記装置エラーが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記装置エラーの情報を表示しないよう制御する表示工程と、
を含むことを特徴とする表示制御方法。
【請求項９】
前記ジョブの設定エラーを検出する設定エラー検出工程と、
前記装置エラー検出工程及び設定エラー検出工程で検出されたエラーの情報をファイルとして前記情報処理装置の記録部に書き込む書き込み工程と、を更に含み、
前記書き込み工程では、前記装置エラーと前記設定エラーとが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記設定エラーのみを前記ファイルとして書き込み、
前記表示工程では、前記ファイルを読み込むことによって、前記設定エラーの情報を表示し、前記装置エラーの情報を表示しないよう制御することを特徴とする請求項８に記載の表示制御方法。
【請求項１０】
前記判断工程では、フォームの作成を行うためのジョブを、前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブとして判断することを特徴とする請求項８又は９に記載の表示制御方法。
【請求項１１】
ジョブを処理する情報処理装置が実行する表示制御方法であって、
印刷装置の装置エラーを検出する装置エラー検出工程と、
前記ジョブの設定エラーを検出する設定エラー検出工程と、
前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであるか否かを判断する判断工程と、
前記装置エラーと前記設定エラーとが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記装置エラーの情報よりも前記設定エラーの情報を優先して表示するよう制御する表示工程と、
を含むことを特徴とする表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び表示制御方法に関する。
【背景技術】
【０００２】
従来、印刷装置で発生したエラーをステータス情報表示機能においてユーザーに通知する技術がすでに存在する（例えば、特許文献１参照）。特許文献１によれば、印刷制御装置のコマンド送受信手段で、印刷装置の情報を取得し、ステータス情報表示手段に通知して表示させることが開示されている。さらに、印刷装置に送信する印刷コマンドの内容や印刷装置の設定情報が不適切な組み合わせであった場合に、印刷装置への印刷コマンドの転送を一時停止して印刷装置の設定エラーをステータス情報表示手段に通知することについても開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３０５１４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
通常、印刷制御装置は、アプリケーションからの印刷要求を受けると、印刷コマンドを生成し、印刷コマンドを印刷装置に送信する。一方、印刷制御装置による印刷コマンドの送信を必要としない印刷要求がある。その例としてフォームファイル作成用の印刷要求を挙げる。
フォームファイル作成用の印刷要求の印刷設定に問題があった場合、印刷設定のエラーを優先してユーザーに通知したい。一方で、フォームファイル作成用の印刷要求の処理は、印刷コマンドを生成せず、情報処理装置内部で完結する。そのため、フォームファイル作成用の印刷要求の処理に際して、印刷装置側のエラーを検出してもそのエラーは表示したくないという課題があった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、処理するジョブの種類に応じて、検知したエラーをより適切に表示する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明に係る情報処理装置は、ジョブを処理する情報処理装置であって、印刷装置の装置エラーを検出する装置エラー検出手段と、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであるか否かを判断する判断手段と、前記装置エラーが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記装置エラーの情報を表示しないよう制御する表示手段と、を有することを特徴とする。
【０００７】
そこで、本発明に係る情報処理装置は、ジョブを処理する情報処理装置であって、印刷装置の装置エラーを検出する装置エラー検出手段と、前記ジョブの設定エラーを検出する設定エラー検出手段と、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであるか否かを判断する判断手段と、前記装置エラーと前記設定エラーとが検出され、前記ジョブが前記印刷装置での印刷出力を行わせる印刷コマンドを出力しないジョブであると判断された場合、前記装置エラーの情報よりも前記設定エラーの情報を優先して表示するよう制御する表示手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、処理するジョブの種類に応じて、検知したエラーをより適切に表示することができる。
【図面の簡単な説明】
【０００９】
【図１】印刷装置と印刷装置に接続された情報処理装置によって構成された印刷システムの構成を示すブロック図である。
【図２】プリンタドライバの構成を示すブロック図である。
【図３】透明インク塗布モードに関する印字モードテーブルを示す図である。
【図４】コマンド生成モジュールの設定エラー判定処理を中心とする処理を示すフローチャートの図である。
【図５】コマンド生成モジュールの印刷設定整合性判定処理を示すフローチャートの図である。
【図６】コマンド生成モジュールの通常印刷処理を示すフローチャートの図である。
【図７】コマンド生成モジュールのフォームファイル作成処理を示すフローチャートの図である。
【図８】コマンド生成モジュールのフォーム合成印刷処理を示すフローチャートの図である。
【図９】コマンド送受信モジュールの処理を示すフローチャートの図である。
【図１０】コマンド送受信モジュールのエラー表示指示と、ステータス情報表示モジュールのステータス表示処理とを示すフローチャートの図である。
【図１１】フォームファイルのデータ構成を示す図である。
【図１２】ファイルに記述されるエラー情報を示す図である。
【図１３】ステータス情報表示モジュールが表示するエラー画面を示す図である。
【図１４】設定エラー通知用コマンドのデータ構成を示す図である。
【図１５】コマンド送受信モジュールのエラー表示指示と、ステータス情報表示モジュールのステータス表示処理とを示すフローチャートの図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
＜実施形態１＞
本実施形態の印刷装置（印刷装置２）と印刷装置に接続された情報処理装置（パソコン１）によって構成された印刷システムの構成について図１のブロック図を参照して説明する。
図１に印刷装置２と印刷装置２に接続されたパソコン１によって構成された印刷システムを本発明の一実施形態として示す。パソコン１は入力インタフェース１１とＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、外部記憶装置１５、出力インタフェース１６、表示部１７、キーボード１０、マウス１８、入出力インタフェース１９を有する。ＲＯＭ１３には初期化プログラムが入っており、外部記憶装置１５にはアプリケーションプログラム群、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、プリンタドライバやその他各種のデータが保存されている。ＲＡＭ１４は外部記憶装置１５にストアされる各種プログラムがワークメモリとして使用するものである。
なお、本実施形態では、ＣＰＵ１２が、ＲＯＭ１３などに格納されたプログラムの手順に従って処理を行うことによって、パソコン１における後述する機能及び後述するフローチャートに係る処理が実現される。
【００１２】
印刷装置２は入出力インタフェース２１とＲＡＭ２２、プリントエンジン２３、ＲＯＭ２４、ＣＰＵ２５を有する。入出力インタフェース２１はパソコン１の入出力インタフェース１９に接続されている。本実施形態おいて、接続インタフェースはＵＳＢ（登録商標）を想定して説明しているが、特に何であっても構わない。またこの入出力インタフェース２１に印刷装置２の機能を拡張する拡張オプションを接続することも可能である。
ＲＡＭ２２はＣＰＵ２５の主メモリとワークメモリとして用いられ、受信した印刷ジョブを一旦保存するための受信バッファとして用いられ、各種のデータを保存する。プリントエンジン２３はＲＡＭ２２に保存されたデータに基づき印刷を行う。
ＲＯＭ２４にはステータス管理プログラム２４ａ等、各種の制御プログラムや各制御プログラムが使用するデータが入っており、ＣＰＵ２５はこれらの制御プログラムに従って印刷装置２の各部を制御する。ステータス管理プログラム２４ａは図示していない印刷装置２内部にある各種のセンサの情報を元に印刷装置２の状態を監視し、ステータス情報を作成し、ＲＡＭ２２にストアするプログラムである。
ここでは、例としてパソコン１と印刷装置２の処理分担を上記のように示したが、特にこの分担形態限らず他の形態であっても構わない。
【００１３】
図２は本実施形態におけるプリンタドライバの構成を説明するためにプリンタドライバ２２０を中心に概念的に表したブロック図の一例である。アプリケーション２０１が作成した印刷データは、ＯＳの印刷サポート機能２１１を介してスプールデータ２１４としてスプーラ２１２のプリントキュー２１３に一時的に蓄えられる。
スプールデータ２１４は、名称などを付加した印刷ジョブとしてスプーラ２１２により管理される。印刷ジョブは、プリンタドライバ２２０によってプリンタ２３０（印刷装置２の一例）が解釈可能な印刷コマンドに変換された後に、プリンタ２３０に供給されて印刷されるよう構成されている。アプリケーション２０１は印刷指示を行う際にＯＳの印刷サポート機能２１１を介して、ユーザーインターフェースモジュール２２１から返却された印刷設定情報を印刷ジョブに付加する。印刷設定情報は、アプリケーション２０１からの印刷開始指示を行う前に予め設定された情報である。
【００１４】
プリンタドライバ２２０に渡された印刷ジョブは、先ずページ構成モジュール２２２によって処理される。ページ構成モジュール２２２は、印刷設定情報に従って印刷ジョブのページを並べ替えたり複数ページを１つのページにまとめたりといったページ構成処理を印刷ジョブに対して行う。
次に印刷ジョブは、プレビュー起動モジュール２２３に渡される。プレビュー起動モジュール２２３は、印刷設定情報内に印刷プレビュー情報を表示する指示がなされている場合、印刷プレビュー表示モジュール２２４を呼び出す。印刷プレビュー表示モジュール２２４は印刷プレビュー画面をパソコン１の表示部１７上に表示し、印刷結果をユーザーが事前に確認する手段を提供する。プレビュー起動モジュール２２３は、印刷設定情報に印刷プレビュー情報を表示する指示がなされていない場合は、印刷ジョブをコマンド生成モジュール２２５に渡す。
【００１５】
コマンド生成モジュール２２５は、印刷設定情報に従って印刷ジョブの印刷データをプリンタ２３０が解釈可能な印刷コマンドに変換する。印刷コマンドは、コマンド送受信モジュール２２６によって順次プリンタ２３０に送信される。さらに、コマンド送受信モジュール２２６は、プリンタ２３０のエラーが発生したという情報や、現在印刷中のページ情報などプリンタ２３０の状態を読み出し、ステータス情報表示モジュール２２７に渡す。ステータス情報表示モジュール２２７は、プリンタ２３０の状態を解析し、プリンタ２３０の情報をパソコン１の表示部１７上にステータス情報表示画面（不図示）を表示し、ユーザーが印刷ジョブの状態やプリンタ２３０の状態を確認する手段を提供する。
なお、本実施形態ではステータス情報表示モジュール２２７がステータス情報表示画面を表示してユーザーに情報を通知する例で説明を行うが、これに限定されるものではない。例えば、ステータス情報表示モジュール２２７はプリンタ２３０の状態解析等を行うのみとし、情報表示画面を用いてユーザーに情報を伝える処理はＯＳの印刷サポート機能を用いる構成としてもよい。
【００１６】
ここで、プリンタ２３０は、ＣＭＹＫといったカラーインク以外に、透明インクを用いる。透明インクは、画像の光沢感均一化、色域の拡大を目的として用いられ、特定領域への塗布を行わないことで、装飾効果を得ることも可能である。
プリンタドライバ２２０は、透明インクの塗布方法として、全面塗布モード、自動塗布モード、ユーザー設定モードの３つを持つ。全面塗布モードは、印刷媒体の印刷範囲全体に透明インクを塗布するモードである。自動塗布モードは、透明インクが不要な印刷媒体の場合は透明インクを塗布せず、透明インクが必要な印刷媒体の場合は、印刷データ中の白点領域以外に透明インクを塗布するモードである。すなわち、自動塗布モードはジョブ設定の印刷媒体の種類の設定値によって透明インクを塗布するか否かを切り替えるモードである。
ユーザー設定モードは、透明インクを一部塗布しないことにより見え方を変化させて印刷媒体への印刷結果にデザイン性を付与するモードであり、フォームファイル作成モードと、フォーム合成印刷モードという２つのモードで構成される。フォームファイル作成モードは、透明インクを塗布しない領域（透明インク削除領域）を作成し、フォームファイルとして保存するモードである。フォーム合成印刷モードは、選択されたフォームファイルに含まれる透明インク削除領域で指定の領域にのみ、透明インクを塗布せずに印刷するモードである。本実施例では、特定のインク（とくに、透明インク）を用いた印刷出力物の装飾性を向上させるための印刷処理を、その特定インクの印刷領域を特定するためのフォームを用いることで実現している。透明インク以外にも、銀のインクなど他のカラーインクなどで、同様の装飾を行うことも考えられる。
【００１７】
また、印刷設定の組み合わせにより決定される印字モードごとに使用可能な透明インク塗布モードが異なり、以下の３通りに分類される。印字モードの詳細は後述する。
・「自動塗布モード」/「全面塗布モード」/「ユーザー設定モード(フォームファイル作成モード/フォーム合成印刷モード)」が可能な印字モード
・「自動塗布モード」/「全面塗布モード」が可能な印字モード
・「自動塗布モード」のみが可能な印字モード
【００１８】
「自動塗布モード」のみが使用可能な印字モードは、透明インクを塗布しない印字モードである。普通紙やマットコートされた印刷媒体など透明インクの効果が薄い印刷媒体では、透明インクを用いない前提で色変換、印字制御の方法が設計されるため、透明インク塗布モードとしては「自動塗布モード」のみが使用可能である。この場合の「自動塗布モード」は「透明インクを塗布しない」ことを表すことになる。
一方、透明インクを使用することで光沢感均一化などの効果を得ることができる印刷媒体の種類においては、透明インクを塗布する「自動塗布モード」と「全面塗布モード」が使用可能となる。これらの用紙の種類において、「ユーザー設定モード」を使用可能であるか否かが印字モードによって異なっている。これは、速度を優先する印字モードなど透明インクを用いた装飾効果が出づらい印字モードにおいては「自動塗布モード」と「全面塗布モード」のみを使用可能としているためである。これにより、装飾効果が得づらい印字モードにおいてユーザー設定モードを使用して好適な印刷結果が得られないという問題が発生することを防止する。
【００１９】
図３の印字モードテーブル３０１は、印字モードごとに使用可能な透明インク塗布モードに関する情報を保持する印字モードテーブルの例である。例えば「光沢紙Ａ、カラー、フチ無し印刷ＯＮ、画質優先」という印字モード（７）では、自動塗布モード、全面塗布モード、ユーザー設定モードの全てが使用可能であることを表している。また、「光沢紙Ａ、カラー、フチ無し印刷ＯＮ、標準」という印字モード（８）では、自動塗布モード、全面塗布モードのみが使用可能であることを表している。
このように上位の設定項目である印刷媒体の種類から下位の設定項目である印刷品質までの設定値によって色変換、印字制御の方法が決定されるため、本実施形態ではそれらの設定値の組み合わせ一つ一つを印字モードと呼ぶこととする。
【００２０】
以下、図４、図５を参照し、コマンド生成モジュール２２５の処理について説明する。図４は、コマンド生成モジュール２２５による、透明インク塗布モードに関する設定エラー判定を中心とする処理を示すフローチャートの図である。印刷が指示されると、コマンド生成モジュール２２５は、印刷ジョブ中の印刷設定情報を参照し、設定項目間の不整合（使用できない組み合わせが設定されている）の有無を判定して一部項目の設定値を変更する印刷設定整合性判定処理を行う（Ｓ４０１）。
【００２１】
ここで、図５を参照して、コマンド生成モジュール２２５による、印刷設定整合性判定処理（Ｓ４０１）について詳細に説明する。コマンド生成モジュール２２５は、まず印刷設定情報から透明インク塗布モードの設定値を参照する（Ｓ５０１）。コマンド生成モジュール２２５は、透明インク塗布モードの設定値が自動塗布モードであれば、全ての印字モードにおいて自動塗布モードは使用可能であるため、不整合は存在しないものとして整合性判定処理を終了する。
コマンド生成モジュール２２５は、透明インク塗布モードが全面モードであれば、現在の印刷設定に対応する印字モードにおいて、全面塗布モードが使用可能であるかどうかを、印字モードテーブル３０１を参照して判定する（Ｓ５０２）。判定の結果使用可能であれば、コマンド生成モジュール２２５は、不整合は存在しないためそのまま処理を終了する。設定されている印字モードにおいて全面塗布モードが使用できないと判定された場合には、コマンド生成モジュール２２５は、透明インク塗布モードを自動塗布モードに変更し（Ｓ５０３）、処理を終了する。
【００２２】
透明インク塗布モードの設定値がユーザー設定モードであれば、コマンド生成モジュール２２５は、現在の印刷設定に対応する印字モードにおいて、ユーザー設定モードが使用可能であるかどうかを、印字モードテーブル３０１を参照して判定する（Ｓ５０４）。判定の結果使用可能であれば、コマンド生成モジュール２２５は、不整合は存在しないためそのまま処理を終了する。
設定されている印字モードにおいてユーザー設定モードが使用できないと判定された場合には、コマンド生成モジュール２２５は、ユーザー設定モードのフォームファイル作成モードであるかフォーム合成印刷モードであるかをさらに判定する（Ｓ５０５）。
フォーム合成印刷モードであれば、コマンド生成モジュール２２５は、透明インク塗布モードを自動塗布モードに変更し（Ｓ５０３）、処理を終了する。フォームファイル作成モードであれば、コマンド生成モジュール２２５は、印刷設定における元のモードがフォームファイル作成モードであったことをＲＡＭ１４内に保存する（Ｓ５０６）。その後、コマンド生成モジュール２２５は、透明インク塗布モードを自動塗布モードに変更し（Ｓ５０３）、処理を終了する。
【００２３】
引き続き、図４のフローチャートにおける判断Ｓ４０２以降の処理について説明する。コマンド生成モジュール２２５は、Ｓ４０１により必要に応じて変更された印刷設定を参照し、フォームファイル作成モードであるか判定する（Ｓ４０２）。判断Ｓ４０２でフォームファイル作成モードでないと判定すると、コマンド生成モジュール２２５は、Ｓ５０６でＲＡＭ１４に保存した情報を参照し、Ｓ４０１でフォームファイル作成モードから透明インク塗布モードを変更したか判定する（Ｓ４０３）。
透明インク塗布モードを変更したと判定した場合、コマンド生成モジュール２２５は、Ｓ４１１以降のエラー表示処理を実行する。Ｓ４１１以降では、該当するエラー情報をユーザーに報知し、印刷及びフォーム作成処理は実施しない。Ｓ４１１以降の処理（表示制御処理の一例）については後述する。
【００２４】
判断Ｓ４０３で、透明インク塗布モードをフォームファイル作成モードから変更したとコマンド生成モジュール２２５が判断した場合にエラーとするのは、ユーザーの予期しない印刷処理による無駄な印刷媒体の消費を避けるためである。フォームファイル作成モードではフォームファイルが生成されるのみで印刷は行われないのに対し、Ｓ４０１で他のモードに変更して続行すると、印刷が行われてしまう。フォームファイル作成を指定したユーザーは印刷媒体への出力処理が行われることは期待しておらず、予期しない印刷処理が発生すると印刷媒体が無駄に消費される結果となってしまい好ましくない。
【００２５】
判断Ｓ４０３で透明インク塗布モードをフォームファイル作成モードから変更していないと判定した場合、コマンド生成モジュール２２５は透明インク塗布モードがフォーム合成印刷モードであるか判定する（Ｓ４０４）。判断Ｓ４０４でフォーム合成印刷モードではないと判定した場合、フォームファイルを用いない通常の印刷処理を行う（Ｓ４０５）。Ｓ４０５の詳細については別フローチャートを用いて後述する。
判断Ｓ４０４でフォーム合成印刷モードであると判定した場合、コマンド生成モジュール２２５は印刷設定中で指定されたフォームファイルが存在するか判定する（Ｓ４０６）。なお、フォームファイルは、マウス１８、キーボード１０などの入力デバイスのユーザーによる操作（ユーザー操作）により指定される。指定されたフォームファイルが存在した場合、コマンド生成モジュール２２５はフォームファイルを用いたフォーム合成印刷処理を行う（Ｓ４０７）。Ｓ４０７の詳細については別フローチャートを用いて後述する。指定されたフォームファイルが存在しない場合、コマンド生成モジュール２２５はＳ４１１以降のエラー表示処理を実行する。
【００２６】
判断Ｓ４０２でフォームファイル作成モードであると判定した場合、コマンド生成モジュール２２５は規定の上限数以上のフォームファイルが存在するか調べ（Ｓ４０８）、存在した場合はＳ４１１以降のエラー表示処理を実行する。判断Ｓ４０８は、フォームファイルが大量に生成されることによる、外部記憶装置１５の逼迫を避けることを目的としている。
規定の上限数以上のフォームファイルが存在しなかった場合は、コマンド生成モジュール２２５は印刷設定情報中のフォーム名を調べ、正しいフォーム名が指定されているか判定する（Ｓ４０９）。判断Ｓ４０９は、意図しないフォームファイルの生成や上書きを避けることを目的としている。コマンド生成モジュール２２５は、フォーム名が空白ではなく、かつ同一の名称を持つ既存のフォームファイルが存在しない場合に、指定されたフォーム名は正常であると判断する。
フォーム名が正常である場合、コマンド生成モジュール２２５はフォームファイル作成処理を行う（Ｓ４１０）。Ｓ４１０については後述する。フォーム名が不正である場合、コマンド生成モジュール２２５はＳ４１１以降のエラー表示処理を実行する。
【００２７】
最後に、図４のフローチャートにおける４つの条件のいずれかを満たした場合に実行する、Ｓ４１１以降のエラー表示処理について説明する。まず、コマンド生成モジュール２２５は設定エラーが発生したことを通知するための設定エラー通知用コマンドを生成し、コマンドをコマンド送受信モジュール２２６に送信する（Ｓ４１１）。
コマンド生成モジュール２２５が送信したコマンドは、コマンド送受信モジュール２２６を介し、通常であればプリンタ２３０に到達する。但し、コマンド送受信モジュール２２６は、設定エラー通知用コマンドを受け取った場合、それをプリンタ２３０に送信はせず、設定エラーが発生したことを通知するための処理を行う。コマンド送受信モジュール２２６の詳細処理については後述する。
【００２８】
なお、図４のフローチャートに示される通り、コマンド生成モジュール２２５は、Ｓ４１１で設定エラー通知用コマンドを送信する前に、その他の印刷コマンドを送信することはない。つまり、設定エラーが発生した場合、印刷ジョブ全体の処理を通して、プリンタ２３０にはあらゆるコマンドは到達しない。これにより、設定エラー発生時に、プリンタ２３０が不必要に初期化動作を行うことを避けることができる。なお、印刷システムの状態によっては、コマンド生成モジュール２２５が送信した印刷コマンドが、コマンド送受信モジュール２２６を介さずにプリンタ２３０に到達する場合がある。その場合にプリンタ２３０が不正に動作しないコマンドとして、設定エラー通知用コマンドを構成する。
【００２９】
ここで、図１４を用いて、設定エラー通知用コマンド１４００のデータ構成を説明する。＜ｃｏｍｍａｎｄ＞要素１４０１によって、コマンドの開始を示す。＜ｃｏｎｔｒｏｌ ｍｏｄｅ＝"ｄｒｉｖｅｒ"＞要素１４０２によって、コマンドが制御する対象を示す。ｃｏｎｔｒｏｌタグのｍｏｄｅ属性にはｄｒｉｖｅｒという属性値がセットされている。つまり、このコマンドがドライバを制御するためのコマンドであることを示している。＜ｎｏｔｉｆｙ＞要素１４０３によって、具体的に通知内容が記されている。＜ｎｏｔｉｆｙ＞要素１４０３のデータには、ＥｒｒｏｒＣｏｄｅ１（１４０４）がセットされている。コマンド送受信モジュール２２６は、ＥｒｒｏｒＣｏｄｅ１（１４０４）を受信すると、設定エラーであることを認識する。
なお、要素１４０３のデータには、コマンド生成モジュール２２５によってエラーの内容に対応したＥｒｒｏｒＣｏｄｅがセットされ、コマンド送受信モジュール２２６においてエラーの種類を認知するために参照される。本実施形態においては、コマンド生成モジュール２２５は、Ｓ４０３、Ｓ４０６、Ｓ４０８、及びＳ４０９で示す判断のいずれのエラー条件を満たしたかによって、対応するＥｒｒｏｒＣｏｄｅをセットし、送信する。
【００３０】
Ｓ４１１で設定エラー通知用コマンド送信後、コマンド生成モジュール２２５は、通常印刷コマンド生成処理と送信処理を全てスキップする（Ｓ４１２）。印刷ジョブ中のページをコマンド生成モジュール２２５が能動的に取得するような印刷システムの場合、ページの取得からコマンドの生成までを全て実施しないことによって、このスキップ処理はなされる。
全ての印刷コマンド生成処理をスキップした後、コマンド生成モジュール２２５はスプーラ２１２（システム）に対しては処理の成功を表す情報を返却する（Ｓ４１３）。つまり、コマンド生成モジュール２２５は、内部的に印刷コマンド生成処理をスキップしたものの、設定エラー通知用コマンドの生成に成功したものとして処理を終了する。
ここで、設定エラー通知用コマンドがスプーラ２１２で未だ保持されていたとしても、スプーラ２１２が、成功を表す情報を受信することを契機に設定エラー通知用コマンドをコマンド送受信モジュール２２６に送信する。これにより、設定エラー通知用コマンドは、コマンド送受信モジュール２２６に確実に到達することが保証される。
【００３１】
コマンド生成モジュール２２５が送信したコマンドは、通常、スプーラ２１２を介してコマンド送受信モジュール２２６に到達する。通常、コマンド生成モジュール２２５で続行不可能なエラーが発生した場合、コマンド生成モジュール２２５は印刷コマンド生成処理を中断後、スプーラ２１２に対して処理の失敗を表す情報を返却する。これにより、プリンタドライバ２２０のその他のモジュールに対して処理の中止が通知され、印刷ジョブを速やかに中止することができる。
しかしこの場合、処理を中止するまでにコマンド生成モジュール２２５が送信した印刷コマンドが、コマンド送受信モジュール２２６に全て到達することは保証されない。Ｓ４１３で示したようにシステムに対して成功を表す情報を返却することで、コマンド生成モジュール２２５が送信した印刷コマンドが、コマンド送受信モジュール２２６に到達することを保証できる。
【００３２】
すなわち、コマンド生成モジュール２２５がＳ４１３でシステムに対して成功を表す情報を返却することで、設定エラー通知用コマンドがコマンド送受信モジュール２２６に到達することを保証できる。これにより、後述のコマンド送受信モジュール２２６の処理によって、スプーラ２１２の仕組みを利用して確実な印刷ジョブの停止を発生させることができる。Ｓ４１２で通常印刷コマンド生成、送信処理をスキップしているため、コマンド送受信モジュール２２６による印刷ジョブの停止終了後、印刷ジョブは速やかに終了する。
【００３３】
図６を用いて、コマンド生成モジュール２２５がＳ４０５で実施するフォームファイルを用いない印刷処理について詳細に説明する。
まず、コマンド生成モジュール２２５は、現在ページの印刷ジョブを元にラスタライズを行い、多値のラスターデータを作成する（Ｓ６０１）。ラスタライズ処理は、プリンタドライバ２２０が提供するプログラム、及びＯＳの提供する機能のいずれを利用して実施されてもよい。次にコマンド生成モジュール２２５は、色変換処理を行う（Ｓ６０２）。色変換処理には、プリンタ２３０に依存する色空間への変換処理、輝度信号で表現される入力系のＲＧＢ系データを濃度信号で表現するための出力系のＣＭＹＫ系データに色変換する処理などが含まれる。透明インク塗布方法に関する印刷設定に従って、「自動」、「全面」いずれかに適した方法で透明インクプレーンの生成も行われる。
【００３４】
次に、コマンド生成モジュール２２５は、ＣＭＹＫ系データを各色１ビットのデータに量子化する、二値化処理を行う（Ｓ６０３）。そして、コマンド生成モジュール２２５は、プリンタ２３０が解釈できる印刷コマンドへの変換、送信を行う（Ｓ６０４）。送信した印刷コマンドは、コマンド送受信モジュール２２６を介してプリンタ２３０に到達し、プリンタ２３０は受信した印刷コマンドに対応する画像を印刷媒体上に形成する。最後に、コマンド生成モジュール２２５は、Ｓ６０５で全ページが終了したか判定し、残りページがある場合は次のページに進める（Ｓ６０６）。残りページがなくなったらコマンド生成モジュール２２５は処理を終了する。
【００３５】
図７を用いて、コマンド生成モジュール２２５がＳ４１０で行うフォームファイル作成処理について詳細に説明する。フォームファイルの構造については後述する。まず、コマンド生成モジュール２２５は、記憶部の一例である外部記憶装置１５中の規定の場所を参照し、不完全な形で存在するフォームファイルがあった場合は削除する（Ｓ７０１）。この処理は、フォームファイル作成処理途中で不正終了した場合などに残った不完全なフォームファイルを削除する事を目的としている。次に、コマンド生成モジュール２２５は、外部記憶装置１５中のフォームファイルを作成するための規定の場所に空のフォームファイルを作成し（Ｓ７０２）、作成したフォームファイルに対し、ジョブヘッダを書き込む（Ｓ７０３）。
【００３６】
ここで、図１１（Ａ）を参照してジョブヘッダの構造を詳細に説明する。ジョブヘッダ１１０１は、バージョン１１０２、フォーム名１１０３、総ページ数１１０４で構成される。バージョン１１０２は、フォームファイルのフォーマットに関するバージョン情報を表す。フォーム名１１０３は、フォームファイルの名称を表し、Ｓ４０９で正否判定が為されたフォーム名が格納される。総ページ数１１０４は、フォームファイル中に存在する透明インク削除領域情報のページ数を表し、後述するＳ７０９で格納される。
ジョブヘッダを書き込んだ後、コマンド生成モジュール２２５は、フォームファイルに同一の透明インク削除領域を持つページが存在するか調べる（Ｓ７０４）。コマンド生成モジュール２２５は、部数印刷の２部目以降を処理していると認識した場合に、既に同一の透明インク削除領域が存在すると判断することがある。存在する場合は、コマンド生成モジュール２２５はＳ７０５で既存のページを参照する情報を含んだページヘッダを書き込み、現在のページに対する処理を終了する。この処理により、フォームファイル作成処理を高速に完了すると共に、フォームファイルのサイズを小さくすることができる。同一の透明インク削除領域が存在しない場合、コマンド生成モジュール２２５はＳ７０６でページヘッダを書き込む。
【００３７】
ここで、図１１（Ｂ）を参照してページヘッダの構造を詳細に説明する。ページヘッダ１１０５は、ページＩＤ１１０６、印刷設定１１０７、ページサイズ１１０８、幅１１０９、高さ１１１０、ページデータ位置１１１１により構成される。ページＩＤ１１０６は、そのページを一意に識別するための値である。印刷設定１１０７は、フォームファイル作成モードでの印刷実行時の各種印刷設定である。この印刷設定１１０７には、印刷媒体のサイズや、印刷の向きに関する情報などが含まれ、印刷設定１１０７は、フォームファイルを一覧表示する際に、ユーザーインターフェースモジュール２２１によって参照される。
ページサイズ１１０８は、ページヘッダが参照する透明インク削除領域のサイズをバイト単位で表す。幅１１０９、高さ１１１０は、ページヘッダが参照する透明インク削除領域の幅と高さをピクセル単位で表す。ページデータ位置１１１１は、ページヘッダが参照するインク削除領域の位置を表し、フォームファイルの先頭からのオフセット位置が格納される。
【００３８】
Ｓ７０６でページヘッダを書き込んだ後、コマンド生成モジュール２２５は現在ページの印刷ジョブを元にラスタライズを行い、多値のラスターデータを作成する（Ｓ７０７）。Ｓ７０８で、コマンド生成モジュール２２５は多値のラスターデータを二値化し、二値のラスターデータを作成する。
ここでは、多値のラスターデータにおいて、純白の領域を'１'、純白以外の領域を'０'として二値化する。このようにして作成された二値のラスターデータを、コマンド生成モジュール２２５はフォームファイルに書き込む（Ｓ７０９）。この二値のラスターデータが、現在ページにおける透明インク削除領域情報を表し、フォーム合成印刷時に、'０'の領域には透明インクが塗布されない。このように、純白以外の領域は、ユーザーがフォーム領域として指定した透明インク削除領域であるとみなし、純白以外の領域全てを'０'として保存する。
【００３９】
コマンド生成モジュール２２５は、Ｓ７１０で残りページが存在するか調べ、存在した場合は次のページを参照し（Ｓ７１１）、Ｓ７０４に戻る。残りページが無くなった場合、コマンド生成モジュール２２５はジョブヘッダに格納するページ数を最終的な情報に更新する（Ｓ７１２）。
Ｓ７１２と同時に、コマンド生成モジュール２２５はフォームファイル作成が正常に完了したことを示す情報を付加する。この情報はジョブヘッダに含んでも良いし、フォームファイルの名称を特定のものとすることで正常に完了したことを表現しても良い。或いは、正常に作成されたフォームファイルに関する情報を一覧で格納する管理リストを別途作成し、そこに追記することで表現しても良い。Ｓ７１２で付加されるフォームファイル作成が正常に完了したことを示す情報を持たないフォームファイルは、次回のフォームファイル作成時、Ｓ７０１で不完全なフォームファイルとして削除される。最後に、コマンド生成モジュール２２５は、Ｓ７１３でフォームファイルをクローズし、フォームファイル作成処理は終了する。
【００４０】
以上のように、コマンド生成モジュール２２５は、フォームファイル作成モードの印刷ジョブを受け取ると、プリンタ２３０に対し印刷コマンドを供給することなく、透明インク削除領域情報を含むフォームを、外部記憶装置１５に外部ファイルとして作成する。このようにして生成されるフォームファイルの一例を、図１１（Ｃ）を参照して詳細に説明する。
フォームファイル１１１２の先頭には、Ｓ７０３で付加されるジョブヘッダ１１０１がある。次に、１番目のページヘッダ１１１３と、１番目の透明インク削除領域情報１１１４がある。１番目のページヘッダ１１１３の要素の１つであるページデータ位置１１１１には、１番目の透明インク削除領域情報１１１４の先頭位置が格納される。次に２番目のページヘッダ１１１５がある。
【００４１】
ここで、コマンド生成モジュール２２５は、図７のＳ７０４で、２番目の透明インク削除領域情報は、１番目と同じであると判断したとする。このような場合、２番目のページヘッダ１１１５の要素の１つであるページデータ位置には、１番目の透明インク削除領域情報１１１４の先頭値が格納される。このような既存ページを参照する形でのページヘッダは、図７のＳ７０５により作成される。以後は、ページヘッダと、必要に応じて透明インク削除領域情報が繰り返し格納される。
【００４２】
図８を参照して、コマンド生成モジュール２２５がＳ４０７で行うフォーム合成印刷処理について詳細に説明する。まず、コマンド生成モジュール２２５は、フォームファイルを開き（Ｓ８０１）、フォームファイルの先頭に格納されているジョブヘッダを読み込む（Ｓ８０２）。次に、コマンド生成モジュール２２５は、現在ページのラスタライズ（Ｓ８０３）、色変換処理（Ｓ８０４）を行う。これらの処理（Ｓ８０３、Ｓ８０４）は、図６のＳ６０１からＳ６０２の処理と同等である。なお、Ｓ８０４では、コマンド生成モジュール２２５は、透明印刷の塗布方法「全面」と同等の方法で、透明インクプレーンを作成する。
【００４３】
次に、コマンド生成モジュール２２５は、Ｓ８０４の透明インクプレーン情報から、現在ページの透明インク削除領域に従って、透明インクを削除する（Ｓ８０５）。その後、コマンド生成モジュール２２５は、二値化処理（Ｓ８０６）、コマンド付加と送信処理（Ｓ８０７）を行う。これらの処理については、図６のＳ６０３からＳ６０４の処理と同等である。最後に、コマンド生成モジュール２２５は、Ｓ８０８で全ページが終了したか判定し、残りページがある場合は次のページに進める（Ｓ８０９）。残りページがなくなったら、Ｓ８０１でオープンしたフォームファイルをクローズし（Ｓ８１０）、コマンド生成モジュール２２５は処理を終了する。
以上、説明したようにコマンド生成モジュール２２５によって生成される、フォームファイルを作成するための印刷ジョブを印刷装置２に出力しない印刷として例に挙げた。しかし、印刷装置２に出力しない印刷は、これに限られるものではない。
【００４４】
図９は、コマンド送受信モジュール２２６の処理を示すフローチャートの図である。コマンド送受信モジュール２２６は、スプーラ２１２から呼び出されることで処理を開始する（Ｓ９００）。
コマンド送受信モジュール２２６は、印刷ジョブのキャンセル指示がスプーラ２１２からあるかを確認する（Ｓ９０１）。印刷ジョブのキャンセル指示がスプーラ２１２からあった場合、コマンド送受信モジュール２２６は処理を終了する（Ｓ９０２）。印刷ジョブのキャンセル指示がない場合、コマンド送受信モジュール２２６はコマンドを受信したかを確認する（Ｓ９０３）。ここで、コマンドを受信していない場合は、コマンド送受信モジュール２２６は、Ｓ９０１の処理に戻ってコマンド受信を待つ。判断Ｓ９０３においてコマンドを受信したと判断した場合、コマンド送受信モジュール２２６は、プリンタ２３０のステータスを取得する（Ｓ９０４）。続いて、コマンド送受信モジュール２２６は、受信したコマンドをパースし、コマンドを解釈する（Ｓ９０５）。
【００４５】
次に、コマンド送受信モジュール２２６は、コマンドが設定エラー通知用コマンドであるかを判断する（Ｓ９０６）。すなわち、コマンド送受信モジュール２２６は、設定エラーを検出する設定エラー検出手段の一例である。コマンドが設定エラー通知用コマンドではない場合、コマンド送受信モジュール２２６は、Ｓ９０４で取得したプリンタ２３０のステータスから、プリンタ２３０はエラー状態であるかを判断する（Ｓ９０７）。すなわち、コマンド送受信モジュール２２６は、装置エラーを検出する装置エラー検出手段の一例である。プリンタ２３０はエラー状態ではない場合、コマンド送受信モジュール２２６は、コマンドをプリンタ２３０に送信する（Ｓ９０８）。
【００４６】
続いて、コマンド送受信モジュール２２６は、プリンタ２３０へのコマンド送信が成功したかを判断する（Ｓ９０９）。コマンド送信が成功した場合は、コマンド送受信モジュール２２６は、スプーラ２１２にコマンド送信成功を通知する（Ｓ９１０）と同時に、プリンタ２３０に送信したコマンドのサイズをスプーラ２１２に通知する（Ｓ９１１）。
続いて、コマンド送受信モジュール２２６は、全てのコマンドを受信し終えたかを判断する（Ｓ９１２）。全てのコマンドを受信していないと判断した場合、コマンド送受信モジュール２２６の処理は、Ｓ９０１に戻り、全てのコマンドを受信するまで処理を続ける。判断Ｓ９１２において全てのコマンドを受信し終えたと判断した場合、コマンド送受信モジュール２２６は、処理を終了する（Ｓ９０２）。
【００４７】
ここで、判断Ｓ９０９において、コマンド送受信モジュール２２６は、プリンタ２３０へのコマンド送信が失敗したと判断すると、スプーラ２１２にコマンド送信失敗を通知（Ｓ９１３）し、Ｓ９０１に戻る。また、コマンド送受信モジュール２２６は、判断Ｓ９０７においてプリンタ２３０がエラー状態であると判断すると、ステータス情報表示モジュール２２７にエラー表示を指示する（Ｓ９１４）。ステータス情報表示モジュール２２７の処理については後述する。
ここで、判断Ｓ９０６において、コマンドが設定エラー通知用コマンドであることをコマンド送受信モジュール２２６が認識する処理について、図１４を用いて詳細に説明する。
図１４は、設定エラー通知用コマンドのデータ構成を記した図である。＜ｃｏｍｍａｎｄ＞要素（１４０１）は、コマンドの開始を示す。＜ｃｏｎｔｒｏｌ ｍｏｄｅ＝"ｄｒｉｖｅｒ"＞要素（１４０２）は、コマンドが制御する対象を示す。要素１４０２のｃｏｎｔｒｏｌタグのｍｏｄｅ属性にはｄｒｉｖｅｒという属性値がセットされている。つまり、このコマンドがドライバを制御するためのコマンドであることを示している。＜ｎｏｔｉｆｙ＞要素（１４０３）には、具体的に通知内容が記されている。＜ｎｏｔｉｆｙ＞要素（１４０３）のデータには、ＥｒｒｏｒＣｏｄｅ１（１４０４）が設定セットされている。コマンド送受信モジュール２２６は、ＥｒｒｏｒＣｏｄｅ（１４０４）を確認すると、コマンドは設定エラーを示していることを認識する。
【００４８】
コマンド送受信モジュール２２６は、判断Ｓ９０６においてコマンドは設定エラー通知用コマンドであると判断すると、ステータス情報表示モジュール２２７にエラー表示を指示する（Ｓ９１４）。ステータス情報表示モジュール２２７の処理については後述する。コマンド送受信モジュール２２６は、スプーラ２１２に送信は成功した旨を通知する（Ｓ９１５）。続いて、コマンド送受信モジュール２２６は、プリンタ２３０に送信したコマンドのサイズは"０ｂｙｔｅ"であるという旨を、スプーラ２１２に通知する（Ｓ９１６）。
Ｓ９１５とＳ９１６との処理をコマンド送受信モジュール２２６が行うことにより、スプーラ２１２が印刷ジョブの処理が失敗したことを認識することなく、プリンタドライバ２２０はエラー表示を行うことを可能としている。また、Ｓ９１５とＳ９１６との処理をコマンド送受信モジュール２２６が行うことにより、プリンタドライバ２２０はエラー表示上の操作部をユーザーが操作するまで印刷ジョブの処理を保留することを可能としている。
【００４９】
図１０は、コマンド送受信モジュール２２６のエラー表示指示と、ステータス情報表示モジュール２２７のステータス表示処理とを示すフローチャートの図である。図１０を用いて、コマンド送受信モジュール２２６がステータス情報表示モジュール２２７に通知するエラーを選別する処理と、ステータス情報表示モジュール２２７のエラー表示処理について詳細に説明する。
コマンド送受信モジュール２２６は、エラー表示指示処理を開始する（Ｓ１０００）と、何らかのエラーが発生しているかを判断する（Ｓ１００１）。何らかのエラーとは、判断Ｓ９０７で判断したプリンタ２３０のエラーや、判断Ｓ９０６で判断した印刷ジョブの設定エラーを指す。判断Ｓ１００１において何もエラーが発生していないと判断した場合、コマンド送受信モジュール２２６はエラー表示指示処理を終了する（Ｓ１００２）。
【００５０】
判断Ｓ１００１において、プリンタ２３０に何らかのエラーが発生していると判断した場合、コマンド送受信モジュール２２６は印刷ジョブのタイプを確認する（Ｓ１００３）。印刷ジョブのタイプは、コマンド送受信モジュール２２６が、印刷データの設定情報から判断する構成であってもよいし、上流のコマンド生成モジュール２２５やページ構成モジュール２２２によって通知を受けて判断する構成であってもよい。判断Ｓ１００４においてプリンタ２３０に出力される印刷ジョブであると判断した場合、コマンド送受信モジュール２２６はプリンタ２３０のエラーと印刷ジョブの設定エラーとをファイル１０４０に書き込む（Ｓ１００５）。
【００５１】
図１２（ａ）は、プリンタ２３０のエラーとしてカバーオープンエラー（１２０１）が、印刷ジョブの設定エラーとして設定エラーＢ（１２０２）がファイル１２００（１０４０）に書き込まれた様子を示している。設定エラーＢとは、コマンド送受信モジュール２２６が受信したコマンドとプリンタ２３０の仕様から判断されるエラーである。ここでは、コマンド内に示される印刷媒体のサイズはプリンタ２３０で使用する給紙口（不図示）で使用可能な印刷媒体のサイズではない場合のエラーを例に挙げる。プリンタ２３０に出力する印刷ジョブである場合は、プリンタ２３０のエラーと印刷ジョブの設定エラーとのどちらを優先してユーザーに通知してもよい。
【００５２】
エラー情報をファイル１０４０に記録（Ｓ１００５）した後、コマンド送受信モジュール２２６はステータス情報表示モジュール２２７を起動（Ｓ１００６）し、処理を終了する（Ｓ１００２）。判断Ｓ１００４において、プリンタ２３０に出力しない印刷ジョブであると判断した場合、コマンド送受信モジュール２２６はプリンタ２３０のエラー（プリンタエラー）をマスクする（Ｓ１００７）。
ここで、本実施形態においてはモジュール同士のプロセス間通信の方法として、ファイル共有を例に挙げて説明する。コマンド送受信モジュール２２６は、エラー情報をファイル１０４０に書き込む（Ｓ１００５）。このファイル１０４０をステータス情報表示モジュール２２７が読み込むことによって異なるプロセス間での通信処理を実現する。ステータス情報表示モジュール２２７の処理については後述する。
【００５３】
判断Ｓ１００４において、プリンタ２３０に出力しない印刷ジョブであると判断した場合、コマンド送受信モジュール２２６はプリンタ２３０のエラーをマスクするＳ１００７を行う。Ｓ１００７においてマスク処理を実行した後、残ったエラー情報をファイル１０４０に記録し（Ｓ１００５）、コマンド送受信モジュール２２６はステータス情報表示モジュール２２７を起動（Ｓ１００６）する。Ｓ１００６において、ステータス情報表示モジュール２２７を起動した後、コマンド送受信モジュール２２６は処理を終了する（Ｓ１００２）。
【００５４】
ここで、Ｓ１００７について、図１２（ｂ）〜（ｄ）を参照して詳細に説明する。図１２（ｂ）は、コマンド送受信モジュール２２６によってファイル１２１０（１０４０）に設定エラーＡ（１２１１）のみが記録された様子を示している。例えば、設定エラーＡとは、コマンド生成モジュール２２５がフォームファイル作成時に判断Ｓ４０９にてフォーム名（フォームファイル名）が不正であった場合のエラーを示す。印刷ジョブの設定エラー（設定エラーＡ）のみが発生していた場合、コマンド送受信モジュール２２６はプリンタ２３０のエラーが存在しないため、ファイル１０４０にエラー情報として設定エラーＡ（１２１１）を書き込む。
図１２（ｃ）は、カバーオープンエラー（１２２１）がコマンド送受信モジュール２２６によってマスク処理された様子を示している。ファイル１２２０には、プリンタ２３０のエラー（カバーオープンエラー（１２２１））が発生している状態が記されている。カバーオープンエラー（１２２１）は、プリンタ２３０のエラーであるため、コマンド送受信モジュール２２６はカバーオープンエラー（１２２１）をマスクする。ファイル１２２５は、コマンド送受信モジュール２２６によってエラーのマスク処理が行われた結果、エラー情報が空（１２２６）になった様子を示している。
【００５５】
図１２（ｄ）は、カバーオープンエラー（１２３１）がコマンド送受信モジュール２２６によってマスク処理された様子を示している。ファイル１２３０には、プリンタ２３０のエラー（カバーオープンエラー（１２３１））と印刷ジョブの設定エラー（設定エラーＡ（１２３２））とが発生している状態が記されている。カバーオープンエラー（１２３１）は、プリンタ２３０のエラーであるため、コマンド送受信モジュール２２６はカバーオープンエラー（１２３１）をマスクする。ファイル１２３５は、コマンド送受信モジュール２２６によってエラーのマスク処理が行われた結果、設定エラーＡ（１２３６）のみが記録されている様子を示している。
このように、Ｓ１００５にてエラー情報をファイル１０４０に記録した後、コマンド送受信モジュール２２６はステータス情報表示モジュール２２７を起動（Ｓ１００６）し、処理を終了する（Ｓ１００２）。
【００５６】
続いて、コマンド送受信モジュール２２６から起動（Ｓ１００６）されたステータス情報表示モジュール２２７の処理を説明する。ステータス情報表示モジュール２２７は、処理を開始する（Ｓ１０２０）と、エラー情報が記録されたファイル１０４０を確認する（Ｓ１０２１）。
ここで、図１２（ｃ）のエラー情報（１２２５）がファイル１０４０に記録されていた場合、ステータス情報表示モジュール２２７はエラー情報が存在しないと判断（Ｓ１０２２）し、処理を終了する（Ｓ１０２３）。判断Ｓ１０２２にて、エラー情報が存在すると判断した場合、ステータス情報表示モジュール２２７はエラーを表示する（Ｓ１０２４）。図１２（ｂ）のエラー情報（１２１０）や、図１２（ｄ）のエラー情報（１２３５）がファイル１０４０に記録されていた場合、ステータス情報表示モジュール２２７は図１３（ｂ）に示すようなエラー画面（１３１０）を表示する。
ここで、図１２（ａ）のエラー情報（１２００）のように複数のエラーが記載されていた場合は、ステータス情報表示モジュール２２７は先頭のエラーを優先して表示する仕様としてもよい。その場合、ステータス情報表示モジュール２２７は、図１３（ａ）に示すようなエラー画面（１３００）を表示する。
【００５７】
ステータス情報表示モジュール２２７は、エラーを表示（Ｓ１０２４）した後、エラーが解除されたかどうかを確認する（Ｓ１０２５）。例えば、図１３（ａ）のエラー画面（１３００）を確認し、ユーザーがプリンタ２３０のカバーを閉じたかどうかを確認する。例えば、ユーザーがプリンタ２３０のカバーを閉じたという情報は、コマンド送受信モジュール２２６を介してプリンタ２３０からステータス情報表示モジュール２２７へ通知される。判断Ｓ１０２５にて、エラーが解除されたと判断した場合、ステータス情報表示モジュール２２７は、処理を終了する（Ｓ１０２３）。
【００５８】
判断Ｓ１０２５にて、エラーが解除されていないと判断した場合、ステータス情報表示モジュール２２７は、ユーザーからのジョブキャンセル指示があったかどうかを確認する（Ｓ１０２６）。ジョブキャンセル指示は、図１３（ａ）のエラー画面（１３００）で示す「Ｃａｎｃｅｌ  Ｐｒｉｎｔｉｎｇ」ボタン（１３０１）や、図１３（ｂ）のエラー画面（１３１０）で示す「Ｃａｎｃｅｌ」ボタン（１３１１）をユーザーが押下することにより、ステータス情報表示モジュール２２７に伝えられる。
Ｓ１０２６にて、ユーザーからのジョブキャンセル指示がない場合、ステータス情報表示モジュール２２７は、Ｓ１０２１に戻る。Ｓ１０２６にて、ユーザーからのジョブキャンセル指示があった場合、ステータス情報表示モジュール２２７は、ジョブキャンセル処理（Ｓ１０２７）を実施した後、処理を終了する（Ｓ１０２３）。
【００５９】
ステータス情報表示モジュール２２７は、ＯＳの提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を利用してスプーラ２１２に対してジョブキャンセルを依頼してもよい。若しくは、ステータス情報表示モジュール２２７は、プロセス間通信によりコマンド送受信モジュール２２６にキャンセル通知を行う。そして、コマンド送受信モジュール２２６は、判断Ｓ９０３で受信したコマンドサイズをプリンタ２３０へ送信したと、スプーラ２１２に通知することで印刷ジョブを終了してもよい。
【００６０】
以上のように、コマンド送受信モジュール２２６が印刷ジョブのタイプによって表示しないエラーをマスクしてステータス情報表示モジュール２２７に通知する。これにより、ステータス情報表示モジュール２２７は適切なエラー情報をユーザーに通知することが可能となる。
また、本実施形態においては、プリンタドライバ２２０は、プリンタ２３０に送信しない印刷ジョブである場合は、プリンタ２３０には何もデータを転送しない構成について説明した。しかし、プリンタドライバ２２０は、プリンタ２３０との通信確立や、通信確認のためのデータを転送することはある。このような場合であっても、プリンタドライバ２２０はプリンタ２３０に印刷媒体への印刷指示を行うようなコマンドを送信しない構成であれば、本発明の目的は達成できる。
【００６１】
＜実施形態２＞
検出している全てのエラーをユーザーに通知するプリンタドライバ２２０においては、ステータス情報表示モジュール２２７でエラーの通知すべき優先順に従ってエラーを列挙する仕様が想定される。この場合、プリンタ２３０に送信しない印刷ジョブの処理中であっても、プリンタドライバ２２０はプリンタ２３０のエラーを無視する処理は適用しがたい。実施形態２では、この課題を解決するための方法を図１２、図１３、図１５を用いて詳細に説明する。
図１５は、コマンド送受信モジュール２２６のエラー表示指示と、ステータス情報表示モジュール２２７のステータス表示処理とを示すフローチャートの図である。図１５を用いて、コマンド送受信モジュール２２６がステータス情報表示モジュール２２７にエラーに通知優先順を割り当てる処理と、ステータス情報表示モジュール２２７の通知優先順に従ったエラー表示処理について詳細に説明する。
【００６２】
コマンド送受信モジュール２２６は、エラー表示指示処理を開始する（Ｓ１５００）と、何らかのエラーが発生しているかを判断する（Ｓ１５０１）。何らかのエラーとは、判断Ｓ９０７で判断したプリンタ２３０のエラーや、判断Ｓ９０６で判断した印刷ジョブの設定エラーを指す。判断Ｓ１５０１において何もエラーが発生していないと判断した場合、コマンド送受信モジュール２２６はエラー表示指示処理を終了する（Ｓ１５０２）。
判断Ｓ１５０１において、プリンタ２３０に何らかのエラーが発生していると判断した場合、コマンド送受信モジュール２２６は印刷ジョブのタイプを確認する（Ｓ１５０３）。印刷ジョブのタイプは、コマンド送受信モジュール２２６が、印刷データの設定情報から判断する構成であってもよいし、上流のコマンド生成モジュール２２５やページ構成モジュール２２２によって通知を受けて判断する構成であってもよい。
Ｓ１５０３で確認した印刷ジョブのタイプに応じて、コマンド送受信モジュール２２６はエラーに通知優先順を割り当てる（Ｓ１５０４）。Ｓ１５０４によりエラーに通知優先順を割り当てた後、コマンド送受信モジュール２２６はエラー情報をファイル１５４０に記録（Ｓ１５０５）する。その後、コマンド送受信モジュール２２６は、ステータス情報表示モジュール２２７を起動（Ｓ１５０６）し、処理を終了する（Ｓ１５０２）。
【００６３】
ここで、図１２（ｆ）、図１２（ｇ）は、エラーに通知優先順が割り当てられ、ファイル１５４０（１２４０、１２５０）に書き込まれた様子を示している。コマンド送受信モジュール２２６は発生している全てのエラーに通知優先順（１２４１、１２５１）を割り当てる。
Ｓ１５０３で確認した印刷ジョブのタイプがプリンタ２３０に出力しない印刷ジョブであった場合、印刷ジョブの設定エラーを優先的にユーザーに通知したい。そこで、コマンド送受信モジュール２２６は印刷ジョブの設定エラー（設定エラーＡ）に通知優先順「１」を割り当てた様子が図１２（ｆ）の１２４２に示されている。続いて、コマンド送受信モジュール２２６は、プリンタ２３０のエラー（カバーオープンエラー）に対し、印刷ジョブの設定エラー（設定エラーＡ）よりも低い通知優先順「２」を割り当てた様子が図１２（ｆ）の１２４３に示されている。
【００６４】
一方、Ｓ１５０３で確認した印刷ジョブのタイプがプリンタ２３０に出力する印刷ジョブであった場合、プリンタ２３０のエラーを優先的にユーザーに通知すべきときは、コマンド送受信モジュール２２６はプリンタ２３０のエラー（カバーオープンエラー）に通知優先順「１」を割り当てた様子が図１２（ｇ）の１２５２に示されている。
続いて、コマンド送受信モジュール２２６は、印刷ジョブの設定エラー（設定エラーＣ）に対し、プリンタ２３０のエラー（カバーオープンエラー）よりも低い通知優先順「２」を割り当てた様子が図１２（ｇ）の１２５３に示されている。設定エラーＣとは、コマンド送受信モジュール２２６が受信したコマンドとプリンタ２３０の状態から判断されるエラーである。ここで、コマンド内に示される印刷媒体の種類はプリンタ２３０で使用する給紙口（不図示）で使用可能であるが、より高い印刷品質が得られる給紙口が別にある場合の警告を示すためのエラーを例に挙げる。
【００６５】
続いて、コマンド送受信モジュール２２６から起動（Ｓ１５０６）されたステータス情報表示モジュール２２７の処理を説明する。ステータス情報表示モジュール２２７は、処理を開始する（Ｓ１５２０）と、エラー情報が記録されたファイル１５４０を確認する（Ｓ１５２１）。ここで、エラー情報がファイル１５４０に記録されていなかった場合、ステータス情報表示モジュール２２７はエラー情報が存在しないと判断（Ｓ１５２２）し、処理を終了する（Ｓ１５２３）。判断Ｓ１５２２にて、エラー情報が存在すると判断した場合、ステータス情報表示モジュール２２７はエラーを表示する（Ｓ１５２４）。
【００６６】
ここで、図１２（ｆ）のエラー情報（１２４０）がファイル１５４０に記録されていた場合、ステータス情報表示モジュール２２７は図１３（ｃ）に示すようなエラー画面（１３２０）を表示する。エラー画面（１３２０）にはエラー一覧を表示する領域があり、１３２１は最も通知優先順の高い印刷ジョブの設定エラーが選択されている様子を示している。エラー画面（１３２０）には、選択されたエラーに関する詳細な説明を表示する。ユーザーは、「Ｃａｎｃｅｌ」ボタン（１３２２）を押下することによって、印刷を中止する（Ｓ１５２７）ことも可能である。
一方、図１２（ｇ）のエラー情報（１２５０）がファイル１５４０に記録されていた場合、ステータス情報表示モジュール２２７は図１３（ｄ）に示すようなエラー画面（１３３０）を表示する。
エラー画面（１３３０）は、最も通知優先順の高いエラーとして、プリンタ２３０のエラー（カバーオープンエラー）が発生している様子を示している。また、エラー画面（１３３０）では、２番目に通知優先順の高い印刷ジョブの設定エラーが選択（１３３１）されている様子を示している。エラー画面（１３３０）には、選択されたエラーに関する詳細な説明を表示する。ユーザーは、「Ｃａｎｃｅｌ」ボタン（１３３２）を押下することによって、印刷を中止する（Ｓ１５２７）ことも可能である。また、ユーザーは、「Ｉｇｎｏｒｅ」ボタン（１３３３）を押下することによって、このエラーを無視して印刷を続行することも可能である。
【００６７】
ステータス情報表示モジュール２２７は、エラーを表示（Ｓ１５２４）した後、全てのエラーが解除されたかどうかを確認する（Ｓ１５２５）。判断Ｓ１５２５にて、全てのエラーが解除されたと判断した場合、ステータス情報表示モジュール２２７は、処理を終了する（Ｓ１５２３）。判断Ｓ１５２５にて、エラーが解除されていないと判断した場合、ステータス情報表示モジュール２２７は、ユーザーからのジョブキャンセル指示があったかどうかを確認する（Ｓ１５２６）。ジョブキャンセル指示は、図１３（ｃ）のエラー画面（１３２０）や、図１３（ｄ）のエラー画面（１３３０）で示す「Ｃａｎｃｅｌ」ボタン（１３２２、１３３２）をユーザーが押下することにより、ステータス情報表示モジュール２２７に伝えられる。
Ｓ１５２６にて、ユーザーからのジョブキャンセル指示がない場合、ステータス情報表示モジュール２２７は、Ｓ１５２１に戻る。Ｓ１５２６にて、ユーザーからのジョブキャンセル指示があった場合、ステータス情報表示モジュール２２７は、ジョブキャンセル処理（Ｓ１５２７）を実施した後、処理を終了する（Ｓ１５２３）。
【００６８】
以上のように、コマンド送受信モジュール２２６が印刷ジョブのタイプによって通知するエラーの優先順を制御してステータス情報表示モジュール２２７に通知することによって、ステータス情報表示モジュール２２７は適切なエラー情報をユーザーに通知することが可能となる。
【００６９】
＜実施形態３＞
これまでの実施形態では、印刷ジョブが存在するときのみ情報をユーザーに通知するプリンタドライバ２２０の例を説明した。しかし、常にプリンタ２３０の情報を監視し、ユーザーに通知するプリンタドライバ２２０であっても、本発明は適用可能である。
【００７０】
＜実施形態４＞
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００７１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７２】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
0005683173.tif 000002
【図２】
0005683173.tif 000003
【図３】
0005683173.tif 000004
【図４】
0005683173.tif 000005
【図５】
0005683173.tif 000006
【図６】
0005683173.tif 000007
【図７】
0005683173.tif 000008
【図８】
0005683173.tif 000009
【図９】
0005683173.tif 000010
【図１０】
0005683173.tif 000011
【図１１】
0005683173.tif 000012
【図１２】
0005683173.tif 000013
【図１３】
0005683173.tif 000014
【図１４】
0005683173.tif 000015
【図１５】
0005683173.tif 000016