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