(57)【特許請求の範囲】
【請求項１】
第一の情報処理装置と、前記第一の情報処理装置から転送される印刷要求に関する印刷を印刷装置に実行させる第二の情報処理装置とを有する情報処理システムであって、
前記第一の情報処理装置は、
第一の印刷設定項目に対する値の設定を受け付ける印刷設定部と、
印刷対象の第一のデータと、前記第一の印刷設定項目に対する値とを前記第二の情報処理装置に送信する送信部とを有し、
前記第二の情報処理装置は、
前記第一の情報処理装置から受信した前記第一のデータ及び前記第一の印刷設定項目に対する値に基づいて、前記印刷装置に印刷させる印刷データを生成する印刷データ生成部と、
前記印刷装置への前記印刷データの送信制御を行う印刷データ送信制御部と、
前記印刷データ生成部によって生成された印刷データを受け取り、当該印刷データを前記印刷データ送信制御部に入力する印刷データ処理部とを有し、
前記印刷設定部は、前記第一の印刷設定項目とは別の第二の印刷設定項目に対する値を、前記印刷データ処理部に通知し、
前記印刷データ生成部は、前記第二の印刷設定項目に対する値を前記印刷データ処理部より取得し、取得された値に基づいて、前記印刷データを生成する情報処理システム。
【請求項２】
前記印刷設定部は、前記印刷データ処理部への通知ごとの識別子をＤＥＶＭＯＤＥ構造体に記録すると共に、前記識別子を指定して、前記第二の印刷設定項目に対する値を前記印刷データ処理部に通知し、
前記印刷データ処理部は、前記識別子に関連付けて、前記第二の印刷設定項目に対する値を記憶し、
前記印刷データ生成部は、前記第一の印刷設定項目に対する値を含む前記ＤＥＶＭＯＤＥ構造体に記録されている前記識別子に関連付けられている前記第二の印刷設定項目に対する値を前記印刷データ処理部より取得する請求項１記載の情報処理システム。
【請求項３】
前記第一のデータは、ＥＭＦデータを含み、
前記第二の情報処理装置の印刷データ生成部は、前記ＥＭＦデータに基づいて前記印刷装置に対応したＲＡＷデータを生成する請求項１又は２記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタに印刷を実行させる情報処理システムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）において、プリンタドライバの機能は、印刷設定の受け付け機能と、印刷対象の文書データに関する印刷データ（ＲＡＷデータ）の生成機能とに大別される。前者の機能を担う部分を、以下「印刷設定部」といい。後者の機能を担う部分を、以下「描画部」という。
【０００３】
図１は、印刷設定部と描画部との関係を示す図である。印刷設定部と描画部とは直接的にはやりとりは行わず、ＯＳからの通知に応じてそれぞれの機能に応じた処理を行う。また、印刷設定部が受け付けた印刷設定の内容は、ＤＥＶＭＯＤＥ構造体を介して描画部に伝達される。すなわち、印刷設定部は、ＯＳからの印刷設定の受け付け要求に応じ、対応するプリンタに対するプロパティダイアログを表示させる。印刷設定部は、当該プロパティダイアログに対して設定された値をＤＥＶＭＯＤＥ構造体に記録する。描画部は、ＯＳからの印刷開始要求に応じ、ＤＥＶＭＯＤＥ構造体の値を参照し、当該値に応じた印刷データを生成する。
【０００４】
一方、特許文献１には、印刷設定の値を、ＤＥＶＭＯＤＥ構造体とは別に、印刷設定保持モジュールと呼ばれるプログラムモジュールを利用して管理する技術が記載されている。
【０００５】
図２は、印刷設定保持モジュールを用いた印刷設定の管理形態を示す図である。同図では、ＤＥＶＭＯＤＥ構造体に関しては、便宜上、省略されている。
【０００６】
印刷設定部は、所定の印刷設定項目の値に関しては、印刷設定保持モジュールに通知する。印刷設定保持モジュールは、メモリに当該値を記憶する。描画部は、印刷開始要求に応じ、所定の印刷設定項目の値に関しては、印刷設定保持モジュールより取得し、当該値が反映された印刷データを生成する。
【０００７】
印刷設定保持モジュールを用いることにより、ＤＥＶＭＯＤＥ構造体に関する各種の制約に拘束されずに、より柔軟で利便性の高い印刷設定機構を実現することができる。
【０００８】
他方において、Ｗｉｎｄｏｗｓ（登録商標）の印刷システムでは、アプリケーションからの印刷指示に同期した処理においてスプールされる印刷データが、ＲＡＷ形式である動作モード（以下、「ＲＡＷモード」という。）と、ＥＭＦ（Enhanced Meta File）形式である動作モード（以下、「ＥＭＦモード」という。）とがある。プリントサーバが設置されるシステム環境（すなわち、クライアント・サーバ環境）では、ＲＡＷモードの場合とＥＭＦモードの場合とで、描画部が動作する位置が異なる。なお、以下において、ＥＭＦモードは、ＣＳＲ（Client Side Rendering）以外をいう。ＣＳＲは、Ｗｉｎｄｏｗ（登録商標）Ｖｉｓｔａ以降でサポートされている機能であり、ＣＳＲの場合は、クライアント側で描画部が動作するからである。
【０００９】
図３は、ＲＡＷモード及びＥＭＦモードにおける描画部の動作位置を説明するための図である。同図における矢印は、データの流れを示すものであり、必ずしも各部の呼び出し関係を示すものではない。
【００１０】
同図において、（Ａ）は、ＲＡＷモードの場合の印刷データの流れを示す。ＲＡＷモードの場合、アプリケーションからの印刷命令は、ＧＤＩ（Graphic Device Interface）を介して、描画部に入力される。描画部は、印刷命令に応じたＲＡＷデータを生成する。描画部によって生成されたＲＡＷデータは、スプーラによってスプールされる。スプールされたＲＡＷデータは、プリントサーバに転送され、更に、プリンタに転送されて印刷される。
【００１１】
一方、（Ｂ）は、ＥＭＦモードの場合の印刷データの流れを示す。ＥＭＦモードの場合、ＧＤＩは、アプリケーションからの印刷命令に応じ、ＥＭＦデータを生成する。ＥＭＦデータは、スプーラによってスプールされる。スプールされたＥＭＦデータは、プリントサーバに転送される。プリントサーバにおいて、ＥＭＦデータは、描画部によってＲＡＷデータに変換される。当該ＲＡＷデータは、プリンタに転送されて印刷される。
【００１２】
このように、ＲＡＷモードの場合、描画部は、クライアントＰＣにおいて動作する。一方、ＥＭＦモードの場合、描画部は、プリントサーバにおいて動作する。なお、印刷設定部に関しては、いずれの場合もクライアントＰＣにおいて動作するため、図３では省略されている。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
図３において明らかなように、ＥＭＦモードで、かつ、プリントサーバが利用されるシステム環境（以下、「ＥＭＦクライアント・サーバ環境」という。）では、印刷設定部と描画部とは、相互に異なるコンピュータにおいて動作する。したがって、斯かるシステム環境では、特許文献１に記載された印刷設定保持モジュールを有効に機能させることは困難であるという問題がある。
【００１４】
図４は、ＥＭＦクライアント・サーバ環境における印刷設定保持モジュールの問題点を説明するための図である。
【００１５】
同図に示されるように、ＥＭＦクライアント・サーバ環境において、印刷設定部は、クライアントＰＣにおける印刷設定保持モジュールに、所定の印刷設定項目の値を通知しようとする。一方、描画部は、プリントサーバにおける印刷設定保持モジュールから、所定の印刷設定項目の値を取得しようとする。印刷設定部による値の通知先と、描画部による値の取得先とは異なる。したがって、描画部は、印刷設定部が通知した値を取得することができない。
【００１６】
本発明は、上記の点に鑑みてなされたものであって、所定の印刷設定項目の値をＤＥＶＭＯＤＥ構造体を用いずに有効化することのできる情報処理システムの提供を目的とする。
【課題を解決するための手段】
【００１７】
そこで上記課題を解決するため、本発明は、第一の情報処理装置と、前記第一の情報処理装置から転送される印刷要求に関する印刷を印刷装置に実行させる第二の情報処理装置とを有する情報処理システムであって、前記第一の情報処理装置及び前記第二の情報処理装置は、前記印刷装置に印刷させる印刷データを生成する印刷データ生成部と、前記印刷装置への前記印刷データの送信制御を行う印刷データ送信制御部と、前記印刷データ送信制御部による前記印刷データの送信制御を行う前に、該印刷データに対する処理を行う印刷データ処理部とを有し、前記第一の情報処理装置は、印刷設定項目に対する値の設定を受け付け、所定の印刷設定項目に関して設定された値を、前記第二の情報処理装置の前記印刷データ処理部に通知する印刷設定部を有し、前記第二の情報処理装置の前記印刷データ生成部は、前記印刷要求に応じ、前記所定の印刷設定項目に関する値を前記第二の情報処理装置の前記印刷データ処理部より取得し、取得された値に応じた印刷データを生成する。
【発明の効果】
【００１８】
所定の印刷設定項目の値をＤＥＶＭＯＤＥ構造体を用いずに有効化することができる。
【図面の簡単な説明】
【００１９】
【図１】印刷設定部と描画部との関係を示す図である。
【図２】印刷設定保持モジュールを用いた印刷設定の管理形態を示す図である。
【図３】ＲＡＷモード及びＥＭＦモードにおける描画部の動作位置を説明するための図である。
【図４】ＥＭＦクライアント・サーバ環境における印刷設定保持モジュールの問題点を説明するための図である。
【図５】本発明の実施の形態における印刷システムの構成例を示す図である。
【図６】本発明の実施の形態におけるクライアントＰＣのハードウェア構成例を示す図である。
【図７】本発明の実施の形態におけるクライアントＰＣ及びプリントサーバの機能構成例を示す図である。
【図８】クライアントＰＣの印刷設定部とプリントサーバの描画部とランゲージモニタとの関係を説明するための図である。
【図９】印刷処理の処理手順の一例を説明するためのシーケンス図である。
【図１０】印刷ジョブと所定の印刷設定項目の値との対応関係を維持するために実行される処理手順の一例を説明するためのシーケンス図である。
【図１１】ローカル環境におけるクライアントＰＣの機能構成例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面に基づいて本発明の実施の形態を説明する。図５は、本発明の実施の形態における印刷システムの構成例を示す図である。同図において、印刷システム１は、一台以上のクライアントＰＣ１０、プリントサーバ２０、及びプリンタ３０等を含む。プリントサーバ２０、クライアントＰＣ１０、及びプリンタ３０等は、ＬＡＮ（Local Area Network）等のネットワーク（有線又は無線の別は問わない。）を介して通信可能に接続されている。
【００２１】
クライアントＰＣ１０は、ユーザによって直接利用されるコンピュータである。クライアントＰＣ１０は、文書データの印刷指示の入力を受け付け、当該文書データに関する印刷データをプリントサーバ２０に送信する。本実施の形態において、印刷システム１は、ＥＭＦモード(ＣＳＲ（Client Side Rendering）以外)が採用されていることとする。したがって、クライアントＰＣ１０は、ＥＭＦ（Enhanced Meta File）形式の印刷データ（ＥＭＦデータ）を、プリントサーバ２０に送信する。
【００２２】
プリントサーバ２０は、クライアントＰＣ１０より受信されるＥＭＦデータを、プリンタ３０が解釈可能な形式の印刷データ（ＲＡＷデータ、すなわち、ＰＤＬ（Page Description Language）データ）に変換するコンピュータである。プリントサーバ２０は、変換後のＲＡＷデータをプリンタ３０に送信する。
【００２３】
プリンタ３０は、プリントサーバ２０より受信されるＲＡＷデータを印刷する。複合機等、印刷機能以外の機能を有する画像形成装置が、プリンタ３０として用いられても良い。また、複数のプリンタ３０が、印刷システム１に含まれていてもよい。
【００２４】
なお、図５に示されるようなお、プリンタ３０サーバを経由して印刷データが転送されるシステム環境を、以下、「クライアント・サーバ環境」という。
【００２５】
図６は、本発明の実施の形態におけるクライアントＰＣのハードウェア構成例を示す図である。同図において、クライアントＰＣ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００２６】
クライアントＰＣ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってクライアントＰＣ１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００２８】
なお、プリントサーバ２０に関しても、図６と同様のハードウェア構成を有していればよい。但し、プリントサーバ２０は、表示装置１０６及び入力装置１０７を有していなくてもよい。
【００２９】
図７は、本発明の実施の形態におけるクライアントＰＣ及びプリントサーバの機能構成例を示す図である。
【００３０】
同図において、クライアントＰＣ１０は、ＯＳ１１、アプリケーション１２、ＧＤＩ１３、プリンタドライバ１４、スプーラ１５、ランゲージモニタ１６、及びポートモニタ１７等のプログラムを有する。各プログラムは、クライアントＰＣ１０のＣＰＵ１０４に処理を実行させることにより、それぞれに実装された機能を実現する。
【００３１】
ＯＳ１１は、ＯＳ（Operating System）である。本実施の形態では、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが好適である。アプリケーション１２は、印刷対象とされる文書データを生成する、ワープロソフト又は表計算ソフト等のアプリケーションプログラムである。ＧＤＩ（Graphic Device Interface）１３は、ＯＳが備えるグラフィック関数の集合であり、アプリケーション１２とプリンタドライバ１４との間を仲介する。すなわち、アプリケーション１２は、印刷対象の文書データに含まれる図形、文字、又は画像等の描画要素等に関するグラフィック関数を呼び出す。ＧＤＩ１３は、ＥＭＦモードにおいて、アプリケーション１２からの呼び出しに応じてＥＭＦデータを生成する。ＥＭＦデータは、アプリケーション１２より呼び出されたグラフィック関数に対応する描画命令の集合である。
【００３２】
プリンタドライバ１４は、いわゆるプリンタドライバである。同図において、プリンタドライバ１４は、印刷設定部１４１及び描画部１４２等を含む。印刷設定部１４１は、プリンタ３０に対応するプロパティダイアログ（設定画面）を表示させ、プロパティダイアログを介して各種の印刷設定項目の値を受け付ける。印刷設定部１４１は、受け付けた値をＤＥＶＭＯＤＥ構造体に記録する。ＤＥＶＭＯＤＥ構造体とは、Ｗｉｎｄｏｗｓ（登録商標）ＯＳにおいて、各印刷設定項目の値が記録される構造体である。
【００３３】
描画部１４２は、印刷対象の文書データに関する印刷データを生成する。但し、プリントサーバ２０が設置されたＥＭＦモードにおいて、クライアントＰＣ１０のプリンタドライバ１４の描画部１４２は、実質的には機能しない。
【００３４】
スプーラ１５は、ＥＭＦモードにおいて、ＧＤＩ１３によって生成されるＥＭＦデータを、例えば、補助記憶装置１０２にスプール（記憶）する。スプールされたＥＭＦデータは、ＯＳ１１によってプリントサーバ２０に転送される。
【００３５】
ランゲージモニタ１６は、後述されるランゲージモニタ２５と同様のプログラムモジュールである。但し、ランゲージモニタ１６は、クラインと・サーバ環境において、実施的には機能しない。
【００３６】
ポートモニタ１７は、プリンタ３０への印刷データの送信制御を行うプログラムである。但し、ポートモニタ１７は、クライアント・サーバ環境においては、実施的には機能しない。または、ポートモニタ１７が、プリントサーバ２０へＥＭＦデータを転送してもよい。
【００３７】
プリントサーバ２０は、ＯＳ２１、ＧＤＩ２２、プリンタドライバ２３、スプーラ２４、ランゲージモニタ２５、トラックＩＤ生成モジュール２６、及びポートモニタ２７等のプログラムを有する。各プログラムは、プリントサーバ２０のＣＰＵに処理を実行させることにより、それぞれに実装された機能を実現する。また、プリントサーバ２０は、印刷設定記憶部２８を有する。印刷設定記憶部２８は、例えば、プリントサーバ２０のメモリ装置又は補助記憶装置等を用いて実現可能である。
【００３８】
ＯＳ２１は、ＯＳ（Operating System）である。本実施の形態では、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが好適である。クライアントＰＣ１０より転送されるＥＭＦデータは、ＯＳ２１によって受信され、ＧＤＩ２２に入力される。
【００３９】
ＧＤＩ（Graphic Device Interface）２２は、入力されたＥＭＦデータに含まれている描画命令に対応する要求を、プリンタドライバ２３に入力する。
【００４０】
プリンタドライバ２３は、いわゆるプリンタドライバである。同図において、プリンタドライバ２３は、印刷設定部２３１及び描画部２３２等を含む。描画部２３２は、ＧＤＩ２２より入力される要求と、印刷設定部１４１が受け付けた印刷設定項目の値とに基づいて、プリンタ３０が解釈可能なＲＡＷデータを生成する。印刷設定部２３１は、印刷設定部１４１と同様の機能を有する。但し、クライアント・サーバ環境のＥＭＦモードにおいて、プリントサーバ２０の印刷設定部２３１は、実質的には機能しない。なお、プリンタドライバ２３は、プリンタドライバ１４と同じプリンタドライバでよい。例えば、ポイントアンドプリント機能を使用して、プリントサーバ２０におけるプリンタドライバ２３が、クライアントＰＣ１０にインストールされてもよい。
【００４１】
スプーラ２４は、描画部２３２によって生成されるＲＡＷデータを、例えば、プリントサーバ２０の補助記憶装置にスプールする。スプールされたＲＡＷデータは、ランゲージモニタ２５に入力される。
【００４２】
ランゲージモニタ２５は、Ｗｉｎｄｏｗｓ（登録商標）ＯＳにおいてランゲージモニタと呼ばれるプログラムモジュールである。一般的に、ランゲージモニタとは、スプーラとポートモニタとの間に位置し、スプーラより入力される印刷データ（ＲＡＷデータ）に関して処理を実行し、処理後の印刷データをポートモニタに出力する。ランゲージモニタは、例えば、プリンタのベンダ等が自由に実装することができる。すなわち、スプーラにスプールされた印刷データがポートモニタによって送信されるまでの間において、印刷データの加工、ログの記録、プリンタとの双方向の通信等、独自の実装を行うことができる。したがって、新たな機能が実装されたランゲージモニタをインストールすることにより、印刷システムの機能拡張を比較的容易に図ることができる。
【００４３】
本実施の形態のランゲージモニタ２５は、独自の実装として、印刷設定保持部２５１を有する。印刷設定保持部２５１は、印刷設定部１４１が値の設定を受け付ける印刷設定項目のうちの所定の印刷設定項目に関して、その値を保持する。より詳しくは、印刷設定保持部２５１は、当該所定の印刷設定項目の値を印刷設定記憶部２８に記憶させる。当該所定の印刷設定項目は、ＤＥＶＭＯＤＥ構造体に値が設定される印刷設定項目と重複していてもよいし、排他的であってもよい。また、当該所定の印刷設定項目は、ＤＥＶＭＯＤＥ構造体に値が設定される全ての印刷設定項目を含んでいてもよい。所定の印刷設定項目の具体例としては、印刷権限等を判断するためのユーザ名及びパスワード等が挙げられるが、他の項目が所定の印刷設定項目とされてもよい。
【００４４】
トラックＩＤ生成モジュール２６は、印刷設定保持部２５１が保持する所定の印刷設定項目の値に関して、各印刷ジョブ（各印刷データ）との関連又は対応を識別するためのＩＤ（以下、「トラックＩＤ」という。）を生成する。すなわち、印刷設定保持部２５１は、トラックＩＤに関連付けて、所定の印刷設定項目の値を印刷設定記憶部２８に記憶する。
【００４５】
ポートモニタ２７は、スプーラ２４にスプールされ、ランゲージモニタ２５を介して入力されるＲＡＷデータに関して、プリンタ３０への送信制御を行う。
【００４６】
続いて、印刷設定部１４１、描画部２３２、及びランゲージモニタ２５（印刷設定保持部２５１）等の関係について説明する。
【００４７】
図８は、クライアントＰＣの印刷設定部とプリントサーバの描画部とランゲージモニタとの関係を説明するための図である。
【００４８】
クライアントＰＣ１０において、印刷設定部１４１は、ランゲージモニタ２５のＡＰＩ（Application Program Interface）を用いて、ランゲージモニタ２５に対して所定の印刷設定項目の値を通知する。同図では、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数が呼び出される例が示されている。例えば、当該関数の引数に、所定の印刷設定項目の値が指定される。クライアント・サーバ環境において、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数の呼び出しは、ＯＳ１１によって、プリンタ３０サーバのランゲージモニタ２５に通知される。すなわち、ＯＳ１１は、ＲＰＣ（Remote Procedure Call）によって、プリントサーバ２０のランゲージモニタ２５のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数を呼び出す。なお、クライアント・サーバ環境において、プリントサーバ２０のランゲージモニタ２５のＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数がＲＰＣによって呼び出されるのは、ＯＳ１１の仕様であって、印刷設定部１４１が関与するところではない。すなわち、印刷設定部１４１は、プリントサーバ２０のランゲージモニタ２５の存在を意識しているわけではなく、クライアントＰＣにおけるランゲージモニタが有効な場合と同様に、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数を呼び出す。
【００４９】
当該関数の呼び出しに応じ、ランゲージモニタ２５の印刷設定保持部２５１は、例えば、当該関数の引数に指定されている所定の印刷設定項目の値を、印刷設定記憶部２８に記憶する。
【００５０】
一方、プリントサーバ２０において、描画部２３２は、ランゲージモニタ２５のＡＰＩを用いて、所定の印刷設定項目の値の取得をランゲージモニタ２５に要求する。同図では、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数が呼び出される例が示されている。当該関数の呼び出しに応じ、ランゲージモニタ２５の印刷設定保持部２５１は、印刷設定記憶部２８に記憶されている、所定の印刷設定項目の値を、当該関数の引数を介して描画部２３２に返却する。
【００５１】
上記のように、本実施の形態では、ランゲージモニタ２５を介して、印刷設定部１４１と描画部２３２との間で、所定の印刷設定項目の値が共有される。すなわち、ランゲージモニタ２５を介して、印刷設定部１４１から描画部２３２へ、所定の印刷設定項目の値が伝達される
以下、印刷システム１が実行する処理手順について説明する。図９は、印刷処理の処理手順の一例を説明するためのシーケンス図である。なお、同図は、印刷処理における各プログラム間の全てのやりとりを記述したものではない。一部のやりとりに関しては、便宜上、省略されている。
【００５２】
アプリケーション１２は、プリンタ３０のプロパティダイアログの表示指示をユーザより受け付けると、ＯＳ１１に対して、印刷設定の受け付けを要求する（Ｓ１０１）。この際、アプリケーション１２は、印刷設定項目の値等を格納するためのＤＥＶＭＯＤＥ構造体を生成し、当該ＤＥＶＭＯＤＥ構造体をＯＳ１１に渡す。ＤＥＶＭＯＤＥ構造体の生成に際し、アプリケーション１２は、設定可能な項目及びその初期値等の情報を印刷設定部１４１問い合わせ、当該情報に基づいてデフォルトの設定内容をＤＥＶＭＯＤＥ構体に設定する。
【００５３】
続いて、ＯＳ１１は、アプリケーション１２からの要求に応じ、プリンタドライバ１４の印刷設定部１４１に対し、印刷設定の受け付けを要求する（Ｓ１０２）。この際、アプリケーション１２から渡されたＤＥＶＭＯＤＥ構造体が、印刷設定部１４１に渡される。
【００５４】
印刷設定部１４１は、当該要求に応じ、プロパティダイアログを表示装置１０６に表示させ、各印刷設定項目に対する値の設定を受け付ける（Ｓ１０３）。プロパティダイアログは、プリンタ３０に対応した印刷設定項目を設定可能なように構成されている。印刷設定部１４１は、プロパティダイアログを介して受け付けた値を、ＤＥＶＭＯＤＥ構造体に記録（保存）する。但し、所定の印刷設定項目の値がプロパティダイアログを介して設定される場合、当該値は、必ずしもＤＥＶＭＯＤＥ構造体に記録されなくてもよい。例えば、印刷設定部１４１が、メモリ装置１０３に記憶しておいてもよい。
【００５５】
続いて、印刷設定部１４１は、ステップＳ１０２の要求に対する応答と共に、ＤＥＶＭＯＤＥ構造体をＯＳ１１に返却する（Ｓ１０４）。続いて、ＯＳ１１は、ステップＳ１０１の要求に対する応答と共に、ＤＥＶＭＯＤＥ構造体をアプリケーション１２に返却する（Ｓ１０５）。
【００５６】
続いて、アプリケーション１２は、印刷の開始指示をユーザより受け付けると、ＯＳ１１に対して、印刷の開始を指示する（Ｓ１０６）。当該指示と共に、ＤＥＶＭＯＤＥ構造体もＯＳ１１に渡される。続いて、ＯＳ１１は、当該指示に応じ、印刷設定部１４１に対して、印刷準備の事前通知を送信する（Ｓ１０７）。当該事前通知と共に、ＤＥＶＭＯＤＥ構造体も印刷設定部１４１に渡される。当該事前通知は、これから描画部１４２に対して印刷準備要求を行うことを予め印刷設定部１４１に通知し、印刷準備要求の前に印刷設定部１４１において実行すべき処理があれば当該通知の時点で当該処理を実行できるようにするためのものである。当該事前通知は、例えば、Ｗｉｎｄｏｗｓ（登録商標）ＯＳのＤＤＩ（Device Driver Interface）であるＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）関数に「ＤＯＣＵＭＥＮＴＥＶＥＮＴ＿ＣＲＥＡＴＥＤＣＰＲＥ」が指定され呼び出されることによって行われる。なお、同図では、描画部１４２に対する印刷準備要求は、便宜上、省略されている。
【００５７】
印刷設定部１４１は、当該事前通知に応じ、今回の印刷ジョブを識別するための識別子（以下、「ジョブ識別子」という。）を生成し、渡されたＤＥＶＭＯＤＥ構造体にジョブ識別子を記録する（Ｓ１０８）。例えば、ジョブ識別子は、ＤＥＶＭＯＤＥ構造体のプライベート領域に記録される。なお、ジョブ識別子は、トラックＩＤとは異なる識別子である。
【００５８】
続いて、印刷設定部１４１は、ランゲージモニタ２５のＡＰＩを呼び出すことにより、所定の印刷設定項目の値とジョブ識別子とを、ランゲージモニタ２５に通知する（Ｓ１０９）。すなわち、図８において説明したように、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数のＲＰＣによって、所定の印刷設定項目の値とジョブ識別子とが、ランゲージモニタ２５に通知される。当該関数の呼び出しに応じ、ランゲージモニタ２５の印刷設定保持部２５１は、例えば、当該関数の引数に指定されている所定の印刷設定項目の値を印刷設定記憶部２８に記憶する。
【００５９】
なお、印刷設定部１４１は、ステップＳ１０９の直前で、所定の印刷設定項目の値を受け付けるためのダイアログを表示装置１０６に表示させ、当該ダイアログを介して、当該値を受け付けてもよい。すなわち、所定の印刷設定項目の値の受け付けは、プロパティダイアログを介して行われてもよいし、印刷開始指示後に他のダイアログ等を介して行われてもよい。又は、所定の印刷設定項目の値は、所定のファイル等に記録されていてもよい。この場合、印刷設定部１４１は、所定の印刷設定項目の値を当該ファイルより読み込み、ランゲージモニタ２５に通知する。
【００６０】
続いて、印刷設定部１４１は、印刷準備前通知に対する応答と共に、ジョブ識別子が記録されたＤＥＶＭＯＤＥ構造体をＯＳ１１に返却する（Ｓ１１０）。続いて、ＯＳ１１は、当該応答に応じ、返却されたＤＥＶＭＯＤＥ構造体をアプリケーション１２に返却する（Ｓ１１１）。
【００６１】
続いて、アプリケーション１２は、ＯＳ１１に対して、描画処理命令を入力する（Ｓ１１２）。厳密には、ＧＤＩ１３のグラフィック関数がアプリケーション１２によって呼び出される。呼び出されるグラフィック関数は、印刷対象の文書データの内容に依存する。ＯＳ１１（ＧＤＩ１３）は、呼び出されたグラフィック関数に応じたＥＭＦデータを生成する（Ｓ１１３）。
【００６２】
描画処理命令の入力が終了すると、アプリケーション１２は、ＯＳ１１に対して、印刷の終了を通知する（Ｓ１１４）。当該通知に応じ、ＯＳ１１は、ステップＳ１１３において生成されたＥＭＦデータ、及びＤＥＶＭＯＤＥ構造体等を含む印刷要求を、プリントサーバ２０に送信する（Ｓ１１５）。
【００６３】
当該ＥＭＦデータ及びＤＥＶＭＯＤＥ構造体等は、プリントサーバ２０のＯＳ２１によって受信される。ＯＳ２１は、受信されたＥＭＦデータに基づく印刷処理の実行をプリンタドライバ２３の描画部２３２に要求する（Ｓ１２１）。厳密には、受信されたＥＭＦデータは、ＧＤＩ２２に入力され、ＧＤＩ２２から描画部２３２に対して印刷処理の実行が要求される。当該要求は、例えば、ＤＤＩ（Device Driver Interface）であるＤｒｖＳｔａｒｔＤｏｃ（）関数が呼び出されることよって行われる。
【００６４】
続いて、描画部２３２は、ランゲージモニタ２５に対して、所定の印刷設定項目の値の取得を要求する（Ｓ１２２）。すなわち、図８において説明したように、ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数が呼び出される。当該関数の呼び出しに応じ、ランゲージモニタ２５の印刷設定保持部２５１は、例えば、印刷設定記憶部２８に記憶されている、所定の印刷設定項目の値を、当該関数の引数を介して描画部２３２に返却する（Ｓ１２３）。
【００６５】
続いて、描画部２３２は、必要に応じて、ランゲージモニタ２５より取得された値を、ＯＳ２１によって受信されているＤＥＶＭＯＤＥ構造体に反映させる（Ｓ１２４）。すなわち、所定の印刷設定項目に関して、ＤＥＶＭＯＤＥ構造体との間に重複項目が有る場合、当該重複項目に関して、ランゲージモニタ２５より取得された値がＤＥＶＭＯＤＥ構造体に上書きされる。なお、重複項目でない項目に関しては、ＤＥＶＭＯＤＥ構造体に反映せずに、描画部２３２が保持しておいてもよい。
【００６６】
続いて、描画部２３２は、ＥＭＦデータ、ＤＥＶＭＯＤＥ構造体、及び自らが保持している所定の印刷設定項目の値等に基づいて、ＲＡＷデータを生成する（Ｓ１２５）。描画部２３２は、生成したＲＡＷデータをスプーラ２４に入力し（Ｓ１２６）、印刷処理の実行要求に対する応答をＯＳ２１に返却する（Ｓ１２７）。
【００６７】
一方、スプーラ２４にスプールされたＲＡＷデータは、ランゲージモニタ２５及びポートモニタ２７を経由してプリンタ３０に送信される（Ｓ１２８）。プリンタ３０は、当該ＲＡＷデータが示す画像を印刷用紙に印刷する。
【００６８】
ところで、印刷設定記憶部２８には、複数の印刷ジョブ（ＥＭＦデータ）に関して、所定の印刷設定項目の値が記憶されうる。したがって、描画部２３２は、処理対象の印刷ジョブに対応した値をランゲージモニタ２５から取得する必要がある。そこで、印刷ジョブと所定の印刷設定項目の値との対応関係を維持するために実行される処理について説明する。
【００６９】
図１０は、印刷ジョブと所定の印刷設定項目の値との対応関係を維持するために実行される処理手順の一例を説明するためのシーケンス図である。同図中、括弧内のステップ番号は、図９において対応するステップのステップ番号を示す。括弧が付与されていないステップは、便宜上、図９において省略されたステップである。
【００７０】
ステップＳ２０１において、印刷設定部１４１は、ランゲージモニタ２５のＡＰＩ（ＳｅｎｄＲｅｃｖＢｉｄｉＤａｔａＦｒｏｍＰｏｒｔ（）関数）を呼び出すことにより、所定の印刷設定項目の値とジョブ識別子とを、ランゲージモニタ２５に通知する。
【００７１】
当該通知に応じ、ランゲージモニタ２５の印刷設定保持部２５１は、トラックＩＤの生成をトラックＩＤ生成モジュール２６に要求する（Ｓ２０２）。トラックＩＤ生成モジュール２６は、トラックＩＤを生成し、生成されたトラックＩＤを印刷設定保持部２５１に返却する（Ｓ２０３）。なお、トラックＩＤは、ステップＳ２０１の各通知を相互に識別可能であれば、どのような方法で生成されてもよい。続いて、印刷設定保持部２５１は、ステップＳ２０１において受信されたジョブ識別子と、生成されたトラックＩＤとを関連付けて保持しておく（Ｓ２０４）。例えば、当該ジョブ識別子と当該トラックＩＤとの関連情報がメモリ装置１０３に記憶される。続いて、印刷設定保持部２５１は、当該トラックＩＤに関連付けて、所定の印刷設定項目の値を印刷設定記憶部２８に記憶する（Ｓ２０５）。
【００７２】
一方、描画部２３２は、図９のステップＳ１２１の印刷処理の実行要求に応じ、トラックＩＤの取得をランゲージモニタ２５に要求する（Ｓ２１１）。当該要求には、ＯＳ２１によって受信されているＤＥＶＭＯＤＥ構造体に含まれているジョブ識別子が指定される。当該要求に応じ、ランゲージモニタ２５の印刷設定保持部２５１は、指定されたジョブ識別子に関連付けて保持しているトラックＩＤを描画部２３２に返却する（Ｓ２１２）。
【００７３】
続いて、描画部２３２は、当該トラックＩＤを指定して、所定の印刷設定項目の値の取得をランゲージモニタ２５に要求する（Ｓ２１３）。ランゲージモニタ２５の印刷設定保持部２５１は、当該要求に応じ、当該トラックＩＤに関連付けられている所定の印刷設定項目の値を印刷設定記憶部２８より取得する（Ｓ２１４、Ｓ２１５）。続いて、印刷設定保持部２５１は、取得された値を、描画部２３２に返却する（Ｓ２１６）。
【００７４】
以上の処理によって、描画部２３２は、各印刷ジョブ（ＥＭＦデータ）に対応する所定の印刷設定項目の値を入手することができる。ステップＳ１１５において受信されたＥＭＦデータと、ＤＥＶＭＯＤＥ構造体との関連はＯＳ２１によって維持されており、ＤＥＶＭＯＤＥ構造体と所定の印刷設定項目との対応が分かるということは、ＥＭＦデータと所定の印刷設定項目との対応が分かるということと同義だからである。
【００７５】
なお、上記では、ジョブ識別子とトラックＩＤとを関連付け、トラックＩＤと所定の印刷設定項目の値とを関連付けることにより、ジョブ識別子と所定の印刷設定項目の値とが間接的に関連付けられる例を示した。但し、ジョブ識別子と所定の印刷設定項目の値とが直接的に関連付けられてもよい。具体的には、ステップＳ２０５において、ステップＳ２０１で受信されたジョブ識別子に関連付けて、所定の印刷設定項目の値が印刷設定記憶部２８に記憶されてもよい。この場合、ステップＳ２１３において、描画部２３２は、ＯＳ２１によって受信されているＤＥＶＭＯＤＥ構造体に含まれているジョブ識別子を指定して、所定の印刷設定項目の値の取得を要求すればよい。したがって、この場合、トラックＩＤは不要となる。すなわち、ステップＳ２０２〜Ｓ２０４、Ｓ２１１、及びＳ２１２は実行されなくてもよい。
【００７６】
上述したように、本実施の形態によれば、クライアントＰＣ１０の印刷設定部１４１及びプリントサーバ２０の描画部２３２の双方よりアクセス可能なランゲージモニタ２５において所定の印刷設定項目の値が保持される。したがって、所定の印刷設定項目に関して、ＤＥＶＭＯＤＥ構造体を用いなくても、印刷設定部１４１が受け付けた値を描画部２３２に伝達することができる。すなわち、所定の印刷設定項目の値を、ＤＥＶＭＯＤＥ構造体を用いなくても有効化することができる。
【００７７】
特に、ＥＭＦモードの場合は、印刷設定部１４１と描画部２３２とは、異なるコンピュータ上で動作する。このような場合であっても、ランゲージモニタ２５は、印刷設定部１４１及び描画部２３２の双方よりアクセス可能であるため、上記効果を得ることができる。
【００７８】
また、ランゲージモニタ２５に所定の印刷設定項目の値の保持が要求される単位ごとに、所定の印刷設定項目の値には識別子（ジョブ識別子又はトラックＩＤ）が付与され保持される。したがって、描画部２３２は、各印刷ジョブに関して、それぞれに対応した所定の印刷設定項目の値を区別することができる。
【００７９】
ところで、図８において、描画部１４２は、呼び出し先がプリントサーバ２０におけるランゲージモニタ２５であるかローカル（クライアントＰＣ１０内）のランゲージモニタ１７であるかは意識することはない。クライアント・サーバ環境において、プリントサーバ２０のランゲージモニタ２５のＡＰＩに関するＲＰＣは、ＯＳ１１によって自動的に実行されるからである。
【００８０】
このことは、クライアント・サーバ環境でないシステム環境、すなわち、クライアントＰＣ１０において印刷設定部１４１及び描画部２３２の双方が実質的に機能するＥＭＦモードのシステム環境（以下、「ローカル環境」という。）でも、各プログラムに変更を加える必要は無いことを意味する。環境の違いは、ＯＳ１１によって吸収されるからである。
【００８１】
図１１は、ローカル環境におけるクライアントＰＣの機能構成例を示す図である。図１１中、図７と同一部分には同一符号を付している。同図において、ＧＤＩ１３は、図７のＧＤＩ１３及びＧＤＩ２２が実行していた処理を行う。描画部１４２は、図７の描画部２３２が実行していた処理を行う。スプーラ１５は、図７のスプーラ１５及びスプーラ２４が実行していた処理を行う。ランゲージモニタ１６は、図７のランゲージモニタ２５と同様の構成を有し、ランゲージモニタ２５が実行していた処理を行う。ポートモニタ１７は、図７のポートモニタ２７が実行していた処理を行う。
【００８２】
このように、本実施の形態は、クライアント・サーバ環境及びローカル環境の双方に対して有効である。
【００８３】
なお、本実施の形態において、クライアント装置１０は、第一の情報処理装置の一例である。プリントサーバ２０は、第二の情報処理装置の一例である。プリンタ３０は、印刷装置の一例である。描画部１４２及び描画部２３２は、印刷データ生成部の一例である。ポートモニタ１７及びポートモニタ２７は、印刷データ送信制御部の一例である。ランゲージモニタ１６及びランゲージモニタ２５は、印刷データ処理部の一例である。
【００８４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８５】
１            印刷システム
１０          クライアントＰＣ
１１          ＯＳ
１２          アプリケーション
１３          ＧＤＩ
１４          プリンタドライバ
１５          スプーラ
１６          ランゲージモニタ
１７          ポートモニタ
２０          プリントサーバ
２１          ＯＳ
２２          ＧＤＩ
２３          プリンタドライバ
２４          スプーラ
２５          ランゲージモニタ
２６          トラックＩＤ生成モジュール
２７          ポートモニタ
２８          印刷設定記憶部
３０          プリンタ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
１４１        印刷設定部
１４２        描画部
２３１        印刷設定部
２３２        描画部
２５１        印刷設定保持部
Ｂ            バス
【先行技術文献】
【特許文献】
【００８６】
【特許文献１】特開２０１０−６６８７６号公報
【図１】
0005961937.tif 000002
【図２】
0005961937.tif 000003
【図３】
0005961937.tif 000004
【図４】
0005961937.tif 000005
【図５】
0005961937.tif 000006
【図６】
0005961937.tif 000007
【図７】
0005961937.tif 000008
【図８】
0005961937.tif 000009
【図９】
0005961937.tif 000010
【図１０】
0005961937.tif 000011
【図１１】
0005961937.tif 000012