(57)【要約】【課題】  オブジェクト毎に依頼すべきネットワーク上のデバイス先が変更されてしまう事態を回避して、同一のデバイスから同様のバイトマップデータを取得することで、最終的な印刷結果が変わってしまう不具合を解消することである。【解決手段】  ＣＰＵ６がレンダリングモジュールを実行して生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換する際に、印刷装置本体で処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なネットワーク１８上のデバイスを特定して、該ネットワーク１８に接続されたいずれかのデバイスにレンダリング処理を依頼し、該依頼したいずれかのデバイスから取得されるバイトマップデータをプリンタエンジン８に転送可能なビットマップデータに変換する構成を特徴とする。【選択図】  図１
2006150641.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される各種のデバイスと通信可能な印刷装置であって、
入力されたデータを印刷イメージに展開しバイトマップデータを生成するレンダリング手段と、
前記レンダリング手段で生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換するラスタライズ手段と、
前記レンダリング手段で処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なデバイスを特定して、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼する依頼手段とを有し、
前記ラスタライズ手段は、前記依頼手段により依頼したいずれかのデバイスから取得されるバイトマップデータを前記プリンタエンジンに転送可能なビットマップデータに変換することを特徴とする印刷装置。
【請求項２】
前記依頼手段は、前記レンダリング手段で処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスのオブジェクト処理能力を調査して作成されるデバイス選択テーブルを参照して、該オブジェクトをレンダリング可能なデバイスを特定することを特徴とする請求項１記載の印刷装置。
【請求項３】
前記デバイス選択テーブルには、処理すべきオブジェクトの種類毎に複数のデバイスを登録可能とすることを特徴とする請求項２記載の印刷装置。
【請求項４】
前記デバイス選択テーブルは、同一のオブジェクトに対して複数のデバイスを優先順位別に登録可能とすることを特徴とする請求項２記載の印刷装置。
【請求項５】
前記依頼手段は、前記レンダリング手段で処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスに該オブジェクトの処理が可能かどうかを問い合わせる問合せ手段と、
前記問合せ手段による問い合わせに対して可能であると応答したデバイスに対して、処理できないオブジェクトに対応するサンプルデータを応答したデバイスに転送する転送手段と、
前記転送手段により転送されるサンプルデータに対して、転送先のデバイスによりレンダリングされたバイトマップデータと該サンプルデータに対してあらかじめ登録されている期待値データとの一致度を評価する評価手段とを有し、
前記評価手段による評価結果に基づいて、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼することを特徴とする請求項１記載の印刷装置。
【請求項６】
ネットワークに接続される各種のデバイスと通信可能な印刷装置における印刷制御方法であって、
入力されたデータを印刷イメージに展開しバイトマップデータを生成するレンダリングステップと、
前記レンダリングステップで生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換するラスタライズステップと、
前記レンダリングステップで処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なデバイスを特定して、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼する依頼ステップとを有し、
前記ラスタライズステップは、前記依頼ステップにより依頼したいずれかのデバイスから取得されるバイトマップデータを前記プリンタエンジンに転送可能なビットマップデータに変換することを特徴とする印刷制御方法。
【請求項７】
前記依頼ステップは、前記レンダリングステップで処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスのオブジェクト処理能力を調査して作成されるデバイス選択テーブルを参照して、該オブジェクトをレンダリング可能なデバイスを特定することを特徴とする請求項６記載の印刷制御方法。
【請求項８】
前記デバイス選択テーブルには、処理すべきオブジェクトの種類毎に複数のデバイスを登録可能とすることを特徴とする請求項７記載の印刷制御方法。
【請求項９】
前記デバイス選択テーブルは、同一のオブジェクトに対して複数のデバイスを優先順位別に登録可能とすることを特徴とする請求項７記載の印刷制御方法。
【請求項１０】
前記依頼ステップは、前記レンダリングステップで処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスに該オブジェクトの処理が可能かどうかを問い合わせる問合せステップと、
前記問合せステップによる問い合わせに対して可能であると応答したデバイスに対して、処理できないオブジェクトに対応するサンプルデータを応答したデバイスに転送する転送ステップと、
前記転送ステップにより転送されるサンプルデータに対して、転送先のデバイスによりレンダリングされたバイトマップデータと該サンプルデータに対してあらかじめ登録されている期待値データとの一致度を評価する評価ステップとを有し、
前記評価ステップによる評価結果に基づいて、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼することを特徴とする請求項６記載の印刷制御方法。
【請求項１１】
請求項６〜１０のいずれかに記載の印刷制御方法を実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１２】
請求項６〜１０のいずれかに記載の印刷制御方法を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に接続されるいずれかのデバイスに入力された印刷データ中のオブジェクトをレンダリング処理する印刷装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムに関するものである。
【背景技術】
【０００２】
従来、ネットワークに接続されたプリンタは、ホストからレンダリング処理された印刷データをホストから受信し、印刷を行うホストベースプリンタと、ホストからページ記述言語形式の印刷データを受信し、プリンタ内でデータ解析を行いレンダリング処理して印刷を行うページ記述プリンタとが存在している。
【０００３】
一方、ダイレクトプリンタは、ページ記述言語形式（例えば、米国アドビ社のＰＤＦファイル形式や、デジタルカメラで撮像したＲＧＢ形式のビットマップもしくは圧縮画像）の印刷データをプリンタ自身がレンダリング処理を行い、プリンタ装置のみで、印刷を行うことが可能なように、レンダリング処理手段を印刷装置自体が内蔵している。
【０００４】
しかしながら、様々なフォーマットのオブジェクトをレンダリング処理してダイレクト印刷を行うためには、様々なフォーマットそれぞれに対応したレンダリング手段を印刷装置に内蔵する必要があり、多様化するフォーマットに対してすべてのレンダリング手段を印刷装置に内蔵することは処理が複雑となってしまうという問題点があった。
【０００５】
また、複雑なレンダリングを行うためには多くの処理能力が必要であり、印刷速度を保ったまま、複雑なレンダリング処理を行うためには、性能の高いレンダリング手段を印刷装置自体が持つ必要が出てきており、印刷装置のコストアップの一因となっていた。
【０００６】
そこで、印刷装置で処理できないレンダリング処理、あるいは印刷装置で処理すると時間がかかってしまうレンダリング処理を、ネットワークに接続されたデバイスで処理し、印刷装置の処理を単純化する方法が考えられている（例えば特許文献１）。
【特許文献１】特開平０７−０１３７２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら上記従来例では、印刷装置に内蔵のレンダリング処理手段で処理できないオブジェクトをネットワークに接続されている他のデバイスでレンダリング処理を行うため、印刷開始時に、ネットワーク内のデバイスの検索を行い、レンダリング処理を依頼するデバイスを決定する処理が必要となり時間がかかっていたと言う問題点や、同じ印刷対象物を印刷した場合でも、処理を依頼するデバイスが変わってしまった場合に、印刷結果が変わってしまう場合があるという欠点があった。
【０００８】
また、上記従来例では、印刷装置内蔵のレンダリング処理手段で処理できないオブジェクトをネットワークに接続されている他のデバイスでレンダリング処理を行うため、他のデバイスで行うレンダリング処理の結果が、印刷装置が期待したものであるか否か、つまり、正しく印刷できるデータであるか分からないため、実際に印刷した印刷結果が期待した出力が得られるかどうか印刷してみないと分からないという欠点があった。
【０００９】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、レンダリング手段で生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換する際に、印刷装置本体で処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なデバイスを特定して、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼し、該依頼したいずれかのデバイスから取得されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換することにより、オブジェクト毎に依頼すべきネットワーク上のデバイス先が変更されてしまう事態を回避して、同一のデバイスから同様のバイトマップデータを取得することで、最終的な印刷結果が変わってしまう不具合を解消できる印刷装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムを提供することである。
【００１０】
また、前記レンダリング手段で処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスに該オブジェクトの処理が可能かどうかを問い合わせ、該問い合わせに対して可能であると応答したデバイスに対して、処理できないオブジェクトに対応するサンプルデータを応答したデバイスに転送した後、該転送されるサンプルデータに対して、転送先のデバイスによりレンダリングされたバイトマップデータと該サンプルデータに対してあらかじめ登録されている期待値データとの一致度を評価し、該評価結果に基づいて、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼することにより、印刷装置本体で処理できないオブジェクトを少なくとも処理可能なネットワーク上のデバイスを検索した上で、サンプルデータに対するデバイスからのバイトマップデータを評価することで、正しい印刷結果を得る可能性の高いデバイスをレンダリング先に決定して、最終的な印刷結果が変わってしまう不具合を解消できる印刷装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成する本発明の印刷装置は以下に示す構成を備える。
【００１２】
ネットワークに接続される各種のデバイスと通信可能な印刷装置であって、入力されたデータを印刷イメージに展開しバイトマップデータを生成するレンダリング手段と、前記レンダリング手段で生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換するラスタライズ手段と、前記レンダリング手段で処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なデバイスを特定して、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼する依頼手段とを有し、前記ラスタライズ手段は、前記依頼手段により依頼したいずれかのデバイスから取得されるバイトマップデータを前記プリンタエンジンに転送可能なビットマップデータに変換することを特徴とする。
【００１３】
上記目的を達成する本発明の印刷制御方法は以下に示す構成を備える。
【００１４】
ネットワークに接続される各種のデバイスと通信可能な印刷装置における印刷制御方法であって、入力されたデータを印刷イメージに展開しバイトマップデータを生成するレンダリングステップと、前記レンダリングステップで生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換するラスタライズステップと、前記レンダリングステップで処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なデバイスを特定して、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼する依頼ステップとを有し、前記ラスタライズステップは、前記依頼ステップにより依頼したいずれかのデバイスから取得されるバイトマップデータを前記プリンタエンジンに転送可能なビットマップデータに変換することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、オブジェクト毎に依頼すべきネットワーク上のデバイス先が変更されてしまう事態を回避して、同一のデバイスから同様のバイトマップデータを取得することで、最終的な印刷結果が変わってしまう不具合を解消できる印刷装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムを提供することである。
【００１６】
また、印刷装置本体で処理できないオブジェクトを少なくとも処理可能なネットワーク上のデバイスを検索した上で、サンプルデータに対するデバイスからのバイトマップデータを評価することで、正しい印刷結果を得る可能性の高いデバイスをレンダリング先に決定して、最終的な印刷結果が変わってしまう不具合を解消できる。
【発明を実施するための最良の形態】
【００１７】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１８】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本発明の第１実施形態を示す印刷装置の構成を説明するブロック図である。
【００１９】
図１において、１は入力部であり、本印刷装置に対して、印刷対象のデータを入力するための入力装置である。２はFlashメモリであり、プリンタを制御するソフトウエア、印刷データを処理する印刷データ処理手段とともに、レンダリング処理の依頼先のデバイス情報が格納される。
【００２０】
３は表示部であり、入力部１から入力されたデータを確認するためのViewer機能、プリンタ装置の状態を表示する機能等を有する。４は操作部であり、入力部１から入力された入データを選択したり、印刷開始を指示する印刷ボタン等の入力手段である。５はＲＡＭであり、後述するＣＰＵ６等のワークメモリとして機能し、入力部１から入力されたデータが格納され、また、印刷データ処理されたデータが格納され、さらに、印刷装置に転送可能なデータ形式に変換されたデータが格納される。
【００２１】
６はＣＰＵであり、印刷装置の制御、印刷データ処理、入力部、操作部、表示部の制御を行う。７はネットワークＩ／Ｆであり、印刷装置はネットワークＩ／Ｆ７を経由してネットワークと接続される。８はプリンタエンジンであり、印刷可能なデータは、ＲＡＭ５からプリンタエンジン８に転送され、印刷が行われる。
【００２２】
図２は、図１に示した印刷装置を適用可能なネットワークシステムの一例を示す図である。
【００２３】
図２において、１０は印刷装置であり、他の機器と同様にネットワーク１８で接続されている。ネットワーク１８に接続されている他のデバイスとしては、携帯電話１６があり、携帯電話１６専用のオブジェクト等をデータ処理可能である。
【００２４】
１１〜１４はクライアントコンピュータで、それぞれプリンタドライバを備えて、アプリケーションからの印刷要求に従い印刷情報を生成してプリンタ１０に転送する。
【００２５】
１７はデジタルカメラで、デジタル画像データのデータ処理を行うことが可能であり、ネットワーク１８を介して通信する機能を備える。１５はサーバで、様々なフォーマットのデータを処理することが可能である。
【００２６】
なお、印刷装置１０は、印刷処理が開始されると、内蔵のデータ処理手段を用いて入力される印刷データ処理を行う。そして、ＣＰＵ６は、印刷を行う印刷データすべてが内蔵の処理装置で処理できるかどうかを判断して、処理できると判断した場合は、ネットワーク１８に接続することなく、そのまま印刷を実行する。
【００２７】
一方、内蔵の処理手段で処理できないオブジェクトが印刷データに含まれていたと判断した場合は、ネットワーク１８に接続し、上記内部機能実行手段で処理できないオブジェクトをネットワーク１８に接続されている機器で処理するために、ネットワーク１８内の機器に対して、処理代行の要求を行う。
【００２８】
ここで、処理の代行に応じた機器があった場合は、処理を依頼したオブジェクトと、処理を依頼したデバイスをテーブル２ＡとしてＦｌａｓｈメモリ２に格納する。そして、２回目以降の印刷においては、テーブル情報に従って処理を依頼するデバイスを決定する。これについては、図３を用いて詳細に解説する。
【００２９】
図３は、本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートであり、図１に示したＣＰＵ６がＦｌａｓｈメモリ２に記憶される制御プログラムをＲＡＭ５にロードして実行することで実現される。なお、（１）〜（１１）は各ステップを示す。
【００３０】
図４は、図１に示したテーブル２Ａに格納されるオブジェクト名とデバイス情報との関係を示す図であり、例えばＪＰＥＧ処理と、ＳＶＧ処理に対して、第１〜第３のデバイスとして、それぞれのデバイスＡ〜Ｅが登録されている状態に対応する。なお、同一のオブジェクト名に対して複数のデバイス情報が登録されている中で、優先順位の高いデバイスが第１のデバイスであるものとする。
【００３１】
図４に示すように、本実施形態では、デバイスＡはＪＰＥＧ処理もＳＶＧ処理も可能であり、応答速度が速く、通信コストも低いデバイスであった場合にJPEGのレンダリング処理で第１のデバイスに設定した場合には、ＳＶＧのレンダリング処理では優先順位を落とし、第３のデバイスに設定することで、異なるオブジェクトに対するレンダリング処理がデバイスＡに集中してしまうことを防止可能としているテーブル２Ａの状態に対応する。
【００３２】
先ず、印刷開始が操作部４からのキー入力で指示されると、バイトマップデータを生成するレンダリング処理が開始される。そして、印刷装置本体で処理できるオブジェクトを検索し、本体でレンダリング処理できるオブジェクトは本体でバイトマップ処理を行い（１）、データをＲＡＭ５上に格納する（２）。
【００３３】
次に、印刷装置本体で、レンダリング処理できないオブジェクトがあるかどうかの判定をＣＰＵ６が行い（３）、ここでレンダリング処理できないオブジェクトがないと判定した場合は、バイトマップデータはすべて処理できており、レンダリング処理は、終了する。
【００３４】
一方、ステップ（３）で、印刷装置本体で、レンダリング処理できないオブジェクトがあると判定した場合は、ネットワーク１８内のいずれかのデバイスでレンダリング処理を行う。最初にＦｌａｓｈメモリ２に格納されたテーブル２Ａの情報を参照し、過去の印刷時に該当するオブジェクトのレンダリング処理を依頼した情報があるかどうかを判定して（５）、テーブル２Ａに処理を依頼するオブジェクトの依頼先が保存されていると判定した場合は、ネットワーク１８を検索し、テーブル２Ａに格納されているデバイスがネットワーク１８上に存在しているかどうかをＣＰＵ６が判定して、ネットワーク１８上にテーブル２Ａに格納されているデバイスが存在していると判定した場合は、テーブル２Ａの情報に従ってオブジェクトのレンダリング処理を依頼し（７）、処理後のデータを受信し、受信したレンダリング処理が終わったデータをＲＡＭ５上に格納して（８）、ステップ（３）へ戻る。
【００３５】
一方、ステップ（５）で、処理を依頼するオブジェクトの依頼先デバイスがテーブル２Ａに格納されていなかったと判定した場合、あるいは、ステップ（６）で、格納された情報に従ってデバイスを検索した結果、デバイスが存在しなかったとＣＰＵ６が判定した場合は、ネットワーク１８内のデバイスを検索し、オブジェクトをレンダリング処理可能かを示す処理能力を調査する（９）。ここで、処理可能であると回答が得られたデバイスに関しては、Flashメモリ２のテーブル２Ａにデバイス情報とオブジェクトの種類を格納する（１０）。
【００３６】
上記の処理を行いレンダリング処理を依頼するデバイスを決定し、依頼先のデバイス情報をテーブル情報に対して更新を行い、テーブル情報に従ってネットワーク上のデバイスにレンダリング処理を依頼し（１１）、処理結果を受信し受信したデータをＲＡＭ５に格納して（８）、ステップ（３）へ戻る。
【００３７】
上記の処理をすべてオブジェクトに対して行い、レンダリング処理とテーブルの更新を行う。
【００３８】
そして、上記処理を繰り返し行い、すべてのオブジェクトのレンダリング処理が終了した後に、プリンタエンジン８を起動し印刷を開始する。そして、ＣＰＵ６は、プリンタエンジン８の同期信号に合わせて、バイトマップデータをビットマップデータに変換しながらプリンタエンジン８に送信するラスタライズ処理を行い、印刷を完了させる。
【００３９】
なお、ここで、複数のデバイスから処理が可能であると回答が得られた場合は、優先順位をつけて、今回の処理で、レンダリング処理を依頼する第１のデバイスだけでなく、処理を依頼する次の候補である第２のデバイスや第３のデバイスをテーブル２Ａに格納する。
【００４０】
これにより、次回の印刷時に前回のレンダリング処理に利用した第２のデバイス（図４参照）がネットワーク１８から切断されていた場合であっても、テーブル２Ａに保存されている第２のデバイスあるいは第３のデバイスを使ってレンダリング処理に処理を依頼することが可能となり、ネットワーク１８上のデバイスにレンダリング処理が可能かどうか調査するステップを省略することが可能となる。
【００４１】
また、印刷対象のページ内にある種類のオブジェクトが複数存在する場合に、あるオブジェクトはテーブルに格納されている第１のデバイス（図４参照）にレンダリング処理を依頼し、別のオブジェクトはテーブルに格納されている第２のデバイスに処理を依頼することで、レンダリング処理が第一のデバイスに集中することを防止することが出来る。
【００４２】
また、複数のデバイスがレンダリング処理が可能であると回答した場合に、どのデバイスを第１のデバイスに設定するかについては、ネットワークの応答速度や通信コストの少ないものを優先して優先度の高い順位に設定する。
【００４３】
また、あるオブジェクトのレンダリング処理で第１のデバイス（図４参照）に設定されたデバイスは、他のオブジェクトのレンダリング処理で処理可能であると回答が得られた場合で、複数のデバイスからレンダリング処理が可能であると回答を得た場合には、ネットワークの応答速度や通信コストが少ない場合であっても、第１のデバイスには設定せず、他のデバイスを第１のデバイスに設定することで、処理が１つのデバイスに集中することを避けることが可能である。
【００４４】
本実施形態によれば、印刷装置でレンダリング処理できないオブジェクトをネットワーク１８に接続されたデバイス（本実施形態では、クライアントコンピュータ１１〜１４、デジタルカメラ１７、携帯電話１６のいずれか）に処理を依頼しレンダリング処理を完了させる際に、テーブル２Ａの情報にもとづき処理を依頼するデバイスを決定し、テーブル２Ａに登録されているデバイスがネットワーク１８に存在しない場合や、テーブル２Ａに記載のないオブジェクトがレンダリング処理対象になった場合は、テーブル情報を更新しテーブル情報にもとづき処理を依頼するデバイスを選択し、印刷を行うことが可能となり、テーブル２Ａに記載されているオブジェクトであれば、処理を依頼するデバイスを決定するステップが省略できるため、高速な印刷が可能となりネットワークの負荷を減少させることが可能であるばかりでなく、同じ印刷を行った場合に処理を依頼するデバイスが変わってしまい、印刷結果が変わってしまうと言った不具合をなくしたり、少なくとも可能性を低くさせたりすることが可能となる。
【００４５】
〔第２実施形態〕
なお、上記第１実施形態では、図４に示すようなオブジェクト名と処理すべきデバイスとの対応テーブルを備えて、処理できないオブジェクトの処理先を自動的に決定する場合について説明したが、処理先を検索するパケットをネットワーク１８上に出力して、そのパケットに応答したデバイスに対して、あらかじめ記憶しているサンプルデータを当該デバイスに転送して、実際にレンダリングされたデータとの一致度合いをと期待値比較して評価し、サンプルデータに対して設定される期待値以上であれば、そのデバイスに処理できないオブジェクトを転送して代替処理させ、その結果を受信して印刷処理するように制御してもよい。以下、その実施形態について説明する。
【００４６】
図５は、本発明の第２実施形態を示す印刷装置の構成を説明するブロック図であり、図１と同一のものには同一の符号を付してある。
【００４７】
図５において、２２はＲＯＭで、印刷装置本体を制御するソフトウエア、印刷データを処理する印刷データ処理手段（処理モジュール）とともに、印刷データ処理のサンプルデータ２２Ａがあらかじめ格納されている。
【００４８】
上記のように構成された印刷装置において、ＣＰＵ６の制御の下で、印刷処理が開始されると、内蔵のレンダリング処理手段を用いて印刷データのレンダリング処理をＲＡＭ５のワーク上で行う。
【００４９】
印刷を行う印刷データすべてを内蔵のレンダリング処理手段で処理できる場合は、ネットワーク１８に接続することなく、印刷装置本体でレンダリング処理を行い、そのまま印刷を実行する。
【００５０】
一方、入力されるデータ中において、内蔵のレンダリング処理手段で処理できないオブジェクトが含まれていたと判定した場合は、ネットワーク１８に接続し、上記内部レンダリング手段で処理できないオブジェクトをネットワーク１８に接続されている機器でレンダリング処理するために、ネットワーク１８内の機器に対して、処理代行の要求を行う。
【００５１】
ここで、処理の代行に応じた機器があったと判定した場合は、その機器がプリンタの期待しているレンダリング処理結果を出力可能であるか調査を図６に示すフローチャートの手順に従って行う。
【００５２】
図６は、本発明に係る印刷装置における第２のデータ処理手順の一例を示すフローチャートであり、図１に示したＣＰＵ６がＲＯＭ２２に記憶される制御プログラムをＲＡＭ５にロードして実行することで実現される。なお、（２１）〜（３０）は各ステップを示す。
【００５３】
図７は、図５に示したＲＯＭ２２に記憶されるサンプルデータ２２Ａとその期待値との対応を示すテーブルの一例を示す図であり、ＲＯＭ２２に記憶されているものとする。
【００５４】
また、サンプルデータ２２Ａは、オブジェクト名毎に記憶されており、期待値と対となっている。なお、テーブルの期待値を書き換え可能（例えばユーザ設定、あるいは、管理者設定のいずれでもよい）とするように、他の記憶媒体（例えばフラッシュＲＯＭ）で構成されていてもよい。
【００５５】
印刷開始が操作部４からのキー入力で指示されると、バイトマップデータを生成するレンダリング処理が開始される。
【００５６】
そして、印刷装置本体で処理できるオブジェクトを検索し、本体で処理できる項目は本体でバイトマップ処理を行い（２１）、データをＲＡＭ５に格納する（２２）。次に、印刷装置本体で、レンダリング処理できないオブジェクトがあるかどうかの判定を行い（２３）、ここでレンダリング処理できないオブジェクトがないと判定した場合は、バイトマップデータはすべて処理できており、レンダリング処理を終えて、後述するように印刷処理を実行して（２４）、本処理を終了する。
【００５７】
一方、印刷装置本体で、レンダリング処理できないオブジェクトがあると判定した場合は、ネットワーク１８内のいずれかのデバイスでレンダリング処理を行う。
【００５８】
このため、最初にネットワーク内のデバイスに対して、オブジェクトのレンダリング処理が可能かどうか調査を行う（２５）。具体的には、ブロードキャスト等の方法を使ってネットワーク内のデバイスに対して特定のオブジェクトの処理（例えば、デジタルカメラの画像情報のフォーマットとして用いられるＪＰＥＧ形式のファイルの伸張処理）を行うことを可能かどうかを調査する。
【００５９】
ここで、図１に示したネットワーク１８内のデジタルカメラ１７が、オブジェクトの処理（ＪＰＥＧファイルの伸張）が可能であると、返事があったとＣＰＵ６が判定した場合は、デジタルカメラ１７に対して、図５に示したＲＯＭ２２に記憶されるサンプルデータ（本実施形態では、サンプルのＪＰＥＧファイル）を送信する（２６）。
【００６０】
そして、デジタルカメラ１７で処理されたサンプルデータ（伸張された画像データ）を受信した印刷装置は、処理後のサンプルデータと、ＲＯＭ２２に内蔵している期待値データとの比較を行い（２７）、結果が一致しているかどうかをＣＰＵ６が判定して（２８）、結果が一致していると判定した場合は、デジタルカメラ１７がオブジェクトの処理を行うことが適当であると判断する。
【００６１】
なお、サンプルデータ２２Ａに関しては、格納するＲＯＭ２２のサイズ、上記比較処理を行うときに生じるサンプルデータ送信と処理結果受信で必要なネットワークの負荷、印刷速度に対するオーバヘッド等を考慮して、出来るだけサイズの小さいものが望ましいが、デバイスの処理能力が期待したものか判断できるようなものにする必要がある。
【００６２】
また、期待値比較に関しては、例えば、ＪＰＥＧの伸張処理の場合には多少の色の誤差は許容したり、ベクトル計算であれば、多少の位置のずれは許容するといった処理を行うことも考えられる。
【００６３】
さらに、完全に比較データが一致しなくても、印刷して違いが分からない範囲は許容することにより、処理を行うデバイスを探しやすくすることが可能である。
【００６４】
そして、上記処理により、受信したサンプルデータの処理結果と期待値データが一致し処理を依頼したデバイスの処理が適切であるとＣＰＵ６が判断できた場合は、実際に印刷を行うオブジェクトを処理を依頼するデバイスに送信する。そして、処理を依頼されたデバイスはオブジェクトを受信し、レンダリング処理を施したデータを印刷装置に送信する。ここで、印刷装置は、レンダリング処理されたデバイスから受け取ったデータをＲＡＭ５に格納して（２９）、ステップ（２３）へ戻る。
【００６５】
一方、ステップ（２８）で、受信したサンプルデータの処理結果と期待値データが一致しなかったとＣＰＵ６が判定した場合は、処理を依頼するデバイスを変更し（３０）、他のデバイスに再度サンプルデータを送信して、ステップ（２３）へ戻る。
【００６６】
そして、上記の処理を繰り返すことで、印刷装置本体でレンダリング処理できないオブジェクトを、期待した処理可能なデバイスに依頼することが可能となり、正しくレンダリング処理することが可能となる。
【００６７】
さらに、印刷装置本体でレンダリング処理できないオブジェクトで、サンプルデータを本体内部のＲＯＭ２２に持たないオブジェクトがあった場合には、処理を中止し、ユーザにサポート外のデータであり印刷できないことを通知したり、印刷動作は行うが、サンプルデータを持たないため、期待どうりに印刷できない可能性があることをユーザに通知し、サンプルデータの比較動作を行うことなく印刷対象のオブジェクトを処理を依頼するデバイスに送信し、受信した処理後のレンダリングデータをバイトマップデータに格納する。
【００６８】
上記処理を繰り返し行い、すべてのオブジェクトのレンダリング処理が終了した後に、プリンタエンジン８を起動し印刷処理を開始する。これにより、プリンタエンジン８の同期信号に合わせて、バイトマップデータをビットマップデータに変換しながらプリンタエンジン８に送信するラスタライズ処理を行い（２４）、印刷を完了させる。
【００６９】
上記実施形態によれば、印刷装置でレンダリング処理できないオブジェクトをネットワーク１８に接続されたデバイスに処理を依頼しレンダリング処理を完了させる際に、あらかじめ記憶している最適、かつ、適量のサンプルデータ２２Ａを応答したデバイスに送信し、該デバイスから返信されるデータとＲＯＭ２２に記憶される期待値とを比較し、依頼したデバイスのレンダリング評価を行うステップを追加することにより、正しい印刷結果を得ることが可能であり、印刷を失敗する可能性を減少させることが可能である。
【００７０】
〔第３実施形態〕
以下、図８に示すメモリマップを参照して本発明に係る印刷装置で読み取り可能なデータ処理プログラムの構成について説明する。
【００７１】
図８は、本発明に係る印刷装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【００７２】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【００７３】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【００７４】
本実施形態における図３，図６に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【００７５】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７６】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７７】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００７８】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００７９】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【００８１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８４】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【００８５】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではなく、以下の実施態様も含まれることはいうまでもない。以下、その実施態様１〜１２について説明する。
【００８６】
〔実施態様１〕
ネットワークに接続される各種のデバイスと通信可能な印刷装置であって、入力されたデータを印刷イメージに展開しバイトマップデータを生成するレンダリング手段と、前記レンダリング手段で生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換するラスタライズ手段（図１または図５に示すＣＰＵ６がメモリに記憶されるデータ処理モジュールをＲＡＭ５にロードして実行することで処理する）と、前記レンダリング手段で処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なデバイスを特定して、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼する依頼手段（図１または図５に示すＣＰＵ６がメモリに記憶されるデータ処理モジュールをＲＡＭ５にロードして実行することで処理する）とを有し、前記ラスタライズ手段は、前記依頼手段により依頼したいずれかのデバイスから取得されるバイトマップデータを前記プリンタエンジンに転送可能なビットマップデータに変換することを特徴とする印刷装置。
【００８７】
これにより、オブジェクト毎に依頼すべきネットワーク上のデバイス先が変更されてしまう事態を回避して、同一のデバイスから同様のバイトマップデータを取得することで、最終的な印刷結果が変わってしまう不具合を解消できる。
【００８８】
〔実施態様２〕
前記依頼手段は、前記レンダリング手段で処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスのオブジェクト処理能力を調査して作成されるデバイス選択テーブルを参照して、該オブジェクトをレンダリング可能なデバイスを特定することを特徴とする実施態様１記載の印刷装置。
【００８９】
これにより、同一のオブジェクトを処理できる処理能力の高いデバイスをレンダリング先として特定することができる。
【００９０】
〔実施態様３〕
前記デバイス選択テーブルには、処理すべきオブジェクトの種類毎に複数のデバイスを登録可能とすることを特徴とする実施態様２記載の印刷装置。
【００９１】
これにより、同一のオブジェクトを処理できるデバイスが複数登録されていても処理能力の高いデバイスをレンダリング先として特定することができる。
【００９２】
〔実施態様４〕
前記デバイス選択テーブルは、同一のオブジェクトに対して複数のデバイスを優先順位別に登録可能とすることを特徴とする実施態様２記載の印刷装置
これにより、同一のオブジェクトを処理できるデバイスが複数登録されていても処理能力の高いデバイスであって、優先順位の高いデバイスをレンダリング先として特定することができる。
【００９３】
〔実施態様５〕
前記依頼手段は、前記レンダリング手段で処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスに該オブジェクトの処理が可能かどうかを問い合わせる問合せ手段（図１または図５に示すＣＰＵ６がメモリに記憶されるデータ処理モジュールをＲＡＭ５にロードして実行することで処理する）と、前記問合せ手段による問い合わせに対して可能であると応答したデバイスに対して、処理できないオブジェクトに対応するサンプルデータを応答したデバイスに転送する転送手段（図５に示すＣＰＵ６がメモリに記憶されるデータ処理モジュールをＲＡＭ５にロードして実行することで処理する）と、前記転送手段により転送されるサンプルデータに対して、転送先のデバイスによりレンダリングされたバイトマップデータと該サンプルデータに対してあらかじめ登録されている期待値データとの一致度を評価する評価手段（図５に示すＣＰＵ６がメモリに記憶されるデータ処理モジュールをＲＡＭ５にロードして実行することで処理する）とを有し、前記評価手段による評価結果に基づいて、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼することを特徴とする実施態様１記載の印刷装置。
【００９４】
これにより、印刷装置本体で処理できないオブジェクトを少なくとも処理可能なネットワーク上のデバイスを検索した上で、サンプルデータに対するデバイスからのバイトマップデータを評価することで、正しい印刷結果を得る可能性の高いデバイスをレンダリング先に決定して、最終的な印刷結果が変わってしまう不具合を解消できる。
【００９５】
〔実施態様６〕
ネットワークに接続される各種のデバイスと通信可能な印刷装置における印刷制御方法であって、入力されたデータを印刷イメージに展開しバイトマップデータを生成するレンダリングステップ（図３に示すステップ（１）、図６に示すステップ（２１））と、前記レンダリングステップで生成されるバイトマップデータをプリンタエンジンに転送可能なビットマップデータに変換するラスタライズステップ（図３に示すステップ（４）、図６に示すステップ（２４））と、前記レンダリングステップで処理できないオブジェクトが入力された場合に、該オブジェクトをレンダリング可能なデバイスを特定して、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼する依頼ステップ（図３に示すステップ（７）、図６に示すステップ（２６））とを有し、前記ラスタライズステップは、前記依頼ステップにより依頼したいずれかのデバイスから取得されるバイトマップデータを前記プリンタエンジンに転送可能なビットマップデータに変換することを特徴とする印刷制御方法。
【００９６】
これにより、実施態様１と同等の効果が期待できる。
【００９７】
〔実施態様７〕
前記依頼ステップは、前記レンダリングステップで処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスのオブジェクト処理能力を調査して作成されるデバイス選択テーブルを参照して、該オブジェクトをレンダリング可能なデバイスを特定することを特徴とする実施態様６記載の印刷制御方法。
【００９８】
これにより、実施態様２と同等の効果が期待できる。
【００９９】
〔実施態様８〕
前記デバイス選択テーブルには、処理すべきオブジェクトの種類毎に複数のデバイスを登録可能とすることを特徴とする実施態様７記載の印刷制御方法。
【０１００】
これにより、実施態様３と同等の効果が期待できる。
【０１０１】
〔実施態様９〕
前記デバイス選択テーブルは、同一のオブジェクトに対して複数のデバイスを優先順位別に登録可能とすることを特徴とする実施態様７記載の印刷制御方法。
【０１０２】
これにより、実施態様４と同等の効果が期待できる。
【０１０３】
〔実施態様１０〕
前記依頼ステップは、前記レンダリングステップで処理できないオブジェクトが入力された場合に、ネットワーク上の各デバイスに該オブジェクトの処理が可能かどうかを問い合わせる問合せステップ（図６に示すステップ（２５））と、
前記問合せステップによる問い合わせに対して可能であると応答したデバイスに対して、処理できないオブジェクトに対応するサンプルデータを応答したデバイスに転送する転送ステップ（図６に示すステップ（２６））と、前記転送ステップにより転送されるサンプルデータに対して、転送先のデバイスによりレンダリングされたバイトマップデータと該サンプルデータに対してあらかじめ登録されている期待値データとの一致度を評価する評価ステップ（図６に示すステップ（２７）、（２８））とを有し、前記評価ステップによる評価結果に基づいて、該ネットワークに接続されたいずれかのデバイスにレンダリング処理を依頼することを特徴とする実施態様６記載の印刷制御方法。
【０１０４】
これにより、実施態様５と同等の効果が期待できる。
【０１０５】
〔実施態様１１〕
実施態様６〜１０のいずれかに記載の印刷制御方法を実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【０１０６】
これにより、実施態様６〜１０と同等の効果が期待できる。
【０１０７】
〔実施態様１２〕
実施態様６〜１０のいずれかに記載の印刷制御方法を実行させることを特徴とするプログラム。
【０１０８】
これにより、実施態様６〜１０と同等の効果が期待できる。
【図面の簡単な説明】
【０１０９】
【図１】本発明の第１実施形態を示す印刷装置の構成を説明するブロック図である。
【図２】図１に示した印刷装置を適用可能なネットワークシステムの一例を示す図である。
【図３】本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートである。
【図４】図１に示したテーブルに格納されるオブジェクト名とデバイス情報との関係を示す図である。
【図５】本発明の第２実施形態を示す印刷装置の構成を説明するブロック図である。
【図６】本発明に係る印刷装置における第２のデータ処理手順の一例を示すフローチャートである。
【図７】図５に示したＲＯＭに記憶されるサンプルデータとその期待値との対応を示すテーブルの一例を示す図である。
【図８】本発明に係る印刷装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１１０】
１  入力部
２Ａ  テーブル
２  Ｆｌａｓｈメモリ
７  ネットワーク
８  プリンタエンジン
１０  プリンタ
１１〜１４  クライアントコンピュータ
１６  携帯電話
１７  デジタルカメラ
１８  ネットワーク
２２  ＲＯＭ
２２Ａ  サンプルデータ
【図１】
2006150641.tif 000003
【図２】
2006150641.tif 000004
【図３】
2006150641.tif 000005
【図４】
2006150641.tif 000006
【図５】
2006150641.tif 000007
【図６】
2006150641.tif 000008
【図７】
2006150641.tif 000009
【図８】
2006150641.tif 000010