(57)【特許請求の範囲】
【請求項１】
ユーザ登録用紙を独自のデータベースを用いて管理しているプリントサーバに接続され、特定の機種の印刷装置に依存しない中間データ形式の印刷ジョブを生成するプリンタドライバを備える情報処理装置であって、
ユーザが予め定義した用紙の情報をユーザ登録用紙として自装置の記憶部に登録する登録手段と、
前記印刷ジョブの印刷設定情報から用紙情報を取得する第一取得手段と、
前記第一取得手段により取得された用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得し、前記印刷設定情報の用紙情報として、前記ユーザ登録用紙の指定の代わりに当該取得された前記ユーザ登録用紙の情報を設定する設定手段と、
前記設定手段により印刷設定情報に前記ユーザ登録用紙の情報が設定された印刷ジョブを前記プリントサーバへ送信する送信手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記印刷設定情報は、印刷装置のベンダに依存しない設定項目からなる標準部と、印刷装置のベンダに依存する設定項目からなる拡張部とから構成されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記標準部の用紙情報において前記ユーザ登録用紙が指定されている場合、前記印刷ジョブの印刷設定情報から前記拡張部の出力用紙情報を取得する第二取得手段を更に有し、
前記設定手段は、前記標準部の用紙情報において指定される情報と、前記拡張部の出力用紙情報において指定される情報とが同一である場合、前記拡張部の出力用紙情報に、前記標準部の用紙情報において指定されていた前記ユーザ登録用紙を設定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記設定手段は、前記第一取得手段により取得された前記標準部の用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得して前記標準部の用紙情報に設定し、さらに前記標準部の用紙情報において指定されていた前記ユーザ登録用紙を前記拡張部の用紙情報に設定することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記ユーザ登録用紙の情報は、用紙の幅と高さの情報を含むことを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記ユーザ登録用紙の情報は、余白の情報を更に含むことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記用紙情報において前記ユーザ登録用紙が指定されている場合、ユーザに対し、用紙情報を変更して印刷を行うか否かを提示する提示手段を更に有することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記印刷設定情報は、ＤＥＶＭＯＤＥ構造体にて定義されていることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記中間データ形式は、ＥＭＦＳＰＯＯＬ形式であることを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
特定の機種の印刷装置に依存しない中間データ形式の印刷ジョブを生成するプリンタドライバを備えるクライアント装置と、ユーザ登録用紙を独自のデータベースを用いて管理しているプリントサーバと、印刷装置とを有するプリントシステムであって、
前記クライアント装置は、
ユーザが予め定義した用紙の情報をユーザ登録用紙として自装置の記憶部に登録する登録手段と、
前記印刷ジョブの印刷設定情報から用紙情報を取得する第一取得手段と、
前記第一取得手段により取得された用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得し、前記印刷設定情報の用紙情報として、前記ユーザ登録用紙の指定の代わりに当該取得された前記ユーザ登録用紙の情報を設定する設定手段と、
前記設定手段により印刷設定情報に前記ユーザ登録用紙の情報が設定された印刷ジョブを前記プリントサーバへ送信する送信手段と
を有し、
前記プリントサーバは、
前記クライアント装置から受信した印刷ジョブを記憶部にて保持する保持手段と、
受信した印刷要求に応じて、前記記憶部にて保持している前記中間データ形式の印刷ジョブを、前記印刷設定情報を用いて印刷装置に対応するデータ形式に変換し、前記印刷装置に送信する変換手段と
を有し、
前記印刷装置は、
前記プリントサーバに前記印刷要求を送信する指示手段と、
前記指示手段による印刷要求に応じて前記プリントサーバから送信された印刷ジョブを受信し、印刷を行う印刷手段と
を有することを特徴とするプリントシステム。
【請求項１１】
前記変換手段は、前記クライアント装置から受信した中間データ形式の印刷ジョブを前記印刷装置に対応するＰＤＬ形式に変換することを特徴とする請求項１０に記載のプリントシステム。
【請求項１２】
ユーザ登録用紙を独自のデータベースを用いて管理しているプリントサーバに接続され、特定の機種の印刷装置に依存しない中間データ形式の印刷ジョブを生成するプリンタドライバを備える情報処理装置の制御方法であって、
登録手段が、ユーザが予め定義した用紙の情報をユーザ登録用紙として自装置の記憶部に登録する登録工程と、
取得手段が、前記印刷ジョブの印刷設定情報から用紙情報を取得する取得工程と、
設定手段が、前記取得手段により取得された用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得し、前記印刷設定情報の用紙情報として、前記ユーザ登録用紙の指定の代わりに当該取得された前記ユーザ登録用紙の情報を設定する設定工程と、
送信手段が、前記設定手段により印刷設定情報に前記ユーザ登録用紙の情報が設定された印刷ジョブを前記プリントサーバへ送信する送信工程と
を有することを特徴とする制御方法。
【請求項１３】
特定の機種の印刷装置に依存しない中間データ形式の印刷ジョブを生成するプリンタドライバを備えるクライアント装置と、ユーザ登録用紙を独自のデータベースを用いて管理しているプリントサーバと、印刷装置とを有するプリントシステムにおける制御方法であって、
前記クライアント装置において、
登録手段が、ユーザが予め定義した用紙の情報をユーザ登録用紙として自装置の記憶部に登録する登録工程と、
第一取得手段が、前記印刷ジョブの印刷設定情報から用紙情報を取得する第一取得工程と、
設定手段が、前記第一取得工程において取得された用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得し、前記印刷設定情報の用紙情報として、前記ユーザ登録用紙の指定の代わりに当該取得された前記ユーザ登録用紙の情報を設定する設定工程と、
送信手段が、前記設定工程において印刷設定情報に前記ユーザ登録用紙の情報が設定された印刷ジョブを前記プリントサーバへ送信する送信工程と
を有し、
前記プリントサーバにおいて、
保持手段が、前記クライアント装置から受信した印刷ジョブを記憶部にて保持する保持工程と、
変換手段が、受信した印刷要求に応じて、前記記憶部にて保持している前記中間データ形式の印刷ジョブを、前記印刷設定情報を用いて印刷装置に対応するデータ形式に変換し、前記印刷装置に送信する変換工程と
を有し、
前記印刷装置において、
指示手段が、前記プリントサーバに前記印刷要求を送信する指示工程と、
印刷手段が、前記指示工程による印刷要求に応じて前記プリントサーバから送信された印刷ジョブを受信し、印刷を行う印刷工程と
を有することを特徴とする制御方法。
【請求項１４】
コンピュータを、
ユーザが予め定義した用紙の情報をユーザ登録用紙として自装置の記憶部に登録する登録手段、
印刷ジョブの印刷設定情報から用紙情報を取得する取得手段、
前記取得手段により取得された用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得し、前記印刷設定情報の用紙情報として、前記ユーザ登録用紙の指定の代わりに当該取得された前記ユーザ登録用紙の情報を設定する設定手段、
前記設定手段により印刷設定情報に前記ユーザ登録用紙の情報が設定された印刷ジョブを、ユーザ登録用紙を独自のデータベースを用いて管理しているプリントサーバへ送信する送信手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プルプリント制御方法に関し、特にプリントシステム、情報処理装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して印刷要求を行うことで当該印刷装置から印刷データの出力を可能にする所謂「プルプリント」の印刷システムが提案されている（例えば、特許文献１参照）。これにより、ユーザはアプリケーションから印刷時に指定された特定の印刷装置による出力ではなく、所望の印刷装置からの印刷データ出力を可能としている。
【０００３】
また通常、同一のプラットフォームのクライアント／サーバ環境下では印刷時に使用する用紙情報はサーバの用紙情報データベースをクライアント上で動作するプリンタドライバが参照可能な仕様になっている。異なるプラットフォームのクライアント／サーバ環境下では、クライアント上で動作するプリンタドライバがスプールファイルを生成する際に用紙情報を付加してサーバに転送する。受信したサーバ側のスプール連携部は、スプールファイルから付加された用紙情報を参照し、印刷データに反映する仕組みが提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０３３８５７号公報
【特許文献２】特許第４１１９８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の方法では、ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して印刷要求を行う際に、印刷設定の変更を指示することが困難である。これは、サーバ上に一次蓄積される印刷データの形式が、印刷装置に依存したＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）であり、印刷設定変更の指示通りにＰＤＬを編集しなければならないためである。
【０００６】
具体的な例として以下に示す。ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して印刷要求を行う際に、４ページを１ページに割り付けるような印刷設定（以後、４ｉｎ１と称する）を指示したとする。このとき、サーバ上に一次蓄積される印刷データ、即ちＰＤＬを４ｉｎ１に適合するように変更する必要がある。もし、ＰＤＬが印刷装置の解像度に依存するラスタ形式であるなら、４ｉｎ１を実現するためにラスタ画像を縮小することになるので、細線の消失等、品質上の様々な問題が生じる。また、ＰＤＬは多種多様な仕様が存在するので、それら複数のＰＤＬに対応することは多大な労力を必要とする。そもそも、ＰＤＬの仕様が非公開の場合には、ＰＤＬの内容を変更することもできない。さらに、ＰＤＬが変更できないということは、すなわちユーザが印刷指示を行った時点で印刷を行う機種が限定されてしまい、プルプリントする時に自由に機種を変更できないという課題もある。
【０００７】
上記課題を解決するために、例えば、サーバ側でデータを再編集できるようなプリントシステムが望まれるが、クライアントで管理されている用紙情報との整合が必ずしもとれるわけではない。
【０００８】
そこで、本願発明は上記課題を考慮し、ユーザ所望の適切な用紙設定でプルプリントが可能な、印刷システムを提供する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本願発明に係る実施形態である情報処理装置は以下の構成を有する。すなわち、ユーザ登録用紙を独自のデータベースを用いて管理しているプリントサーバに接続され、特定の機種の印刷装置に依存しない中間データ形式の印刷ジョブを生成するプリンタドライバを備える情報処理装置であって、ユーザが予め定義した用紙の情報をユーザ登録用紙として自装置の記憶部に登録する登録手段と、前記印刷ジョブの印刷設定情報から用紙情報を取得する第一取得手段と、前記第一取得手段により取得された用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得し、前記印刷設定情報の用紙情報として、前記ユーザ登録用紙の指定の代わりに当該取得された前記ユーザ登録用紙の情報を設定する設定手段と、前記設定手段により印刷設定情報に前記ユーザ登録用紙の情報が設定された印刷ジョブを前記プリントサーバへ送信する送信手段とを有する。
【００１０】
また、本願発明に係る別の実施形態であるプリントシステムは以下の構成を有する。すなわち、特定の機種の印刷装置に依存しない中間データ形式の印刷ジョブを生成するプリンタドライバを備えるクライアント装置と、ユーザ登録用紙を独自のデータベースを用いて管理しているプリントサーバと、印刷装置とを有するプリントシステムであって、前記クライアント装置は、ユーザが予め定義した用紙の情報をユーザ登録用紙として自装置の記憶部に登録する登録手段と、前記印刷ジョブの印刷設定情報から用紙情報を取得する第一取得手段と、前記第一取得手段により取得された用紙情報において前記ユーザ登録用紙が指定されている場合、前記記憶部から前記ユーザ登録用紙の情報を取得し、前記印刷設定情報の用紙情報として、前記ユーザ登録用紙の指定の代わりに当該取得された前記ユーザ登録用紙の情報を設定する設定手段と、前記設定手段により印刷設定情報に前記ユーザ登録用紙の情報が設定された印刷ジョブを前記プリントサーバへ送信する送信手段とを有し、前記プリントサーバは、前記クライアント装置から受信した印刷ジョブを記憶部にて保持する保持手段と、受信した印刷要求に応じて、前記記憶部にて保持している前記中間データ形式の印刷ジョブを、前記印刷設定情報を用いて印刷装置に対応するデータ形式に変換し、前記印刷装置に送信する変換手段とを有し、前記印刷装置は、前記プリントサーバに前記印刷要求を送信する指示手段と、前記指示手段による印刷要求に応じて前記プリントサーバから送信された印刷ジョブを受信し、印刷を行う印刷手段とを有する。
【発明の効果】
【００１１】
本発明により、ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して印刷要求を行う際に、印刷設定の変更を指示することが可能となる。更に、クライアントＰＣで設定した用紙設定に不整合が発生することなく、ユーザが所望した用紙設定で印刷することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】プリントシステムの構成の一例を示すシステム構成図。
【図２】各装置のハードウェア構成を示すブロック図。
【図３】複合機のコントローラユニットのハードウェア構成の一例を示すブロック図。
【図４】プリントシステムに係るプルプリントの全体の流れを説明する模式図。
【図５】図４に示した各データフローの詳細を示す表。
【図６】クライアントＰＣ上で動作するアプリケーションプログラムの印刷画面の一例を示す模式図。
【図７】プリントシステムに係る第１の制御処理手順の一例を示すフローチャート。
【図８】プリントシステムに係る第２の制御処理手順の一例を示すフローチャート。
【図９】プリントシステムに係る第３の制御処理手順の一例を示すフローチャート。
【図１０】プリントシステムに係る論理プリンタ生成手順を示すフローチャート。
【図１１】プリントシステムに係る第４の制御処理手順の一例を示すフローチャート。
【図１２】プリントシステムに係る第５の制御処理手順の一例を示すフローチャート。
【図１３】図７のＳＢ７０３とＳＣ７０１の間を流れるデータ詳細を示す図。
【図１４】図８のＳＣ８０９とＳＥ８１１の間を流れるデータ詳細を示す図。
【図１５】図９の処理にて流れるデータ構成の詳細を示す図。
【図１６】複合機の表示部にＣＰＵの制御により表示される画面例の模式図。
【図１７】複合機の表示部にＣＰＵの制御により表示される画面例の模式図。
【図１８】プルプリントシステムにより発生する用紙設定の不整合の一例を示す図。
【図１９】用紙サイズ情報の更新処理の一例を示すフローチャート。
【図２０】用紙サイズ情報の更新処理の一例を示すフローチャート。
【図２１】用紙サイズ情報の置換を行うか否かを通知する画面例の模式図。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１４】
＜第一実施形態＞
［システム構成］
図１は、本実施形態に係るクライアントＰＣ、プリントサーバ、アドレス管理サーバ、および印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図である。図１の「事業所Ａ」に示すように、本実施形態のプリントシステムは、１以上のクライアントＰＣ１００（例えば、ユーザ毎）、１以上のプリントサーバ１０１（例えば、階毎に設置）、１以上の複合機１０２（例えば、階毎に設置）で構成される。さらに、プリントシステムは、アドレス管理サーバ１０３、１以上のログインサービスＰＣ１０４（例えば、階毎に設置）、ディレクトリサービスサーバ１０５がローカルエリアネットワーク（ＬＡＮ）１０６を介して接続される構成となる。
【００１５】
クライアント装置であるクライアントＰＣ１００には、仮想プリンタドライバ及びプリントプロセッサがインストールされている。この仮想プリンタドライバは、クライアント・アプリケーションから受け取ったデータに基づいて特定の複合機の機種に依存しない中間データ形式の印刷ジョブを生成し、プリントプロセッサを経由してプリントサーバ１０１へ送信する。なお、中間データ形式の印刷ジョブとは、フォーマットに関する仕様が公開されていて、かつ再編集が容易な形式の印刷データを意味する。例えば、ＥＭＦＳＰＯＯＬ形式（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ  Ｓｐｏｏｌ  Ｆｏｒｍａｔ）、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）などの形式がある。本実施形態においては、ＥＭＦＳＰＯＯＬ形式を使って説明するが、ＸＰＳやＰＤＦなど他の中間データ形式の印刷データであってもかまわない。
【００１６】
プリントサーバ１０１は、受信した該印刷ジョブを記憶部である所定の格納場所に保存する。また、プリントサーバ１０１は、ジョブ管理データベース（以後、ジョブ管理ＤＢ）を備え、該印刷ジョブに関するメタデータを、ジョブ管理ＤＢにより記憶管理する。プリントサーバ１０１は、ジョブ管理ＤＢに記録管理しているメタデータから印刷ジョブ一覧データを生成し、複合機１０２へ転送する。プリントサーバ１０１は、ジョブ管理ＤＢに記録管理しているメタデータと複合機１０２から受信する印刷設定情報とを使って、印刷設定情報の更新を行い、複合機１０２へ更新した印刷設定を転送する。さらに、プリントサーバ１０１は、上記所定の格納場所に保存している印刷ジョブと、ジョブ管理ＤＢに記録管理しているメタデータとからＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを生成し、複合機１０２へ転送する。
【００１７】
アドレス管理サーバ１０３は、アドレス管理データベース（以後、アドレス管理ＤＢと呼ぶ）を備える。そして、アドレス管理サーバ１０３は、本実施形態の「プルプリント」実行時に、印刷ジョブを管理するプリントサーバ１０１のアドレスとユーザ識別子とを、アドレス管理ＤＢにより管理する。さらに、アドレス管理サーバ１０３は、複合機１０２からの印刷ジョブ一覧要求に応じ、その応答として複合機１０２から受信したユーザ識別子に対応するプリントサーバ１０１のアドレスを複合機１０２へ送信する。
【００１８】
ログインサービスＰＣ１０４は、複合機１０２のログインサービスを提供する。機能としては、ディレクトリサービスサーバ１０５で記憶管理されているクライアントＰＣ１００のログインユーザ名、パスワードに基づく認証処理（ＳＳＯと称する。Ｓｉｎｇｌｅ  Ｓｉｇｎ−ＯＮの略）を行う。このログインユーザ名、パスワードとは例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）にて用いられるログインユーザ名、パスワードを示す。ログインサービスＰＣの例としては、キヤノン社のセキュリティエージェント（Ｓｅｃｕｒｉｔｙ  Ａｇｅｎｔ）を搭載したパーソナルコンピュータが挙げられる。
【００１９】
ディレクトリサービスサーバ１０５は、ネットワーク上に存在するサーバ、クライアント、プリンタ等のハードウェア資源や、それらを使用するユーザの属性、アクセス権等の情報を一元記憶管理するものである。ユーザの属性には、クライアントＰＣ１００のログインユーザ名、パスワード（例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）のログインユーザ名、パスワード）を含む。ディレクトリサービスサーバの例としては、アクティブディレクトリ（Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ）機能を搭載したサーバが挙げられる。
【００２０】
また、本実施形態のプリントシステムは、上述した構成の「事業所Ａ」と、「事業所Ａ」と同様の構成が１又は複数の「事業所Ｂ」とが、ＷＡＮ１０７を介して接続される構成であってもよい。
【００２１】
なお、上記の構成は一例であり、更に他の装置を含む構成であってもよいし、無線ネットワーク（無線ＬＡＮ等）にて接続されるような構成であっても構わない。また、より多くの「事業所」と接続される構成であっても構わない。
【００２２】
［ハードウェア構成］
図２を用いて、図１に示したクライアントＰＣ１００、プリントサーバ１０１、アドレス管理サーバ１０３、ログインサービスＰＣ１０４、及びディレクトリサービスサーバ１０５に適用可能な情報処理装置のハードウェア構成例について説明する。
【００２３】
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステム（以下、ＯＳ）が記憶されている。さらに、ＲＯＭ２０２あるいは外部メモリ２１１には、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等も記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０２あるいは外部メモリ２１１からＲＡＭ２０３にロードし、該ロードしたプログラムを実行することで各種動作を実現する。また、入力コントローラ２０５は、キーボード２０９やマウス等のポインティングデバイス（不図示）等からの入力を制御する。ビデオコントローラ２０６は、モニタ２１０への表示を制御する。一般に、モニタ２１０は、液晶ディスプレイやＣＲＴ等の表示器が用いられる。これらは必要に応じて管理者が使用する。
【００２４】
メモリコントローラ２０７は、外部メモリ２１１へのアクセスを制御する。ここでの外部メモリ２１１は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＳＤメモリーカード等を指す。通信Ｉ／Ｆコントローラ２０８は、ネットワーク（例えば、図１に示したＬＡＮ１０６）を介して外部機器と接続・通信するものであり、ネットワークに対する通信制御処理を実行する。例えば、本プリントシステムにおいて、ＴＣＰ／ＩＰを用いた通信等が可能である。なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、モニタ２１０上での表示を可能としている。また、ＣＰＵ２０１は、モニタ２１０上のマウスカーソル（不図示）等でのユーザ指示を可能とする。本実施形態を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされ、ＣＰＵ２０１によって実行される。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ２１１に格納されており、これらの詳細な説明についても後述する。
【００２５】
なお、図２に示した各装置のハードウェア構成は、一般的な情報処理装置を示しており、他の構成を備えても構わない。
【００２６】
図３を用いて、図１に示した複合機１０２を制御するコントローラユニット３１６のハードウェア構成例について説明する。図３において、コントローラユニット３１６は、画像入力デバイスとして機能するスキャナ３１４や、画像出力デバイスとして機能するプリンタ３１２と接続する。一方、コントローラユニット３１６は、ＬＡＮ（例えば、図１に示したＬＡＮ１０６）や公衆回線（ＷＡＮ）（例えば、ＰＳＴＮまたはＩＳＤＮ等）と接続することで、画像データやデバイス情報の入出力を行う。コントローラユニット３１６において、ＣＰＵ３０１は、システム全体を制御するプロセッサである。
【００２７】
ＲＡＭ３０２は、ＣＰＵ３０１が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリでもある。ＲＯＭ３０３は、システムのブートプログラムや各種制御プログラムが格納されている。ハードディスクドライブ（ＨＤＤ）３０４は、システムを制御するための各種プログラム、画像データ等を格納する。操作部インタフェース（操作部Ｉ／Ｆ）３０７はで、操作部（ＵＩ）３０８とのインタフェース部であり、操作部３０８に表示する画像データを操作部３０８に対して出力する。また、操作部Ｉ／Ｆ３０７は、操作部３０８から本システムの使用者が入力した情報（例えば、ユーザ情報等）をＣＰＵ３０１に伝える役割を有する。なお、操作部３０８はタッチパネルを有する表示部（不図示）を備え、該表示部に表示されたボタンを、ユーザが押下（指等でタッチ）することにより、各種指示を行うことができる。
【００２８】
ネットワークインタフェース（Ｎｅｔｗｏｒｋ  Ｉ／Ｆ）３０５は、ネットワーク（ＬＡＮ）に接続し、データの入出力を行う。モデム（ＭＯＤＥＭ）３０６は、公衆回線に接続し、ＦＡＸの送受信等のデータの入出力を行う。外部インタフェース（外部Ｉ／Ｆ）３１８は、ＵＳＢ、ＩＥＥＥ１３９４、プリンタポート、ＲＳ−２３２Ｃ等の外部入力を受け付けるためのＩ／Ｆ部である。本実施形態においては認証で必要となるＩＣカードの読み取り用のカードリーダ３１９が外部Ｉ／Ｆ３１８に接続されている。そして、ＣＰＵ３０１は、この外部Ｉ／Ｆ３１８を介してカードリーダ３１９によるＩＣカードからの情報読み取りを制御し、コントローラユニット３１６は該ＩＣカードから読み取られた情報を取得可能である。以上のデバイスがシステムバス３０９上に配置される。
【００２９】
イメージバスインタフェース（ＩＭＡＧＥ  ＢＵＳ  Ｉ／Ｆ）３２０は、システムバス３０９と画像データを高速で転送する画像バス３１５とを接続し、データ構造を変換するバスブリッジである。画像バス３１５は、ＰＣＩバスまたはＩＥＥＥ１３９４で構成される。画像バス３１５上には以下のデバイスが配置される。ラスタイメージプロセッサ（ＲＩＰ）３１０は、例えば、ＰＤＬ形式のコード等のベクトルデータをビットマップイメージに展開する。プリンタインタフェース（プリンタＩ／Ｆ）３１１は、プリンタ３１２とコントローラユニット３１６とを接続し、画像データの同期系／非同期系の変換を行う。また、スキャナインタフェース（スキャナＩ／Ｆ）３１３は、スキャナ３１４とコントローラユニット３１６とを接続し、画像データの同期系／非同期系の変換を行う。画像処理部３１７は、入力画像データに対し補正、加工、編集を行い、プリント出力画像データに対してプリンタの補正、解像度変換等を行う。また、これに加えて、画像処理部３１７は、画像データの回転や、多値画像データに対するＪＰＥＧ、２値画像データに対するＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理を行う。
【００３０】
スキャナ３１４は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサで走査することで、ラスタイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダのトレイにセットされ、装置使用者が操作部３０８から読み取り起動指示することにより、ＣＰＵ３０１がスキャナ３１４に指示を与える。そして、原稿フィーダは原稿用紙を１枚ずつフィードし、原稿画像の読み取り動作を行う。プリンタ３１２は、ラスタイメージデータを用紙上の画像に変換する部分である。その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、ＣＰＵ３０１からの指示によって開始する。なお、プリンタ３１２には、異なる用紙サイズまたは異なる用紙の向きを選択できるように複数の給紙段を備え、それに対応した用紙カセットが備えられる。
【００３１】
操作部３０８は、ＬＣＤ表示部を有し、ＬＣＤ上にタッチパネルシートが貼られている。操作部３０８がシステムの操作画面を表示し、表示されたキーが操作者により押されると、その位置情報を操作部Ｉ／Ｆ３０７を介してＣＰＵ３０１に伝える。また、操作部３０８は、各種操作キーとして、例えば、スタートキー、ストップキー、ＩＤキー、リセットキー等を備える。ここで、操作部３０８のスタートキーは、原稿画像の読み取り動作を開始する時などに用いられる。スタートキーの中央部には、緑と赤の２色ＬＥＤがあり、その色によってスタートキーが使える状態にあるかどうかを示す。また、操作部３０８のストップキーは、稼働中の動作を停止する働きをする。また、操作部３０８のＩＤキーは、使用者のユーザＩＤを入力する際に用いる。リセットキーは、操作部からの設定を初期化する際に用いる。
【００３２】
カードリーダ３１９は、ＣＰＵ３０１からの制御により、ＩＣカード（例えば、ソニー社のフェリカ（ＦｅｌｉＣａ）（登録商標））内に記憶されている情報を読み取り、読み取った情報を外部Ｉ／Ｆ３１８を介してＣＰＵ３０１へ通知する。以上のような構成により、複合機１０２は、スキャナ３１４から読み込んだ画像データをＬＡＮ１０６上に送信し、ＬＡＮ１０６から受信した印刷データをプリンタ３１２により印刷出力することができる。また、スキャナ３１４から読み込んだ画像データをモデム３０６により、公衆回線上にＦＡＸ送信し、公衆回線からＦＡＸ受信した画像データをプリンタ３１２により出力することができる。
【００３３】
［プルプリントの流れ］
図４を用いて、本実施形態のプリントシステムにおけるプルプリントの全体の流れについて説明する。まず、本実施形態のプルプリントを実行するための前提について説明する。本実施形態のプルプリントを実現するための仮想プリンタドライバ４０１がプリントサーバ１０１に共有プリンタとしてインストールされている。仮想プリンタドライバ４０１は、アプリケーションから指示された印字や描画命令の出力に基づいて印刷データを生成する。さらに、仮想プリンタドライバ４０１は、当該仮想プリンタドライバ４０１やプリンタが備える機能を制御するための印刷設定を行う機能（ユーザインタフェース）、およびその印刷設定をインストールされた論理プリンタ毎に外部記憶装置に記憶する機能等を有する。また、この印刷設定は、米国Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）の場合、ＤＥＶＭＯＤＥ構造体に格納される。
【００３４】
ＤＥＶＭＯＤＥ構造体とは、プリンタが使用可能な機能、レイアウト設定、仕上げ設定、給・排紙設定、印字品質設定等の論理プリンタに関するデフォルトの動作条件を含む各種設定を記憶するために、米国Ｍｉｃｒｏｓｏｆｔ社が規定したものである。この各種設定値は、インストールされた論理プリンタ毎に外部記憶装置に記憶される。クライアントＰＣ１００には、仮想プリンタドライバ４０１に対応する論理プリンタと仮想プリンタドライバ４０１に対応したプリントプロセッサ４０２とを追加しておく。
【００３５】
以下、本実施形態のプルプリントの全体の流れについて説明する。図４は、本実施形態のプリントシステムにおけるプルプリントの全体の流れを説明する模式図である。図４に示すように、まず、ユーザは、クライアントＰＣ１００にログインし、クライアントＰＣ１００で実行されるクライアント・アプリケーション４００から仮想プリンタドライバ４０１に対応する論理プリンタへの印刷指示を行う（１−１）。この印刷指示に応じて、クライアントＰＣ１００のクライアント・アプリケーション４００は、グラフィックエンジンを介して、仮想プリンタドライバ４０１にデータを送信する。クライアントＰＣ１００の仮想プリンタドライバ４０１は、クライアント・アプリケーション４００からグラフィックエンジンを介して受け取ったデータに基づいて、デバイス（プリンタデバイス）に依存しないＥＭＦＳＰＯＯＬ形式の印刷ジョブを生成する。そして、仮想プリンタドライバ４０１は、生成したＥＭＦＳＰＯＯＬ形式の印刷ジョブをプリントプロセッサ４０２に送信する（１−２）。
【００３６】
プリントプロセッサ４０２は、仮想プリンタドライバ４０１から送信されたＥＭＦＳＰＯＯＬ形式の印刷ジョブを読み取り、印刷ジョブのメタデータを生成する。生成したメタデータと印刷ジョブとをプリントサーバ１０１のジョブ管理サービスに送信する（１−４）。
【００３７】
プリントサーバ１０１にて、ジョブ管理サービス４０３は、プリントサーバ１０１上の所定の格納場所に受信したＥＭＦＳＰＯＯＬ形式の印刷ジョブを保存し、さらにメタデータをジョブ管理ＤＢ４０４に登録する（１−５）。このジョブ管理ＤＢ４０４はプリントサーバ１０１の外部記憶装置上に構築される。このとき、プリントサーバ１０１は、上記所定の格納場所に印刷ジョブを保存するだけで、印刷装置（例えば、複合機１０２）への送信は行わない。さらに、プリントサーバ１０１は、印刷ジョブの識別子とユーザ識別子とをアドレス管理サーバ１０３上のアドレス管理サービス４０５へ登録するために送信し、登録指示を行う（１−６）。
【００３８】
アドレス管理サービス４０５は、プリントサーバ１０１のジョブ管理サービス４０３から、印刷ジョブの識別子とユーザ識別子とを受信すると、送信元であるプリントサーバ１０１のアドレスも加えてアドレス管理ＤＢ４０６に登録する（１−７）。アドレス管理ＤＢ４０６は、アドレス管理サーバ１０３の外部記憶装置上に構築される。なお、本実施形態では、機器を判別するためのアドレスとしてＩＰアドレスを使用する。また、本実施形態では、ジョブ識別子としてＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）を使用する。なお、この方式に限定するものではなく、識別可能な情報であれば、他の構成を用いても構わない。また、各ＤＢについても、構築する場所を限定するものではない。
【００３９】
複合機１０２において、カードリーダ３１９は読み取り可能なＩＣカードを検知すると、該ＩＣカード内の個人認証情報を読み取る。そして、複合機１０２は、カードリーダ３１９にて読み取った個人認証情報を認証要求として認証サーバ（不図示）に送信する。個人認証情報は、認証に用いられる情報であり、例えば該ＩＣカードの製造番号でも良い。認証サーバは、複合機１０２より個人認証情報を受信すると、認証サーバの外部記憶装置上に記憶されるＩＣカード認証用テーブルに基づいて、該個人認証情報の認証処理を行う。そして、認証サーバは、要求の応答として、認証結果を複合機１０２に返信する。なお、本実施形態において、認証処理に成功した場合は、認証結果として、クライアントＰＣ１００のユーザ識別子を送信するものとする。なお、この認証サーバの機能はアドレス管理サーバ１０３が備えていてもよい。
【００４０】
複合機１０２上のパネル・アプリケーション４０７は、認証サーバから認証に成功した旨の認証結果（クライアントＰＣ１００のログインユーザ識別子）を受信する。本実施形態では、ユーザ識別子としてユーザ名を使用する。もちろん、これに限定するものではなく、例えばユーザを識別する手段としてＩＣカードの製造番号などを用いてもかまわない。
【００４１】
パネル・アプリケーション４０７は、プリントサーバ１０１に印刷ジョブ一覧を要求する前にプリントサーバ１０１のＩＰアドレスを取得するための前処理を実行する。まず、アドレス管理サーバ１０３上のアドレス管理サービス４０５にユーザ識別子であるユーザ名を送信する（２−１）。アドレス管理サービス４０５は、アドレス管理ＤＢ４０６を参照し、受信したユーザ名に対応するプリントサーバ１０１のＩＰアドレスを得る（２−２）。そして、アドレス管理サービス４０５は、複合機１０２のパネル・アプリケーション４０７へ取得したプリントサーバ１０１のＩＰアドレスを返信する（２−３）。
【００４２】
パネル・アプリケーション４０７は、アドレス管理サーバ１０３からプリントサーバ１０１のＩＰアドレスを受信すると、当該ＩＰアドレスに対応するプリントサーバ１０１上のジョブ管理サービス４０３に対し印刷ジョブ一覧を要求する（２−４）。ジョブ管理サービス４０３は、ジョブ管理ＤＢ４０４を参照し（２−５）、該ユーザ名に対応する印刷ジョブ一覧を生成する。そして、ジョブ管理サービス４０３は、当該要求に対する応答として、パネル・アプリケーション４０７へ生成した印刷ジョブ一覧を返信する（２−６）。パネル・アプリケーション４０７は、プリントサーバ１０１のジョブ管理サービス４０３から印刷ジョブ一覧を受信すると、該印刷ジョブ一覧を操作部３０８のＵＩ上に表示する。
【００４３】
そして、ユーザにより、操作部３０８に表示された印刷ジョブ一覧の中から印刷ジョブが選択され、印刷設定変更指示がなされると、パネル・アプリケーション４０７は、選択された印刷ジョブの印刷設定をジョブ管理サービス４０３に送信する（３−１）。ジョブ管理サービス４０３は、パネル・アプリケーション４０７から印刷設定を受信すると、ジョブ管理ＤＢ４０４を参照し（３−２）、印刷設定の変更を行う。そして、ジョブ管理サービス４０３は、パネル・アプリケーション４０７へ変更した印刷設定を返信する（３−３）。パネル・アプリケーション４０７は送信した印刷設定と受信した印刷設定とを比較し、印刷設定変更が正しく機能したか否かを判定する。正しく機能しなかった場合は、操作部３０８のＵＩ上にその旨のメッセージを表示する。
【００４４】
そして、パネル・アプリケーション４０７は、ユーザからの指示に基づき、改めてジョブ管理サービス４０３に対し印刷要求（出力指示）を行う（４−１）。ジョブ管理サービス４０３は、パネル・アプリケーション４０７から印刷要求を受信すると、ジョブ管理ＤＢ４０４を参照して印刷に必要な情報を取得する（４−２）。そして、ジョブ管理サービス４０３は、取得した情報を用い、プリンタドライバ４０８に印刷指示を行う（４−３）。そして、プリンタドライバ４０８は、受信した印刷指示に基づいて印刷処理を実行し、複合機１０２にＰＤＬジョブを送信する（４−４）。その後、複合機１０２は、プリントサーバから受信したＰＤＬジョブに対する印刷処理を行う。
【００４５】
最後に、ユーザにより、印刷ジョブの削除が指示されると、パネル・アプリケーション４０７は、プリントサーバ１０１のジョブ管理サービス４０３に対し指定された印刷ジョブの削除を指示する（５−１）。ジョブ管理サービス４０３は、パネル・アプリケーション４０７から印刷ジョブの削除要求を受信すると、まず、アドレス管理サーバ１０３のアドレス管理サービス４０５へ登録した印刷ジョブ識別子の削除を指示する（５−２）。アドレス管理サービス４０５は、ジョブ管理サービス４０３から印刷ジョブ識別子の登録解除要求を受信すると、アドレス管理ＤＢ４０６に記憶されているレコードの中から該当するレコードを削除する（５−３）。次に、ジョブ管理サービス４０３は、ジョブ管理ＤＢ４０４の該当するレコードを削除し、ＥＭＦＳＰＯＯＬ形式の印刷ジョブファイルも削除する（５−４）。
【００４６】
以上、プリントシステム全体の流れを説明した。なお、図５は、図４のプリントシステムにおいて用いられるデータの詳細を表形式で表したものである。図５において、図４との対応、データの送受信デバイス、データの内容がそれぞれ対応付けられて定義している。以降、フローチャートを使って詳細に説明するが、その際に図５を併用して説明を補足する。
【００４７】
［印刷指示に係る処理］
図１に示したクライアントＰＣ１００上で動作するクライアント・アプリケーション４００上での印刷指示について説明する。図６は、図１に示したクライアントＰＣ１００上で動作するクライアント・アプリケーション４００の印刷画面の一例を示す模式図であり、クライアントＰＣ１００のＣＰＵの制御により表示器に表示される。
【００４８】
プリンタ選択部６１０は、クライアントＰＣ１００に設定されている論理プリンタから、印刷を行う論理プリンタを選択するためのものである。プリンタ選択部６１０において、「どこでも印刷」６０１は、本実施形態のプルプリント設定された仮想プリンタドライバ４０１に対応する論理プリンタとする。さらに、「Ｃｘｘｘｘ  ｉｘ３２５０」６０２、「Ｃｘｘｘｘ  ｉｘ５０５１」６０３は、ＬＡＮなどに接続されたプリンタに対応する通常のプリンタドライバに対応する論理プリンタとする。プリンタ選択部６１０において、いずれかの論理プリンタが選択され、ＯＫボタン６０５が押下されると、クライアント・アプリケーション４００は、印刷データを、選択された論理プリンタに対応するプリンタドライバにグラフィックエンジンを介して送信する。以下、プリンタ選択部６１０で「どこでも印刷」６０１が選択されて印刷指示がなされた場合のプリンタドライバの動作について説明する。
【００４９】
［第１の制御処理フロー］
図７は、本実施形態に係るプリントシステムにおける第１の制御処理手順の一例を示すフローチャートであり、図４に示した１−１から１−７までの処理手順に対応する。なお、図中において、処理間を結ぶ破線矢印は、各装置間のデータの流れを示している。これは、以下の図を通して同様である。
【００５０】
ＳＡにて示す処理は、図４に示した仮想プリンタドライバ４０１による印刷ジョブ投入処理に対応する。これらフローチャートの処理は、図１に示したクライアントＰＣ１００のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００５１】
ＳＢにて示す処理は、図４に示したプリントプロセッサ４０２によるメタデータ生成・送信処理及び印刷ジョブ転送処理に対応する。これらフローチャートの処理は、図１に示したクライアントＰＣ１００のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００５２】
ＳＣにて示す処理は、図４に示したジョブ管理サービス４０３によるメタデータ登録処理及び印刷ジョブ保存処理対応する。これらフローチャートの処理は、図１に示したプリントサーバ１０１のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００５３】
ＳＤにて示す処理は、図４に示したアドレス管理サービス４０５による印刷ジョブ識別子登録処理に対応する。これらフローチャートの処理は、図１に示したアドレス管理サーバ１０３のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００５４】
まず、仮想プリンタドライバ４０１による印刷ジョブ投入処理を説明する。仮想プリンタドライバ４０１の処理が開始すると、ＳＡ７０１において、仮想プリンタドライバ４０１は、クライアント・アプリケーション４００から入力されたデータをＥＭＦＳＰＯＯＬ形式の印刷ジョブとして出力する。これは図４の１−１と１−２に相当する。米国Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）の場合、仮想プリンタドライバ４０１への入力は、ＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれるＯＳによる関数呼び出しによって実施される。
【００５５】
仮想プリンタドライバ４０１は、ＤＤＩの呼び出しと同時に渡されるパラメータを解釈してＥＭＦＳＰＯＯＬ形式の印刷ジョブを生成し、ＯＳが管理するスプーラへ生成した印刷ジョブを出力する。一般に、プリンタドライバの役割は、出力対象のデバイスに依存した印刷ジョブを生成し出力することであるが、本実施形態においては、プリンタデバイス（複合機１０２）に依存しない中間データ形式の印刷ジョブを生成し、出力する。これにより、出力を行う複合機１０２の構成が変更されたとしても、本実施形態に係るプリントシステムにおいて仮想プリンタドライバ４０１の構成に変更は生じない。つまり、本実施形態により、複合機１０２固有の機能をプルプリントシステムで使用することが容易に実現できる。そして、処理を終了する。
【００５６】
次にプリントプロセッサ４０２によるメタデータ生成・送信処理及び印刷ジョブ転送処理を説明する。米国Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）の場合、ＯＳがプリントプロセッサ４０２に対し印刷ジョブの処理を依頼する際に呼び出すＰｒｉｎｔＤｏｃｕｍｅｎｔＯｎＰｒｉｎｔＰｒｏｃｅｓｓｏｒ関数の内部処理を示す。クライアントＰＣ１００上で処理を開始されると、ＳＢ７０１において、プリントプロセッサ４０２は、ＯＳのスプーラに出力されたジョブの種類がＲＡＷ形式か否か判定する。ＲＡＷ形式とは、プリンタドライバが出力した印刷ジョブを意味する。つまり、仮想プリンタドライバ４０１はＳＡ７０１にて印刷ジョブを出力しているので当該印刷ジョブはＲＡＷ形式であり、ここではＲＡＷ形式と判定され（ＳＢ７０１にてＹＥＳ）、ＳＢ７０２へ進む。ＲＡＷ形式と判定されない場合は（ＳＢ７０１にてＮＯ）、処理を終了する。
【００５７】
ＳＢ７０２において、プリントプロセッサ４０２は、メタデータを生成する。メタデータは、図５の「１−４」行の「送信データ」列にある、ＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）、ジョブ名、ユーザ名、ＤＥＶＭＯＤＥ、仮想プリンタドライバの論理プリンタ名である。具体的には、図１３のようなＸＭＬ形式で表現される。ＪｏｂＩｎｆｏ要素のＧｕｉｄ属性には、本実施形態に係るプリントシステムにおいて、一意となる印刷ジョブの識別子を記述する。ＪｏｂＩｎｆｏ要素のＪｏｂＮａｍｅ属性には、図４の１−１の過程で指定されたジョブの名前を記述する。ＪｏｂＩｎｆｏ要素のＵｓｅｒＮａｍｅ属性には、図４の１−１の過程で印刷を実行したユーザの名前を記述する。ＪｏｂＩｎｆｏ要素のＰｒｉｎｔＱｕｅｕｅＮａｍｅ属性には、図４の１−１の過程で使用された論理プリンタの名前を記述する。ＤｏｃｕｍｅｎｔＳｅｔｔｉｎｇｓ要素のＤＥＶＭＯＤＥＳｎａｐｓｈｏｔ属性には、図４の１−１の過程で指定された最初ページの印刷設定（ＤＥＶＭＯＤＥ）を記述する。なお、ＤＥＶＭＯＤＥはバイナリ形式なので、ＸＭＬで記述するためにＢａｓｅ６４と呼ばれる手法によりテキスト化している。
【００５８】
ＳＢ７０３おいて、プリントプロセッサ４０２は、ＳＢ７０２で生成したメタデータをジョブ管理サービス４０３へ送信する。なお、米国Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）の場合、送信プロトコルとして名前付きパイプを使うと高効率である。しかも、後述するユーザトークン取得に関しても名前付きパイプの使用は都合が良い。ＳＢ７０４において、プリントプロセッサ４０２は、ＯＳのスプーラからスプールデータを読み込む。そして、ＳＢ７０５において、プリントプロセッサ４０２は、読み込んだスプールデータをジョブ管理サービス４０３へ送信する。そして、処理を終了する。
【００５９】
次にジョブ管理サービス４０３によるメタデータ登録処理及び印刷ジョブ保存処理を説明する。ジョブ管理サービス４０３の処理が開始されると、ＳＣ７０１において、ジョブ管理サービス４０３は、名前付きパイプのサーバとして機能し、プリントプロセッサ４０２からＳＢ７０３で送信されたメタデータを図１３に示すようなＸＭＬ形式で受信する。なお、ジョブ管理サービス４０３は、プリントプロセッサ４０２とのコネクションを確立する際に、名前付きパイプのクライアント（即ちプリントプロセッサ４０２）のユーザトークンを取得する（ＳＣ７０２）。ここで取得されたユーザトークンの使用方法については後述する。
【００６０】
ＳＣ７０３において、ジョブ管理サービス４０３は、印刷ジョブを保存するファイルパスを決定する。ＳＣ７０４において、ジョブ管理サービス４０３は、プリントプロセッサ４０２によるＳＢ７０５から送信されたＥＭＦＳＰＯＯＬ形式の印刷ジョブを受信する。ＳＣ７０５において、ジョブ管理サービス４０３は、受信したＥＭＦＳＰＯＯＬ形式の印刷ジョブをＳＣ７０３で決定したファイル名で保存する。ＳＣ７０６において、ジョブ管理サービス４０３は、現在の日付・時刻情報を生成する。ここで生成された日時・時刻情報により印刷ジョブ投入時刻とする。
【００６１】
ＳＣ７０７において、ジョブ管理サービス４０３は、ＳＣ７０１で受信したメタデータと、ＳＣ７０２で取得したユーザトークンと、ＳＣ７０３で決定したファイル名と、ＳＣ７０６で生成した日付・時刻とを新規レコードとしてジョブ管理ＤＢ４０４に登録する。ＳＣ７０８において、ジョブ管理サービス４０３は、アドレス管理サービス４０５へ印刷ジョブ識別子登録コマンドを送信する。このとき、ジョブ管理サービス４０３は、ＳＣ７０１で受信したメタデータに含まれるＧＵＩＤとユーザ名も併せて送信する。そして、処理を終了する。
【００６２】
次にアドレス管理サービス４０５による印刷ジョブ識別子登録処理を説明する。アドレス管理サービス４０５の処理が開始されると、ＳＤ７０１において、アドレス管理サービス４０５は、ジョブ管理サービス４０３からＳＣ７０８で送信されたＧＵＩＤとユーザ名を受信する。なお、アドレス管理サービス４０５は、ジョブ管理サービス４０３とのコネクションを確立する際に、プリントサーバ１０１のＩＰアドレスを取得する（ＳＤ７０２）。ＳＤ７０３において、アドレス管理サービス４０５は、ＳＤ７０１で受信したＧＵＩＤ及びユーザ名と、ＳＤ７０２で取得したＩＰアドレスとを関連付けて図４のアドレス管理ＤＢ４０６に新規レコードとして登録する。そして、処理を終了する。
【００６３】
［第２の制御処理フロー］
図８は、本実施形態に係るプリントシステムにおける第２の制御処理手順の一例を示すフローチャートであり、図４に示した２−１から２−６までの処理手順に対応する。
【００６４】
ＳＥにて示す処理は、図４に示したパネル・アプリケーション４０７による印刷ジョブ一覧表示処理に対応する。これらフローチャートの処理は、図１に示した複合機１０２のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００６５】
ＳＤにて示す処理は、図４に示したアドレス管理サービス４０５によるアドレス解決処理に対応する。これらフローチャートの処理は、図１に示したアドレス管理サーバ１０３のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００６６】
ＳＣにて示す処理は、図４に示したジョブ管理サービス４０３による印刷ジョブ一覧生成処理に対応する。これらフローチャートの処理は、図１に示したプリントサーバ１０１のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００６７】
まず、パネル・アプリケーション４０７による印刷ジョブ一覧表示処理を説明する。パネル・アプリケーション４０７の処理が開始されると、ＳＥ８０１において、パネル・アプリケーション４０７は、ログイン表示画面（図１６（ａ））を操作部３０８の表示部に表示するように制御する。そして、ＳＥ８０２において、パネル・アプリケーション４０７は、ＩＣカード等によるユーザ認証を行う。本実施形態において、ユーザ認証は重要なプロセスではないので、ここでは、認証カードの検出方法やＩＣカードの識別ＩＤ取得方法や認証サーバによる認証処理といった詳細説明は省略する。
【００６８】
ＳＥ８０３において、認証結果を判定し、認証エラーである旨の認証結果が得られた場合（ＳＥ８０３にてＮＯ）、ＳＥ８０４にて、パネル・アプリケーション４０７は、エラー表示画面（図１６（ｂ））を操作部３０８の表示部に表示するように制御する。該エラー表示画面にてＯＫボタン１４１１の押下を受け付けると、ＳＥ８０１に戻り、パネル・アプリケーション４０７は、再度、ログイン表示画面を表示制御する。一方、ＳＥ８０３にて認証が成功したと判定した場合（ＳＥ８０３にてＹＥＳ）、ＳＥ８０５へ進む。ＳＥ８０５において、パネル・アプリケーション４０７は、認証に成功したユーザ名を取得する。
【００６９】
ＳＥ８０６において、パネル・アプリケーション４０７は、アドレス管理サーバ１０３にＳＥ８０５にて取得したユーザ名を送信する。ＳＥ８０７において、パネル・アプリケーション４０７は、アドレス管理サービス４０５からプリントサーバ１０１のＩＰアドレスのリストを受信する。つまり、パネル・アプリケーション４０７は、アドレス管理サービス４０５に対し、ユーザ名に対応する印刷ジョブを絞り込み、その印刷ジョブを保持するジョブ管理サービス４０３のＩＰアドレスを返信することを要求している。
【００７０】
続くＳＥ８０８からＳＥ８１１までは、ＩＰアドレスのリストからＩＰアドレスを列挙するループ処理である。ＳＥ８０８において、パネル・アプリケーション４０７は、ＩＰアドレスのリストからＩＰアドレスを一つ取り出す。ＳＥ８０９において、パネル・アプリケーション４０７は、ＩＰアドレスを取り出せたか否かを判定する。ＩＰアドレスを取り出せた場合（ＳＥ８０９にてＹＥＳ）、ＳＥ８１０へ進む。ＳＥ８１０において、パネル・アプリケーション４０７は、ジョブ管理サービス４０３に印刷ジョブ一覧要求信号として印刷ジョブ一覧要求コマンドを送信する。このとき、ユーザ名も併せて送信する。
【００７１】
ＳＥ８１１において、パネル・アプリケーション４０７は、ジョブ管理サービス４０３から印刷ジョブ一覧を受信する。これにより、一覧取得手段を実現する。ここで受信する印刷ジョブ一覧は、図５の「２−６」行の「送信データ」列にある、ＧＵＩＤ、ジョブ名、部数、両面、カラーモード、ページ集約、日付・時刻の情報を有する。具体的には、図１４のようなＸＭＬ形式で表現される。ＪｏｂＬｉｓｔ要素は、ジョブの数だけのＪｏｂＩｎｆｏ子要素を保持する。ＪｏｂＩｎｆｏ要素のＧｕｉｄ属性は図１３で説明したＧｕｉｄと同じものである。ＪｏｂＩｎｆｏ要素のＪｏｂＮａｍｅ属性も図１３で説明したＪｏｂＮａｍｅと同じものである。
【００７２】
一方、ＤｏｃｕｍｅｎｔＳｅｔｔｉｎｇｓ要素が保持する各種属性は図１３と異なる。ＣｏｐｙＣｏｕｎｔ属性は、印刷部数を指定する。Ｄｕｐｌｅｘｉｎｇ属性は片面印刷を使用するか、両面印刷を使用するかを指定する。具体的には、“ＯｎｅＳｉｄｅｄ”と記述すると、片面印刷を指定する。“ＴｗｏＳｉｄｅＬｏｎｇＥｄｇｅ”と記述すると、両面（長辺綴じ）を指定する。“ＴｗｏＳｉｄｅｄＳｈｏｒｔＥｄｇｅ”と記述すると、両面（短辺綴じ）を指定する。ＯｕｔｐｕｔＣｏｌｏｒ属性は、色に関する出力方法を指定する。“Ｃｏｌｏｒ”と記述すると、カラーを指定する。“Ｍｏｎｏｃｈｒｏｍｅ”と記述すると、モノクロを指定する。ＰａｇｅＰｅｒＳｈｅｅｔ属性は、用紙の片面に印刷するように選択できるページ数を指定する。ＤａｔｅＴｉｍｅ属性は、ジョブ投入時刻を指定する。
【００７３】
ＳＥ８０８からＳＥ８１１において、ＩＰアドレスのリストからＩＰアドレスを取り出し終えると（ＳＥ８０９にてＮＯ）、ＳＥ８１２に進む。そして、パネル・アプリケーション４０７は、印刷ジョブ一覧表示画面（図１６（ｃ））を操作部３０８の表示部に表示するように制御する。そして、処理を終了する。
【００７４】
次にアドレス管理サービス４０５によるアドレス解決処理を説明する。アドレス管理サービス４０５の処理が開始されると、ＳＤ８０１において、アドレス管理サービス４０５は、パネル・アプリケーション４０７によるＳＥ８０６から送信されるユーザ名を受信する。ＳＤ８０２において、アドレス管理サービス４０５は、図４に示すアドレス管理ＤＢ４０６からＳＤ８０１で受信したユーザ名と一致するレコードを探索する。
【００７５】
ＳＤ８０３において、アドレス管理サービス４０５は、探索したレコードから１つのレコードを取り出す。ＳＤ８０４において、アドレス管理サービス４０５は、レコードを取り出せたか否かを判定する。レコードを取り出せた場合（ＳＤ８０４にてＹＥＳ）、ＳＤ８０５へ進む。ＳＤ８０５にて、アドレス管理サービス４０５は、取得したレコードからジョブ管理サービス４０３が動作するプリントサーバ１０１のＩＰアドレスを取得する。ＳＤ８０３からＳＤ８０５において、探索した全レコードからＩＰアドレスを取り出し終えると（ＳＤ８０４にてＮＯ）、ＳＤ８０６へ進む。そして、アドレス管理サービス４０５は、パネル・アプリケーション４０７へＩＰアドレスのリストを返信する。そして、処理を終了する。
【００７６】
次にジョブ管理サービス４０３による印刷ジョブ一覧生成処理を説明する。ジョブ管理サービス４０３の処理が開始されると、ＳＣ８０１において、ジョブ管理サービス４０３は、パネル・アプリケーション４０７のＳＥ８１０から印刷ジョブ一覧要求を受け付ける。このときユーザ名も併せて受信する。ＳＣ８０２において、ジョブ管理サービス４０３は、図４のジョブ管理ＤＢ４０４からＳＣ８０１で得たユーザ名と一致するレコードを探索する。ＳＣ８０３において、ジョブ管理サービス４０３は、探索したレコードから１つのレコードを取り出す。
【００７７】
ＳＣ８０４において、ジョブ管理サービス４０３は、レコードを取り出せるか否かを判定する。レコードを取り出せた場合（ＳＣ８０４にてＹＥＳ）、ＳＣ８０５へ進む。ＳＣ８０５にて、ジョブ管理サービス４０３は、レコードからＧＵＩＤ、ジョブ名、ＤＥＶＭＯＤＥ、仮想プリンタドライバの論理プリンタ名、ユーザトークン、及び日付・時刻を取得する。ＳＣ８０６において、ジョブ管理サービス４０３は、ＳＣ８０４で得たユーザトークンを使って、自身のスレッドを偽装する。ここでの“偽装”するとは、ジョブ管理サービス４０３が本来割り当てられた権限の代わりに、取得したユーザトークンの権限を用いて、当該ユーザが実行を許可されている処理を行うものである。スレッドを偽装している間、スレッドは図４のクライアント・アプリケーション４００で印刷指示を実行したユーザのセキュリティコンテキストで実行される。
【００７８】
ＳＣ８０７において、ジョブ管理サービス４０３は、ＳＣ８０５で得たＤＥＶＭＯＤＥからカラーモード、両面、ページ集約、部数、といった個々の情報を取り出す。ＤＥＶＭＯＤＥは、プリンタドライバが管理するプリンタドライバ固有のデータ形式であるので、ＤＥＶＭＯＤＥから個々の情報を取り出すためには、ＤＥＶＭＯＤＥを生成したプリンタドライバに問い合わせる必要がある。ＳＣ８０７で仮想プリンタドライバに対応する論理プリンタ名を取得済みなので、この論理プリンタ名に基づいてＤＥＶＭＯＤＥから個々の情報を取り出す。一般に、ＤＥＶＭＯＤＥから個々の情報を取り出す手法としては、プリンタドライバにＤＥＶＭＯＤＥを操作する独自の拡張インタフェースを設け、その拡張インタフェースを経由することが多い。近年は、プリントチケットと呼ばれる米国Ｍｉｃｒｏｓｏｆｔ社が規定したＸＭＬによる印刷設定格納形式を利用する方法も利用ある。即ち、プリンタドライバがプリントチケットをサポートするならば、ＤＥＶＭＯＤＥをプリントチケットに変換し、プリントチケットから個々の情報を取り出してもよい。しかし、この手法に限定するものではない。
【００７９】
ＳＣ８０８において、ジョブ管理サービス４０３は、スレッドの偽装を解除する。ＳＣ８０３からＳＣ８０８において、探索した全レコードから個々の印刷設定を取り出し終えると（ＳＣ８０４にてＮＯ）、ＳＣ８０９へ進む。そして、ジョブ管理サービス４０３は、印刷ジョブ一覧（図１４）を生成する。そして、ジョブ管理サービス４０３は、パネル・アプリケーション４０７へ印刷ジョブ一覧を返信する。そして、処理を終了する。
【００８０】
なお、上記の処理の中で用いた図１６に示す各画面の構成は一例であり、上記構成に限定するものではない。よって、他の構成による画面を用いても構わない。
【００８１】
［第３の制御処理フロー］
図９は、本実施形態に係るプリントシステムにおける第３の制御処理手順の一例を示すフローチャートであり、図４に示した３−１から３−３までの処理手順に対応する。
【００８２】
ＳＥにて示す処理は、図４に示したパネル・アプリケーション４０７による印刷設定変更確認及び印刷指示処理に対応する。これらフローチャートの処理は、図１に示した複合機１０２のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００８３】
ＳＣにて示す処理は、図４に示したジョブ管理サービス４０３による印刷設定変更処理に対応する。これらフローチャートの処理は、図１に示したプリントサーバ１０１のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００８４】
まず、パネル・アプリケーション４０７による印刷設定変更確認、及び印刷指示処理を説明する。なお、図８のＳＥ８１２において、印刷ジョブ一覧表示画面（図１６（ｃ））を操作部３０８の表示部に表示するように制御している。パネル・アプリケーション４０７の処理が開始されると、ＳＥ９０１において、パネル・アプリケーション４０７は、印刷ジョブ一覧表示画面を介して印刷ジョブの選択、及びプリントするボタン１４２２の押下を受け付ける。その後、ＳＥ９０２において、パネル・アプリケーション４０７は、印刷設定変更画面（図１７（ａ））を操作部３０８の表示部に表示するように制御する。図１７（ａ）に示す印刷設定変更画面において、設定項目１４３１は、カラーモードの指定を受け付け、モノクロとカラーのどちらかをチェックできる。設定項目１４３２は、両面・片面の指定を受け付け、片面、両面（長辺綴じ）、両面（短辺綴じ）のうち１つを選択できる。設定項目１４３３は、ページ集約の指定を受け付け、１ｉｎ１、２ｉｎ１、４ｉｎ１、６ｉｎ１、８ｉｎ１、９ｉｎ１、１６ｉｎ１のうち１つを選択できる。設定項目１４３４は、印刷部数の指定を受け付け、１から９９９９までの値を指定できる。なお、図１７（ａ）に示す画面は、図１６（ｃ）において文書名「決算報告書」の印刷ジョブの選択を受け付け、「プリントする」ボタン１４２２の押下を受け付けた場合の印刷設定変更画面を示している。なお、設定項目、設定内容については、上記内容に限定するものではなく、印刷で用いられるデバイス（複合機１０２）の機能や状態に応じて変更するようにしても構わない。
【００８５】
ＳＥ９０３において、パネル・アプリケーション４０７は、指定された印刷設定変更を受け付ける。ここでは、図１７（ａ）における設定項目１４３２の両面・片面指定を、“片面”から“両面（長辺綴じ）”に変更したとする。ＳＥ９０４において、パネル・アプリケーション４０７は、印刷設定が変更されたかどうか判定する。変更されていない場合は（ＳＥ９０４にてＮＯ）、ＳＥ９１１へ進む。印刷設定が変更された場合は（ＳＥ９０５）、ＳＥ９０５へ進む。
【００８６】
ＳＥ９０５において、パネル・アプリケーション４０７は、プリントサーバ１０１のジョブ管理サービス４０３へ設定変更が行われた印刷設定情報を送信する。この印刷設定情報は、図５の「３−１」行の「送信データ」列にある、ＧＵＩＤ、部数、両面、カラーモード、ページ集約、複合機のモデル名である。具体的には、図１５（ａ）に示すようなＸＭＬ形式で表現される。ＪｏｂＩｎｆｏ要素のＧｕｉｄ属性は図１３で説明したＧｕｉｄと同じものである。ＪｏｂＩｎｆｏ要素のＤｅｖｉｃｅＭｏｄｅｌＮａｍｅ属性は、図１に示す複合機１０２のモデル名を記述する。ＤｏｃｕｍｅｎｔＳｅｔｔｉｎｇｓ要素が保持する各種属性は図１４で説明したものと同様である。ただし、ＳＥ９０３で“片面”を“両面（長辺綴じ）”に設定を変更しているので、Ｄｕｐｌｅｘｉｎｇ属性は“ＴｗｏＳｉｄｅＬｏｎｇＥｄｇｅ”になる。これにより、印刷設定変更要求として、印刷設定変更指示を行う。
【００８７】
ＳＥ９０６において、パネル・アプリケーション４０７は、ジョブ管理サービス４０３から印刷設定変更指示が反映された印刷設定情報を受信する。これにより、設定取得手段を実現する。この印刷設定情報は、図５の「３−３」行の「送信データ」列にある、ＧＵＩＤ、部数、両面、カラーモード、ページ集約である。具体的には、図１５（ｂ）に示すようなＸＭＬ形式で表現される。内容は図１５（ａ）とほぼ同じなので説明は省略する。
【００８８】
ＳＥ９０７において、パネル・アプリケーション４０７は、ＳＥ９０５で送信した印刷設定情報とＳＥ９０６で受信した印刷設定情報とを比較する。上述したようにＳＥ９０５で送信した印刷設定情報においてＤｕｐｌｅｘｉｎｇ属性を“ＴｗｏＳｉｄｅＬｏｎｇＥｄｇｅ”と指定した。しかし、ＳＥ９０６で受信した印刷設定情報のＤｕｐｌｅｘｉｎｇ属性は“ＯｎｅＳｉｄｅｄ”であるとする。このように送信設定と受信設定とが一致しないことは原理的に生じうる。例えば、ＳＥ９０３で変更対象外の設定情報として用紙サイズがあるが、図４の１−１の段階で用紙サイズは「はがき」になっていたとする。そして、印刷設定の禁則条件として、用紙が「はがき」の場合、両面・片面指定は「片面」しか選択できないとする。さらには、禁則条件適用の優先度は両面・片面指定よりも用紙サイズの指定の方が高いとする。その場合において、Ｄｕｐｌｅｘｉｎｇ属性は常に“ＯｎｅＳｉｄｅｄ”にならざるを得ない。
【００８９】
パネル・アプリケーション４０７に、プリンタドライバと同様の高度な禁則処理を実装すれば、図１７（ａ）に示す画面の設定変更入力の時点で両面指定を変更できないようにすることも可能ではある。しかし、この方式を採用した場合には、パネル・アプリケーション４０７の実装難易度が非常に高くなる。本実施形態のように、パネル・アプリケーション４０７では印刷設定の禁則処理を行わず、印刷設定を変更した場合、その都度、変更可能かどうかプリンタドライバに問い合わせる方が容易なうえ汎用性も増す。
【００９０】
ＳＥ９０５で送信した印刷設定情報とＳＥ９０６で受信した印刷設定情報とを比較した結果、差異が無い場合は（ＳＥ９０７にてＮＯ）、ＳＥ９１１へ進む。一方、差異がある場合は（ＳＥ９０７にてＹＥＳ）、ＳＥ９０８へ進み、パネル・アプリケーション４０７は、エラー表示画面（図１７（ｂ））を操作部３０８の表示部に表示するように制御する。ここで示す例では、ＳＥ９０６で受信した印刷設定のＤｕｐｌｅｘｉｎｇ属性は“ＯｎｅＳｉｄｅｄ”になっているので、図１７（ｂ）に示すエラー表示画面の例も「片面」から「両面（長辺綴じ）」に変更できなかった旨の内容となっている。
【００９１】
ＳＥ９０９において、パネル・アプリケーション４０７は、ユーザから表示部を介して印刷続行指示の入力を受け付ける。図１７（ｂ）に示すエラー表示画面のＯＫボタン１４４２の押下を受け付けると（ＳＥ９１０にてＹＥＳ）、ＳＥ９１１へ進む。ＳＥ９１１の印刷指示処理については後述する。そしてＳＥ９１２へ進む。一方、図１７（ｂ）のエラー表示画面のキャンセルボタン１４４１の押下を受け付けると（ＳＥ９１０にてＮＯ）、ＳＥ９１２へ進む。そしてＳＥ９１２にて、パネル・アプリケーション４０７は、図１７（ｂ）に示すエラー表示画面及び図１７（ａ）に示す印刷設定変更画面を閉じ、処理を終了する。
【００９２】
次にジョブ管理サービス４０３による印刷設定変更処理を説明する。ジョブ管理サービス４０３の処理が開始されると、ＳＣ９０１において、ジョブ管理サービス４０３は、パネル・アプリケーション４０７によるＳＥ９０５から図１５（ａ）に示すようなＸＭＬ形式で印刷設定を受信する。ＳＣ９０２において、ジョブ管理サービス４０３は、印刷設定変更のための論理プリンタを生成する。ここでの処理の詳細は図１０を用いて後述する。
【００９３】
ＳＣ９０３において、ジョブ管理サービス４０３は、図４に示すジョブ管理ＤＢ４０４において、ＳＣ９０１で得たＧＵＩＤと一致するレコードを探索する。ＳＣ９０４において、ジョブ管理サービス４０３は、探索して得られたレコードからＤＥＶＭＯＤＥとユーザトークンを取得する。ＳＣ９０５において、ジョブ管理サービス４０３は、ＳＣ９０４で取得したユーザトークンを用いて、自身のスレッドを偽装する。スレッドを偽装している間、スレッドは図４のクライアント・アプリケーション４００で印刷を実行したユーザのセキュリティコンテキストで実行される。
【００９４】
ＳＣ９０６において、ジョブ管理サービス４０３は、ＳＣ９０１で得た個々の印刷設定をＳＣ９０４で得たＤＥＶＭＯＤＥに適用する。ＤＥＶＭＯＤＥは、プリンタドライバが管理するプリンタドライバ固有のデータ形式であるので、ＤＥＶＭＯＤＥに個々の情報を適用するためには、ＤＥＶＭＯＤＥを生成したプリンタドライバにＤＥＶＭＯＤＥの更新を依頼する必要がある。ここで、ＳＣ９０２で論理プリンタを生成済みなので、この論理プリンタを使ってＤＥＶＭＯＤＥに対し個々の情報を適用することになる。一般に、ＤＥＶＭＯＤＥに個々の情報を適用する手法としては、プリンタドライバにＤＥＶＭＯＤＥを操作する独自の拡張インタフェースを設け、そのインタフェースを経由して適用することが行われる。近年は、プリントチケットと呼ばれる米国Ｍｉｃｒｏｓｏｆｔ社が規定したＸＭＬによる印刷設定格納形式を利用する方法もある。即ち、プリンタドライバがプリントチケットをサポートするならば、ＤＥＶＭＯＤＥをプリントチケットに変換し、プリントチケットに対し個々の情報を適用し、プリントチケットからＤＥＶＭＯＤＥに変換してもよい。なお、上記手法に限定するものではない。
【００９５】
ＳＣ９０７において、ジョブ管理サービス４０３は、ジョブ管理ＤＢ４０４に保存しているＤＥＶＭＯＤＥを、ＳＣ９０６で変更したＤＥＶＭＯＤＥを使って更新する。ＳＣ９０８において、ジョブ管理サービス４０３は、ＳＣ９０６で更新したＤＥＶＭＯＤＥからカラーモード、両面、ページ集約、部数、といった個々の情報を取り出す。個々の情報の取り出し方は、図８にて示したＳＣ８０７と同じである。ＳＣ９０９において、ジョブ管理サービス４０３は、スレッドの偽装を解除する。ＳＣ９１０において、ジョブ管理サービス４０３は、パネル・アプリケーション４０７へ図１５（ｂ）に示すようなＸＭＬ形式で変更した印刷設定を返信する。そして、処理を終了する。
【００９６】
［論理プリンタ生成処理フロー］
図１０は、図９のＳＣ９０２で呼び出される論理プリンタ生成処理のフローチャートである。図４に示したジョブ管理サービス４０３による印刷ジョブ一覧生成処理に対応する。これらフローチャートの処理は、図１に示したプリントサーバ１０１のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００９７】
ジョブ管理サービス４０３の処理が開始されると、ＳＣ１００１において、ジョブ管理サービス４０３は、図１に示す複合機１０２のＩＰアドレスを取得する。この複合機１０２のＩＰアドレスは、パネル・アプリケーション４０７とのデータ送受信のコネクションが確立した際に入手しておく。ＳＣ１００２において、ジョブ管理サービス４０３は、図１の複合機１０２のモデル名をサポートしたプリンタドライバがすでにプリントサーバ１０１上にインストールされているか否かを判定する。インストールされていない場合（ＳＣ１００２にてＮＯ）、ＳＣ１００３へ進み、ジョブ管理サービス４０３は、図１の複合機１０２のモデル名をサポートしたプリンタドライバをプリントサーバ１０１上にインストールする。そして、ＳＣ１００４へ進む。一方、ＳＣ１００２でインストール済みと判定された場合は（ＳＣ１００２にてＹＥＳ）、ＳＣ１００４へ進む。なお、この段階でインストール済みとなったプリンタドライバは、図４に示すプリンタドライバ４０８に相当し、指示に応じて各種処理を実行する。
【００９８】
ＳＣ１００４において、ジョブ管理サービス４０３は、インストール済みのプリンタドライバから構成され、かつ、ＳＣ１００１で得たＩＰアドレスを出力ポートとして構成される論理プリンタがプリントサーバ１０１上に存在するか否か判定する。当該論理プリンタが存在しない場合（ＳＣ１００４にてＮＯ）、ＳＣ１００５へ進む。そして、Ｓ１００５にて、ジョブ管理サービス４０３は、インストール済みのプリンタドライバを用いて、ＳＣ１００１で得たＩＰアドレスを出力ポートとする論理プリンタを生成する。そして、処理を終了する。一方、論理プリンタが存在する場合は（Ｓ１００４にてＹＥＳ）、処理を終了する。
【００９９】
［第４の制御処理フロー］
図１１は、本実施形態に係るプリントシステムにおける第４の制御処理手順の一例を示すフローチャートであり、図９のＳＥ９１１で呼び出される印刷指示処理のフローチャートでもある。図４に示した４−１から４−４までの処理手順に対応する。
【０１００】
ＳＥにて示す処理は、図４に示したパネル・アプリケーション４０７による印刷指示処理に対応する。これらフローチャートの処理は、図１に示した複合機１０２のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１０１】
ＳＣにて示す処理は、図４に示したジョブ管理サービス４０３による印刷処理に対応する。これらフローチャートの処理は、図１に示したプリントサーバ１０１のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１０２】
まず、パネル・アプリケーション４０７による印刷指示処理を説明する。パネル・アプリケーション４０７の処理が開始されると、ＳＥ１１０１において、パネル・アプリケーション４０７は、ジョブ管理サービス４０３へ印刷要求信号として印刷指示要求コマンドを送信する。このとき選択済みの印刷ジョブのＧＵＩＤと複合機１０２のモデル名も併せて送信する。ＳＥ１１０２において、パネル・アプリケーション４０７は、ジョブ管理サービス４０３から印刷実行結果（成否）を受信する。ＳＥ１１０３において、パネル・アプリケーション４０７は、印刷実行に成功したか否かを判定する。印刷実行が失敗した場合は（ＳＥ１１０３にてＹＥＳ）、ＳＥ１１０４へ進む。ＳＥ１１０４にて、パネル・アプリケーション４０７は、エラー表示画面（図１７（ｃ））を操作部３０８の表示部に表示するように制御する。そしてＳＥ１１０７へ進む。
【０１０３】
一方、ＳＥ１１０３において、印刷実行に成功した場合は（ＳＥ１１０３にてＮＯ）、ＳＥ１１０５へ進む。ＳＥ１１０５において、パネル・アプリケーション４０７は、図１７（ａ）に示すプリント後文書消去チェックボックス１４３５がチェックされていたか否かを判定する。このプリント後文書消去チェックボックス１４３５は、ユーザにより指定される。プリント後に削除する指示があった場合（ＳＥ１１０５にてＹＥＳ）、ＳＥ１１０６へ進み、印刷ジョブを削除する。ここでの処理に関する詳細は図１２を用いて後述する。そして、処理を終了する。
【０１０４】
次にジョブ管理サービス４０３による印刷処理を説明する。ジョブ管理サービス４０３の処理が開始されると、ＳＣ１１０１において、ジョブ管理サービス４０３は、パネル・アプリケーション４０７のＳＥ１１０１から印刷指示コマンドを受信する。このとき、印刷対象の印刷ジョブのＧＵＩＤと複合機１０２のモデル名も併せて受信する。ＳＣ１１０２において、ジョブ管理サービス４０３は、印刷実行変更のための論理プリンタを生成する。ここでの処理内容は、図９に示すＳＣ９０２と同じである。詳細は図１０を用いて述べた通りである。
【０１０５】
ＳＣ１１０３において、ジョブ管理サービス４０３は、図４に示すジョブ管理ＤＢ４０４からＳＣ１１０１で取得したＧＵＩＤと一致するレコードを探索する。ＳＣ１１０４において、ジョブ管理サービス４０３は、探索して得られたレコードからＥＭＦＳＰＯＯＬのファイル名、ＤＥＶＭＯＤＥ、及びユーザトークンを取得する。ＳＣ１１０５において、ジョブ管理サービス４０３は、ＳＣ１１０４で得たユーザトークンを使って、自身のスレッドを偽装する。スレッドを偽装している間、スレッドは図４のクライアント・アプリケーション４００で印刷を実行したユーザのセキュリティコンテキストで実行される。
【０１０６】
ＳＣ１１０６において、ジョブ管理サービス４０３は、ＳＣ１１０２で取得した論理プリンタに対し、ＳＣ１１０４で取得したＥＭＦＳＰＯＯＬとＤＥＶＭＯＤＥをレンダリングして印刷処理を実行させる。このとき、論理プリンタを構成するプリンタドライバは、ＰＤＬを生成し、複合機１０２に生成したＰＤＬを送信する。ＳＣ１１０７において、ジョブ管理サービス４０３は、スレッドの偽装を解除する。ＳＣ１１０８において、ジョブ管理サービス４０３は、パネル・アプリケーション４０７へ印刷実行結果（成否）を返信する。そして、処理を終了する。
【０１０７】
［第５の制御処理フロー］
図１２は、本実施形態に係るプリントシステムにおける第５の制御処理手順の一例を示すフローチャートであり、図４に示した５−１から５−４までの処理手順に対応する。
【０１０８】
ＳＥにて示す処理は、図４に示したパネル・アプリケーション４０７による印刷ジョブ削除指示処理に対応する。これらフローチャートの処理は、図１に示した複合機１０２のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１０９】
ＳＣにて示す処理は、図４に示したジョブ管理サービス４０３による印刷ジョブ削除処理に対応する。これらフローチャートの処理は、図１に示したプリントサーバ１０１のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１１０】
ＳＤにて示す処理は、図４に示したアドレス管理サービス４０５による印刷ジョブ識別子登録解除処理に対応する。これらフローチャートの処理は、図１に示したアドレス管理サーバ１０３のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１１１】
まず、パネル・アプリケーション４０７による印刷ジョブ削除指示処理を説明する。なお、前述した通り、本処理の呼び出しは、図１１のＳＥ１１０６により行われるが、図１６（ｃ）に示す消去ボタン１４２１の押下をユーザから受け付けた場合も同様に当ステップを呼び出すことが可能である。パネル・アプリケーション４０７の処理が開始されると、ＳＥ１２０１において、パネル・アプリケーション４０７は、削除対象の印刷ジョブのＧＵＩＤを取得する。ＳＥ１２０２において、パネル・アプリケーション４０７は、ジョブ管理サービス４０３へ印刷ジョブ削除指示コマンドを送信する。このときＳＥ１２０１で取得したＧＵＩＤも併せて送信する。そして、処理を終了する。
【０１１２】
次にジョブ管理サービス４０３による印刷ジョブ削除処理を説明する。ジョブ管理サービス４０３の処理が開始されると、ＳＣ１２０１において、ジョブ管理サービス４０３は、パネル・アプリケーション４０７のＳＥ１２０２から印刷ジョブ削除指示コマンドを受信する。このとき、削除対象の印刷ジョブのＧＵＩＤも併せて受信する。ＳＣ１２０２において、ジョブ管理サービス４０３は、アドレス管理サービス４０５へ印刷ジョブ識別子登録解除コマンドを送信する。このとき、ＳＣ１２０１で取得したＧＵＩＤも併せて送信する。
【０１１３】
ＳＣ１２０３において、ジョブ管理サービス４０３は、図４に示すジョブ管理ＤＢ４０４からＳＣ１２０１で得たＧＵＩＤと一致するレコードを探索する。そして、ＳＣ１２０４において、ジョブ管理サービス４０３は、探索して得られたレコードからＥＭＦＳＰＯＯＬのファイル名を取得する。ＳＣ１２０５において、ジョブ管理サービス４０３は、取得したファイル名に対応するＥＭＦＳＰＯＯＬのファイルを削除する。ＳＣ１２０６において、ジョブ管理サービス４０３は、図４に示すジョブ管理ＤＢ４０４からＳＣ１２０３で検索して得られたレコードを削除する。そして、処理を終了する。
【０１１４】
次にアドレス管理サービス４０５による印刷ジョブ識別子登録解除処理を説明する。アドレス管理サービス４０５の処理が開始されると、ＳＤ１２０１において、アドレス管理サービス４０５は、ジョブ管理サービス４０３のＳＣ１２０２から印刷ジョブ識別子登録解除コマンドを受信する。このとき対象の印刷ジョブ識別子であるＧＵＩＤも併せて受信する。ＳＤ１２０２において、アドレス管理サービス４０５は、図４のアドレス管理ＤＢ４０６からＳＤ１２０１で取得したＧＵＩＤと一致するレコードを探索する。そして、ＳＤ１２０３において、アドレス管理サービス４０５は、図４のジョブ管理ＤＢ４０４からＳＤ１２０２で探索し得られたレコードを削除する。そして、処理を終了する。
【０１１５】
［システムにおいて発生する課題］
これまで説明してきた本実施形態の係るプリントシステムにおいて、以下のような課題が発生する。条件としては、クライアントＰＣ１００においてアプリケーション４００から印刷指示されたときに渡される印刷設定の用紙が「ユーザ登録用紙」である場合に発生する。ここでの、「ユーザ登録用紙」とは、各ベンダが用意している用紙の他にユーザが独自に用紙の幅や高さ、余白などを設定し、クライアントＰＣ１００の記憶領域に保存することができる用紙のことを指す。このユーザ登録用紙は、Ｗｉｎｄｏｗｓ  ＯＳでは、フォームＤＢ４０９としてＯＳに標準で搭載されている。この登録されたユーザ登録用紙は、クライアントＰＣ１００内のクライアント・アプリケーションやプリンタドライバからも参照することができ、その用紙の設定を使用して印刷時に用いることも可能である。ただし、このフォームＤＢ４０９は、そのクライアントＰＣ内からのみ参照可能であり、特別な機構を設けない限り外部からの参照は行えない。ここでの特別な機構とは、例えばＷｉｎｄｏｗｓ  ＯＳではサーバ側で共有したプリンタをクライアントＰＣ側でネットワークインストールして使用するポイントアンドプリント接続が挙げられる。
【０１１６】
この環境下において、クライアントＰＣのプリンタドライバはサーバ上のフォームＤＢの用紙情報を参照できるようになる。このように特別な機構を設けない環境では、フォームＤＢの用紙情報を外部から参照することはできない。従って、先に示した条件で印刷を行おうとするとユーザが意図した用紙サイズとは全く別の用紙サイズで出力してしまう可能性がある。
【０１１７】
具体的な例として図１８を使って説明する。プルプリントシステムの詳細な説明は既に行っているので省略する。まず、クライアントＰＣ１００のクライアント・アプリケーション４００がフォームＤＢ４０９に登録されている用紙「ｕｓｒ１」（高さ：４２００、幅：２９７０  ※単位は０．１ｍｍ）を印刷設定情報に設定して印刷指示したとする。仮想プリンタドライバ４０１は指定されたｕｓｒ１のままプリントプロセッサ（不図示）を介してプリントサーバ１０１のジョブ管理サービス４０３に印刷ジョブを転送する。転送された印刷ジョブはジョブ管理サービス４０３によって特定の格納場所（ジョブ管理ＤＢ４０４）に保存される。プリンタドライバ４０８は複合機１０２からのプルプリント指示があった場合、ジョブ管理サービス４０３を介して該当する印刷ジョブを取得し、ＰＤＬに変換した後、指示された複合機１０２に転送する。このとき、プリントサーバ１０１のプリンタドライバ４０８は、印刷設定に設定されている用紙の「ｕｓｒ１」がサーバ側のフォームＤＢに登録されていないため、適当な用紙に変換してしまう。大半のプリンタドライバはデフォルトの用紙（Ａ４）に変換してしまうのでユーザが指定した「ｕｓｒ１」と異なる用紙で印刷されてしまう。
【０１１８】
［課題に対する処理］
上記問題を解決するための処理を図１９のフローチャートに従って説明する。本説明ではクライアントＰＣ１００のプリントプロセッサ４０２が実装することを想定している。従って、本実施形態においては、以下に述べるフローチャートの処理は、図１に示したクライアントＰＣ１００のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１１９】
まず、プリントプロセッサ４０２は、仮想プリンタドライバ４０１より印刷ジョブを受信し、その印刷ジョブに含まれている印刷設定情報から用紙サイズの情報を取得する（ＳＢ７２１）。これにより、第一取得手段を実現する。プリントプロセッサ４０２は、取得した用紙サイズが「ユーザ登録用紙」か否かを判定する（ＳＢ７２２）。ユーザ登録用紙だった場合（ＳＢ７２２にてＹＥＳ）、印刷設定情報に定義された用紙サイズの情報を「ユーザ定義用紙」に変換する（ＳＢ７２３）。「ユーザ登録用紙」は、ユーザが新たにフォームＤＢ４０９に定義した用紙情報であるのに対し、この「ユーザ定義用紙」は、Ｗｉｎｄｏｗｓが標準で定義している用紙である。なお、本処理は、図４に示す１−３の工程においてフォームＤＢ４０９を参照することにより、実現される。
【０１２０】
通常、Ｗｉｎｄｏｗｓ上で印刷を行う際、クライアント・アプリケーションは印刷設定情報の用紙サイズには予め決められた一意のＩＤ（用紙ＩＤ）のみを設定する。プリンタドライバは、その用紙ＩＤを参照して印刷する際に用いる用紙を決定する。ただし、用紙ＩＤが「ユーザ定義用紙」である場合には、この用紙ＩＤの他に、印刷処理時に用いられる用紙の幅、高さを別途設定しなければならない。逆にいうと、用紙ＩＤを「ユーザ定義用紙」にしておくと、一般的なプリンタドライバは印刷設定情報に設定された幅と高さの情報を参照して印刷する用紙を決定する。
【０１２１】
この機能を利用して、プリントプロセッサ４０２は、クライアント・アプリケーション４００から指定されたユーザ登録用紙に定義された幅と高さの情報をフォームＤＢ４０９から取得する（ＳＢ７２４）。そして、プリントプロセッサ４０２は、取得した情報を印刷ジョブの印刷設定情報に設定する（ＳＢ７２５）。これにより、クライアントＰＣ１００でユーザがどのような用紙を登録し、その用紙を設定して印刷指示を行ったとしても、プルプリント時には正しい幅と高さでの用紙で出力することが可能となる。
【０１２２】
本実施形態では、クライアントＰＣ１００のプリントプロセッサ４０２で実装することを前提としていたが、この処理を仮想プリンタドライバ４０１で行ってもよい。その場合は、クライアント・アプリケーション４００からの印刷指示時（１−１）に渡される印刷設定情報に含まれる用紙サイズの情報で判定する。また、プリントサーバ１０１のジョブ管理サービス４０３が行ってもよい。その場合は、クライアントＰＣ１００上の仮想プリンタドライバ４０１、もしくはプリントプロセッサ４０２が指定されているユーザ登録用紙の幅、高さを印刷ジョブに付加するなどの方法で通知することにより実現できる。この場合には、プリントサーバ１０１にて、フォームＤＢを備える構成としても構わない。
【０１２３】
本実施形態では、ユーザ登録用紙が指定されている場合に、幅と高さの情報を取得して印刷指示を行った。しかし、この情報に限定されるものではなく、ユーザが印刷時に設定する他の用紙に対する項目について取得しても構わない。
【０１２４】
＜第二実施形態＞
第一実施形態では、印刷設定情報における用紙サイズの情報を「ユーザ登録用紙」から「ユーザ定義用紙」に変更してしまう。そのため、複合機１０２からのプルプリント時に、ユーザが意図した用紙サイズ以外の印刷設定になり、不整合が発生することがある。
【０１２５】
具体的な例として以下に説明する。前提として、複合機１０２は、ユーザ登録用紙の設定では両面印刷が可能で、ユーザ定義用紙の設定では両面印刷は不可の装置であるとする。まず、クライアントＰＣ１００のクライアント・アプリケーション４００で用紙サイズを「ユーザ登録用紙」とし、かつ「両面印刷」と設定して印刷指示を行う。この印刷指示に伴う印刷ジョブを受信したプリントプロセッサ４０２は用紙サイズ（ＩＤ）の情報を参照し、「ユーザ登録用紙」から「ユーザ定義用紙」に変更する。複合機１０２からのプルプリント指示を受けて、プリンタドライバ４０８はこの印刷ジョブを受け取る。ここで印刷設定情報を参照すると、「ユーザ定義用紙」が設定されているので、両面印刷ができないと判定し、印刷設定情報を「両面印刷」から「片面印刷」に設定変更する。ちなみに、ある印刷設定（用紙サイズ）が原因で別の印刷設定（両面印刷）を変更する処理を禁則処理と呼ぶこともある。「ユーザ定義用紙」に設定が変更された結果、上記禁則処理により、プルプリント時にユーザが意図した両面印刷ではなく、片面印刷で出力されてしまう。
【０１２６】
［処理フロー］
上記問題を解決するための処理を図２０のフローチャートに従って説明する。以下に述べるフローチャートの処理は、図１に示したクライアントＰＣ１００のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。なお、ＳＢ７３１〜ＳＢ７３５は、第一実施形態において、図１９を用いて述べたＳＢ７２０〜ＳＢ７２５と同じ処理なので説明は省略する。
【０１２７】
プリントプロセッサ４０２は、仮想プリンタドライバ４０１より受信した印刷ジョブに含まれる印刷設定情報から出力用紙サイズ情報を取得する（ＳＢ７３６）。この出力用紙サイズについての説明は後述する。これにより第二取得手段を実現する。ＳＢ７３７にて、プリントプロセッサ４０２は、用紙サイズ情報と出力用紙サイズ情報とにおいて設定される用紙サイズが変わらない（同一である）か否かを判定する。ここでは出力用紙サイズの設定値が「用紙サイズと同じ」と設定されているか否かで判定することができる。出力用紙サイズに設定された設定値が「用紙サイズと同じ」である場合（ＳＢ７３７にてＹＥＳ）、ＳＢ７３３にて変更した「ユーザ登録用紙」を出力用紙サイズに設定する（ＳＢ７３８）。
【０１２８】
ここで設定される「出力用紙サイズ」とは、実際に出力する用紙サイズを設定することを想定して定義されている。これは、ＯＳの標準的な定義ではなく、ベンダ独自に定義可能な項目であり、各ベンダで独自にフォーマットが定義されるものである。例えば、Ｗｉｎｄｏｗｓでは、印刷設定のＤＥＶＭＯＤＥ構造体の中で、「標準部」と「拡張部」とがあり、それぞれの部位は目的に応じて用いられる。ＤＥＶＭＯＤＥ構造体において、「用紙サイズ」の情報は標準部に定義され、「出力用紙サイズ」の情報は拡張部に定義される。そのため、この出力用紙サイズの設定値は、仮想プリンタドライバ４０１のＤＥＶＭＯＤＥ構造体の拡張部のフォーマットを解釈可能なプリンタドライバのみ参照できる情報となる。
【０１２９】
従って、「標準部」に設定された情報はプリンタドライバ（複合機）に依存せずに使用でき、「拡張部」に設定された情報はプリンタドライバに依存して、使用の可否が異なる。なお、「用紙サイズと同じ」という設定値は、ＤＥＶＭＯＤＥ構造体における拡張部の「出力用紙サイズ」の項目に設定可能な値である。また通常のプリンタドライバは用紙サイズに設定された用紙情報よりも出力用紙サイズに設定された用紙情報（出力用紙情報）を優先する。なお、本実施形態において、ＤＥＶＭＯＤＥ構造体の拡張部を解釈可能なプリンタドライバは、プリントサーバ１０１にインストール済みであるものとする。
【０１３０】
以上、もしクライアントＰＣ１００で登録したユーザ登録用紙と同じ用紙情報をプリントサーバ１０１にも登録済みであれば、プリンタドライバ４０８は、ユーザ登録用紙の情報を使って他の印刷設定を禁則するか否かを判定する。ここでのユーザ登録用紙の情報とは、「出力用紙サイズ」に設定された用紙情報となる。その結果、プルプリント時にユーザが設定した両面印刷で出力することが可能となる。
【０１３１】
＜第三実施形態＞
第一実施形態では、印刷設定情報の用紙サイズに「ユーザ登録用紙」を設定された場合に「ユーザ定義情報」に変換する例を説明した。本実施形態では、第二実施形態で説明した印刷設定情報の出力用紙サイズ（拡張部）に「ユーザ登録用紙」が設定された場合も、用紙サイズの設定と同様に設定値を「ユーザ定義用紙」に変換する。これにより、用紙サイズの設定値と出力用紙サイズの設定値との間に生じうる不整合の問題も解決できる。
【０１３２】
なお、本実施形態において、指定されたユーザ登録用紙の情報は、標準部に設定されるようにしても良いし、拡張部に設定するようにしてもよい。
【０１３３】
＜第四実施形態＞
また、より詳細な用紙情報をプリントサーバ１０１に通知するために、プリントプロセッサ４０２は、印刷設定情報に設定された用紙サイズが「ユーザ登録用紙」だった場合、フォームＤＢ４０９から余白の情報も取得し、印刷設定に反映する。
【０１３４】
これにより、用紙に対する更に詳細な情報を設定し、印刷時に用いることができる。なお、第一実施形態と併せて、幅、高さ、余白の情報を用いて印刷時に設定できる実施形態を示したが、この他の情報を取得するようにしても構わない。例えば、余白の位置（上下左右）について、更に詳細な情報を取得しても構わない。
【０１３５】
＜第五実施形態＞
また、クライアント・アプリケーション４００からの印刷指示時に、印刷設定情報に設定された用紙サイズが「ユーザ登録用紙」だった場合、第一実施形態で示したユーザ定義サイズに変更する処理を行うか否かの確認をユーザに提示する。提示する具体的なＵＩの例を図２１に示す。図２１に示す確認画面において、ユーザにより「はい」ボタン２１０１が押された場合、プリントプロセッサ４０２は第一実施形態に示す処理を行う。一方、ユーザにより「いいえ」ボタン２１０２が押された場合、用紙サイズの設定が「ユーザ登録用紙」であっても、印刷設定情報の用紙サイズを「ユーザ定義用紙」に変更しないで印刷ジョブを送信する。これは設定したユーザ登録用紙と同様の用紙が予めプリントサーバに登録されていることが分かっている場合などに適用することにより余計な変換処理を省略することが可能となる。
【０１３６】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005719198.tif 000002
【図２】
0005719198.tif 000003
【図３】
0005719198.tif 000004
【図４】
0005719198.tif 000005
【図５】
0005719198.tif 000006
【図６】
0005719198.tif 000007
【図７】
0005719198.tif 000008
【図８】
0005719198.tif 000009
【図９】
0005719198.tif 000010
【図１０】
0005719198.tif 000011
【図１１】
0005719198.tif 000012
【図１２】
0005719198.tif 000013
【図１３】
0005719198.tif 000014
【図１４】
0005719198.tif 000015
【図１５】
0005719198.tif 000016
【図１６】
0005719198.tif 000017
【図１７】
0005719198.tif 000018
【図１８】
0005719198.tif 000019
【図１９】
0005719198.tif 000020
【図２０】
0005719198.tif 000021
【図２１】
0005719198.tif 000022