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