(57)【要約】    【課題】本発明は、ユーザの利便性の高い印刷実行の可否判断を行うことができる印刷制御装置を提供する。    【解決手段】ホストコンピュータ１００は、プリンタドライバ２０３と、グラフィックスエンジン２０２と、外部メモリ１１１とを備え、プリンタドライバ２０３は、グラフィックスエンジン２０２から印刷開始要求を受け付けると、ＯＳが一般公開しているＡＰＩを利用して印刷実行プロセスの実体元ファイルであるアプリケーションに関する情報を取得し、取得したアプリケーション情報が、外部メモリ１１１に記憶された印刷可否判断情報５００のアプリケーション情報５０１のいずれかと一致しないときは、印刷を禁止する。【選択図】      図５
2006146364.tif 000002
【特許請求の範囲】
【請求項１】
印刷処理の実行可否を判断する印刷制御装置において、
前記印刷処理の実行可否を判断するための判断情報を記憶する記憶手段と、
アプリケーションから前記印刷処理の実行要求を受け付ける受付手段と、
前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出手段と、
前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断手段とを備えることを特徴とする印刷制御装置。
【請求項２】
前記判断情報は、前記印刷処理が実行される際にアプリケーションから参照されるドキュメントの論理的格納位置を含む名称に関する情報であることを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記判断情報は、アプリケーションの論理的格納位置を含む名称に関する情報及び/又は前記印刷処理が実行される際にアプリケーションから参照されるドキュメントの論理的格納位置を含む名称に関する文字列情報であることを特徴とする請求項１記載の印刷制御装置。
【請求項４】
前記判断情報として、前記アプリケーション及び前記ドキュメントの実体ファイルデータ全体から識別情報を生成する生成手段を備え、前記判断手段は、前記判断情報として、前記アプリケーション及び前記ドキュメントの実体ファイルデータ全体から生成された識別情報を参照することを特徴とする請求項３記載の印刷制御装置。
【請求項５】
前記判断情報は、ネットワークを介して接続された情報処理装置にも記憶され、
前記判断手段は、前記情報処理装置に記憶された判断情報の更新有無を確認する確認手段と、
前記判断情報が更新されているときは、当該更新された判断情報を、前記記憶手段に記憶されている判断情報に上書きする上書手段とを備えることを特徴とする請求項１乃至４のいずれか１項に記載の印刷制御装置。
【請求項６】
前記確認手段は、前記判断情報の更新有無を前記印刷処理が実行されるごとに確認することを特徴とする請求項５記載の印刷制御装置。
【請求項７】
前記確認手段は、前記判断情報の更新有無を前記印刷制御装置の起動後の最初の印刷時に確認することを特徴とする請求項５又は６記載の印刷制御装置。
【請求項８】
前記確認手段は、前記判断情報の更新有無を、ユーザがログインした後の最初の印刷時に確認することを特徴とする請求項５乃至７のいずれか１項に記載の印刷制御装置。
【請求項９】
前記確認手段は、前記判断情報の更新有無の確認を、前記印刷処理の実行可否を判断した際に当該印刷処理の実行を禁止する条件に合致した場合にのみに実行することを特徴とする請求項５乃至８のいずれか１項に記載の印刷制御装置。
【請求項１０】
前記判断手段による判断結果を表示する表示手段を更に備えることを特徴とする請求項１乃至９のいずれか１項に記載の印刷制御装置。
【請求項１１】
前記判断手段による判断結果を、前記印刷処理を実行する印刷装置の表示器に表示させるジョブを生成するジョブ生成手段と、
前記生成されたジョブを前記印刷装置に出力する出力手段とを更に備えることを特徴とする請求項１乃至１０のいずれか１項に記載の印刷制御装置。
【請求項１２】
前記判断手段による判断結果及び／又は前記判断手段が参照した判断情報を所定の記憶場所に順次記憶させる記憶制御手段を更に備えることを特徴とする請求項１乃至１１のいずれか１項に記載の印刷制御装置。
【請求項１３】
前記所定の記憶場所は、前記ネットワークを介して接続された情報処理装置の記憶領域であることを特徴とする請求項１２記載の印刷制御装置。
【請求項１４】
前記所定の記憶場所は、前記印刷装置の記憶領域であることを特徴とする請求項１２記載の印刷制御装置。
【請求項１５】
前記記憶制御手段は、前記判断手段が所定の回数を超えて印刷実行を不許可としたときに、前記判断手段による判断結果及び／又は前記判断手段が参照した判断情報を前記所定の記憶場所に記憶させることを特徴とする請求項１２乃至１４のいずれか１項に記載の印刷制御装置。
【請求項１６】
前記判断手段による判断結果及び／又は前記判断手段が参照した判断情報を所定のメッセージ伝達方法により所定の宛先に送信する送信手段を備えることを特徴とする請求項１乃至１５のいずれか１項に記載の印刷制御装置。
【請求項１７】
前記判断手段は、前記受け付けた印刷処理の実行要求から印刷設定の情報を抽出する印刷設定情報抽出手段を備え、前記抽出された印刷設定の情報に基づいて、前記記憶された判断情報を参照して、前記ドキュメントの印刷処理の実行可否を判断することを特徴とする請求項１乃至１６のいずれか１項に記載の印刷制御装置。
【請求項１８】
前記判断手段は、前記印刷処理の実行を不許可とした際に、前記印刷設定を変更することを特徴とする請求項１７記載の印刷制御装置。
【請求項１９】
前記判断手段は、前記受け付けた印刷処理の実行要求から印刷体裁情報を抽出する印刷設定情報抽出手段を備え、前記抽出された印刷体裁情報に基づいて、前記記憶された判断情報を参照して、前記ドキュメントの印刷処理の実行可否を判断することを特徴とする請求項１乃至１８のいずれか１項に記載の印刷制御装置。
【請求項２０】
前記判断手段は、前記抽出手段により前記受付手段で前記印刷処理の実行要求を受け付けたアプリケーションに関する情報が抽出できなかったときは、抽出できた他の情報に基づいて前記印刷処理の実行可否を判断することを特徴とする請求項１乃至１９のいずれか１項に記載の印刷制御装置。
【請求項２１】
印刷処理の実行可否を判断する印刷制御装置の印刷制御方法において、
前記印刷処理の実行可否を判断するための判断情報を記憶する記憶ステップと、
アプリケーションから前記印刷処理の実行要求を受け付ける受付ステップと、
前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出ステップと、
前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断ステップとを備えることを特徴とする印刷制御方法。
【請求項２２】
印刷処理を実行する印刷装置と、前記印刷処理の実行可否を判断する印刷制御装置を備える印刷制御システムにおいて、
前記印刷制御装置は、
前記印刷処理の実行可否を判断するための判断情報を記憶する記憶手段と、
アプリケーションから前記印刷処理の実行要求を受け付ける受付手段と、
前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出手段と、
前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断手段とを備えることを特徴とする印刷制御システム。
【請求項２３】
印刷処理の実行可否を判断する印刷制御装置で実行される印刷制御プログラムにおいて、
前記印刷処理の実行可否を判断するための判断情報を記憶する記憶モジュールと、
アプリケーションから前記印刷処理の実行要求を受け付ける受付モジュールと、
前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出モジュールと、
前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断モジュールとを備えることを特徴とする印刷制御プログラム。
【請求項２４】
請求項２３記載のプログラムを格納することを特徴とするコンピュータに読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置及び印刷制御方法、印刷制御システム、プログラム、並びに記憶媒体に関し、特に、印刷実行の可否判断制御を実行する印刷制御装置及び印刷制御方法、印刷制御システム、プログラム、並びに記憶媒体に関する。
【背景技術】
【０００２】
従来の印刷制御プログラム又は印刷装置は、基本的にユーザからの印刷指示があれば、出力可否に関する条件を何ら参照することなく、印刷実行してしまうので、エンドユーザの希望に依存した特定の印刷実行を抑制したいなどといったニーズに対応できない問題があった。
【０００３】
そこで、このようなニーズに基づいて印刷制限を設けるアプローチとして、パーソナルコンピュータ上で印刷処理に使用するアプリケーションに関する固有情報や印刷するドキュメントに関する固有情報を参照することにより、印刷可否の判断を行う印刷装置及び制御方法が提案されている（例えば、特許文献１及び特許文献２参照）。
【０００４】
特許文献１には、印刷制御プログラム（プリンタドライバソフトウェア）が生成する印刷データ内に記憶させるシリアル番号、ユーザ名称、及びアプリケーション名等、印刷する際に使用されたアプリケーションの固有情報を利用し、印刷装置上で印刷可否に関する制御を行うシステムが開示されている。
【０００５】
また、特許文献２には、印刷実行に際して、特定のアプリケーション及び特定のドキュメントに係わる各種情報を参照し、所定の条件に合致した（又は合致しない）印刷実行を禁止する制御を行うシステムが開示されている。このシステムは、様々なアプリケーション固有情報及びドキュメント固有情報を利用してユーザ認証処理を行うと共に、印刷実行の可否判断制御を行うことができる。
【特許文献１】特開２０００−３３２９８２号公報
【特許文献２】特開２００２−２３６５７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１及び特許文献２に記載されている印刷制御システムは、次の課題がある。
【０００７】
印刷実行の可否判断に利用するアプリケーション名称が単にアプリケーション固有の名称に過ぎず、その格納位置が何ら考慮されていない。そのため、例えば同一のアプリケーションソフトウェアの異なるバージョンが存在した場合、夫々に異なる可否条件を付与することができない。また、格納位置が異なる同一バージョンのアプリケーションソフトウェアに、異なる可否条件を夫々付与することもできない。
【０００８】
印刷実行の可否判断に利用するアプリケーション情報又はドキュメント情報は、名称やシリアル番号等の第三者からその意味を容易に類推又は予想できるものであるので、印刷するアプリケーション又はドキュメントの改ざんや成りすまし等の危険性に対して無防備である。
【０００９】
印刷実行の可否判断がなされた後、当該判断に関する情報が印刷装置に装備されている情報表示パネル等に表示されないので、印刷装置においてはエンドユーザが印刷可否判断に係わる情報を確認することができない。
【００１０】
印刷実行の可否判断がなされた後、当該判断に係わった各種情報や可否判断情報が所定の方法で所定の宛先へ通知されないので、ユーザの利便性に欠ける。
【００１１】
印刷実行の可否判断に利用するアプリケーション情報又はドキュメント情報の夫々又は夫々の組み合わせに指定可能な印刷設定情報を関連付けておくことができない。即ち、特定のドキュメントは、特定の印刷設定（例えば、部数は１部で両面印刷）でのみ印刷を許可する等といったきめ細かい判断条件を設けることができない。
【００１２】
印刷実行の可否判断に利用するアプリケーション又はドキュメント情報へ夫々又は夫々の組み合わせへ指定可能な印刷体裁情報を関連付けておくことができない。即ち、特定のドキュメントには、特定の印刷体裁（例えば、１頁目はＡ４、２頁目はＡ３）でのみ印刷を許可する等といったきめ細かい判断条件を設けることができない。
【００１３】
印刷実行の可否判断を行う際、動作環境に特有かつ固定的な制限で、アプリケーション名称を入手できない場合に対処していない。
【００１４】
本発明の目的は、上記課題に鑑みてなされたものであり、ユーザにとって利便性の高い印刷実行の可否判断を行うことができる印刷制御装置及び印刷制御方法、印刷制御システム、プログラム、並びに記憶媒体を提供することにある。
【課題を解決するための手段】
【００１５】
上述の目的を達成するために、請求項１記載の印刷制御装置は、印刷処理の実行可否を判断する印刷制御装置において、前記印刷処理の実行可否を判断するための判断情報を記憶する記憶手段と、アプリケーションから前記印刷処理の実行要求を受け付ける受付手段と、前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出手段と、前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断手段とを備えることを特徴とする。
【００１６】
上述の目的を達成するために、請求項２１記載の印刷制御方法は、印刷処理の実行可否を判断する印刷制御装置の印刷制御方法において、前記印刷処理の実行可否を判断するための判断情報を記憶する記憶ステップと、アプリケーションから前記印刷処理の実行要求を受け付ける受付ステップと、前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出ステップと、前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断ステップとを備えることを特徴とする。
【００１７】
上述の目的を達成するために、請求項２２記載の印刷制御システムは、印刷処理を実行する印刷装置と、前記印刷処理の実行可否を判断する印刷制御装置を備える印刷制御システムにおいて、前記印刷制御装置は、前記印刷処理の実行可否を判断するための判断情報を記憶する記憶手段と、アプリケーションから前記印刷処理の実行要求を受け付ける受付手段と、前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出手段と、前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断手段とを備えることを特徴とする。
【００１８】
上述の目的を達成するために、請求項２３記載の印刷制御プログラムは、印刷処理の実行可否を判断する印刷制御装置で実行される印刷制御プログラムにおいて、前記印刷処理の実行可否を判断するための判断情報を記憶する記憶モジュールと、アプリケーションから前記印刷処理の実行要求を受け付ける受付モジュールと、前記受け付けた印刷処理の実行要求から所定の情報を抽出する抽出モジュールと、前記抽出された情報に基づいて、前記記憶された判断情報を参照して、前記印刷処理の実行可否を判断する判断モジュールとを備えることを特徴とする。
【００１９】
上述の目的を達成するために、請求項２４記載のコンピュータに読取可能な記憶媒体は、請求項２３記載のプログラムを格納することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、印刷可否判断を行うに当たって、ユーザにとって利便性が高く、成りすましや改ざんといった不正行為を好適に防ぐ印刷実行の可否判断を行うことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００２２】
図１は、本発明の第１の実施の形態に係る印刷制御装置を有する印刷制御システムの全体構成を示すブロック図である。
【００２３】
図１において、印刷制御システムは、ホストコンピュータ１００（印刷制御装置）と、プリンタ１５０（印刷装置）とを備え、これらはデータ転送経路１２１を介して互いに接続されている。
【００２４】
ホストコンピュータ１００は、ホストコンピュータ１００全体を制御するＣＰＵ１０１と、ＣＰＵ１０１の主メモリ、ワークエリア等として機能するＲＡＭ１０２と、ＣＰＵ１０１が実行する制御プログラム等を記憶するＲＯＭ１０３と、キーボード（ＫＢ）１０９や不図示のマウス等のポインティングデバイスからの入力を制御する入力コントローラ（入力Ｃ）１０５と、表示器としてのＣＲＴディスプレイ（ＣＲＴ）１１０と、ＣＲＴ１１０等の表示器への表示を制御するビデオコントローラ（ＶＣ）１０６と、ＣＰＵ１０１が実行する制御プログラム等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１１と、外部メモリ１１１へのアクセスを制御するメモリコントローラ（ＭＣ）１０７と、データ転送経路１２１を介して、外部機器と接続・通信する通信インターフェースコントローラ（通信Ｉ／ＦＣ）１０８とを備える。
【００２５】
ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、入力Ｃ１０５、ＶＣ１０６、ＭＣ１０７、及び通信Ｉ／ＦＣ１０８は、システムバス１０４を介して互いに接続されている。
【００２６】
ＲＯＭ１０３又は外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input/Output System）、オペレーティングシステムプログラム（以下、単に「ＯＳ」という。）、及び後述する各処理を実行するために必要な各種プログラム等が記憶されている。本実施の形態で使用するＯＳは、例えばマイクロソフト社製のウィンドウズ（登録商標）ＸＰを想定するが、これに限られるものではない。
【００２７】
表示器はＣＲＴ１１０に限られるものではなく、液晶ディスプレイであってもよい。
【００２８】
外部メモリ１１１は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、及び各種データ等を記憶するＨＤ、ＦＤ、又はＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等から構成される。
【００２９】
通信Ｉ／ＦＣ１０８は、例えば、ＴＣＰ／ＩＰを用いたインターネット通信やプリンタ１５０とのデータ送受信等を制御する。
【００３０】
ＣＰＵ１０１は、例えば、ＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ１１０に表示情報を表示する。また、ＣＰＵ１０１は、ＣＲＴ１１０にマウスカーソル等を表示することによりユーザによる指示を可能にする。
【００３１】
プリンタ１５０は、プリンタ１５０全体を制御するＣＰＵ１１２と、ＣＰＵ１１２の主メモリ、ワークエリア等として機能すると共に、出力情報展開領域、環境データ格納領域などに用いられるＲＡＭ１１９と、出力情報を生成する際に使用するフォントデータ等を記憶するフォントＲＯＭ１１３ａと、ＣＰＵ１１２が実行する制御プログラム等を記憶するプログラムＲＯＭ１１３ｂと、ハードディスク等の外部メモリ１１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されるデータＲＯＭ１１３ｃと、外部機器と接続・通信する入力部１１８と、印刷を実行する印刷部１１７と、印刷部１１７を制御する印刷部インターフェース（印刷部Ｉ／Ｆ）１１６と、操作のためのスイッチ及びＬＥＤ表示器等が配されている操作パネル等の操作部１２２と、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶するＨＤ、ＩＣカード等の外部メモリ１１４と、外部メモリ１１４へのアクセスを制御するメモリコントローラ（ＭＣ）１２０とを備える。
【００３２】
ＣＰＵ１１２、ＲＡＭ１１９、ＲＯＭ１１３、入力部１１８、印刷部Ｉ／Ｆ１１６、操作部１２２と、ＭＣ１２０は、システムバス１１５を介して互いに接続されている。
【００３３】
ＣＰＵ１１２は、プログラムＲＯＭ１１３ｂ又は外部メモリ１１４に記憶された制御プログラム等に基づいて、印刷部Ｉ／Ｆ１１６を介して印刷部１１７に出力情報としての画像信号を出力する。入力部１１８は、データ転送経路１２１を介したホストコンピュータ１００との通信処理を制御する。ＲＡＭ１１９は、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００３４】
また、プリンタ１５０の外部メモリは１個に限るものではなく、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。更に、不図示のＮＶＲＡＭを有し、操作部１２２からのプリンタモード設定情報を記憶するように構成されてもよい。
【００３５】
本実施の形態において、プリンタ１５０がサポートするページ記述言語（以下、「ＰＤＬ」という。）は、LBP Image Processing System（以下、「ＬＩＰＳ」という。）等の比較的に高度なＰＤＬであると想定しているが、これに限られるものではない。
【００３６】
本発明の実施の形態に係る印刷制御プログラムとしてのプリンタドライバ２０３（図２）は外部メモリ１１１に記録されており、必要に応じてＲＡＭ１０２にロードされることによりＣＰＵ１０１によって実行される。また、プリンタドライバが用いる定義ファイル及び各種情報テーブルは外部メモリ１１１に格納されている。
【００３７】
なお、上記印刷制御システムの構成は一例であり、用途や目的に応じて様々な構成例があることは云うまでもない。例えば、本発明は、単体の機器に適用されてもよく、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークを介して接続された複数の機器からなるシステムに適用されてもよい。
【００３８】
図２は、図１におけるホストコンピュータ１００のソフトウェア構成を概略的に示すブロック図である。
【００３９】
図２において、ホストコンピュータ１００は、アプリケーションプログラム（以下、「アプリケーション」という。）２０１と、グラフィックスエンジン２０２と、プリンタドライバ２０３と、プリントサブシステム２０４とを備え、これらは、夫々外部メモリ１１１に保存されたファイルとして存在し、ＯＳやそのモジュールを利用するモジュールの制御に基づき、ＣＰＵ１０１によってＲＡＭ１０２にロードされて実行されるプログラムモジュールである。
【００４０】
アプリケーション２０１及びプリンタドライバ２０３は、ＦＤ、ＣＤ−ＲＯＭ等の記録媒体、又は後述するネットワーク３０１（図３）を介してＨＤに追加される。アプリケーション２０１は、グラフィックスエンジン２０２を利用してプリンタ１５０に印刷ジョブデータを出力することにより、プリンタ１５０に印刷を行わせる。
【００４１】
グラフィックスエンジン２０２は、印刷装置毎に用意されたプリンタドライバ２０３を起動し、プリンタドライバ２０３は、アプリケーション２０１の印刷データをＰＤＬによるプリンタ制御コマンドに変換する。プリンタドライバ２０３により変換されたプリンタ制御コマンドは、プリントサブシステム２０４を経て通信インタフェース１２１経由でプリンタ１５０に出力される。
【００４２】
プリントサブシステム２０４は、ＯＳによって起動され、印刷ジョブのスケジューリング、プリンタ１５０との接続制御、及びプリンタ１５０のステータスの管理を行う。
【００４３】
プリンタドライバ２０３は、アプリケーション２０１から出力された印字や描画命令に対しプリンタ制御コマンドを生成しプリント出力に反映されるようプリンタ１５０に指示する機能だけでなく、プリンタドライバ２０３やプリンタ１５０が有する機能を制御するための設定を行う機能（以下、「ユーザインタフェース（ＵＩ）」という。）、その設定を記憶する機能、プリンタドライバ２０３やプリンタ１５０が有する機能の情報をアプリケーション２０１やＯＳに提供する機能、ユーザインタフェースで設定された機能をプリンタ１５０が有している場合にプリンタ制御命令を生成する機能、及び、ユーザインタフェースで設定された機能がプリンタドライバ２０３独自で行う機能の場合にその機能を実現する機能等を有する。
【００４４】
図３は、図１におけるホストコンピュータ１００及びプリンタ１５０を適用可能な印刷制御システムの一例を示すシステム構成図である。
【００４５】
図３において、印刷システムは、複数のホストコンピュータ１００、複数のプリンタ１５０ａ及び１５０ｂ、及びプリントサーバコンピュータ３００を有し、これらはネットワーク３０１を介して互いに接続されている。
【００４６】
ホストコンピュータ１００がネットワーク３０１に接続される構成の場合、ホストコンピュータ１００の通信Ｉ／Ｆコントローラ１０８はネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００４７】
プリンタ１５０ａは、ネットワーク３０１に直接接続されている。また、プリンタ１５０ｂは、セントロニクスやＵＳＢ等のローカルインタフェース３０２を介して接続されたプリントサーバコンピュータ３００を介してネットワーク３０１に接続されている。なお、プリンタ１５０ａの入力部１１８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００４８】
プリントサーバコンピュータ３００を介してネットワーク３０１に接続されるプリンタ１５０ｂにホストコンピュータ１００のいずれかから印刷ジョブを送信する場合、まずホストコンピュータ１００は、プリントサブシステム２０４を介して、プリントサーバコンピュータ３００へ印刷ジョブを送信する。
【００４９】
プリントサーバコンピュータ３００は、該ホストコンピュータ１００から送信されてきた印刷ジョブを、プリントサーバコンピュータ３００の不図示のプリントサブシステムを介して、プリンタ１５０ｂへ送信する。これにより、ホストコンピュータ１００は、プリントサーバコンピュータ３００を介して印刷ジョブをプリンタ１５０ｂへ送信することができる。
【００５０】
また、ネットワーク３０１に直接接続されるプリンタ１５０ａにホストコンピュータ１００のいずれかから印刷ジョブを送信する場合、ホストコンピュータ１００は、プリントサブシステム２０４を介してプリンタ１５０ａに直接印刷ジョブを送信する。
【００５１】
図４は、ホストコンピュータ１００によって実行される印刷制御処理の基本的な流れを示す図である。
【００５２】
図４において、アプリケーション２０１は、プリンタドライバ２０３と直接やり取りを行うのではなく、ＯＳが有するグラフィックスエンジン２０２を介してプリンタドライバ２０３とやり取りを行う。グラフィックスエンジン２０２はアプリケーション２０１から指示を受け、プリンタドライバ２０３に対して指示を行う。
【００５３】
まず、アプリケーション２０１は、片面／両面設定や部数設定等の印刷設定をＲＡＭ１０２に確保されたメモリを介してグラフィックスエンジン２０２に通知し（ステップＳ４０１）、グラフィックスエンジン２０２は、通知された印刷設定と、該印刷設定を基にプリンタドライバ２０３が印刷処理を行う上で必要なプリンタドライバ情報を格納する新たにＲＡＭ１０２上に確保されたメモリ領域の初期化要求をプリンタドライバ２０３に送信する（ステップＳ４０２）。これにより、プリンタドライバ２０３は、そのプリンタドライバ２０３が印刷処理を行うために必要なプリンタドライバ情報を保持するメモリ領域を確保し、印刷設定に従ってそのメモリ領域を初期化する。
【００５４】
次に、プリンタドライバ２０３は、ステップＳ４０２で受信した印刷設定に応じたプリンタドライバ２０３の印刷能力をグラフィックスエンジン２０２に通知する（ステップＳ４０３）。グラフィックスエンジン２０２は、最終的にプリンタ１５０に送信される印刷ジョブと該印刷ジョブに反映する印刷設定とを関連付けるために必要なハンドル値をアプリケーション２０１に送信する（ステップＳ４０４）。
【００５５】
次に、アプリケーション２０１は、印刷の開始要求をグラフィックスエンジン２０２に行い（ステップＳ４０５）、グラフィックスエンジン２０２は、プリンタドライバ２０３に印刷開始要求を行う（ステップＳ４０６）。これにより、プリンタドライバ２０３は、ＰＤＬの生成処理を開始し、プリンタ１５０が印刷開始に必要なプリンタ命令を生成する。なお、プリンタ命令を生成する処理は、最初のページ（１ページ目）の印刷処理が開始された時点（アプリケーションからの最初のページの描画指示を受信した時点）で行ってもよい。
【００５６】
次に、アプリケーション２０１は、グラフィックスエンジン２０２に対して文字やイメージ等の描画オブジェクトの描画指示を行い（ステップＳ４０７）、グラフィックスエンジン２０２は、プリンタドライバ２０３に描画オブジェクトの描画指示を行う（ステップＳ４０８）。これにより、プリンタドライバ２０３は、指定された描画オブジェクトや改ページ、更には印刷設定を途中で変更するための要求等をプリンタ１５０からの出力結果に反映させるためのプリンタ制御命令を適宜生成する。なお、印刷するページ数はアプリケーション２０１からの指定による。
【００５７】
次に、アプリケーション２０１は、印刷終了要求をグラフィックスエンジン２０２に行い（ステップＳ４０９）、グラフィックスエンジン２０２は、プリンタドライバ２０３に印刷終了要求を行う（ステップＳ４１０）。これにより、プリンタドライバ２０３は、プリンタ１５０が印刷終了に必要なプリンタ命令を生成し、ＰＤＬの生成処理を終了する。
【００５８】
次に、アプリケーション２０１は、ステップＳ４０２で取得したハンドル値の破棄要求をグラフィックスエンジン２０２に通知し（ステップＳ４１１）、グラフィックスエンジン２０２は、プリンタドライバ２０３に、プリンタドライバ情報の破棄要求を送信する（ステップＳ４１２）。これにより、プリンタドライバ２０３は、プリンタドライバ情報の破棄処理を行う。
【００５９】
上記ステップＳ４０５〜ステップＳ４１０の処理により、プリンタ１５０へ送信する印刷ジョブデータが生成される。
【００６０】
図５は、図４のステップＳ４０６の印刷開始要求処理のフローチャートである。なお、この図に示す処理はプリンタドライバによる制御に基づきＣＰＵ１０１により行われるものである。
【００６１】
図５において、プリンタドライバ２０３がグラフィックスエンジン２０２から印刷開始要求を受け付けると、プリンタドライバ２０３はＯＳが一般公開しているＡＰＩ（Application Program Interface）を利用して印刷実行プロセスの実体元ファイルであるアプリケーションに関する情報を取得する（ステップＳ７０１）。ステップＳ７０１では、ＡＰＩを利用することにより印刷実行プロセスの実体ファイルとなるアプリケーションの名称を該アプリケーションの外部メモリ１１１上の論理的格納位置（ディレクトリ位置）を付与した状態で取得することができる（例えば、C:\Program Files\Microsoft Office\Office\WINWORD.EXE）。なお、本実施の形態ではマイクロソフト社製ＯＳから一般公開されているGetModuleFileNameというＡＰＩを利用するが、同一の情報が入手可能であれば、これに変わる方法を用いてもよいことは云うまでもない。
【００６２】
次に、ステップＳ７０１で取得したアプリケーション情報が、外部メモリ１１１に記憶された後述する図６の印刷可否判断データ５００のアプリケーション情報５０１のいずれかと一致するか否かを判別する（ステップＳ７０２）。
【００６３】
図６において、印刷可否判断データ５００は、アプリケーションの格納位置（ディレクトリ位置）及び名称に関する情報５０１（以下、「アプリケーション情報５０１」という）と、アプリケーション情報５０１の夫々に紐付けられた識別情報５０２と、ドキュメントの格納位置及び名称に関する情報５０３（以下、「ドキュメント情報５０３」という）と、ドキュメント情報５０３の夫々に紐付けられた識別情報５０４と、ドキュメント情報５０３の夫々に紐付けられたドライバ設定情報５０５とを含む。
【００６４】
アプリケーション情報５０１は、アプリケーションの名称に関する情報に加えて、アプリケーションの格納位置に関する情報も含むので、格納位置が異なる同一バージョンのアプリケーションソフトウェア、及びバージョンが異なるアプリケーションソフトウェアに、異なる可否条件を夫々付与することができる。
【００６５】
この印刷可否判断データ５００は、プリンタドライバ２０３が実行されているホストコンピュータ１００の外部メモリ１１１に記憶され、プリンタドライバ２０３により参照可能である。また、印刷可否判断データ５００は、専用のユーザインタフェースを備える専用アプリケーションでユーザ操作により入力される。識別情報５０２及び識別情報５０４は、後述する図８の識別情報生成処理と同様の方法によって生成され、夫々アプリケーション情報５０１、ドキュメント情報５０３と紐付けられて外部メモリ１１１に記憶されるものとする。識別情報５０２及び５０４については、これ以外の任意の方法で作成し、外部メモリ１１１に記憶しても構わない。
【００６６】
図５に戻り、ステップＳ７０２の判別の結果、ステップＳ７０１で取得したアプリケーション情報が、アプリケーション情報５０１と一致しないときは、ステップＳ７１１に進み、印刷は禁止される。
【００６７】
ステップＳ７０２の判別の結果、ステップＳ７０１で取得したアプリケーション情報が、印刷可否判断データ５００中のアプリケーション情報５０１のいずれかと一致するときは、後述する図８のアプリケーションファイルの識別情報生成処理を実行して、アプリケーションファイルに包含されるファイルデータ全体から所定のデータ長の識別情報を生成する（ステップＳ７０３）。この識別情報は、ファイルに包含されるデータ全体から静的に固定な方法により生成されるので、ファイル内容が同一であれば常に同じ識別情報が出力され、一方、ファイル内容が異なれば原則として夫々に異なる識別情報が出力される。
【００６８】
次に、ステップＳ７０３で生成した識別情報が、ステップＳ７０２で一致したアプリケーション情報５０１に紐付けられた識別情報５０２と一致するか否かを判別し（ステップＳ７０４）、ステップＳ７０３で生成したファイル識別情報が、印刷可否判断データ５００中のいずれの識別情報５０２とも一致しないときは、ステップＳ７１１に進み、印刷は禁止される。これにより、アプリケーション情報が同一であっても、アプリケーションのファイル内容が印刷可否判断データ５００を外部メモリ１１１に記憶させた時の状態から変更・改ざんされている場合には、印刷処理を禁止し、もって、印刷するアプリケーションの改ざんや成りすまし等に対処することができる。
【００６９】
ステップＳ７０４の判別の結果、ステップＳ７０３で生成したファイル識別情報が、識別情報５０２と一致するときは、プリンタドライバ２０３がグラフィックスエンジン２０２から受け付けた印刷開始要求のパラメータから印刷ドキュメントに関する情報を取得する（ステップＳ７０５）。ステップＳ７０５では、ドキュメントの名称を該ドキュメントの外部メモリ１１１上の論理的格納位置（ディレクトリ位置）を付与した状態で取得可能である（例えば、C:\Document and Setting\All Users\Document\dptpolcy.doc）。なお、ドキュメント情報の取得方法はこれに限られるものではなく、同一の情報が入手可能であれば、これに変わる方法を用いてもよいことは云うまでもない。例えば、アプリケーション２０１とプリンタドライバ２０３の間で専用のＡＰＩを介してドキュメント情報を送受信するようにしてもよい。
【００７０】
次に、ステップＳ７０５で取得したドキュメント情報が、印刷可否判断データ５００のドキュメント情報５０３のいずれかと一致するか否かを判別し（ステップＳ７０６）、ステップＳ７０５で取得したドキュメント情報が、印刷可否判断データ５００中のいずれのドキュメント情報５０３とも一致しないときは、ステップＳ７１１に進み、印刷は禁止される。
【００７１】
ステップＳ７０６の判別の結果、ステップＳ７０５で取得したドキュメント情報が、ドキュメント情報５０３のいずれかと一致するときは、後述する図８のドキュメントファイルの識別情報生成処理を実行して、印刷ドキュメントファイルが包含するファイルデータ内容から所定のデータ長のファイル識別情報を生成する（ステップＳ７０７）。
【００７２】
次に、ステップＳ７０７で生成したファイル識別情報が、ステップＳ７０６で一致したドキュメント情報５０３に紐付けられたドキュメントの識別情報５０４と一致するか否かを判別し（ステップＳ７０８）、生成したファイル識別情報が、識別情報５０４と一致しないときは、ステップＳ７１１に進み、印刷は禁止される。これにより、ドキュメントの名称が同一であっても、ドキュメントのファイル内容が印刷可否判断データ５００を外部メモリ１１１に記憶させた時の状態から変更・改ざんされている場合には、印刷処理を禁止し、もって、印刷するドキュメントファイルの改ざん等の危険性を回避することができる。
【００７３】
ステップＳ７０８の判別の結果、生成したファイル識別情報が、識別情報５０４と一致するときは、グラフィックスエンジン２０２から受け付けた印刷開始要求のパラメータに含まれるオブジェクトハンドルから参照可能な印刷設定情報を取得し、取得した印刷設定情報の全ての項目が、印刷可否判断データ５００上で印刷ドキュメントの名称に紐付けられているドライバ設定情報５０５と一致するか否かを判別する（ステップＳ７０９）。
【００７４】
図６において、ドライバ設定情報５０５は、用紙サイズ、部数、印字面（片面／両面）、ステイプル、メディアの各設定項目に関する情報を含む。また、ドライバ設定情報５０５の任意の設定項目には、「指定なし」を選択することができる。即ち、印刷可否判断に影響を及ぼさないパラメータも指定可能である。「指定なし」が選択されている設定項目に関しては、ドライバ設定情報５０５を用いた印刷可否判断は行われない。また、設定項目に複数の許可情報を指定しても勿論構わない。その際には条件がいずれかのものに合致していたら許可する等の設定が可能になり、印刷可否判断に融通を持たせることも可能である（例えば用紙サイズが「Ａ３」若しくは「Ａ４」であれば印刷許可等）。更に、ドライバ設定情報５０５は、必ずしも全てのドキュメント情報５０３に紐付けなくてもよく、ドキュメント情報５０３にドライバ設定情報５０５が紐付けられていない場合には、ドキュメント情報５０３を用いた印刷可否判断は行われない。なお、ドライバ設定情報５０５の設定項目の種類や組み合わせはこれに限られるものではない。これにより、特定の印刷設定（例えば、部数は１部で両面印刷）でのみ印刷を許可する等といったきめ細かい判断条件を設けることができる。
【００７５】
図５に戻り、ステップＳ７０９の判別の結果、取得した印刷設定情報のいずれかの項目が、ドライバ設定情報５０５と一致しないときは、ステップＳ７１１に進み、印刷は禁止される。
【００７６】
ステップＳ７０９の判別の結果、取得した印刷設定情報の全ての項目が、ドライバ設定情報５０５と一致するときは、ＰＤＬの生成処理を開始し、プリンタ１５０に対する印刷開始コマンドを生成し、生成した印刷開始コマンドをプリントサブシステム２０４に出力し（ステップＳ７１０）、後述する図７の印刷可否判断の履歴情報８００を外部メモリ１１１に記憶させる（ステップＳ７１３）。
【００７７】
図７において、履歴情報８００は、ステップＳ７０１〜ステップＳ７０９で印刷可否判断に使用された情報として、アプリケーション情報５０１、及びドキュメント情報５０３を含む。
【００７８】
履歴情報８００は、また、印刷実行環境に関する情報として、印刷要求の受付時刻８０１、出力プリンタ８０２、Ｕｓｅｒ名称８０３、コンピュータ名８０４を含む。
【００７９】
履歴情報８００は、更に、印刷可否判断を容易に識別できるように、印刷可否判断の結果を示す識別コード８０６を含む。この識別コードは、判断結果を数値で表現しており、夫々の識別コードが意味する内容は識別コード一覧８０９に示す。このような情報８００を外部メモリ１１１に記憶させることにより、エンドユーザは、過去に発行された印刷開始要求や、それに対する印刷可否判断結果を確認することができる。
【００８０】
上記データ構成は一例であり、本発明を適用するシステム要件に応じて記録する情報を増減あるいは変更させても、勿論構わない。また、図５における処理の過程で、ステップＳ７０３、ステップＳ７０５においてそれぞれ作成されたアプリケーションの識別情報、ドキュメントの識別情報やステップＳ７０９で取得した印刷設定情報を更に記録してもよい。
【００８１】
なお、過去に既に実行された印刷開始要求処理で既に同様の情報が記録されていた場合には、新たな情報を追加記録していく。履歴情報８００は、プリントサーバコンピュータ３００が有する不図示の外部メモリや、プリンタ１５０の外部メモリ１１４に記憶されてもよい。また、履歴情報８００が記憶される記憶場所に関する情報は、プリンタドライバ２０３のプログラム内部に静的に保持されてもよく、エンドユーザにより任意に設定されてもよい。
【００８２】
図５に戻り、ステップＳ７１４では、プリンタドライバ２０３は、ステップＳ７０１〜ステップＳ７０９で結果的に印刷が許可されたか否かを判別し、印刷が許可されたときは、印刷開始要求処理が成功したことを示す値をグラフィックスエンジン２０２に通知し（ステップＳ７１５）、一方、印刷が許可されなかったときは、印刷開始要求処理が失敗したことを示す値をグラフィックスエンジン２０２に通知し（ステップＳ７１５）、本処理を終了する。
【００８３】
グラフィックスエンジン２０２は、ステップＳ７１５又はステップＳ７１６で通知された値に応じた内部処理を実行し、プリンタドライバ２０３から受信した印刷開始要求処理の成否を示す値をアプリケーション２０１に通知する。アプリケーション２０１は、印刷開始要求処理失敗を示す値が通知された場合は、印刷中止の処理を行い、一方、印刷開始要求処理成功を示す値が通知された場合は、印刷開始要求に続けて印刷処理を行う。
【００８４】
ステップＳ７０２、ステップＳ７０４、ステップＳ７０６、又はステップＳ７０９の判別の結果、ＮＯと判断されたときは、ステップＳ７１１に進み、印刷は禁止される。
【００８５】
ステップＳ７１１では、印刷を禁止する旨をエンドユーザに通知するメッセージをホストコンピュータ１００のＣＲＴ１１０に表示する。このメッセージは、いずれの判別ステップで印刷禁止に至ったかを示す情報や判別結果の情報を含み、ＯＫボタンを有するポップアップウィンドウ（メッセージボックス）として構成され、文字列やアイコンを利用して表示される。これにより、エンドユーザが印刷可否判断に係わる情報を確認することができる。
【００８６】
次に、印刷を禁止する旨をエンドユーザに通知するメッセージをプリンタ１５０の操作パネル１２２に文字列表示するためのＰＤＬを生成し、プリントサブシステム２０４を介してプリンタ１５０に出力することにより、該メッセージをプリンタ１５０の操作パネル１２２にも表示させ（ステップＳ７１２）、ステップＳ７１３以降の処理を実行して、本処理を終了する。これにより、印刷装置においてもエンドユーザが印刷可否判断に係わる情報を確認することができる。
【００８７】
ステップＳ７０９で取得した印刷設定情報のいずれかの項目が、印刷可否判断データ５００上で印刷ドキュメントの名称に紐付けられているドライバ設定情報５０５と一致しなかったときは、不図示の印刷設定変更用のＵＩを表示し、印刷設定を変更できるように構成してもよい。
【００８８】
ステップＳ７１１及びステップＳ７１２の処理は、一部又は全部を省略してもよい。
【００８９】
本実施の形態では、印刷可否判断データ５００は、ホストコンピュータ１００上の外部メモリ１１１に記憶され、プリンタドライバ２０３から参照するよう構成したが、印刷可否判断データ５００は、プリントサーバコンピュータ３００の外部メモリに記憶し、各ホストコンピュータ１００で動作するプリンタドライバ２０３から参照可能に構成してもよい。これにより、印刷可否判断データ５００を一元管理することができ、データの管理コストを低減することができる。
【００９０】
印刷可否判断データ５００をプリントサーバコンピュータ３００の外部メモリ及び各ホストコンピュータ１００の外部メモリ１１１に記憶させ、次の条件でプリントサーバコンピュータ３００に記憶される印刷可否判断データ５００をホストコンピュータ１００に記憶される印刷可否判断データ５００に上書きするように構成してもよい。
【００９１】
１．プリンタドライバ２０３が印刷開始要求（ステップＳ４０３）を受信する度に上書きする。
【００９２】
２．ホストコンピュータ１００の再起動後、プリンタドライバ２０３が初めて印刷開始要求を受信する度に上書きする。
【００９３】
３．ＯＳへログイン処理がなされた後、プリンタドライバ２０３が初めて印刷開始要求を受信する度に上書きする。
【００９４】
４．プリンタドライバ２０３が印刷開始要求を受信した際に実行する処理において、ステップＳ７０２、ステップＳ７０４、ステップＳ７０６、ステップＳ７０８、ステップＳ７０９のいずれかにおいて印刷禁止条件に合致したときに上書きする。
【００９５】
上記１〜４のように構成する場合は、ホストコンピュータ１００上で動作するプリンタドライバ２０３はホストコンピュータ１００の外部メモリ１１１に記憶された印刷可否判断データ５００を参照するよう構成する。このように構成すれば、相対的に参照速度が遅いプリントサーバコンピュータ３００の記憶領域アクセス頻度を、相対的に小さくすることができる。
【００９６】
本実施の形態において、印刷を許可するアプリケーション及びドキュメントの情報（印刷可否判断データ５００）を参照して印刷可否判断を行ったが、印刷を禁止するアプリケーション及びドキュメントの情報を参照して印刷可否判断を行うように構成してもよい。
【００９７】
アプリケーション情報に関する判断処理（ステップＳ７０１〜ステップＳ７０２）、アプリケーションの識別情報に関する判断処理（ステップＳ７０３〜ステップＳ７０４）、ドキュメント情報に関する判断処理（ステップＳ７０５〜ステップＳ７０６）、及び、識別情報に関する判断処理（ステップＳ７０７〜ステップＳ７０８）は、必ずしもこの順番で行わなくてもよい。また、一部の判断処理を省略してもよい。
【００９８】
図８は、図５のステップＳ７０３及びステップＳ７０７の識別情報生成処理のフローチャートである。
【００９９】
なお、本処理は、図５のステップＳ７０３及びステップＳ７０７で実行されるが、ここではステップＳ７０３の処理として説明する。
【０１００】
図８において、まず、ＲＡＭ１０２上に割り当てられる所定のデータ長（例えば、８バイト）のメモリ領域に該当する識別情報Ｘを０（ゼロ）に初期化し（ステップＳ６０１）、ステップＳ７０１で取得したアプリケーション情報に基づいて、アプリケーションの実体ファイルを開き（ステップＳ６０２）、開いた実体ファイルからファイルデータを所定のデータ長ずつ読み込み（ステップＳ６０３）、識別情報Ｘと読み込んだ所定のデータ長のデータとをＸＯＲ演算する（ステップＳ６０４）。
【０１０１】
次に、この演算結果を示したデータを識別情報Ｘへ上書き記憶し（ステップＳ６０５）、ステップＳ６０３〜ステップＳ６０５の一連の処理をファイル終端まで繰り返し行う（ステップＳ６０６）。
【０１０２】
ファイル終端までデータを読み込んだときは（ステップＳ６０６でＹＥＳ）、順次演算した識別情報Ｘと、プリンタドライバ２０３が外部からは不可視となる状態で予め記憶しておいた所定のデータ長であるパスワード値Ｙとを更にＸＯＲ演算し（ステップＳ６０７）、演算結果を識別情報Ｘへ上書き記憶する（ステップＳ６０８）。
【０１０３】
最後に、ステップＳ６０２で開いたアプリケーションファイルを閉じて（ステップＳ６０９）、本処理を終了する。
【０１０４】
上記処理によれば、同一の識別情報を生成する基となったファイルはファイルデータ全体が同一である確率が相対的に高くなり、識別情報が異なればファイル内容が異なることとなるので、アプリケーション又はドキュメントの改ざんや成りすまし等の危険性を回避することができる。
【０１０５】
また、対象ファイル全体のデータを利用して識別情報を生成するので、対象ファイルの如何なる部位が変更されていても、その差異を生成された識別情報の違いによって検知することができる。また、外部からは不可視であるパスワード値Ｙで最終的にＸＯＲ演算しているので、比較的に識別情報の生成方法を外部から類推することは困難である。
【０１０６】
図８の識別情報生成処理のフローチャートは一例であり、これに変わる方法で識別情報を生成してもよい。例えば既知のＭＤ５などのアルゴリズムにより所定データ長のハッシュ値を算出し、それを識別子とする等が考えられる。
【０１０７】
次に、図９を参照して本発明の第２の実施の形態について説明する。
【０１０８】
図９は、本発明の第２の実施の形態の印刷開始要求処理のフローチャートである。
【０１０９】
図９の処理は、図５の処理と基本的に同じであり、図５のステップと同一のステップには同一符号を付してその説明を省略し、図５の処理と異なる部分についてのみ説明する。図９の処理は、ステップＳ７１３に代えて、ステップＳ９０１〜Ｓ９０４が配されている点でのみ図５のものと異なる。
【０１１０】
第１の実施の形態では、印刷可否判断に係わった各種データ及び識別コードで表現される可否判断結果に関する情報を含む履歴情報８００を、如何なる条件でもホストコンピュータ１００或いはプリントサーバコンピュータ３００の外部メモリ１１１に記憶させたが、本実施の形態では、印刷可否判断において所定の回数以上、禁止条件に合致した場合のみ、履歴情報８００を記憶させる。これにより、印刷可否に係わる情報出力のサイズ軽減、あるいは出力回数の削減を図ることができる。
【０１１１】
まず、ステップＳ７０２〜ステップＳ７０９を経て印刷を許可する判断に至ったときは、ＰＤＬの生成処理を開始し、プリンタ１５０に対する印刷開始コマンドを生成し、生成した印刷開始コマンドをプリントサブシステム２０４に出力し（ステップＳ７１０）、ステップＳ７１３の印刷可否判断の履歴情報８００を外部メモリ１１１に記憶させる処理を行うことなく、ステップＳ７１４以降の処理を実行して、本処理を終了する。
【０１１２】
一方、ステップＳ７０２〜ステップＳ７０９を経て印刷を禁止する判断に至ったときは、印刷禁止条件に合致した回数を数えるカウンタ値をインクリメントし（ステップＳ９０１）、カウンタ値が所定の上限値を超えたか否かを判別し（ステップＳ９０２）、カウンタ値が所定の上限値を超えていないときは、ステップＳ７１４以降の処理を実行して、本処理を終了する。
【０１１３】
一方、カウンタ値が所定の上限値を超えているときは、カウンタ値を０にリセットし（ステップＳ９０３）、プリンタドライバ２０３は、ＳＭＴＰプロトコルを用いて、履歴情報８００を含む後述する図１０の電子メール１０００を所定の宛先に出力し（ステップＳ９０４）、ステップＳ７１４以降の処理を実行して、本処理を終了する。なお、ステップＳ９０４では、ステップＳ７１３と同様にプリントサーバコンピュータ３００の外部メモリに履歴情報８００を出力してもよい。
【０１１４】
図１０において、Date１００１は、電子メールの送信時刻に関する情報である。印刷開始要求の受付時刻１００２は、印刷開始命令をグラフィックスエンジン２０２から受け付けた時刻に関する情報である。出力プリンタ１００３は、プリント出力するプリンタ名に関する情報である。User名１００４は、印刷処理を実行しているユーザ名に関する情報である。Computer名１００５は、印刷処理を実行しているコンピュータ名に関する情報である。Application名１００６は、印刷処理を実行しているアプリケーション名に関する情報である。Document名１００７は、印刷対象となるドキュメント名に関する情報である。禁止条件合致回数１００８は、印刷禁止条件に合致した回数を記憶するカウンタ値に関する情報である。印刷可否判定コード１００９は、どの印刷禁止条件に合致したかを示す識別コードに関する情報である。
【０１１５】
電子メール１０００は、エンドユーザが操作や入力を一切行うプリンタドライバ２０３が生成するものである。これにより、印刷実行の可否判断がなされた後、当該判断に係わった各種情報や可否判断情報が所定の方法で所定の宛先へ通知されるので、ユーザの利便性を向上させることができる。
【０１１６】
カウンタ値は、外部メモリ１１１に記憶され、ホストコンピュータ１００を再起動したり、プリンタドライバ２０３が終了・起動しても情報が揮発したり、変化せずに保持されるものとする。また、カウンタ値及び上限値は、ドキュメント情報５０３に夫々紐付けて記憶される。これにより、夫々のドキュメント毎に印刷禁止条件と合致した回数を設定して、電子メール１０００の出力を抑制することができる。
【０１１７】
カウンタ値の上限値は、専用のユーザインタフェースを備える専用アプリケーションでユーザ操作を介して予め記憶されるものとするが、これに限られるものではない。
【０１１８】
電子メール１０００を出力する所定の宛先に関する情報は、専用のユーザインタフェースを備える専用アプリケーションでユーザ操作を介して予め記憶され、適宜プリンタドライバ２０３から参照可能に構成されているものとするが、これに限られるものではない。
【０１１９】
カウンタ値及び上限値を図６のドキュメント情報５０３に夫々紐付けて確保するとしたが、これに限定されるものではなく、例えば、カウンタ値をプリントサーバコンピュータ３００の外部メモリに記憶し、印刷実行環境から得られる情報を活用してユーザ別又はコンピュータ別に集計・参照されるように構成してもよい。
【０１２０】
次に、本発明の第３の実施の形態について説明する。
【０１２１】
本実施の形態は、その構成が上記第１の実施の形態と同じであり、その説明を省略する。以下、上記第１の実施の形態と異なる点のみを説明する。
【０１２２】
図１１は、本発明の第３の実施の形態のホストコンピュータのソフトウェア構成を概略的に示すブロック図である。
【０１２３】
図１１において、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、アプリケーション２０１からの印刷データを一旦中間コードからなるスプールファイル１１０４を生成する。これにより、一旦スプールした中間コードデータの内容に対して、拡大縮小や、複数ページを１ページに縮小して印刷する等の加工を行うことにより、アプリケーションが有していない機能を実現することができる。
【０１２４】
なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するＵＩで設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ１０２上あるいは外部メモリ１１１上に保管する。
【０１２５】
グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ１１０１が受け取る。ディスパッチャ１１０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ１１０１は、外部メモリ１１１に格納されている内部スプール処理モジュールであるスプーラ１１０３をＲＡＭ１０２にロードし、通常の印字データ作成処理１１０７ではなくスプーラ１１０３へ印刷命令（ＤＤＩ関数）を送付する。
【０１２６】
スプーラ１１０３は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル１１０４に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル（ＰＤＦ：Page Description File）と呼ぶ。また、スプーラ１１０３は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（製本印刷、Ｎｕｐ、両面、ステイプル、カラー／モノクロ指定等）をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル１１０４に保存する。
【０１２７】
このとき、ジョブ単位に格納されている設定ファイルをジョブ設定ファイル（ＳＤＦ:Spool Description File）と呼ぶ。なお、スプールファイル１１０４は外部メモリ１１１上にファイルとして生成するが、ＲＡＭ１０２上に生成されても構わない。更に、スプーラ１１０３は、外部メモリ１１１に格納されているスプールファイルマネージャ１１０５をＲＡＭ１０２にロードし、スプールファイルマネージャ１１０５に対してスプールファイル１１０４の生成状況を通知する。スプールファイルマネージャ１１０５は、スプールファイル１１０４に保存された印刷データに関する加工設定の内容に従って印刷を行えるか否かを判断する。
【０１２８】
スプールファイルマネージャ１１０５がグラフィックエンジン２０２を利用して印刷を行えると判断した場合には、外部メモリ１１１に格納されているデスプーラ１１０６をＲＡＭ１０２にロードし、デスプーラ１１０６に対して、スプールファイル１１０４に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【０１２９】
デスプーラ１１０６は、スプールファイル１１０４に含まれる中間コードのページ描画ファイルをスプールファイル１１０４に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、再度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【０１３０】
ディスパッチャ１１０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ１１０６からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ１１０１はスプーラ１１０３ではなく、プリンタドライバの通常の印字データ作成処理部１１０７に印刷命令を送る。プリンタドライバ２０３は、グラフィックエンジン２０２から取得したＤＤＩ関数に基づいてＰＤＬ等からなるプリンタ制御コマンドを生成し、プリントサブシステム２０４経由でプリンタ１５０に出力する。
【０１３１】
上記構成によれば、プリンタドライバ２０３が処理する通常の印刷データ作成処理１１０７において、一旦全ての描画情報及び印刷設定情報がスプールファイル１１０４へ記憶済みとなっているので、ＰＤＦ及びＳＤＦを参照することにより、印刷ジョブ全体を構成する夫々の印刷頁に適用される印刷設定情報（例えば、１頁目は片面印字設定、２頁目以降は両面印字設定）を得ることができる。
【０１３２】
図１２は、図１１のプリンタドライバ２０３によって実行される印刷開始要求処理のフローチャートである。
【０１３３】
図１２の処理は、図５の処理と基本的に同じであり、図５のステップと同一のステップには同一符号を付してその説明を省略し、図５の処理と異なる部分についてのみ説明する。図１２の処理は、ステップＳ７０９に代えて、ステップＳ１３０１，Ｓ１３０２が配されている点でのみ図５のものと異なる。
【０１３４】
図１２において、ステップＳ７０８で印刷許可（ＹＥＳ）の判断がなされたときは、グラフィックスエンジン２０２から受け付けた印刷開始要求に対応するＰＤＦ及びＳＤＦを参照し、印刷処理全体に適用される単一又は複数の印刷体裁情報を取得する（ステップＳ１３０１）。本実施の形態の前提となるＯＳでは、第１の実施の形態で前述した通り、印刷実行中にグラフィックスエンジン２０２を介してアプリケーション２０１からの印刷設定切り替え要求を適宜受け付けることも可能であるので、印刷処理開始から終了までの範囲においては、複数の印刷設定情報が存在する場合がある。
【０１３５】
次に、ステップＳ１３０１で取得した印刷体裁情報の全ての項目が、後述する図１３の印刷可否判断データ１２００の印刷体裁情報１２０１と一致するか否かを判別する（ステップＳ１３０２）。
【０１３６】
図１３において、印刷可否判断データ１２００は、アプリケーション情報５０１と、アプリケーション情報５０１の夫々に紐付けられた識別情報５０２と、ドキュメント情報５０３と、ドキュメント情報５０３の夫々に紐付けられた識別情報５０４と、ドキュメント情報５０３の夫々に紐付けられたドライバ設定情報５０５と、ドキュメント情報５０３の夫々に紐付けられた印刷体裁情報１２０１とを含む。
【０１３７】
印刷体裁情報１２０１は、各種ドライバ設定へ用紙サイズ、部数、印字面（片面／両面）、ステイプル、メディアの各設定項目に関する情報を有する。
【０１３８】
印刷体裁情報１２０１は、必ずしも全てのドキュメント情報５０３に紐付けなくてもよく、ドキュメント情報５０３に印刷体裁情報１２０１が紐付けられていない場合には、印刷体裁情報１２０１を用いた印刷可否判断は行われない。なお、印刷体裁情報１２０１の設定項目の種類や組み合わせはこれに限られるものではない。
【０１３９】
図１２に戻り、ステップＳ１３０２の判別の結果、ステップＳ１３０１で取得した印刷体裁情報の全ての項目が、印刷体裁情報１２０１と一致するときは、ステップＳ７１０に進み、印刷が実行される。一方、ステップＳ１３０１で取得した印刷体裁情報のいずれかの項目が、印刷体裁情報１２０１と一致しないときは、ステップＳ７１１に進み、印刷は禁止される。
【０１４０】
本処理によれば、特定の印刷体裁（例えば、１頁目はＡ４、２頁目はＡ３）でのみ印刷を許可する等といったきめ細かい判断条件を設けることができる。
【０１４１】
次に、本発明の第４の実施の形態について説明する。
【０１４２】
本実施の形態は、その構成が上記第１の実施の形態と同じであり、その説明を省略する。以下、上記第１の実施の形態と異なる点のみを説明する。
【０１４３】
本実施の形態では、ＯＳ、アプリケーション２０１、プリンタドライバ２０３の組み合わせが上記実施の形態に比較して限定される。まず、本実施の形態が適用される動作環境について説明する。
【０１４４】
一般的に、ホストコンピュータ１００のＲＡＭ１０２上へ記憶している各種データの所在位置を示す数値としてポインタがあるが、各ソフトウェアの内部でどのようなサイズのポインタを扱うかによって、１６ｂｉｔソフトウェア、３２ｂｉｔソフトウェア、又は、６４ｂｉｔソフトウェアと呼ぶ。ポインタのサイズが大きくなるに従って、該ポインタで指し示すことができるメモリ領域も大きくなり、相対的に大量のデータを扱うことが容易となる。また、基本的に１６ｂｉｔソフトウェアでは１６ｂｉｔ単位、３２ｂｉｔソフトウェアでは３２ｂｉｔ単位、６４ｂｉｔソフトウェアでは６４ｂｉｔ単位でＣＰＵ１０１上のレジスタを使用するため、数字が大きくなればなるほど、各種演算処理の効率が上がる。
【０１４５】
本実施の形態において、ＯＳ及びプリンタドライバ２０３が６４ｂｉｔ、アプリケーション２０１が３２ｂｉｔソフトウェアであるとするが、実際に市販されているＯＳの１つであるマイクロソフト社製のウィンドウズ（登録商標）ＸＰの６４ｂｉｔソフトウェア上では、このような組み合わせで、これらのソフトウェアを連係動作させ、実際に印刷処理を行うことも可能である。
【０１４６】
このような組み合わせで印刷処理を行う場合は、アプリケーション２０１（３２ｂｉｔソフトウェア）とプリンタドライバ２０３（６４ｂｉｔソフトウェア）の間でソフトウェアアーキテクチャが異なるので、グラフィックスエンジン２０２が両者のアーキテクチャの違いを吸収するための変換処理（例えば、ポインタ値の変換等）を担いながら、印刷処理が実行される。
【０１４７】
このため、印刷実行するアプリケーション２０１が、例えば、マイクロソフト社製のMicrosoft Word 2003（登録商標）であっても、プリンタドライバ２０３にとっては間を仲介するグラフィックスエンジン２０２が印刷実行してきているアプリケーションに見える。この場合、上記第１の実施の形態で述べたGetModuleFileNameというＡＰＩを利用しても、印刷実行プロセスがグラフィックスエンジン２０２となっているので、グラフィックスエンジン２０２の名称及び格納位置に関する情報が返却される。本実施の形態では、このようなケースで返却されるコンポーネント名称及び格納位置に関する文字列情報が”C:\WINDOWS（登録商標）\SPLWOW64.EXE”であるものと仮定する。
【０１４８】
次に、上記動作環境に適用される印刷開始要求処理について説明する。
【０１４９】
図１４は、本発明の第３の実施の形態の印刷開始要求処理のフローチャートである。
【０１５０】
図１４の処理は、図５の処理と基本的に同じであり、図５のステップと同一のステップには同一符号を付してその説明を省略し、図５の処理と異なる部分についてのみ説明する。図１４の処理は、ステップＳ７０１とステップＳ７０２の間にステップＳ１４０１が配されている点でのみ図５のものと異なる。
【０１５１】
図１４において、プリンタドライバ２０３は印刷開始要求を受け付けた後、ＯＳが一般公開しているＡＰＩを利用して印刷実行プロセスの実体ファイル（アプリケーション）に関する情報を取得する（ステップＳ７０１）。
【０１５２】
次に、プリンタドライバ２０３は、ステップＳ７０１で取得した文字列を参照し、文字列が”%windir%\SPLWOW64.EXE”と一致する、即ち文字列の末尾が”SPLWOW64.EXE”であるか否かを判断する（Ｓ１４０１）。
【０１５３】
一致するときは、ステップＳ７０２〜ステップＳ７０４をスキップし、ステップＳ７０５へ進む。一方、一致しないときは、ステップＳ７０２へ進む。なお、前述で記した”%windir%”とはＯＳ上で定義される”windir”という環境変数を示しており、各動作環境でＯＳが導入された外部メモリ１１１上の論理的な記憶位置（ディレクトリ位置）を指し示す。よって、例えば、ＯＳのシステムファイル群を”C:\WINDOWS（登録商標）”へ導入した場合には、”%windir%\SPLWOW64.EXE”は”C:\WINDOWS（登録商標）\SPLWOW64.EXE”へと置き換えられてから文字列比較を行うことになる。
【０１５４】
本処理によれば、動作システムのアーキテクチャに起因してアプリケーションの格納位置及び名称に関する情報を正常取得できない場合にも、何ら印刷可否判断データ５００を加工・編集することなく（例えば、印刷可否判断データ５００のアプリケーション関連情報に”C:\WINDOWS（登録商標）\SPLWOW64.EXE”を追加することなく）、自動的に判断条件をスキップし、もって、印刷実行の可否判断を行う際、動作環境に特有かつ固定的な制限で、アプリケーション名称を入手できない場合にも対処することができる。
【０１５５】
また、本発明の目的は、上記実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム又は装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出して実行することによっても達成されることは云うまでもない。
【０１５６】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、プログラムコード、及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(ＯＳ)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１５８】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１５９】
また、上記プログラムは、上述した実施の形態の機能をコンピュータで実現することができればよく、その形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳに供給されるスクリプトデータ等の形態を有するものでもよい。
【０１６０】
プログラムを供給する記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、他のＲＯＭ等を用いることができる。又は、上記プログラムは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【図面の簡単な説明】
【０１６１】
【図１】本発明の第１の実施の形態に係る印刷制御装置を有する印刷制御システムの構成を示すブロック図である。
【図２】図１におけるホストコンピュータのソフトウェア構成を概略的に示すブロック図である。
【図３】図１におけるホストコンピュータ及びプリンタを適用可能な印刷制御システムの一例を示すシステム構成図である。
【図４】プリンタによって実行される印刷制御処理の基本的な流れを示す図である。
【図５】図４のステップＳ４０６の印刷開始要求処理のフローチャートである。
【図６】図５の処理で用いられる印刷可否判断データの構成を示す図である。
【図７】図５のステップＳ７１３で記憶される履歴情報８００のデータ構成の一例を示す図である。
【図８】図５のステップＳ７０３及びステップＳ７０７の識別情報生成処理のフローチャートである。
【図９】本発明の第２の実施の形態の印刷開始要求処理のフローチャートである。
【図１０】図９のステップＳ９０４で出力される電子メールの一例を示す図である。
【図１１】本発明の第３の実施の形態のホストコンピュータのソフトウェア構成を概略的に示すブロック図である。
【図１２】図１１のプリンタドライバによって実行される印刷開始要求処理のフローチャートである。
【図１３】図５の処理で用いられる印刷可否判断データの構成を示す図である。
【図１４】本発明の第４の実施の形態の印刷開始要求処理のフローチャートである。
【符号の説明】
【０１６２】
１００  ホストコンピュータ
１５０  プリンタ
１１１  外部メモリ（ＨＤ、ＦＤ）
２０１  アプリケーション
２０２  グラフィックスエンジン
２０３  プリンタドライバ
２０４  プリントサブシステム
【図１】
2006146364.tif 000003
【図２】
2006146364.tif 000004
【図３】
2006146364.tif 000005
【図４】
2006146364.tif 000006
【図５】
2006146364.tif 000007
【図６】
2006146364.tif 000008
【図７】
2006146364.tif 000009
【図８】
2006146364.tif 000010
【図９】
2006146364.tif 000011
【図１０】
2006146364.tif 000012
【図１１】
2006146364.tif 000013
【図１２】
2006146364.tif 000014
【図１３】
2006146364.tif 000015
【図１４】
2006146364.tif 000016