(57)【要約】【課題】  サーバとクライアントとが連携して生成した印刷データに基づく印刷を行うに際し、印刷に関する情報をクライアントのユーザに報知できるようにする。【解決手段】  サーバコンピュータ１５００は、クライアントコンピュータ１０００で作成された印刷データの処理時に、クライアントコンピュータ１０００に伝えるべき情報が得られた場合、その印刷データにメッセージ（ＭＳＧ）を追加してデバイス１８００に送信する。デバイス１８００は、印刷データにＭＳＧが付いている場合、ＭＳＧを作成しサーバコンピュータ１５００に送信し、サーバコンピュータ１５００は、そのＭＳＧをクライアントコンピュータ１０００に送信する。クライアントコンピュータ１０００は、そのＭＳＧに基づく画像を表示する。【選択図】  図５
2009098880.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末装置から送信された印刷データを、印刷装置が処理できる印刷データに変換する変換手段と、
前記変換手段により変換された印刷データを前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信する第１の送信手段とを有するサーバ装置と、
前記第１の送信手段により送信された印刷データに基づいて印刷を実行する実行手段と、
前記印刷データに基づき、エラーを検出した場合、前記クライアント端末装置にメッセージを伝えるためのデータを生成する生成手段と、
前記生成手段により生成されたデータを、前記クライアント端末装置に送信されるように前記サーバ装置に送信する第２の送信手段とを有する印刷装置とを含むことを特徴とする印刷処理システム。
【請求項２】
前記サーバ装置は、前記クライアント端末装置で生成された印刷データであるか否かを判定する判定手段と、
前記判定手段により、前記クライアント端末装置で生成された印刷データであると判定されると、前記クライアント端末装置にメッセージを伝えるためのメッセージデータを、前記印刷装置に送信する第３の送信手段とを有し、
前記印刷装置が有する前記生成手段は、前記第３の送信手段により送信されたメッセージデータに基づいて、前記クライアント端末装置にメッセージを伝えるためのデータを生成することを特徴とする請求項１に記載の印刷処理システム。
【請求項３】
前記サーバ装置は、前記クライアント端末装置にメッセージを伝えるためのメッセージデータを、前記変換手段により変換された印刷データに付加する付加手段を有し、
前記付加手段によりデータが付加された印刷データを、前記印刷装置に送信することを特徴とする請求項２に記載の印刷処理システム。
【請求項４】
前記印刷装置は、前記第１の送信手段により送信された印刷データを保存する保存手段と、
前記第２の送信手段によりデータが送信された後に、前記クライアント端末装置から、前記保存手段により保存された印刷データを補うためのデータを受信する受信手段とを有し、
前記実行手段は、前記保存手段により保存された印刷データと、前記受信手段により受信されたデータとに基づいて印刷を実行することを特徴とする請求項１〜３の何れか１項に記載の印刷処理システム。
【請求項５】
クライアント端末装置からサーバ装置に送信された印刷データを、印刷装置が処理できる印刷データに変換する変換ステップと、
前記変換ステップにより変換された印刷データを前記サーバ装置から前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信する第１の送信ステップと、
前記第１の送信ステップにより送信された印刷データに基づく印刷を前記印刷装置で実行する実行ステップと、
前記印刷データに基づき、エラーを検出した場合、前記クライアント端末装置にメッセージを伝えるためのデータを前記印刷装置で生成する生成ステップと、
前記生成ステップにより生成されたデータを、前記クライアント端末装置に送信されるように前記印刷装置から前記サーバ装置に送信する第２の送信ステップとを有することを特徴とする印刷処理方法。
【請求項６】
クライアント端末装置から送信された印刷データを、印刷装置が処理できる印刷データに変換する変換ステップと、
前記変換ステップにより変換された印刷データを前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信することを指示する送信ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項７】
クライアント端末装置から送信された印刷データを、印刷装置が処理できる印刷データに変換する変換手段と、
前記変換手段により変換された印刷データを前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信する送信手段とを有することを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷処理システム、印刷処理方法、及びコンピュータプログラムに関し、サーバとクライアントとが連携して生成した印刷データに基づく印刷を行うために用いて好適なものである。
【背景技術】
【０００２】
ネットワークを用いて印刷を行うシステムの多くは、サーバクライアント環境を構築する。サーバクライアント環境の印刷システムでは、サーバは、プリンタと接続し、プリンタドライバをインストールして印刷環境を作成する。クライアントは、サーバにアクセスしてサーバが公開しているプリンタに接続する。このとき、クライアントはサーバだけを見ており、プリンタとの直接の通信を行わない。クライアントのプリンタドライバは、サーバのプリンタドライバに登録されている"クライアント向けドライバセット"を使用するため、サーバのプリンタドライバとクライアントのプリンタドライバとの整合性は確保される。サーバのＯＳ（Operating System）とクライアントのＯＳとが同じであれば、クライアントにはサーバと同じプリンタドライバがインストールされる。
【０００３】
サーバクライアント環境では、印刷設定後のプリンタ向けのデータ変換をサーバで行うサーバレンダリングで印刷することができる（特許文献２を参照）。サーバレンダリングでは、印刷時の処理の一部をサーバに任せることができるため、クライアントにとっては短時間で印刷を終了することができる。また、サーバレンダリングでは、サーバの性能を良くすることで、印刷終了までの時間を短縮することができる。つまり、多数のクライアントがある環境において、少ないコストで印刷速度を上げることができる。
サーバクライアント環境でクライアントの表示装置に情報を表示する方法としては、次のような方法が一般的である。まず、クライアントをリスナとしてサーバに事前に登録しておく。そして、サーバは、共有リソースから送られてきた送信者情報とリスナ登録情報とから適切なクライアントを判断し、そのクライアントに情報を送りクライアントの表示装置に表示する（特許文献１を参照）。
【０００４】
【特許文献１】特開２００４−３１０７４５号公報
【特許文献２】特開２００４−３０３２５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した従来の技術では、送信者とクライアントとの関連しか考慮していなかったため、情報伝達が必要なクライアントを状況に応じて特定して、情報伝達が必要なクライアントだけに情報を送信することができなかった。
また、前述した従来の技術では、プリンタドライバが更新されてもサーバとクライアントとでプリンタドライバの整合性がとれるようにし、サーバのプリンタドライバとクライアントのプリンタドライバとで連携して印刷データの処理をしている。しかしながら、前述した従来の技術は、サーバからクライアントに処理ステータス等の情報を伝える仕組みではないため、エラー等の情報は、処理が行われているコンピュータの表示装置に表示される。例えば、ユーザがクライアントで作成した印刷データの処理がサーバで止まっても、そのことを示すエラーの表示はクライアントの表示装置で行われず、サーバの表示装置で行われる。そのため、ユーザは自分にとって必要な情報を適切に受け取ることができず負担になっていた。
【０００６】
本発明は、このような問題点に鑑みてなされたものであり、サーバとクライアントとが連携して生成した印刷データに基づく印刷を行うに際し、印刷に関する情報をクライアントのユーザに報知できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の印刷処理システムは、クライアント端末装置から送信された印刷データを、印刷装置が処理できる印刷データに変換する変換手段と、前記変換手段により変換された印刷データを前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信する第１の送信手段とを有するサーバ装置と、前記第１の送信手段により送信された印刷データに基づいて印刷を実行する実行手段と、前記印刷データに基づき、エラーを検出した場合、前記クライアント端末装置にメッセージを伝えるためのデータを生成する生成手段と、前記生成手段により生成されたデータを、前記クライアント端末装置に送信されるように前記サーバ装置に送信する第２の送信手段とを有する印刷装置とを含むことを特徴とする。
本発明のサーバ装置は、クライアント端末装置から送信された印刷データを、印刷装置が処理できる印刷データに変換する変換手段と、前記変換手段により変換された印刷データを前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信する送信手段とを有することを特徴とする。
【０００８】
本発明の印刷処理方法は、クライアント端末装置からサーバ装置に送信された印刷データを、印刷装置が処理できる印刷データに変換する変換ステップと、前記変換ステップにより変換された印刷データを前記サーバ装置から前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信する第１の送信ステップと、前記第１の送信ステップにより送信された印刷データに基づく印刷を前記印刷装置で実行する実行ステップと、前記印刷データに基づき、エラーを検出した場合、前記クライアント端末装置にメッセージを伝えるためのデータを前記印刷装置で生成する生成ステップと、前記生成ステップにより生成されたデータを、前記クライアント端末装置に送信されるように前記印刷装置から前記サーバ装置に送信する第２の送信ステップとを有することを特徴とする。
【０００９】
本発明のコンピュータプログラムは、クライアント端末装置から送信された印刷データを、印刷装置が処理できる印刷データに変換する変換ステップと、前記変換ステップにより変換された印刷データを前記印刷装置に送信し、ユーザへのメッセージが必要な場合、印刷装置でエラーが検出される印刷データを印刷装置に送信することを指示する送信ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、サーバ装置から印刷装置に送信された印刷データに関するデータを、クライアント端末装置に伝えるようにした。したがって、サーバ装置とクライアント端末装置とが連携して生成した印刷データに基づく印刷を行うに際し、印刷に関する情報をクライアント端末装置のユーザに報知することが可能になる。
【発明を実施するための最良の形態】
【００１１】
（第１の実施形態）
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。
図１は、印刷処理システムの構成の一例を示すブロック図である。この印刷処理システムは、クライアント端末装置の一例であるクライアントコンピュータ１０００と、サーバ装置の一例であるサーバコンピュータ１５００と、このサーバコンピュータ１５００より印刷データを受信して印刷を行うデバイス１８００とを備えている。
【００１２】
クライアントコンピュータ１０００とサーバコンピュータ１５００とにおいて、ＣＰＵ１は、ＲＡＭ２に記憶されているプログラムに従って、システムバス４に接続される各デバイスを総括的に制御している。このＲＡＭ２はまたＣＰＵ１の主メモリ、ワークエリア等としても機能している。ＲＯＭ３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ３ｂ、及び各種データを記憶するデータＲＯＭ３ｃに区分けして構成されている。
【００１３】
キーボードコントローラ（ＫＢＣ）５は、キーボード（ＫＢ）９や不図示のポインティングデバイス（マウス）からのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０への表示を制御している。ディスクコントローラ（ＤＫＣ）７は、ハードディスク等の外部メモリ１１へのアクセスを制御している。
クライアントコンピュータ１０００において、ネットワークコントローラ（ＮＷＣ）８は、双方向性インターフェースを介してサーバコンピュータ１５００に接続され、サーバコンピュータ１５００との間で通信制御処理を行う。
【００１４】
サーバコンピュータ１５００において、ネットワークコントローラ（ＮＷＣ）８は、双方向性インターフェースを介して、クライアントコンピュータ１０００とデバイス１８００に接続され、通信制御処理を行う。
外部メモリ１１は、例えばハードディスク（ＨＤ）やＤＶＤ、或いはフレキシブルディスク（ＦＤ）等である。これらの外部メモリ１１は、図示の如く、オペレーティングシステムプログラム（以下、ＯＳ）２０５をはじめ各種アプリケーション２０１、印刷処理関連プログラム２０４を記憶している他に、ユーザファイル、編集ファイル等も記憶している。各種アプリケーション２０１の例としては、図形、イメージ、文字、表等が混在した文書処理を行う文書処理アプリケーションプログラムがある。印刷処理関連プログラム２０４は、ページ記述言語を用いて記述される印刷データを生成するプログラムであって、同系列の複数のデバイスに対して共通に利用され得る。
外部メモリ１１に記憶されたアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１により実行される。またＣＰＵ１は、例えばＲＡＭ２へのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（What You See Is What You Get）を可能としている。更に、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷設定の設定画面を開き、デバイスの設定や、印刷モードの選択を含むプリンタドライバ２０４１に対する印刷処理の設定を行うことができる。クライアントコンピュータ１０００は、サーバコンピュータ１５００に比べて処理能力に劣ることが多く、印刷時のレンダリング処理はサーバコンピュータ１５００で行われる。
【００１５】
デバイス１８００において、ＣＰＵ１２は、ＲＡＭ１９に記憶されているプログラムに従って、システムバス１５に接続される各デバイスを総括的に制御している。このＲＡＭ１９はまたＣＰＵ１２の主メモリ、ワークエリア等としても機能している。ＲＯＭ１３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ１３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ１３ｂ、及び各種データを記憶するデータＲＯＭ１３ｃに区分けして構成されている。
【００１６】
操作部２１は、デバイス１８００のユーザが各種の設定を行うものである。入力部１８は、双方向性インターフェースを介してサーバコンピュータ１５００に接続され、サーバコンピュータ１５００との間で通信制御処理を行う。外部メモリ１４は、例えばハードディスク（ＨＤ）やＤＶＤ、或いはフレキシブルディスク（ＦＤ）等である。外部メモリ１４へのアクセスは、メモリコントローラ（ＭＣ）２０によって制御される。
印刷部１７は、印刷部Ｉ／Ｆを介して入力されたデータに基づいて用紙に画像を形成するプリンタエンジンを備えている。
以上のように本実施形態では、デバイス１８００がプリンタである場合を例に挙げて説明している。しかしながら、デバイス１８００はプリンタに限定されず、複合機等であってもよい。
【００１７】
図２は、所定のアプリケーション２０１及び印刷処理関連プログラム２０４を起動して、クライアントコンピュータ１０００又はサーバコンピュータ１５００のＲＡＭ２にプログラムやデータがロードされた状態でのＲＡＭ２のメモリマップの一例を示す図である。
ＲＡＭ２には、図示の如く、ＢＩＯＳ２０４０、ＯＳ２０５をはじめ、アプリケーション２０１、印刷処理関連プログラム２０４、プリントスプーラ１１４０及び関連データ２０２０がロードされている。更にＲＡＭ２には空きメモリ領域２０１０も確保されている。これにより、アプリケーション２０１及び印刷処理関連プログラム２０４が実行可能な状態となる。
【００１８】
図３は、印刷処理関連プログラム２０４の構成の一例を示すブロック図である。
印刷処理関連プログラム２０４は、プリンタドライバ２０４１と、Add-in３１００と、クライアントデータ判定部（Add-in共通）３２００とを有している。
Add-in３１００にはデータ処理部３１１０がある。データ処理部３１１０には、クライアントデータ処理部３１１１があり、クライアントデータ処理部３１１１は、クライアントデータ判定部３２００でクライアントデータと判定されたデータについてだけ処理を行う。
【００１９】
印刷処理関連プログラム２０４は、サーバコンピュータ１５００でもクライアントコンピュータ１０００でも同じ構成を有する。サーバコンピュータ１５００でレンダリング処理を行う場合（サーバレンダリングの場合）、クライアントコンピュータ１０００は、プリンタドライバ２０４１を設定すると共に、Add-in３１００の設定部を使って、印刷やAdd-in処理の方法を設定する。印刷開始指示に従って、アプリケーション２０１からプリンタドライバ２０４１に印刷データが渡される。プリンタドライバ２０４１は、受け取った印刷データと、設定された処理方法とをサーバコンピュータ１５００に送信する。このときクライアントコンピュータ１０００からサーバコンピュータ１５００に送信されるデータは、アプリケーション２０１から受け取ったままのデータになる。このため、デバイス１８００はそのデータを処理できず、またユーザが指定した設定通りには印刷されない。そこで、サーバコンピュータ１５００は、データを受け取ると、レンダリング処理を開始する。
【００２０】
図４は、サーバコンピュータ１５００で行われるレンダリング処理の一例を説明するフローチャートである。
まず、ステップＳ４１００において、サーバコンピュータ１５００は、クライアントコンピュータ１０００からデータを受け取ると、基本の印刷処理であるドライバ処理を行う。ドライバ処理とは、プリンタドライバ２０４１のデータ処理部３３２０において、印刷データを、プリンタドライバ２０４１が処理できる形式への変換する処理である。このとき、印刷色を微調整するような処理や印刷倍率の変更処理が行われることもある。
【００２１】
次に、ステップＳ４２００において、サーバコンピュータ１５００は、ステップＳ４１００でドライバ処理を行った印刷データに対して、Add-in処理を開始する。Add-in処理では、Add-in３１００が持つ機能の処理が行われる。例えば、コピー防止用の地模様を付加する処理がある。
次に、ステップＳ４３００において、サーバコンピュータ１５００は、Add-in処理の実行中に適時メッセージ（以下、必要に応じてＭＳＧと称する）の表示が必要か否かを判定する。ＭＳＧが必要か否かの判定は、例えば、あるAdd-in処理において、ユーザに伝えるべき情報が得られるか否かが判断基準となる。ユーザに伝えるべき情報としては、「ユーザが指定した設定から設定が変更される」、「ユーザの指定した設定は矛盾していて印刷できない」、「印刷ができない印刷データである」等のエラーに関する情報が代表的である。
【００２２】
この判定の結果、ＭＳＧが必要ないと判定された場合には、ステップＳ４５００に進み、サーバコンピュータ１５００は、全てのAdd-in処理が終了したか否かを判定する。この判定の結果、全てのAdd-in処理が終了していない場合には、ステップＳ４２００に進み、全てのAdd-in処理が終了するまで、ステップＳ４２００〜４５００の処理を繰り返し行う。そして、全てのAdd-in処理が終了すると、サーバコンピュータ１５００のレンダリング処理が終了する。
一方、ＭＳＧが必要であると判定された場合には、ステップＳ４４００に進む。ステップＳ４４００に進むと、サーバコンピュータ１５００は、現在処理している印刷データが、クライアントコンピュータ１０００で作成されたデータであるか否かを判定する。例えば、印刷データに、データを作成したコンピュータの情報（名称等）を入れておき、印刷データの情報と現在処理を行っているコンピュータの情報とが異なっていた場合には、クライアントコンピュータ１０００で作成された印刷データであると判定できる。
【００２３】
この判定の結果、印刷データがクライアントコンピュータ１０００で作成されたデータではない場合には、ステップＳ４４１０に進む。ステップＳ４４１０に進むと、サーバコンピュータ１５００は、サーバコンピュータ１５００が備えるＣＲＴ１０に、ユーザへのＭＳＧを表示する。そして、前述したステップＳ４５００に進み、サーバコンピュータ１５００は、全てのAdd-in処理が終了したか否かを判定する。
【００２４】
一方、印刷データがクライアントコンピュータ１０００で作成されたデータである場合には、ステップＳ４４２０に進む。ステップＳ４４２０に進むと、サーバコンピュータ１５００は、印刷不可のＭＳＧの表示が必要か否かを判定する（すなわち、サーバコンピュータ１５００は、デバイス１８００で印刷ができないような状態ことを示すＭＳＧの表示が必要か否かを判定する）。この判定の結果、印刷不可のＭＳＧの表示が必要である場合には、デバイス１８００でエラーが検出できるように印刷データにエラーを抱えた状態のまま前述したステップＳ４５００に進む。そして、サーバコンピュータ１５００は、全てのAdd-in処理が終了したか否かを判定する。
【００２５】
一方、印刷不可のＭＳＧが必要でなく、例えば単にユーザに情報を伝えたい場合は、ステップＳ４４３０に進む。ステップＳ４４３０に進むと、サーバコンピュータ１５００は、ＭＳＧを生成し、生成したＭＳＧとエラーとを含むデータを印刷データに付加する。ＭＳＧの付加は、例えば、ＭＳＧコマンドの部分にＭＳＧコードやＭＳＧ文字列を指定し、ＭＳＧコードやＭＳＧ文字列を指定したＭＳＧコマンドを印刷データに付加することで実現することができる。具体例を説明すると、「両面印刷に印刷設定を変更した」ことを伝えたいときには、ＭＳＧコマンドに「両面印刷で印刷（設定変更）」と入れる。もし、印刷設定を変更したことを示すときのＭＳＧコードが「13129：Keyword」と定義されているなら、ＭＳＧコマンドに「13129:両面印刷」を指定する。このようなＭＳＧは、例えばＸＭＬ書式で記述される。また、ステップＳ４４３０では、デバイス１８００でエラーが検出できるように印刷データにエラーを抱えたデータを追加する。たとえば、用紙無しエラーで印刷装置が止まるようなエラーが起きるデータではなく、印刷装置が止まらないエラーを起こすレンダリングが不正になるようなデータを追加する。
そして、前述したステップＳ４５００に進み、サーバコンピュータ１５００は、全てのAdd-in処理が終了したか否かを判定する。
【００２６】
図５は、印刷処理システム全体の動作の一例を説明するフローチャートである。
まず、ステップＳ５０１０において、クライアントコンピュータ１０００は、ユーザによる印刷開始指示が行われるまで待機する。印刷開始指示が行われるとステップＳ５０２０に進む。ステップＳ５０２０に進むと、クライアントコンピュータ１０００のプリンタドライバ２０４１は、アプリケーション２０１から受け取った印刷データを、スプーラを通してサーバコンピュータ１５００に送信する。このとき、印刷データの内容はアプリケーション２０１から受け取ったままであり、デバイス１８００が理解できる形に変換されていない。そこで、ステップＳ５０３０において、サーバコンピュータ１５００は、印刷データを受け取るとレンダリング処理を行う。レンダリング処理の詳細は、前述した通りである。
【００２７】
サーバコンピュータ１５００によるレンダリング処理が終了すると、ステップＳ５０４０において、サーバコンピュータ１５００のスプーラは、デバイス１８００が処理できる形に変換された印刷データをデバイス１８００に送信する。その際、クライアントコンピュータ１０００と印刷データのＩＤとの対応関係を示す対応テーブルのクライアントの対応する欄に印刷データのＩＤを追加する。
尚、図４に説明したフローチャートは、例えば、ステップＳ５０３０とステップＳ５０４０の中で実行される。また、メッセージデータの一例であるＭＳＧが生成されている場合には、ＭＳＧが付加された印刷データが、サーバコンピュータ１５００からデバイス１８００に送信される。
以上のように、少なくとも本実施形態のステップＳ５０４０において記載された技術により、第１の送信手段及び第３の送信手段が実現される。
【００２８】
次に、ステップＳ５０５０において、デバイス１８００は、印刷データを受け取ると印刷処理を開始する。
デバイス１８００の印刷処理では、まず、ステップＳ５１００において、デバイス１８００は、受け取った印刷データにＭＳＧが付いているか否かを判定する。この判定の結果、受け取った印刷データにＭＳＧが付いている場合には、印刷が不可であり、ＭＳＧをクライアントコンピュータ１０００に送信する必要があると判定し、ステップＳ５１１０に進む。ステップＳ５１１０に進むと、デバイス１８００は、ＭＳＧを作成してサーバコンピュータ１５００に送信する。このとき作成されるＭＳＧについては、図６を用いて後述する。
以上のように、少なくとも本実施形態のステップＳ５１１０において記載された技術により、第２の送信手段が実現される。
次に、ステップＳ５１２０において、サーバコンピュータ１５００のスプーラは、ＭＳＧを受信すると、どの印刷データに関するＭＳＧかを確認し、適切なクライアントコンピュータ１０００にＭＳＧを送信する。
【００２９】
次に、ステップＳ５１３０において、クライアントコンピュータ１０００は、ＭＳＧを受信すると、そのＭＳＧの内容を、クライアントコンピュータ１０００が備えるＣＲＴ１０の表示画面に表示する。
【００３０】
また、デバイス１８００は、ステップＳ５１００において、受け取った印刷データにＭＳＧが付いているか否かを判定した後、ステップＳ５２００において、受け取った全ての印刷データが、印刷可能なデータか否かを判定する。例えば、デバイス１８００における印刷処理を行った結果、エラーが発生しない場合に、受け取った全ての印刷データが、印刷可能なデータであると判定することができる。この判定の結果、受け取った印刷データが、印刷可能なデータでない場合には（エラーを含むデータの場合には）、ステップＳ５１１０に進む。この場合、ステップＳ５１１０において、デバイス１８００は、「印刷が可能でない」という印刷データのＩＤを含むＭＳＧを作成し、そのＭＳＧをサーバコンピュータ１５００に送信する。そして、ステップＳ５１２０において、サーバコンピュータ１５００のスプーラは、ＭＳＧを受信すると、どの印刷データに関するＭＳＧかを確認し適切なクライアントにＭＳＧを送信する。具体的には、クライアントコンピュータ１０００と印刷データのＩＤとは対応テーブルで管理されているので、ＭＳＧに含まれる印刷データのＩＤと対応テーブルに基づき、クライアントコンピュータ１０００を特定してＭＳＧを送信する。そして、ステップＳ５１３０において、クライアントコンピュータ１０００は、ＭＳＧを受信すると、そのＭＳＧの内容を、クライアントコンピュータ１０００が備えるＣＲＴ１０の表示画面に表示する。
【００３１】
一方、ステップＳ５２００において、受け取った印刷データが、印刷可能なデータであると判定されると、ステップＳ５２１０に進む。ステップＳ５２１０に進むと、デバイス１８００は、受け取った印刷データに基づく印刷を実行する。
【００３２】
図６は、デバイス１８００からサーバコンピュータ１５００に送信されるＭＳＧの一例を示す図である。
図６に示すように、デバイス１８００からサーバコンピュータ１５００に送信されるＭＳＧ６００のヘッダには、ＭＳＧの宛先と、印刷データを特定可能なＩＤとが記載されている。また、このＭＳＧ６００の本文には、デバイス１８００がサーバコンピュータ１５００やクライアントコンピュータ１０００に渡したい情報が記載されている。
【００３３】
以上のように本実施形態では、サーバコンピュータ１５００は、印刷データの処理時に、クライアントコンピュータ１０００のユーザに伝えるべき情報が得られたか否かを判定する。伝えるべき情報が得られた場合、サーバコンピュータ１５００は、その印刷データがクライアントコンピュータ１０００で作成されたものであるか否かを判定する。クライアントコンピュータ１０００で作成された印刷データである場合、サーバコンピュータ１５００は、その印刷データにＭＳＧを追加してデバイス１８００に送信する。デバイス１８００は、印刷データにＭＳＧが付いている場合、ＭＳＧを作成しサーバコンピュータ１５００に送信し、サーバコンピュータ１５００は、そのＭＳＧをクライアントコンピュータ１０００に送信する。クライアントコンピュータ１０００は、そのＭＳＧに基づく画像を表示する。したがって、クライアントコンピュータ１０００から指示された印刷を、サーバコンピュータ１５００とデバイス１８００とが連携して行うに際し、印刷に関する情報をクライアントコンピュータ１０００のユーザに報知することができる。すなわち、印刷時にユーザに通知すべき情報を、ユーザが操作したクライアントコンピュータ１０００に表示させることができ、ユーザの利便性を向上させることができる。
【００３４】
図７は、印刷処理システムの機能構成の一例を示す図である。図７を参照しながら、本実施形態における印刷処理システムの動作の概要をまとめて示す。
ステップＳ１：クライアントコンピュータ１０００のドライバは、印刷データをサーバに送信する。
ステップＳ２：サーバコンピュータ１５００のドライバは、ユーザの設定と異なる印刷結果になり、クライアントコンピュータ１０００にそれを通知することが必要になる場合、デバイス１８００でエラーが起きるデータを印刷データに付加する。
【００３５】
ステップＳ３：サーバコンピュータ１５００のスプーラは、クライアントコンピュータ１０００及び印刷データを識別する情報と、デバイス１８００でエラーが起きるデータを含む印刷データとをデバイス１８００に送信する。また、サーバコンピュータ１５００のスプーラは、送信する印刷データのＩＤを管理テーブルのクライアントに対応する欄に追加する。
ステップＳ４：デバイス１８００は、印刷データに基づき印刷処理した際にエラーが起きた場合、次の処理を行う。すなわち、デバイス１８００は、クライアントコンピュータ１０００及び印刷データを識別する情報を含むＭＳＧ情報をＷＳＤ(Web Services on Devices)の系を利用してサーバコンピュータ１５００に送信する。
【００３６】
ステップＳ５：サーバコンピュータ１５００のスプーラは、ＭＳＧ情報に含まれるクライアントコンピュータ１０００及び印刷データを識別する情報と、管理テーブルとに基づき、クライアントコンピュータ１０００を特定する。そして、サーバコンピュータ１５００のスプーラは、特定したクライアントコンピュータ１０００にＭＳＧ情報を送信する。
ステップＳ６：クライアントコンピュータ１０００のドライバは、サーバコンピュータ１５００から送信され、AsincUIを経由して取得したＭＳＧ情報に基づきメッセージを表示する。
【００３７】
尚、本実施形態では、ステップＳ４４２０において、印刷不可のＭＳＧの表示が必要でない場合に、ステップＳ４４３０に進み、印刷データにＭＳＧを付加するようにした。しかしながら、必ずしもこのようにする必要はない。例えば、ステップＳ４４００において、現在処理している印刷データが、クライアントコンピュータ１０００で作成されたデータであると判定されると、ステップＳ４４２０を行わずに、印刷データにＭＳＧを付加するようにしてもよい。このようにした場合には、印刷データに、印刷不可であることを示すＭＳＧが付加されることになる。
また、本実施形態では、ＭＳＧを付加した印刷データをサーバコンピュータ１５００からデバイス１８００に送信するようにしたが、それらＭＳＧと印刷データとを個別に送信するようにしてもよい。
【００３８】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、印刷不可であると判断された（ステップＳ５２００でＮｏと判断された）印刷データについては、印刷を実行しないようにした。これに対し、本実施形態では、印刷不可であると判断された印刷データであっても、同じ印刷フローの中で印刷するようにする。すなわち、第１の実施形態では、ユーザの操作したクライアントコンピュータ１０００に届いたＭＳＧが「印刷ができないデータ」である場合に、クライアントコンピュータ１０００のユーザは、再度印刷指示をする必要があった。これに対し、本実施形態では、後述するように、印刷が行えるようにするための追加データを作り、この追加データを、印刷が不可能であるとして処理済みの印刷データと合成する。これにより、クライアントコンピュータ１０００は、最初から印刷指示をする必要がなくなる。このように本実施形態と前述した第１の実施形態とは、印刷の際の処理の一部が主として異なる。したがって、本実施形態の説明において、前述した第１の実施形態と同一の部分については、図１〜図７に付した符号と同一の符号を付すこと等により、詳細な説明を省略する。
【００３９】
図８は、印刷処理システム全体の動作の一例を説明するフローチャートである。
まず、ステップＳ６０１０において、クライアントコンピュータ１０００は、ユーザによる印刷開始指示が行われるまで待機する。印刷開始指示が行われるとステップＳ６０２０に進む。ステップＳ６０２０に進むと、クライアントコンピュータ１０００のプリンタドライバ２０４１は、アプリケーション２０１から受け取った印刷データを、スプーラを通してサーバコンピュータ１５００に送信する。このとき、印刷データの内容はアプリケーション２０１から受け取ったままであり、デバイス１８００が理解できる形に変換されてはいない。そこで、ステップＳ６０３０において、サーバコンピュータ１５００は、印刷データを受け取るとレンダリング処理を行う。レンダリング処理の詳細は、第１の実施形態で説明した通りである。
【００４０】
サーバコンピュータ１５００によるレンダリング処理が終了すると、ステップＳ６０３５に進む。ステップＳ６０３５に進むと、サーバコンピュータ１５００は、デバイス１８００が処理できる形に変換された印刷データに、クライアントコンピュータ１０００を特定する情報（以下、クライアント情報と称する）を付加する。このクライアント情報によって、印刷データが、どのクライアントコンピュータ１０００からの印刷データであるのかをデバイス１８００等が識別できるようにする。
【００４１】
以上のようにしてサーバコンピュータ１５００での印刷データの処理が終了すると、ステップＳ６０４０において、サーバコンピュータ１５００のスプーラは、印刷データをデバイス１８００に送信する。
尚、図４に説明したフローチャートは、例えば、ステップＳ６０３０、Ｓ６０３５、Ｓ６０４０の中で実行される。また、ＭＳＧが生成されている場合には、ＭＳＧが付加された印刷データが、サーバコンピュータ１５００からデバイス１８００に送信される。
以上のように、少なくとも本実施形態のステップＳ６０４０において記載された技術により、第１の送信手段及び第３の送信手段が実現される。
【００４２】
次に、ステップＳ６０５０において、デバイス１８００は、印刷データを受け取ると印刷処理を開始する。
デバイス１８００の印刷処理では、まず、ステップＳ６１００において、デバイス１８００は、受け取った印刷データにＭＳＧが付いているか否かを判定する。この判定の結果、受け取った印刷データにＭＳＧが付いている場合には、ステップＳ６１１０に進み、デバイス１８００は、ＭＳＧを作成してクライアントコンピュータ１０００に送信する。このとき作成されるＭＳＧについては、図９を用いて後述する。
以上のように、少なくとも本実施形態のステップＳ６１１０において記載された技術により、第２の送信手段が実現される。
次に、ステップＳ６１２０において、クライアントコンピュータ１０００は、ＭＳＧを受信すると、そのＭＳＧに関連付けられているプログラムを起動する。ＭＳＧとプログラムとの関連付けは、ＯＳ２０５の機能を利用して予め行っておく。この関連付けは、例えば、Windows（登録商標）VISTAのAsincUIを用いて行うことができる。ここで起動されるプログラムは、デバイス１８００から受け取ったＭＳＧを表示することと、ユーザによる任意の入力を受け入れ、受け入れた入力に基づくデータのデバイス１８００への送信を指示することとができる。
【００４３】
起動されたプログラムは、ステップＳ６３００において、受信されたＭＳＧが、印刷が不可である印刷データに対して追加される追加データを要望するＭＳＧであるか否かを判定する。この判定の結果、追加データを要望するＭＳＧでない場合には、ステップＳ６３１０に進み、クライアントコンピュータ１０００は、そのＭＳＧの内容を、クライアントコンピュータ１０００が備えるＣＲＴ１０の表示画面に表示する。
【００４４】
一方、追加データを要望するＭＳＧである場合には、ステップＳ６４１０に進む。そして、クライアントコンピュータ１０００は、ＭＳＧに従ったデータの補足をユーザに求めるためのＧＵＩを、クライアントコンピュータ１０００が備えるＣＲＴ１０の表示画面に表示する。そして、クライアントコンピュータ１０００は、このＧＵＩに対するユーザの操作に基づき、ＭＳＧに従った印刷データの補足を行い、追加データを生成する。
次に、ステップＳ６４２０において、クライアントコンピュータ１０００は、デバイス１８００へ追加データを送信する。
次に、ステップＳ６４３０において、デバイス１８００は、受信した追加データと外部メモリ１４に保存されている印刷データ（ステップＳ６０４０でサーバコンピュータ１５００から送信された印刷データ）とを合成する。そして、ステップＳ６５００において、デバイス１８００は、合成したデータに基づいて印刷を実行する。
【００４５】
また、デバイス１８００は、ステップＳ６１００において、受け取った印刷データにＭＳＧが付いているか否かを判定した後、ステップＳ６２００において、受け取った全ての印刷データが、印刷可能なデータか否かを判定する。例えば、デバイス１８００における印刷処理を行った結果、エラーが発生しない場合に、受け取った全ての印刷データが、印刷可能なデータであると判定することができる。この判定の結果、受け取った印刷データが、印刷可能なデータである場合には、ステップＳ６５００に進み、デバイス１８００は、受け取った印刷データに基づく印刷を実行する。
【００４６】
一方、受け取った印刷データが、印刷可能なデータでない場合には、ステップＳ６２１０に進み、デバイス１８００は、受け取った印刷データを外部メモリ１４に一時的に保存する。印刷データの保存が終了したら、ステップＳ６１１０に進み、デバイス１８００は、ＭＳＧを作成してサーバコンピュータ１５００に送信する。
次に、ステップＳ６１２０において、クライアントコンピュータ１０００は、ＭＳＧを受信すると、関連付けのあるプログラムを起動する。起動されたプログラムは、ステップＳ６３００において、受信されたＭＳＧが、印刷が不可である印刷データに対して追加される追加データを要望するＭＳＧであるか否かを判定する。この判定の結果、追加データを要望するＭＳＧでない場合には、ステップＳ６３１０に進み、クライアントコンピュータ１０００は、そのＭＳＧの内容を、クライアントコンピュータ１０００が備えるＣＲＴ１０の表示画面に表示する。
【００４７】
一方、追加データを要望するＭＳＧである場合には、ステップＳ６４１０に進む。そして、クライアントコンピュータ１０００は、ＭＳＧに従ったデータの補足をユーザに求めるためのＧＵＩを、クライアントコンピュータ１０００が備えるＣＲＴ１０の表示画面に表示する。そして、クライアントコンピュータ１０００は、このＧＵＩに対するユーザの操作に基づき、ＭＳＧに従った印刷データの補足を行い、追加データを生成する。
次に、ステップＳ６４２０において、クライアントコンピュータ１０００は、デバイス１８００へ追加データを送信する。
次に、ステップＳ６４３０において、デバイス１８００は、受信した追加データと外部メモリ１４に保存されている印刷データ（ステップＳ６２１０で一時的に保存された印刷データ）とを合成する。そして、ステップＳ６５００において、デバイス１８００は、合成したデータに基づいて印刷を実行する。
図９は、デバイス１８００からサーバコンピュータ１５００に送信されるＭＳＧの一例を示す図である。
図９において、デバイス１８００からサーバコンピュータ１５００に送信されるＭＳＧ８００のヘッダには、ＭＳＧの宛先と、印刷データを特定可能なＩＤとが記載されている。また、このＭＳＧ８００の本文には、デバイス１８００がサーバコンピュータ１５００やクライアントコンピュータ１０００に渡したい情報が記載されている。
【００４８】
以上のように本実施形態では、デバイス１８００は、サーバコンピュータ１５００から、印刷が可能でない印刷データを受信した場合、その印刷データを一時的に保存しておく。そして、デバイス１８００は、ＭＳＧを作成してクライアントコンピュータ１０００に送信する。クライアントコンピュータ１０００は、受信したＭＳＧに予め関連付けられているプログラムを起動し、受信したＭＳＧが、一時的に保存した印刷データを補足することを促すものか否かを判定する。そして、受信したＭＳＧが、一時的に保存した印刷データを補足することを促すものである場合、クライアントコンピュータ１０００は、印刷データの補足をユーザに促し、その補足の内容を追加データとしてデバイス１８００に送信する。デバイス１８００は、一時的に保存した印刷データと、追加データとを合成し、合成したデータに基づき印刷を実行する。したがって、クライアントコンピュータ１０００のユーザは、サーバコンピュータ１５００からデバイス１８００に送信された印刷データが、印刷が可能なデータでない場合でも、最初から印刷指示をすることなく、その印刷データに基づく印刷を実行させられる。
【００４９】
（本発明の他の実施形態）
前述した本発明の実施形態における印刷処理システムを構成する各手段、並びに印刷処理方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００５０】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００５１】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図５、図７に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００５２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００５３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００５４】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００５５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００５６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００５７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００５８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００５９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００６０】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６１】
【図１】本発明の第１の実施形態を示し、印刷処理システムの構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態を示し、ＲＡＭのメモリマップの一例を示す図である。
【図３】本発明の第１の実施形態を示し、印刷処理関連プログラムの構成の一例を示すブロック図である。
【図４】本発明の第１の実施形態を示し、サーバコンピュータで行われるレンダリング処理の一例を説明するフローチャートである。
【図５】本発明の第１の実施形態を示し、印刷処理システム全体の動作の一例を説明するフローチャートである。
【図６】本発明の第１の実施形態を示し、デバイスからサーバコンピュータに送信されるＭＳＧの一例を示す図である。
【図７】本発明の第１の実施形態を示し、印刷処理システムの機能構成の一例を示す図である。
【図８】本発明の第２の実施形態を示し、印刷処理システム全体の動作の一例を説明するフローチャートである。
【図９】本発明の第２の実施形態を示し、デバイスからサーバコンピュータに送信されるＭＳＧの一例を示す図である。
【符号の説明】
【００６２】
１４  外部メモリ
２０４  印刷処理関連プログラム
１０００  クライアントコンピュータ
１５００  サーバコンピュータ
１８００  デバイス
２０４１  プリンタドライバ
３１００  Ａｄｄｉｎ
３２００  クライアントデータ判定部
【図１】
2009098880.tif 000003
【図２】
2009098880.tif 000004
【図３】
2009098880.tif 000005
【図４】
2009098880.tif 000006
【図５】
2009098880.tif 000007
【図６】
2009098880.tif 000008
【図７】
2009098880.tif 000009
【図８】
2009098880.tif 000010
【図９】
2009098880.tif 000011