(57)【要約】 【課題】  企業における秘密情報などの印刷を制限する。【解決手段】  プリンタ１００は、コントローラ部１０３において、ＰＣ１０７などから入力された印刷データを印刷可能なデータ（例えば、中間言語データやページイメージデータなど）へと変換する。その一方で当該変換処理と並行して、セキュリティーチェック部１０５は、印刷を禁止されている情報が印刷データに含まれているか否かを判定する。もし、印刷を禁止されている情報が含まれていなければ、印刷可能なデータの印刷処理を実行する。印刷を禁止されている情報が含まれていた場合には、印刷処理を停止もしくは中止したり、印刷データを削除したりする。また、印刷を停止または中止された印刷データを管理者等の所定アドレスに送信してもよい。【選択図】  図１
2005169672.tif 000002
【特許請求の範囲】
【請求項１】
印刷エンジンを備えた印刷装置であって、
入力された印刷データを印刷可能なデータへと変換する変換手段と、
前記変換手段による変換処理と並行して、前記印刷データに印刷を禁止されている情報が含まれているか否かを判定する判定手段と、
前記印刷を禁止されている情報が含まれていないと判定されると、前記印刷可能なデータの印刷処理を実行するよう前記印刷エンジンを制御する印刷制御手段と
を含む印刷装置。
【請求項２】
印刷エンジンを備えた印刷装置であって、
印刷データを受信する受信手段と、
前記受信した印刷データを印刷可能なデータへと変換する第１の変換手段と、
前記第１の変換手段による変換処理と並行して、前記印刷データに印刷を禁止されている情報が含まれているか否かを認識する際に役立つ認識可能データへと、前記印刷データを変換する第２の変換手段と、
前記認識可能データに基づいて、前記印刷データに印刷を禁止されている情報が含まれているか否かを認識する認識手段と、
前記印刷を禁止されている情報が含まれていない場合に、前記印刷可能なデータの印刷処理を実行するよう前記印刷エンジンを制御し、前記印刷を禁止されている情報が含まれていた場合に、前記印刷可能なデータを削除するよう制御する印刷制御手段と
を含む印刷装置。
【請求項３】
前記印刷制御手段は、前記第１の変換手段における変換処理及び前記印刷エンジンによる前記印刷可能なデータの印刷処理のうち少なくとも一方を停止させる停止手段を含む、請求項２に記載の印刷装置。
【請求項４】
前記認識手段は、
前記印刷を禁止されている情報を認識するために必要となる基準情報を記憶する記憶手段と、
前記基準情報を参照して、前記認識可能データの中から前記印刷を禁止されている情報を検索する検索手段と
を含む請求項２または３に記載の印刷装置。
【請求項５】
前記印刷データに前記印刷を禁止されている情報が含まれていた場合に、該印刷データに関するユーザーに対し警告メッセージを出力する警告出力手段をさらに含む請求項２ないし４の何れかに記載の印刷装置。
【請求項６】
前記印刷データに前記印刷を禁止されている情報が含まれていた場合に、該印刷データ、および、対応する前記認識可能データのうち少なくとも一方を所定のアドレスまたは装置に送信する送信手段をさらに含む請求項２ないし５の何れかに記載の印刷装置。
【請求項７】
印刷エンジンを備えた印刷装置における印刷方法であって、
入力された印刷データを印刷可能なデータへと変換する変換ステップと、
前記変換ステップによる変換処理と並行して、前記印刷データに印刷を禁止されている情報が含まれているか否かを判定する判定ステップと、
前記印刷を禁止されている情報が含まれていないと判定されると、前記印刷可能なデータの印刷処理を実行するよう前記印刷エンジンを制御する印刷制御ステップと
を含む印刷方法。
【請求項８】
印刷エンジンを備えた印刷装置における印刷方法であって、
印刷データを受信する受信ステップと、
前記受信した印刷データを印刷可能なデータへと変換する第１の変換ステップと、
前記第１の変換ステップによる変換処理と並行して、前記印刷データに印刷を禁止されている情報が含まれているか否かを認識する際に役立つ認識可能データへと、前記印刷データを変換する第２の変換ステップと、
前記認識可能データに基づいて、前記印刷データに印刷を禁止されている情報が含まれているか否かを認識する認識ステップと、
前記印刷を禁止されている情報が含まれていない場合に、前記印刷可能なデータの印刷処理を実行するよう前記印刷エンジンを制御し、前記印刷を禁止されている情報が含まれていた場合に、前記印刷可能なデータを削除するよう制御する印刷制御ステップと
を含む印刷方法。
【請求項９】
請求項７または８に記載の印刷方法に関する各ステップをコンピュータ上で実行するための印刷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置の制御技術に係り、とりわけ、印刷対象のデータに印刷を禁止されている秘密情報が含まれているどうかに基づいて当該データの印刷を制限する技術に関する。
【背景技術】
【０００２】
今日、電子メールやＷＷＷ（ワールドワイドウェブ）などのインターネット技術が企業活動を支えているが、一方で、企業内における秘密文書等が外部に漏れる危険性が指摘されている。これらを防止すべく、様々な試みがなされている。
【０００３】
例えば、電子メールについては、社内のネットワーク管理者がネットワーク機器を適宜設定することにより、当該電子メールが私的に利用されていないか、あるいは極秘情報を社外に送信していないか等をチェックしている。
【０００４】
また、社内ユーザーが社外のＷＷＷへアクセスする際にもプロキシサーバ等を用いて自動的にチェックしたり、特定のサイトへのアクセスをブロックしたりしている。
【０００５】
ところで、ユーザーが文書の印刷を行なう場合は、ユーザーの使用するパソコン内のプリンタドライバが文書データを印刷データ（すなわち、プリンタコマンド群）に変換し、この印刷データをプリンタに送信して印刷を実行している。
【０００６】
もし文書データに企業秘密が含まれている場合には、企業内のセキュリティーポリシーに基づいて印刷の実行を制限できることが望ましいだろう。
【０００７】
そこで、本発明の関連技術として、印刷の許可／不許可の判定を行なう「セキュリティーチェックサーバ」を、ユーザーのパソコンとプリンタとの間に設置することを検討する。この関連技術に係るセキュリティーチェックサーバは、印刷データをコード化してコード化データを作成し、当該コード化データに「極秘」、「社外秘」または「Ｃｏｎｆｉｄｅｎｔｉａｌ」等のキーワードが含まれていないかを全文検索する。当該キーワードが発見された場合には、当該サーバが、さらに印刷を許可されたユーザーかどうかを確認する。最終的に、印刷が許可されていないユーザーと判断されれば、印刷データを削除してプリンタに送信しないようにし、同時にユーザーに対して「印刷不許可」の警告メッセージを送信することになる。
【０００８】
なお、本願発明に直接的に関連するものではないが、本願発明の出願時の技術水準を示すものとして特許文献１に記載の技術がある。この発明は、プリンタドライバにおいて紙幣等を認識し、紙幣の偽造を防止する技術に関連している。
【特許文献１】特開２０００−１９６８７６号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上述の関連技術では、「セキュリティーチェックサーバ」の設置に伴い、ネットワーク環境の整備コストが上昇するだけでなく、ネットワーク管理者には当該サーバの管理負担が新たに発生しする。したがって、管理者の日常業務が増加してしまうおそれがある。
【００１０】
また、印刷データのコード化処理やキーワードの全文検索が終了するまでは、サーバからプリンタへと印刷データが送信されない。これは、プリンタがイメージデータへの変換処理等を実行できないことを意味する。そのため、印刷完了までの待ち時間が増加してしまうおそれがある。企業内では、日々、大量の印刷ジョブが発生するため、多くの社内ユーザーは、印刷が完了するまでプリンタの前で待たされることになり、日常業務に悪影響が生じるかもしれない。
【００１１】
そこで、本発明は、このような課題および他の課題を解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【００１２】
上記課題を解決すべく、本発明の印刷装置は、入力された印刷データを印刷可能なデータ（例えば、中間言語データやページイメージデータなど）へと変換する一方で、当該変換処理と並行して、印刷を禁止されている情報が印刷データに含まれているか否かを判定する。もし、印刷を禁止されている情報が含まれていない場合には、印刷可能なデータの印刷処理を実行する。印刷を禁止されている情報が含まれていた場合には、印刷処理を停止もしくは中止したり、印刷データを削除したりする。また、印刷を停止または中止された印刷データを管理者等の所定アドレスに送信してもよい。
【発明の効果】
【００１３】
本発明によれば、印刷装置において、印刷に必要なデータ変換処理と印刷禁止の判定処理とをほぼ並行して進めることで、秘密情報等の印刷禁止と印刷処理の待ち時間の改善とを両立させることができる。
【発明を実施するための最良の形態】
【００１４】
以下に本発明の上位概念、中位概念および下位概念の理解に役立つ一実施形態を示す。なお、以下の実施形態に含まれる概念について、そのすべてが特許請求の範囲に記載されているとは限らない。ただし、これは特許発明の技術的範囲から意識的に除外したのではなく、特許発明と均等の関係にあるため特許請求の範囲には記載していない場合があることを理解していただきたい。
【００１５】
［第１の実施形態］
図１は、本実施形態に係る印刷装置の例示的なブロック図である。プリンタ１００は、ユーザーのパソコン１０７から連続して送信される印刷ジョブデータを受信する。印刷ジョブデータとは、印刷ジョブを実行する際に必要となるプリントコマンドなどのデータをいう。プリンタ１００は、受信・分岐部１０２、コントローラ部１０３、エンジン部１０４、セキュリティーチェック部１０５、および条件保存部１０６を備えており、それぞれ不図示の共通バスを介して接続されている。
【００１６】
受信・分岐部１０２は、印刷ジョブデータを受信すると、当該印刷ジョブデータを印刷処理のためのデータとセキュリティーチェックのためのデータとに分割し、コントローラ部１０３とセキュリティーチェック部１０５に送付する。なお、データを分割する際には、印刷ジョブデータの先頭に印刷ジョブ番号とユーザー情報と付加することで、コントローラ部１０３とセキュリティーチェック部１０５とが印刷ジョブを特定できるようにしている。また、分割の際には、印刷ジョブデータをコピーすることでもう一つの印刷ジョブデータを作成してもよい。あるいは、物理的に一つの印刷ジョブデータを双方から参照可能なようにデータを管理してもよい。このように、分割とは、受信した印刷ジョブデータをコントローラ部１０３とセキュリティーチェック部１０５とがそれぞれ並行して利用できるようにすることを意味し、必ずしも当該データをばらばらに分離することを意味するわけではない。
【００１７】
コントローラ部１０３は、印刷ジョブデータを受信して保存する受信バッファ１１０と、受信バッファ１１０中の印刷ジョブデータをトランスレート（翻訳）して中間言語データとして保存する中間バッファ１１１、中間言語データからラスタライズ処理して得たページイメージデータを保存するスプール領域１１２等で構成されている。また、指示待機プログラム１１３は、セキュリティーチェック部１０５から印刷許可を受信すると、スプール領域１１２に保存しておいたページイメージデータがビデオ信号化されてエンジン部１０４に送信され、印刷が実行される。
【００１８】
セキュリティーチェック部１０５は、印刷ジョブデータを受信して保存する受信バッファ１２０と、受信バッファ１２０中の印刷ジョブデータをコード化処理して得られたコード化データを保存するコード化データ保存バッファ１２１と、受信した印刷ジョブデータやコード化データを保存しておく保存領域１２２とを含んでいる。コード化データは、印刷ジョブデータに印刷を禁止されている情報が含まれているか否かをセキュリティーチェック部１０５が判断する際に役立つデータのことである。コード化データ保存バッファ１２１に記憶されているコード化データは、条件チェック処理において、キーワードによる全文検索が行われる。オプションとして、キーワードが存在した場合に印刷が許されたユーザーかどうかを判定してもよい。印刷ジョブデータに関する印刷許可／不許可の判定結果は、コントローラ部１０３の指示待機プログラム１１３に送出される。
【００１９】
条件チェック処理において使用される判定条件（印刷不許可キーワードや、印刷が許可されたユーザーかどうかの情報など）は、予め管理者のＰＣ１０８を通して条件保存部１０６に設定される。条件チェック処理を行なう場合は、条件保存部１０６から読み出された判定条件が利用される。条件保存部には、所定のウィルスチェックパターンを記憶し、所定のビット列を含むウィルスプログラムに印刷データが汚染していないか否かを判定することができる。本実施形態でのセキュリティチェックは、単なる文字列検索に限定されるものではなく、所定の画像パターンを画像認識アルゴリズムにより検出した場合に印刷を不許可とするようにしてもよい。
【００２０】
条件チェック処理において、印刷不許可と判定された場合は、印刷ジョブデータを送信したユーザーＰＣ１０７に対して「印刷不許可」を表す警告情報を送信する。また、印刷不許可とされた印刷ジョブについて、保存領域１２２に保存しておいた受信データとコード化データとを管理者のＰＣ１０８に送信する。これにより、管理者は、受信データとコード化データをＰＣ１０８において表示させることで詳細に調べることができ、必要であれば、ユーザーと直接対面して調査を進めることができるようになる。
【００２１】
なお、上記コントローラ部１０３の処理とセキュリティーチェック部１０５の処理は、ほぼ並行してパイプライン的に進められるので、秘密文書の印刷禁止と印刷スピードとを両立させることができる。
【００２２】
次に、上記機能に関するハードウエア上の実現手段の一例を図２ないし図６を用いて説明する。図２は、本実施形態に係る受信・分岐部１０２の基本構成例を示す図である。ＣＰＵ２０１は、システムバスに接続された各デバイスを統括的に制御する演算装置である。ＲＯＭ２０２は、ブートプログラムや各種の制御プログラムを記憶する記憶回路である。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する記憶回路である。共通バス接続部２０４は、コントローラ１０６などの他の機能部と通信するための共通バスに接続する接続回路である。ネットワーク接続部２０５は、任意のネットワークを介してユーザーのＰＣ１０７や管理者のＰＣ１０８と接続して通信するための通信制御回路である。
【００２３】
図３は、本実施形態に係る条件保存部の構成例を示した図である。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３および共通バス接続部３０４に加え、外部記憶装置３０６を備えている。この外部記憶装置３０６は、条件判定のためのキーワードや、当該キーワードごとの許可ユーザーに関する情報等を記憶する記憶装置である。外部記憶装置３０６としては、例えば、ＨＤＤ（ハードディスクドライブ）やフラッシュＲＯＭなどを採用できる。
【００２４】
図４は、本実施形態に係るエンジン部の基本構成例を示す図である。ＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４０３および共通バス接続部４０４に加え、コントローラ部１０３との接続部４０８、給紙・現像定着・排紙装置４０９が含まれている。なお、接続部４０８は、ページイメージデータをビデオ信号の形式でコントローラ部１０３から受信し、それを給紙・現像定着・排紙装置４０９に送出する。つまり、共通バスや制御部内のローカルバスを経由することなく、直接、給紙・現像定着・排紙装置４０９にビデオ信号の形式でページイメージデータを送出するように構成したので、共通バスやローカルバスの負荷を軽減できる利点がある。
【００２５】
図５は、本実施形態に係るコントローラ部の基本構成例を示す図である。ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、共通バス接続部５０４および外部記憶装置５０６に加え、エンジン部１０４との接続部５０８が含まれている。これは、エンジン部１０４にページイメージのビデオ信号を送信するための回路である。なお、ＲＯＭ５０２には、受信プログラム５１０、トランスレートプログラム５１１、ラスタライズプログラム５１２、指示待機プログラム１１３、印刷出力プログラム５１４が記憶されている。これらのプログラムはそれぞれマルチタスクで動作するようにすれば、より一層効果が高まるであろう。ＲＡＭ５０３には、受信バッファ１１０、中間バッファ１１１、管理表５１５、ワーク領域５１６が設けられている。外部記憶装置５０６は、ＨＤＤ（ハードディスクドライブ）などで、スプール領域１１２が設けられている。
【００２６】
受信プログラム５１０は、受信・分岐部１０２から印刷ジョブデータ（プリントコマンドなど）を受信して受信バッファ１１０に保存するためのプログラムである。また、保存開始時には、印刷ジョブ番号を発行し、当該印刷ジョブ番号を管理表５１５に登録する。これにより印刷ジョブを管理できるようにする。トランスレートプログラム５１１は、受信バッファ１１０に記憶されているプリントコマンドを中間言語データに変換して中間バッファ１１１に記憶するプログラムである。ラスタライズプログラム５１２は、中間バッファ１１１に記憶されている中間言語データをラスタライズしてページイメージデータに変換し、スプール領域１１２に記憶するプログラムである。印刷ジョブデータについて、スプール領域へのイメージデータの保存が完了すると、管理表５１５にスプール完了を登録する。
【００２７】
図６は、本実施形態に係るセキュリティーチェック部の基本構成例を示す図である。ＣＰＵ６０１、ＲＯＭ６０２、ＲＡＭ６０３、共通バス接続部６０４および外部記憶装置６０６が含まれている。ＲＯＭ６０２には、受信プログラム６１０、コード化プログラム６１１、条件チェックプログラム６１２が記憶されている。ＲＡＭ６０３には、受信バッファ１２０、コード化データ保存バッファ１２１、管理表６１５、ワーク領域６１６が設けられている。外部記憶装置６０６には、受信データ６１７やコード化データ６１８の保存領域が設けられている。なお、管理表６１５と管理表５１５は、このように別々に設けてもよいし、共通化してもよい。
【００２８】
受信プログラム６１０は、受信・分岐部１０２から印刷ジョブデータ（プリントコマンドなど）を受信して受信バッファ１２０に保存するプログラムである。保存開始時には、管理表６１５に印刷ジョブ番号とユーザー情報を登録し、以後、印刷ジョブを管理できるようにする。また、受信データを外部記憶装置６０６の保存領域にも保存する。
【００２９】
コード化プログラム６１１は、受信バッファ１２０に記憶されている受信データ（プリントコマンド）をコード化し、コード化されたデータを保存バッファ１２１に保存する。また、コード化データを外部記憶装置６０６の保存領域１２２にも保存する。
【００３０】
条件チェックプログラム６１２は、保存バッファ１２１に記憶されているコード化データに対し、キーワードによる全文検索して条件チェックを実行する。そして、キーワードが存在した場合は、そのキーワードについて印刷を許可されたユーザーかどうかをチェックし、印刷の許可／不許可を判定する。なお、上記キーワードやユーザー情報は、条件保存部１０６から読み出して取得する。また、印刷の許可／不許可の判定結果は、コントローラ部１０３に送出する。さらに、不許可の場合は、印刷ジョブを送信したユーザーのＰＣ１０７に対して「印刷不許可」の警告メッセージを送信する。警告メッセージは、プリンタドライバが受信して表示するようにしてもよいし、電子メール等の他の伝達手段により送信してよい。なお、プリンタドライバが受信した場合には、印刷ジョブデータの送信を中止するようにしてもよい。一方、管理者のＰＣ１０８には、対応する受信データとコード化データとを送信する。当該データを送信する際には、独自のプロトコルを用いてもよいし、電子メール等のよく知られたプロトコルを用いて送信してもよい。
【００３１】
次に、フローチャートを用いて第１の実施形態に係る動作を説明する。図７は、本実施形態に係る受信・分岐部１０２の動作を説明するためのフローチャートである。
【００３２】
ステップＳ７０１において、ＣＰＵ２０１は、プリンタ１００の電源がオフにされたかをチェックし、ＹＥＳであれば動作を終了する。ＮＯであればステップＳ７０２に進み、ＣＰＵ２０１は、新規の印刷ジョブデータを受信したかどうかを判定する。ＹＥＳであればステップＳ７０３に進み、印刷ジョブ番号を発行し、当該印刷ジョブ番号と送信者情報とを印刷ジョブデータの先頭にを付加する。さらに、受信データを分割し、コントローラ部１０３とセキュリティーチェック部１０５とに送信する。送信者の情報もユーザーＰＣ１０７から受信するものとする。そのあとは、ステップＳ７０１に戻って、最初からのステップを繰り返す。
【００３３】
ステップＳ７０２でＮＯであればステップＳ７０４に進み、ＣＰＵ２０１は、セキュリティーチェック部１０５の条件チェックプログラム６１２で使用するためのチェック条件を受信したかどうか判定する。ＹＥＳであればステップＳ７０５に進み、ＣＰＵ２０１は、チェック条件に関するデータを条件保存部１０６に送信する。そのあとは、ステップＳ７０１に戻る。
【００３４】
ステップＳ７０４でＮＯであればステップＳ７０６に進み、ＣＰＵ２０１は、印刷不許可となった印刷ジョブデータを送信してきたユーザーに対する「印刷不許可」警告メッセージの送信指示を、条件チェックプログラム６１２から受信しているかどうかを判定する。ＹＥＳであればステップＳ７０７に進み、印刷ジョブデータを送信してきたＰＣ１０７に「印刷不許可」の警告メッセージを送信する。そのあとは、ステップＳ７０１に戻る。
【００３５】
ステップＳ７０６でＮＯであればステップＳ７０８に進み、ＣＰＵ２０１は、条件チェックプログラム６１２から、管理者のＰＣ１０８に対するデータ送信指示があったかを判定する。ＹＥＳであればステップＳ７０９に進み、ＣＰＵ２０１は、印刷不許可と判定した印刷ジョブに関する送信者情報、印刷ジョブデータおよびコード化データを管理者のＰＣ１０８に送信する。そのあとは、ステップＳ７０１に戻る。
【００３６】
ステップＳ７０８でＮＯであればステップＳ７１０に進み、ＣＰＵ２０１は、条件チェックプログラム６１２から、印刷ジョブデータの受信中止指示（印刷ジョブ番号の指定を含む。）を受信したかを判定する。ＹＥＳであればステップＳ７１１に進み、ＣＰＵ２０１は、中止対象となっている印刷ジョブの番号に基づいて、該当の印刷ジョブを受信中であるかどうかを判定し、受信中であれば当該印刷ジョブの受信を停止する。ステップＳ７１１のあと、あるいはステップＳ７１０でＮＯであればステップＳ７０１に戻る。  図８は、本実施形態に係る条件保存部１０６の動作を説明するためのフローチャートである。
【００３７】
ステップＳ８０１において、ＣＰＵ３０１は、プリンタ１００の電源がオフにされたかチェックし、ＹＥＳであれば動作を終了する。ＮＯであればステップＳ８０２に進み、ＣＰＵ３０１は、新しいチェック条件が、受信・分岐部１０２から届いているかどうかを判定する。ＹＥＳであればステップＳ８０３に進み、ＣＰＵ３０１は、新しい条件を外部記憶装置３０６に保存し、ステップＳ８０１に戻る。
【００３８】
ステップＳ８０２においてＮＯであればステップＳ８０４に進み、ＣＰＵ３０１は、セキュリティーチェック部１０５の条件チェックプログラム６１２から、チェック条件の問い合わせが合ったかどうかを判定する。ＹＥＳであればステップＳ８０５に進み、チェック条件を読み出して条件チェックプログラム６１２に送信する。ステップＳ８０５のあと、あるいは、ステップＳ８０４でＮＯの場合は、ステップＳ８０１に戻る。
【００３９】
図９は、本実施形態に係るエンジン部１０４の動作を説明するためのフローチャートである。
【００４０】
ステップＳ９０１において、ＣＰＵ４０１は、プリンタ１００の電源がオフにされたかを判定する。ＹＥＳであれば動作を終了する。ＮＯであればステップＳ９０２に進み、コントローラ部１０３の印刷出力プログラム５１４から給紙開始の指示があったかを判定する。ＹＥＳであればステップＳ９０３に進み、ＣＰＵ４０１は、給紙装置４０９を制御して給紙を開始する。さらに、給紙を開始したことを印刷出力プログラム５１４に通知する。そのあとは、ステップＳ９０１に戻る。
【００４１】
ステップＳ９０２においてＮＯの場合は、ステップＳ９０４に進み、印刷出力プログラム５１４によって送信されるビデオ信号の受信を開始したかを判定する。ＹＥＳであればステップＳ９０５に進み、ＣＰＵ４０１は、ビデオ信号に応じて画像を用紙に転写し、定着し、排紙する。ステップＳ９０５のあと、あるいはステップＳ９０４でＮＯであればステップＳ９０１に戻る。
【００４２】
図１０は、本実施形態に係るコントローラ部１０３の受信プログラムの動作を説明するためのフローチャートである。
【００４３】
ステップＳ１００１において、ＣＰＵ５０１は、プリンタ１００の電源がオフにされたかを判定する。ＹＥＳであれば動作を終了させる。ＮＯであればステップＳ１００２に進み、ＣＰＵ５０１は、受信・分岐部１０２から、新規の印刷ジョブに係る受信データを受信しているかどうかを判定する。ＹＥＳであればステップＳ１００３に進み、ＣＰＵ５０１は、管理表５１５に印刷ジョブ番号を登録する。次にステップＳ１００４に進み、ＣＰＵ５０１は、受信バッファ１１０に受信データを保存する。
【００４４】
なお、新規の印刷ジョブの受信が開始されると、あとはＤＭＡ転送によって、自動的に印刷ジョブの最後まで受信作業が行われるようにしてもよい。このようにすれば、受信プログラム５１０は受信処理から開放される利点がある。
【００４５】
ステップＳ１００４のあと、あるいは、ステップＳ１００２でＮＯであればステップＳ１００１に戻る。
【００４６】
図１１は、コントローラ部１０３のトランスレートプログラムの動作を説明するためのフローチャートである。
【００４７】
ステップＳ１１０１で、ＣＰＵ５０１は、プリンタ１００の電源がオフにされたかどうかを判定する。ＹＥＳであれば動作を終了させる。ＮＯであればステップＳ１１０２に進み、ＣＰＵ５０１は、受信バッファ１１０に印刷ジョブデータがあるかどうかを判定する。ＹＥＳであればステップＳ１１０３に進み、ＣＰＵ５０１は、印刷ジョブデータ（プリントコマンド）を中間言語データにトランスレートし、中間バッファ１１１に保存する。処理済の受信データは、受信バッファ１１０から削除する。そのあとは、ステップＳ１１０１に戻る。なお、中間言語データとは、プリントコマンドを描画しやすくするために、単純化したコマンドデータである。この中間言語データに基づいて、ラスタライズプログラム５１２が最終的なページイメージデータを作成する（図１３）。
【００４８】
ステップＳ１１０２でＮＯであればステップＳ１１０４に進み、ＣＰＵ５０１は、コントローラ部１０３の指示待機プログラム１１３から、印刷ジョブ番号を指定したトランスレート処理の停止指示があったかを判定する。ＹＥＳであればステップＳ１１０５に進み、ＣＰＵ５０１は、指定された印刷ジョブがトランスレート中かを判定する。ＹＥＳであればステップＳ１１０６に進み、ＣＰＵ５０１は、トランスレート処理を停止する。ステップＳ１１０６のあと、ステップＳ１１０５でＮＯの場合、あるいはステップＳ１１０４でＮＯの場合は、ステップＳ１１０１に戻る。
【００４９】
図１２は、本実施形態に係るラスタライズプログラムの動作を説明するためのフローチャートである。
【００５０】
ステップＳ１２０１で、ＣＰＵ５０１は、プリンタ１００の電源がオフにされたかを判定する。ＹＥＳであれば動作を終了させる。ＮＯであればステップＳ１２０２に進み、ＣＰＵ５０１は、中間バッファ１１１に印刷ジョブデータがあるかどうかを判定する。ＹＥＳであればステップＳ１２０３に進み、ＣＰＵ５０１は、印刷ジョブデータをラスタライズし、ラスタライズにより生成されたページイメージデータを外部記憶装置５０６のスプール領域１１２に保存する。ステップＳ１２０４において、ＣＰＵ５０１は、印刷ジョブの部分的なラスタライズ完了を管理表５１５に記録する。そのあとは、ステップＳ１２０１に戻る。
【００５１】
ステップＳ１２０２でＮＯの場合は、ステップＳ１２０５に進み、ＣＰＵ５０１は、指示待機プログラム１１３から、印刷ジョブ番号を指定したラスタライズ処理の停止指示を受信しているかを判定する。ＹＥＳであればステップＳ１２０６に進み、ＣＰＵ５０１は、指定された印刷ジョブがラスタライズ中であるかどうかを判定する。ＹＥＳであればステップＳ１２０７に進み、ＣＰＵ５０１は、指定された印刷ジョブのラスタライズ処理を中止する。ステップＳ１２０７のあと、ステップＳ１２０６でＮＯの場合、あるいはステップＳ１２０５でＮＯの場合は、ステップＳ１２０１に戻る。
【００５２】
図１３は、本実施形態に係る指示待機プログラムの動作を説明するためのフローチャートである。
【００５３】
ステップＳ１３０１で、ＣＰＵ５０１は、プリンタ１００の電源がオフにされたかを判定する。ＹＥＳであれば動作を終了させる。ＮＯであればステップＳ１３０２に進み、ＣＰＵ５０１は、セキュリティーチェック部１０５の条件チェックプログラム６１２から、印刷ジョブについて印刷許可／不許可の指示を受信しているかどうかを判定する。ＹＥＳであればステップＳ１３０３に進み、ＣＰＵ５０１は、当該印刷ジョブについて印刷許可／不許可を管理表５１５に記録する。そのあとは、ステップＳ１３０１に戻る。
【００５４】
ステップＳ１３０２でＮＯであればステップＳ１３０４に進み、ＣＰＵ５０１は、管理表５１５に、印刷を許可された印刷ジョブが登録されているかどうかを判定する。ＹＥＳであればステップＳ１３０５に進み、ＣＰＵ５０１は、全ページについてラスタライズが完了しているかを判定する。ＮＯであればステップＳ１３０１に戻る。ＹＥＳであればステップＳ１３０６に進みＣＰＵ５０１は、印刷ジョブについて印刷実行を印刷出力プログラム５１４に指示する。そのあとは、ステップＳ１３０１に戻る。
【００５５】
ステップＳ１３０４でＮＯであればステップＳ１３０７に進み、ＣＰＵ５０１は、管理表５１５に印刷不許可の印刷ジョブが登録されているかを判定する。ＹＥＳであればステップＳ１３０８に進み、全ページについてラスタライズが完了しているかを判定する。ＮＯであればステップＳ１３０９に進み、ＣＰＵ５０１は、トランスレートプログラム５１１、ラスタライズプログラム５１２に対し、対応する印刷ジョブのトランスレート処理、ラスタライズ処理の停止を指示する。さらに、ＣＰＵ５０１は、受信バッファ１１０または中間バッファ１１１に記憶されている対応印刷ジョブのデータを削除する。
【００５６】
ステップＳ１３０９のあと、あるいはステップＳ１３０８でＹＥＳの場合は、ステップＳ１３１０に進み、スプール領域１１２から対応印刷ジョブに係るページイメージデータを削除する。また、管理表５１５からも当該印刷ジョブの記録を削除する。
【００５７】
ステップＳ１３１０のあと、あるいはステップＳ１３０７でＮＯの場合は、ステップＳ１３０１に戻る。
【００５８】
図１４は、本実施形態に係る印刷出力プログラムの動作を説明するためのフローチャートである。
【００５９】
ステップＳ１４０１で、ＣＰＵ５０１は、プリンタ１００の電源がオフにされたかどうか判定する。ＹＥＳであればこのプログラムの動作を終了させる。ＮＯであればステップＳ１４０２に進み、ＣＰＵ５０１は、指示待機プログラム１１３から、印刷ジョブ番号を指定した印刷実行の指示があったかを判定する。ＹＥＳであればステップＳ１４０３におて、ＣＰＵ５０１は、エンジン部１０４に給紙の指示を送出する。ステップＳ１４０４において、ＣＰＵ５０１は、エンジン部１０４から給紙開始の通知を受信するまで待機する。給紙開始の通知があると、ステップＳ１４０５に進み、ＣＰＵ５０１は、スプール領域１１２から対応する印刷ジョブのページイメージデータを読み出して、ビデオ信号を作成し、エンジン部１０４に送信する。ステップＳ１４０６において、ＣＰＵ５０１は、１ページ分のビデオ信号についての送信が完了するまで待つ。送信が完了すると、ステップＳ１４０７に進み、ＣＰＵ５０１は、印刷ジョブの最後のページまでビデオ送信を完了したかを判定する。ＮＯであればステップＳ１４０３ないしＳ１４０６までの処理を繰り返す。
【００６０】
ステップＳ１４０７においてＹＥＳであればステップＳ１４０８に進み、ＣＰＵ５０１は、印刷完了した印刷ジョブに係るページイメージデータをスプール領域１１２からすべて削除し、管理表５１５からも対応印刷ジョブの記録を削除する。
【００６１】
ステップＳ１４０８のあと、あるいはステップＳ１４０２でＮＯの場合は、ステップＳ１４０１に戻る。
【００６２】
図１５は、本実施形態に係るセキュリティーチェック部１０５の受信プログラムの動作を説明するためのフローチャートである。
【００６３】
ステップＳ１５０１において、ＣＰＵ６０１は、プリンタ１００の電源がオフにされたかを判定する。ＹＥＳであればこのプログラム６１０の動作を終了する。ＮＯであればステップＳ１５０２に進み、ＣＰＵ６０１は、新規の印刷ジョブに関する受信データが届いているかどうかを判定する。ＹＥＳであればステップＳ１５０３に進み、ＣＰＵ６０１は、管理表６１５に印刷ジョブ番号と送信者情報を登録する。ステップＳ１５０４において、ＣＰＵ６０１は、セキュリティーチェック部１０５の受信バッファ１２０に受信データを保存する。ステップＳ１５０５において、ＣＰＵ６０１は、受信データを外部記憶装置６０６の保存領域１２２にも保存する。ステップＳ１５０５のあと、あるいはステップＳ１５０２でＮＯであればステップＳ１５０１に戻る。
【００６４】
図１６は、本実施形態に係るコード化プログラムの動作を説明するためのフローチャートである。
【００６５】
ステップＳ１６０１において、ＣＰＵ６０１は、プリンタ１００の電源がオフにされたかどうかを判定する。ＹＥＳであればこのプログラム６１１の動作を終了する。ＮＯであればステップＳ１６０２に進み、ＣＰＵ６０１は、受信バッファ１２０に印刷ジョブデータがあるかどうかを判定する。ＹＥＳであればステップＳ１６０３に進み、ＣＰＵ６０１は、当該印刷ジョブデータ（受信データ）にダウンロードフォントが含まれているかを判定する。ＹＥＳであればステップＳ１６０４に進み、ＣＰＵ６０１は、パターンマッチングにより、ダウンロードされた各文字パターンのコードを同定する。
【００６６】
ステップＳ１６０３においてＮＯの場合、あるいはステップＳＳ１６０４のあとは、ステップＳ１６０５に進み、ＣＰＵ６０１は、受信データがイメージ部分を含むかどうかを判定する。ＹＥＳであればステップＳ１６０６に進み、ＣＰＵ６０１は、パターンマッチングにより、イメージ部分内の文字列のコードを同定する。なお、フォント基づく同定処理と、イメージに基づく同定処理は、どちらか一方のみを実行してもよいし、双方を実行していもよい。
【００６７】
ステップＳ１６０５でＮＯの場合、あるいはステップＳ１６０６のあとは、ステップＳ１６０７に進み、ＣＰＵ６０１は、受信データの文字列部分の全体をシフトＪＩＳコードに変換する。ステップＳ１６０８に進み、ＣＰＵ６０１は、シフトＪＩＳコードに変換したコード化データをコード化データ保存バッファ１２１に保存する。同時に、外部記憶装置６０６の保存領域６１８にも保存する。そして、受信バッファ１２０にあるコード化処理済の受信データを削除する。
【００６８】
ステップＳ１６０８のあと、あるいはステップＳ１６０２でＮＯの場合は、ステップＳ１６０１に戻る。
【００６９】
図１７は、本実施形態に係る条件チェックプログラムの動作を説明するためのフローチャートである。
【００７０】
ステップＳ１７０１において、ＣＰＵ６０１は、プリンタ１００の電源がオフにされたかを判定する。ＹＥＳであればこのプログラム６１２の動作を終了する。ＮＯであればステップＳ１７０２に進み、ＣＰＵ６０１は、コード化データ保存バッファ１２１内にコード化データが存在するかを判定する。ＹＥＳであればステップＳ１７０３に進み、ＣＰＵ６０１は、チェック条件を読み込んであるかどうかを判定する。ＹＥＳであればステップＳ１７０４に進み、ＣＰＵ６０１は、条件保存部１０６に保存されているチェック条件に関するデータが新規のデータに変更されているかを判定する。ステップＳ１７０４でＹＥＳ、あるいはステップＳ１７０３でＮＯであればステップＳ１７０５に進み、ＣＰＵ６０１は、条件保存部１０６からチェック条件に関するデータを読み込む。ステップＳ１７０５のあと、あるいはステップＳ１７０４でＮＯの場合は、ステップＳ１７０６に進み、ＣＰＵ６０１は、条件検索処理を実行する。条件検索処理の詳細は図１８を用いて後述する。ステップＳ１７０７において、ＣＰＵ６０１は、検索処理済のコード化データをコード化データ保存バッファ１２１から削除する。
【００７１】
ステップＳ１７０８において、ＣＰＵ６０１は、条件検索処理の結果に基づいて、印刷ジョブの印刷許可／不許可の判定を行なう。許可であれば、ステップＳ１７０９に進み、ＣＰＵ６０１は、印刷ジョブの全データについて、条件検索処理を終了したかを判定する。ＹＥＳであればステップＳ１１７１０に進み、ＣＰＵ６０１は、コントローラ部１０３の指示待機プログラム１１３に、印刷ジョブ番号とともに印刷可を通知する。そして、外部記憶装置６０６の保存領域１２２から、対応印刷ジョブの受信データ、コード化データを削除し、さらに管理表６１５からも対応印刷ジョブの記録を削除する。ステップＳ１７１０のあと、あるいはステップＳ１７０９でＮＯの場合は、ステップＳ１７０１に戻る。
【００７２】
ステップＳ１７０８において印刷不許可の場合は、ステップＳ１７１１に進み、ＣＰＵ６０１は、指示待機プログラム１１３に、印刷ジョブの番号とともに印刷不許可を通知する。また、印刷ジョブを送信したユーザーのＰＣ１０７にも、受信・分岐部１０２を経由して「印刷不許可」の警告メッセージを送信する。
【００７３】
そのあとステップＳ１７１２において、ＣＰＵ６０１は、受信・分岐部１０２に対して、印刷ジョブの番号とともに受信停止の指示を送出する。また、コード化処理プログラム６１１に対して、コード化処理の停止指示を送出する。そして、受信バッファ１２０、コード化保存バッファ１２１から、対応印刷ジョブの受信データ、コード化データをそれぞれ削除する。そして、保存領域１２２に記憶されている対応印刷ジョブの受信データおよびコード化データを、受信・分岐部１０２を経由して管理者のＰＣ１０８に送信する。そのあとで、ＣＰＵ６０１は、ＰＣ１０８に送信した受信データおよびコード化データを保存領域１２２から削除し、管理表６１５からも対応印刷ジョブの記録を削除する。そのあとは、ステップＳ１７０１に戻る。
【００７４】
図１８は、本実施形態係る条件検索処理（Ｓ１７０６）の一例を説明するためのフローチャートである。
【００７５】
ステップＳ１８０１において、ＣＰＵ６０１は、チェック条件に関するデータに含まれるキーワード数を変数ｎにセットし、変数ｍに０をセットする。そのあと、ステップＳ１８０２に進み、ＣＰＵ６０１は、ｍ番目のキーワードについて、コード化保存バッファ１２１のコード化データを全文検索する。ステップＳ１８０３において、ＣＰＵ６０１は、当該キーワードが抽出されたかどうかを判定する。抽出された場合は、ステップＳ１８０４に進み、ＣＰＵ６０１は、そのキーワードについて、印刷ジョブを送信してきたユーザーが印刷を許可されているかどうかを判定する。例えば、あらかじめ各キーワードごとに、許可されているユーザーまたは許可されていないユーザーの識別情報を対応付けたデータベースを作成し、当該データベースを条件保存部１０６に保存しておくことで、印刷許可／非許可を判定できる。ＮＯであればステップＳ１８０５に進み、ＣＰＵ６０１は、この印刷ジョブを「印刷不許可」と決定し、このルーチンからリターンする。
【００７６】
ステップＳ１８０４においてＹＥＳであれば、ＣＰＵ６０１は、ステップＳ１８０６に進み、コード化データにおいて未だに検索されていない領域があるかどうかを判定する。ＹＥＳであればステップＳ１８０７に進み、ＣＰＵ６０１は、検索未済領域において、ｍ番目のキーワードの検索を実行し、ステップＳ１８０３に戻る。
【００７７】
ステップＳ１８０６においてＮＯ、あるいはステップＳ１８０３においてＮＯであればステップＳ１８０８に進み、ＣＰＵ６０１は、変数ｍに１を加える。ステップＳ１８０９において、ＣＰＵ６０１は、変数ｍが変数ｎより小さいなら、ステップＳ１８０２に戻って、（ｍ＋１）番目のキーワードについて検索を実行する。
【００７８】
ステップＳ１８０９においてＮＯであれば、ＣＰＵ６０１は、今回コード化データを検索した範囲に関し当該印刷ジョブを「印刷可」と決定し、このルーチンからリターンする。
【００７９】
以上説明したように第１の実施形態によれば、以下の点で有利と考えられる。
（１）コントローラ部１０３による印刷処理と、セキュリティーチェック部１０５によるセキュリティーチェック処理とをほぼ並行して進められるので、極秘文書等の印刷制限と、印刷処理の遅延軽減とを両立させることができる。
（２）セキュリティーチェック部１０５をコントローラ部１０３から分離して構成しているため、ソフトウエアおよびハードウエアの観点から、セキュリティーチェック部１０５をオプションとして製品化することができる。すなわち、既存製品の共通バスへと追加して接続可能なようにセキュリティーチェック部１０５を構成すれば、既存製品にも本発明を適用できる利点がある。
（３）「印刷不許可」と決定した時点で、印刷不許可と決定された印刷ジョブの受信を中止するようにしたので、ユーザーのパソコン１０７から無駄に印刷ジョブデータを送信しないようにすることができる。とりわけ、イメージ部分を相当数含んだ印刷ジョブや、数十ページの巨大な文書データの場合には、この効果が顕著になろう。
【００８０】
［第２の実施形態］
第１の実施形態では、各制御部がそれぞれＣＰＵ等を備え、それぞれ独立して動作する構成であった。しかしながら、いくつかの機能部をハードウエア的に統合してもよい。例えば、受信・分岐部１０２をコントローラ部１０３に含め、同一のＣＰＵ、ＲＯＭ、ＲＡＭ、およびローカルバスを用いて動作させてもよい。その場合、ネットワーク接続部もコントローラ部１０３に付属することになろう。
【００８１】
同様に、条件保存部１０６も、セキュリティーチェック部１０５に含めてもよい。また、極端に言えば、複数のプログラムによるマルチタスク動作によって充分なパフォーマンスが得られるのであれば、コントローラ部１０３とセキュリティーチェック部１０５を単一のＣＰＵ、ＲＯＭ、ＲＡＭ、およびローカルバスを用いて動作させてもよい。
【００８２】
何れの場合でも、印刷処理とセキュリティーチェック処理が、ほぼ並行して実行される点では、第１の実施形態と共通する。
【００８３】
このように、第２の実施形態によれば、上述した制御部をより少ない数のグループにまとめ、当該グループ内においては、ＣＰＵ、ＲＯＭ、ＲＡＭ、およびローカルバス等を共通に利用するようにしたので、第１の実施形態に比較し、ＣＰＵ等を削減できるため、コストを削減できる利点がある。
【００８４】
［第３の実施形態］
第１の実施形態では、セキュリティーチェック部１０５の条件チェックプログラム６１２により、印刷ジョブデータが「印刷不許可」と判断された時点で、受信・分岐部１０２における印刷ジョブデータの受信を停止し、「印刷不許可」と判断した時点までの受信データとコード化データを管理者に送信するように構成していた。これにより、ユーザーからの無駄なデータの送信を抑制できる利点はあった。しかしながら、この途中までの受信データとコード化データでは、管理者が十分に調査できないことも考えられる。
【００８５】
そこで、第３の実施形態では、ある印刷ジョブに関してユーザーが送信する印刷ジョブデータをすべて受信してコード化し、「印刷不許可」となった印刷ジョブデータとコード化データをすべて管理者に送信することとした。これによって、管理者は印刷ジョブデータそのものの調査を十分に行なえるようになる。また、「印刷不許可」の印刷ジョブデータを送信した社内ユーザーに対する直接的な対面調査も、充分な根拠に基づいて実行できる利点がある。
【００８６】
なお、第３の実施形態において第１の実施形態と同一または類似の個所は、記載の明瞭化のために省略することとする。なお、同一または類似の個所には同一の参照符号を付す。
【００８７】
図１９は、本実施形態に係る印刷システムの応用例を示す図である。図の（１）において、ユーザーは、印刷を行なうためにＰＣ１０７からプリンタ１００に印刷ジョブデータを送信する。（２）において、プリンタ１００は、条件チェック処理を実行することにより「印刷不許可」と判断するが、すぐにはユーザーからのデータ受信を停止せず、引き続きすべての印刷ジョブデータを受信し、コード化も完了させる。その時点で、ユーザーＰＣ１０７に「印刷不許可」の警告メッセージを送信する。（３）において、プリンタ１００は管理者のＰＣ１０８に、「印刷不許可」となった印刷ジョブに関するすべての受信データとコード化データを送信する。（４）において、管理者は、ＰＣ１０８上に印刷ジョブデータおよびコード化データを表示させ、詳細に調査を行なうことができる。また、必要であれば、問題のユーザーに対して、直接的な対面調査を行なうこともできる。その際には、印刷ジョブデータおよびコード化データを印刷出力して、出力結果を証拠として使用してもよい。
【００８８】
なお、全ての印刷権限を有する許可ユーザーとして管理者を登録しておけば、印刷不許可キーワードが含まれているにもかかわらず、プリンタ１００は印刷ジョブデータおよびコード化データを印刷出力することができる。
【００８９】
また、印刷不許可の原因（不許可キーワードごとの重要度など）に依存して、プリンタ１００は、ユーザーＰＣ１０７への警告メッセージの送信を省いて、管理者のＰＣ１０８にのみ上記データを送信してもよい。これにより、管理者は、いきなり問題のユーザーへの直接的な対面調査を実施することが可能となる。
【００９０】
図２０は、第３の実施形態に係るコントローラ部１０３の受信プログラムの動作を説明するためのフローチャートである。図２０に示したフローチャートは、図１０に示したフローチャートにステップＳ２００５およびステップＳ２００６を追加したものである。
【００９１】
ステップＳ１００２においてＮＯと判定されると、ステップＳ２００５に進み、ＣＰＵ５０１は、印刷ジョブの番号を伴う印刷ジョブデータの受信読み飛ばし指示があったかどうかを判定する。この指示は、指示待機プログラム１１３から送信されるものとする。判定の結果がＹＥＳであればステップＳ２００６に進み、ＣＰＵ５０１は、当該印刷ジョブ番号を有する印刷ジョブデータについて、受信の読み飛ばし処理を実行する。
【００９２】
なお、読み飛ばし処理とは、外部からは印刷ジョブデータを受信したように見せる処理のことであり、例えば、受信バッファに受信データを記憶することなく廃棄し、それ以後の印刷処理も実行しない。このように、指示された印刷ジョブの送信が完了するまで、読み飛ばし処理は続行する。印刷ジョブの終了は、印刷ジョブデータの最後に、プリントコマンドの「ジョブ終了コマンド」が付加されているので、容易に判断できる。
【００９３】
ステップＳ２００６のあと、あるいはステップＳ２００５でＮＯの場合は、ステップＳ１００１に戻る。
【００９４】
図２１は、第３の実施形態に係る指示待機プログラムの動作を説明するためのフローチャートである。図１３に示した指示待機プログラムと比較し、ステップＳ１３０９をＳ２１０９に置き換えた点で相異している。
【００９５】
ステップＳ２１０９において、ＣＰＵ５０１は、受信プログラム５１０に対し、印刷ジョブ番号を指定した読み飛ばし処理を指示する。さらに、トランスレートプログラム５１１、ラスタライズプログラム５１２に対し、それぞれ当該印刷ジョブ番号によって特定される印刷ジョブのトランスレート処理、ラスタライズ処理の停止を指示する。そして、ＣＰＵ５０１は、当該印刷ジョブ番号に基づき、受信バッファ１１０および中間バッファ１１１に記憶されている印刷ジョブのデータ特定し、それぞれ削除する。
【００９６】
図２２は、第３の実施形態に係る条件チェックプログラムの動作を説明するためのフローチャートである。図１７に示したステップＳ１７１１とステップＳ１７１２の部分をステップＳ２２０１ないしステップＳ２２０５へと変更している。
【００９７】
ステップＳ１７０８において「印刷不許可」と判定されると、ステップＳ２２０１に進み、ＣＰＵ６０１は、指示待機プログラム１１３に、印刷ジョブ番号とともに「印刷不許可」を通知する。ステップＳ２２０２において、ＣＰＵ６０１は、コードデータ保存バッファ１２１から、当該印刷ジョブ番号に対応するコード化データを削除する。ステップＳ２２０３において、ＣＰＵ６０１は、当該印刷ジョブ番号に対応する印刷ジョブのすべてについて、受信データおよびコード化データデータを保存領域１２２に保存したかを判定する。すなわち、途中までではなく、最後まで印刷ジョブデータを受信し、コード化も実行する。判定の結果がＮＯであればステップＳ２２０２に戻り、印刷ジョブに関するすべての受信データおよびコード化データデータが保存領域１２２に記憶されるのを待つ。
【００９８】
ステップＳ２２０３においてＹＥＳと判定されると、ステップＳ２２０４に進み、ＣＰＵ６０１は、ユーザーＰＣ１０７に「印刷不許可」の警告メッセージを送信する。ステップＳ２２０５に進み、ＣＰＵ６０１は、保存領域１２２に保存されている「印刷不許可」になった印刷ジョブに関する受信データおよびコード化データを管理者のＰＣ１０８に送信する。そして、ＣＰＵ６０１は、当該受信データおよびコード化データを保存領域１２２から削除するとともに、管理表６１５からも印刷ジョブの記録を削除する。そのあとは、ステップＳ１７０１に戻る。
【００９９】
以上説明したように、第３の実施形態によれば、ユーザーが送信する印刷ジョブデータをすべて受信し、すべてコード化するようにしたので、「印刷不許可」となった印刷ジョブデータとコード化データをすべて管理者に送付することができる。その結果、管理者は、印刷ジョブデータそのものの調査を十分に行なうことが可能となる。また「印刷不許可」の印刷ジョブを送信した社内ユーザーに対し、充分な根拠（印刷ジョブデータやコード化データ）に基づいて直接的に対面調査を行なうこともできる利点がある。
【０１００】
［第４の実施形態］
上述の実施形態では、印刷ジョブを単位として、コントローラ部１０３における処理（トランスレート処理、ラスタライズ処理およびページイメージのスプール処理など）と、チェック部１０５における処理（コード化処理および条件チェック処理）とをほぼ並行して実行していた。とりわけ、印刷ジョブの全ページにわたりセキュリティーに関する問題がなければ、その時点で印刷の実行を指示するように構成していた。
【０１０１】
しかしながら、印刷ジョブの全てにわたってチェックが済むまで、印刷エンジンが待たされてしまう問題がある。すなわち、印刷処理の遅延防止の観点からは、セキュリティーチェックを完了したページについては随時印刷処理を行なった方が、より効果が高いと考えられる。
【０１０２】
そこで、第４の実施形態では、印刷ジョブに含まれるページを単位として、印刷の許可／不許可を判定しつつ、印刷出力処理もページ単位で実行するようにした。これによって、第１の実施形態よりも印刷の高速化を図れる。なお、上述の説明と共通する点ついては同一の参照符号を付すことで説明を省略する。
【０１０３】
図２３は、第４の実施形態に係る指示待機プログラムの動作を説明するためのフローチャートである。
【０１０４】
ステップＳ２３０２において、ＣＰＵ５０１は、セキュリティーチェック部１０５から、特定ページの印刷の許可／不許可の指示が届いたかを判定する。ＹＥＳであればステップＳ２３０３に進み、ＣＰＵ５０１は、管理表５１５に特定ページの許可／不許可を記録し、ステップＳ１３０１に戻る。
【０１０５】
ステップＳ２３０４においてＮＯの場合は、ステップＳ２３０４に進み、ＣＰＵ５０１は、管理表５１５に印刷許可のページが存在するかを判定する。ＹＥＳであればステップＳ２３０５に進み、ＣＰＵ５０１は、そのページのラスタライズが完了しているかを判定する。ＮＯであればステップＳ１３０１に戻る。
【０１０６】
ステップＳ２３０５においてＹＥＳであればステップＳ２３０６に進み、ＣＰＵ６０１は、印刷出力プログラム５１４に、そのページの印刷を指示し、ステップＳ１３０１に戻る。
【０１０７】
ステップＳ２３０４においてＮＯの場合は、ステップＳ２３０７に進み、ＣＰＵ５０１は、管理表５１５に印刷不許可の印刷ジョブが存在するかを判定する。ＹＥＳであればステップＳ２３０８に進み、ＣＰＵ５０１は、そのジョブのラスタライズが完了しているかを判定する。ＮＯであればステップＳ２３０９に進み、トランスレートプログラム５１１およびラスタライズプログラム５１２に対し、それぞれ、当該印刷ジョブに関するトランスレート処理およびラスタライズ処理の停止をそれぞれ指示する。さらに、受信バッファ１１０および中間バッファ１１１に記憶されている当該印刷ジョブのデータを削除する。
【０１０８】
ステップＳ２３０９のあと、あるいはステップＳ２３０８でＹＥＳの場合は、ステップＳ２３１０に進み、スプール領域１１２から当該印刷ジョブのページイメージデータを削除し、管理表５１５からも当該印刷ジョブの記録を削除する。
【０１０９】
ステップＳ２３１０のあと、あるいはステップＳ２３０７でＮＯの場合は、ステップＳ１３０１に戻る。
【０１１０】
図２４は、第４の実施形態に係る印刷出力プログラムの動作を説明するためのフローチャートである。図１４と共通の処理については同一の参照符号を付すことで説明を省略する。ステップＳ２４０２において、ＣＰＵ５０１は、指示待機プログラム１１３から特定ページの印刷指示を受信しているか否かを判定する。ＹＥＳであればステップＳ１４０３およびＳ１４０４を実行する。
【０１１１】
続いて、ステップＳ２４０５において、ＣＰＵ５０１は、スプール領域１１２に保持されている当該ページのページイメージデータを連続的にビデオ信号へと変換し、当該ビデオ信号をエンジン部１０４に送信する。その後、ステップＳ１４０６を実行し、ステップＳ２４０８に進み、ＣＰＵ５０１は、スプール領域１１２から当該ページのページイメージデータを削除する。また、管理表５１５から当該ページの記録を削除する。
【０１１２】
図２５は、条件チェックプログラムの動作を説明するためのフローチャートである。図１７と共通する処理については、同一の参照符号を付すことで説明を省略する。
【０１１３】
ステップＳ１７０８においてＹＥＳと判定されると、ステップＳ２５０９に進み、ＣＰＵ６０１は、コントローラ部１０３の指示待機プログラム１１３に、印刷ジョブ番号とページ番号とともに「印刷可」を通知する。なお、この通知は各ページごとに行なわれる。また、印刷指示済みのページに関する記録は管理表６１５から削除する。
【０１１４】
なおコード化データの検索処理が済んでいないページが存在する場合、当該ページを「印刷可」と判定しない。
【０１１５】
ステップＳ２５１０においてＣＰＵ６０１は、印刷ジョブの検索がすべて終了したかを判定する。ＹＥＳであればステップＳ２５１１に進み、保存領域１２２から、当該印刷ジョブの受信データおよびコード化データを削除する。また、管理表６１５からも当該印刷ジョブの記録を削除する。
【０１１６】
ステップＳ２５１１のあと、あるいはステップＳ２５１０でＮＯの場合は、ステップＳ１７０１に戻る。
【０１１７】
以上説明したように第４の実施形態によれば、印刷ジョブ内のページを単位として、印刷の許可／不許可を判定しつつ、印刷処理を実行するようにした。したがって、印刷ジョブデータの全体についてセキュリティーチェックが済んでから印刷を開始する場合よりも、印刷開始までの待ち時間を短縮できる利点がある。
【０１１８】
［他の実施形態］
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、スキャナ、プリンタ、スキャナ、ＰＣ、複写機、複合機及びファクシミリ装置の如くである。
【０１１９】
なお、本発明は、前述した実施形態の各機能を実現するソフトウェアプログラム（本実施形態では図７ないし２５に示したフローチャートに対応するプログラム）を、システム若しくは装置に対して直接または遠隔から供給し、そのシステム若しくは装置に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【０１２０】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【０１２１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１２２】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１２３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザーに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【０１２４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザーに配布し、所定の条件をクリアしたユーザーに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１２６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１２７】
【図１】図１は、本実施形態に係る印刷装置の例示的なブロック図である。
【図２】図２は、本実施形態に係る受信・分岐部１０２の基本構成例を示す図である。
【図３】図３は、本実施形態に係る条件保存部の構成例を示す図である。
【図４】図４は、本実施形態に係るエンジン部の基本構成例を示す図である。
【図５】図５は、本実施形態に係るコントローラ部の基本構成例を示す図である。
【図６】図６は、本実施形態に係るセキュリティーチェック部の基本構成例を示す図である。
【図７】図７は、本実施形態に係る受信・分岐部１０２の動作を説明するためのフローチャートである。
【図８】図８は、本実施形態に係る条件保存部１０６の動作を説明するためのフローチャートである。
【図９】図９は、本実施形態に係るエンジン部１０４の動作を説明するためのフローチャートである。
【図１０】図１０は、本実施形態に係るコントローラ部１０３の受信プログラムの動作を説明するためのフローチャートである。
【図１１】図１１は、コントローラ部１０３のトランスレートプログラムの動作を説明するためのフローチャートである
【図１２】図１２は、本実施形態に係るラスタライズプログラムの動作を説明するためのフローチャートである。
【図１３】図１３は、本実施形態に係る指示待機プログラムの動作を説明するためのフローチャートである。
【図１４】図１４は、本実施形態に係る印刷出力プログラムの動作を説明するためのフローチャートである。
【図１５】図１５は、本実施形態に係るセキュリティーチェック部１０５の受信プログラムの動作を説明するためのフローチャートである。
【図１６】図１６は、本実施形態に係るコード化プログラムの動作を説明するためのフローチャートである。
【図１７】図１７は、本実施形態に係る条件チェックプログラムの動作を説明するためのフローチャートである。
【図１８】図１８は、本実施形態係る条件検索処理（Ｓ１７０６）の一例を説明するためのフローチャートである。
【図１９】図１９は、本実施形態に係る印刷システムの応用例を示す図である。
【図２０】図２０は、第３の実施形態に係るコントローラ部１０３の受信プログラムの動作を説明するためのフローチャートである。
【図２１】図２１は、第３の実施形態に係る指示待機プログラムの動作を説明するためのフローチャートである
【図２２】図２２は、第３の実施形態に係る条件チェックプログラムの動作を説明するためのフローチャートである。
【図２３】図２３は、第４の実施形態に係る指示待機プログラムの動作を説明するためのフローチャートである。
【図２４】図２４は、第４の実施形態に係る印刷出力プログラムの動作を説明するためのフローチャートである。
【図２５】図２５は、条件チェックプログラムの動作を説明するためのフローチャートである。
【図１】
2005169672.tif 000003
【図２】
2005169672.tif 000004
【図３】
2005169672.tif 000005
【図４】
2005169672.tif 000006
【図５】
2005169672.tif 000007
【図６】
2005169672.tif 000008
【図７】
2005169672.tif 000009
【図８】
2005169672.tif 000010
【図９】
2005169672.tif 000011
【図１０】
2005169672.tif 000012
【図１１】
2005169672.tif 000013
【図１２】
2005169672.tif 000014
【図１３】
2005169672.tif 000015
【図１４】
2005169672.tif 000016
【図１５】
2005169672.tif 000017
【図１６】
2005169672.tif 000018
【図１７】
2005169672.tif 000019
【図１８】
2005169672.tif 000020
【図１９】
2005169672.tif 000021
【図２０】
2005169672.tif 000022
【図２１】
2005169672.tif 000023
【図２２】
2005169672.tif 000024
【図２３】
2005169672.tif 000025
【図２４】
2005169672.tif 000026
【図２５】
2005169672.tif 000027