(57)【要約】      （修正有）【課題】空のファイルのプリントを防止する。【解決手段】方法は、分類タイプの組に基づき、オブジェクト／ファイルを分類し、オブジェクト／ファイルが空であるかどうかを判断するために、オブジェクト／ファイルの一部を分析することにより、空のオブジェクト／ファイルの検出を可能にする。【選択図】図４
2008097593.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを受信するステップと、
１つ以上の分類フォーマットタイプに基づいて、前記ファイルを分析するステップと、
前記ファイルが空でないことを表示するようになっている少なくとも１つの空でない要素を検出するステップとを備え、
少なくとも１つの空でない要素が検出されたときに前記分析ステップおよび前記検出ステップを停止し、
前記ファイル内に空でない要素が検出されなかった場合に、前記ファイルを空のファイルとして識別するステップを備えた方法。
【請求項２】
前記ファイルが空のファイルである場合に、前記ファイルを出力画像／レンダリング装置に送信しないステップを更に含む請求項１記載の方法。
【請求項３】
出力画像処理／レンダリング装置に制御情報を送信するステップを更に備えた請求項１記載の方法。
【請求項４】
前記ファイル内のシグネーチャを検出するステップ；
前記ファイルのファイル拡張子を決定するステップ；および
前記ファイル内の１つ以上のキャラクタシーケンスを検出するステップ；
のうちの少なくとも１つを実行することにより、前記ファイルを前記１つ以上の分類フォーマットタイプを分類するステップを更に備えた、請求項１記載の方法。
【請求項５】
少なくとも１つの空でない要素を検出する前記ステップが、
空でないインジケータロケーションを検出するステップを更に備え、空でないインジケータロケーションが検出されない場合に、前記ファイルは空のファイルを表示し、
１つ以上の空でないインジケータロケーションが検出された場合に、前記１つ以上の空でないインジケータロケーションのうちの少なくとも１つに関連する少なくとも１つの空でない要素を逐次検出する、請求項１記載の方法。
【請求項６】
前記１つ以上の分類フォーマットタイプが、
フォーマット化されていないドキュメントタイプと、
フォーマット化されたドキュメントタイプと、
画像タイプと、
ベクトルタイプと、
ページ記述言語タイプと、
グラフィックタイプと、
を含む群から選択されたものである、請求項１記載の方法。
【請求項７】
少なくとも１つの空でない要素を検出する前記ステップが、
ページ情報エントリを検出するステップを更に備え、ページ情報エントリが検出されなかった場合に、前記ファイルは空のファイルを表示し、
１つ以上のページ情報エントリが検出された場合に、前記１つ以上のページ情報エントリのうちの少なくとも１つに関連する少なくとも１つの空でない要素を逐次検出する、請求項１記載の方法。
【請求項８】
前記１つ以上の分類フォーマットタイプが画像タイプを含む、請求項１記載の方法。
【請求項９】
少なくとも１つの空でない要素を検出する前記ステップが、
画像ヘッダを検出するステップを更に備え、前記画像ヘッダが検出されなかった場合に、前記ファイルは空のファイルを表示し、
１つ以上の画像ヘッダが検出された場合に、前記１つ以上の画像ヘッダのうちの少なくとも１つに関連する少なくとも１つの空でない要素を逐次検出する、請求項１記載の方法。
【請求項１０】
前記１つ以上の分類フォーマットタイプがベクトルタイプを含む、請求項１記載の方法。
【請求項１１】
少なくとも１つの空でない要素を検出する前記ステップが、
ドローイング領域を検出するステップを更に備え、前記ドローイング領域が検出されなかった場合に、前記ファイルは空のファイルを表示し、
１つ以上のドローイング領域が検出された場合に、前記１つ以上のドローイング領域のうちの少なくとも１つに関連する少なくとも１つの空でない要素を逐次検出する、請求項１記載の方法。
【請求項１２】
前記１つ以上の分類フォーマットタイプがページ記述言語（ＰＤＬ）タイプを含む、請求項１記載の方法。
【請求項１３】
前記出力画像／レンダリング装置により、前記ファイルを受信するステップと、
前記出力画像／レンダリング装置により、前記ファイルが空のファイルであることを表示するステップとを更に備えた、請求項１記載の方法。
【請求項１４】
前記ファイルを出力画像／レンダリング装置に送信する前に、前記分析ステップを実行する、請求項１記載の方法。
【請求項１５】
出力画像／レンダリング装置内における前記ファイルをレンダリングする前に、前記分析ステップを実行する、請求項１記載の方法。
【請求項１６】
処理するためのファイルを受信し、
前記ファイルを出力画像／レンダリング装置に送信するようになっている、
直接送りユーティリティモジュールと、
前記直接送りユーティリティモジュールにより受信された前記ファイルを１つ以上の分類フォーマットタイプに基づいて分析し、
前記ファイルが空でないことを表示するようになっている少なくとも１つの空でない要素を検出する、
空のオブジェクト検出モジュールとを備え、
少なくとも１つの空でない要素が検出されたときに、前記少なくとも１つの空でない要素を分析し、検出することを停止し、
前記ファイル内に空でない要素が検出されなかった場合に、前記ファイルを空のファイルとして識別するようになっている、空のオブジェクトを検出するようになっている装置。
【請求項１７】
前記直接送りユーティリティモジュールは、更に、
前記ファイルが空のファイルとして識別される場合に、前記ファイルを出力画像／レンダリング装置に送信しないようになっている、請求項１６記載の装置。
【請求項１８】
前記直接送りユーティリティモジュールは、更に、
前記ファイルを空のファイルとして識別する場合に、制御情報が存在することを検出し、
少なくとも１つの制御情報が検出された場合に、前記ファイルを前記出力画像／レンダリング装置に送信するようになっている、請求項１６記載の装置。
【請求項１９】
前記空のオブジェクト検出モジュールは、更に、
空でないインジケータロケーションを検出し、空でないインジケータロケーションが検出されなかった場合に、前記ファイルは空のファイルを表示し、
１つ以上の空でないインジケータロケーションが検出された場合に、前記１つ以上の空でないインジケータロケーションのうちの少なくとも１つに関連した少なくとも１つの空でない要素を逐次検出するようになっている、請求項１６記載の装置。
【請求項２０】
処理するためのファイルを受信し、
前記ファイルを出力画像／レンダリング装置に送信するようになっている、
直接送りユーティリティモジュールと、
前記直接送りユーティリティモジュールにより受信された前記ファイルを１つ以上の分類フォーマットタイプに基づいて分析し、
前記ファイルが空でないことを表示するようになっている少なくとも１つの空でない要素を検出する、
空のオブジェクト検出モジュールとを備え、
少なくとも１つの空でない要素が検出されたときに、前記少なくとも１つの空でない要素を分析し、検出することを停止し、
前記ファイル内に空でない要素が検出されなかった場合に、前記ファイルを空のファイルとして識別するようになっている、空のオブジェクトを検出するようになっている第１装置を備え、
前記出力画像／レンダリング装置は、前記第１装置と作動的に結合しており、前記出力画像／レンダリング装置は、
レンダリングのための前記ファイルを受信するようになっている、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力処理に関し、特に、プリンタへ送られた空の出力を決定する方法、装置及びシステムに関する。
【背景技術】
【０００２】
プリント処理中にエラーが生じた場合、プリンタは、一般に、所定のフィードバックを行う。一部の状況、例えば、ページがプリントされないか、出力されない結果を生じさせるようなプリントジョブは、出力がレンダリングエラーの結果であるか、または、プリントファイル自体が意味のあるレンダリングされた出力、例えば、「紙にインクが載った」結果を生じさせるような命令を含んでいないことによるものであるかどうかにかかわらず、エラーと見なされる。ユーザに対し、より意義のあるフィードバックを行うだけでなく、ある状況では、紙を節約するため、例えば、ブランクセパレータまたは後方のページをプリントしてしまうことを解消するためには、空になっている状態のプリントファイルを検出する方法が望まれている。なお、画像データを印刷するにあたり、画像データが白紙であるか否かを判別して白紙でない画像データのみを印刷して出力する技術に関しては、例えば、特許文献１に開示されている。
【特許文献１】特開２００６−７７０６号公報
【発明の開示】
【課題を解決するための手段】
【０００３】
本発明の１つの様相によれば、ある方法が提供される。この方法は、ファイルを受信するステップと、１つ以上の分類フォーマットタイプに基づいてファイルを分析するステップと、ファイルが空でないこと表示する少なくとも１つの空でない要素を検出するステップとを含む。この方法は、ファイル内に空である要素が検出されない場合に、ファイルを空のファイルとして識別するステップも含むことができる。少なくとも１つの空でない要素が検出されると、上記分析ステップおよび検出ステップを停止するようになっている。
【０００４】
別の様相によれば、空のオブジェクトを検出するようになっている装置も提供される。この装置は、ダイレクト送り（サブミット）ユーティリティモジュールと、空のオブジェクト検出モジュールとを含む。ダイレクト送りユーティリティモジュールは、ファイルを処理し、処理したファイルを出力画像／レンダリング装置に送るために、ファイルを受信するようになっている。空のオブジェクト検出モジュールは、１つ以上の分類フォーマットタイプに基づき、ダイレクト送りユーティリティモジュールによって受信されたファイルを分析するようになっており、ファイル内に空でない要素が検出された場合に、そのファイルを空のファイルとして識別する。少なくとも１つの空でない要素のための分析および検出ステップは、少なくとも１つの空でない要素が検出されるときに停止される。
【０００５】
別の様相では、空のオブジェクトを検出するようになっている第１装置と、この第１装置に作動的に結合された出力画像／レンダリング装置とを含むシステムが提供される。第１装置は、ダイレクト送りユーティリティモジュールと空のオブジェクト検出モジュールとを備える。ダイレクト送りユーティリティモジュールは、処理のためのファイルを受信し、このファイルを出力画像／レンダリング装置に送信するようになっている。空のオブジェクト検出モジュールは、１つ以上の分類フォーマットタイプに基づき、ダイレクト送りユーティリティモジュールが受信したファイルを分析し、ファイルが空でないことを表示するようになっている少なくとも１つの空でない要素を検出し、ファイル内に空でない要素が検出されなかった場合に、そのファイルを空のファイルとして識別するようになっている。少なくとも１つの空でない要素が検出されると、少なくとも１つの空でない要素の分析および検出を停止する。他方、出力画像／レンダリング装置は、レンダリングのためにファイルを受信するようになっている。
【０００６】
本発明の実施例は、プリントシステムの信頼性を高めること、特に、プリントのために提出され得る空の入力オブジェクトを検出することに関する。一部の実施例では、空の入力オブジェクトとは、処理したときに、一般に、ユーザに出力される、レンダリングされた、意味があるか、または望ましい、例えば、「紙に載ったインク」を一般に発生しない入力オブジェクトとして定義される。一部の実施例では、これら入力オブジェクトで空のオブジェクトの検出プロセスが実行される。この検出プロセスは、一般に、フォーマットタイプにより入力オブジェクトを分類し、これら入力オブジェクトが空であるかどうかを判断するために、かかるオブジェクトを分析することを含む。全般的な分析プロセスは、空でない要素、例えば、ドローイング領域、ベクトルグラフィック命令、グラフィックコマンド、レンダリングコマンド、キャラクタシーケンスおよびテキストを含むが、これらに限定されない任意の要素であり、出力をレンダリングすべきことを表示する、すなわち、「紙に載ったインク」としてレンダリングされる出力を表示するか、または、一定の条件に基づき、更にかかる空でない要素のいずれかを検出し、分析プロセスを停止するようになっている。しかしながら、空でない要素が検出されなかった場合、オブジェクト／ファイルを空のオブジェクト／ファイルとして識別される。すなわち、画像処理／レンダリング装置に送られる場合、その結果、出力をレンダリングしないことがあり得る。すなわち、紙に載ったインクは、レンダリングされない。一部の実施例では、分析アルゴリズムは、特別な、空でない要素のインジケータロケーション、例えば、空でない要素、または、空でない要素に対するレファレンスを含むことがあるページテーブル、画像ヘッダ、バウンダリ、ドローイング領域、ページエンティティおよびパーティションを分析する。本発明の空のオブジェクト検出アルゴリズムに基づき、より有意なフィードバックを行うことができる。例えば、非出力プリントオブジェクトが例えば、レンダリングエラーに起因するものか、提出された入力オブジェクトが空であることに起因するものかどうかを区別することができる。プリントに関連して本発明の実施例について説明するが、これら実施例は、本発明の空検出機能において有利な他のシステム、例えば、ファックス送信、ドキュメントファイリングなどにも適用できる。本明細書において、プリントシステムの説明は単に発明を説明するためのものであり、発明の範囲を限定するものではない。
【発明を実施するための最良の形態】
【０００７】
以下に、添付図面を参照し、例示により、本発明を説明するが、図は、本発明を限定するものではない。
【０００８】
図１は、本発明の一実施例に係わるシステムの例１００を示す図である。このシステム１００は、一般に、コンピューティング装置１１０、例えば、汎用コンピュータを含む。一実施例では、コンピューティング装置１１０は、例えば、シリアルバスまたはパラレルバスを介して、１つ以上の画像処理装置および／またはレンダリング装置および／または周辺機器のような画像処理／レンダリング装置とも称されるアプリケーション１８０に直接取り付けられており、上記周辺機器として、プリンタ、コピー機、ファクリミリ装置を挙げることができ、コンピューティング装置１１０は、更に、他のコンピューティング装置にも直接取り付けられている。一般に、コンピューティング装置を介し、ユーザは、ダイレクトプリントユーティリティ１１６を介し、入力オブジェクトを出力するために、例えば、プリントおよび／またはファックスのために、かかる周辺機器へ送ることができる。コンピューティング装置１１０は、コンピューティング装置１１０が他の画像処理／レンダリング装置１５０、例えば、プリントサーバ、ファックスサーバ、他のコンピューティング装置、ネットワーク周辺機器およびかかるネットワーク１４０に作動的に結合された他の装置と通信するように、ローカルエリアネットワーク１４０の一部でもよい。このネットワークの例１４０は、放送を含むことができる有線、無線または双方のネットワークセグメントを含むことができる。コンピューティング装置１１０は、例えば、ネットワーク１４０および当業者に公知の適当なゲートウェイおよび／またはルータ装置を介し、図示されていないワイドエリアネットワーク、例えば、インターネットに作動的に結合することもできる。
【０００９】
コンピューティング装置１１０は１つ以上のアプリケーションモジュール１０２およびダイレクト送りプリントユーティリティ（ＤＰＵ）モジュール１１６を含むことができ、プリントユーティリティモジュールは空のオブジェクト検出（ＥＯＤ）モジュール１０６を内蔵できる。アプリケーションモジュール１０２は、アプリケーションオブジェクトを発生することを含むアプリケーションオブジェクトを処理するようになっているプログラム命令の一組、すなわちアプリケーションである。かかるアプリケーションモジュールによって処理されるかかるアプリケーションオブジェクトは、例えば、画像データオブジェクト、ドキュメントデータオブジェクト、ベクトルデータオブジェクトおよびページデスクリプション言語（ＰＤＬ）オブジェクトを含むことができる。これらアプリケーションモジュール１０２は、一般に、ソフトウェアアプリケーションとも称される。一部の実施例では、アプリケーションモジュール１０２は特定の装置または特定タイプの装置のための入力オブジェクトの発生を容易にするデバイスドライバを含むか、または、このデバイスドライバを利用できる。アプリケーションオブジェクトは、一般に、ストリーミングファイルを含むことができるファイルとして具現化されている。これらアプリケーションオブジェクトは、ＤＰＵモジュール１１６への入力オブジェクトとすることができる。かかるアプリケーションモジュールの例として、MICROSOFT（登録商標）（MS） WORD、MS Notepad、MS Wordpad、COREL（登録商標）、WORDPERFECT（登録商標）、MS OFFICE EXCEL、COREL（登録商標）、CORELDRAW、ADOBE（登録商標）、PHOTOSHOP（登録商標）およびADOBE（登録商標）ACROBAT（登録商標）を挙げることができる。
【００１０】
例えば、アプリケーションモジュール１０２を介し、または、他のサブミッションプロセスにより、プリントのために入力オブジェクト／ファイルが一旦サブミットされると、一般に、ＥＯＤモジュール１０６はシステム内で定義されるように、入力オブジェクトまたはファイルが空であるかどうかを検出する。ＥＯＤモジュール１０６は、コンピューティング装置にローカルな入力オブジェクト／ファイルだけでなくリモート入力オブジェクトを処理するようにもなっている。これら入力オブジェクトはリモートアプリケーションモジュールによって処理されている場合があり得る。ＤＰＵモジュール１１６は、一般に、オブジェクト、例えば、プリントジョブを画像処理／レンダリング装置１５０、１８０に送信するようになっている。ＥＯＤモジュールに本発明の空のオブジェクト検出プロセスを実行させることにより、これら画像処理／レンダリング装置は、より効率的に機能し得る。例えば、上記のように、プリントプロセスは、非出力の結果がレンダリングエラーによるものか、または、空のファイルによるものであるかどうかを識別することができる。別の例では、デジタルＴＶにより放送を介して受信されたビデオデータがＥＯＤモジュールによって識別される空のオブジェクトである場合、衛星ＴＶに送られたデータが空であることをデジタルＴＶに通知するか、または、ビデオファイルが空であることを考慮し、ビデオが送信されなかったことを通知することができる。従って、衛星ＴＶは、空のビデオが受信されたことを視聴者に通知するメッセージをディスプレイできる。更に、本発明の実施例は、ファイル操作に関連する方法、例えば、ファイル変換、光学的キャラクタ認識（ＯＣＲ）、ファイリングおよび本明細書に記載するカラー検出プロセスで有利な他のプロセスに関連する方法にも実施できる。例えば、入力オブジェクト／ファイルが空であることを認識した後に、ＯＣＲプロセスを実行しないことをＯＣＲアプリケーションモジュールに通知できる。図１は、ＤＰＵモジュール１１６の一部であるＥＯＤモジュール１０６を示しているが、ＥＯＤはアプリケーションモジュール１０２の一部でもよいし、または、通信メディア１４０またはレンダリング装置１５０、１８０のいずれかの一部として下流側にあってもよい。
【００１１】
一部の実施例では、画像処理／レンダリング装置１５０、１８０は、出力装置として機能できる。すなわち、例えば、図１に示されるように、出力をレンダリングできる。この場合、コンピューティング装置１１０または別の画像処理／レンダリングデバイス（図示せず）はプリントのために、装置１５０、１８０へオブジェクト、例えば、プリントオブジェクトをサブミットする。一部の実施例では、クライアント１１０によってサブミット／トランスミットされたオブジェクトは、プリントすべき入力オブジェクトおよびオプションとしての一組の制御命令、例えば、画像処理命令、すなわち、プリンタジョブ言語（ＰＪＬ）またはシンプルオブジェクトアクセスプロトコル／イクステンシブルマークアップ言語（ＳＯＡＰ／ＸＭＬ）を含み、これら言語は、例えば、画像処理命令および／または装置デフォルト設定のオプションの組に従って、受信した入力オブジェクトからの出力を、出力画像処理／レンダリング装置がレンダリングできるよう、受信または出力画像処理／レンダリング装置とコンパーチブルとなっている。画像処理／レンダリング装置は、例えば、プリント操作、コピー操作、アウトバウンドファックス操作、ファイリング、画像転送、変換、ビデオおよび／またはオーディオプレゼンテーションを含むパブリッシングを含むことができるプロセスで、出力装置として機能し得る。
【００１２】
当業者であれば、本発明のコンピューティング装置の例１１０には、他のモジュールを含むことができることも理解できよう。例えば、かかる他のモジュールとして、オペレーティングシステム、中央処理ユニット、ネットワーク通信モジュール、ネットワークインターフェースカードおよびコンピューティング装置１１０の機能および能力を一般にサポートするようになっている他のモジュールを挙げることができる。これら他のモジュールは、ハードウェア、一組のプログラム命令、例えば、ソフトウェア、および／またはハードウェアとソフトウェアの双方、すなわち、ファームウェアでよい。
【００１３】
図２は、本発明の一実施例に係わる別のシステムの例２００のハイレベルのブロック図である。このシステム２００は、図１のシステムに類似しているが、画像処理／レンダリング装置２５０、２８０は、入力装置、すなわち、入力データまたはオブジェクト／ファイルの装置として機能し得る。図示していないが、ネットワーク２４０に作動的に結合された画像処理／レンダリング装置２５０は、コンピューティング装置の例２１０に取り付けられた画像処理／レンダリング装置２８０内に含まれる同一または類似のモジュールも含むことができる。画像処理／レンダリング装置２５０、２８０は、装置２５０、２８０の機能に応じて入力信号またはデータを一般に処理するようになっている入力処理モジュール２０４も含むことができる。例えば、画像処理／レンダリング装置２５０、２８０がスキャナである場合、入力処理モジュール２０４は、別の装置、例えば、コンピューティング装置２１０または別の画像処理／レンダリング装置にトランスミット又はサブミットされる入力オブジェクトをスキャンし、これを形成するようになっている。次に、受信装置、例えば、コンピューティング装置２１５は、画像処理命令および／またはデフォルト設定のオプションの組にしたがって、サブミットされたオブジェクトをレンダリングする。従って、この画像処理／レンダリング装置は、例えば、スキャン、インバウンドファックスおよび／またはファイル検索を含むことができるプロセス上で入力装置として機能し得る。
【００１４】
図１および図２を参照すると、本発明の他の画像処理／レンダリング装置として、コピー機、スキャナ、ドキュメント／画像サーバ（例えば、ファイリング装置）、ウェブパブリッシング装置、電子ホワイトボード、デジタルカメラ、デジタル保護システム、デジタルＴＶ、衛星ラジオ、メディアプレイヤ、コンピューティング装置（例えば、パソコン）および医療画像処理装置（例えば、デジタルＸ線装置または磁気共鳴撮像（ＭＲＩ）装置）も挙げることができる。更に、ＥＯＤモジュールを含むことができるＤＰＵモジュールは、ホストコンピューティング装置および／または画像処理／レンダリング装置で作動するようにできる。ＤＰＵモジュールおよび／またはＥＯＤモジュールは、入力オブジェクトおよびオプションの制御情報、例えば、画像処理／レンダリング装置との間で直接入力オブジェクトをレンダリング／出力するためのジョブ設定をデスプールまたは受信するようになっている。
【００１５】
本発明の種々の実施例はMICROSOFT（MS）WINDOWS （登録商標）ファミリのオペレーティングシステム内で例示されているが、本発明の実施例は、他のオペレーティングシステム、例えば、APPLE MACINTOSH（登録商標）オペレーティングシステム（OS）、Linux OS、システムV Unix（登録商標） OS、BSD Unix（登録商標） OS、OSF Unix（登録商標） OS、SUN（登録商標）マイクロシステムズソラリスOS、HP（登録商標）IUXおよびUX OS、およびIBM（登録商標）のメインフレームMVS OSにも適用できるが、これらだけに限定されるものではない。
【００１６】
図３は、本発明の一部の実施例に係わるデータフロー例３００の高レベル図である。図１のコンピューティング装置１１０を参照してデータフローの例について説明するが、このデータフローは画像処理／レンダリング装置がＤＰＵモジュールおよび／またはＥＯＤモジュールを含む場合、図２の画像処理／レンダリング装置２５０、２８０にも適用できる。更に、ＥＯＤモジュール３０６およびＤＰＵモジュール３１６は、図示されている１つの統合されたモジュールとしてではなく、互いにインターフェースする別個のモジュールとして具現化できる。
【００１７】
本明細書に例示したデータフロー図の例３００は、プリントオブジェクトであるオブジェクトに関係する。ＤＰＵモジュール３１６が受信した入力オブジェクト／ファイル３５０は、リモートまたはローカルアプリケーションモジュールが処理したオブジェクト／ファイルを含むことができる。これら入力オブジェクト／ファイルは、一般に、例えば、オブジェクト／ファイルをプリントするためのユーザのリクエストにより、ＤＰＵモジュールおよび／またはＥＯＤモジュールへ送られる。例えば、ＰＤＦオブジェクト／ファイルは、一般に、ユーザがＰＤＦファイルのプリントをサポートするアプリケーション内のプリントリクエストオプションを選択したときに、一般に、ＤＰＵモジュールへ送られる。これら入力オブジェクト／ファイルは、例えば、アプリケーションモジュール、バックグラウンドプロセスおよびバッチジョブにより、例えば、プリントのために、ＤＰＵモジュールへサブミットされたものであり得る。これら入力オブジェクト／ファイル３５０は、これらにコンピューティング装置および／または、特にＤＰＵ３１６によりアクセスできる限り、コンピューティング装置１１０に対してローカルでもよいし、または、リモートでもよい。一旦、ＤＰＵモジュール３１６によって受信されると、ＥＯＤモジュールは、入力オブジェクト３５０が空であるかどうかを判断する。一部の実施例では、入力オブジェクトがブランクである場合、空であると見なす。すなわち、例えば、入力オブジェクトが出力される結果、紙にインクが載らないことがあり得る。例えば、プリンタによってプリントされるか、または、ファックス装置によりファックスされ、プリントされた場合、紙の上にインクを載せたり、粒子として吹き付ける命令が出されない。別の例では、インクの粒子は小さくて、裸眼によって認識できないか、または読み取りが極めて困難である場合、かかる入力オブジェクトをブランクとして見なしてもよい。オブジェクト／ファイル自体がデータを含まず、および／または結果として出力がない場合、すなわち、プリント時にページがないことがある場合、入力オブジェクトは空であると見なすこともできる。入力オブジェクトを処理し、インク粒子が出力ドキュメントのプリント可能な領域内にあったり、または、ボケたりした場合、例えば、インクが製本用マージンに載ったりした場合、入力オブジェクトを空であると見なすこともできる。インク粒子がユーザに対して意味のある出力を発生できない場合、例えば、出力されたシートの底部に浮遊ラインが生じた場合、入力オブジェクトを空であると見なすこともできる。オブジェクトが空であるかどうかを判断するアルゴリズムについて、以下、更に例示する。
【００１８】
ＤＰＵモジュール３１６は、装置設定、画像処理および／またはレンダリング命令、プリンタ命令および／またはプリンタ制御言語を含むことができる、制御情報のような、別の情報３６０も受信できる。この組の情報３６０は、サブミットされたオブジェクト３７０の一部として組み込むことができ、出力レンダリングまたは処理のために出力装置に送信されるか、または一時的記憶またはキューイングのために、中間装置へ送信される。
【００１９】
一部の実施例では、入力オブジェクト／ファイルは、ＤＰＵモジュールおよび／またはＥＯＤモジュールによって受信される前に、ある処理、例えば、プリンタドライバ処理をまず受ける。別の実施例では、ＤＰＵモジュール３１６によって処理された入力オブジェクトは、オリジナルフォーマット、すなわち、ネイティブフォーマットであり、例えば、プリンタドライバによっては処理されておらず、一般に、プリンタドライバの処理を受けることなく、プリンタまたは画像処理／レンダリング装置へプリントオブジェクトとして直接サブミットされる。この処理は、一般に、ドライバレスプリントと称される。一般に、プリンタドライバは一組のプログラム命令であり、すなわち、ソフトウェアアプリケーションであり、プリントすべきオブジェクト、例えば、MS WORDドキュメント、ポータブルドキュメントフォーマット（ＰＤＦ）ファイルまたはテキストファイルをプリンタ固有のフォームに変換するアプリケーションである。本発明のプリントオブジェクトまたはサブミットされたオブジェクト３７０を受信するようになっている出力プリンタまたは画像処理／レンダリング装置は、画像処理ドライバまたはプリンタドライバを用いることなく、種々のアプリケーションのオブジェクトフォーマットをレンダリングおよび／または出力するようにできる。従って、ＤＰＵモジュールおよび／またはＥＯＤモジュールは、ネイティブな、またはオリジナルのフォーマット、または、変換されたフォーマット、例えば、プリンタドライバによって処理された入力オブジェクト３５０を受信し、処理するようになっている。従って、ドライバレスプリントプロセスおよびドライバに基づくプリントプロセスの双方は、これまで本明細書で説明した空のオブジェクト検出プロセスによって取り扱うことができる。例えば、ドライバに基づくプリントをするには、プリンタドライバへ送る前に入力オブジェクトに空のオブジェクト検出プロセスを実行できる。すなわち、プリンタドライバプロセスの範囲内またはその一部で、元のドキュメントフォーマットの入力オブジェクトに適用してもよく、例えば、オペレーティングシステムにより、そのグラフィックフォーマット、例えば、グラフィックデバイスインターフェース（ＧＤＩ）に変換した後に入力オブジェクトに適用してもよいし、または、入力オブジェクトをプリンタドライバで処理した後に、例えば、入力オブジェクトがプリンタ制御言語（ＰＣＬ）またはポストスクリプト（ＰＳ）フォーマットのようなプリンタレディーフォーマットとなっているときに、入力オブジェクトに適用してもよい。
【００２０】
図４は、空のオブジェクト検出プロセス例４００を示す図であり、このプロセスは、本発明の一実施例に係わるＥＯＤモジュールおよび／またはＤＰＵモジュールによって実行できる。例えば、ＤＰＵモジュール３１６により、入力オブジェクトを受信した後に、ＥＯＤモジュール３０６は、まず、入力オブジェクト／ファイルを次のフォーマット分類４３０のうちの１つに分類する（ステップ４２０）。
１．フォーマット化されていないドキュメントフォーマット；
ａ．平文またはＡＳＣＩＩテキスト
ｂ．拡張可能なマークアップ言語（ＸＭＬ）
２．フォーマット化されたドキュメントフォーマット；
ａ．ポータブルドキュメントフォーマット（ＰＤＦ）
ｂ．リッチテキストフォーマット（ＲＴＦ）
３．画像フォーマット；
ａ．タグ付き画像ファイルフォーマット（ＴＩＦ）
ｂ．ジョイントフォトグラフィックエキスパートグループ（ＪＰＥＧ）／ＪＰＥＧファイル交換フォーマット（ＪＦＩＦ）
ｃ．ポータブルネットワークグラフィック（ＰＮＧ）
ｄ．グラフィック交換フォーマット（ＧＩＦ）
ｅ．交換可能な画像ファイルフォーマット（Ｅｘｉｆ）
ｆ．ビットマップ、例えば、MS WINDOWS（登録商標）ビットマップ
４．ベクトルフォーマット；
ａ．スケーラブルベクトルグラフィック（ＳＶＧ）
ｂ．HP-GL/2を含むヒューレットパッカードプリンタ制御言語（HP-GL）
５．ページデスクリプション言語（ＰＤＬ）フォーマット；
ａ．これまでＰＣＬ  ＸＬとして知られていたエンハンスされたＰＣＬ６を含むプリンタコマンド言語（ＰＣＬ）
ｂ．ポストスクリプト（ＰＳ）
６．グラフィックフォーマット；
ａ．エンハンスされたメタファイル（ＥＭＦ）
ｂ．MICROSOFT（登録商標） XPSフォーマット
【００２１】
かかるフォーマットタイプに関連するオブジェクト／ファイルの例は、上記フォーマット分類タイプの各々の下にある。一部の実施例では、例えば、他のファイル構造およびデータ記憶識別手段に適合するように、上記分類タイプの例を変えることができる。
【００２２】
入力オブジェクト／ファイルの分類は多数の方法で行うことができる。例えば、所定のフォーマットのタイプがユニークなシグネーチャ、例えば、一般に、フォーマットのタイプをユニークに識別するキャラクタストリングを有する。例えば、オブジェクト／ファイルのうちのヘッダ内のストリング「％ＰＤＦ」は、ファイルがＰＤＦファイルであることを示す。下記のオブジェクト／ファイルの例のほとんどまたはすべてのファイル構造は、種々の表現グループおよび／または仕様によって定義され、一般に入手可能である。下記の表Ｉは、フォーマットタイプの例およびそれに関連する一般にユニークなシグネーチャを示し、特定のファイルを識別するものである。
【００２３】
【表１】
2008097593.tif 000003
【００２４】
別の実施例では、シーケンスが存在するかまたは存在しないかのいずれかにより、入力オブジェクト／ファイルのフォーマットの分類を決定できる。例えば、コンテントがフォーマット化されていないことを示すファイルのサフィックスまたはファイル拡張子（例えば、「txt」ファイル拡張子は、フォーマット化されていないドキュメントタイプを示す）によってフォーマット化されていないテキストオブジェクト／ファイルを決定できる。他の拡張子、例えば、「JPG」または「JPEG」は、JPEGファイルであることを示すが、「.BMP」は、MS WINDOWS（登録商標）のビットマップファイルであることを示す。別の実施例では、所定のキャラクタ構造が繰り返し存在すること、すなわち、ストリーム、例えば、「<svg...>」は、SVGファイルを示す。
【００２５】
上記フォーマット分類の各々は、一般に、入力オブジェクト／ファイルのフォーマット分類に基づくクイック分析方法に関連する。このクイック分析方法の一例は、入力オブジェクトが空でない要素、例えば、ページ、図、テキストおよび／またはレンダリングまたは別の方法で入力するデータを含むかどうかを判断するか、または、別の方法で入力オブジェクトが空でない要素を含まないかどうかを判断するようになっている。本明細書で説明するクイック分析方法の例は、入力オブジェクトのデータを解読せず、一般に、空でない要素または他の対応する情報の存在を判断するために、各入力オブジェクトの小さい部分および／または選択された部分しか分析しない。更に、一般に、入力オブジェクト／ファイルのコンテントまたはデータのすべてを分析するわけではない。
【００２６】
分類後、入力オブジェクト／ファイル３５０が空であるかどうかを判断する（ステップ４４０）ための分類フォーマットタイプに基づき（ステップ４２０）、一般に、適当なクイック分析方法を実行する。当業者であれば、これら分類およびクイック分析ステップ（ステップ４２０および４４０）は、同一のオペレーションで実行できることが理解できよう。入力オブジェクト／ファイルが空でない場合（ステップ４４４の「ＮＯ」分岐）、入力オブジェクト／ファイルが通常の処理のためにプリンタへ提出される（ステップ４４８）。他方、一部の実施例において、入力オブジェクト／ファイルが空であると判断された場合（ステップ４４４の「ＹＥＳ」分岐）、例えば、レンダリングされた場合の出力が、一般に結果としてシートまたはページがプリントまたはファックスされず、および／または紙の上に認識できないインクまたは意味のないインクが載るような結果となった場合、ＤＰＵモジュールおよび／またはＥＯＤモジュール、特に、ＤＰＵモジュールは入力オブジェクト／ファイルが非出力または非レンダリング制御情報を含むかどうかを更に判断する（ステップ４５０）。制御情報は、一般に、レンダリングされない情報を含むが、出力画像／レンダリング装置をどのようにコンフィギュアするかを表示する。例えば、デバイスコンフィギュレーション／リコンフィギュレーション情報を含む。かかる制御情報として、スクリプティング命令、装置設定命令、環境設定、ホームおよび／またはフォントダウンロード情報、装置処理命令、例えば、ステープルモードに設定する命令および出力画像処理／レンダリング装置をコンフィギュアし、および／または制御できる他の情報も含むことができるが、これらに限定されるものではない。入力オブジェクト／ファイルが、少なくとも１つの非出力制御情報を含む場合（ステップ４５０の「ＹＥＳ」分岐）、ＤＰＵモールは、制御情報を適当な出力プリンタに送ることができ、入力オブジェクト／ファイルがプリンタによって取り込まれるか、または、受信されると（ステップ４６０）、プリントジョブを完全なジョブと識別することもできる。一般に、非出力制御情報しか送られず、空の入力オブジェクト／ファイルは送られない。一部の実施例では、ＤＰＵはオプションで、かかるプリンタからの最終出力ジョブ完了通知を待つことをオプションとして不能にできる。別の実施例では、プリンタは、送信された制御情報に基づき、装置のコンフィギュレーションステータスすなわち成功したか成功しないかに関して、プリント出力にプリントするのではなく、最終通知情報を送ることができる。一部の実施例では、例えば、オブジェクト／ファイルで別の出力処理を実行すべきでない場合、プリントジョブを完了と見なすことができる。完了したジョブの結果として、プリントジョブを完了したことをユーザに通知することもあり、この通知はレンダリングされた出力が予想されないことの表示を含むことができる。ユーザにはオプションとして制御情報を既に送ったことを通知できる。一般に、通常の作動のコースでは、ＤＰＵとプリンタまたは出力画像処理／レンダリング装置との間のステータス交換を含む受信通知を交換することができる。
【００２７】
他方、空のジョブが制御情報を含まない場合（ステップ４５０の「ＮＯ」分岐）、ＤＰＵモジュールは、一般に、オブジェクト／ファイルをプリンタには提供せず、プリントすべきものがないこと、および、オブジェクト／ファイルには制御命令が含まれないことを検討する（ステップ４７０）。ＤＰＵは提出されたプリントジョブが空のファイルであり、プリントジョブは、例えば、現在完了していることをユーザに通知することもできる（ステップ４７０）。
【００２８】
図５は、本発明の空のオブジェクト検出プロセスを示す高レベルのブロック図の例５００である。一般に、入力オブジェクト／ファイルは種々のフォーマットタイプ５０２、５０４、５０８、５１２、５１６、５２０に分類される。ＤＰＵモジュールは、一般に、デフォルト値に基づくか、または、ユーザが選択または表示した情報（５４４）に基づき、制御情報、例えば、プリンタ設定情報または装置設定情報も受信できる。かかる制御情報として、コピー数、モード、例えば、両面または非両面、ステープル設定およびその他の設定または環境情報も含むことができる。メニューオプション選択によりユーザ選択を既に提供していることがある。入力オブジェクト／ファイルをカプセル化するか、または、ＰＪＬコマンド５５０と組み合わせ、プリンタに情報、例えば、プリンタ設定および／または環境設定を提供し、プリンタとホストコンピュータ、例えば、コンピューティング装置または、プリンタジョブリクエストを送ったか、または、プリントのためのオブジェクト／ファイルを送ったＤＰＵモジュールとの間のステータス交換を可能にすることができる。別の実施例では、ＰＪＬコマンドは、例えば、ジョブのスタートおよび終了を表示できる。当業者には、ＰＪＬコマンドが提供する他の特徴は、公知のものである。次に、ＰＪＬでラップされた入力オブジェクト／ファイル５５０が出力処理のためにプリンタまたはレンダリング／画像処理装置５６０へ提出される。
【００２９】
図６は、フォーマット化されていないドキュメントオブジェクト／ファイルが空であるかどうかを判断するための高レベルのプロセス例６００を示す図である。オブジェクト／ファイルを受信し、これをフォーマット化されていないドキュメントファイルとして分類した後（ステップ６０４）、オブジェクト／ファイルに含まれるバイト数、すなわち、空でない要素の数がゼロであるかどうかを判断するためのチェックを行う（ステップ６１２）。バイト数がゼロよりも大であれば、白スペースでないプリント可能なキャラクタが存在するかどうかについてオブジェクト／ファイルをチェックする。一般に、フォーマット化されていないドキュメントタイプ内に白スペースでないプリント可能なキャラクタのシーケンスまたはストリングが存在していることは、出力レンダリング／画像処理装置によってレンダリングまたは出力すべき、空でない要素またはデータがあることを示す。更に、フォーマット化されていないドキュメントは、一般に、フォーマット化命令を含まないので、フォーマット化されていないドキュメントが１つ以上のバイトから成る場合、そのジョブは、空でないオブジェクト／ファイルである。すなわち、そのジョブは空でない要素を含み得る（ステップ６１８）。そのオブジェクト／ファイルに対するバイト数がゼロであるか、または、白スペースでないプリント可能なバイトの数がゼロであれば、そのオブジェクト／ファイルを空であると識別する（ステップ６１４）。
【００３０】
図７は、フォーマット化されたドキュメントのオブジェクト／ファイルが空であるかどうかを判断するための高レベルのプロセス例７００を示す図である。オブジェクト／ファイルを受信し、これをフォーマット化されたドキュメントタイプとして分類した後に（ステップ７０４）、ＤＰＵモジュールおよび／またはＥＯＤモジュールは、ページ情報の存在を発見または例えば、ページテーブルまたはページパーティションのいずれかとして検出するために、入力オブジェクト／ファイルを分析する（ステップ７０８）。ページテーブルまたはページパーティションは、一般に、空でない要素のインジケータロケーションとして機能する。一般に、ページテーブル構造を有するフォーマット化されたドキュメントに対し、ページテーブルまたはそれらのロケーションに対するレファレンスは、一般に、オブジェクト／ファイルの開始点または終了点に生じる。従って、入力データまたはオブジェクト／ファイル全体を分析することなく、ページテーブルを迅速に識別し、検査できる。ＰＤＦフォーマットまたはファイルに対し、例えば、クロスレファレンステーブル領域には一般にページ−テーブル構造情報が含まれる。例えば、ＰＤＦバージョン１.６のクロスレファレンステーブルエリアは、一般に、ＰＤＦオブジェクト／ファイル内の間接オブジェクトへのランダムアクセスを可能にする情報を含む。ＰＤＦオブジェクト／ファイルの後端領域は、一般に、クロスレファレンステーブルのロケーションを提供する。一部の実施例において、シーケンシャルに、例えば、所定の順序でページごとにページデータをレイアウトするフォーマット化されたドキュメントに対し、第１ページの開始点（存在する場合）を識別するために、まず、オブジェクト／ファイルの前方部分だけを分析しなければならない。
【００３１】
一般に、ページテーブルまたはページパーティションが検出されない場合、例えば、ページエントリがゼロに等しい場合（ステップ７１２）、プリントオブジェクト／ファイルまたはプリントジョブを空と見なす（ステップ７２０）。そうでない場合、各ページを順次検査し、ページが空でない要素、特に、結果としてレンダリング出力を生じさせ得る、例えば、紙の上のインクを生じさせ得る（ステップ７１２の「ＮＯ」分岐）ドローイングコマンドを含むかどうかを判断する。単一のドローイングコマンドが一旦検出された場合、ページまたはオブジェクト／ファイルの残りを検査または分析することなく、分析プロセスを停止することができ（ステップ７１６の「ＮＯ」分岐）、更に、プリントジョブまたはオブジェクト／ファイルを空でないと見なす（ステップ７２４）。そうでなく、ページのいずれもがドローイングコマンドを含むとは判断されない場合、オブジェクト／ファイルを空と見なす（ステップ７２０）。
【００３２】
図８は、画像オブジェクト／ファイルが空であるかどうかを判断するための高レベルのプロセス例８００を示す図である。オブジェクト／ファイルを受信し、これをある画像のタイプであると分類した後に（ステップ８０４）、ＤＰＵモジュールおよび／またはＥＯＤモジュールは入力オブジェクト／ファイルを分析し、空でない要素のインジケータロケーション、特に、画像ヘッダの存在を探す（ステップ８０８）。一般に、画像ヘッダはオブジェクト／ファイルの開始点に位置するか、または、定義され、オブジェクト／ファイルが多数の変換を含む場合、画像ヘッダは、一般に、順次リンクされる。画像ヘッダは、一般に、入力オブジェクト／ファイル全体を分析することなく、迅速に識別し、検査できる。例えば、画像ファイルダイレクトリ（ＩＦＤ）は、ＴＩＦＦファイルの画像ヘッダ例である。画像オブジェクトタイプの他の例としてＪＰＥＧファイルおよびＰＮＧファイルを挙げることができる。
【００３３】
画像ヘッダが検出されない場合（ステップ８１２の「ＹＥＳ」分岐）、オブジェクト／ファイルを空と見なす（ステップ８２０）。そうでない場合、各画像ヘッダを順次検査し、画像入力がレンダリングすべき画像の定義、例えば、空でない要素を含むかどうかを判断する（ステップ８１６）。出力装置、例えば、プリンタによってレンダリングすべき画像は、一般に、次の２つの方法のうちの１つで定義できる。
１．画像をレンダリングすべき、ゼロでないサイズの領域を定める定義。
２．画像データのゼロでないサイズロケーションへのレファレンス。
【００３４】
上記２つの定義のうちのいずれかに相当した場合、オブジェクト／ファイルを空でないと識別する（ステップ８２４）。そうでない場合（ステップ８１６の「ＹＥＳ」分岐）、オブジェクト／ファイルを空であると識別する（ステップ８２０）。
【００３５】
図９は、ベクトルデータオブジェクト／ファイルが空であるかどうかを判断するための高レベルのプロセス例９００を示す図である。オブジェクト／ファイルを受信し、これをベクトルデータタイプとして分類した後（ステップ９０４）に、ＤＰＵモジュールおよび／またはＥＯＤモジュールは、空でない要素のインジケータロケーション、特に、ドローイング領域が存在することを探すために、入力オブジェクト／ファイルを分析する（ステップ９０８）。この分類の例では、ドローイング領域はリーディング表示バイトまたはキャラクタシーケンスによって容易に認識できる。所定の表示の一致をサーチすることによってベクトルオブジェクト／ファイルを迅速に分析できる。
【００３６】
例えば、スケーラブルなベクトルグラフィックス（ＳＶＧ）は、ベクトルグラフィックスを記述するためのＸＭＬマークアップ言語である。ワールドワイドウェブコンソーシアム（Ｗ３Ｃ）から、ＳＶＧ勧告が出されており、この勧告は、一般に、マークアップ言語を使用してベクトルグラフィックスを形成するための態様について説明している。例えば、ＳＶＧは「<rect.../>」タグにより、四角形を定義する。例えば、「<rect x="100" y="100" width="400" height="200" fill="red" stroke="black" stroke-width="3"/>」は、１つの四角形を記述するものである。ＳＶＧ仕様は一般に次のものにより四角形を定義する。
・rect  −  rect要素を使って四角形を宣言する
・x、y  −  四角形の頂部左側コーナの座標
・width、height  −  パーセントとしても表記できる形状の幅および高さ
・fill  −  形状の内側のカラー
・stroke  −  四角形に対するラインカラー
・stroke-width  −  四角形を描くのに使用されるラインの太さ
【００３７】
ＳＶＧ仕様内では、他のドローイング要素、例えば、円、楕円、ライン、折り曲げラインおよび多角形も定義されている。更に、ＳＶＧは一般にベクトルグラフィックの形状、画像およびテキストをサポートしている。このベクトル分類例では、ドローイング領域を定義するすべての要素、例えば、可能な空でない要素に対してオブジェクト／ファイルをサーチし、ストリングキャラクタ「<rect」およびドローイング領域を表示する他のグラフィック要素をサーチする。別の実施例では、ドローイングの定義が所定の寸法であるかどうか、すなわち、実際の紙上にインクが載っている寸法であるか、幅および高さの値がゼロまたは所定のスレッショルドを超えるかどうか、ストロークの幅の値がゼロまたは所定のスレッショルドよりも大きいか、または、幅および高さのパーセントの値がゼロまたは所定のスレッショルドよりも大きいかどうかの判断を行う。
【００３８】
ドローイング領域が検出されなかった場合（ステップ９１２）、プリントジョブまたはオブジェクト／ファイルを空であるとして識別する（ステップ９２０）。そうでない場合（ステップ９１２の「ＮＯ」分岐）、オブジェクト／ファイル内で各ドローイング領域を順次検査し、その領域が所定の空でない要素、特に、レンダリング、例えば、紙の上のインク、出力、または、所定の条件に基づく出力を生じさせるドローイングコマンドを表示するか、または、それらを含むかどうかの判断を行う。何らかのドローイングコマンドが検出された場合、ドローイング領域またはオブジェクト／ファイルの残りの部分を検査／分析することなく分析プロセスを停止し、オブジェクト／ファイルを空でないと見なす（ステップ９２４）。そうでなく、すべてのドローイング領域がドローイングコマンドを含まないと判断された場合、オブジェクト／ファイルは空であると見なす（ステップ９２０）。
【００３９】
図１０は、グラフィックデータオブジェクト／ファイルが空であるかどうかの判断をするための、高レベルのプロセス例１０００を示す図である。オブジェクト／ファイルを受信し、これをグラフィックデータタイプとして分類した後に（ステップ１００４）、ＤＰＵモジュールおよび／またはＥＯＤモジュールは、入力オブジェクト／ファイルを分析し、空でない要素のインジケータロケーション、特に、ページテーブルまたは記録の存在を探す（ステップ１００８）。ページテーブルまたはそれらロケーションまたは記録へのレファレンスは、一般に、オブジェクト／ファイルの開始点に定義または位置する。ページテーブルまたは記録は、入力オブジェクト／ファイル全体を分析することなく、一般に、迅速に識別し、検査できる。
【００４０】
ページテーブルまたは記録が全く検出されない場合（ステップ１０１２）、そのオブジェクト／ファイルを空であると見なす（ステップ１０２０）。そうでない場合（ステップ１０１２の「ＮＯ」分岐）、ページテーブルまたは記録入力内で基準とされる各ページを順次検査し、例えば、所定の条件に基づき、ページまたは基準とする記録入力が空でない要素、特に、結果としてレンダリングされた出力を生じさせるようなドローイングコマンドを含むかどうかの判断を行う。かかるコマンドが全く見つからない場合（ステップ１０１６の「ＹＥＳ」分岐）、オブジェクト／ファイルを空であると見なす（ステップ１０２０）。ドローイングオブジェクトの存在を示すドローイングコマンドが発見または検出された場合、ページおよびオブジェクト／ファイルの残りの部分を検査または分析することなく、分析プロセスを停止し、オブジェクト／ファイルを空でないと見なす（ステップ１０２４）。
【００４１】
グラフィックデータタイプの例は、一般に「.wmf」または「.emf」拡張子で表示されるMS EMFファイルである。MS WINDOWS（登録商標）メタファイルまたはエンハンスされたメタファイルのファイルフォーマットは、一般に、ヘッダと、それに続くMS WINDOWS（登録商標）グラフィックデバイスインターフェース（ＧＤＩ）コマンドとして記録されるドローイングオブジェクトの１つ以上の記録が続く。ＧＤＩは、スクリーンウィンドまたは他の出力装置への出力を実行するためにMS WINDOWS（登録商標）によって使用される。メタファイルデータがレンダリング／出力もしくは再生されるとき、各記録からのデータは、一般に、画像内の各オブジェクトをレンダリングするために適当な機能のコールを実行するために使用される。オブジェクト／ファイル内の最終記録は、一般に、記録データの終了点に達したことを表示する情報を含む。例えば、グラフィックオブジェクト／ファイルがＥＭＦファイルである場合、本発明のクイック分析アルゴリズムは、一般に、出力、例えば、紙上のインクまたは所定のスレッショルドで出力をレンダリングするようになっているＧＤＩコマンドが存在し、オブジェクト／ファイルを、例えば、空であるかまたは空でないと見なすべきかどうかを識別するよう、分析する。
【００４２】
図１１は、ＰＤＬオブジェクト／ファイルタイプが空であるかどうかを判断するための高レベルのプロセス例１１００を示す図である。オブジェクト／ファイルを受信し、これをＰＤＬタイプとして分類した後（ステップ１１０４）、ＤＰＵモジュールおよび／またはＥＯＤモジュールは、オブジェクト／ファイルを分析し、空でない要素のインジケータロケーション、特に、ページパーティションまたはバウンダリ（境界）を探す（ステップ１１０８）。ＰＤＬオブジェクトタイプの例として、PCL、PCL/XL、PS、EPSON（登録商標）またはESC/P2（登録商標）ファイルであるオブジェクト／ファイルを挙げることができる。このような分類フォーマットタイプにより、一般に、第１ページまたは第１バウンダリ（存在する場合）の開始点を識別するために、ファイルの先頭部分だけを分析しなければならない。
【００４３】
ページパーティションまたはバウンダリが全く検出されなかった場合（ステップ１１１２の「ＹＥＳ」分岐）、オブジェクト／ファイルを空と見なす（ステップ１１２０）。そうでない場合、例えば、定義された条件に基づき、各パーティションまたはバウンダリを逐次検査し、パーティションまたはバウンダリが空でない要素、特に、レンダリングされた出力を結果として生じさせ得るようなドローイングコマンドを含むかどうか判断をするよう、各パーティションまたはバウンダリを逐次検査する。何らかのコマンドが検出された場合（ステップ１１１６の「ＮＯ」分岐）、パーティションまたはバウンダリの残りを検査または分析することなく分析プロセスを停止し、オブジェクト／ファイルを空でないと見なす（ステップ１１２４）。そうでなく、バウンダリまたはパーティションのどれも、ドローイングコマンドを含まないと判断された場合、出力／オブジェクトを空と見なす（ステップ１１２０）。
【００４４】
再び、例えば、図１、２および３を参照する。例えば、本発明のＤＰＵモジュールおよび／またはＥＯＤモジュールは、空でない要素を定義する態様、および、上記のような、空でない要素のインジケータロケーションの構造およびフォーマットを含む、種々のファイル構造フォーマットの知識を含むことができる。一部の実施例では、データベースとインターフェースできるプログラム命令の一組、例えば、リレーショナルデータベースとして、空のオブジェクト検出プロセスを具現化できる。例えば、このデータベースは、ファイル構造情報を含むことができ、このファイル構造情報はコンテントの定義または空のオブジェクト検出プロセスが入力／オブジェクト、例えば、特殊なタグ要素の定義、シグネーチャ情報、データ構造定義、コマンドまたは機能コールおよびファイル拡張子を適当に分析できるようにする他の情報を含む。更に、当業者であれば、オブジェクト／ファイルが空であるかどうかを判断するプロセスは、例えば、ソフトウェアアプリケーションまたはプログラム命令の組内にすべてをプログラムとしてコード化できる、ことが理解できよう。
【００４５】
別の実施例では、２つ以上のタイプの情報に対してオブジェクト／ファイルを分析できる。例えば、図９では、ドローイング領域をサーチすることに関連してプロセスの例について説明した。しかしながら、ＳＶＧファイルはベクトルグラフィックコマンドだけでなく、テキストおよびラスタ画像グラフィックも含むことができる。本発明の分析アルゴリズムは、一般に、レンダリング出力を結果として生じさせ得る他の要素のタイプを検討するので、分析アルゴリズムの組み合わせ、例えば、ファイルが空であるか否かを判断する際に、ドローイング領域だけでなく、テキストおよび別の画像フォーマット、例えば、ラスタグラフィックも検討する。更に、説明するために、例えば、ベクトルグラフィックは、一般に、プリンタに１つのロケーションから別のロケーションにプリントする命令に関係する。
【００４６】
このことは、ある程度プリンタに「ペンアップ」または「ペンダウン」動作をさせることのように見なすことができる。従って、ベクトルグラフィックでは、本発明の実施例は、例えば、「紙にインクを載せる」という命令をするように、「ペンをダウンする」判断をするために、オブジェクト／ファイルを読み出したり、または、分析する。同様に、本発明の実施例は、実際のプリントまたはインクロケーションを表示できるビットマップまたはラスタグラフィックオブジェクト／ファイルにより、例えば、オブジェクト／ファイルに含まれるコマンドに基づき、実際に紙にインクを載せるか、または、少なくともそのような命令をすることを判断するために、オブジェクト／ファイルを読み出したり、または、分析する。
【００４７】
本発明の実施例は、混合フォーマットタイプの分類と共に、入力オブジェクト／ファイルにも適用できる。すなわち、２つ以上のファイルフォーマットコンテントを有する。例えば、入力オブジェクト／ファイルは、ベクトルグラフィックと画像データの組み合わせか、または、フォーマット化されたデータと、画像と、ページデスクリプション言語との組み合わせとなり得る。従って、フォーマットタイプの分類の混合に応じ、１つ以上の空のオブジェクト検出アルゴリズムを実施できる。一般に、入力オブジェクト／ファイルが空でないと識別されると、別のフォーマット分類アルゴリズムをスキップできる。
【００４８】
本発明の実施例は、例えば、オブジェクト／ファイルをプリンタに送信する前に、プリントから上流側のブランクページを抑制または削除するよう、ブランクページ検出プロセスとしても実施できる。このことは、ページまたは出力デリニエーション（delineation）が空であると見なされた場合に、出力画像処理／レンダリング装置に、かかるページをプリントしないように命令するか、または、これとは異なり、ブランクページを抑制または削除するように、実際のオブジェクト／ファイルを変更するよう、分析プロセスの一部として実施してもよい。更に、リソース、例えば、プリントジョブで利用される紙のシート数を計算または予め計算する課金システムに対し、本発明の実施例は、ブランクページが存在すること、および、その数を決定するのにも使用できる。更に、ブランクページのプリントの抑制を自動的にするか、または、インタラクティブ（例えば、オペレータの確認を必要とするよう）にできる。
【００４９】
本発明の実施例は、オブジェクト／ファイルの処理、特に、オブジェクト／ファイルのプリントを使用できるネットワークのシステムおよび装置を組み合わせて使用できる。以上で、所定の実施例および例に関連して、本発明について開示したが、当業者であれば、本発明は、特別に開示した実施例以外に、本発明の別の実施例および／または使用、および、本発明の明白な変更および均等物まで拡張できることが理解できよう。更に、本発明の多数の変形例を詳細に示し、説明したが、この開示に基づけば、当業者には、本発明の範囲内の別の変形例が容易に明らかとなろう。これら実施例の特別な特徴および様相の種々の組み合わせまたはサブ組み合わせが可能であり、これらは、本発明の要旨の範囲内に入るものである。従って、開示した実施例の種々の特徴および様相を互いに組み合わせたり、または置換し、開示した発明の変化する態様を形成できると理解すべきである。従って、本明細書に開示した本発明の範囲は、これまで本明細書で説明した特別な開示の実施例だけに限定すべきではない。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施例に係わるシステム例の高レベルブロック図である。
【図２】本発明の一実施例に係わる別のシステム例の高レベルブロック図である。
【図３】本発明の一実施例に係わる高レベルのデータフロー図である。
【図４】本発明の一実施例に係わる、空のオブジェクト検出プロセスの高レベルフローチャートである。
【図５】本発明の一実施例に係わる、空のオブジェクト検出プロセスの高レベルブロック図である。
【図６】本発明の一実施例に従い、フォーマット化されたドキュメントオブジェクトタイプが空であるかどうかを検出するためのプロセス例の高レベルフローチャートである。
【図７】本発明の一実施例に従い、フォーマット化されたドキュメントオブジェクトタイプが空であるかどうかを検出するためのプロセス例の高レベルフローチャートである。
【図８】本発明の一実施例に従い、画像オブジェクトタイプが空であるかどうかを検出するためのプロセス例の高レベルフローチャートである。
【図９】本発明の一実施例に従い、ベクトルオブジェクトタイプが空であるかどうかを検出するためのプロセス例の高レベルフローチャートである。
【図１０】本発明の一実施例に従い、グラフィックオブジェクトタイプが空であるかどうかを検出するためのプロセス例の高レベルフローチャートである。
【図１１】本発明の一実施例に従い、プリンタ記述言語（ＰＤＬ）オブジェクトタイプが空であるかどうかを検出するためのプロセス例の高レベルフローチャートである。
【符号の説明】
【００５１】
１０２…アプリケーションモジュール、１１６…ダイレクト送りプリントユーティリティ（ＤＰＵ）、１０６…空のオブジェクト検出（ＥＯＤ）モジュール、１４０…通信メディア（例えば、ネットワーク）。
【図１】
2008097593.tif 000004
【図２】
2008097593.tif 000005
【図３】
2008097593.tif 000006
【図４】
2008097593.tif 000007
【図５】
2008097593.tif 000008
【図６】
2008097593.tif 000009
【図７】
2008097593.tif 000010
【図８】
2008097593.tif 000011
【図９】
2008097593.tif 000012
【図１０】
2008097593.tif 000013
【図１１】
2008097593.tif 000014