〔第1実施形態〕
以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本発明の情報処理装置およびプリントサーバおよび印刷管理サーバおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図である。
図1の「事業所A」に示すように、本実施形態のプリントシステムは、1又は複数のクライアントPC100(例えば、ユーザ毎)、1又は複数のプリントサーバ200(例えば、階毎に設置)、1又は複数の複合機300(例えば、階毎に設置),印刷管理サーバ400、1又は複数のログインサービスPC500(例えば、階毎に設置)、ディレクトリサービスサーバ600がローカルエリアネットワーク(LAN)700を介して接続される構成となっている。
クライアントPC100には、プリンタドライバがインストールされており、このプリンタドライバは、アプリケーションプログラムから受け取ったデータに基づいて印刷データを生成し、該印刷データをプリントサーバ200等へ送信し、プリントサーバ200の所定の格納場所(スプール領域)に格納させることができる。
また、クライアントPC100のプリンタドライバは、プリントサーバ200に送信した印刷データに対応する書誌情報データを生成し、印刷管理サーバ400に送信して、該印刷管理サーバ400の所定の格納場所に格納させることができる。
プリントサーバ200は、外部から受信したLPRを実行するためのコマンドに基づいて上記所定の格納場所に格納している印刷データを複合機300へ転送制御する。
印刷管理サーバ400は、書誌情報DB(後述する図10に示す)を備え、本実施形態の「プルプリント」実行時に、クライアントPC100から送信される書誌情報(プリントサーバ200内に蓄積された印刷データに対応する書誌情報)を受信し、書誌情報DBにより記憶管理する。また、印刷管理サーバ400は、ICカード認証用テーブル(後述する図18に示す)を記憶し、複合機300からのICカードによる認証依頼に応じて、該ICカード認証用テーブルを用いて認証処理を行う。さらに、印刷管理サーバ400は、複合機300からの印刷要求(書誌情報DBで管理される書誌情報に対応する印刷データの印刷要求)に応じて、該印刷データの印刷指示を書誌情報内に記載されたIPアドレスに対応する装置(プリントサーバ200)に行う。
ログインサービスPC500は、複合機300のログインサービスとして、ディレクトリサービスサーバ600で記憶管理されているクライアントPC100のログインユーザ名,パスワード(例えば、マイクロソフト社のWindows(登録商標)のログインユーザ名,パスワード)に基づく認証処理(SSO(Single Sign−ON))を行うものであり、例えば、キヤノン社のセキュリティエージェント(Security Agent)を搭載したパーソナルコンピュータである。
ディレクトリサービスサーバ600は、ネットワーク上に存在するサーバ、クライアント、プリンタ等のハードウェア資源や、それらを使用するユーザの属性(クライアントPC100のログインユーザ名,パスワード(例えば、マイクロソフト社のWindows(登録商標)のログインユーザ名,パスワード)を含む)、アクセス権等の情報を一元記憶管理するものであり、例えば、アクティブディレクトリ(Active Directory)機能を搭載したサーバである。
また、本実施形態のプリントシステムは、上述した構成の「事業所A」と、1又は複数のクライアントPC100,1又は複数のプリントサーバ200,1又は複数の複合機300がLAN700を介して接続される構成の1又は複数の「事業所B」とが、WAN800を介して接続される構成であってもよい。
以下、図2を用いて、図1に示したクライアントPC100,プリントサーバ200,印刷管理サーバ400,ログインサービスPC500,ディレクトリサービスサーバ600に適用可能な情報処理装置のハードウェア構成について説明する。
図2は、図1に示したクライアントPC100,プリントサーバ200,印刷管理サーバ400,ログインサービスPC500,ディレクトリサービスサーバ600に適用可能な情報処理装置のハードウェア構成を示すブロック図である。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)210等の表示器にへの表示を制御する。なお、図2では、CRT210と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN700)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。
次に、図3を用いて、図1に示した複合機300を制御するコントローラユニットのハードウェア構成について説明する。
図3は、図1に示した複合機300のコントローラユニットのハードウェア構成の一例を示すブロック図である。
図3において、316はコントローラユニットで、画像入力デバイスとして機能するスキャナ314や、画像出力デバイスとして機能するプリンタ312と接続する一方、LAN(例えば、図1に示したLAN700)や公衆回線(WAN)(例えば、PSTNまたはISDN等)と接続することで、画像データやデバイス情報の入出力を行う。
コントローラユニット316において、301はCPUで、システム全体を制御するプロセッサである。302はRAMで、CPU301が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリでもある。
303はROMで、システムのブートプログラムや各種制御プログラムが格納されている。304はハードディスクドライブ(HDD)で、システムを制御するための各種プログラム,画像データ等を格納する。
307は操作部インタフェース(操作部I/F)で、操作部(UI)308とのインタフェース部であり、操作部308に表示する画像データを操作部308に対して出力する。また、操作部I/F307は、操作部308から本システム使用者が入力した情報(例えば、ユーザ情報等)をCPU301に伝える役割をする。なお、操作部308はタッチパネルを有する表示部を備え、該表示部に表示されたボタンを、ユーザが押下(指等でタッチ)することにより、各種指示を行うことができる。
305はネットワークインタフェース(Network I/F)で、ネットワーク(LAN)に接続し、データの入出力を行う。306はモデム(MODEM)で、公衆回線に接続し、FAXの送受信等のデータの入出力を行う。
318は外部インタフェース(外部I/F)で、USB、IEEE1394,プリンタポート,RS−232C等の外部入力を受け付けるI/F部であり、本実施形態においては認証で必要となるICカードの読み取り用のカードリーダ319が外部I/F部318に接続されている。そして、CPU301は、この外部I/F318を介してカードリーダ319によるICカードからの情報読み取りを制御し、該ICカードから読み取られた情報を取得可能である。以上のデバイスがシステムバス309上に配置される。
320はイメージバスインタフェース(IMAGE BUS I/F)であり、システムバス309と画像データを高速で転送する画像バス315とを接続し、データ構造を変換するバスブリッジである。
画像バス315は、PCIバスまたはIEEE1394で構成される。画像バス315上には以下のデバイスが配置される。
310はラスタイメージプロセッサ(RIP)で、例えば、PDLコード等のベクトルデータをビットマップイメージに展開する。311はプリンタインタフェース(プリンタI/F)で、プリンタ312とコントローラユニット316を接続し、画像データの同期系/非同期系の変換を行う。また、313はスキャナインタフェース(スキャナI/F)で、スキャナ314とコントローラユニット316を接続し、画像データの同期系/非同期系の変換を行う。
317は画像処理部で、入力画像データに対し補正、加工、編集を行ったり、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。また、これに加えて、画像処理部317は、画像データの回転や、多値画像データに対してはJPEG、2値画像データはJBIG、MMR、MH等の圧縮伸張処理を行う。
スキャナ部314は、原稿となる紙上の画像を照明し、CCDラインセンサで走査することで、ラスタイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダのトレイにセットし、装置使用者が操作部308から読み取り起動指示することにより、CPU301がスキャナ314に指示を与え、フィーダは原稿用紙を1枚ずつフィードし原稿画像の読み取り動作を行う。
プリンタ部312は、ラスタイメージデータを用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、CPU301からの指示によって開始する。なお、プリンタ部312には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセットがある。
操作部308は、LCD表示部を有し、LCD上にタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されるとその位置情報を操作部I/F307を介してCPU301に伝える。また、操作部308は、各種操作キーとして、例えば、スタートキー、ストップキー、IDキー、リセットキー等を備える。
ここで、操作部308のスタートキーは、原稿画像の読み取り動作を開始する時などに用いる。スタートキーの中央部には、緑と赤の2色LEDがあり、その色によってスタートキーが使える状態にあるかどうかを示す。また、操作部308のストップキーは、稼働中の動作を止める働きをする。また、操作部308のIDキーは、使用者のユーザIDを入力する時に用いる。リセットキーは、操作部からの設定を初期化する時に用いる。
カードリーダ319は、CPU301からの制御により、ICカード(例えば、ソニー社のフェリカ(FeliCa)(登録商標))内に記憶されている情報を読み取り、該読み取った情報を外部I/F318を介してCPU301へ通知する。
以上のような構成によって、複合機300は、スキャナ314から読み込んだ画像データをLAN700上に送信したり、LAN700から受信した印刷データをプリンタ312により印刷出力することができる。
また、スキャナ314から読み込んだ画像データをモデム306により、公衆回線上にFAX送信したり、公衆回線からFAX受信した画像データをプリンタ312により出力することできる。
以下、図4を用いて、本実施形態のプリントシステムにおけるプルプリントの全体の流れについて説明する。
まず、本実施形態のプルプリントを実行するための前提について説明する。
まず、プリントサーバ200に本実施形態のプルプリントを実現するためのプリンタドライバ(以下、カスタムドライバ)をインストールしておく。
なお、プリンタドライバは、アプリケーションから指示された印字や描画命令の出力に基づいて印刷データを生成するだけでなく、プリンタドライバやプリンタが持つ機能を制御するための印刷設定を行う機能(ユーザインタフェース)と、その印刷設定をインストールされた論理プリンタ毎に外部記憶装置に記憶する機能等を有する。また、この印刷設定は、米国Microsoft社のWindows(登録商標)の場合、DevMode構造体に格納される。このDevMode構造体とは、プリンタが使用可能な機能,レイアウト設定,仕上げ設定,給・排紙設定,印字品質設定等の論理プリンタに関するデフォルトの動作条件を含む各種設定を記憶するために、米国Microsoft社が規定したものであり、インストールされた論理プリンタ毎に外部記憶装置に記憶される。
本実施形態のカスタムドライバは、通常のプリンタドライバと兼用可能になっており、前記論理プリンタごとに記憶される印刷設定をプルプリント設定にしておくことにより、該論理プリンタが印刷先として指定された場合、本実施形態のプルプリントを実行可能となる。
また、各クライアントPC100へは、上記プルプリント設定されたカスタムドライバを前記プリントサーバ200からポイント&プリント等でダウンロードしてインストールして、該カスタムドライバの論理プリンタを追加しておく(なお、この論理プリンタはプルプリント設定されたものとなる)。この各クライアントPC100に追加されたプルプリント設定されたカスタムドライバの論理プリンタに対して、ユーザが印刷指示を行うことにより、本実施形態のプルプリントが実行される。
以下、本実施形態のプルプリントの全体の流れについて説明する。
図4は、本実施形態のプリントシステムにおけるプルプリント(どこでもプリント)の全体の流れ説明する模式図である。
図4に示すように、まず、ユーザは、クライアントPC100にログインし((1)−1)、該クライアントPC100で実行されるアプリケーションプログラムから上記プルプリント設定されたカスタムドライバに対応する論理プリンタへの印刷指示を行う((1)−2)。
この印刷指示に応じて、クライアントPC100のアプリケーションプログラムは、グラフィックエンジンを介して、カスタムドライバにデータを送信する。クライアントPC100のカスタムドライバは、該アプリケーションプログラムからグラフィックエンジンを介して受け取ったデータに基づいて印刷データを生成する。そして、クライアントPC100は、生成した印刷データをプリントサーバ200に送信して((2)−1)、ネットワーク上でのファイル共有の仕組みを用いてプリントサーバ200の所定の格納場所(予め設定されているスプール領域)に格納させる((2)−2)。なお、上記プリントサーバ200の所定の格納場所に格納される印刷データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名とする(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.prs)。また、プリントサーバ200は、上記所定の格納場所に印刷データが格納されても、印刷装置への送信は行わない。
次に、クライアントPC100は、プリントサーバ200に送信した印刷データの書誌情報データを生成し、該生成した書誌情報データを印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所(予め設定されているディレクトリ)に格納させる((3)−1)。なお、上記印刷管理サーバ400の所定の格納場所に格納される印刷管理データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名とする(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.inf)。
印刷管理サーバ400は、上記所定のディレクトリを監視し、該所定のディレクトリにクライアントPC100から書誌情報データファイルが格納されると、該書誌情報データファイルを解析し書誌情報を書誌情報DB(印刷管理サーバ400の外部記憶装置上に構築される)に登録する((3)−2)。
また、複合機300は、カードリーダ319により読み取り可能なICカードを検知すると、該ICカード内の個人認証情報を読み取り、該読み取った個人認証情報を認証要求として印刷管理サーバ400に送信する((4)−1)。個人認証情報は、認証に用いられる情報であり該ICカードの製造番号でも良い。
印刷管理サーバ400は、複合機300より個人認証情報を受信すると、該個人認証情報の認証処理を印刷管理サーバ400の外部記憶装置上に記憶されるICカード認証用テーブルに基づいて行い、認証結果を複合機300に返信する((4)−2)。なお、認証処理に成功した場合には、認証結果として、クライアントPC100のログインユーザIDを送信するものとする。
次に、複合機300は、印刷管理サーバ400から、認証に成功した旨の認証結果(クライアントPC100のログインユーザID)を受信すると、印刷管理サーバ400に印刷データ一覧要求を送信する((5)−1)。なお、印刷データ一覧要求には、クライアントPC100のログインユーザIDが含まれているものとする。
印刷管理サーバ400は、複合機300から印刷データ一覧要求を受信すると、該印刷データ一覧要求に含まれるログインユーザIDで書誌情報DBを検索して、該ログインユーザIDに対応する印刷データ一覧を生成し、複合機300に返信する((5)−2)。
複合機300は、印刷管理サーバ400から印刷データ一覧を受信すると、該印刷データ一覧を操作部308のUI上に表示する。そして、ユーザにより、印刷データが選択され、印刷指示がなされると、複合機300は、該選択された印刷データの印刷要求(出力指示)を印刷管理サーバ400に送信する(6)。なお、この印刷要求は、クライアントPC100のログインユーザ名,印刷データのタイムスタンプを含むものとする。
印刷管理サーバ400は、複合機300から印刷データの印刷要求(出力指示)を受信すると、該出力指示がなされた印刷データの書誌情報を、クライアントPC100のログインユーザ名,印刷データのタイムスタンプをキーにして書誌情報DBから検索し、該検索した書誌情報から該当する印刷データを格納しているプリントサーバ200を特定し、該プリントサーバ200に該当する印刷データの印刷指示を送信する(7)。なお、上記印刷指示は、該当する印刷データファイル名を含む印刷コマンドである。
プリントサーバ200は、印刷管理サーバ400から印刷指示を受信すると、該印刷指示に基づいて印刷データを複合機300に送信して複合機300で印刷させる(8)。
以下、図5〜図7を参照して、図1に示したクライアントPC100における処理について説明する。
まず、図1に示したクライアントPC100上で動作するアプリケーションプログラム上での印刷指示について説明する。
図5は、図1に示したクライアントPC100上で動作するアプリケーションプログラムの印刷画面の一例を示す模式図であり、クライアントPC100のCPUの制御により表示器に表示される。
610はプリンタ選択部で、クライアントPC100に設定されている論理プリンタから、印刷を行う論理プリンタを選択するためのものである。
このプリンタ選択部610において、「どこでもモノクロ印刷」601は、本実施形態のプルプリント設定されたカスタムドライバ(特に、モノクロプリンタに対応する)に対応する論理プリンタとする。また、「どこでもカラー印刷」602は、本実施形態のプルプリント設定されたカスタムドライバ(特に、カラープリンタに対応する)に対応する論理プリンタとする。
さらに、「Cxxxx ix6060i」603,「Cxxxx ix3220」604は、通常のプリンタドライバに対応する論理プリンタとする。
プリンタ選択部610で、いずれかの論理プリンタを選択され、OKボタン605をポインティングデバイス等で指示されると、アプリケーションプログラムは、印刷のためのデータを、プリンタ選択部610で選択された論理プリンタに対応するプリンタドライバにグラフィックエンジンを介して送信する。
以下、プリンタ選択部610で「どこでもモノクロ印刷」601又は「どこでもカラー印刷」602が選択されて印刷指示がなされた場合のプリンタドライバの動作について説明する。
図6は、本発明のプリントシステムにおける第1の制御処理手順の一例を示すフローチャートであり、図1に示したクライアントPC100におけるプリンタドライバ処理に対応する。なお、このフローチャートの処理は、図1に示したクライアントPC100のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S101〜S107は各ステップを示す。
クライアントPC100のCPUにより実行されるカスタムドライバ(以下、クライアントPC100のカスタムドライバ)は、まず、アプリケーションプログラムから(グラフィックエンジンを介して)データを受け取ると、まず、ステップS101において、クライアントPC100のカスタムドライバは、アプリケーションプログラムで印刷先に選択された論理プリンタの印刷設定がプルプリントモードとなっているか否かを判定する。
ステップS101で、クライアントPC100のカスタムドライバは、印刷設定がプルプリントモードであると判定された場合には、ステップS102において、アプリケーションプログラムから受け取ったデータに基づいて印刷データを生成する。
次に、ステップS103において、クライアントPC100のカスタムドライバは、ステップS102で生成した印刷データを、プリントサブシステムを介して論理プリンタの印刷先に設定されたプリントサーバ200のカスタムドライバに送信して、ネットワーク上でのファイル共有の仕組みを用いてプリントサーバ200の所定の格納場所(スプール領域)に格納させる(図4の(2)−1)。なお、このプリントサーバ200の所定の格納場所に格納される印刷データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名となる(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.prs)。
そして、ステップS104において、クライアントPC100のカスタムドライバは、ステップS103で送信した印刷データの送信完了まで待機し、送信完了したと判定した場合には、ステップS105において、ステップS103で送信した印刷データの書誌情報データファイルを生成する。
次に、ステップS106において、クライアントPC100のカスタムドライバは、ステップS105で生成した書誌情報データファイルを印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所に格納させ(図4の(3)−1)、処理を終了する。なお、この印刷管理サーバ400の所定の格納場所に格納される印刷管理データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名となる(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.inf)。
一方、ステップS101で、クライアントPC100のカスタムドライバは、印刷設定がプルプリントモードでないと判定した場合には、ステップS107において、他の印刷処理を行う。即ち、クライアントPC100のカスタムドライバは、アプリケーションプログラムからグラフィックエンジンを介して受け取ったデータに基づいて印刷データを生成し、該生成した印刷データをプリントサブシステムを介してプリントサーバ(本実施形態のプルプリントを実行しないプリントサーバ)に送信する。この場合、受信したプリントサーバは、受信した印刷データを、順次対応するプリンタ(複合機)に送信し、該複合機で順次印刷されることになる。
以下、本実施形態の書誌情報データファイルのコンテンツを図7に示す。
図7は、本発明のプリントシステムにおける書誌情報データのデータ構成の一例を示すデータ構成図である。
図7に示すように、クライアントPC100から印刷管理サーバ400に送信される書誌情報データのファイル名は、"「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.inf"となる。
また、この書誌情報データは、クライアントPCのログインユーザ名,対応する印刷データが格納されているプリントサーバIPアドレス,対応する印刷データのカラー属性(カラーorモノクロ),対応する印刷データのドキュメント名,対応する印刷データの印刷部数,対応する印刷データの一部当たりのページ数等の情報を含む。
なお、本実施形態では、クライアントPC100にインストールされたカスタムドライバが、印刷データを生成し、該生成した印刷データをプリントサーバ200に送信してネットワーク上のファイル共有の仕組みを用いてプリントサーバ200のスプール領域に格納する構成となっているが、印刷データの生成をプリントサーバ200にインストールされたプリンタドライバにより実行させるように構成してもよい。この構成の場合、アプリケーションから出力されたデータに基づいてオペレーションシステム(OS)が中間ファイル(例えば、Windows(登録商標)ではエンハンストメタファイル)を生成し、該中間ファイルとクライアントPC100にインストールされたカスタムドライバの印刷設定情報を、OSが、プリンタサーバドライバ200に送信する。
以下、図8を参照して、上記他の実施形態におけるプリントサーバ200のプリンタドライバ処理について説明する。
図8は、本発明のプリントシステムにおける第2の制御処理手順の一例を示すフローチャートであり、他の実施形態におけるプリントサーバ200のプリンタドライバ処理に対応する。なお、このフローチャートの処理は、図1に示したプリントサーバ200のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S201〜S206は各ステップを示す。
プリントサーバ200のCPUにより実行されるカスタムドライバ(以下、プリントサーバ200のカスタムドライバ)は、まず、クライアントPC100からデータ(上記中間ファイルおよび印刷設定情報等を含む)を受け取ると、まず、ステップS201において、プリントサーバ200のカスタムドライバは、印刷設定がプルプリントモードとなっているか否かを判定する。
ステップS201で、プリントサーバ200のカスタムドライバは、印刷設定がプルプリントモードであると判定した場合には、ステップS202において、クライアントPC100から受信したデータに基づいて印刷データを生成する。
次に、ステップS203において、プリントサーバ200のカスタムドライバは、ステップS202で生成した印刷データを、所定の格納場所(スプール領域)に格納させる。なお、このプリントサーバ200の所定の格納場所に格納される印刷データのファイル名は、例えば、「タイムスタンプ」+「クライアントPC100のログインユーザID」.prsとなる。
そして、ステップS204において、プリントサーバ200のカスタムドライバは、ステップS203で格納した印刷データの書誌情報データファイルを生成する。
次に、ステップS205において、プリントサーバ200のカスタムドライバは、ステップS204で生成した書誌情報データファイルを印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所に格納させ、処理を終了する。なお、この印刷管理サーバ400の所定の格納場所に格納される印刷管理データのファイル名は、プリントサーバ200のカスタムドライバから指定されるファイル名となる(例えば、「タイムスタンプ」+「クライアントPC100のログインユーザID」.inf)。
一方、ステップS201で、プリントサーバ200のカスタムドライバは、印刷設定がプルプリントモードでないと判定した場合には、ステップS206において、他の印刷処理を行う。即ち、プリントサーバ200のカスタムドライバは、クライアントPC100から受信したデータに基づいて印刷データを生成し、該生成した印刷データをスプーリングしながらプリンタ(複合機300)に送信する。これにより、複合機で印刷されることになる。
以上説明したように、他の実施形態として、クライアントPC100にインストールされたカスタムドライバが、アプリケーションから出力されたデータに基づいてオペレーションシステム(OS)が中間ファイル(例えば、Windows(登録商標)ではエンハンストメタファイル)を生成し、該中間ファイルとクライアントPC100にインストールされたカスタムドライバの印刷設定情報を、OSが、プリンタドライバ200に送信し、そして、プリントサーバ200が、クライアントPC100から受信した中間ファイルから印刷データを生成し、該生成した印刷データを、プリントサーバ200の所定の格納場所(スプール領域)に格納させ、さらに、プリントサーバ200が、該格納した印刷データの書誌情報データファイルを生成し、該生成した書誌情報データを印刷管理サーバ400に送信するように構成してもよい。
以下、本発明の第1実施形態の説明に戻る。
以下、図9,図10を参照して、図1に示した印刷管理サーバ400における処理情報ファイル監視処理について説明する。
図9は、本発明のプリントシステムにおける第3の制御処理手順の一例を示すフローチャートであり、図1に示した印刷管理サーバ400における処理情報ファイル監視処理に対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S301〜S306は各ステップを示す。
印刷管理サーバ400のCPUは、ステップS301において、予め設定された監視時間になるまで待機し、予め設定された監視時間になったと判定した場合には、ステップS302において、所定の格納場所に書誌情報データファイルが格納されているか否かを判定する。
ステップS302で、印刷管理サーバ400のCPUが、所定の格納場所に書誌情報データファイルが格納されていると判定した場合には、ステップS303において、該格納されているいずれかの書誌情報データファイル(図7)をオープンし、ステップS304に進む。
ステップS304において、印刷管理サーバ400のCPUは、書誌情報データファイルを解析し、該書誌情報データファイルの情報を書誌情報DB(図10に示す)へ登録する(図4の(3)−2)。なお、登録に失敗した場合には、印刷管理サーバ400のCPUは、印刷管理サーバ400の外部記憶装置内のバックフォルダに格納するように制御する。
次に、ステップS305において、印刷管理サーバ400のCPUは、ステップS304で登録した書誌情報データファイルを上記所定の格納場所から削除し、ステップS302に戻り、次の書誌情報データファイルの有無を判定する。
一方、ステップS302で、印刷管理サーバ400のCPUが、所定の格納場所に書誌情報データファイルが格納されていないと判定した場合には、ステップS306に進み、終了指示の有無を判定し、終了指示がないと判定した場合には、ステップS301に戻り、次の監視時間まで待機する。
一方、ステップS306で、印刷管理サーバ400のCPUが、終了指示が有ると判定した場合には、処理を終了する。
以下、本実施形態の書誌情報DBを図10に示す。
図10は、本発明のプリントシステムにおける書誌情報DBのデータ構成の一例を示すデータ構成図である。
図10に示すように、印刷管理サーバ400の書誌情報DBのレコードは、タイムスタンプ,ユーザID,IPアドレス,カラー属性,ドキュメント名,印刷部数,1部当たりのページ数,ステータス等の情報から構成される。
上記タイムスタンプには、書誌情報データファイル名に含まれるタイムスタンプが格納される。また、ユーザ名には、書誌情報データファイル内に記載されるクライアントPC100のログインユーザ名が格納される。さらに、IPアドレスには、書誌情報データファイル内に記載されるプリントサーバIPアドレスが格納される。
また、カラー属性には、書誌情報データファイル内に記載される印刷データのカラー属性(カラーorモノクロ)が格納される。さらに、ドキュメント名には、書誌情報データファイル内に記載される印刷データのドキュメント名が格納される。また、印刷部数には、書誌情報データファイル内に記載される印刷データの印刷部数が格納される。また、1部当たりのページ数には、書誌情報データファイル内に記載される1部当たりのページ数が格納される。
さらに、ステータスには、対応する印刷データの印刷状態として、「印刷指示待ち」,「印刷指示済み」,「削除済み」のいずれかのステータスが格納される。なお、書誌情報データを書誌情報DBに登録する際には、まだ印刷指示されていないので、「印刷指示待ち」が格納される。
以下、図11〜図18を参照して、図1に示した複合機300におけるプルプリント処理について説明する。
図11は、本発明のプリントシステムにおける第4の制御処理手順の一例を示すフローチャートであり、図1に示した複合機300におけるプルプリント処理に対応する。なお、このフローチャートの処理は、図1に示した複合機300のCPU301がROM303又はHDD304に格納されたプログラムをRAM302上にロードして実行することにより実現される。また、図中、S401〜S425は各ステップを示す。
また、図12〜図16は、図1に示した複合機300の操作部308の表示部にCPU301の制御により表示される画面の模式図である。
さらに、図17は、図1に示した複合機300から印刷管理サーバ400に送信されるコマンドのデータ構造の一例を示すデータ構成図である。
また、図18は、図1に示した印刷管理サーバ400の外部記憶装置に記憶されるICカード認証テーブルのデータ構造の一例を示すデータ構成図である。
以下、図11のフローチャートに従って説明する。
まず、複合機300のCPU301は、ステップS401において、デフォルト表示画面(図12)を操作部308の表示部に表示するように制御し、ステップS402において、カードリーダ319により認証カード(ICカード)を検出したか否かを判定する。
ステップS402で、複合機300のCPU301が、カードリーダ319により認証カード(ICカード)を検出したと判定した場合には、ステップS403において、カードリーダ319により認証カード(ICカード)内のデータを読み取り、識別IDとして認証カード内に記憶されたカード製造番号を取得する。
次に、ステップS404において、複合機300のCPU301は、ICカード認証要求コマンドのコマンド識別子,ステップS403で取得したカード製造番号を含むICカード認証要求コマンド(図17(c))を印刷管理サーバ400に送信し(図4の(4)−1)、ステップS405に進む。なお、印刷管理サーバ400の外部メモリには、図18に示すICカード認証テーブルが記憶されており、印刷管理サーバ400は、複合機300から受け取ったICカードのカード製造番号に基づいて認証処理を行うことができる。
次に、ステップS405において、複合機300のCPU301は、印刷管理サーバ400より返信される認証結果を判定し、認証エラーである旨の認証結果が返信されたと判定した場合には、ステップS406において、エラー表示画面(図13)を操作部308の表示部に表示するように制御し、該エラー表示画面でOKボタン1401が押下されると、ステップS401に戻り、再度、デフォルト画面を表示制御する。
一方、ステップS405で、複合機300のCPU301が、印刷管理サーバ400より返信される認証結果として、クライアントPC100のログインユーザ名を取得した場合には、認証が成功した(認証OK)と判定し、ステップS415に進む。
一方、ステップS402で、複合機300のCPU301が、カードリーダ319により認証カード(ICカード)を検出していないと判定した場合には、ステップS407において、デフォルト画面でキーボード入力ボタン801が押下された(キーボード入力指示があった)か否かを判定し、キーボード入力指示があったと判定した場合には、図14に示すキー入力画面を操作部308の表示部に表示するように制御する。
そして、ステップS409において、複合機300のCPU301は、該キー入力画面でのユーザ名とパスワードの入力を待機し、該キー入力画面でのユーザ名とパスワードの入力等を検知すると、ステップS410に進む。詳細には、複合機300のCPU301は、該キー入力画面で、ユーザ名901,パスワード902への入力指示があると、図示しないキーボード画面を操作部308の表示部に表示制御し、該キーボード画面を用いてユーザ名901,パスワード902への入力が行われ、ログインボタン903が押下されるか、戻りボタンとしてのトップ画面ボタン904が押下されると、ステップS410に進む。
次に、ステップS410において、複合機300のCPU301は、戻りボタンとしてのトップ画面ボタン904が押下されたか否かを判定し、戻りボタンとしてのトップ画面ボタン904が押下されたと判定した場合には、ステップS401に戻り、再度、デフォルト画面を表示制御する。
一方、ステップS410で、複合機300のCPU301が、戻りボタンとしてのトップ画面ボタン904が押下されていないと判定した場合には、ステップS411において、複合機300のCPU301は、ログインボタン903が押下されたか否かを判定し、ログインボタン903が押下されていないと判定した場合には、ステップS409に戻る。
一方、ステップS411で、複合機300のCPU301が、ログインボタン903が押下されたと判定した場合には、ステップS412において、ユーザ名901,パスワード902に入力されたユーザ名,パスワードをログインサービスPC500を介して認証サーバとしてのディレクトリサービスサーバ600に送信する。
次に、ステップS413において、複合機300のCPU301は、ディレクトリサービスサーバ600よりログインサービスPC500を介して返信される認証結果を判定し、認証にエラーである旨の認証結果が返信されたと判定した場合には、ステップS414において、図示しないエラー表示画面を操作部308の表示部に表示するように制御し、該エラー表示画面でOKボタンが押下されると、ステップS401に戻り、再度、デフォルト画面を表示制御する。
一方、ステップS413で、複合機300のCPU301が、ディレクトリサービスサーバ600より返信される認証結果として、認証に成功した旨の認証結果が返信されたと判定した場合には、ステップS415に進む。
次に、ステップS415において、複合機300のCPU301は、印刷管理サーバ400に対して、印刷データ一覧要求コマンド識別子,ユーザ名(認証処理の際に、印刷管理サーバ400より返信されたユーザ名、又はディレクトリサービスサーバ600に送信したユーザ名),プリンタ種別(複合機300のカラー属性)を含む印刷データ一覧要求コマンド(図17(a))を印刷管理サーバ400に送信し(図4の(5)−1)、ステップS416に進む。
次に、ステップS416において、複合機300のCPU301は、印刷管理サーバ400より返信される印刷データ一覧データの受信に成功したか否かを判定し、印刷データ一覧データの受信に失敗したと判定した場合には、ステップS417に進み、図示しないエラー表示画面を操作部308の表示部に表示するように制御し、該エラー表示画面でOKボタンが押下されると、ステップS418に進み、空の印刷データ一覧データ画面(図15、但し印刷データ一覧1001は空白)を表示部に表示するように制御する。別の実施形態としてはエラー表示を行わず空の印刷データ一覧データ画面を表示するようにしても良い。なお、この場合、フローチャートには示していないが、印刷データ一覧画面で画面切換ボタン1002が2度続けて押下されると、複合機300のCPU301は、再度、印刷データ一覧要求コマンド(図17(a))を印刷管理サーバ400に送信するように制御するものとする。
一方、ステップS416で、複合機300のCPU301は、印刷管理サーバ400より返信される印刷データ一覧データの受信に成功したと判定した場合には、ステップS418に進み、受信した印刷データ一覧データに基づく印刷データ一覧画面(図15)を操作部308の表示部に表示するように制御し、ステップS419に処理を進める。なお、フローチャートには示していないが、ステップS416で、複合機300のCPU301が、印刷管理サーバ400より印刷データ一覧データの代わりにデータなしのメッセージを受信したと判定した場合には、ステップS418において、空の印刷データ一覧データ画面を操作部308の表示部に表示するように制御し、さらに、空の印刷データ一覧データ画面の上に図示しないデータなしのメッセージ画面を表示する。そして、該データなしのメッセージ画面で、OKボタンが押下されると、該データなし画面を閉じ、ステップS419に処理を進めるように制御するものとする。なお、図15に示す印刷データ一覧画面は、当該複合機300にログインしているユーザに対応し、且つ、当該複合機300で処理可能な印刷データ(詳細には、当該複合機300で処理可能な印刷データに対応する書誌情報データ)を一覧表示する画面に対応する。
次に、ステップS419において、複合機300のCPU301は、印刷データ一覧画面での印刷データ選択,印刷指示,消去指示,画面切替え指示等の入力を待機し、印刷データ一覧画面での入力を検知すると、ステップS420に進む。
ステップS420において、複合機300のCPU301は、印刷データ一覧画面で、画面切換ボタン1002により画面切替えが指示されたか否かを判定し、画面切替えが指示されたと判定した場合には、ステップS421に進み、他の処理用画面(図16)を操作部308の表示部に表示するように制御し、他の処理へ移行する。
一方、ステップS420で、複合機300のCPU301が、印刷データ一覧画面で、画面切換ボタン1002により画面切替えが指示されていないと判定した場合には、ステップS422において、複合機300のCPU301は、印刷データ一覧画面で、印刷ボタン1003により印刷指示がなされたか否かを判定し、印刷指示がなされたと判定した場合には、ステップS423に進み、印刷データ一覧1001で選択された印刷データの印刷要求(図17(b)に示すように、印刷要求コマンド識別子,ユーザ名,印刷データ一覧1001で選択された印刷データのタイムスタンプ(複数可))を印刷管理サーバ400に送信し(図4の(6))、ステップS415の処理に戻る。なお、印刷データ一覧1001で印刷データが選択されていない状態で印刷指示がなされた場合には、印刷データを選択する旨のメッセージを表示した後に、そのままステップS415に戻るものとする。
一方、ステップS422で、複合機300のCPU301が、印刷データ一覧画面で、印刷ボタン1003により印刷指示なされていないと判定した場合には、ステップS424に進み、複合機300のCPU301は、印刷データ一覧画面で、消去ボタン1004により消去指示がなされたか否かを判定し、消去指示がなされたと判定した場合には、ステップS425において、印刷データ一覧1001で選択された印刷データの削除要求(図17(b)に示すように、削除要求コマンド識別子,ユーザ名,印刷データ一覧1001で選択された印刷データのタイムスタンプ(複数可))を印刷管理サーバ400に送信し、ステップS415の処理に戻る。なお、印刷データ一覧1001で印刷データが選択されていない状態で消去指示がなされた場合には、印刷データを選択する旨のメッセージを表示した後に、そのままステップS415に戻るように制御するものとする。
なお、図11のフローチャートには示していないが、印刷管理サーバ400からコマンド受信に失敗した旨のエラー通知を受信した場合には、複合機300のCPU301は、コマンドを印刷管理サーバ400へ再送信するように制御する。
以下、図19〜図24を参照して、図1に示した印刷管理サーバ400における処理について説明する。
図19は、本発明のプリントシステムにおける第5の制御処理手順の一例を示すフローチャートであり、図1に示した印刷管理サーバ400における複合機からの要求処理ルーチンに対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S501〜S510は各ステップを示す。
まず、ステップS501において、印刷管理サーバ400のCPUは、終了指示が有るか否かを判定し、終了指示があると判定した場合には、そのまま処理を終了する。
一方、ステップS501で、印刷管理サーバ400のCPUが、終了指示が無いと判定した場合には、ステップS502において、複合機300から送信されるコマンドの受信を検知したか否かを判定し、コマンドの受信を検知していないと判定した場合には、ステップS501の処理に戻る。
一方、ステップS502で、印刷管理サーバ400のCPUが、複合機300から送信されるコマンドの受信を検知したと判定した場合には、ステップS503において、コマンド受信が正常に終了したか(受信OKか)否かを判定し、コマンド受信に失敗したと判定した場合には、ステップS504において、エラー通知を複合機300に行い、ステップS501に処理を戻す。
一方、ステップS503で、印刷管理サーバ400のCPUが、コマンド受信が正常に終了した(受信OK)と判定した場合には、ステップS505において、受信したコマンドを解析する。
次に、ステップS506において、ステップS505のコマンド解析結果に基づいてコマンド別の処理に分岐させる。
まず、ステップS506でコマンドが印刷物一覧要求コマンドであると判定した場合には、ステップS507の印刷物一覧要求処理(詳細は図20に示す)を実行し、ステップS501に処理を戻す。
また、ステップS506でコマンドが印刷要求コマンドであると判定した場合には、ステップS508の印刷要求処理(詳細は図21に示す)を実行し、ステップS501に処理を戻す。
また、ステップS506でコマンドが削除要求コマンドであると判定した場合には、ステップS509の削除要求処理(詳細は図22に示す)を実行し、ステップS501に処理を戻す。
また、ステップS506でコマンドが認証要求コマンドであると判定した場合には、ステップS510の認証要求処理(詳細は図23に示す)を実行し、ステップS501に処理を戻す。
図20は、本発明のプリントシステムにおける第6の制御処理手順の一例を示すフローチャートであり、図1に示した印刷管理サーバ400における複合機からの印刷データ一覧要求処理(図19のステップS507)に対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S601〜S608は各ステップを示す。
まず、ステップS601において、印刷管理サーバ400のCPUは、印刷データ一覧要求コマンド(図17)内のユーザ名とプリンタ種別で、書誌情報DBを検索し、最初のデータを取得する。
次に、ステップS602において、印刷管理サーバ400のCPUは、書誌情報DBより取得したデータがある(ユーザ名とプリンタ種別での書誌情報DB検索の結果、データを取得できた)か否かを判定し、データがあると判定した場合には、ステップS603において、転送数(複合機300に送信する印刷データ一覧の数)が予め設定されたMAX未満か否かを判定する。この判定はバッファ内に格納された応答文字データに対応する印刷データの数で判断するものである。ステップS602ではユーザの印刷データは複数存在することが考えられ、取得したデータを印刷データ単位で処理するものである。
ステップS603で、印刷管理サーバ400のCPUが、転送数がMAX未満であると判定した場合には、ステップS604において、印刷データに関する書誌情報をRAM内に設けられたバッファ内の応答文字列に追加する。
次に、ステップS605において、印刷管理サーバ400のCPUは、印刷データ一覧要求コマンド(図17(a))内のユーザ名とプリンタ種別でDBを検索し、次のデータを取得し、ステップS602に戻る。
一方、ステップS602で、印刷管理サーバ400のCPUが、書誌情報DBより取得したデータがない(ユーザ名とプリンタ種別での書誌情報DB検索の結果、データを取得できなかった)と判定した場合には、ステップS606に進む。
また、ステップS603で、印刷管理サーバ400のCPUが、転送数がMAX未満でないと判定した場合にも、ステップS607に進む。
ステップS606において、印刷管理サーバ400のCPUは、RAM内に設けられたバッファ内に応答文字列データがあるか否かを判定し、応答文字列データがあると判定した場合には、ステップS607において、応答データを複合機300に送信(返信)し(図4の(5)−2)、図19のフローチャートへ処理を戻す。
一方、ステップS606で、印刷管理サーバ400のCPUが、RAM内に設けられたバッファ内に応答文字列データがないと判定した場合には、ステップS608において、データなしのメッセージを複合機300に送信(返信)し、図19のフローチャートへ処理を戻す。
図21は、本発明のプリントシステムにおける第7の制御処理手順の一例を示すフローチャートであり、図1に示した印刷管理サーバ400における印刷要求処理(図19のステップS508)に対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S701〜S712は各ステップを示す。
まず、ステップS701において、印刷管理サーバ400のCPUは、印刷要求コマンド(図17(b))内の印刷データの識別用タイムスタンプのうち処理していないタイムスタンプがまだあるか否かを判定し、処理していないタイムスタンプがまだあると判定した場合には、ステップS702進み、該印刷データの識別用タイムスタンプとユーザ名で、書誌情報DBを検索する。
次に、ステップS703において、印刷管理サーバ400のCPUは、ステップS702の検索結果に基づいて、書誌情報DBに上記印刷データの識別用タイムスタンプとユーザ名に対応するデータがあるか否かを判定し、書誌情報DBに上記印刷データの識別用タイムスタンプとユーザ名に対応するデータがないと判定した場合には、ステップS704において、複合機300に対応するデータがない旨のエラーメッセージを送信(返信)し、ステップS701に処理を戻す。
一方、ステップS703で、印刷管理サーバ400のCPUが、書誌情報DBに上記印刷データの識別用タイムスタンプとユーザ名に対応する書誌情報データがあると判定した場合には、ステップS705において、検索され書誌情報データの書誌情報DB上でのステータスを「印刷指示済み」に変更する。
次に、印刷管理サーバ400のCPUは、ステップS706において、本フローチャートのタスク毎にRAM内に設けられた、プリント出力スレッドの印刷キューに、書誌情報DBより取得した書誌情報データを格納し、ステップS701に処理を戻す。
一方、ステップS701で、印刷管理サーバ400のCPUが、印刷要求コマンド(図17(b))内の印刷データの識別用タイムスタンプに処理していないタイムスタンプがもうないと判定した場合には、ステップS707において、印刷管理サーバ400のCPUは、上記印刷キューにデータがあるか否かを判定し、印刷キューにデータがあると判定した場合には、ステップS708に進む。
ステップS708において、印刷管理サーバ400のCPUは、上記印刷キューの先頭の書誌情報データを取得し、ステップS709において、該書誌情報データ内のIPアドレスに対応するプリントサーバ200内のデーモンプログラムに対して該書誌情報データに対応する印刷データに対するリモートシェル(rsh)のLPRコマンド(図22に示すようなコマンド)を発行して印刷指示を行う(図4の(7))。
図22は、本発明のプリントシステムにおいて、印刷管理サーバ400からプリントサーバ200のデーモンプログラムに対して発行するコマンドの一例を示す図である。
以下、図21のフローチャートの説明に戻る。
次に、ステップS710において、印刷管理サーバ400のCPUは、ステップS709で発行した印刷指示が完了したか否かを判定し、印刷指示が完了したと判定した場合には、ステップS711において、ステップS709で印刷指示した印刷データファイルの削除指示をネットワーク上でのファイル共有の仕組みを用いてプリントサーバ200に対して行い、さらに、削除指示した印刷データファイルに対応する書誌情報データの書誌情報DB上でのステータスを「削除済み」に変更し、ステップS707に処理を戻す。
一方、ステップS710で、印刷管理サーバ400のCPUが、ステップS709で発行した印刷指示が完了しなかった(印刷されなかった)と判定した場合には、ステップS712において、ステップS709で印刷指示した印刷データに対応する書誌情報データの書誌情報DB上でのステータスを「印刷指示待ち」に変更し、ステップS707に処理を戻す。
一方、ステップS707で、印刷管理サーバ400のCPUが、上記印刷キューにデータがないと判定した場合には、そのまま処理を図19のフローチャートへ戻す。
図23は、本発明のプリントシステムにおける第8の制御処理手順の一例を示すフローチャートであり、図1に示した印刷管理サーバ400における削除要求処理(図19のステップS509)に対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S801〜S806は各ステップを示す。
まず、ステップS801において、印刷管理サーバ400のCPUは、削除要求コマンド(図17(b))内の印刷データの識別用タイムスタンプのうち処理していないタイムスタンプがまだあるか否かを判定し、処理していないタイムスタンプがまだあると判定した場合には、ステップS802進み、該印刷データの識別用タイムスタンプとユーザ名で、書誌情報DBを検索する。
次に、ステップS803において、印刷管理サーバ400のCPUは、ステップS802の検索結果に基づいて、書誌情報DBに上記印刷データの識別用タイムスタンプとユーザ名に対応するデータがあるか否かを判定し、書誌情報DBに上記印刷データの識別用タイムスタンプとユーザ名に対応するデータがないと判定した場合には、ステップS804において、複合機300に対応するデータがない旨のエラーメッセージを送信(返信)し、ステップS801に処理を戻す。
一方、ステップS803で、印刷管理サーバ400のCPUが、書誌情報DBに上記印刷データの識別用タイムスタンプとユーザ名に対応する書誌情報データがあると判定した場合には、ステップS805において、検索され書誌情報データの書誌情報DB上でのステータスを「削除済み」に変更する。
一方、ステップS801で、印刷管理サーバ400のCPUが、削除要求コマンド(図17(b))内の印刷データの識別用タイムスタンプのうち処理していないタイムスタンプがもうない(全て処理済み)と判定した場合には、そのまま処理を図19のフローチャートへ戻す。
次に、印刷管理サーバ400のCPUは、ステップS806において、検索され書誌情報データに対応する印刷データファイルの削除指示をネットワーク上でのファイル共有の仕組みを用いて、該書誌情報データ内のIPアドレスに対応するプリントサーバ200に対して行い、ステップS801に処理を戻す。
図24は、本発明のプリントシステムにおける第9の制御処理手順の一例を示すフローチャートであり、図1に示した印刷管理サーバ400における認証要求処理(図19のステップS510)に対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S901〜S904は各ステップを示す。
まず、ステップS901において、印刷管理サーバ400のCPUは、認証要求コマンド(図17(c))内のカード製造番号をキーにして、ICカード認証用テーブル(図18)からユーザデータを検索する。
ステップS902において、印刷管理サーバ400のCPUは、ステップS901の検索処理で、ICカード認証用テーブル(図18)にユーザデータがあるか否かを判定し、ユーザデータがあると判定した場合には、ステップS903に進み、認証が成功した旨を示すデータ(認証OKデータ)としてクライアントPC100のログインユーザ名を複合機300に返信し、図19のフローチャートに処理を戻す。
一方、ステップS902で、印刷管理サーバ400のCPUが、ステップS901の検索処理で、ICカード認証用テーブル(図18)にユーザデータがなかったと判定した場合には、ステップS904に進み、認証が失敗した旨を示すデータ(データなしのエラー通知)を複合機300に返信し、図19のフローチャートに処理を戻す。
図25は、本発明のプリントシステムにおける第10の制御処理手順の一例を示すフローチャートであり、図1に示したプリントサーバ200内のデーモンプログラムによるプリントサーバ印刷処理に対応する。なお、このフローチャートの処理は、図1に示したプリントサーバ200のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S1001〜S1003は各ステップを示す。
まず、プリントサーバ200のCPUは、ステップS1001において、
印刷管理サーバ400からリモートシェル(rsh)のLPRコマンドを受信したか否かを監視し、受信したと判定した場合には、ステップS1002において、該受信したLPRコマンドを実行して印刷実行する(図4の(8))。これにより、リモートシェル(rsh)のLPRコマンドで指定されたプリントサーバ200内に格納された印刷データが、プリントサーバ200から該コマンドで指定された複合機300に送信され、該複合機300で印刷される。即ち、複合機300では、プリントサーバ200から送信される上記印刷データを受信して印刷処理を行う。
次に、ステップS1003において、プリントサーバ200のCPUは、終了指示が有るか否かを判定し、終了指示がないと判定した場合には、ステップS1001に処理を戻す。
一方、ステップS1003で、プリントサーバ200のCPUが、終了指示が有ると判定した場合には、そのまま処理を終了する。
一方、ステップS1001で、プリントサーバ200のCPUが、印刷管理サーバ400からリモートシェル(rsh)のLPRコマンドを受信していないと判定した場合には、ステップS1003に処理を進める。
なお、本実施形態の印刷管理サーバ400は、外部記憶装置内に設定ファイルを記憶しており、該設定ファイル内に「印刷データの保存期間」を記憶している。
そして、印刷管理サーバ400は、所定のタイミングで(例えば、1日1回、深夜に)、書誌情報DB内に記憶された書誌情報データのうち、上記設定ファイル内に「印刷データの保存期間」を過ぎたものを検索し、該「印刷データの保存期間」を超えるものについては、該書誌情報データに対応する印刷データファイルの削除指示をネットワーク上でのファイル共有の仕組みを用いて、該書誌情報データ内のIPアドレスに対応するプリントサーバ200に対して行い、印刷データの保存期間を過ぎた印刷データを削除するように制御する。
また、印刷管理サーバ400は、所定のタイミングで(例えば、1日1回深夜に)、書誌情報DB内に記憶された書誌情報データのうち、ステータスが「削除済み」となった書誌情報データを削除するように制御する。
さらに、印刷管理サーバ400は、印刷データ一覧要求処理、印刷要求処理、削除処理、認証処理、上記印刷データの保存期間を過ぎた印刷データの削除処理、ステータスが「削除済み」となった書誌情報データの削除処理等の各処理のログ情報を、印刷管理サーバ400の外部記憶装置に記憶するように制御する。
また、本実施形態では、プリントサーバ200に印刷データを送信したクライアントPC100自身が、該送信した印刷データの書誌情報データが生成し、印刷管理サーバ400に送信する構成について説明したが、クライアントPC100から印刷データを受け取ったプリントサーバ200が、該印刷データから書誌情報データを生成し、印刷管理サーバ400に送信するように構成してもよい。
さらに、本実施形態では、プリンタ(複合機300)からの印刷データ一覧要求する際、該プリンタ(複合機300)からプリンタ種別(例えば、カラー属性(カラーorモノクロ))を一覧要求コマンドに含め、該要求したプリンタ(複合機300)のプリンタ種別(例えば、カラー属性(カラーorモノクロ))に対応する(該プリンタで処理可能な)印刷データの書誌情報のみを印刷管理サーバ400が送信するように構成したが、プリンタ種別は、カラー属性に限られるものではなく、例えば、用紙サイズやオプション構成(ソータ,製本機,ステイプル装置,パンチ装置等)等の印刷装置の機能情報であってもよい。この構成の場合、プリンタドライバは、書誌情報データを生成する際に、上述の印刷装置の機能に依存する印刷設定情報(ソート指示情報,製本指示情報,ステイプル指示情報,パンチ指示情報等)を書誌情報データ内に格納するものとする。
また、本実施形態では、カスタムドライバは、通常のプリンタドライバの処理と本実施形態のプルプリント実行するプリンタドライバの処理とを、印刷設定により切り替え可能な構成(図6のステップS101,図8のステップS201で切り替え)であったが、本実施形態のプルプリントを実行する専用のプリンタドライバであってもよい。この場合、クライアントPC100のプリンタドライバ処理では、図6に示したステップS102〜106の処理のみを実行するものとする。また、上述した他の実施形態におけるプリントサーバ200のプリンタドライバ処理では、図8に示したステップS202〜S205の処理のみを実行するものとする。
以上説明したように、本実施形態のプリントシステムによれば、本実施形態のプルプリント設定されたカスタムドライバの論理プリンタを指定して印刷指示するだけで、印刷管理サーバ400により書誌情報データのみ一括記憶管理され、印刷ジョブ(印刷データ)自体については、各印刷指示された論理プリンタに対応する各プリントサーバ200にそれぞれ分散して格納され、印刷時のプリンタ(複合機300)への印刷データの出力処理も、各プリントサーバ200によりそれぞれ処理されるので、印刷管理サーバ400に負荷をかけることがなく、プルプリントシステムにおいて、負荷分散を実現することが出来る。
また、どこのクライアントPC100から印刷指示しても、どこのプリンタ(複合機300)からでも(事業所Aからでも、事業所Bからでも)、上記印刷管理サーバ400にアクセスするのみで、クライアントPC100から印刷指示した印刷データのプルプリントが可能となる。特に、印刷管理サーバ400の一箇所で書誌情報データを管理することで各複合機に設定するコマンドの送信先のアドレス管理が容易になり、更にはクライアントPCから送信する書誌情報データファイルの送信先管理も容易になるものである。
さらに、プリンタ(複合機300)からの印刷データ一覧要求した際、該要求したプリンタ(複合機300)のプリンタ種別(例えば、カラー属性(カラーorモノクロ)、その他プリンタの機能に依存する印刷設定情報)に対応する印刷データの書誌情報のみを印刷管理サーバ400がプリンタに返信する(即ち、不要な印刷データの書誌情報データは送信されない)ので、該要求したプリンタ(複合機300)で印刷不可能な印刷データは、該プリンタの印刷データ一覧には表示されないため、ユーザが誤って印刷不可能な印刷データを印刷指示することを防止可能である。
以上のように、プルプリントシステムにおいて、印刷データを保存するプリントサーバの負荷を軽減しつつ、印刷データを所望の印刷装置から出力することができるフレキシブルなプリントシステムを構築することができる。
従って、蓄積印刷(プルプリント)に関する印刷データの書誌情報を印刷管理サーバ400で一元管理することで、どの印刷装置(複合機300)からも容易に印刷要求を実行することができ、さらに蓄積印刷に関する印刷データの蓄積処理とプリンタへの送信処理をプリントサーバ200へ分散することで特定のサーバに対して処理が集中しないために各サーバの負荷を軽減することができるといった格別の効果を奏する。
また、本実施形態のプリントシステムは、プルプリントであるため、出しっ放しを防止することができる。
〔第2実施形態〕
上記第1実施形態では、ユーザがクライアントPC100から印刷指示した印刷データをプリントサーバ200に格納するとともに、該印刷データの書誌情報データを印刷管理サーバ400で一括管理させ、所望の複合機300から印刷データ一覧を呼び出して印刷させる構成について説明したが、ユーザが複合機300で所望の原稿をスキャンさせ、該スキャンされた印刷データをプリントサーバ200に格納させるとともに、該印刷データの書誌情報データを印刷管理サーバ400で一括管理させ、所望の複合機300から印刷データ一覧を呼び出して印刷させるように構成してもよい。以下、その実施形態について説明する。
上記第1実施形態では、印刷データ一覧画面の画面切換ボタン1002が押下されると、他の処理用画面(図16)に遷移する構成であったが、本実施形態では、以下の図26に示す「どこでも原稿読み取り画面」に遷移するように構成する。
図26は、図1に示した複合機300の操作部308の表示部にCPU301の制御により表示される、どこでも原稿読み取り画面の模式図である。
図26において、2601は画面切換ボタンで、このボタンが押下されると、複合機300のCPU301は、他の処理用画面(図16)を操作部308の表示部に表示するように制御する。
また、2602は原稿読み取り開始ボタンで、このボタンが押下されると、複合機300のCPU301は、図27に示すフローチャートのどこでもスキャン処理を実行する。
図27は、本発明のプリントシステムにおける第11の制御処理手順の一例を示すフローチャートであり、図1に示した複合機300におけるどこでも読み取り処理に対応する。なお、このフローチャートの処理は、図1に示した複合機300のCPU301がROM303又はHDD304に格納されたプログラムをRAM302上にロードして実行することにより実現される。また、図中、S1101〜S1106は各ステップを示す。
まず、ステップS1101において、複合機300のCPU301は、図26に示したどこでも原稿読み取り画面での設定に基づいて、複合機300の図示しない原稿台に載置された原稿の読み取りを行う。
次に、ステップS1102において、複合機300のCPU301は、ステップS1101で読み取った原稿画像データから、図26に示したどこでも原稿読み取り画面での設定に基づく印刷データを生成する。
次に、ステップS1103において、複合機300のCPU301は、ステップS1102で生成した印刷データを、所定のプリントサーバ200(例えば、複合機300と同一フロアに設置されるプリントサーバ)のカスタムドライバに送信して、ネットワーク上でのファイル共有の仕組みを用いてプリントサーバ200の所定の格納場所に格納させる。
そして、ステップS1104において、複合機300のCPU301は、ステップS1103で送信した印刷データの送信完了まで待機し、送信完了したと判定した場合には、ステップS1105において、ステップS1103で送信した印刷データの書誌情報データファイルを生成する。
次に、ステップS1106において、複合機300のCPU301は、ステップS1105で生成した書誌情報データを印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所に格納させ、処理を終了する。
なお、本実施形態では、プリントサーバ200に印刷データを送信した複合機300自身が、該送信した印刷データの書誌情報データを生成し、印刷管理サーバ400に送信する構成について説明したが、複合機300から印刷データを受け取ったプリントサーバ200が、該印刷データから書誌情報データを生成し、印刷管理サーバ400に送信するように構成してもよい。
以上説明したように、本実施形態のプリントシステムによれば、どこのスキャナ(複合機300)で原稿を読み取っても、どこのプリンタ(複合機300)からでも(事業所Aからでも、事業所Bからでも)、上記印刷管理サーバ400にアクセスするのみで、どの複合機300から原稿読み取りした印刷データのプルプリントが可能となる。
また、本実施形態の複合機300で原稿読み取りするだけで、印刷管理サーバ400により書誌情報のみ一括記憶管理され、印刷ジョブ(印刷データ)自体は、所定のプリントサーバ200(例えば、同一フロアに設置されるプリントサーバ)に格納され、またプリンタ(複合機300)への出力処理も、各プリントサーバ200によりそれぞれ処理されるので、プリントサーバの負荷分散を実現することが出来る。
以上のように、印刷データを保存するプリントサーバの負荷を軽減しつつ、印刷データを所望の読み取り装置で原稿を読み取り且つ所望の印刷装置から出力することができるフレキシブルなプリントシステムを構築することができる。
〔第3実施形態〕
上記第1実施形態では、ICカードを複合機300からプルプリントを実行する際のユーザ認証にのみ用いる構成について説明したが、ICカード(例えば、ソニー社のフェリカ)に金額データを記憶させておき、複合機300からプルプリントを実行する際、印刷完了時に、印刷枚数及び印刷属性(カラー属性、印刷用紙の種別)等に基づく金額を、該ICカード内の金額データから差し引くように、ICカード内の金額データを複合機300のCPU301が書き換え制御するように構成してもよい。
なお、複合機300のCPU301は、ICカード認証時から印刷完了まで、ICカードを常に検知しておき、印刷完了前にICカードが検知されなくなった際には、処理を中断するように制御する。
また、ユーザが複合機300から印刷指示した際に、ICカード内に記憶された金額データが、該印刷処理に基づく金額より少なかった場合には、ICカードにチャージを行う旨をメッセージで表示し、印刷処理自体を行わないように制御してもよいし、ICカード内に記憶された金額データで可能な枚数の印刷処理のみを実行し、その後、ICカードにチャージを行う旨をメッセージで表示するように制御するように構成してもよい。
さらに、印刷開始時に、印刷枚数及び印刷属性等に基づく金額を、該ICカード内の金額データから差し引くように、ICカード内の金額データを複合機300のCPU301が書き換え制御するように構成してもよい。
なお、この構成の場合、印刷に失敗し、印刷完了できない場合、再度、ICカードをカードリーダ319にかざすようなメッセージを操作部308の表示部に表示させ、ICカードがカードリーダ319に検知された際に、印刷できなかった印刷データに対応する料金を返金するように、ICカード内の金額データを複合機300のCPU301が書き換え制御するように構成する。
例えば、図1に示した印刷システムを利用したプリントサービスを実現する場合、会員登録したユーザにICカード(例えば、ソニー社のフェリカ(登録商標))を配布し、各会員は該ICカードに金額データを記憶させておく。また、各会員は、自宅や各種拠点等からクライアントPCによりプリントサーバ200に印刷データを送信させる(なお、このとき、該印刷データの書誌情報データが生成され、印刷管理サーバ400に送信される、即ち、図6に示したフローチャートの処理を実行させる)。
そして、各会員は、コンビニエンスストアや各拠点に設置された複合機300から第1実施形態に示したプルプリントを実行する。この際、印刷実行した複合機300のCPU301は、該印刷処理に基づく金額を、ユーザ認証に使用されたICカード内の金額データから差し引くように、ICカード内の金額データを書き換え制御する。
以上示したように、本実施形態のプリントシステムによれば、どこのクライアントPCから印刷指示しても、どこのプリンタ(複合機300)からでも(契約されたコンビニエンスストアからでも、他の拠点からでも)、上記印刷管理サーバ400にアクセスするのみで、どの複合機300からでも印刷データのプルプリントが可能となるとともに、認証時に使用したICカードでそのまま金額の支払いを行うことができる。
〔第4実施形態〕
上記第1,2実施形態では、印刷データの書誌情報データのみ印刷管理サーバ400により一括記憶管理し、印刷データ自体については、複数のプリントサーバ200に分散して格納し、さらに、複合機300への印刷データ出力については、複合機300からの印刷要求に応じて印刷管理サーバ400が発行する印刷命令信号に基づいて、要求された印刷データを格納するプリントサーバ200が実行する構成について説明したが、プリントサーバ200を用いることなく、印刷データ自体については、該印刷データを生成したクライアントPC100や複合機300内に分散して格納し、複合機300への印刷データ出力については、複合機300からの印刷要求に応じて印刷管理サーバ400が発行する印刷命令信号に基づいて、要求された印刷データを格納するクライアントPC100や複合機300が実行する構成を特徴とする。以下、その実施形態について説明する。
図28は、本発明の第4実施形態のプリントシステムの構成の一例を示すシステム構成図であり、図1と同一のものには同一の符号を付してある。
図28の「事業所A」に示すように、本実施形態のプリントシステムは、1又は複数のクライアントPC100(例えば、ユーザ毎)、1又は複数の複合機300(例えば、階毎に設置),印刷管理サーバ400、1又は複数のログインサービスPC500(例えば、階毎に設置)、ディレクトリサービスサーバ600がローカルエリアネットワーク(LAN)700を介して接続される構成となっている。
なお、本実施形態のクライアントPC100にインストールされているプリンタドライバは、アプリケーションプログラムから取得したデータから印刷データを生成して、該生成した印刷データを、クライアントPC100内の所定の格納場所(プリンタドライバから直接管理できるスプール領域)に格納させることができる。
このクライアントPC100のプリンタドライバは、上記格納した印刷データに対応する書誌情報データを生成し、印刷管理サーバ400に送信して、該印刷管理サーバ400の所定の格納場所に格納させることができる。
印刷管理サーバ400は、書誌情報DB(図10)を備え、本実施形態の「どこでもプリント」実行時に、クライアントPC100から送信される書誌情報(クライアントPC100内に蓄積された印刷データに対応する書誌情報)を受信し、書誌情報DBにより記憶管理する。また、印刷管理サーバ400は、ICカード認証用テーブル(図18)を記憶し、複合機300からのICカードによる認証依頼に応じて、該ICカード認証用テーブルを用いて認証処理を行う。さらに、印刷管理サーバ400は、複合機300からの印刷要求(書誌情報DBで管理される書誌情報に対応する印刷データの印刷要求)に応じて、該印刷データの印刷指示を書誌情報に記載されたIPアドレスが示す装置(例えば、クライアントPC100)に行う。
また、本実施形態のプリントシステムは、上述した構成の「事業所A」と、1又は複数のクライアントPC100,1又は複数の複合機300がLAN700を介して接続される構成の1又は複数の「事業所B」とが、WAN800を介して接続される構成であってもよい。
なお、クライアントPC100,印刷管理サーバ400,ログインサービスPC500,ディレクトリサービスサーバ600に適用可能な情報処理装置のハードウェア構成は、図2に示したものと同様である。また、複合機200を制御するコントローラユニットのハードウェア構成についても図3に示したものと同様である。
以下、図29を用いて、本実施形態のプリントシステムにおけるプルプリント(どこでもプリント)の全体の流れについて説明する。
まず、本実施形態のプルプリントを実行するための前提について説明する。
まず、各クライアントPC100に本実施形態のプルプリントを実現するためのプリンタドライバ(以下、カスタムドライバ)をインストールして、該カスタムドライバの論理プリンタを追加しておく。このカスタムドライバは、通常のプリンタドライバと兼用可能になっており、登録された論理プリンタごとに記憶される印刷設定をプルプリント設定にしておくことにより、該論理プリンタが印刷先として指定された場合、本実施形態のプルプリントを実行可能となる。そして、この各クライアントPC100に追加されたプルプリント設定されたカスタムドライバの論理プリンタに対して、ユーザが印刷指示を行うことにより、本実施形態のプルプリントが実行される。
以下、本実施形態のプルプリントの全体の流れについて説明する。
図29は、本発明の第4実施形態のプリントシステムにおけるプルプリント(どこでもプリント)の全体の流れ説明する模式図である。
図29に示すように、まず、ユーザは、クライアントPC100にログインし((1)−1)、該クライアントPC100で実行されるアプリケーションプログラムから上記プルプリント設定されたカスタムドライバに対応する論理プリンタへの印刷指示を行う((1)−2)。
この印刷指示に応じて、クライアントPC100のアプリケーションプログラムは、グラフィックエンジンを介して、カスタムドライバにデータを送信する。クライアントPC100のカスタムドライバは、該アプリケーションプログラムからグラフィックエンジンを介して受け取ったデータに基づいて印刷データを生成する。
そして、クライアントPC100は、生成した印刷データをクライアントPC100の所定の格納場所(予め設定されているスプール領域)に格納させる((2)−1)。なお、上記クライアントPC100の所定の格納場所に格納される印刷データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名とする(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.prs)。
次に、クライアントPC100は、上記所定の格納場所に格納した印刷データの書誌情報データを生成し、該生成した書誌情報データを印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所(予め設定されているディレクトリ)に格納させる((3)−1)。なお、上記印刷管理サーバ400の所定の格納場所に格納される印刷管理データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名とする(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.inf)。
印刷管理サーバ400は、上記所定のディレクトリを監視し、該所定のディレクトリにクライアントPC100から書誌情報データファイルが格納されると、該書誌情報データファイルを解析し書誌情報を書誌情報DB(印刷管理サーバ400の外部記憶装置上に構築される)に登録する((3)−2)。
また、複合機300は、カードリーダ319により読み取り可能なICカードを検知すると、該ICカード内の個人認証情報を読み取り、該読み取った個人認証情報を認証要求として印刷管理サーバ400に送信する((4)−1)。個人認証情報は、認証に用いられる情報であり該ICカードの製造番号でも良い。
印刷管理サーバ400は、複合機300より個人認証情報を受信すると、該個人認証情報の認証処理を印刷管理サーバ400の外部記憶装置上に記憶されるICカード認証用テーブルに基づいて行い、認証結果を複合機300に返信する((4)−2)。なお、認証処理に成功した場合には、認証結果として、クライアントPC100のログインユーザIDを送信するものとする。
次に、複合機300は、印刷管理サーバ400から、認証に成功した旨の認証結果(クライアントPC100のログインユーザID)を受信すると、印刷管理サーバ400に印刷データ一覧要求を送信する((5)−1)。なお、印刷データ一覧要求には、クライアントPC100のログインユーザIDが含まれているものとする。
印刷管理サーバ400は、複合機300から印刷データ一覧要求を受信すると、該印刷データ一覧要求に含まれるログインユーザIDで書誌情報DBを検索して、該ログインユーザIDに対応する印刷データ一覧を生成し、複合機300に返信する((5)−2)。
複合機300は、印刷管理サーバ400から印刷データ一覧を受信すると、該印刷データ一覧を操作部308のUI上に表示する。そして、ユーザにより、印刷データが選択され、印刷指示がなされると、複合機300は、該選択された印刷データの印刷要求(出力指示)を印刷管理サーバ400に送信する(6)。なお、この印刷要求は、クライアントPC100のログインユーザ名,印刷データのタイムスタンプを含むものとする。
印刷管理サーバ400は、複合機300から印刷データの印刷要求(出力指示)を受信すると、該出力指示がなされた印刷データの書誌情報を、クライアントPC100のログインユーザ名,印刷データのタイムスタンプをキーにして書誌情報DBから検索し、該検索した書誌情報から該当する印刷データを格納している装置(クライアントPC100)を特定し、該クライアントPC100に該当する印刷データの印刷指示を送信する(7)。なお、上記印刷指示は、該当する印刷データファイル名を含む印刷コマンドである。
そして、クライアントPC100は、印刷管理サーバ400から印刷指示を受信すると、該印刷指示に基づいて印刷データを複合機300に送信して複合機300で印刷させる(8)。
以下、図30,図31を参照して、図28に示したクライアントPC100における処理について説明する。
まず、図28に示したクライアントPC100上で動作するアプリケーションプログラム上での印刷指示について説明する。
図30は、本発明のプリントシステムにおける第12の制御処理手順の一例を示すフローチャートであり、図28に示したクライアントPC100におけるプリンタドライバ処理に対応する。なお、このフローチャートの処理は、図1に示したクライアントPC100のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S101,S102,S1203〜S1205,S106,S1207は各ステップを示す。なお、図6と同一のステップには同一のステップ番号を付してある。
図5に示したクライアントPC100上で動作するアプリケーションプログラムの印刷画面のプリンタ選択部610で所望の論理プリンタ(例えば、「どこでもモノクロ印刷」601)が選択されて印刷指示がなされると、アプリケーションプログラムは印刷用のデータをグラフィックエンジンを介してプリンタドライバに送信する。
そして、クライアントPC100のCPUにより実行されるカスタムドライバ(以下、クライアントPC100のカスタムドライバ)は、まず、アプリケーションプログラムから(グラフィックエンジンを介して)データを受け取ると、まず、ステップS101において、クライアントPC100のカスタムドライバは、アプリケーションプログラムで印刷先に選択された論理プリンタの印刷設定がプルプリントモードとなっているか否かを判定する。
ステップS101で、クライアントPC100のカスタムドライバは、印刷設定がプルプリントモードであると判定された場合には、ステップS102において、アプリケーションプログラムから受け取ったデータに基づいて印刷データを生成する。
次に、ステップS1203において、クライアントPC100のカスタムドライバは、ステップS102で生成した印刷データを、クライアントPC100の所定の格納場所(スプール領域)に格納させる処理を行う(図29の(2)−1)。なお、この所定の格納場所に格納される印刷データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名となる(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.prs)。
そして、ステップS1204において、クライアントPC100のカスタムドライバは、ステップS1203で格納処理した印刷データが格納完了したと判断するまで待機し、格納完了したと判断した場合には、ステップS1205において、ステップS103で格納処理した印刷データの書誌情報データファイルを生成する。なお、この際、クライアントPC100のカスタムドライバは、書誌情報データファイルに、印刷データが格納されている装置(即ち、印刷データを保持管理している装置)のIPアドレスとして、クライアントPC100自身のIPアドレスを含めるように生成するものとする。
次に、ステップS106において、クライアントPC100のカスタムドライバは、ステップS1205で生成した書誌情報データファイル(図31)を印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所に格納させ(図29の(3)−1)、処理を終了する。なお、この印刷管理サーバ400の所定の格納場所に格納される印刷管理データのファイル名は、クライアントPC100のカスタムドライバから指定されるファイル名となる(例えば、「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.inf)。
一方、ステップS101で、クライアントPC100のカスタムドライバは、印刷設定がプルプリントモードでないと判定した場合には、ステップS107において、他の印刷処理を行う。即ち、クライアントPC100のカスタムドライバは、アプリケーションプログラムからグラフィックエンジンを介して受け取ったデータに基づいて印刷データを生成し、該生成した印刷データを、アプリケーションプログラムで印刷先に選択された論理プリンタで設定されている印刷先(複合機300等)に送信して、印刷処理させる。
以下、本実施形態の書誌情報データファイルのコンテンツを図31に示す。
図31は、本発明の第4実施形態における書誌情報データのデータ構成の一例を示すデータ構成図である。
図31に示すように、クライアントPC100から印刷管理サーバ400に送信される書誌情報データのファイル名は、"「ユーザが印刷指示を入力した時のタイムスタンプ」+「クライアントPC100のログインユーザID」.inf"となる。
また、この書誌情報データは、クライアントPCのログインユーザ名,対応する印刷データが格納されている装置(即ち、印刷データを管理している装置)のIPアドレス(本実施形態ではクライアントPC100のIPアドレス),対応する印刷データのカラー属性(カラーorモノクロ),対応する印刷データのドキュメント名,対応する印刷データの印刷部数,対応する印刷データの一部当たりのページ数等の情報を含む。
なお、印刷管理サーバ400は、クライアントPC100により印刷管理サーバ400の所定の格納場所に格納された書誌情報データファイルを解析し、該書誌情報データファイルの情報を書誌情報DB(図10)へ登録する(図29の(3)−2)。この書誌情報ファイル管理処理は、上記第1実施形態で示した図9と同様である。
また、複合機300におけるプルプリント処理動作も、上記第1実施形態の図11〜図18と同様であるので説明は省略する。
さらに、複合機300のプルプリント処理動作により複合機300から印刷管理サーバ400に送信される要求に対して、印刷管理サーバ400が行う要求処理ルーチンについても上記第1実施形態とほぼ同様であるが、印刷管理サーバ400が、複合機300からの印刷要求(削除要求)に対して、該当する印刷データの印刷指示(削除指示)をクライアントPC100に行う点が異なる(第1実施形態ではプリントサーバ200に行っていた)。以下、この印刷管理サーバ400における印刷要求処理,削除要求処理について図32〜図34を参照して説明する。
図32は、本発明のプリントシステムにおける第13の制御処理手順の一例を示すフローチャートであり、図28に示した印刷管理サーバ400における印刷要求処理に対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S701〜S708,S1309,S710,S1311,S712は各ステップを示し、図21と同一のステップには同一のステップ番号を付してある。
まず、ステップS701〜S708の処理は、図21と同一であるので、説明を省略する。
ステップS1309において、印刷管理サーバ400のCPUは、ステップS708で取得した印刷キューの先頭の書誌情報データ内のIPアドレスに対応する装置(本実施形態ではクライアントPC100)内のデーモンプログラムに対して該書誌情報データに対応する印刷データに対するリモートシェル(rsh)のLPRコマンド(図33に示すようなコマンド)を発行して印刷指示を行い(図29の(7))、ステップS710に進む。
図33は、本発明のプリントシステムにおいて、印刷管理サーバ400からクライアントPC100のデーモンプログラムに対して発行するコマンドの一例を示す図である。
以下、図32のフローチャートの説明に戻る。
次に、ステップS710において、印刷管理サーバ400のCPUが、ステップS1109で発行した印刷指示が完了したと判定した場合、ステップS1311において、ステップS1309で印刷指示した印刷データファイルの削除指示をネットワーク上でのファイル共有の仕組みを用いて、前記IPアドレスに対応する装置(本実施形態ではクライアントPC100)に対して行い、さらに、削除指示した印刷データファイルに対応する書誌情報データの書誌情報DB上でのステータスを「削除済み」に変更し、ステップS707に処理を戻す。
なお、ステップS712の処理は、図21と同一であるので説明は省略する。
図34は、本発明のプリントシステムにおける第14の制御処理手順の一例を示すフローチャートであり、図1に示した印刷管理サーバ400における削除要求処理に対応する。なお、このフローチャートの処理は、図1に示した印刷管理サーバ400のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S801,S1402,S803〜S805,S1406は各ステップを示す。なお、図23と同一のステップには同一のステップ番号を付してある。
まず、ステップS801において、印刷管理サーバ400のCPUは、削除要求コマンド(図17(b))内の印刷データの識別用タイムスタンプのうち処理していないタイムスタンプがまだあるか否かを判定し、処理していないタイムスタンプがまだあると判定した場合には、ステップS1402進み、印刷管理サーバ400のCPUは、該印刷データの識別用タイムスタンプとユーザ名で、書誌情報DBから印刷データを格納している装置(本実施形態ではクライアントPC100)を検索し、ステップS803に処理を進める。
以下、ステップS803〜S805の処理は、図23と同一であるので、説明は省略する。
次に、ステップS1406において、印刷管理サーバ400のCPUは、ステップS1402で検索され書誌情報データに対応する印刷データファイルの削除指示をネットワーク上でのファイル共有の仕組みを用いて、該書誌情報データ内のIPアドレスに対応する装置(本実施形態ではクライアントPC100)に対して行い、ステップS801に処理を戻す。
図35は、本発明のプリントシステムにおける第15の制御処理手順の一例を示すフローチャートであり、図28に示したクライアントPC100内のデーモンプログラムによるプリントサーバ印刷処理に対応する。なお、このフローチャートの処理は、図28に示したクライアントPC100のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。また、図中、S1501〜S1503は各ステップを示す。
まず、クライアントPC100のCPUは、ステップS1501において、
印刷管理サーバ400からリモートシェル(rsh)のLPRコマンドを受信したか否かを監視し、受信したと判定した場合には、ステップS1502において、該受信したLPRコマンドを実行して印刷実行する(図29の(8))。これにより、リモートシェル(rsh)のLPRコマンドで指定されたクライアントPC100内に格納された印刷データが、クライアントPC100から該コマンドで指定された複合機300に送信され、該複合機300で印刷される。即ち、複合機300では、クライアントPC100から送信される上記印刷データを受信して印刷処理を行う。
次に、ステップS1503において、クライアントPC100のCPUは、終了指示が有るか否かを判定し、終了指示がないと判定した場合には、ステップS1301に処理を戻す。
一方、ステップS1503で、クライアントPC100のCPUが、終了指示が有ると判定した場合には、そのまま処理を終了する。
一方、ステップS1501で、クライアントPC100のCPUが、印刷管理サーバ400からリモートシェル(rsh)のLPRコマンドを受信していないと判定した場合には、ステップS1503に処理を進める。
なお、本実施形態の印刷管理サーバ400は、外部記憶装置内に設定ファイルを記憶しており、該設定ファイル内に「印刷データの保存期間」を記憶している。
そして、印刷管理サーバ400は、所定のタイミングで(例えば、1日1回、深夜に)、書誌情報DB内に記憶された書誌情報データのうち、上記設定ファイル内に「印刷データの保存期間」を過ぎたものを検索し、該「印刷データの保存期間」を超えるものについては、該書誌情報データに対応する印刷データファイルの削除指示をネットワーク上でのファイル共有の仕組みを用いて、該書誌情報データ内のIPアドレスに対応する装置(本実施形態ではクライアントPC100)に対して行い、印刷データの保存期間を過ぎた印刷データを削除するように制御する。
また、印刷管理サーバ400は、所定のタイミングで(例えば、1日1回深夜に)、書誌情報DB内に記憶された書誌情報データのうち、ステータスが「削除済み」となった書誌情報データを削除するように制御する。
さらに、印刷管理サーバ400は、印刷データ一覧要求処理、印刷要求処理、削除処理、認証処理、上記印刷データの保存期間を過ぎた印刷データの削除処理、ステータスが「削除済み」となった書誌情報データの削除処理等の各処理のログ情報を、印刷管理サーバ400の外部記憶装置に記憶するように制御する。
また、本実施形態では、カスタムドライバは、通常のプリンタドライバの処理と本実施形態のプルプリント実行するプリンタドライバの処理とを、印刷設定により切り替え可能な構成(図30のステップS101で切り替える構成)であったが、本実施形態のプルプリントを実行する専用のプリンタドライバであってもよい。この場合、クライアントPC100のプリンタドライバ処理では、図30に示したステップS102,S1203〜S1205,S106の処理のみを実行するものとする。
以上説明したように、本実施形態のプリントシステムによれば、本実施形態のプルプリント設定されたカスタムドライバの論理プリンタを指定して印刷指示するだけで、印刷管理サーバ400により書誌情報データのみ一括記憶管理され、印刷ジョブ(印刷データ)自体については、各印刷データを生成した装置(本実施形態ではクライアントPC00)にそれぞれ分散して格納され、印刷時のプリンタ(複合機300)への印刷データの出力処理も、各印刷データを格納管理している装置(本実施形態ではクライアントPC00)によりそれぞれ処理されるので、印刷管理サーバ400に負荷をかけることがなく、プルプリントシステムにおいて、負荷分散を実現することが出来る。
また、どこのクライアントPC100から印刷指示しても、どこのプリンタ(複合機300)からでも(事業所Aからでも、事業所Bからでも)、上記印刷管理サーバ400にアクセスするのみで、クライアントPC100から印刷指示した印刷データのプルプリントが可能となる。特に、印刷管理サーバ400の一箇所で書誌情報データを管理することで各複合機に設定するコマンドの送信先のアドレス管理が容易になり、更にはクライアントPCから送信する書誌情報データファイルの送信先管理も容易になるものである。
以上のように、プルプリントシステムにおいて、印刷データを保存するプリントサーバの負荷を軽減しつつ、印刷データを所望の印刷装置から出力することができるフレキシブルなプリントシステムを構築することができる。
従って、蓄積印刷(プルプリント)に関する印刷データの書誌情報を印刷管理サーバ400で一元管理することで、どの印刷装置(複合機300)からも容易に印刷要求を実行することができ、さらに蓄積印刷に関する印刷データの蓄積処理とプリンタへの送信処理を、各印刷データを記憶管理する装置(本実施形態ではクライアントPC100)へ分散することで特定のサーバに対して処理が集中しないために各サーバの負荷を軽減することができるといった格別の効果を奏する。
また、本実施形態のプリントシステムは、プルプリントであるため、出しっ放しや、誤って印刷指示してしまった無駄な印刷出力を防止することができ、コスト削減を実現することができる。
〔第5実施形態〕
上記第4実施形態では、ユーザがクライアントPC100から印刷指示した印刷データをクライアントPC100の所定の格納領域に格納して管理するとともに、該印刷データの書誌情報データを印刷管理サーバ400で一括管理させ、所望の複合機300から印刷データ一覧を呼び出して印刷させる構成について説明したが、ユーザが複合機300で所望の原稿をスキャンさせ、該スキャンされた印刷データを複合機300の所定の格納領域に格納して管理するとともに、該印刷データの書誌情報データを印刷管理サーバ400で一括管理させ、所望の複合機300から印刷データ一覧を呼び出して印刷させるように構成してもよい。すなわち、上記第4実施形態と上記第2実施形態とを組み合わせた構成であってもよい。以下、その実施形態について説明する。
図36に示した原稿読み取り開始ボタン2602が押下されると、複合機300のCPU301は、図36に示すフローチャートのどこでもスキャン処理を実行する。
図36は、本発明のプリントシステムにおける第16の制御処理手順の一例を示すフローチャートであり、図28に示したクライアントPC100におけるどこでも読み取り処理に対応する。なお、このフローチャートの処理は、図1に示した複合機300のCPU301がROM303又はHDD304に格納されたプログラムをRAM302上にロードして実行することにより実現される。また、図中、S1101,S1102,S1603〜S1605,S1106は各ステップを示す。なお、図27と同一のステップには同一のステップ番号を付してある。
まず、ステップS1101において、複合機300のCPU301は、図26に示したどこでも原稿読み取り画面での設定に基づいて、複合機300の図示しない原稿台に載置された原稿の読み取りを行う。
次に、ステップS1102において、複合機300のCPU301は、ステップS1101で読み取った原稿画像データから、図26に示したどこでも原稿読み取り画面での設定に基づく印刷データを生成する。
次に、ステップS1603において、複合機300のCPU301は、ステップS1102で生成した印刷データを、複合機300のHDD304内の所定の格納場所(スプール領域)に格納させる処理を行う。
そして、ステップS1604において、複合機300のCPU301は、ステップS1603で格納処理した印刷データが格納完了したと判断するまで待機し、格納完了したと判断した場合には、ステップS1605において、ステップS1603で格納処理した印刷データの書誌情報データファイルを生成する。なお、この際、複合機300のCPU301は、書誌情報データファイルに、印刷データが格納されている装置(即ち、印刷データを保持管理している装置)のIPアドレスとして、複合機300自身のIPアドレスを含めるように生成するものとする。
次に、ステップS1106において、複合機300のCPU301は、ステップS1105で生成した書誌情報データを印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所に格納させ、処理を終了する。
以上説明したように、本実施形態のプリントシステムによれば、どこのスキャナ(複合機300)で原稿を読み取っても、どこのプリンタ(複合機300)からでも(事業所Aからでも、事業所Bからでも)、上記印刷管理サーバ400にアクセスするのみで、どの複合機300から原稿読み取りした印刷データのプルプリントが可能となる。
また、本実施形態の複合機300で原稿読み取りするだけで、印刷管理サーバ400により書誌情報のみ一括記憶管理され、印刷ジョブ(印刷データ)自体は、複合機300内に格納され、また他のプリンタ(複合機300)への出力処理も、複合機300によりそれぞれ処理されるので、負荷分散を実現することが出来る。
以上のように、印刷データを保存するプリントサーバの負荷を軽減しつつ、印刷データを所望の読み取り装置で原稿を読み取り且つ所望の印刷装置から出力することができるフレキシブルなプリントシステムを構築することができる。
また、上記第4,5実施形態では、印刷データを生成した装置(クライアントPC100や複合機300)が、該生成した印刷データを格納管理する構成について説明したが、上記生成した印刷データを他の装置へ格納し管理させるように構成してもよい。
例えば、印刷管理サーバ400が、印刷指示があった際に、その指示に対応するユーザ名と使用した印刷装置(複合機300)とを関連つけたデータを蓄積記憶しておくようにし、バッチ処理等で各ユーザ毎に最も使用頻度の高い印刷装置を特定しておくようにする。そして、クライアントPC100や複合機300は、印刷データを格納する際に、印刷管理サーバ400にカレントのユーザの最も使用頻度の高い印刷装置を特定するデータを取得し、該取得した印刷装置又は該印刷装置と同一のLAN内にある(又は同一のドメインに参加した)情報処理装置に、印刷データを格納するように構成してもよい。
これにより、ユーザがプルプリントする際に、ユーザが使用する印刷装置に印刷データが格納されている可能性が高くなり、印刷データの送信時間を節約でき、迅速に印刷処理を完了することができる。
また、本発明のプリントシステムは、印刷管理サーバ400を複数備える構成であってもよい。
なお、上記第1実施形態〜第5実施形態を合わせた構成も全て本実施形態に含まれるものである。
また、上記図7,図10,図17,図18,図22,図31,図33の各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、第1〜第5実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。例えば、印刷管理サーバ400も情報が一元管理できる形態であれば複数のサーバ装置から構成されても良いものである。例えば、複数のサーバ装置が、互いに管理情報(書誌情報ファイルやICカード認証用テーブル等)を交換して情報を一元管理するような構成であってもよい。
以上説明したように、クライアントPC100は、印刷データをプリントサーバ200に送信し、該プリントサーバ200のIPアドレスおよび該印刷データの書誌情報を含む書誌情報データを印刷管理サーバ400に送信し、また、プリントサーバ200は、受信した印刷データを格納しておき、さらに、印刷管理サーバ400は、受信した書誌情報データを記憶管理し、複合機300からの印刷要求コマンドに基づいて、印刷データを格納するプリントサーバ200を特定し、該プリントサーバ200に対して、前記複合機300および印刷データを指定した印刷コマンドを出力し、プリントサーバ200は、この印刷コマンドに基づいて、前記複合機300に対して前記印刷データを出力することにより、印刷データの保存はプリントサーバに分散し、印刷データの書誌情報については印刷管理サーバで一元管理し、負荷分散したプルプリントシステムを構築することができる。
また、クライアントPC100は、印刷データをクライアントPC100の所定格納領域に格納し、クライアントPC100自身のIPアドレスおよび該印刷データの書誌情報を含む書誌情報データを印刷管理サーバ400に送信し、さらに、印刷管理サーバ400は、受信した書誌情報データを記憶管理し、複合機300からの印刷要求コマンドに基づいて、印刷データを格納しているクライアントPC100を特定し、該クライアントPC100に対して、前記複合機300および印刷データを指定した印刷コマンドを出力し、クライアントPC100は、この印刷コマンドに基づいて、前記複合機300に対して前記印刷データを出力することにより、印刷データの保存は各クライアントPC100に分散し、印刷データの書誌情報については印刷管理サーバで一元管理し、負荷分散したプルプリントシステムを構築することができる。
以下、図37に示すメモリマップを参照して本発明に係るプリントシステムを構成する各装置で読み取り可能なデータ処理プログラムの構成について説明する。
図37は、本発明に係るプリントシステムを構成する各装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図6,図8,図9,図11,図19,図20,図21,図23,図24,図25,図27,図30,図32,図34,図35,図36に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのソフトウエアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。