(57)【特許請求の範囲】
【請求項１】
オペレーティングシステム（ＯＳ）によって制御され、動作している電子計算機（３）から印刷装置（４）へ印刷データの出力を行うとき、
前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出し、かつ、前記出力データを制御するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、
前記出力データを加工して印刷可能な形式に変換する変換手段から出力された前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、
前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）と
を含む電子計算機を実行させるための印刷制御プログラムであって、
前記監視・制御フィルタ（２２）は、
前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、及び
前記印刷命令は前記条件に該当するとき、前記条件に従って前記印刷命令と前記出力データを制御し、前記印刷命令は前記条件に該当しないとき、前記印刷命令と前記出力データを一時停止させて、前記出力データを複製して前記スプーラ（１０）に送信し、
前記スプーラ（１０）は、前記複製された前記出力データを加工して前記印刷データを作成し、
画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記スプーラ（１０）から出力される前記印刷データを用いて画面に表示可能なファイル（２１）を作成し、
ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１）を前記ネットワーク（２）に送信し、
前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、
前記監視・制御フィルタ（２２）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷命令と前記出力データを消去して印刷を中断する
ことを特徴とする印刷制御プログラム。
【請求項２】
オペレーティングシステム（ＯＳ）によって制御され、動作している電子計算機（３）から印刷装置（４）へ印刷データの出力を行うとき、
前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出し、かつ、前記出力データを制御するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、
前記出力データを加工して印刷可能な形式に変換する変換手段から出力された前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、
前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）と、
前記スプーラ（１０）の後に挿入され、前記スプーラ（１０）から出力される前記印刷データを制御するための第１制御フィルタ（２３）と
を含む電子計算機を実行させるための印刷制御プログラムであって、
前記監視・制御フィルタ（２２）は、前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、
前記監視・制御フィルタ（２２）は、前記印刷命令が前記条件に該当するとき、前記条件に従って前記印刷命令と前記出力データを制御し、前記印刷命令は前記条件に該当しないとき、前記第１制御フィルタ（２３）に知らせ信号を送信し、
前記スプーラ（１０）は、前記出力データを加工して前記印刷データを作成し、作成された前記印刷データを一時的に記憶媒体に保存し、
前記第１制御フィルタ（２３）は、前記知らせ信号を受信し、前記スプーラ（１０）から出力される前記印刷データを検出し、前記印刷の作業を一時停止させ、前記印刷データを複製し、
画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記複製された前記印刷データを用いて画面に表示可能なファイル（２１）を作成し、
ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１）を前記ネットワーク（２）に送信し、
前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、
前記監視・制御フィルタ（２２）は、前記通知信号を前記第１制御フィルタ（２３）に送信し、前記第１制御フィルタ（２３）が前記通知信号を受信して、
前記第１制御フィルタ（２３）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷データを消去して印刷を中断する
ことを特徴とする印刷制御プログラム。
【請求項３】
オペレーティングシステム（ＯＳ）によって制御され、動作している電子計算機（３）から印刷装置（４）へ印刷データの出力を行うとき、
前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出し、かつ、前記出力データを制御するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、
前記出力データを加工して印刷可能な形式に変換する変換手段から出力された前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、
前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）と、
前記カーネルモードで動作し、前記印刷装置（４）を制御するプリンタデバイスドライバ（１８）の前に挿入され、前記スプーラ（１０）から前記印刷装置（４）に送られる前記印刷データを制御するための第２制御フィルタ（１４１）と
を含む電子計算機を実行させるための印刷制御プログラムであって、
前記監視・制御フィルタ（２２）は、前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、
前記印刷命令は前記条件に該当するとき、前記条件に従って前記監視・制御フィルタ（２２）又は前記第２制御フィルタ（１４１）から前記制御を行い、
前記印刷命令は前記条件に該当しないとき、前記監視・制御フィルタ（２２）は、前記印刷命令と前記出力データを一時停止させて、前記出力データを複製して前記スプーラ（１０）に送信し、
前記スプーラ（１０）は、前記複製された前記出力データを加工して前記印刷データを作成し、
画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記スプーラ（１０）から出力される前記印刷データを用いて画面に表示可能なファイル（２１）を作成し、
ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１）を前記ネットワーク（２）に送信し、
前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、
前記監視・制御フィルタ（２２）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷命令と前記出力データを消去して印刷を中断する
ことを特徴とする印刷制御プログラム。
【請求項４】
オペレーティングシステム（ＯＳ）によって制御されて、動作している電子計算機（３）から印刷装置（４）へ印刷データの出力を行うとき、
前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から、前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、
前記出力データを加工して印刷可能な形式に変換する変換手段から出力された前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、
前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）と、
前記カーネルモードで動作し、前記印刷装置（４）を制御するプリンタデバイスドライバ（１８）の前に挿入され、前記スプーラ（１０）から前記印刷装置（４）に送られる前記印刷データを制御するための第２制御フィルタ（１４１）と、
前記スプーラ（１０）の後に挿入され、前記スプーラ（１０）から出力される前記印刷データを制御するための第１制御フィルタ（２３）と
を含む電子計算機を実行させるための印刷制御プログラムであって、
前記監視・制御フィルタ（２２）は、前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、
前記印刷命令は前記条件に該当するとき、前記条件に従って前記監視・制御フィルタ（２２）又は前記第２制御フィルタ（１４１）から前記制御を行い、
前記印刷命令は前記条件に該当しないとき、前記第１制御フィルタ（２３）は、前記スプーラ（１０）から出力される前記印刷データを検出し、前記印刷の作業を一時停止させ、前記印刷データを複製し、
画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記複製された前記印刷データを用いて画面に表示可能なファイル（２１）を作成し、
ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１）を前記ネットワーク（２）に送信し、
前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、
前記監視・制御フィルタ（２２）は、前記通知信号を前記第１制御フィルタ（２３）に送信し、前記第１制御フィルタ（２３）が前記通知信号を受信して、
前記第１制御フィルタ（２３）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷データを消去して印刷を中断する
ことを特徴とする印刷制御プログラム。
【請求項５】
請求項１乃至４の中から選択される１項において、
前記共通インターフェースドライバ（１０７）は、
前記アプリケーションプログラム（１１）とのインターフェ−スであるアプリケーションインターフェース部（１１７）と、
前記印刷データを制御する制御条件を確認し、前記制御命令を前記監視・制御フィルタ（２２）に送信するプリンタ出力監視ドライバ部（１４２）と、
記憶装置へアクセスして前記制御条件を取得し、前記プリンタ出力監視ドライバ部（１４２）へ渡すデータ入出力部（１１９，１２０，１３０）とを含み、
前記監視・制御フィルタ（２２）は、前記共通インターフェースドライバ（１０７）から前記条件を確認するとき、前記検出した前記印刷命令を前記アプリケーションインターフェース部（１１７）を介して前記プリンタ出力監視ドライバ部（１４２）へ渡し、
前記プリンタ出力監視ドライバ部（１４２）は、前記印刷命令を受け取り、前記印刷命令に対する制御命令を前記監視・制御フィルタ（２２）に送信する
ことを特徴とする印刷制御プログラム。
【請求項６】
請求項５において、
前記プリンタ出力監視ドライバ部（１４２）は、前記印刷命令を受け取り、前記印刷命令に対する制御命令を前記第２制御フィルタ（１４１）に送信し、
前記第２制御フィルタ（１４１）は、前記制御命令に従って前記印刷データを前記制御条件で制御する
ことを特徴とする印刷制御プログラム。
【請求項７】
請求項１乃至６の中から選択される１項に記載された電子計算機を実行させるための印刷制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子計算機から印刷装置への印刷を制御するための印刷制御プログラム及びプログラムの記録媒体に関する。詳しくは、電子計算機からその電子計算機に直接又はネットワークを介して接続されている印刷装置、又は印刷機能を有する複合機へ印刷するとき、管理者が印刷されるデータを閲覧して印刷を許可するか否かの通知信号を送信し、この通知信号に従って電子計算機の印刷を制御する印刷制御プログラム及びプログラムの記録媒体に関する。
【背景技術】
【０００２】
近年、複数の電子計算機が相互に接続されてなるネットワークシステムの利用が普及している。このネットワークシステムを利用して業務を行うことが企業にとって一般的になっている。各企業は、業務データの取り扱い、その流れの管理に取り組んでいる。企業内の重要なデータが印刷されて外部に漏洩すると、企業のイメージダウンを始め株価にも影響を及ぼしかねない。特に、顧客の個人情報を扱っている業界にとっては、消費者の信頼を失いかねない重大な問題であり、従業員、外部の侵入者等の不用意、又は不正操作により、電子計算機からどのようなファイルを印刷しているかを監視し、管理することが重要である。【０００３】
電子計算機から印刷装置への印刷を制御するものとしては、次の技術が開示されている。特許文献１には、電子計算機上に動作しているアプリケーションプログラムからプリンタへアクセスし印刷を行うとき、共通インターフェースドライバによってその印刷行為を検出して、印刷しようとするファイルやデータを確認しながら印刷するか否かの制御を行っている。【０００４】
詳しくは、アプリケーションプログラムからプリンタへアクセスするとき、電子計算機を制御し、動作させているオペレーティングシステムのスプーラが動作する。このスプーラが動作する時に発生するイベントによって該アクセスを検出する。共通インターフェースドライバは、予め制御条件データベースに登録された制御条件に従ってプリンタへのデータ出力を制御している。
【特許文献１】国際公開２００４／０７７２８７号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１においては、印刷制御は、電子計算機に予め登録した条件によって行われている。印刷しようとするファイルの内容を閲覧して印刷するか否かの制御は開示されていない。【０００６】
本発明は上述のような技術背景のもとになされたものであり、下記の目的を達成する。
本発明の目的は、電子計算機から印刷装置へアクセスして電子データ、ファイル等のユーザデータの印刷を行うとき、印刷されるデータの内容を管理者又は管理電子計算機に送信して、その返事に従って印刷の制御を行う印刷制御プログラム及びプログラムの記録媒体を提供する。
【課題を解決するための手段】
【０００７】
本発明は、前記目的を達成するため、次の手段を採る。【０００８】
本発明は、オペレーティングシステム（ＯＳ）によって制御され、動作している電子計算機（３）から印刷装置（４）へ印刷データの出力を行うとき、その制御するために電子計算機を実行させるための印刷制御プログラムを提供するものである。【０００９】
詳しくは、本発明の印刷制御プログラムは、前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データと、又は、前記印刷装置（４）へ出力する前記印刷データを制御するものである。【００１６】
本発明の第１の発明の印刷制御プログラムは、前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出し、かつ、前記出力データを制御するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、前記出力データを加工して印刷可能な形式に変換する変換手段から出力される前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）とを含む。
【００１７】
本発明の第１の発明の印刷制御プログラムは、前記監視・制御フィルタ（２２）は、前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、及び前記印刷命令は前記条件に該当するとき、前記条件に従って前記印刷命令と前記出力データを制御し、前記印刷命令は前記条件に該当しないとき、前記印刷命令と前記出力データを一時停止させて、前記出力データを複製して前記スプーラ（１０）に送信し、前記スプーラ（１０）は、前記複製された前記出力データを加工して前記印刷データを作成し、画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記スプーラ（１０）から出力される前記印刷データを用いて画面に表示可能なファイル（２１）を作成し、ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１）を前記ネットワーク（２）に送信し、前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、前記監視・制御フィルタ（２２）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷命令と前記出力データを消去して印刷を中断することを特徴とする。
【００１８】
本発明の第２の発明の印刷制御プログラムは、前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出し、かつ、前記出力データを制御するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、前記出力データを加工して印刷可能な形式に変換する変換手段から出力される前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）と、前記スプーラ（１０）の後に挿入され、前記スプーラ（１０）から出力される前記印刷データを制御するための第１制御フィルタ（２３）とを含む。
【００１９】
本発明の第２の発明の印刷制御プログラムは、前記監視・制御フィルタ（２２）は、前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、前記監視・制御フィルタ（２２）は、前記印刷命令が前記条件に該当するとき、前記条件に従って前記印刷命令と前記出力データを制御し、前記印刷命令は前記条件に該当しないとき、前記第１制御フィルタ（２３）に知らせ信号を送信し、前記スプーラ（１０）は、前記出力データを加工して前記印刷データを作成し、作成された前記印刷データを一時的に記憶媒体に保存し、前記第１制御フィルタ（２３）は、前記知らせ信号を受信し、前記スプーラ（１０）から出力される前記印刷データを検出し、前記印刷の作業を一時停止させ、前記印刷データを複製し、画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記複製された前記印刷データを用いて画面に表示可能なファイル（２１）を作成し、ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１）を前記ネットワーク（２）に送信し、前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、前記監視・制御フィルタ（２２）は、前記通知信号を前記第１制御フィルタ（２３）に送信し、前記第１制御フィルタ（２３）が前記通知信号を受信して、前記第１制御フィルタ（２３）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷データを消去して印刷を中断することを特徴とする。
【００２１】
本発明の第３の発明の印刷制御プログラムは、前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出し、かつ、前記出力データを制御するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、前記出力データを加工して印刷可能な形式に変換する変換手段から出力される前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）と、前記カーネルモードで動作し、前記印刷装置（４）を制御するプリンタデバイスドライバ（１８）の前に挿入され、前記スプーラ（１０）から前記印刷装置（４）に送られる前記印刷データを制御するための第２制御フィルタ（１４１）とを含む。
【００２２】
本発明の第３の発明の印刷制御プログラムは、前記監視・制御フィルタ（２２）は、前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、前記印刷命令は前記条件に該当するとき、前記条件に従って前記監視・制御フィルタ（２２）又は前記第２制御フィルタ（１４１）から前記制御を行い、前記印刷命令は前記条件に該当しないとき、前記監視・制御フィルタ（２２）は、前記印刷命令と前記出力データを一時停止させて、前記出力データを複製して前記スプーラ（１０）に送信し、前記スプーラ（１０）は、前記複製された前記出力データを加工して前記印刷データを作成し、画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記スプーラ（１０）から出力される前記印刷データを用いて画面に表示可能なファイル（２
１）を作成し、ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１）を前記ネットワーク（２）に送信し、前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、前記監視・制御フィルタ（２２）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷命令と前記出力データを消去して印刷を中断することを特徴とする。
【００２３】
本発明の第４の発明の印刷制御プログラムは、前記オペレーティングシステム上で動作しているアプリケーションプログラム（１１）から、前記印刷装置（４）へ印刷を行うために出される印刷命令と出力データを検出するためのもので、前記オペレーティングシステム（ＯＳ）のユーザモードで動作する監視・制御フィルタ（２２）と、前記出力データを加工して印刷可能な形式に変換する変換手段から出力される前記印刷データを一時的に記憶媒体に保存し、前記印刷装置（４）へ出力するためのスプーラ（１０）と、前記オペレーティングシステム（ＯＳ）の全ての命令を実行できるカーネルモードで動作し、かつ複数のデバイスドライバ間でデータの送受信を行うためのもので、前記出力データを制御する条件を前記監視・制御フィルタ（２２）に提供するための共通インターフェースドライバ（１０７）と、前記カーネルモードで動作し、前記印刷装置（４）を制御するプリンタデバイスドライバ（１８）の前に挿入され、前記スプーラ（１０）から前記印刷装置（４）に送られる前記印刷データを制御するための第２制御フィルタ（１４１）と、前記スプーラ（１０）の後に挿入され、前記スプーラ（１０）から出力される前記印刷データを制御するための第１制御フィルタ（２３）とを含む。
【００２４】
本発明の第４の発明の印刷制御プログラムは、前記監視・制御フィルタ（２２）は、前記スプーラ（１０）の前に挿入され、前記スプーラ（１０）が動作するときに発生するイベントで前記印刷命令を検出し、前記共通インターフェースドライバ（１０７）から前記条件を確認し、前記印刷命令は前記条件に該当するとき、前記条件に従って前記監視・制御フィルタ（２２）又は前記第２制御フィルタ（１４１）から前記制御を行い、前記印刷命令は前記条件に該当しないとき、前記第１制御フィルタ（２３）は、前記スプーラ（１０）から出力される前記印刷データを検出し、前記印刷の作業を一時停止させ、前記印刷データを複製し、画面に表示可能なファイルを作成するためのビューイメージドライバ（２０）は、前記複製された前記印刷データを用いて画面に表示可能なファイル（２１）を作成し、ネットワーク（２）に送信するための送信手段（２４，２５）は、前記ファイル（２１）が前記ネットワーク（２）上のサーバ（５）のデータベース（７）に保存されるように、前記ファイル（２１
）を前記ネットワーク（２）に送信し、前記ファイル（２１）を前記ネットワーク（２）を介して前記データベース（７）から受信したマネージャーコンピュータ（６）から出力されるもので、前記印刷装置（４）で印刷をするか否かの判断を示す通知信号を、前記サーバ（５）又は前記マネージャーコンピュータ（６）から前記ネットワーク（２）を介して、前記監視・制御フィルタ（２２）が受信して、前記監視・制御フィルタ（２２）は、前記通知信号を前記第１制御フィルタ（２３）に送信し、前記第１制御フィルタ（２３）が前記通知信号を受信して、前記第１制御フィルタ（２３）は、前記通知信号が印刷許可信号のときは、前記一時停止を再開して印刷を行い、前記通知信号が印刷不許可信号のときは、前記一時停止された前記印刷データを消去して印刷を中断する  ことを特徴とする。
【００２６】
本発明の第５の発明の印刷制御プログラムは、本発明の第１ないし４の発明の印刷制御プログラムの中から選択される１発明において、前記共通インターフェースドライバ（１０７）は、前記アプリケーションプログラム（１１）とのインターフェ−スであるアプリケーションインターフェース部（１１７）と、前記印刷データを制御する制御条件を確認し、前記制御命令を前記監視・制御フィルタ（２２）に送信するプリンタ出力監視ドライバ部（１４２）と、記憶装置へアクセスして前記制御条件を取得し、前記プリンタ出力監視ドライバ部（１４２）へ渡すデータ入出力部（１１９，１２０，１３０）とを含み、前記監視・制御フィルタ（２２）は、前記共通インターフェースドライバ（１０７）から前記条件を確認するとき、前記検出した前記印刷命令を前記アプリケーションインターフェース部（１１７）を介して前記プリンタ出力監視ドライバ部（１４２）へ渡し、前記プリンタ出力監視ドライバ部（１４２）は、前記印刷命令を受け取り、前記印刷命令に対する制御命令を前記監視・制御フィルタ（２２）に送信することを特徴とする。
【００２７】
本発明の第６の発明の印刷制御プログラムは、本発明の第５の発明において、前記プリンタ出力監視ドライバ部（１４２）は、前記印刷命令を受け取り、前記印刷命令に対する制御命令を前記第２制御フィルタ（１４１）に送信し、前記第２制御フィルタ（１４１）は、前記制御命令に従って前記印刷データを前記制御条件で制御することを特徴とする。
【００２８】
本発明の第７の発明の印刷制御プログラムを記録した記録媒体は、本発明の第１ないし６の中から選択される１発明の印刷制御プログラムを記録媒体に記録したものである。
【発明の効果】
【００２９】
本発明によると、次の効果が奏される。
本発明は、電子計算機上に動作しているアプリケーションプログラムから電子データ、ファイル等のユーザデータを印刷装置へ印刷するとき、印刷されるデータの内容を管理者又は管理電子計算機に送信して、管理者がその内容を閲覧して把握し、データの印刷の承認又は不承認を行うことが可能になった。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の第１の実施の形態を説明する。本発明の第１の実施の形態は、クライアントが印刷しようとする印刷データの内容をマネージャが確認して、印刷データの印刷の承認又は不承認の決定を行い、クライアントが操作しているクライアントコンピュータはこの決定に従って印刷の制御を行うためのものである。本発明の第１の実施の形態の印刷制御システムは、クライアントが操作しているクライアントコンピュータから印刷装置へ電子データ、ファイル等のユーザデータを印刷するとき、印刷データをマネージャが閲覧して印刷を承認又は不承認するシステムを提供するものである。【００３１】
クライアントパソコンからユーザデータを印刷するとき、このユーザデータ又は印刷装置へ送信される印刷データがマネージャコンピュータに送信される。マネージャは、マネージャコンピュータのディスプレイにクライアントが申請した印刷データを閲覧して、印刷を承認又は不承認する旨の通知信号をマネージャコンピュータからクライアントコンピュータに送信する。クライアントコンピュータはこの通知信号を受け取って、この通知信号に従ってユーザデータの印刷を続行又は中断する。【００３２】
本発明の第１の実施の形態の印刷制御システムは、クライアントコンピュータとマネージャコンピュータとの通信の中継をするサーバを備えている。サーバは、クライアントコンピュータから申請された印刷データを格納するデータベースを備え、マネージャコンピュータからこのデータベースにアクセス可能になっている。【００３３】
図１には、本発明の第１の実施の形態の印刷制御システム１の概要を図示している。印刷制御システム１は、ネットワーク２に接続されたクライアントコンピュータ３、印刷装置４、サーバ５、及びマネージャコンピュータ６からなる。クライアントコンピュータ３は、クライアントが操作して作業を行い、作業中のファイル又はクライアントコンピュータ３の記憶装置（図示せず）に保存されているファイルの印刷を行うための電子計算機である。これらのファイルは、画像データ、文書ファイル、テキストデータ、プログラムコード等の電子データを意味し、紙媒体に印刷可能なものである。【００３４】
印刷装置４は、クライアントコンピュータ３から送信された印刷データを紙等の媒体に印刷するためのものである。クライアントコンピュータ３から印刷を申請したデータはデータベース化されてサーバ５のデータベース７に格納される。データベース７は、クライアントコンピュータ３から印刷を申請した履歴、印刷の内容、それに対するマネージャの決定等の印刷申請履歴が格納されているデータベースである。データベース７は、サーバ５の記憶装置（図示せず）に格納されている。マネージャコンピュータ６からサーバ５にアクセスし、データベース７の内容を取得し閲覧することが可能である。【００３５】
マネージャコンピュータ６は、マネージャが操作して作業を行うための電子計算機である。ネットワーク２は、クライアントコンピュータ３、サーバ５、及びマネージャコンピュータ６がこれを経由して接続され、互いにデータ通信を行うためのものである。ネットワーク２は、インターネット、ＬＡＮ（Local Area Network）、無線通信網等のどのような形態の通信網でも良い。ネットワーク２は、インターネットであることが特に好ましい。【００３６】
クライアントコンピュータ３は、クライアントディスプレイ８、クライアントコンピュータ本体９、入力装置（図示せず）、記憶装置（図示せず）等を備えている。クライアントコンピュータ３は、オペレーティングシステムによって制御されて、動作する。オペレーティングシステムは、Microsoft社のWindows（登録商標）系のオペレーティングシステムであることが特に好ましい。【００３７】
このオペレーティングシステム上に各種のアプリケーションプログラムが動作する。これらのアプリケーションプログラムから、又はオペレーティングシステムから印刷命令をして印刷を行うことができる。印刷を行うとき、オペレーティングシステムは、この印刷命令を受け取り、オペレーティングシステムが内蔵しているサービス等を利用してデータを印刷可能な形式に変換して、最終的に印刷装置に送信する。このサービス等としては、スプーラ１０、言語モニタ、ポートモニタ、印刷装置用のデバイスドライバ等（説明は、後述する。）が掲げられる。【００３８】
〔印刷の流れ〕
ここで、本発明の第１の実施の形態の説明を分かりやすくするために、従来技術であるが、その印刷の手順を図２を参照しながら説明する。本例のオペレーティングシステムは、Ｗｉｎｄｏｗｓ（登録商標）系のオペレーティングシステムである。図２は、アプリケーションプログラム１１から印刷装置４にデータを印刷するとき、そのオペレーティングシステムの各サービスの相互関係を示すブロック図である。【００３９】
最初には、図２に図示されている各部分の機能の概略を説明する。アプリケーションプログラム１１は、オペレーティングシステム上に動作しているプログラムである。ＧＤＩ３２（１２）は、オペレーティングシステムが標準で提供しているサービスであり、プリンタ、ディスプレイ等の出力デバイスへのインターフェースを提供するためのものである。また、ＧＤＩ３２（１２）は、アプリケーションプログラムから提供されるデータを用いて、これを印刷可能な形式の印刷データに変換して出力する機能を有する。【００４０】
プリンタドライバ１３は、印刷装置４の機種、種類による固有の機能に関する情報を提供するためのプログラムである。プリンタドライバ１３は、印刷装置４を提供しているメーカが印刷装置４と一緒に供給するのが一般的である。スプーラ１０は、電子計算機のメモリ上に印刷データをスプーラデータ１４として一時的に保存し、印刷装置４へ出力するサービスである。言語モニタ１５は、スプーラ１０からのスプーラデータ１４を少しずつ、例えば１ページずつ、受信し、印刷可能な形式に変換して印刷装置４に送信するサービスである。【００４１】
また、言語モニタ１５は、印刷装置４の紙詰まり、トナー切れなどの状態を監視し、ステータスモニタ１６を通じて上位サービスに提供する機能を有する。ポートモニタ１７は、印刷装置４が接続されているポートの状態を監視して制御するためのものである。プリンタデバイスドライバ１８は、印刷装置４を直接制御するデバイスドライバである。【００４２】
ユーザは、アプリケーションプログラム１１の画面上に表示されている印刷ボタン、または、コマンドラインから印刷する旨のコマンドを直接入力して印刷を行う。このとき、印刷命令が出されて、アプリケーションプログラム１１は、ＧＤＩ３２（１２）を呼び出して印刷するためのデータを渡す。ＧＤＩ３２（１２）は、プリンタドライバ１３を呼び出して、印刷装置４の固有の情報をもらい、印刷可能な形式の印刷データを出力する。【００４３】
この印刷データはスプーラ１０に送信される。スプーラ１０は、この印刷データをスプーラデータ１４としてハードディスクに保存して、スプーラデータ１４から少しずつ言語モニタ１５に渡す。言語モニタ１５は、印刷装置４の動作状態をモニタリングしながら、ポートモニタ１７を介して印刷装置４に印刷データを渡す。例えば、印刷装置４に印刷データを１ページ分ずつ渡す。【００４４】
ポートモニタ１７は、印刷装置４へ印刷データを送信するポートを監視し、このポートが空いているときは、印刷データを送信する。ポートモニタ１７からの印刷データは、プリンタデバイスドライバ１８を介して印刷装置４に送信されて、最終的に印刷装置４によって印刷される。このように印刷作業の流れは、主にＧＤＩ３２（１２）、スプーラ１０、言語モニタ１５を介して行われる。【００４５】
〔印刷命令の複製〕
次に本発明の第１の実施の形態の印刷の流れを詳しく説明する。クライアントコンピュータ３は、クライアントコンピュータ３から印刷装置４にデータを印刷する処理の流れを制御する機能を有する印刷制御プログラムを内蔵している。印刷制御プログラムは、次に説明するように動作する。クライアントコンピュータ３は、クライアントディスプレイ８に表示されているデータを印刷するとき、動作しているアプリケーションプログラム１１の印刷機能を利用して印刷を行う。このとき、アプリケーションプログラム１１から印刷命令が出力される。【００４６】
図３は、本発明の第１の実施の形態の印刷制御プログラムで印刷命令が出力されたとき、その印刷命令が処理される手順の概要を図示している。例えば、クライアントディスプレイ８に表示されている文書データを印刷するとき、アプリケーションプログラム１１から印刷命令が出される。印刷命令は、ＧＤＩ３２（１２）、スプーラ１０を介して図２とその説明に示すように処理される。スプーラ１０は、スプーラデータ１４をハードディスクに保存し、言語モニタ１５に送信する。【００４７】
このとき、印刷制御プログラムはスプーラ１０の行為を検出し、印刷処理の流れを一時停止させて印刷の制御をする。印刷制御プログラムはスプーラデータ１４を複製し、複製されたスプーラデータ１４をビューイメージドライバ２０に渡し、汎用の電子計算機の画面に表示可能なファイルであるビューイメージ２１を生成させる。【００４８】
ビューイメージドライバ２０は、ＰＤＦ等のようなビューイメージ２１を作成するためのものである。ビューイメージドライバ２０は印刷装置４に印刷される印刷データと同一の内容のビューイメージ２１を作成する。作成されたビューイメージ２１は、サーバ５に送信されてデータベース７に格納される。【００４９】
〔全体の流れ〕
図４は、クライアントコンピュータ３の中の印刷制御の流れを示す図である。図５は、印刷制御システム１の全体の動作を示すフローチャートである。クライアントは、クライアントコンピュータ３から作業しているアプリケーションプログラム１１からのファイルを、印刷しようと印刷命令をする（ステップ１１）。アプリケーションプログラム１１からＧＤＩ３２（１２）が呼び出されて、印刷しようとするファイルを渡す。【００５０】
ＧＤＩ３２（１２）は、印刷データを作成し、印刷データはスプーラ１０に送信される。監視・制御フィルタ２２は、印刷制御プログラムの一部であり、スプーラ１０の動作を検出するためのプログラムである。監視・制御フィルタ２２は、スプーラ１０の動作を検出し、スプーラ１０が動作した時間を取得する機能、スプーラ１０でスプールされるデータを取得する機能などを有する。【００５１】
更に、監視・制御フィルタ２２は、アプリケーションプログラム１１の動作を監視する機能を有する。監視・制御フィルタ２２は、CreateProcessの動作を監視し、制御対象のプロセスがあるとき、この制御対象プロセスに制御用のモジュールをフックして制御を行う。つまり、フック用のモジュールコードを制御対象プロセスのアドレス空間にコピーし、そのプロセスのコンテキスト内で実行する。これは、CreateProcess()、WriteProcessMemory()、CreateRemoteThread等のAPI関数を利用して行われる。【００５２】
監視・制御フィルタ２２は、検出した結果を含む知らせ信号を第１制御フィルタ２３に送信することも可能であり、第１制御フィルタ２３は監視・制御フィルタ２２からの知らせ信号を受け取って動作を開始することも可能である。印刷データはスプーラ１０でスプールされ、スプーラデータ１４としてハードディスク上に保存される（ステップ１２）。スプーラデータ１４が言語モニタ１５に送信されるとき、第１制御フィルタ２３はこの行為を検出し、スプーラデータ１４をロックし印刷を一時停止する。【００５３】
その後、第１制御フィルタ２３は、スプーラデータ１４を複製してビューイメージドライバ２０に送信する。ビューイメージドライバ２０は、複製されたスプーラデータ１４を用いて、ＰＤＦ等のようなビューイメージ２１（図３を参照）を作成する（ステップ１３）。ビューイメージ２１は、印刷装置４で印刷される印刷データと同様な内容のものである。【００５４】
ビューイメージ２１は、ネットワークドライバ２４、ネットワークカード２５からネットワーク２を介してサーバ５に送信される（ステップ１４）。サーバ５は、クライアントコンピュータ３から送信されてくるビューイメージを受信して、データベース７に保存する（図１を参照）。マネージャは、マネージャコンピュータ６を操作して、ネットワーク２を介して、サーバ５のデータベース７を参照する（ステップ１５）。【００５５】
マネージャは、データベース７の中のビューイメージを参照し、このビューイメージを、クライアントコンピュータ３から印刷装置４で印刷するか否かの判断を行う（ステップ１６）。このときの判断は通知信号として、マネージャコンピュータ６から直接クライアントコンピュータ３又はサーバ５を介してクライアントコンピュータ３に送信される。マネージャの判断である通知信号は、印刷する場合は印刷許可信号、印刷をしない場合は印刷不許可信号としてマネージャコンピュータ６からクライアントコンピュータ３に送信される。【００５６】
クライアントコンピュータ３は、印刷許可信号を受信したら（ステップ１７）、印刷を続行させ（ステップ１８）、スプーラデータ１４を印刷装置４に送信する。印刷装置４は、クライアントコンピュータ３から送信されてきた印刷データを受信して印刷を行う（ステップ１９）。クライアントコンピュータ３は、印刷不許可信号を受信したら（ステップ２０）、スプーラデータ１４をメモリ上から消去して、印刷を中断させる（ステップ２１）。ビューイメージ２１は、ｇｉｆ、ｔｉｆｆ、ｊｐｇ等の形式の画像ファイル、Ｗｏｒｄ（登録商標），一太郎（登録商標）等のワードプロセッサの文書ファイルであることができる。【００５７】
クライアントコンピュータ３で印刷を行うか否かについてマネージャコンピュータ６の決定の通知信号は、データベース７に格納されている。クライアントコンピュータ３は、常時データベース７にアクセスして、印刷申請の進行状況を確認することができる。クライアントコンピュータ３で印刷を行うか否かについてマネージャコンピュータ６の決定の通知信号は、直接クライアントコンピュータ３に送信されることも可能である。これらの設定は、印刷制御システム１のデータベース７、クライアントコンピュータ３、マネージャコンピュータ６、及びサーバ５の設計を変更することで自由自在に行うことができる。【００５８】
図１に示すように、印刷装置４にはクライアントコンピュータ３が接続されている。しかし、印刷装置４は、ネットワーク２に接続されたネットワークプリンタ、又はプリンタサーバに接続されたプリンタ又は複写機であることも可能である。この場合は、スプーラ１０からは、ネットワークドライバ２４、及びネットワークカード２５を介してネットワーク２に接続されたネットワークプリンタ、又はプリンタサーバに送信される。【００５９】
図６は、監視・制御フィルタ２２において、フック用のプログラムを実行する例を示すフローチャートである。フック用のプログラムを実行するためには、制御対象プロセスに制御モジュールをフックする。監視・制御フィルタ２２は、プロセスを監視し、制御モジュールをフックするための監視サービス部と、フックプログラムにより印刷制御を行うための印刷制御部の２つのモジュールから構成される。監視サービス部が開始されると、制御パラメータを読み込む。この制御パラメータは、クライアントコンピュータ３内に保存されている初期パラメータと、サーバ５から受信した動的パラメータからなる。【００６０】
制御パラメータには、印刷制御をするアプリケーション、そのプロセスの指定、印刷時間帯の指定、印刷制御を行うか否かの指定が含まれる。更に、サーバ５のデータベース７に格納されている諸条件が含まれる。監視サービス部は、起動しているアプリケーションプログラム１１のプロセスＩＤを取得する（ステップ１０２）。【００６１】
監視サービス部は、取得したプロセスＩＤよりプロセス名を取得する。監視サービス部は、制御パラメータを参照し、プロセス名を制御パラメータと比較して制御対象のプロセスであるか否かを確認する（ステップ１０３、１０４）。制御対象のプロセスのとき、監視サービス部は、既存のプロセスリストに対してOpenProcess()を実行し、制御対象のプロセスを開き、初期化処理を行う（ステップ１０５）。そして、監視サービス部は、WriteProcessMemory()を実行し、フック用のプログラムコードを制御対象プロセスに直接コピーする（ステップ１０６）。【００６２】
監視サービス部は、CreateRemoteThread()を実行し、既存プロセスから新規に発生するプロセスの監視と印刷の監視を行えるようにフック用のプログラムコードをアタッチする（ステップ１０７）。このアタッチによってプログラムコードは実行され、プログラムコードがLoadLibraryを呼び出し、監視サービス部が既存プロセスから新規に発生するプロセスと印刷実行のフック用のプログラムコードが実行可能な状態になる。そして、監視サービス部は、次のプロセスを監視する等の次の処理に移る（ステップ１０９）。【００６３】
LoadLibraryによってロードされたフック用のプログラムは、監視・制御フィルタ２２の印刷制御部のプログラムであり、制御パラメータによる指示等に従って印刷制御を行う。監視・制御フィルタ２２の印刷制御部で、印刷を制御する一例を記述する。WinSpoolのドライバの中のStartDocDlgWに印刷制御部の制御モジュールをフックする。StartDocDlgWが動作すると、この制御モジュールが実行されて制御パラメータを参照する。例えば、許可された印刷時間帯ではない場合は、制御モジュールがStartDocDlgWを強制的に終了させて失敗させる。そして、ログを作成し、メールスロッドを利用して監視・制御フィルタ２２の印刷制御部へログを送信する。【００６４】
（その他の印刷制御方法）
図７には、印刷命令を検知してその複製を行って印刷制御行う手順の概要を図示している。クライアントディスプレイ８に表示されている文書データを印刷しようとするとき、アプリケーションプログラム１１から印刷命令が出される。印刷命令は、ＧＤＩ３２（１２）、スプーラ１０を介して図２とその説明に示すように処理される。即ち印刷制御プログラムは、ＧＤＩ３２（１２）とスプーラ１０との間に配置され、印刷命令を検知して、その複製を行う制御手段３０を有する。【００６５】
制御手段３０は、ＧＤＩ３２（１２）から印刷データを出力して、スプーラ１０を呼び出して印刷データを渡すときに動作する。制御手段３０は、印刷命令を検知したら印刷命令と印刷データの実行を一時停止させて、その複製をスプーラ１０に送信する。スプーラ１０は、複製された印刷命令と印刷データをビューイメージドライバ２０に送信する。【００６６】
これ以後の手順は、図５のステップ１４からステップ１６が実行される。ステップ１７〜１９において、クライアントコンピュータ３は、印刷許可信号を受信すると、制御手段３０が、一時停止している印刷命令と印刷データを再開させる。よって、印刷は実行される。ステップ２０、２１において、クライアントコンピュータ３は、印刷不許可信号を受信すると、制御手段３０は、一時停止している印刷命令と印刷データを消去する。【００６７】
制御手段３０の機能は、図４の監視・制御フィルタ２２に印刷命令と印刷データの実行を一時停止させる機能、その印刷命令と印刷データの複製をスプーラに送信する機能、一時停止した印刷命令と印刷データの実行を再開させる機能、及び実行が一時停止された印刷命令と印刷データを削除する機能を持たせることで実現する。【００６８】
〔第２の実施の形態〕
本発明の第２の実施の形態を説明する。図８は、本発明の第２の実施の形態の印刷制御システムの概要を図示している。図８は、共通インターフェースドライバ１０７、監視・制御フィルタ２２、第１制御フィルタ２３、第２制御フィルタ１４１を用いて印刷制御行うときの概要を図示したブロック図である。本発明の第２の実施の形態の説明にといては、上記の本発明の第１の実施の形態と同一のものは同一の符号を用い、その説明を省略する。以下には、本発明の第１の実施の形態と異なる部分の説明のみをする。ここで、本発明の実施の形態２の概要を図８を参照しながら説明する。共通インターフェースドライバ１０７はカーネルモードで動作するドライバである。【００６９】
共通インターフェースドライバ１０７は、アプリケーションプログラム１１等のユーザモードで動作するプログラムやサービスに対して、カーネルモードで動作するドライバへの共通のインターフェースを提供するためのものである。また、これは、カーネルモードで動作するドライバ間にデータの送受信ができる共通のインターフェースを提供する機能も果たす。共通インターフェースドライバ１０７は、例えば、特許文献１に示す共通インターフェースドライバ７を用いることが可能である。【００７０】
この共通イターフェースドライバは、本発明者等が提案したものであり、国際公開ＷＯ０２／０９１１９５号公報等で公知であり、かつ本発明の要旨でもないのでその詳細な説明については省略する。共通インターフェースドライバ１０７は、アプリケーションインターフェース部１１７、フロー制御部１２５、データ処理部１１９、ＴＤＩクライアントドライバ部（TDI Client Driver部）１２０、アクセスデータ管理部１３０、プリンタ出力監視ドライバ部１４２等から構成される。これらの各部分の機能は次の通りであり、詳細な印刷制御に関して特許文献１に開示されている。【００７１】
アプリケーションインターフェース部１１７は、アプリケーションプログラム１１と共通インターフェースドライバ１０７間のインターフェースである。アプリケーションインターフェース部１１７は、アプリケーションプログラム１１からのファイルアクセス要求等のコマンドを受け取り、そのコマンドの実行結果、またはフロー制御部１２５から受信したその他のデータをアプリケーションプログラム１１に送信するためのものである。データ処理部１１９は、アクセスデータ管理部１３０、ＴＤＩクライアントドライバ部１２０への入出力を行うためのものである。【００７２】
ＴＤＩクライアントドライバ部１２０は、ネットワークドライバ２４と共通インターフェースドライバ１０７とのインターフェースである。ネットワークドライバ２４は、ネットワーク２にデータを転送する際の通信プロトコルを制御するためのプロトコルドライバ（図示せず）と、プロトコルドライバとネットワークカード２５とのインターフェースを提供するためのＮＤＩＳ（Network Driver Interface Specification）ドライバ（図示せず）から構成される。【００７３】
ネットワークドライバ２４は、ネットワークカード２５を制御し、ネットワーク２へデータを伝送するときの接続の確立とプロトコルの制御を行う。ＴＤＩクライアントドライバ部１２０は、パケット化されたデータをデータ処理部１１９から受け取ってプロトコルドライバに出力する。【００７４】
フロー制御部１２５は、アプリケーションインターフェース部１１７を介して受け取ったアプリケーションプログラム１１からの命令等を解析して、データ処理部１１９、プリンタ出力監視ドライバ部１４２等に指示を出して制御するためのものである。アクセスデータ管理部１３０は、ハードディスク等の補助記憶装置に格納され、ユーザのファイルに関する情報を有する制御条件データベース１３６を参照・登録・制御し管理するためのものである。【００７５】
共通インターフェースドライバ１０７は、プリンタ出力監視ドライバ部１４２等を含むものである。プリンタ出力監視ドライバ部１４２は、印刷装置４へのデータの出力を監視し、必要に応じて印刷装置４への出力を制御するものである。プリンタ出力監視ドライバ部１４２は、後述するように印刷装置４へのプリンタ出力のログを取得し、印刷装置への出力のログをクライアントコンピュータ３のハードディスクに保存、又はネットワークカード１６、ネットワーク２を介して他の電子計算機に送信して保存することができる。【００７６】
プリンタ出力監視ドライバ部１４２は、制御条件データベース１３６に予め設定されている制御条件によって、印刷装置４への出力を制御する。例えば、ユーザが特定のファイルを印刷しようとするときに、その作業を制限、中断、停止させる。あるいは、ユーザが印刷しようとする印刷データを摩り替えて別のものを印刷する。更に、印刷装置４への印刷を非常に遅くする制御も可能である。【００７７】
無論、これらの制御に関して、サーバ５への通知信号を送信することができる。サーバ５からはネットワーク２を介してクライアントコンピュータ３へアクセスし、制御条件データベース１３６の内容を変更することによって、印刷装置４への制御を変更又は中断／再開することも可能である。サーバ５は、フロー制御部１２５へ命令を送り、フロー制御部１２５はその命令に従ってプリンタ出力監視ドライバ部１４２へ指示を出し、印刷装置４への出力を制御することもできる。【００７８】
データ処理部１１９は、フロー制御部１２５とプリンタ出力監視ドライバ部１４２との情報を元に印刷のログを作成し、制御条件データベース１３６に保存する機能を有する。また、このログをＴＤＩクライアントドライバ部１２０へ送り、ネットワーク２に接続されている別の電子計算機へ送信する。【００７９】
第２制御フィルタ１４１は、プリンタ出力監視ドライバ部１４２から送信されてくる制御命令に従って印刷装置へ送信される印刷データを制御するものである。第２制御フィルタ１４１は、印刷用データの削除、印刷用データを非常に遅いスピードで印刷装置４への送信、印刷しようとするデータの一部を繰り返して印刷装置４への送信、印刷装置４へ白紙のページの送信、印刷データの上にウォーターマークを付けて印刷装置への送信等の制御を行う。【００８０】
監視・制御フィルタ２２と第１制御フィルタ２３は、共通インターフェースドライバ１０７から指示されて動作する。このように動作すると、クライアントが特定のファイルを印刷するときは、インターフェースは、制御条件データベース１３６に入っていない条件を検索する。印刷しようとするファイルに対する条件が制御条件データベース１３６に入っている場合は、その条件に従って、監視・制御フィルタ２２、第２制御フィルタ１４１が動作して印刷を制御する。【００８１】
制御条件データベース１３６には、特定のファイルを印刷するときに常にマネージャの承認を確認するような制御条件を入れることができる。この場合は、そのファイルを印刷するときに、監視・制御フィルタ２２又は第１制御フィルタ２３は、図７と図３に示すように、ビューイメージをサーバ５へ送信して、マネージャからの通知信号に従って印刷の制御を行う。【００８２】
印刷しようとするファイルに対する条件が制御条件データベース１３６に入っていない場合は、図３と図７に示すようにサーバ５に印刷使用とするファイルのビューイメージを送信する。そして、サーバ５又はマネージャコンピュータ６から送信されてくる通知信号を受け取ってから印刷制御を行う。【００８３】
サーバ５又はマネージャコンピュータ６から送信されてくる通知信号は、ネットワーク２、ネットワークカード２５、ネットワークドライバ２４を介して、共通インターフェースドライバ１０７が受信し、監視・制御フィルタ２２又は第１制御フィルタ２３に送信することができる。第１制御フィルタ２３は、この通知信号に従って制御を行うとき、共通インターフェースドライバ１０７から直接又は監視・制御フィルタ２２を介して通知信号を受け取ることができる。
【産業上の利用可能性】
【００８４】
本発明は、電子計算機から印刷を行うとき、管理者が印刷内容を見て、印刷データの制御、印刷制御を行うことができている。そのため、印刷データの管理が重要な分野、例えば、個人情報、国家機密情報、企業秘密等の管理システムに組み込んで利用すればよりセキュリティ上の安全が高めることが可能で、管理が容易になる。
【図面の簡単な説明】
【００８５】
【図１】図１は、本発明の第１の実施の形態の印刷制御システム１の概要を図示した機能ブロック図である。
【図２】図２は、オペレーティングシステムの印刷に関係する各サービスの相互関係を示す機能ブロック図である。
【図３】図３は、本発明の実施の形態の印刷命令が処理される手順の概要を図示している図である。
【図４】図４は、クライアントコンピュータ３の中の印刷制御の流れを示す図である。
【図５】図５は、印刷制御システム１の全体の動作を示すフローチャートである。
【図６】図６は、監視・制御フィルタの監視サービス部が、プログラムをフックする例を示すフローチャートである。
【図７】図７は、印刷命令を検知してその複製を行って印刷制御行う手順の概要を示図した図である。
【図８】図８は、本発明の第２の実施の形態の概要を図示した機能ブロック図であり、共通インターフェースドライバを用いて印刷制御行うときの機能の概要を図示したブロック図である。
【符号の説明】
【００８６】
１…印刷制御システム
２…ネットワーク
４…印刷装置
５…サーバ
７…データベース
８…クライアントディスプレイ
９…クライアントコンピュータ本体
１０…スプーラ
１１…アプリケーションプログラム
１２…ＧＤＩ３２
１３…プリンタドライバ
１４…スプーラデータ
１５…言語モニタ
１６…ステータスモニタ
１７…ポートモニタ
１８…プリンタデバイスドライバ
２０…ビューイメージドライバ
２１…ビューイメージ
２２…監視・制御フィルタ
２３…第１制御フィルタ
２４…ネットワークドライバ
２５…ネットワークカード
３０…制御手段
１０７…共通インターフェースドライバ
１１７…アプリケーションインターフェース部
１１９…データ処理部
１２０…クライアントドライバ部
１２５…フロー制御部
１３０…アクセスデータ管理部
１３６…制御条件データベース
１４１…第２制御フィルタ
１４２…プリンタ出力監視ドライバ部
【図１】
0004540708.tif 000002
【図２】
0004540708.tif 000003
【図３】
0004540708.tif 000004
【図４】
0004540708.tif 000005
【図５】
0004540708.tif 000006
【図６】
0004540708.tif 000007
【図７】
0004540708.tif 000008
【図８】
0004540708.tif 000009