(57)【特許請求の範囲】
【請求項１】
情報処理装置からの印刷指示を受けてアプリケーション実行手段が出力したジョブデータを受信し、印刷を実行させるデータ処理装置であって、
前記ジョブデータから前記情報処理装置および該情報処理装置を使用するユーザの少なくとも１つを識別するための識別情報を含むジョブ情報データとイメージデータとを分離して出力する仮想プリンタドライバ手段と、
出力された前記識別情報または前記イメージデータの内容から、対応付けテーブルを参照して出力先となる印刷装置を決定する出力先決定手段と、
設定された分類情報を用い、決定された前記出力先がどのタイプに該当するかを決定する出力先タイプ決定手段と、
前記イメージデータの内容に対して、各々が異なる変更である改変処理を行う１以上の改変処理手段と、
分類されるタイプごとに設定された改変処理の内容を参照して、決定された前記タイプからどの改変処理を実行すべきかを判断する判断手段と、
判断された前記改変処理を実行する前記改変処理手段により改変処理された前記イメージデータと、前記ジョブ情報データとを用いて出力データを生成し、前記出力データを決定された前記印刷装置へ送信する印刷指示手段とを含み、
前記分類情報および前記改変処理の内容が設定変更可能とされ、前記改変処理手段が追加または削除可能とされていることを特徴とする、データ処理装置。
【請求項２】
各前記改変処理手段は、各改変処理を行うためのモジュールを読み込むことにより生成され、前記モジュールの追加または削除により前記改変処理手段が追加または削除される、請求項１に記載のデータ処理装置。
【請求項３】
判断された前記改変処理から、該改変処理を実行させるモジュールを読み込むことにより前記改変処理手段を生成する第１生成手段を含む、請求項２に記載のデータ処理装置。
【請求項４】
すべての前記モジュールを読み込むことにより該モジュールごとに前記改変処理手段を生成する第２生成手段を含む、請求項２に記載のデータ処理装置。
【請求項５】
前記１以上の改変処理手段のうちの第１の改変処理手段は、前記イメージデータの内容である文書中に、指定された文字列が存在するか否かを判定し、前記文字列が存在すると判定した場合に前記文書全体を読めない状態に変更する、請求項１〜４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記第１の改変処理手段は、前記文書全体を黒色で塗りつぶす処理を実行することにより、前記文書全体を読めない状態に変更する、請求項５に記載のデータ処理装置。
【請求項７】
前記１以上の改変処理手段のうちの第２の改変処理手段は、前記イメージデータの内容である文書中に、指定された文字列が存在するか否かを判定し、前記文字列が存在すると判定した場合に前記文書にマーキングを行う、請求項１〜６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記１以上の改変処理手段のうちの第３の改変処理手段は、前記イメージデータの内容である文書中に、指定された文字列が存在するか否かを判定し、前記文字列が存在すると判定した場合に前記仮想プリンタドライバ手段により抽出された前記ユーザの識別情報であるユーザ名を前記文書に付加する、請求項１〜７のいずれか１項に記載のデータ処理装置。
【請求項９】
情報処理装置からの印刷指示を受けてアプリケーション実行手段が出力したジョブデータを受信し、印刷を実行させるためのコンピュータ可読なプログラムであって、前記プログラムは、前記コンピュータに対し、
前記ジョブデータから前記情報処理装置および該情報処理装置を使用するユーザの少なくとも１つを識別するための識別情報を含むジョブ情報データとイメージデータとを分離して出力するステップと、
出力された前記識別情報または前記イメージデータの内容から、対応付けテーブルを参照して出力先となる印刷装置を決定するステップと、
設定された分類情報を用い、決定された前記出力先がどのタイプに該当するかを決定するステップと、
分類されるタイプごとに設定された改変処理の内容を参照して、決定された前記タイプからどの改変処理を実行すべきかを判断するステップと、
前記イメージデータの内容に対して各々が異なる変更である改変処理を実行させる複数のモジュールのうち、判断された前記改変処理から該改変処理を実行させるモジュールを読み込むことにより改変処理手段を生成するステップと、
前記改変処理手段により改変処理された前記イメージデータと、前記ジョブ情報データとを用いて出力データを生成し、前記出力データを決定された前記印刷装置へ送信するステップとを実行させる、プログラム。
【請求項１０】
情報処理装置からの印刷指示を受けてアプリケーション実行手段が出力したジョブデータを受信し、印刷を実行させるためのコンピュータ可読なプログラムであって、前記プログラムは、前記コンピュータに対し、
前記ジョブデータから前記情報処理装置および該情報処理装置を使用するユーザの少なくとも１つを識別するための識別情報を含むジョブ情報データとイメージデータとを分離して出力するステップと、
前記イメージデータの内容に対して各々が異なる変更である改変処理を実行させる複数のモジュールすべてを読み込むことにより該モジュールごとに改変処理手段を生成するステップと、
出力された前記識別情報または前記イメージデータの内容から、対応付けテーブルを参照して出力先となる印刷装置を決定するステップと、
設定された分類情報を用い、決定された前記出力先がどのタイプに該当するかを決定するステップと、
分類されるタイプごとに設定された改変処理の内容を参照して、決定された前記タイプからどの改変処理を実行すべきかを判断するステップと、
判断された前記改変処理を実行する前記改変処理手段により改変処理された前記イメージデータと、前記ジョブ情報データとを用いて出力データを生成し、前記出力データを決定された前記印刷装置へ送信するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置から出力されたデータの出力先を制御するデータ処理装置およびその制御を実行するためのコンピュータ可読なプログラムに関する。
【背景技術】
【０００２】
ネットワーク技術の普及に伴い、オフィス環境では、複数のパーソナルコンピュータ(PC)がネットワークを介してプリンタと接続され、プリンタが共有されている。プリンタが共有される場合、複数のＰＣから同時に印刷要求が送信されても、これを適切に処理し、プリンタが順序良く印刷を実行するように、ネットワークには、印刷処理を管理するためのプリンタサーバが接続される。
【０００３】
このような環境においては、複数のユーザが、各ＰＣを使用して印刷要求し、それをプリンタが受け付け、印刷出力することになるが、出力物がセキュリティレベルの点で問題がない場合や、個人情報等に関連しない場合であれば、印刷出力したとしても問題は生じない。他のユーザに見られたとしても問題はないからである。しかしながら、出力物が機密文書等である場合、秘密保持義務を負わない他のユーザに見られてしまうと、重大な損失が発生する場合がある。
【０００４】
近年、ネットワークに接続されるプリンタには、印刷機能のほか、コピー機能、ファクシミリ機能、スキャナ機能を搭載したＭＦＰ(Multi-Function Peripheral)が採用されるようになっている。ＭＦＰは、ＰＣからのファックス送信要求を受けて、文書をファックス送信することができるが、上記のような環境では、ユーザが社内文書を誤って社外へファックス送信してしまう可能性があり、この場合も重大な損失を発生させることになる。
【０００５】
一般に、オフィス環境におけるネットワークには、複数のプリンタやＭＦＰが接続されている。そこで、ＰＣから出力された印刷要求やファックス送信要求を、ＰＣで指定したプリンタやＭＦＰにそのまま送信して処理させるのではなく、適切なプリンタ等を選択し、その適切なプリンタ等へ出力して処理させるという出力先を制御するための装置が提案されている（例えば、特許文献１参照）。
【０００６】
この装置は、ネットワークを介して複数のクライアントコンピュータの印刷出力を管理するデータ処理装置であって、仮想プリンタドライバと、複数のリモートドライバとを実装している。仮想プリンタドライバは、ネットワークを介して印刷要求を受領し、受領した印刷要求に対応する印刷データからページイメージとして中間ファイルを作成し、クライアントコンピュータまたはそのユーザに対応付けられた出力先プリンタ情報に対応するリモートドライバを選択して呼び出す。
【０００７】
呼び出されたリモートドライバは、作成された中間ファイルからＲＡＷデータを含む出力データを作成し、対応するリモートプリンタに出力して、出力データを印刷させる。これにより、クライアントコンピュータやユーザに対応付けられた出力先へ変更している。
【０００８】
また、この仮想プリンタドライバは、中間ファイルに含まれている文字列（テキストデータ）を抽出し、抽出された文字列中に所定のキーワードが含まれているか否かを判定することができるものとされている。所定のキーワードが含まれている場合には、仮想プリンタドライバは、そのキーワードに対応付けられている印刷条件を判定し、判定された印刷条件を設定する。そして、仮想プリンタドライバは、その印刷条件をリモートドライバに設定し、上記のＲＡＷデータの作成、ＰＤＬ(Page Description Language)コマンド追加の処理等をリモートドライバに実行させる。これにより、印刷データに含まれている文字列に応じて出力先を変化させている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した従来の装置では、クライアントコンピュータ固有の情報、そのコンピュータを操作するユーザの情報から、出力先となるプリンタを決定し、その決定したプリンタへ変更して印刷を実行することができる。
【００１０】
出力先が複数あり、そのいくつかは、誰でも入室可能な場所に設置されているような場合に、そのいくつかのうちの１つに社外秘の文書が印刷出力されてしまうと、社外秘情報を含む文書が誰でも目にすることができることから、セキュリティ上の問題が生じる。この従来の装置では、「社外秘」という文字列が含まれている場合、地紋印刷が有効にされる等の文書を改変し出力することが可能であるため、不正コピーを抑止し、このセキュリティ上の問題を解決することができる。ここで、地紋印刷とは、出力物をコピーした場合に、コピーした印刷物の背景に図形や文字が浮き上がるように地紋を印刷する機能である。
【００１１】
しかしながら、この従来の装置は、文書を改変するためのルールをもつ機能が１つのモジュールとして組み込まれているため、別のルールを容易に追加したり、登録されているルールを容易に削除したり、登録されているルールを容易に変更することはできない。ルールを追加等するには、モジュール自体を交換する必要があるが、ルールが追加等されるたびにモジュールが交換されることになるため、保守が難しいという問題がある。また、このモジュールは、インストールにより組み込まれることから、インストール後に別のルールを追加したり、削除したり、変更を行うことはできない。
【００１２】
そこで、改変ルールの追加、削除、変更を容易に行うことができ、保守を容易にし、インストール後であっても改変ルールの追加、削除、変更を可能にする装置の提供が望まれていた。
【課題を解決するための手段】
【００１３】
本発明は、上記課題に鑑み、情報処理装置からの印刷指示を受けてアプリケーション実行手段が出力したジョブデータを受信し、印刷を実行させるデータ処理装置において、ジョブデータから情報処理装置および該情報処理装置を使用するユーザの少なくとも１つを識別するための識別情報を含むジョブ情報データとイメージデータとを分離して出力する仮想プリンタドライバ手段と、出力された識別情報またはイメージデータの内容から、対応付けテーブルを参照して出力先となる印刷装置を決定する出力先決定手段と、イメージデータとジョブ情報データを用いて出力データを生成し、出力データを決定された印刷装置へ送信する印刷指示手段とに加えて、出力先タイプ決定手段と、１以上の改変処理手段と、判断手段とを備えるデータ処理装置が提供される。
【００１４】
出力先タイプ決定手段は、設定された分類情報を用い、決定された出力先がどのタイプに該当するかを決定する。１以上の改変処理手段は、イメージデータの内容に対して、各々が異なる変更である改変処理を行う。判断手段は、分類されるタイプごとに設定された改変処理の内容を参照して、決定されたタイプからどの改変処理を実行すべきかを判断する。この分類情報および改変処理の内容は、設定変更可能とされており、改変処理手段は、追加または削除可能とされている。
【００１５】
データ処理装置の管理者等は、ユーザの要望等により、出力先をどのように分類するかを分類情報の設定を変更することで変更することができ、改変処理の内容も設定を変更することにより変更することができる。また、管理者等は、それら設定変更により不要になった改変処理手段は削除し、新しく改変処理手段を追加した場合はそれらの設定を変更することにより当該新しい改変処理手段に改変処理を実行させることができる。このように、本発明の装置を提供することで、改変ルールの追加、削除、変更が容易となり、インストール後であっても改変ルールの追加、削除、変更が可能となる。
【００１６】
各改変処理手段は、各改変処理を行うためのモジュールを読み込むことにより生成され、モジュールの追加または削除により改変処理手段を追加または削除することができる。モジュールは、改変処理手段以外の上記各手段として機能させるためのプログラムとは別個に作成することができ、例えば、ダイナミックリンクライブラリ(DLL)として実装することができる。これにより、ソフトウェア保守が容易となる。
【００１７】
データ処理装置は、上記の判断された改変処理から、該改変処理を実行させるモジュールを読み込むことにより改変処理手段を生成する第１生成手段を含むことができる。これに限られるものではなく、すべてのモジュールを読み込むことによりモジュールごとに改変処理手段を生成する第２生成手段を含み、生成した改変処理手段の中から必要な改変処理手段を選択して所望の改変処理を行うことも可能である。なお、必要なモジュールのみを読み込む第１生成手段を採用する方が、メモリ使用量を抑制し、処理速度を向上させる点で望ましい。
【００１８】
ある１つの改変処理手段は、イメージデータの内容である文書中に、予め指定された文字列が存在するか否かを判定し、その文字列が存在すると判定した場合に文書全体を読めない状態に変更するという改変処理を行う。その改変処理は、文書全体を黒色で塗りつぶす処理とすることができる。これにより、秘密保持義務のない者が見得る状態にある場所に設置されている印刷装置から誤って出力された場合であっても、その者が文書を読むことが出来ないため、セキュリティを確保することができる。
【００１９】
それとは別の改変処理手段は、イメージデータの内容である文書中に、予め指定された文字列が存在するか否かを判定し、その文字列が存在すると判定した場合に文書にマーキングを行う。マーキングは、「confidential」等の文字列を付加するものとすることができる。これにより、その文書が部外秘のものであること等を容易に認識することができる。
【００２０】
さらに別の改変処理手段は、イメージデータの内容である文書中に、予め指定された文字列が存在するか否かを判定し、その文字列が存在すると判定した場合に、仮想プリンタドライバ手段により抽出されたユーザの識別情報であるユーザ名を文書に付加する。これにより、その文書を誰が出力したものであるかを容易に認識することができ、他の者による持ち去りを防止することができる。
【００２１】
本発明では、上記のデータ処理装置のほか、コンピュータをデータ処理装置として機能させるためのプログラムを提供することも可能である。このプログラムは、改変処理手段以外の各手段が行う処理を処理ステップとしてコンピュータに実行させる。すなわち、ジョブ情報データとイメージデータを分離して出力するステップ、出力先を決定するステップ、タイプを決定するステップ、どの改変処理を実行すべきかを判断するステップ、改変処理手段を生成するステップ、判断された改変処理を実行する改変処理手段により改変処理されたイメージデータとジョブ情報データを用いて出力データを生成し、決定された出力先へ送信するステップを含む。
【００２２】
また、プログラム以外に、このプログラムがコンピュータに実行させる処理ステップを含む方法や、このプログラムが記録された記録媒体を提供することも可能である。
【図面の簡単な説明】
【００２３】
【図１】本実施形態のデータ処理装置を含むプリンタネットワークを示した図。
【図２】本実施形態のデータ処理装置の機能ブロックを示した図。
【図３】本実施形態のデータ処理装置が備える文書改変部の１つの構成例を示した図。
【図４】図３に示す文書改変部が行う１つの改変処理を示したイメージ図。
【図５】図３に示す文書改変部が行う別の改変処理を示したイメージ図。
【図６】図２に示すデータ処理装置が行う１つのデータ処理の流れを示したフローチャート図。
【図７】図３に示す文書改変部が行う１つの改変処理の流れを示したフローチャート図。
【図８】本実施形態のデータ処理装置が備える文書改変部の別の構成例を示した図。
【図９】図８に示す文書改変部が行う１つの改変処理を示したイメージ図。
【図１０】図８に示す文書改変部が行う別の改変処理を示したイメージ図。
【図１１】図８に示す文書改変部を備えるデータ処理装置が行う改変処理の流れを示したフローチャート図。
【発明を実施するための形態】
【００２４】
図１は、本実施形態のデータ処理システムを含むプリンタネットワークを示した図である。プリンタネットワーク１００は、オフィス等に配置される複数の情報処理装置１１２〜１１８がネットワーク１３０に接続されて構成されている。また、ネットワーク１３０には、データ処理装置１１０のほか、図示しないプリンタサーバが接続され、さらに、ＭＦＰ、レーザプリンタ、インクジェットプリンタといったリモートプリンタ１２２〜１２８が接続されている。
【００２５】
複数の情報処理装置１１２〜１１８は、プリンタサーバへ印刷要求およびその印刷要求に対応する印刷データを送信し、リモートプリンタ１２２〜１２８の１つに印刷を実行させるが、この実施形態では、データ処理装置１１０が、そのプリンタサーバへ送信される印刷要求および印刷データを取得するように構成されている。
【００２６】
データ処理装置１１０は、情報処理装置１１２〜１１８からの印刷要求および印刷データを取得するにあたって、ＲＤＰ(Remote Desktop Protocol)等の適切な遠隔接続プロトコルを使用してトランザクションを行うことが可能とされている。
【００２７】
データ処理装置１１０は、情報処理装置１１２〜１１８から印刷要求および印刷データを取得し、情報処理装置１１２〜１１８等に割り当てられたリモートプリンタ１２２〜１２８を判断し、その割り当てられたリモートプリンタ１２２〜１２８に宛てて、印刷データに対応するＲＡＷデータを作成する。このＲＡＷデータは、ＰＤＬコマンドの追加処理等が行われて出力データとされ、プリンタサーバを介して指定されたリモートプリンタへ送信される。その結果、データ処理装置１１０は、情報処理装置１１２〜１１８等に対応した適切なリモートプリンタ１２２〜１２８によって印刷処理を実行させることができる。
【００２８】
プリンタネットワークを構成する情報処理装置１１２〜１１８としては、ＰＣやワークステーション、スマートフォン等の携帯情報端末を挙げることができる。情報処理装置１１２〜１１８は、シングルコア、マルチコアのＣＰＵを搭載し、ＲＡＭ、ＲＯＭ、ハードディスク装置といった記憶装置、ネットワークインタフェースカード(NIC)といった通信装置を含み、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｍａｃ  ＯＳ（登録商標）等の適切なＯＳの下で、リモートプリンタ１２２〜１２８へ印刷処理を依頼している。
【００２９】
データ処理装置１１０およびプリンタサーバは、情報処理装置１１２〜１１８からの依頼を受けて適切な処理を行うことから、好ましい実施形態ではサーバ装置として実装することができる。このため、情報処理装置１１２〜１１８は、処理を依頼するクライアント装置とすることができ、ファットクライアント装置またはシンクライアント装置として実装することができる。ここで、ファットクライアント装置は、アプリケーションプログラムを実装し、各種処理を完結する装置で、シンクライアント装置は、ネットワーク接続モジュール、ユーザ認証機能、セッション生成モジュール等、専らデータ処理装置１１０に対してサービス要求を発行し、処理結果を受領して印刷出力を要求する機能のみを有する装置である。
【００３０】
情報処理装置１１２〜１１８がファットクライアント装置として実装される場合、ハードディスク装置等の記憶装置からアプリケーションプログラムおよびデータをＲＡＭに読み出し、ＣＰＵがそのアプリケーションプログラムを実行することにより、文書、イメージ、マルチメディア、またはこれらが複合的に組み合わされた電子データとして印刷対象となる印刷データを生成する。そして、この印刷データを印刷要求とともにデータ処理装置１１０へ送り、リモートプリンタ１２２〜１２８の決定、後述する改変処理を実行させる。
【００３１】
情報処理装置１１２〜１１８がシンクライアント装置として実装される場合は、アプリケーションプログラムがデータ処理装置１１０に実装されているとき、データ処理装置１１０にアプリケーションプログラムを実行させ、印刷データを作成する処理を行わせ、それが完了したことの通知を受けて、データ処理装置１１０に対して印刷要求を発行する。これを受けて、データ処理装置１１０は、リモートプリンタの決定、後述する改変処理を実行する。
【００３２】
データ処理装置１１０は、情報処理装置１１２〜１１８と同様に、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク装置、ＮＩＣを含み、適切なＯＳによる制御の下、印刷データの出力先を制御し、改変処理を行う。また、プリンタサーバも同様の、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク装置、ＮＩＣを含み、各リモートプリンタを管理し、情報処理装置１１２〜１１８からの印刷要求に基づいて、データ処理装置１１０より送信される印刷要求を受領し、出力先として決定されたリモートプリンタ１２２〜１２８に対して印刷データを送り、印刷ジョブを実行させる。
【００３３】
プリンタサーバは、リモートプリンタ１２２〜１２８ごとに、各リモートプリンタに対応したプリンタドライバを有する。データ処理装置１１０からの印刷要求の受領、およびリモートプリンタ１２２〜１２８への印刷データの送付は、出力先として決定されたリモートプリンタ１２２〜１２８に対応したプリンタドライバによって制御される。この実施形態では、プリンタサーバを独立した装置として実装しているが、これに限られるものではなく、データ処理装置１１０にプリンタサーバアプリケーションとして実装されていてもよい。
【００３４】
リモートプリンタ１２２〜１２８のうち、レーザプリンタおよびインクジェットプリンタは、ＮＩＣを有し、プリンタサーバからの印刷データを、ネットワーク１３０を介して受領し、印刷ジョブを実行する。ＭＦＰは、ネットワークボードによりネットワーク１３０に接続されたリモートプリンタとされていてもよく、プリンタサーバの機能を備えるものとされていてもよい。
【００３５】
レーザプリンタは、レーザ光を照射する露光装置、レーザ光の照射により潜像が表面に形成される感光体ドラム、感光体ドラムの表面を帯電させる帯電ユニット、感光体ドラムの表面に形成された潜像を顕像化するためにトナーを付着し現像を行う現像ユニット、現像により形成されたトナー像を紙に転写する転写ユニット、転写されたトナー像を紙に定着させる定着ユニットを含んで構成される。ＭＦＰも、この構成を採用する電子写真方式のプリンタを備えることができる。
【００３６】
インクジェットプリンタは、各色のインクを収容したインクカートリッジ、インクカートリッジに収容された各色のインクを細かい粒として所定位置に滴下させる複数の穴が設けられたプリントヘッド、インクカートリッジを載せるためのキャリッジ、キャリッジを移動させるために動力を与えるキャリッジ駆動モータ、その動力をキャリッジへ伝達する駆動ベルト、移動方向を一定の方向にするためのガイドレール、紙を一定速度で給紙する紙送り機構を含んで構成される。
【００３７】
ネットワーク１３０は、１００Ｂａｓｅ−ＴＸや１０００Ｂａｓｅ−ＴＸ等のイーサネット（登録商標）、光ネットワーク、ＩＥＥＥ８０２．１１等の規格の無線ネットワークを含んで構成することができる。ネットワーク１３０は、フレームまたはＴＣＰ／ＩＰに基づくパケット通信によって相互通信を行う。このネットワーク１３０は、ＬＡＮのほか、ＶＰＮ(Virtual Private Network)等によるセキュア環境下でインターネット等の広域ネットワークを含んで構成されていてもよい。
【００３８】
情報処理装置１１２〜１１８等に対してリモートプリンタ１２２〜１２８を割り当てる際には、情報処理装置１１２〜１１８等の固有の情報を用いることができる。情報処理装置１１２〜１１８の固有の情報としては、インターネットプロトコル(IP)において、パケットを送受信する情報処理装置１１２〜１１８を判別するために割り振られたＩＰアドレス、情報処理装置１１２〜１１８に一意に割り当てられるＭＡＣ(Media Access Control)アドレス、情報処理装置１１２〜１１８に付されたコンピュータ名を挙げることができる。また、情報処理装置１１２〜１１８を使用するユーザ情報を割り当てることもでき、このユーザ情報としては、ユーザがサービスを利用する際に入力したログイン名を挙げることができる。ユーザ情報は、別途設けられるＩＣカードリーダにより読み取られた利用者を識別するための利用者名や利用者番号等とすることもできる。
【００３９】
また、印刷する文書の特定の内容に対してリモートプリンタ１２２〜１２８を割り当てることもできる。特定の文字列ごとにリモートプリンタ１２２〜１２８が割り当てられる場合、印刷するイメージデータの内容に、どの特定の文字列が含まれるかを調べ、その文字列に対して割り当てられたリモートプリンタを選択し、印刷を実行させることができる。
【００４０】
これらは、対応付けテーブル等として、データ処理装置１１０の管理者等が適切なデータベースを使用して入力することができる。一例としては、情報処理装置１１２〜１１８のＩＰアドレスと、リモートプリンタ１２２〜１２８を識別するためのプリンタ名とを対応付け、対応付けテーブルに登録することができる。
【００４１】
図１には、情報処理装置１１２とリモートプリンタ１２２が破線で示されたロケーション１４０に存在し、情報処理装置１１４、１１６とリモートプリンタ１２４、１２６が破線で示されたロケーション１５０に存在し、情報処理装置１１８とリモートプリンタ１２８が破線で示されたロケーション１６０に存在しているのが示されている。このため、リモートコンピュータ１２２〜１２８の割り当ては、情報処理装置ごとに行うことに限られるものではなく、情報処理装置グループまたはユーザグループごとに行うことも可能である。この場合、グループを識別するためのグループＩＤを用い、上記のような対応付けテーブルにプリンタ名と対応付けて登録することができる。
【００４２】
図２は、本実施形態のデータ処理装置の機能ブロック図である。データ処理装置１１０は、図２に示すように、複数の機能手段を含み、これらの機能手段は、ＲＡＭ等にプログラムが読み出され、ＣＰＵがそのプログラムを実行することによりコンピュータ上に実現される。
【００４３】
データ処理装置１１０は、情報処理装置１１２ａ〜１１２ｃからの処理要求および印刷要求を受け付けて処理を実行し、適切なリモートプリンタを選択し、そのリモートプリンタに印刷を実行させることから、図２に示すように、情報処理装置１１２ａ〜１１２ｃと、リモートプリンタ１２２ａ〜１２２ｃとに接続される。
【００４４】
データ処理装置１１０は、データ処理部２１０と、アプリケーション実行部２１２とを含んで構成される。これらは、図２に示すように一体として構成することもできるし、破線をネットワーク境界として、アプリケーション実行部２１２を、別途設けられるターミナルサーバに実装し、データ処理部２１０のみをデータ処理装置１１０として実装することも可能である。
【００４５】
アプリケーション実行部２１２は、アプリケーション２１４と、印刷要求元通知部２１６とを含んで構成される。このアプリケーション実行部２１２は、情報処理装置１１２ａ〜１１２ｃからの処理要求および印刷要求を、ネットワーク１３０を介して受領して処理を実行し、実行結果を作成する。この実行結果は、アプリケーション２１４によるプリント指令イベントの発生に応答して、ＧＤＩ(Graphical Device Interface)等のＡＰＩ(Application Programming Interface)コールを経てプリントジョブのジョブデータとされる。そして、このジョブデータは、データ処理部２１０へ送付される。
【００４６】
アプリケーション２１４は、プリント指令モジュールとして実装され、情報処理装置１１２ａ〜１１２ｃからの印刷要求を受領すると、データ処理部２１０に対して、新たなジョブが開始したことを通知する。
【００４７】
印刷要求元通知部２１６は、印刷要求を送信した印刷要求元を特定する情報（印刷要求元情報）を情報処理装置１１２ａ〜１１２ｃから受領し、データ処理部２１０に含まれる発送処理部２４０に対して、この印刷要求元情報および開始したジョブを固有に識別するためのプロセスＩＤを送付する。これにより、発送処理部２４０が、印刷処理を実行した印刷要求元のアプリケーションと同等の権限を有することができ、その印刷要求元に対して、印刷データの出力先であるリモートプリンタを特定する情報（出力先情報）や、印刷枚数等の印刷情報を表示することができる。
【００４８】
データ処理部２１０は、仮想プリンタドライバ２１８と、ジョブ格納部２２６と、発送処理部２４０とを含んで構成される。
【００４９】
仮想プリンタドライバ２１８は、アプリケーション実行部２１２のアプリケーション２１４からの呼び出しにより起動され、アプリケーション２１４から送付されるジョブデータを受領して処理を開始する。この仮想プリンタドライバ２１８は、上記のプロセスＩＤを生成し、そのプロセスＩＤをアプリケーション実行部２１２の印刷要求元通知部２１６へ送付し、発送処理部２４０に対してプロセスＩＤおよび印刷要求元情報を通知させる。
【００５０】
ジョブデータは、印刷要求および印刷データから得られるイメージデータおよびジョブ情報データを含んで構成される。イメージデータは、ビットマップ、ＪＰＥＧ(Joint Photographic Experts Group)、ＧＩＦ(Graphics Interchange Format)、描画コードを含むＥＭＦ(Enhanced MetaFile)、Ｐｏｓｔｓｃｒｉｐｔ（登録商標）、ＰＤＦ(Portable Document Format)、ＸＰＳ(XML Paper Specification)等のイメージフォーマットデータを含むことができる。ジョブ情報データは、印刷要求を送信した印刷要求元を固有に識別する上述したようなＩＰアドレスやログイン名といった情報処理装置１１２ａ〜１１２ｃおよびそれら情報処理装置１１２ａ〜１１２ｃを使用するユーザを識別するための識別情報、イメージデータの面付け情報、マージン、サイズ設定、ページ数、カラー／モノクロ等の印刷設定情報、文書名等を含んで構成される。
【００５１】
仮想プリンタドライバ２１８は、仮想プリント管理部２２０と、ジョブ情報データ抽出部２２２と、仮想描画部２２４とを含んで構成される。仮想プリンタドライバ２１８が、アプリケーション２１４からジョブデータを受領すると、仮想プリント管理部２２０を呼び出す。仮想プリント管理部２２０は、ジョブ情報データ抽出部２２２を呼び出し、ジョブデータを構成するジョブ情報データとイメージデータとを分離し、イメージデータをジョブ格納部２２６に格納させ、ジョブ情報データをプロセスＩＤと関連付けて、ＲＡＭやレジスタ等の一時記憶装置、またはハードディスク装置、ＥＰＲＯＭやＥＥＰＲＯＭ等の不揮発記憶装置に格納させる。
【００５２】
また、仮想プリント管理部２２０は、仮想描画部２２４を呼び出し、イメージデータをジョブに対応付けて処理するための記憶空間を、作業空間２３０ａ〜２３０ｃとして確保させる。作業空間２３０ａ〜２３０ｃは、データ処理部２１０が管理するＲＡＭ等の記憶空間の適切な容量を割り当てることにより形成され、例えば、仮想スプーラとして参照することができる。
【００５３】
ジョブ情報データ抽出部２２２は、一度ジョブ格納部２２６に格納したジョブデータからジョブ情報データを抽出し、発送処理部２４０のプライベートインスタンス２４０ａ〜２４０ｃのうち関連する印刷指示部２４４に渡す。
【００５４】
仮想描画部２２４は、ジョブ格納部２２６に格納されているイメージデータを作業空間２３０ａ〜２３０ｃに移動するが、移動後、ジョブ格納部２２６を空にし、アプリケーション実行部２１２に対してイメージ処理終了を通知する。アプリケーション２１４は、仮想描画部２２４からイメージ処理終了の通知を受領すると、ジョブ格納部２２６に対する排他管理を解除し、後続する印刷要求の処理を実行することが可能となる。排他管理としては、種々の手法を採用することができ、その一例として、セマフォや、同調クラス等を利用して実装することができる。他の例としては、アプリケーション実行部２１２のアプリケーション２１４が提供するＧＵＩ(Graphical User Interface)を、イベントを受領しない形式に変更して表示することで、簡易的に排他管理を行うことができる。
【００５５】
図２に示す実施形態では、仮想プリンタドライバ２１８のジョブ情報データ抽出部２２２が、単一の機能処理部として説明されているが、これを複数実装し、複数のジョブ情報データ抽出部を並列的に動作させて、多数のページやデータ量の多いイメージデータを含むジョブデータを効率的に処理することができる。この場合、各ジョブ情報データ抽出部は、排他管理により、イメージデータをジョブ格納部２２６に順次格納する。
【００５６】
ジョブ格納部２２６は、プリンタバッファまたはスプールファイルを格納する記憶領域として実装することができる。仮想描画部２２４が、イメージデータ２３４を作業空間２３０ａへ移動すると、そのイメージデータ２３４は、イメージ処理部２３６へ送付される。イメージ処理部２３６は、ジョブごとに生成される作業空間２３０ａのイメージデータおよびジョブ情報データ抽出部２２２により抽出された作業空間２３０ａ上のジョブ情報データ２３２を取得し、ページ割り当て、面付け等の処理を実行する。
【００５７】
仮想プリンタドライバ２１８は、アプリケーション実行部２１２からジョブデータを受領すると、そのジョブのための発送処理部２４０のプライベートインスタンス２４０ａ〜２４０ｃを生成し、プライベートインスタンスごとに出力先を決定する処理を実行させる。ジョブごとに起動されたプライベートインスタンス２４０ａ〜２４０ｃは、決定された出力先のリモートプリンタ１２２〜１２８に対応するリモートドライバを呼び出し、作業空間２３０ａ〜２３０ｃから受領したイメージデータ、ジョブ情報データに含まれる面付けおよび印刷設定情報を使用して、リモートプリンタ１２２ａ〜１２２ｃに固有のＲＡＷ形式に変換し、ＲＡＷ形式の出力データを送付する。
【００５８】
イメージ処理部２３６は、リモートドライバ２５０Ａ〜２５０Ｃおよび描画プロセッサを含む描画処理モジュールとして実装することができる。イメージ処理部２３６は、イメージデータが、描画コードを含むＥＭＦ、ＰＤＦ、Ｐｏｓｔｓｃｒｉｐｔ（登録商標）、ＸＰＳ等のイメージフォーマットである場合、描画プロセッサを呼び出して処理を実行することができる。また、イメージ処理部２３６は、イメージデータが、ビットマップ、ＪＰＥＧ、ＧＩＦ等のイメージフォーマットである場合は、リモートドライバを呼び出してイメージ変換を実行し、リモートドライバ２５０Ａ〜２５０Ｃによるラスタイメージの作成が終了するまで、作業空間２３０ａ〜２３０ｃとの間で処理を反復し、ＲＡＷ形式の出力データを生成することができる。
【００５９】
プライベートインスタンス２４０ａ〜２４０ｃは、ジョブ情報データ抽出部２２２が抽出したジョブ情報データ２３２を、プロセスＩＤおよび画像データに関連付け、ジョブ管理リスト２３８ａ〜２３８ｃとして生成し、各プライベートインスタンスの管理のために利用することができる。
【００６０】
プライベートインスタンス２４０ａ〜２４０ｃは、発送処理部２４０として実装され、出力先決定部２４２と、印刷指示部２４４と、対応付けテーブル２４６と、文書改変部２４７と、ＵＩ表示部２４８と、ログイン判定部２４９とを含んで構成される。発送処理部２４０がジョブ情報データ抽出部２２２からジョブ情報データを受領すると、印刷指示部２４４に対し、印刷実行を依頼する。
【００６１】
印刷指示部２４４は、その依頼を受けて、出力先決定部２４２に対し、出力先を決定するように指示する。出力先決定部２４２は、ジョブ情報データ抽出部２２２がジョブデータから分離し、抽出したジョブ情報データ２３２およびイメージデータから、対応付けテーブル２４６を参照して、印刷要求元や文書の内容に関連付けられた出力先情報を取得し、出力先を決定する。また、出力先決定部２４２は、ログイン判定部２４９が受領し、認証に使用したログイン名を取得し、ログイン名に関連付けられた出力先情報を取得し、対応付けテーブル２４６を参照して、出力先を決定することもできる。出力先決定部２４２は、決定した出力先の出力先情報およびプロセスＩＤを印刷指示部２４４へ送付する。
【００６２】
対応付けテーブル２４６は、例えば、印刷要求元を識別するための識別情報の１つとして、情報処理装置が入力するＩＰアドレスを使用し、当該ＩＰアドレスと、出力先のリモートプリンタを識別するための情報としてのプリンタ名とを対応付けて登録したものとすることができる。ＩＰアドレスのほか、ＭＡＣアドレス、ログイン名、文書の内容等をプリンタ名と対応付けて登録したものとすることもできる。
【００６３】
出力先決定部２４２は、出力先を決定するために、印刷要求元のＩＰアドレス、ログイン名、文書の内容等を用い、これらにそれぞれ対応付けられた出力先が異なる場合もあり得る。この場合、出力先決定部２４２は、予め設定された優先度情報を用い、その優先度の最も高いものを採用して出力先を決定することができる。優先度が、ＩＰアドレス、ログイン名、文書の内容の順とされている場合、最も高いＩＰアドレスに対応するプリンタ名を取得し、そのプリンタ名から出力先としてのリモートプリンタを決定することができる。この方法は一例であるので、これに限定されるものではない。
【００６４】
印刷指示部２４４は、受領した出力先情報から出力先のリモートプリンタに対応するリモートドライバを呼び出し、出力データを生成する。印刷指示部２４４は、出力データをリモートプリンタへ送付した後、ＵＩ表示部２４８に対して、プロセスＩＤとともに、出力先情報および印刷情報の表示指令を送付する。
【００６５】
印刷指示部２４４は、印刷要求元の情報処理装置およびユーザに対応して、受領した出力先情報を基に出力先を変更する。出力先決定部２４２は、予め印刷処理速度等のプリンタの性能情報が登録されたデータテーブルを参照して、ジョブ情報データに含まれる印刷設定情報やジョブ情報を基に出力先を決定し、印刷指示部２４４は、決定された出力先の出力先情報を基に出力データの出力先を変更することも可能である。
【００６６】
印刷指示部２４４は、出力先決定部２４２から出力先情報、プロセスＩＤおよびジョブ情報データを受領すると、受領したプロセスＩＤを出力先管理テーブルに新たに登録し、ジョブ情報データから印刷情報を取得し、プロセスＩＤの対応するレコードに出力先情報および印刷情報を設定する。ここで、印刷情報としては、印刷ジョブを発行したユーザを特定するユーザ情報、そのユーザが使用する情報処理装置を特定するＩＰアドレス、ＭＡＣアドレス、コンピュータ名等の装置情報、カラー、モノクロ、グレースケール、両面印刷、片面印刷、ページレイアウト等の印刷設定情報、文書名、ページ数、出力内容等のジョブ情報等が挙げられる。
【００６７】
印刷指示部２４４は、出力先管理テーブルを作成すると、ポートモニタ等のディスパッチ処理部に送付し、プロセスＩＤで指定される出力先であるリモートプリンタ１２２ａ〜１２２ｃからの印刷出力が可能となる。
【００６８】
印刷指示部２４４は、リモートプリンタで印刷を実行させる前に、文書改変部２４７へ改変を依頼し、出力先情報を送付する。その後、印刷指示部２４４は、上述したように、決定された出力先に対応するリモートドライバを呼び出し、文書改変部２４７により改変処理されたイメージデータからＲＡＷデータを作成し、ＰＤＬコマンドの追加処理を実行させて出力データを生成する。その出力データは、上記ディスパッチ処理部を介してプリンタサーバへ送付される。プリンタサーバは、受領した出力データに関連付けられたリモートプリンタに出力データを送付し、印刷ジョブを実行させる。
【００６９】
文書改変部２４７は、印刷指示部２４４から改変依頼を受けて、受領した出力先情報の出力先に応じた改変処理を、作業空間２３０ａ〜２３０ｃ上のイメージ変換処理後のイメージデータに対して行う。この文書改変部２４７の構成および処理内容については後述する。
【００７０】
リモートドライバ２５０Ａ〜２５０Ｃは、ページ割り当てや面付けの機能を有する場合、機能設定値として指定されたジョブ情報データを変換し、ＲＡＷデータを作成する。ＯＳがＷｉｎｄｏｗｓ（登録商標）である場合、Ｗｉｎｄｏｗｓ（登録商標）に実装されるプリンタドライバは、そのほとんどがＥＭＦを受信できることから、イメージデータをＥＭＦにすることで、データ変換の必要がなく、ジョブ情報データを印刷設定構造体ＤＥＶＭＯＤＥに設定することで、目的のＲＡＷデータを作成することができる。これに対し、ページ割り当てや面付けの機能を有しない場合には、リモートドライバ２５０Ａ〜２５０Ｃは、ＥＭＦをページごとのＥＭＦに分割し、ページ順の入れ替えや描画位置の指定をすることで、目的のＲＡＷデータを得ることができる。
【００７１】
ＵＩ表示部２４８は、印刷要求元である情報処理装置に対して、ジョブ毎に出力先情報や印刷情報を通知する処理を行う機能処理部である。アプリケーション実行部２１２の印刷要求元通知部２１６から印刷要求元情報およびプロセスＩＤを受領すると、印刷要求元情報およびプロセスＩＤを表示先管理テーブルに登録する。表示先管理テーブルには、印刷要求元情報がプロセスＩＤに関連付けられて登録される。
【００７２】
また、ＵＩ表示部２４８は、印刷指示部２４４からプロセスＩＤとともに出力先情報や印刷情報の表示指令を受領すると、出力先管理テーブルを参照し、プロセスＩＤに関連付けられた出力先情報や印刷情報を取得し、それらを印刷要求元である情報処理装置に送付し、それらを表示させることができる。これにより、発送処理部２４０が自動的に決定した発送先や印刷情報をユーザに通知することができる。
【００７３】
さらに、ＵＩ表示部２４８は、プロセスＩＤに関連付けられた情報処理装置に、印刷情報を表示するＵＩ(User Interface)である印刷情報ダイアログを表示させ、情報処理装置から印刷続行の可否を示す印刷続行指示または印刷取り消し指示を待つことができる。また、ＵＩ表示部２４８は、印刷処理を取り消したことを通知する印刷取り消しダイアログを表示することができる。
【００７４】
印刷情報ダイアログは、例えば、実行される印刷ジョブがカラー印刷であることをユーザに通知して、モノクロ印刷に変更することを促すためのダイアログや、出力枚数が多いために高速印刷が可能なプリンタで印刷することを促すためのダイアログや、両面印刷やページレイアウトの変更を促すためのダイアログ等を挙げることができる。
【００７５】
アプリケーション実行部２１２は、ユーザが使用する情報処理装置に対し、アプリケーション２１４の利用時にログイン名およびパスワードの入力を要求するが、入力されたログイン名およびパスワードに一致するものが、登録されたユーザ情報の中に存在するかを判断し、認証を行うために、ログイン判定部２４９が設けられている。ログイン判定部２４９は、予め登録されたログイン名およびパスワードを関連付けて保持しており、一致するものが存在する場合は、認証が成功した旨をアプリケーション実行部２１２へ通知し、アプリケーション実行部２１２にアプリケーション２１４の利用を許可させる。これに対し、一致するものが存在しない場合、認証が失敗した旨をアプリケーション実行部２１２へ通知し、アプリケーション実行部２１２にログインできなかった旨を情報処理装置に対して通知させる。
【００７６】
出力先決定部２４２は、ユーザ情報に応じて出力先を決定することから、ログイン時に受領したログイン名等をユーザ情報として取得することができる。このため、ログイン判定部２４９は、出力先決定部２４２からのユーザ情報の取得要求を受けて、そのユーザ情報を出力先決定部２４２へ通知する。
【００７７】
これまで図２を参照して、データ処理装置の詳細な構成および各機能部が行う処理について説明してきたが、次に、図３〜図６を参照して、文書改変部２４７の詳細な構成および文書改変部２４７が行う処理について詳細に説明する。なお、図３は、文書改変部の１つの構成例を示した図である。
【００７８】
文書改変部２４７は、出力先決定部２４２により決定された出力先に適した改変処理を、作業空間２３０ａ〜２３０ｃ上のイメージ変換処理後のイメージデータに対して行う。この処理を実現するため、文書改変部２４７は、改変管理部３００と、出力先タイプ決定部３０２と、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４と、１以上の改変処理部３０６ａ〜３０６ｃとを含んで構成される。
【００７９】
改変管理部３００は、印刷指示部２４４から改変処理の依頼および出力先情報を受領し、改変処理部３０６ａ〜３０６ｃへイメージデータの改変処理を依頼する。出力先タイプ決定部３０２は、改変管理部３００から出力先情報を受領し、データ処理装置１１０の管理者等が予め設定したタイプの分類情報を用い、決定された出力先がどのタイプに該当するかを判定し、そのタイプを決定する。出力先は、一例として、セキュリティレベルに応じて分類することができる。例えば、出力先の環境を「セキュリティレベル高」と「セキュリティレベル低」とに分類し、これらをタイプとして採用することができる。
【００８０】
これらのタイプは、ユーザの要望に応じて設定することができ、「セキュリティレベル高」および「セキュリティレベル低」といったように文字列により記述したテキストデータやｘｍｌ(eXtensible Markup language)データとして登録することができる。これらデータは、ＨＤＤ等の記憶装置に記憶されるが、出力先決定部２４２により読み出されて、出力先のリモートプリンタの設置場所に基づき、出力先がどのタイプに該当するかを判定することができる。
【００８１】
一例として、テキストデータ等は、「セキュリティレベル高」に対応する場所、「セキュリティレベル低」に対応する場所の情報を含んで構成されており、出力先タイプ決定部３０２は、各リモートプリンタの設置場所の情報を保持しており、これらの情報と、出力先情報とから、どのタイプに該当するかを判定することができる。
【００８２】
Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、判断手段として機能し、分類されるタイプごとに設定された改変処理の内容を参照して、出力先タイプ決定部３０２により決定されたタイプから、どの改変処理を実行すべきかを判断する。そして、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、生成手段としても機能し、判断された改変処理を実行させるモジュールを読み込み、改変処理部３０６ａ〜３０６ｃを生成する。上記のテキストデータ等には、各タイプに応じて行うべき改変処理の内容およびモジュール名といったモジュールを識別するための情報をさらに含むことができる。このため、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、この情報を基に、改変処理を特定し、その改変処理を実行させるモジュールを読み込むことができる。ここでは、同じテキストデータ等に分類情報およびタイプごとの改変内容等が記述されたものとされているが、別個のテキストデータ等に記述されていてもよい。
【００８３】
Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、一例として、タイプが「セキュリティレベル高」と決定された場合、１つのモジュールを読み込み、改変処理部３０６ａのみを生成する。また、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、一例として、タイプが「セキュリティレベル低」と決定された場合、３つのモジュールを読み込み、改変処理部３０６ａ、３０６ｂ、３０６ｃを生成する。「セキュリティレベル高」の場合、改変管理部３００は、改変処理部３０６ａが生成されたところで、その改変処理部３０６ａに改変処理を依頼し、実行させる。「セキュリティレベル低」の場合、改変管理部３００は、改変処理部３０６ａ〜３０６ｃが生成されたところで、改変処理部３０６ａ〜３０６ｃに改変処理を順に依頼し、順に実行させる。
【００８４】
データ処理装置１１０の管理者等は、ユーザの要望等により、出力先をどのように分類するかを分類情報の設定を変更することで容易に変更することができ、改変処理の内容も設定を変更することにより容易に変更することができる。また、管理者等は、それら設定変更により不要になった改変処理部は削除し、新しく改変処理部を追加した場合はそれらの設定を変更することにより当該新しい改変処理部に改変処理を実行させることができる。これにより、改変ルールの追加、削除、変更が容易となり、インストール後であっても改変ルールの追加、削除、変更が可能となる。
【００８５】
改変処理部３０６ａ〜３０６ｃは、ＣＰＵに各改変処理を実行させるモジュールを読み込むことにより生成され、モジュールの追加または削除により改変処理部を追加または削除することができる。モジュールは、改変処理部以外の各部として機能させるためのプログラムとは別個に作成することができ、例えば、ダイナミックリンクライブラリ(DLL)といったプラグイン形式のものとして実装することができる。これにより、追加、削除、変更が容易となり、ソフトウェア保守も容易となる。
【００８６】
文書改変処理の一例を、図４を参照して説明する。分類されるタイプが「セキュリティレベル高」で、文書内に機密情報として、未発表の製品名、発表日が含まれるものとする。Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、出力先のタイプが「セキュリティレベル高」であるため、タイプごとに設定された改変処理の内容を参照して、実行すべき改変処理を特定する。
【００８７】
ここでは、文書に「confidential」という文字列を付加する処理が特定される。また、改変処理の内容には、この改変処理を実行させるモジュールのモジュール名が対応付けられていることから、このモジュール名を使用し、このモジュールを読み込むことにより、改変処理部３０６ａのみが生成される。図４では、文書に対して、改変処理部３０６ａのみが改変処理を行い、文書上に斜めに「confidential」という文字列を付加している。
【００８８】
文書改変処理の他の例としては、図５に示すようなものが挙げられる。分類されるタイプが「セキュリティレベル低」で、文書内に機密情報として、未発表の製品名、発表日が含まれるものとする。この場合、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、出力先のタイプが「セキュリティレベル低」であるため、タイプごとに設定された改変処理の内容を参照して、実行すべき改変処理を特定するが、上記例とはタイプが異なるので、上記例とは異なる改変処理が特定される。
【００８９】
ここでは、文書に「confidential」という文字列を付加する処理は同じであるが、それに加えて、製品名を黒く塗りつぶす処理、発表日を黒く塗りつぶす処理の上記例とは異なる計３つの処理が特定される。このため、これらの処理を実行させる３つのモジュールが読み込まれ、各モジュールにつき改変処理部３０６ａ、３０６ｂ、３０６ｃという３つの改変処理部が生成される。
【００９０】
図５では、改変処理部３０６ａ〜３０６ｃが順に改変処理を行い、まず最初に、改変処理部３０６ａが「confidential」という文字列を付加する処理を行う。次に、改変処理部３０６ｂが文書中の未発表の製品名を黒く塗りつぶす処理を行う。最後に、改変処理部３０６ｃが文書中の発表日を黒く塗りつぶす処理を行う。なお、複数ページの文書を印刷する場合において、これら３つの改変処理部３０６ａ〜３０６ｃが生成された場合、改変処理部３０６ｂ、３０６ｃは、各ページにつき、管理者等が予め指定した製品名、発表日といった特定の文字列が含まれるかどうかを判断し、含まれると判断した場合に改変処理を行い、含まれないと判断した場合には改変処理を行わないものとされる。
【００９１】
これにより、印刷物が部外者に見られるような場所に設置されていて、セキュリティレベルが低いリモートプリンタで印刷した場合であっても、機密情報が見えないように改変することができるので、誤って印刷を実行した場合であっても、機密情報の漏洩を確実に防止することができる。
【００９２】
図６を参照して、データ処理装置により実行される処理について詳細に説明する。図６に示す処理は、ステップ６００から開始し、ステップ６０５で、アプリケーション実行部２１２により仮想プリンタドライバ２１８が選択され、各種設定を登録する。この登録は、データ処理装置１１０の管理者等が専用のＧＵＩにより行うことができる。ステップ６１０では、アプリケーション２１４が情報処理装置１１２ａ〜１１２ｃの要求に対応してジョブデータを仮想プリンタドライバ２１８に送付する。
【００９３】
ステップ６１５では、仮想プリンタドライバ２１８は、ジョブデータを受領すると、プロセスＩＤを生成し、そのジョブのための発送処理部２４０のプライベートインスタンス２４０ａ〜２４０ｃを生成し、ジョブ管理リスト２３８ａ〜２３８ｃのフィールドに登録する。プロセスＩＤは、現在開始したジョブを固有に識別するために割り当てられる文字列や番号、それらの組み合わせ等である。そして、ステップ６２０で、仮想プリンタドライバ２１８は、アプリケーション実行部２１２の印刷要求元通知部２１６にプロセスＩＤを送付して、印刷要求元情報をＵＩ表示部２４８に通知する。
【００９４】
ステップ６２５では、ジョブ情報データ抽出部２２２は、ジョブデータからジョブ情報データ２３２およびイメージデータ２３４を分離し、ジョブ情報ＩＤおよびイメージＩＤを生成して、ジョブ管理リスト２３８ａに登録する。そして、ステップ６３０では、ジョブ情報データ抽出部２２２は、イメージデータ２３４をジョブ格納部２２６に送付するとともに、該当するプライベートインスタンスの発送処理部２４０にジョブ情報データを送付する。
【００９５】
ステップ６３５では、発送処理部２４０の印刷指示部２４４が、出力先決定部２４２に出力先を決定する処理を依頼し、ステップ６４０で、出力先決定部２４２が、対応付けテーブル２４６を参照してジョブ情報データから出力先を決定し、プロセスＩＤとともに印刷指示部２４４に送付する。
【００９６】
ステップ６４５で、仮想描画部２２４は、記憶空間を確保することにより作業空間２３０ａ〜２３０ｃを生成し、イメージデータ２３４をジョブ格納部２２６から作業空間２３０ａ〜２３０ｃに移動させ、イメージ処理部２３６を呼び出す。ステップ６５０で、イメージ処理部２３６が、ジョブ情報データ２３２を使用してイメージ変換処理を行う。なお、このイメージ変換には、イメージの面付けや印刷サイズ変更、マージン、描画コードを含まないビットマップ等から描画コードを含むＥＭＦ等に変換する処理が含まれる。ステップ６３５およびステップ６４０で行う処理と、ステップ６４５およびステップ６５０で行う処理は、並列的に行うこともできるし、先にステップ６４５およびステップ６５０で行う処理を実行し、その後にステップ６３５およびステップ６４０で行う処理を実行することも可能である。
【００９７】
ステップ６５５では、イメージ処理部２３６によるイメージ変換処理が終了したか否かを判断し、イメージ変換処理が終了していない場合、ステップ６６０へ進む。ステップ６６０では、作業空間２３０ａ〜２３０ｃからイメージデータを取得して、作業空間２３０ａ〜２３０ｃで現在処理中の全イメージについてイメージ変換およびフォーマット設定が終了するまで反復させる。
【００９８】
全イメージについてイメージ変換処理が終了した後、印刷指示部２４４は、発送管理テーブルをルックアップして、プロセスＩＤに割り当てられた出力先に対応するリモートドライバを特定する。そして、ステップ６６５で、リモートドライバを呼び出す前に、印刷指示部２４４は、文書改変部２４７に対し、改変処理を依頼し、出力先決定部２４２で決定された出力先に関する出力先情報を送付する。
【００９９】
ステップ６７０で、文書改変部２４７が、出力先に応じて改変処理を行う。この改変処理が終了したところで、印刷指示部２４４へ通知し、ステップ６７５で、印刷指示部２４４が、出力先に対応したリモートドライバを呼び出し、改変処理されたイメージデータからＲＡＷデータを生成し、ＰＤＬコマンド等を追加して出力データを生成し、ターゲットであるリモートプリンタに送付する。
【０１００】
ステップ６８０で、印刷指示部２４４が、リモートプリンタへ出力データを送付した旨をＵＩ表示部２４８へ通知するとともに、その出力データに関連するプロセスＩＤをＵＩ表示部２４８に送付する。そして、ステップ６８５で、ＵＩ表示部２４８が、発送管理テーブルを参照して、受領したプロセスＩＤに関連する出力先情報や印刷情報を取得するとともに、表示先管理テーブルを参照して、受領したプロセスＩＤに関連する印刷要求元情報を取得する。ステップ６９０で、ＵＩ表示部２４８は、印刷要求元である情報処理装置に対して出力先情報や印刷情報を通知し、ステップ６９５で、この処理を終了する。
【０１０１】
次に、図７を参照して、図３に示す文書改変部２４７が行う改変処理について詳細に説明する。図６のステップ６７０で、文書改変部２４７が、印刷指示部２４４から改変処理の依頼を受け付け、出力先情報を受領したことに応答して、ステップ７００からこの改変処理を開始する。ステップ７０５では、改変管理部３００が、受領した出力先情報を出力先タイプ決定部３０２へ送付する。
【０１０２】
ステップ７１０で、出力先タイプ決定部３０２は、改変管理部３００から出力先情報を受領して、その出力先情報に含まれる出力先が、管理者等によって設定された分類情報内のどのタイプに該当するかを判定し、タイプを決定する。分類情報は、例えば、上述したような「セキュリティレベル高」、「セキュリティレベル低」というタイプを含む情報であり、出力先がどちらのタイプに該当するかを判定することによりタイプを決定する。このとき、出力先であるリモートプリンタが設置されている環境と、セキュリティレベルとを関連付けた、予め設定された設置環境情報を用い、出力先情報の出力先から環境を特定し、その環境からセキュリティレベルを決定し、いずれのタイプに該当するか判定し、タイプを決定することができる。この設定環境情報も、上述したテキストデータ等に含めることができる。
【０１０３】
リモートプリンタのセキュリティレベルは、プリンタ情報として各リモートプリンタが保持していてもよい。この場合、データ処理装置１１０がＳＮＭＰ(Simple Network Management Protocol)を用い、リモートプリンタが管理するＭＩＢ(Management Information Base)情報を取得することにより、このセキュリティレベルを取得することができる。
【０１０４】
出力先タイプ決定部３０２がタイプを決定したところで、そのタイプをＰｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４に通知し、ステップ７１５で、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、そのタイプからどの改変処理を実行すべきかを判断する。そして、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、実行すべきと判断した改変処理を実行させるモジュールを読み込み、その改変処理を実行する改変処理部３０６ａ〜３０６ｃを生成する。Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、管理者等によって設定された各タイプに対応する改変処理の内容を参照して、受領したタイプから改変処理を特定する。その改変処理の内容には、その改変処理を実行させるモジュールを識別するためのモジュール名等のモジュール情報が含まれており、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、そのモジュール情報を使用してモジュールへアクセスし、そのモジュールを読み込むことができる。このモジュール情報も、上述したテキストデータ等に含めることができる。
【０１０５】
この改変処理は、アプリケーションを使用して実現することができる。各モジュールは、プラグインの形式で用意され、所定のフォルダといった格納場所に格納される。このため、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４は、特定した改変処理を実行させるモジュールを、モジュール名を基に格納場所に格納されているモジュール群の中から探し、モジュールを読み込み、差し替え可能となっているプログラムの一部を、このモジュールに差し替えることにより、改変処理部として機能させ、その特定した改変処理を実行させることができる。
【０１０６】
Ｐｌｕｇｉｎ  Ｆａｃｏｒｙ３０４は、改変処理部３０６ａ〜３０６ｃの生成が終了すると、生成した改変処理部３０６ａ〜３０６ｃの情報を改変管理部３００へ通知する。改変管理部３００は、その通知を受けたことに応答して、ステップ７２０で、その情報を用いて、生成した改変処理部３０６ａ〜３０６ｃを順に呼び出し、順に改変処理を依頼する。依頼を受けた改変処理部は、ステップ７２５において、作業空間上にあるイメージ変換処理されたイメージデータに対し、自己が行うべき改変処理を行う。改変処理は、図４や図５に例示したようなイメージデータの内容に対して所定の変更を行うものである。例えば、印刷する文書に特定の文字列を付加したり、ウォーターマークを付加したり、ログインして印刷を実行したユーザのユーザ名を付加したり、機密情報の部分を黒色で塗りつぶす等の処理とすることができる。
【０１０７】
ステップ７３０では、改変処理部は、自己の改変処理が終了すると、終了した旨を改変管理部３００に通知する。それを受けて、改変管理部３００は、ステップ７３５で、実行すべき改変処理部のすべてから通知を受けたかどうかを判断する。まだ、実行すべき改変処理部がある場合は、ステップ７２０へ戻り、次の改変処理部に改変処理を依頼する。
【０１０８】
ステップ７３５で、すべての改変処理部から通知を受けた場合、ステップ７４０へ進み、改変管理部３００が、改変処理が終了した旨を印刷指示部２４４へ通知し、ステップ７４５で、この改変処理を終了する。
【０１０９】
図８は、文書改変部２４７の別の構成例を示した図である。図３に示した実施形態では、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４を含んで構成されていたが、図８に示す実施形態では、Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ３０４がないものとされている。このため、この実施形態では、改変管理部３００が、すべての改変処理部３０６ａ〜３０６ｃへアクセス可能とされ、すべての改変処理部３０６ａ〜３０６ｃを呼び出すように構成されている。
【０１１０】
文書改変部２４７は、印刷指示部２４４から改変依頼を受け付け、出力先決定部２４２で決定された出力先の出力先情報を受領する。文書改変部２４７に含まれる改変管理部３００は、この依頼を受け付けたことに応答して、改変処理部３０６ａ〜３０６ｃを生成するために、すべてのモジュールが格納された格納場所へアクセスし、すべてのモジュールを読み込む。このようにすべてのモジュールを読み込むことから、新たに追加したい改変処理がある場合は、モジュールとして作成し、その格納場所に格納するだけで、新たな改変処理を追加することができる。この実施形態では、改変管理部３００が改変処理部を生成する生成手段として機能する。
【０１１１】
改変管理部３００は、すべてのモジュールを読み込み、すべての改変処理部３０６ａ〜３０６ｃを生成したところで、または生成する前に、受領した出力先情報を出力先タイプ決定部３０２へ送付する。出力先タイプ決定部３０２は、上記と同様にして、受領した出力先情報の出力先が、どのタイプに該当するかを判定し、タイプを決定する。
【０１１２】
出力先タイプ決定部３０２は、決定したタイプを、改変管理部３００へ通知し、改変管理部３００は、各改変処理部３０６ａ〜３０６ｃへ順に、改変処理を依頼し、決定されたタイプの情報を送付する。各改変処理部３０６ａ〜３０６ｃは、受領したタイプの場合に自己が改変処理を行うかどうかを判断する。このため、この実施形態では、各改変処理部３０６ａ〜３０６ｃが判断手段として機能する。
【０１１３】
改変管理部３００は、各改変処理部３０６ａ〜３０６ｃが上記判断を行うに際して、上述した管理者等によって設定された各タイプに対応する改変処理の内容を参照するように通知する。これにより、各改変処理部３０６ａ〜３０６ｃは、タイプから改変処理の内容を特定し、その内容と、自己が行う改変処理の内容とを照合し、一致すれば改変処理を行うと判断し、一致しなければ改変処理を行わないと判断することができる。なお、改変処理は、改変処理を実行すべき改変処理部が、作業空間２３０上にあるイメージ変換処理後のイメージデータに対して行うことにより実行される。
【０１１４】
改変管理部３００は、すべての改変処理部へ依頼し、すべての改変処理部から改変処理が終了した旨または改変処理を行わない旨の通知を受ける。すべての通知を受けたところで、改変管理部３００は、印刷指示部２４４へ改変処理が終了した旨を通知する。
【０１１５】
この実施形態における文書改変処理の一例を、図９を参照して説明する。分類されるタイプが「セキュリティレベル高」で、文書内に機密情報として、未発表の製品名、発表日が含まれるものとする。この実施形態では、改変管理部３００が、すべての改変処理を実行させるモジュールを読み込み、すべての改変処理部３０６ａ〜３０６ｃを生成する。
【０１１６】
改変管理部３００は、各改変処理部３０６ａ〜３０６ｃに処理を依頼する。その依頼を受けた各改変処理部３０６ａ〜３０６ｃは、決定されたタイプから改変処理部３０６ａのみが改変処理を行い、その他は改変処理を行わないと判定する。このため、改変処理部３０６ａが「confidential」という文字列を付加する処理を行った後、改変処理部３０６ｂ、３０６ｃは何の処理も行わない。したがって、図９では、文書に対して、改変処理部３０６ａのみが改変処理を行い、文書上に斜めに「confidential」という文字列を付加している。
【０１１７】
この実施形態における文書改変処理の他の例としては、図１０に示すようなものが挙げられる。分類されるタイプが「セキュリティレベル低」で、文書内に機密情報として、未発表の製品名、発表日が含まれるものとする。この場合も、改変管理部３００が、すべての改変処理を実行させるモジュールを読み込み、すべての改変処理部３０６ａ〜３０６ｃを生成する。
【０１１８】
改変管理部３００は、各改変処理部３０６ａ〜３０６ｃに処理を依頼する。その依頼を受けた各改変処理部３０６ａ〜３０６ｃは、決定されたタイプから改変処理部３０６ａ〜３０６ｃのすべてが改変処理を行うと判定する。
【０１１９】
図１０では、改変処理部３０６ａ〜３０６ｃが順に改変処理を行い、まず最初に、改変処理部３０６ａが「confidential」という文字列を付加する処理を行う。次に、改変処理部３０６ｂが文書中の未発表の製品名を黒く塗りつぶす処理を行う。最後に、改変処理部３０６ｃが文書中の発表日を黒く塗りつぶす処理を行う。これにより、機密情報の漏洩を確実に防止することができる。この場合も図５に示した実施形態と同様に、複数ページの文書を印刷する際、改変処理部３０６ｂ、３０６ｃは、各ページにつき、管理者等が予め指定した製品名、発表日といった特定の文字列が含まれるかどうかを判断し、含まれると判断した場合に改変処理を行い、含まれないと判断した場合には改変処理を行わないものとされる。したがって、製品名がないページには、改変処理部３０６ｂは黒く塗りつぶす処理を行わない。
【０１２０】
次に、図１１を参照して、図８に示す文書改変部２４７が行う改変処理について詳細に説明する。図６のステップ６７０で、文書改変部２４７が、印刷指示部２４４から改変処理の依頼を受け付け、出力先情報を受領したことに応答して、ステップ１１００からこの改変処理を開始する。ステップ１１０５では、改変管理部３００が、改変処理を実行させるモジュールをすべて読み込み、モジュールごとに改変処理部を生成する。
【０１２１】
改変管理部３００は、すべてのモジュールが格納されているフォルダといった格納場所のアドレスを保持しており、そのアドレスへアクセスすることにより、すべてのモジュールを読み込むことができるようにされている。
【０１２２】
次に、ステップ１１１０で、改変管理部３００が、印刷指示部２４４から受領した出力先情報を出力先タイプ決定部３０２へ送付する。このステップ１１０５とステップ１１１０の順序は逆であってもよいし、並列的に進行させてもよい。
【０１２３】
ステップ１１１５で、出力先タイプ決定部３０２は、改変管理部３００から出力先情報を受領して、その出力先情報に含まれる出力先が、管理者等によって設定された分類情報内のどのタイプに該当するかを判定し、タイプを決定する。分類情報や判定の方法については、上記と同様である。
【０１２４】
出力先タイプ決定部３０２がタイプを決定したところで、そのタイプを改変管理部３００へ通知し、ステップ１１２０で、改変管理部３００が、生成された改変処理部３０６ａ〜３０６ｃへ順に、改変処理を依頼し、決定されたタイプの情報を送付する。そして、それを受領した改変処理部は、ステップ１１２５において、自己が決定されたタイプに対応する改変処理を実行する改変処理部であるかどうかを判定する。
【０１２５】
改変処理部は、管理者等によって設定された各タイプに対応する改変処理の内容を参照して、受領したタイプから改変処理を特定する。改変処理部は、特定した改変処理の内容と、自己が行う改変処理の内容とを照合し、一致するかどうかを判断することにより、改変処理を実行する改変処理部であるかどうかを判定する。
【０１２６】
改変処理の依頼を受けた改変処理部が、改変処理を実行する改変処理部であると判定した場合、ステップ１１３０へ進み、作業空間上にあるイメージ変換処理されたイメージデータに対し、自己が行うべき改変処理を行う。そして、ステップ１１３５で、改変処理部は、改変処理が終了したところで、終了した旨を改変管理部３００へ通知する。これに対し、改変処理を実行しない改変処理部であると判定した場合は、ステップ１１４０へ進み、改変処理部は、改変処理を行わない旨を改変管理部３００へ通知する。
【０１２７】
改変管理部３００は、ステップ１１４５において、すべての改変処理部から通知を受けたかを判定する。受けていない場合は、改変管理部３００は、ステップ１１２０へ戻り、次の改変処理部に対し、改変処理を依頼し、決定されたタイプの情報を送付する。すべての改変処理部から通知を受けたと判定した場合、ステップ１１５０へ進み、改変管理部３００が、改変処理が終了した旨を印刷指示部２４４へ通知し、ステップ１１５５で、この改変処理を終了する。
【０１２８】
以上説明したように、本発明によれば、ＰＣ等の情報処理装置が複数のプリンタといった画像形成装置にアクセス可能な現在のネットワークプリント環境で、ネットワークを介して接続される情報処理装置から、ユーザ情報や装置情報、文書の内容等を使用して、常時同一のプリンタから印刷物を出力することが可能となり、出力業務ごとの管理を効率化し、情報セキュリティの向上を可能とするデータ処理装置およびプログラムが提供できる。
【０１２９】
このデータ処理装置およびプログラムは、ユーザが誤って出力させた場合であっても、出力先の環境に応じて文書に改変処理を行った上で出力するので、高いセキュリティを確保することができる。特に、このデータ処理装置およびプログラムは、分類情報の変更やモジュールの追加、削除等により、文書内容改変ルールを容易に変更し、追加し、削除でき、また、保守が容易となり、さらには、システムのインストール後であっても文書内容改変ルールを追加することができる。
【０１３０】
本実施形態の上記機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のオブジェクト指向プログラム言語等で記述されたコンピュータにより読み取り可能なプログラムにより実現できる。本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭ等のコンピュータ可読な記録媒体に格納して提供することができ、また、ネットワークを介して伝送することも可能である。
【０１３１】
これまで本発明を、データ処理システムおよびコンピュータにより可読なプログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０１３２】
１００…プリンタネットワーク、１１０…データ処理装置、１１２〜１１８、１１２ａ〜１１２ｃ…情報処理装置、１２２〜１２８、１２２ａ〜１２２ｃ…リモートプリンタ、１３０…ネットワーク、１４０、１５０、１６０…ロケーション、２１０…データ処理部、２１２…アプリケーション実行部、２１４…アプリケーション、２１６…印刷要求元通知部、２１８…仮想プリンタドライバ、２２０…仮想プリント管理部、２２２…ジョブ情報データ抽出部、２２４…仮想描画部、２２６…ジョブ格納部、２３０…作業空間、２３２…ジョブ情報データ、２３４…イメージデータ、２３６…イメージ処理部、２３８ａ〜２３８ｃ…ジョブ管理リスト、２４０…発送処理部、２４０ａ〜２４０ｃ…プライベートインスタンス、２４２…出力先決定部、２４４…印刷指示部、２４６…対応付けテーブル、２４７…文書改変部、２４８…ＵＩ表示部、２４９…ログイン判定部、２５０Ａ〜２５０Ｃ…リモートドライバ、３００…改変管理部、３０２…出力先タイプ決定部、３０４…Ｐｌｕｇｉｎ  Ｆａｃｔｏｒｙ、３０６ａ〜３０６ｃ…改変処理部
【先行技術文献】
【特許文献】
【０１３３】
【特許文献１】特開２０１０−１５７２０８号公報
【図１】
0005803290.tif 000002
【図２】
0005803290.tif 000003
【図３】
0005803290.tif 000004
【図４】
0005803290.tif 000005
【図５】
0005803290.tif 000006
【図６】
0005803290.tif 000007
【図７】
0005803290.tif 000008
【図８】
0005803290.tif 000009
【図９】
0005803290.tif 000010
【図１０】
0005803290.tif 000011
【図１１】
0005803290.tif 000012