(57)【要約】  【課題】  加工後のスプールファイルをサーバ装置へ印刷要求する際、サーバ装置の認証拒否を受けることなく加工後のスプールファイルに対応した印刷を行えるようにする。  【解決手段】  システム権限によってスプールファイル加工プログラムが起動されると、まずユーザ権限への偽装（Ｓ２１０）が行われた後、スプールファイルをページ毎のＥＭＦに分割する（Ｓ２２０）が、その分割後は権限偽装を解除する。これにより、その後、コレートコピーやリバースオーダ等の加工情報に基づく新たなスプールファイルの作成をシステム権限で行うことができる。また、加工後の新たな印刷ジョブの生成（Ｓ２８０）や、加工後の新たなＥＭＦの描画処理（Ｓ３４０）の際には、前もって権限偽装を行う（Ｓ２７０，Ｓ３３０）。これにより、加工後の新たな印刷ジョブが外部のサーバＰＣへ送信される際、ユーザ権限にて認証が行われることとなる。【選択図】  図４
2006053658.tif 000002
【特許請求の範囲】
【請求項１】
印刷デバイスに接続されたサーバ装置とクライアント装置とがネットワークを介して接続され、前記クライアント装置から前記サーバ装置への印刷要求に対し、前記サーバ装置が、その印刷要求を行った要求者が予め登録されている登録ユーザであった場合にその印刷要求に従って前記印刷デバイスを制御するよう構成された印刷システムにおいて、前記クライアント装置に搭載された印刷制御装置であって、
前記クライアント装置の内部における動作権限として、前記登録ユーザとして前記印刷システムに登録されている当該クライアント装置のユーザ毎に与えられる、予め設定された領域にのみアクセス可能なユーザ権限と、少なくとも、ユーザによる印刷指示に応じて前記サーバ装置へ印刷要求を行う際にアクセスを要する領域には制限無くアクセス可能なシステム権限とを有し、
前記ユーザ権限にて前記印刷要求を行う場合はそのユーザ権限に対応したユーザが前記要求者となり、前記システム権限にて前記印刷要求を行う場合における前記要求者は前記登録ユーザとは異なるものとなるよう構成されており、
ユーザの入力に従ってそのユーザに対応したユーザ権限にて動作し、印刷ジョブ毎のスプールファイルを生成するスプールファイル生成手段と、
前記システム権限にて動作を開始し、前記スプールファイル生成手段により生成されたスプールファイルに該スプールファイルを加工すべき加工情報が含まれている場合に、その加工情報に基づいて前記スプールファイルを加工し、その加工されたスプールファイルを前記サーバ装置へ出力するための前記印刷要求を行うスプールファイル制御手段と、
前記スプールファイル制御手段が前記印刷要求を行う際に、前記動作権限を前記ユーザ権限に偽装する権限偽装手段と、
を備えたことを特徴とする印刷制御装置。
【請求項２】
請求項１記載の印刷制御装置であって、
前記スプールファイル制御手段は、
前記加工情報に基づいて前記スプールファイルの加工を行う加工手段と、
前記加工手段により加工されたスプールファイルを前記サーバ装置へ出力するための前記印刷要求を行う印刷要求手段と、
を備え、
前記権限偽装手段は、前記印刷要求手段の動作前に前記偽装を行うことを特徴とする印刷制御装置。
【請求項３】
請求項２記載の印刷制御装置であって、
前記スプールファイル制御手段は、前記スプールファイル生成手段により生成されたスプールファイルをページ毎の印刷用中間ファイルに分割して所定の一時保存領域に格納する格納手段を備え、
前記加工手段は、前記格納手段により一時保存領域に格納された前記印刷用中間ファイル毎に加工を行うよう構成されており、
前記権限偽装手段は、前記格納手段が前記印刷用中間ファイルを前記一時保存領域に格納する際も、前記偽装を行う
ことを特徴とする印刷制御装置。
【請求項４】
請求項２又は３記載の印刷制御装置であって、
前記加工手段が加工を行う前に、その加工対象のスプールファイルが生成されたときの前記ユーザ権限に関する情報を取得する権限情報取得手段を備え、
前記権限偽装手段は、前記権限情報取得手段により取得された情報に対応したユーザ権限にて前記偽装を行う
ことを特徴とする印刷制御装置。
【請求項５】
請求項４記載の印刷制御装置であって、
前記スプールファイル生成手段により生成されたスプールファイルには複数の前記加工情報が含まれており、
前記スプールファイル制御手段は、前記加工手段が前記加工情報のいずれか一つに基づいて前記スプールファイルを加工したときに、その加工後のスプールファイルに基づいて新たな印刷ジョブを生成する新規ジョブ生成手段を備え、その新たな印刷ジョブのスプールファイルに対して再び前記加工手段が加工を行うよう構成されており、
前記権限偽装手段は、前記新規ジョブ生成手段が前記新たな印刷ジョブを生成する際にも、前記偽装を行う
ことを特徴とする印刷制御装置。
【請求項６】
請求項１〜５いずれかに記載の印刷制御装置であって、
前記スプールファイル制御手段は、前記権限偽装手段による前記偽装が行われた後、前記システム権限での動作が必要な所定のタイミングで前記動作権限を再び前記システム権限に戻す偽装解除手段を備えたこと
を特徴とする印刷制御装置。
【請求項７】
請求項５に従属する請求項６記載の印刷制御装置であって、
前記スプールファイル制御手段は、前記新たな印刷ジョブのスプールファイルを前記システム権限にてアクセス可能な所定のスプール領域に一旦格納するスプール手段を備え、
前記偽装解除手段は、前記スプール手段が前記新たな印刷ジョブのスプールファイルを前記スプール領域へ格納する際に、前記動作権限を前記システム権限に戻す
ことを特徴とする印刷制御装置。
【請求項８】
請求項６又は７記載の印刷制御装置であって、
前記加工情報として、前記クライアント装置における、アクセス可能なユーザが制限された制限領域内に格納されたデータを取得すべき旨の情報があった場合に、その取得すべきデータを前記制限領域から取得する制限領域データ取得手段を備え、
前記偽装解除手段は、前記制限領域データ取得手段によるデータ取得の際に、前記動作権限を前記システム権限に戻す
ことを特徴とする印刷制御装置。
【請求項９】
請求項８記載の印刷制御装置であって、
前記クライアント装置は、その内部におけるアクセス可能な領域がユーザ毎に設定されている
ことを特徴とする印刷制御装置。
【請求項１０】
印刷デバイスに接続されたサーバ装置とクライアント装置とがネットワークを介して接続され、前記クライアント装置から前記サーバ装置への印刷要求に対し、前記サーバ装置が、その印刷要求を行った要求者が予め登録されている登録ユーザであった場合にその印刷要求に従って前記印刷デバイスを制御するよう構成された印刷システムであって、
前記クライアント装置には、請求項１〜９いずれかに記載の印刷制御装置が搭載されている
ことを特徴とする印刷システム。
【請求項１１】
請求項１〜９いずれかに記載の印刷制御装置における前記各手段としてコンピュータを機能させるためのプログラム。
【請求項１２】
請求項１１記載のプログラムであって、
当該プログラムのうち、少なくとも前記スプールファイル制御手段として機能させるためのスプールファイル制御プログラムは、前記コンピュータ全体を管理してプログラムの実行を制御するために該コンピュータが実行する基本ソフトウェアに対する、その基本ソフトウェアが管理する領域に制限無くアクセス可能な特権モードで実行が開始されるシステムプロセスとして構成され、
前記権限偽装手段として機能させるための権限偽装プログラムは、前記コンピュータの動作モードを、前記特権モードから、前記基本ソフトウェアが管理する領域に対するアクセスが前記ユーザ権限に対応して制限されるユーザモードに変更するよう構成されている
ことを特徴とするプログラム。
【請求項１３】
請求項６記載の印刷制御装置における前記各手段としてコンピュータを機能させるためのプログラムであって、
当該プログラムのうち、少なくとも前記スプールファイル制御手段として機能させるためのスプールファイル制御プログラムは、前記コンピュータ全体を管理してプログラムの実行を制御するために該コンピュータが実行する基本ソフトウェアに対する、その基本ソフトウェアが管理する領域に制限無くアクセス可能な特権モードで実行が開始されるシステムプロセスとして構成され、
前記偽装解除手段として機能させるための偽装解除プログラムは、前記コンピュータの動作モードを、前記基本ソフトウェアが管理する領域に対するアクセスが前記ユーザ権限に対応して制限されるユーザモードに偽装された状態から、前記特権モードに変更するよう構成されている
ことを特徴とするプログラム。
【請求項１４】
印刷デバイスに接続されたサーバ装置とクライアント装置とがネットワークを介して接続され、前記クライアント装置から前記サーバ装置への印刷要求に対し、前記サーバ装置が、その印刷要求を行った要求者が予め登録されている登録ユーザであった場合にその印刷要求に従って前記印刷デバイスを制御するよう構成された印刷システムにおいて、前記クライアント装置が当該装置内部で生成した印刷ジョブを制御してその印刷ジョブに対応した前記印刷要求を行う印刷制御方法であって、
前記クライアント装置の内部における動作権限として、前記登録ユーザとして前記印刷システムに登録されている当該クライアント装置のユーザ毎に与えられる、予め設定された領域にのみアクセス可能なユーザ権限と、少なくとも、ユーザによる印刷指示に応じて前記サーバ装置へ印刷要求を行う際にアクセスを要する領域には制限無くアクセス可能なシステム権限とを有し、
前記システム権限にて前記印刷ジョブの制御が実行されている場合に、前記ユーザ権限で行うべき処理を実行する必要が生じたときは、前記動作権限を前記ユーザ権限に偽装する
ことを特徴とする印刷制御方法。
【請求項１５】
請求項１４記載の印刷制御方法であって、
前記システム権限にて実行されている前記印刷ジョブの制御は、その印刷ジョブのスプールファイルに該スプールファイルを加工すべき加工情報が含まれている場合におけるその加工情報に基づく前記スプールファイルの加工であり、
前記ユーザ権限で行うべき処理は、前記サーバ装置に対して前記加工後のスプールファイルに基づく印刷要求を行う処理である
ことを特徴とする印刷制御方法。
【請求項１６】
請求項１４又は１５記載の印刷制御方法であって、
前記ユーザ権限への偽装後、前記システム権限で行うべき処理を実行する必要が生じたときは、前記動作権限を再び前記システム権限に戻す
ことを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷デバイスに接続されたサーバ装置とクライアント装置とがネットワークを介して接続された印刷システム、その印刷システムを構成するクライアント装置が印刷ジョブを生成してサーバ装置に対する印刷要求を行うための印刷制御方法、印刷制御装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、複数のパーソナルコンピュータ（以下「ＰＣ」と略す）がネットワークを介して相互に接続されると共にある特定のＰＣにプリンタが接続され、そのプリンタを、ネットワークに接続された複数のＰＣが利用できるように構成された印刷システムが知られている。
【０００３】
図６は、印刷システムの一例を示すものであり、プリンタ１０３が接続されたサーバＰＣ１０２とクライアントＰＣ１０１とがネットワーク１０５を介して相互に接続されている。また、図示しないものの、ネットワーク１０５には他にも複数のクライアントＰＣが接続されている。そして、サーバＰＣ１０２からプリンタ１０３へ印刷データを出力して印刷を行えることはもちろん、ネットワーク１０５に接続された全てのクライアントＰＣも、ネットワーク１０５及びサーバＰＣ１０２を介してプリンタ１０３へ印刷データを出力し、印刷を行うことができる。
【０００４】
このように構成された印刷システムにおいて、プリンタ１０３で印刷を行うためにクライアントＰＣ１０１からサーバＰＣ１０２へ印刷要求が行われたときの印刷処理の流れを、図７に基づいて概略説明する。図７では、クライアントＰＣ１０１におけるクライアントＯＳ（Operating System）及びサーバＰＣ１０２におけるサーバＯＳがいずれもＷｉｎｄｏｗｓ（登録商標。以下同様。）であるものとして説明する。
【０００５】
ワープロソフトや表計算ソフト等のアプリケーション１１１を操作しているユーザの処理によりアプリケーション１１１から印刷指示がなされると、その指示内容はプリンタドライバＵＩ（User Interface）１１２を介して、クライアントＯＳが提供するプログラムモジュールであるＧＤＩ（Graphics Device Interface ）に送られる。このＧＤＩにより、仮想化されたディスプレイ領域であるデバイスコンテキスト（以下「ＤＣ」と略す）が作成されてアプリケーション１１１へ供給される。これにより、アプリケーション１１１によるＤＣへの描画処理が行われ、その結果、ＥＭＦ（Enhanced Meta File）と称される、プリンタの種類に依存しない中間ファイルがページ毎に生成される。
【０００６】
各ページの中間ファイルは、クライアントＯＳの一機能としてのスプーラシステム１１３によって印刷ジョブ毎に一つのスプールファイルとして形成され、そのスプールファイルはスプーラシステム１１３によって一時的に記憶装置に記憶（スプール）される。
【０００７】
そして、プリントプロセッサ１１４が、記憶装置に記憶されたスプールファイルをプリンタドライバＧＤＩ１１５へ渡すことにより、スプールファイルがこのプリンタドライバＧＤＩ１１５によって出力先のプリンタ１０３に応じた印刷データ（プリンタ制御コード）に変換される。そして、この印刷データがポートモニタ１１６を介してサーバＰＣ１０２へ出力されることとなる。
【０００８】
ポートモニタ１１６は、印刷データを出力するのに先立ってサーバＰＣ１０２への接続要求を行う。これにより、サーバＰＣ１０２では、接続を許可するか否かの認証が行われる。そして、認証が通って接続が許可された場合は、クライアントＰＣ１０１からの印刷データがサーバＰＣ１０２に入力され、スプーラシステム１３１やプリントプロセッサ１３２を介してプリンタ１０３へ出力される。尚、上述した例では、クライアントＰＣ１０１においてスプールファイルが出力先のプリンタ１０３に応じたプリンタ制御コードに変換されるため、サーバＰＣ１０２のプリンタドライバＧＤＩ１３３においてプリンタ制御コードへの変換は行われない。
【０００９】
ここで、上述したクライアントＰＣ１０１における各処理のうち、ユーザ処理によるアプリケーション１１１からの印刷指示やプリンタドライバＵＩ１１２の動作は、そのユーザに対応したユーザ権限により行われる。また、スプーラシステム１１３によるスプールファイルのスプールからプリントプロセッサ１１４、プリンタドライバ１１５を介してポートモニタ１１６による接続要求（認証要求）が行われるまでの各処理は、本来はシステム権限であるもののユーザ権限に偽装された状態で行われる。
【００１０】
これにより、ポートモニタ１１６からの認証要求、即ちサーバＰＣ１０２による認証処理はクライアントＰＣ１０１のユーザ名で行われる。そのため、プリンタ１０３へのアクセス許可が予め登録されているユーザ名で認証が行われる限り、認証が通って接続が許可されるのである。
【００１１】
一方、上述した通常の印刷例に加え、例えばページ分割された複数のページを同一ページ内に印刷するいわゆる４in１、２in１等のＮin１と称されるマルチページ印刷や、ある画像に別の画像を重ねて印刷する重ね印刷（いわゆるウォーターマーク描画）、或いはページ分割された複数ページの昇降順を入れ換えて印刷するといったページ入れ換え印刷（リバースオーダ）などの、種々の特殊印刷を行いたいというニーズもあり、そのような特殊印刷ジョブをパソコン側で制御することも考えられている。そこで本願出願人は、スプールファイルを加工することによって上記各種の特殊印刷を実現する技術を提案した（例えば、特許文献１参照。）。
【００１２】
具体的には、スプーラシステム１１３によりスプールされたスプールファイルに対し、プリントプロセッサ１１４が加工処理のためのプロセスであるスプールファイル加工プログラム１２１を起動するのである。これにより、スプールファイルがページ毎の中間ファイルに分割され、その中間ファイルに対して所定の加工が施される。そして、加工後の中間ファイルによって新たなスプールファイルが生成され、再びスプーラシステム１１３へ戻される。これにより、新たに生成されたスプールファイルに基づいて、出力先のプリンタに応じたプリンタ制御コードをプリンタドライバＧＤＩ１１５にて生成するといった通常の処理を可能としつつ、上記各種の特殊印刷を実現している。
【特許文献１】特開２００３−１３１８３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、特殊印刷のためにスプールファイルを加工して新たなスプールファイルを生成し、その後プリントプロセッサ１１４やプリンタドライバＧＤＩ１１５等を経てポートモニタ１１６によりサーバＰＣ１０２への接続を要求すると、サーバＰＣ１０２における認証にて拒否されてしまい、その特殊印刷をプリンタ１０３で行うことができなくなる場合があった。
【００１４】
即ち、スプールファイルの加工は、プリントプロセッサ１１４から別プロセス（スプールファイル加工プログラム１２１）を起動して、そのプロセス内でスプールデータを加工し、加工後に別ＪＯＢとしてスプーラシステム１１３に戻すことにより行われる。この起動されるプロセスは、起動元がシステムであるため、システム権限で起動される。これにより、アクセス権限が制限されたユーザではアクセスできないディレクトリ等にアクセスすることで、特殊印刷を実現している。
【００１５】
つまり、印刷ジョブ毎のスプールファイルの処理がユーザ名でなされている過程において、特殊印刷の実現のためにシステム権限（ユーザ名；Ｓｙｓｔｅｍ）で別プロセスを立ち上げ、新たな印刷ジョブを生成しているのである。そして、システム権限で生成された新たな印刷ジョブがスプーラシステム１１３に戻されると、以後、ポートモニタ１１６にて接続要求を行うまでの一連の処理はシステム権限で行われることとなる。
【００１６】
そのため、この新たな印刷ジョブをサーバＰＣ１０２へ出力する際の認証において、クライアントＰＣ１０１はユーザ名を「Ｓｙｓｔｅｍ」として認証要求することとなり、アクセスを許可できるユーザ名としてＳｙｓｔｅｍはサーバＰＣ１０２に登録されていないことから、この認証は拒否されるのである。
【００１７】
このようにスプールファイル加工のための別プロセスを起動したことにより認証が拒否されるのは、より具体的には、Ｗｉｎｄｏｗｓの場合、ＵＮＣ（Universal Naming  Convention）ポートによるプリンタへの接続時やリダイレクトポートによるプリンタへの接続時が挙げられる。これら各ポートを用いた接続時には、当然ながらネットワークにおけるセキュリティが適用され、その認証にはユーザ名が使用される。そのため、ユーザ名がＳｙｓｔｅｍの場合の認証は拒否されることになるのである。
【００１８】
尚、サーバＰＣ１０２のセキュリティレベルを低くして例えば「誰でも印刷可能」としたり或いは「クライアントＰＣ１０１からの印刷要求については無条件に許可する」などとしたりすれば、サーバＰＣ１０２の認証で拒否されないようにすることも可能ではある。しかし、例えば企業内のネットワークなどでは通常そのような低いセキュリティレベルに設定することは稀であり、必要に応じた高レベルのセキュリティ設定を行うのが一般的である。
【００１９】
そのため、そうしたセキュリティレベルの高いネットワークにおいて、クライアントＰＣ１０１から上述した特殊印刷のための処理（別プロセス起動）を行った場合であっても、その特殊印刷ジョブについてサーバＰＣ１０２を介してプリンタ１０３から印刷できるようにすることが望まれていた。
【００２０】
本発明は上記課題に鑑みなされたものであり、スプールファイルを加工してサーバ装置へ印刷要求する際に、サーバ装置による認証で拒否されることなくその加工後のスプールファイルに対応した印刷を行えるようにすることを目的とする。
【課題を解決するための手段】
【００２１】
上記課題を解決するためになされた請求項１記載の発明は、印刷デバイスに接続されたサーバ装置とクライアント装置とがネットワークを介して接続され、クライアント装置からサーバ装置への印刷要求に対し、サーバ装置が、その印刷要求を行った要求者が予め登録されている登録ユーザであった場合にその印刷要求に従って印刷デバイスを制御するよう構成された印刷システムにおける、クライアント装置に搭載された印刷制御装置である。
【００２２】
クライアント装置の内部における動作権限としては、ユーザ権限とシステム権限とを有しており、このうちユーザ権限は、登録ユーザとして印刷システムに登録されている当該クライアント装置のユーザ毎に与えられる、予め設定された領域にのみアクセス可能な権限であり、システム権限は、少なくとも、ユーザによる印刷指示に応じてサーバ装置へ印刷要求を行う際にアクセスを要する領域には制限無くアクセスすることが可能な権限である。そして、ユーザ権限にて印刷要求を行う場合はそのユーザ権限に対応したユーザが要求者となる。一方、システム権限にて印刷要求を行う場合における要求者は、上記登録ユーザとは異なるものとなる。
【００２３】
そして更に、請求項１記載の印刷制御装置は、スプールファイル生成手段と、スプールファイル制御手段と、権限偽装手段とを備えている。このうちスプールファイル生成手段は、ユーザの入力に従ってそのユーザに対応したユーザ権限にて動作し、印刷ジョブ毎のスプールファイルを生成する。
【００２４】
スプールファイル制御手段は、システム権限にて動作を開始し、スプールファイル生成手段により生成されたスプールファイルに該スプールファイルを加工すべき加工情報が含まれている場合に、その加工情報に基づいてスプールファイルを加工し、その加工されたスプールファイルをサーバ装置へ出力するための印刷要求を行う。そして、スプールファイル制御手段が印刷要求を行う際に、権限偽装手段が、動作権限をユーザ権限に偽装する。
【００２５】
このように構成された印刷制御装置においては、スプールファイルの生成はユーザ権限で行われるものの、そのスプールファイルを加工して印刷要求する際はシステム権限にてなされる。ところが、印刷要求が行われる際に、権限偽装手段が動作権限をユーザ権限に偽装するため、印刷要求はユーザ権限にて行われる。そのため、その印刷要求を受けたサーバ装置は、その要求者であるクライアント装置側のユーザが登録ユーザとして登録されている限り、その要求に従って印刷デバイスを制御することとなる。
【００２６】
従って、上記のように構成された請求項１記載の印刷制御装置によれば、システム権限にて加工されたスプールファイルについて印刷要求を行う場合であっても、その印刷要求時の動作権限がユーザ権限に偽装されるため、登録ユーザとして登録されている限り、サーバ装置による認証で拒否されることなくその加工後のスプールファイルに対応した印刷を行うことが可能となる。
【００２７】
スプールファイル制御手段は、具体的には、例えば請求項２に記載のように、加工情報に基づいてスプールファイルの加工を行う加工手段と、その加工手段により加工されたスプールファイルをサーバ装置へ出力するための印刷要求を行う印刷要求手段とを備えたものとして構成することができる。そしてこの場合、権限偽装手段は、印刷要求手段の動作前に偽装を行えばよい。このように構成することで、印刷要求の際、確実にユーザ権限に偽装された状態にすることができる。
【００２８】
次に、請求項３記載の発明は、請求項２記載の印刷制御装置であって、スプールファイル制御手段は、スプールファイル生成手段により生成されたスプールファイルをページ毎の印刷用中間ファイルに分割して所定の一時保存領域に格納する格納手段を備える。そして、加工手段は、格納手段により一時保存領域に格納された印刷用中間ファイル毎に加工を行い、権限偽装手段は、格納手段が印刷用中間ファイルを一時保存領域に格納する際も偽装を行う。
【００２９】
このように構成された印刷制御装置によれば、印刷用中間ファイルの一時保存領域への格納がユーザ権限にて行われるため、一時保存領域への格納中或いは格納後に何らかの原因でクライアント装置の動作が異常終了したとしても、一時保存領域に格納された印刷用中間ファイルをユーザが（即ちユーザ権限で）削除することが可能となる。
【００３０】
ところで、ユーザ権限はユーザ毎に与えられるものであるため、その権限の内容もユーザ毎に異なることも十分に考えられる。そこで、請求項２又は３に記載の印刷制御装置は、例えば請求項４に記載のように、加工手段が加工を行う前に、権限情報取得手段がその加工対象のスプールファイルが生成されたときのユーザ権限に関する情報を取得するようにし、その取得された情報に対応したユーザ権限にて権限偽装手段が偽装を行うように構成してもよい。
【００３１】
このようにすれば、クライアント装置を操作しているユーザとは異なる他のユーザに対応したユーザ権限で偽装されてしまうといったことがなく、その時々のユーザに確実に対応したユーザ権限で偽装することが可能となる。
【００３２】
次に、請求項５記載の発明は、請求項４記載の印刷制御装置であって、スプールファイル生成手段により生成されたスプールファイルには複数の加工情報が含まれており、スプールファイル制御手段は、加工手段が複数の加工情報のいずれか一つに基づいてスプールファイルを加工したときに、その加工後のスプールファイルに基づいて新たな印刷ジョブを生成する新規ジョブ生成手段を備えており、その新たな印刷ジョブのスプールファイルに対して加工手段が再び加工を行うよう構成されている。そして、権限偽装手段は、新規ジョブ生成手段が新たな印刷ジョブを生成する際にも偽装を行う。
【００３３】
このように構成された印刷制御装置によれば、新規ジョブ生成手段が新たな印刷ジョブを生成する際にユーザ権限への偽装を行うため、その新たな印刷ジョブはユーザ権限にて生成されることとなる。
【００３４】
そのため、その新たな印刷ジョブに対して更に加工手段が加工を行う際、権限情報取得手段は加工対象のスプールファイル（即ち新たな印刷ジョブのスプールファイル）が生成されたときのユーザ権限に関する情報を確実に取得することができ、その後その取得した情報に基づいて権限偽装手段が偽装を行うことが可能となる。
【００３５】
そして、上記のように構成された請求項１〜５いずれかに記載の印刷制御装置は、更に、例えば請求項６に記載のように、スプールファイル制御手段が、権限偽装手段による偽装が行われた後にシステム権限での動作が必要な所定のタイミングで動作権限を再びシステム権限に戻す偽装解除手段を備えたものとすることができる。
【００３６】
即ち、権限偽装手段によってユーザ権限に偽装されても、システム権限として動作する必要性が生じたときは、再びシステム権限に戻すのである。このようにすることで、動作権限を必要に応じて適切に変更することができるようになり、ユーザ権限への偽装後にシステム権限での処理が必要となっても確実にその処理を行うことが可能となる。
【００３７】
次に、請求項７記載の発明は、請求項５に従属する請求項６記載の印刷制御装置であって、スプールファイル制御手段は、新たな印刷ジョブのスプールファイルをシステム権限にてアクセス可能な所定のスプール領域に一旦格納するスプール手段を備える。そして、偽装解除手段は、スプール手段がその新たな印刷ジョブのスプールファイルをスプール領域へ格納する際に、動作権限をシステム権限に戻す。
【００３８】
このように構成された印刷制御装置によれば、仮にスプールファイル制御手段がユーザ権限にて動作しているときであっても、スプール手段がスプール領域へのスプールファイルの格納を行う際には動作モードがシステム権限に戻ることになるため、確実にスプールすることが可能となる。
【００３９】
また、請求項８記載の発明は、請求項６又は７記載の印刷制御装置であって、クライアント装置における、アクセス可能なユーザが制限された制限領域内に格納されたデータを取得すべき旨の加工情報があった場合に、その取得すべきデータを制限領域から取得する制限領域データ取得手段を備え、偽装解除手段は、制限領域データ取得手段によるデータ取得の際に、動作権限を前記システム権限に戻す。
【００４０】
このように構成された印刷制御装置によれば、スプールファイルを加工するために制限領域にアクセスする必要がある場合は、動作権限が前もってシステム権限に戻されるため、制限領域内に格納されたデータを必要に応じて制限無く取得することが可能となる。
【００４１】
そして、上記請求項８に記載の発明は、特に、請求項９に記載のようにクライアント装置の内部におけるアクセス可能な領域がユーザ毎に設定されている場合に適用すると、より効果的である。
【００４２】
即ち、例えばあるユーザがスプールファイル加工のためのデータを独自に作成してそのユーザがアクセス可能な領域にそのデータを格納した場合、他のユーザがそのデータを利用してスプールファイルを加工しようと思っても、そのデータの格納場所へのアクセスができない場合はそのデータを利用することができない。このような場合に、動作権限をシステム権限に戻せば、そのデータが格納された領域にアクセスしてデータを取得することが可能となるのである。
【００４３】
従って、請求項９記載の印刷制御装置によれば、スプールファイルを加工するのに必要なデータを確実に取得することができ、所望の加工を確実に行うことが可能となる。
そして、請求項１０記載の発明は、印刷デバイスに接続されたサーバ装置とクライアント装置とがネットワークを介して接続され、クライアント装置からサーバ装置への印刷要求に対し、サーバ装置が、その印刷要求を行った要求者が予め登録されている登録ユーザであった場合にその印刷要求に従って印刷デバイスを制御するよう構成された印刷システムであって、クライアント装置に、請求項１〜９いずれかに記載の印刷制御装置が搭載されたものである。
【００４４】
このように構成された印刷システムによれば、請求項１〜９いずれかに記載の発明と同様の効果が得られ、クライアント装置でスプールファイルが加工された場合であってもそのスプールファイルに対応した印刷結果を得ることが可能となる。
【００４５】
本発明の印刷制御装置（請求項１〜９）は、例えば別途ハードウェアにより実現することができるなど、種々の方法により実現可能であるが、コンピュータがアプリケーションソフト（プログラム）を実行することにより実現することができる。
【００４６】
即ち、当該印刷制御装置における各手段としてコンピュータを機能させるためのプログラムを備え、コンピュータがそのプログラムを実行することにより、本発明の印刷制御装置を実現するのである。
【００４７】
尚、コンピュータを本発明の印刷制御装置として機能させるためのプログラムは、例えば、フロッピー（登録商標。以下同様。）ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体としてプログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータに組み込んで用いてもよい。
【００４８】
そして、上記のように印刷制御装置をコンピュータにてプログラムを実行させることで実現する場合は、例えば請求項１２に記載のように、当該プログラムのうち、少なくとも上記スプールファイル制御手段として機能させるためのスプールファイル制御プログラムは、コンピュータ全体を管理してプログラムの実行を制御するために該コンピュータが実行する基本ソフトウェアに対する、その基本ソフトウェアが管理する領域に制限無くアクセス可能な特権モードで実行が開始されるシステムプロセスとして構成し、上記権限偽装手段として機能させるための権限偽装プログラムは、コンピュータの動作モードを、特権モードから、上記基本ソフトウェアが管理する領域に対するアクセスがユーザ権限に対応して制限されるユーザモードに変更するよう構成するとよい。
【００４９】
このようにすることで、システム権限にて動作を開始するスプールファイル制御手段と、システム権限のユーザ権限への偽装を行う権限偽装手段とが実現されることとなる。
また、請求項６記載の印刷制御装置における各手段としてコンピュータを機能させるためのプログラムは、より具体的には例えば請求項１３に記載のように、当該プログラムのうち少なくともスプールファイル制御手段として機能させるためのスプールファイル制御プログラムを、コンピュータ全体を管理してプログラムの実行を制御するために該コンピュータが実行する基本ソフトウェアに対する、その基本ソフトウェアが管理する領域に制限無くアクセス可能な特権モードで実行が開始されるシステムプロセスとして構成し、偽装解除手段として機能させるための偽装解除プログラムを、コンピュータの動作モードを上記基本ソフトウェアが管理する領域に対するアクセスがユーザ権限に対応して制限されるユーザモードに偽装された状態から特権モードに変更するものとして構成するとよい。
【００５０】
このようにすることで、システム権限にて動作を開始するスプールファイル制御手段と、ユーザ権限に偽装された状態からシステム権限に戻す偽装解除手段とが実現されることとなる。
【００５１】
次に、請求項１４記載の発明は、印刷デバイスに接続されたサーバ装置とクライアント装置とがネットワークを介して接続され、クライアント装置からサーバ装置への印刷要求に対し、サーバ装置が、その印刷要求を行った要求者が予め登録されている登録ユーザであった場合にその印刷要求に従って印刷デバイスを制御するよう構成された印刷システムにおいて、クライアント装置が当該装置内部で生成した印刷ジョブを制御してその印刷ジョブに対応した印刷要求を行う印刷制御方法である。
【００５２】
そして、クライアント装置の内部における動作権限として、請求項１と同様、ユーザ権限とシステム権限を有し、システム権限にて印刷ジョブの制御が実行されている場合に、ユーザ権限で行うべき処理を実行する必要が生じたときは、動作権限をユーザ権限に偽装する。従って、上記のような印刷制御方法によれば、印刷ジョブをより適切な動作権限にて制御することが可能となる。
【００５３】
また、上記請求項１４に記載の印刷制御方法は、より具体的には、例えば請求項１５に記載のように、システム権限にて実行されている印刷ジョブの制御を、その印刷ジョブのスプールファイルに該スプールファイルを加工すべき加工情報が含まれている場合におけるその加工情報に基づくスプールファイルの加工とし、ユーザ権限で行うべき処理を、サーバ装置に対して加工後のスプールファイルに基づく印刷要求を行う処理としてもよい。このようにすれば、請求項１と同様の効果を得ることが可能となる。
【００５４】
更に、例えば請求項１６のように、ユーザ権限への偽装後、システム権限で行うべき処理を実行する必要が生じたときに動作権限を再びシステム権限に戻すようにすれば、システム権限で行うべき処理を確実に実行することが可能となる。
【発明を実施するための最良の形態】
【００５５】
以下に、本発明の好適な実施形態を図面に基づいて説明する。図１に、本実施形態の印刷システムのハード構成を示す。図１に示す如く、本実施形態の印刷システムは、図６に示した印刷システムと同じように、クライアントＰＣ１とサーバＰＣ２とがＬＡＮ（Local Area Network）などのネットワーク７を介して相互にデータ送受信できるよう接続されている。また、サーバＰＣ２には印刷デバイスとしてのプリンタ３が接続されている。そして、サーバＰＣ２からプリンタ３へ印刷データを出力して所望の印刷を行うことはもちろん、クライアントＰＣ１からの印刷データもサーバＰＣ２を介してプリンタ３へ出力でき、更には、ネットワーク７に接続されている図示しない他のクライアントＰＣからも、サーバＰＣ２を介してプリンタ３を利用することができる。
【００５６】
より厳密にいえば、サーバＰＣ２へアクセスしてプリンタ３への印刷データ出力を行う権限が与えられたユーザが、クライアントＰＣ１（図示しない他のクライアントＰＣも含む）からサーバＰＣ２へアクセスしたときに、そのユーザ名での認証が通ったとき、サーバＰＣ２を介したプリンタ３への印刷データ出力が許可される。
【００５７】
プリンタ３は、当該プリンタ３の動作全体を制御するＣＰＵ３１と、ＣＰＵ３１にて実行される各種プログラムやパラメータ等が格納されたＲＯＭ３２と、サーバＰＣ２から送信されてくる画像データ等の格納やＣＰＵ３１の一時的な作業領域として用いられるＲＡＭ３３と、当該プリンタ３とサーバＰＣ２との間でデータ授受を行うためのインターフェイスであるＩ／Ｆ３５と、サーバＰＣ２から入力された画像データに従って印刷用紙（図示略）に画像を形成（印刷出力）するエンジン３４とを備え、これらが内部バス３６にて接続された構成となっている。
【００５８】
クライアントＰＣ１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスクドライブ（ＨＤＤ）１４、周辺機器等と接続してその機器との間でデータの送受を行うＩ／Ｏ１５、及びＮＩＣ（Network Interface Card）１６を備え、これらが内部バス１７を介して相互に接続されたごく一般的な構成のものである。尚、Ｉ／Ｏ１５は、例えばＵＳＢ（Universal Serial Bus）などといった各種インターフェイスにて構成されている。
【００５９】
クライアントＰＣ１にインストールされたアプリケーション上で作成された文書データや画像データ等の各種印刷用データは、ユーザによる印刷指示によってＮＩＣ１６から出力され、ネットワーク７を介してサーバＰＣ２へ入力される。そしてサーバＰＣ２は、クライアントＰＣ１から受信した印刷用データを適宜処理してプリンタ３へ出力する。
【００６０】
サーバＰＣ２については、そのハード構成のみに着目すればクライアントＰＣ１と同様の構成であるため、ここではその説明を省略する。尚、サーバＰＣ２とプリンタ３とは、サーバＰＣ２におけるＩ／Ｏ２５とプリンタ３におけるＩ／Ｆ３５との間で例えばＵＳＢインターフェイスによって接続されている。
【００６１】
図２は本実施形態の印刷システムのソフトモジュールを示す概略ブロック図である。本実施形態では、クライアントＯＳがＷｉｎｄｏｗｓＮＴ、サーバＯＳがＷｉｎｄｏｗｓ２０００の場合を示している。
【００６２】
そして、本実施形態では、中間ファイル生成部４１にて生成された印刷用の中間ファイルが、印刷ジョブ毎のスプールファイルとして一旦スプール領域５８へ記憶され、その記憶されたスプールファイルに加工情報が含まれているときは、スプールファイル加工処理部４３がそのスプールファイルを加工して再びスプール領域５８へ戻す。そして、加工後のスプールファイルがプリンタドライバＧＤＩ４４にてプリンタ制御コードに変換され、ポートモニタ４５を介してサーバＰＣ２へ送信される。
【００６３】
サーバＰＣ２では、受信した印刷用データ（プリンタ制御コード）をプリントスプーラ６１が一旦スプール領域６８へ記憶する。そして、プリンタ３の動作状態に応じてその印刷用データがプリンタ３へ出力される。
【００６４】
尚、一般に、クライアントＰＣ１及びサーバＰＣ２はいずれも、図１でも説明したように、ＣＰＵ１１（２１）、ＲＯＭ１２（２２）、ＲＡＭ１３（２３）、Ｉ／Ｏ１５（２５）等のハードウェアのもとで各ＯＳがこれらの制御を担い、そのＯＳの元で、アプリケーションソフトやデバイスドライバ等の応用ソフトが動作するようになっている。そして、本実施形態のクライアントＰＣ１では、プリントスプーラ４２はクライアントＯＳの一機能としてのプログラムモジュールであり、スプールファイル加工処理部４３及びプリンタドライバＧＤＩ４４は、プリンタ３を動作させるためにクライアントＰＣ１に組み込まれたデバイスドライバ（プログラム）であってクライアントＯＳと連携しながらプリンタ３の動作を制御する。
【００６５】
また、プリントプロセッサ５６は、ＯＳ（ＷｉｎｄｏｗｓＮＴ）が元々備えているプリントプロセッサ（図示略）とは別に、プリンタ３に対応してクライアントＰＣ１に追加（インストール）されることによりクライアントＯＳの中に組み込まれて動作するプログラムモジュールであり、スプールファイル加工処理部４３と共に本発明の印刷制御装置を構成するものである。
【００６６】
尚、本実施形態では、クライアントＰＣ１における各部の機能を実現するためのプログラムは全てハードディスク（ＨＤＤ）１４に格納されている。サーバＰＣ２についても同様であり、サーバＰＣ２における各部の機能を実現するためのプログラムは全てＨＤＤ２４に格納されている。以下、本実施形態の印刷システムの動作について説明する。
【００６７】
図２に示す如く、ユーザによってクライアントＰＣ１上のアプリケーション５１により作成されたデータは、プリンタドライバ５２を介してＷｉｎｄｏｗｓＮＴが提供するプログラムモジュールであるＧＤＩ５３に送られ、このＧＤＩ５３により仮想化されたディスプレイ領域であるＤＣ（デバイスコンテキスト）に送られる。そして、このＤＣの指示された座標にデバイス（プリンタ、ディスプレイ等）の種類に依存しない印刷ジョブ毎の印刷データが格納され、仮想化されたデバイスへの描画が行われる。アプリケーション５１は、例えばワープロソフトや表計算ソフトなどの、ＯＳ上で動作する応用ソフトを示すものである。
【００６８】
一般にＧＤＩと呼ばれるものには、ＤＣの管理、ＥＭＦの形成を行うものと、ＤＣへの処理をデバイス（例えばプリンタやディスプレイ）に依存するコマンドに変換するものとがあり、前者はＯＳにより提供されるものであって図２のＧＤＩ５３がこれに相当するものであり、後者はデバイスメーカによりドライバとして提供されるものであって図２のプリンタドライバＧＤＩ４４がこれに相当するものである。
【００６９】
このように、ＤＣ即ち仮想化されたデバイスに描画することで、各ページ毎にデバイスの種類に依存しないＥＭＦ（中間ファイル）が形成される。このＥＭＦがスプーラシステム５５により結合されて１つの印刷ジョブとなるように、ＨＤＤ１４にて確保されたスプール領域５８にスプールファイルとして格納される。このスプールファイルには、マルチページ印刷、ウォーターマーク描画、リバースオーダ、或いは複数部数の印刷を行うコレートコピーなどといった特殊印刷を行うための加工情報も含まれる。
【００７０】
即ち、アプリケーション５１にて作成したデータをユーザが印刷させる際に、特殊印刷をする旨の指示があった場合は、その旨の情報（スプールファイルを加工するための加工情報）も、スプールファイルに付加される。尚、スプール領域５８は必ずしもクライアントＰＣ１内のＨＤＤ１４内に確保されている必要はなく、例えばクライアントＰＣ１の外部に何らかの記憶装置等を設けてその記憶装置の一部をスプール領域５８として確保するようにしてもいいなど、クライアントＰＣ１から管理可能な状態に存在する限り、その態様は特に限定されない。
【００７１】
そして、マルチページ印刷、ウォーターマーク描画等の特殊印刷を行う場合には、スプールファイル加工処理部４３が動作（スプールファイル加工プログラムが起動）し、このスプールファイル加工処理部４３により、スプール領域５８に格納されている印刷ジョブ毎のスプールファイルが特殊印刷のために加工される。具体的には、プリントプロセッサ５６が、スプール領域５８に記憶されたスプールファイルを取り出して、その取り出したスプールファイルに加工情報が含まれているか否かをみる。そして、加工情報が含まれている場合に、そのスプールファイルをスプールファイル加工処理部４３へ渡す。
【００７２】
スプールファイル加工処理部４３における処理の詳細、即ちスプールファイル加工プログラムによる具体的処理内容については後述するが、その概略だけ説明すると、まず、プリントプロセッサ５６から渡されたスプールファイルをページ毎のＥＭＦ（中間ファイル）に分割する。そして、分割後の各ページのＥＭＦをＨＤＤ１４上のテンポラリファイルにコピーする。このテンポラリファイルは不要となった時点で消去する。尚、ページ分割の前に、スプールファイルから加工情報を取得して、どのような加工をすべきかを予め識別しておく。このテンポラリファイルが展開される領域は本発明の一時保存領域に相当する。
【００７３】
その後、加工情報としてリバースオーダやコレートコピーといった加工、換言すれば各ページに対しては何ら加工を施さないような加工（以下「第一種加工」ともいう）をすべき旨の情報があった場合は、まずその加工情報に基づいてスプールファイルを加工し、新たなＥＭＦを生成する。この加工後の新たなＥＭＦは、スプーラシステム５５によって再びスプール領域５８へ戻される。
【００７４】
そして、このようにスプールファイル加工処理部４３により加工されてスプール領域５８に戻された新しい印刷ジョブに対し、プリントプロセッサ５６が再び加工情報の有無をみて、まだ加工情報が含まれているならば、その新しい印刷ジョブのスプールファイルを再びスプールファイル加工処理部４３へ渡す。
【００７５】
スプールファイル加工処理部４３では、同じようにしてまず第一種加工を施すべきか否かが判断され、その必要がなければ、ウォーターマーク描画やマルチページ印刷などの加工、換言すれば各ページに対して施されるページ単位での加工（以下「第二種加工」ともいう）が施される。
【００７６】
そして、全ての加工が終了したら、加工が終了したページのＥＭＦが順次プリントプロセッサ５６によってプリンタドライバＧＤＩ４４へ送られ、このプリンタドライバＧＤＩ４４によってプリンタ３に対応したプリンタ制御コードに変換されて、ポートモニタ４５を介してサーバＰＣ２へ送られる。
【００７７】
プリンタ制御コードはメーカ毎に仕様が異なっており、代表的なものとして、例えば米国Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ社のＰＣＬや米国Ａｄｏｂｅ社のPostScript（ＰＳ：登録商標）などの種々のページ記述言語（ＰＤＬ；Page-Description Language ）によるコマンドセットがある。そのため、プリンタ３にて採用されているＰＤＬに対応できるように、プリンタドライバＧＤＩ４４により、ページ毎のＥＭＦからなるスプールファイルを、そのＰＤＬによるプリンタ制御コードに変換しているのである。
【００７８】
ポートモニタ４５は、プリンタ制御コードをサーバＰＣ２へ送信するのに先立って、まずサーバＰＣ２へ接続要求を行う。本実施形態の印刷システムにおいては、図示はしないものの当該印刷システムを構成する各種リソースに対するアクセス権限がユーザ毎に設定されて当該印刷システムに予め登録されおり、その登録されている登録ユーザだけが、サーバＰＣ２を介してプリンタ３を利用できるようにされている。
【００７９】
そのため、クライアントＰＣ１からプリンタ３へ印刷用データを送ろうとしているユーザが、実際に印刷要求を行うと、上記のような流れでプリンタ制御コードが生成されてサーバＰＣ２へ送信されようとするが、このときに、ポートモニタ４５がその要求元に関する情報（ユーザ名など）を送信して、接続を要求するのである。
【００８０】
これを受けたサーバＰＣ２は、送信されてきたユーザ名に基づいて認証を行い、登録ユーザならば接続を許可する。これにより、クライアントＰＣ１からの印刷用データ（プリンタ制御コード）がサーバＰＣ２にて受信される。そして、この印刷用データはスプーラシステム６５によって一旦スプール領域６８に格納され、その格納された印刷用データを、プリントプロセッサ６６がプリンタ３の動作状況をみながらプリンタ３へ出力する。
【００８１】
ところで、本実施形態の印刷システムでは、クライアントＰＣ１におけるアクセス権限（本発明の動作権限に相当）として、ＯＳ（ここではＷｉｎｄｏｗｓＮＴ）の管理範囲内においてアクセス可能な範囲が制限されないシステム権限と、アクセス可能な範囲がユーザ毎に制限されるユーザ権限とを有している。
【００８２】
そして、サーバＰＣ２への印刷データがユーザ権限にて生成された場合は、ポートモニタ４５による接続要求にて送信されるユーザ名が、そのときのユーザ権限に対応したもの、即ちクライアントＰＣ１を操作して印刷要求を行ったユーザのユーザ名となる。そのため、そのユーザ名が印刷システムに登録された登録ユーザである限り、サーバＰＣ２での認証が通って印刷用データをサーバＰＣ２側へ送信できることとなる。
【００８３】
逆に、サーバＰＣ２への印刷用データがシステム権限にて生成された場合は、ポートモニタによる接続要求にて送信されるユーザ名が「Ｓｙｓｔｅｍ」となる。この「Ｓｙｓｔｅｍ」という名は登録ユーザとして登録されていないものであるため、このような場合はサーバＰＣ２における認証にて拒否され、サーバＰＣ２へ接続できない。
【００８４】
このように、サーバＰＣ２への印刷用データがシステム権限にて生成される例としては、図７で既に説明した通り、スプールファイルを加工する場合が挙げられる。即ち、スプールファイルに加工情報がなく、スプールファイルを加工せずにそのままプリンタドライバＧＤＩ４４を通してサーバＰＣ２側へ印刷用データを送信する場合は、ユーザ権限にてその送信が行われるため、認証が通ることとなる。
【００８５】
しかし、スプールファイルに加工情報が含まれていてプリントプロセッサ５６が別プロセス（スプールファイル加工プログラム）を起動すると、既述の通りシステム権限にて起動されることとなるため、その起動元、延いては加工後の新たな印刷ジョブのユーザは「Ｓｙｓｔｅｍ」となり、新たな印刷ジョブの印刷を行うことができなくなる。
【００８６】
そこで本実施形態では、サーバＰＣ２への接続要求・認証要求をユーザ権限で（ユーザ名で）行えるよう、システム権限でプロセス（スプールファイル加工プログラム）が動作している中で、必要に応じてそのシステム権限をユーザ権限で偽装するようにしている。具体的には、スプールファイル加工プログラムを起動する前、即ちシステム権限になる前に、前もってユーザ権限に関する情報（ユーザ識別情報）取得する。そして、スプールファイル加工プログラムの起動後は、その取得した情報に基づいて必要に応じてユーザ権限での偽装を行う。その詳細を、図３及び図４に基づいて説明する。
【００８７】
図３は、本実施形態の印刷ジョブ受信処理を示すフローチャートであり、スプーラシステム５５によりスプール領域５８に一旦スプールされたスプールファイルをプリントプロセッサ５６がスプールファイル加工処理部４３へ渡すときの、プリントプロセッサ５６によってなされる。
【００８８】
スプールファイルがスプール領域５８へ一旦スプールされた後、プリントプロセッサ５６は、まず、ユーザ偽装に必要なユーザ識別情報を取得する（Ｓ１１０）。このプリントプロセッサ５６による処理の際は、既述の通りシステム権限ではあるもののユーザ偽装された状態となっているため、その偽装されているユーザ権限に関する情報をユーザ識別情報として取得することとなる。
【００８９】
その後、スプールファイルをスプールファイル加工処理部４３に渡す。つまり、スプールファイル加工プログラムをシステム権限にて起動するのである（Ｓ１２０）。このとき、Ｓ１１０で取得したユーザ識別情報をコマンドライン経由でスプールファイル加工プログラムに渡す。これにより、スプールファイル加工プログラムの実行中、システム権限をユーザ権限で偽装する場合は、そのユーザ識別情報に応じたユーザ権限にて偽装することができるようになる。
【００９０】
このようにして別プロセスを立ち上げた後は、その別プロセスから元の印刷ジョブをキャンセルすべき旨の指示を待ち（Ｓ１３０）、指示があったならばその指示に従って元の印刷ジョブをキャンセルする（Ｓ１４０）。
【００９１】
次に、上記印刷ジョブ受信処理におけるＳ１２０にて起動される別プロセス（スプールファイル加工プログラム）の処理内容について、図４に基づいて説明する。図４は、本実施形態のスプールファイル加工処理を示すフローチャートであり、スプールファイル加工処理部４３としての機能を実現するためのスプールファイル加工プログラムをサーバＰＣ２が実行することにより処理されるものである。
【００９２】
この処理が開始されると、まず最初にユーザ権限での偽装が行われる（Ｓ２１０）。これは、次に行われるスプールファイルのＥＭＦ分割処理（Ｓ２２０）がユーザ権限で行われるようにするためである。Ｓ１２０では、スプールファイルが各ページのＥＭＦに分割されてテンポラリファイルとして展開される。その後、権限偽装が解除されて再びシステム権限に戻り（Ｓ２３０）、元の印刷ジョブをキャンセルすべき旨の指示が出される（Ｓ２４０）。この指示により、図３で説明した印刷ジョブ受信処理におけるＳ１３０の判定処理にて肯定判定されることとなる。
【００９３】
このようにしてページ毎のＥＭＦをテンポラリファイルとして展開した後は、スプールファイルに含まれていた加工情報の中にコレートコピーやリバースオーダ等の第一種加工をすべき旨の情報があるか否かが判断され（Ｓ２５０）、なければＳ３１０に移行するが、あった場合は、その第一種加工情報に基づく加工が行われ、新たなスプールファイルが生成される（Ｓ２６０）。ここで生成された新たなスプールファイルは、再びスプール領域５８へ格納される。
【００９４】
尚、Ｓ２６０における新たなスプールファイルの生成処理は、その生成したスプールファイルが再びスプーラシステム５５によってスプール領域５８に格納されることから、システム権限にて行われる必要がある。そのため、本実施形態では、このＳ２６０の処理前のＳ２３０にて、ユーザ偽装が解除されるようにしている。
【００９５】
そして、新しいスプールファイルが生成された後は、そのスプールファイルに基づいて新たな印刷ジョブが作成（システムに登録）されるのだが（Ｓ２８０）、この新たな印刷ジョブの作成の際には、後で再びその印刷ジョブに対して図３の処理が行われる（ユーザ識別情報の取得が行われる）ことを考慮してユーザ権限にされている必要がある。そのため、Ｓ２８０の処理に先立ってユーザ偽装が行われるようにしている（Ｓ２７０）。
【００９６】
そして、Ｓ２８０における新たな印刷ジョブの生成後は、再び偽装が解除されてシステム権限に戻り（Ｓ２９０）、テンポラリファイルとして展開している元のジョブのＥＭＦが削除されて（Ｓ３００）、一旦このスプールファイル加工処理が終了される。そして、新たな印刷ジョブに対して再び図３の処理が行われ、未実施の加工が残っている場合は再び図４のスプールファイル加工処理が行われることとなる。
【００９７】
一方、図４のスプールファイル加工処理において、第一種加工が全て終了して第二種加工のみが残っている場合、或いははじめから第二種加工に関する加工情報のみがスプールファイルに含まれていた場合は、当該スプールファイル加工処理におけるＳ２５０の処理で否定判定されてＳ３１０に移行し、１ページ目から順にページ毎の加工が行われる。
【００９８】
即ち、まず加工対象ページが「１」とされ（Ｓ３１０）、そのページに対する加工が施されて新たな１ページ分のＥＭＦが作成される（Ｓ３２０）。このＳ３２０の処理は、より具体的には、まず加工情報としてマルチページ印刷を行うべき旨の情報が含まれているか否かが判断される（Ｓ４１０）。この加工情報が含まれていなければＳ４３０に移行するが、含まれていた場合は、その情報に基づく加工を実際に行う。具体的には、その加工情報に応じて各ページを位置をずらしながらＥＭＦに描画していくこととなる。
【００９９】
続いて、ウォーターマークを描画すべき旨の加工情報の有無が判断され（Ｓ４４０）、その加工情報がなければＳ３３０に移行するが、あった場合は、まずその加工情報に基づいて要求されているウォーターマークを取得する（Ｓ４４０）。
【０１００】
ここで、例えばあるユーザがビットマップ形式のウォーターマークを作成してそのユーザがアクセス可能なフォルダに保存した場合、他のユーザは、アクセス権限によってはそのウォーターマークを使用できないことも予想される。そのため、本実施形態ではウォーターマークデータの取得はシステム権限にて行われるようにしている。図４の例の場合、Ｓ２３０で偽装が解除されたことによりシステム権限に戻っているため、Ｓ４４０のウォーターマークデータ取得処理はシステム権限で行われることとなる。そのため、システムに登録されているウォーターマークが確実に取得されるのである。ウォーターマークデータの取得後は実際にそのウォーターマークの描画が行われる（Ｓ４５０）。
【０１０１】
このようにして１ページ分の加工処理が行われた後は、再びユーザ偽装を行った上で（Ｓ３３０）、プリンタ描画処理が行われる（Ｓ３４０）。このプリンタ描画処理は、加工後のスプールファイルをスプーラシステムに渡す処理であり、これをユーザ偽装して行うのである。この加工後のスプールファイルは、プリンタドライバＧＤＩ４４によりコード化され、サーバＰＣ２に送られる。この際、プリンタ描画処理（Ｓ３４０）はユーザ偽装されているため、このサーバＰＣ２に送る際の認証はユーザ名にて行われる。
【０１０２】
尚、図３の処理では、説明の簡略化のため、ユーザ識別情報の取得（Ｓ１１０）後は必ずプロセスが起動される（Ｓ１２０）ように記載されているが、加工情報に基づく加工が全て行われた場合は、もはや加工する必要もその情報もないわけであるから、別プロセスの起動は行わない。
【０１０３】
このように、ユーザ偽装した状態でプリンタ描画処理（Ｓ３４０）が実行されることにより、その後のプリントプロセッサ５６の処理へユーザ権限に関する情報が引き継がれ、延いては、ユーザ権限にてサーバＰＣ２への印刷用データの送信が行われることになるのである。
【０１０４】
１ページ分のプリンタ描画処理の終了後は再びユーザ権限の偽装を解除してシステム権限に戻す（Ｓ３５０）。そして、全てのページについて加工処理（Ｓ３２０，Ｓ３４０）が行われたか否かが判断され（Ｓ３６０，Ｓ３７０）、加工すべきページがまだあれば再びＳ３２０に戻り、全ページ終了していればＳ３００の処理を経てこのスプールファイル加工処理を終了する。
【０１０５】
このスプールファイル加工処理により、当該処理の起動自体はシステム権限で行われるものの、必要に応じてユーザ権限での偽装或いはその解除が行われる。そのため、スプールファイルの加工後、その加工後の新たな印刷ジョブに基づく印刷用データ（プリンタ制御コード）への変換やポートモニタ４５を介したサーバＰＣ２への接続（認証）要求もユーザ権限にて行われるようになる。
【０１０６】
そのため、ユーザが登録ユーザとして登録されている限り、サーバＰＣ２への接続が許可され、加工後の印刷ジョブに対応した印刷用データがサーバＰＣ２を介してプリンタ３へ出力されるのである。
【０１０７】
図５にクライアントＰＣ１とサーバＰＣ２との間で行われる認証について説明する。図５は、各ＰＣ１，２にてそれぞれ行われる認証処理を示すフローチャートである。図示の如く、クライアントＰＣ１におけるポートモニタ４５からユーザ名・パスワードが送信されることにより接続要求がなされると（Ｓ５１０）、サーバＰＣ２ではそのユーザ名・パスワードが受信され（Ｓ６１０）、登録ユーザを管理している管理リストからそのユーザ名をサーチする（Ｓ６２０）。そして、そのユーザ名が登録ユーザとして登録されていたならば（Ｓ６３０；ＹＥＳ）、引き続きパスワードの照会を行う（Ｓ６４０）。そして、パスワードが一致した場合は（Ｓ６５０；ＹＥＳ）、登録された正規ユーザからのアクセスであると判断されてクライアントＰＣ１側へ接続を許可する（Ｓ６６０）。ユーザ名が登録されていないものであったり、或いはパスワードが一致しなかった場合は、いずれも認証に失敗したものとして接続を許可しない（Ｓ６７０）。
【０１０８】
クライアントＰＣ１は、サーバＰＣ２からの認証結果が来るまで待機する（Ｓ５２０）。そして、認証が通った場合は印刷用データのサーバＰＣ２への送信を行うが（Ｓ５４０）、認証に失敗した場合はエラー処理を行う（Ｓ５５０）。
【０１０９】
以上詳述した本実施形態の印刷システムによれば、クライアントＰＣ１において、スプールファイル加工プログラムがシステム権限にて起動されるものの、必要に応じて権限偽装を行うようにしており、その結果、サーバＰＣ２に対する認証がユーザ権限にてなされる。そのため、そのユーザが登録ユーザとして登録されている限り、サーバＰＣ２による認証で拒否されることなくその加工後のスプールファイルに対応した印刷を行うことが可能となる。
【０１１０】
また、図４のスプールファイル加工処理において、スプールファイルのＥＭＦ分割（Ｓ２２０）に先だって権限偽装を行うようにしているため、ＥＭＦのテンポラリファイルへの展開中或いは展開後に何らかの原因でクライアントＰＣ１の動作が異常終了したとしても、テンポラリファイルをユーザが（即ちユーザ権限で）削除することが可能となる。
【０１１１】
更に、同じく図４におけるＳ２８０の処理の際、即ち加工後の新たな印刷ジョブを生成する際にも、ユーザ権限への偽装を行うため、その新たな印刷ジョブはユーザ権限にて生成されることとなる。そのため、その後その新たな印刷ジョブに対して行われる処理に対し、そのユーザ権限に関する情報を確実に引き継ぐことができ、ユーザ偽装ができなくなるといった事態が生じるのを防ぐことができる。
【０１１２】
更にまた、単にユーザ権限への偽装を行うだけでなく、必要に応じて偽装の解除（システム権限への復帰）も行われるため、ユーザ権限への偽装後にシステム権限で行うべき処理を実行することになっても、確実にその処理を行うことが可能となる。
【０１１３】
そして、例えばウォーターマークデータの取得（図４のＳ４４０）などのような、ユーザによってはアクセスを許可されていないおそれのあるフォルダへのアクセスが必要ば場合は、前もってシステム権限に戻すようにしているため、加工に必要なデータを確実に取得して所望の加工を確実に行うことが可能となる。
【０１１４】
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。本実施形態において、中間ファイル生成部４１は本発明のスプールファイル生成手段に相当する。また、スプールファイル加工処理部４３は本発明の加工手段に相当し、ポートモニタ４５は本発明の印刷要求手段に相当し、スプーラシステム５５は本発明のスプール手段に相当する。尚、スプールファイル加工処理部４３は本発明の権限偽装手段としての機能も備える。
【０１１５】
また、図３の印刷ジョブ受信処理において、Ｓ１１０の処理は本発明の権限上宝珠徳手段が実行する処理に相当する。
更に、図４のスプールファイル加工処理において、Ｓ２２０の処理は本発明の格納手段が実行する処理に相当し、Ｓ２８０の処理は本発明の新規ジョブ生成手段が実行する処理に相当し、Ｓ２１０，Ｓ２７０及びＳ３３０の各処理はいずれも本発明の権限偽装手段が実行する処理に相当し、Ｓ２３０，Ｓ２９０及びＳ３５０の各処理はいずれも本発明の偽装解除手段が実行する処理に相当し、Ｓ４４０の処理は本発明の制限領域データ取得手段が実行する処理に相当する。
【０１１６】
尚、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、図４のスプールファイル加工処理では、ユーザ偽装して実行すべき処理のほぼ直前の段階でユーザ権限での偽装を行うようにしており、また、ユーザ偽装して所定の処理を行った後はすぐに偽装を解除するようにしているが、偽装のタイミング、或いは偽装解除のタイミングは、図４のタイミングに限定されず、ユーザ権限が必要なときには確実にユーザ権限での偽装が行われた状態となり、システム権限が必要なときは確実にシステム権限に戻った状態となる限り、適宜決めることができる。
【０１１７】
また、上記実施形態では、プリンタ３がネットワーク７に接続されずにサーバＰＣ２に接続されている場合について説明したが、プリンタ３もネットワーク７に接続された構成（但しクライアントＰＣからの印刷データはサーバＰＣ２を経由）の印刷システムに対しても本発明を適用可能である。
【０１１８】
更にまた、上記実施形態では、本発明の印刷制御装置として機能させるための各種プログラム（具体的には、スプールファイル加工処理部４３及びプリントプロセッサ５６等としての機能を実現するためのプログラム）が、いずれもＨＤＤ１４内に格納されたものとして説明したが、これら各種プログラムを、例えばフロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録しておくこともできる。
【０１１９】
この場合、記録媒体に記録したプログラムを必要に応じてコンピュータシステムにロードして起動することにより、そのコンピュータシステムにおいて本発明のスプールファイル加工装置を実現することができる。
【０１２０】
尚、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体として上記各プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いても良い。また、プログラムを通信回線を介してコンピュータにインストールすることもできる。この通信回線により送信されるプログラムも、請求項１１〜１３いずれかに記載のプログラムに該当するものである。
【図面の簡単な説明】
【０１２１】
【図１】本実施形態の印刷システムのハード構成を示す概略ブロック図である。
【図２】本実施形態の印刷システムのソフトモジュールを示す概略ブロック図である。
【図３】本実施形態の印刷ジョブ受信処理を示すフローチャートである。
【図４】本実施形態のスプールファイル加工処理を示すフローチャートである。
【図５】本実施形態の認証処理を示すフローチャートである。
【図６】印刷システムの概略構成を示す説明図である。
【図７】従来の印刷システムにおける印刷処理の流れを示す説明図である。
【符号の説明】
【０１２２】
１，１０１・・・クライアントＰＣ、２，１０２・・・サーバＰＣ、３，１０３・・・プリンタ、７，１０５・・・ネットワーク、１１，２１，３１・・・ＣＰＵ、１２，２２，３２・・・ＲＯＭ、１３，２３，３３・・・ＲＡＭ、１４，２４・・・ＨＤＤ、１５，２５・・・Ｉ／Ｏ、１６，２６・・・ＮＩＣ、１７，２７，３６・・・内部バス、３４・・・エンジン、３５・・・Ｉ／Ｆ、４１・・・中間ファイル生成部、４２，６１・・・プリントスプーラ、４３・・・スプールファイル加工処理部、４４，１１５，１３３・・・プリンタドライバＧＤＩ、４５，１１６・・・ポートモニタ、５１，１１１・・・アプリケーション、５２・・・プリンタドライバ、５３・・・ＧＤＩ、５５，６５，１１３，１３１・・・スプーラシステム、５６，６６，１１４，１３２・・・プリントプロセッサ、５８，６８・・・スプール領域
【図１】
2006053658.tif 000003
【図２】
2006053658.tif 000004
【図３】
2006053658.tif 000005
【図４】
2006053658.tif 000006
【図５】
2006053658.tif 000007
【図６】
2006053658.tif 000008
【図７】
2006053658.tif 000009