(57)【要約】【課題】  プリントジョブを特定の条件に従って出力先装置にプリントさせるためのデータ処理装置、プログラムおよび記録媒体を提供すること。【解決手段】本発明のデータ処理装置２００は、アプリケーション実行手段からのジョブデータを受領し、例えばページ毎にイメージデータ２３６を生成するとともに、ジョブデータから抽出される印刷設定を記述して印刷設定データ２３２を生成する仮想プリンタドライバ手段２１８と、出力先の選択および出力内容の変更を条件付ける規則２４６に従って、仮想プリンタドライバ手段２１８により生成されたデータ（２３０，２３６）を書き換えるとともに、出力先を判定する出力条件制御手段２４２と、書き換えられた後のイメージデータ２３６および印刷設定データ２３２に対応し内容が変更されたジョブとして、決定された出力先に対応するプリンタドライバを選択して印刷指令する発送手段２４４とを含む。【選択図】図２
2011002881.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション実行手段からのジョブデータを受領してプリントを指令するデータ処理装置であって、前記データ処理装置は、
前記アプリケーション実行手段からの前記ジョブデータを受領し、イメージデータを生成するとともに、前記ジョブデータから抽出される印刷設定を記述して印刷設定データを生成する仮想プリンタドライバ手段と、
出力先の選択および出力内容の変更を条件付ける規則に従って、前記仮想プリンタドライバ手段により生成されたデータを書き換えるとともに、出力先を判定する出力条件制御手段と、
書き換えられた後の前記イメージデータおよび前記印刷設定データに対応し内容が変更されたジョブとして、決定された前記出力先に対応するプリンタドライバを選択して印刷指令する発送手段と
を含む、データ処理装置。
【請求項２】
前記規則は、結合対象のジョブを識別する条件および前記結合対象を統合し出力させる契機とする条件を含み、前記出力条件制御手段は、前記結合対象のジョブを検出したことに応答して当該ジョブの前記イメージデータおよび前記印刷設定データを一旦退避し、一方で、結合対象の他のジョブを検出し、かつ前記契機とする条件が満たされたことに応答して、退避しておいた前記印刷設定データを読み出して、退避しておいた前記イメージデータを結合するよう当該他のジョブの印刷設定データを書き換え、前記発送手段は、結合されたジョブとして発送する、請求項１に記載のデータ処理装置。
【請求項３】
前記出力内容の変更は、両面印刷の指定、モノクロ印刷の指定、集約印刷の指定、地紋印刷の指定、電子透かしの指定、親展印刷の指定およびイメージデータ中の文字列置換からなる群から選択された少なくとも１つの機能限定を含む、請求項１または２に記載のデータ処理装置。
【請求項４】
前記規則は、アプリケーション実行手段にアクセスする端末に関する端末固有情報、前記アプリケーション実行手段のログインユーザに関するユーザ固有情報、前記ジョブの印刷設定情報、前記ジョブの内容情報からなる群から選択された少なくとも１つの条件付け情報に対して、前記出力先および前記出力内容の変更が条件付けられる、請求項１〜３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記出力条件制御手段は、さらにユーザによるジョブ実行履歴を記録するデータベースの履歴データを参照して、前記出力先および前記出力内容の変更を判定する、請求項１〜４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記出力条件制御手段は、前記アプリケーション実行手段に対し、前記出力内容の変更の了承を待ち受けるユーザ問い合わせを指令するか、または前記出力内容の変更をユーザ通知する、請求項１〜５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記規則は、前記出力先の選択および前記出力内容の変更の条件付けを定義付けるデータ構造として提供される、請求項１〜６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記出力条件制御手段および前記発送手段は、前記アプリケーション実行手段と同一実行権限で、すべてのページの前記イメージデータが生成される前に起動される、請求項１〜７のいずれか１項に記載のデータ処理装置。
【請求項９】
前記仮想プリンタドライバ手段が生成するイメージデータは、ページ毎に生成され、前記印刷設定は、面付け情報を含む、請求項１〜８のいずれか１項に記載のデータ処理装置。
【請求項１０】
コンピュータを、アプリケーション実行手段からのジョブデータを受領してプリントを指令するデータ処理装置として機能させるためのコンピュータ実行可能なプログラムであって、前記プログラムは、前記コンピュータを、
前記アプリケーション実行手段からの前記ジョブデータを受領し、イメージデータを生成するとともに、前記ジョブデータから抽出される印刷設定を記述して印刷設定データを生成する仮想プリンタドライバ手段、
出力先の選択および出力内容の変更を条件付ける規則に従って、前記仮想プリンタドライバ手段により生成されたデータを書き換えるとともに、出力先を判定する出力条件制御手段および、
書き換えられた後の前記イメージデータおよび前記印刷設定データに対応し内容が変更されたジョブとして、決定された前記出力先に対応するプリンタドライバを選択して印刷指令する発送手段
として機能させる、コンピュータ実行可能なプログラム。
【請求項１１】
前記規則は、結合対象のジョブを識別する条件および前記結合対象を統合し出力させる契機とする条件を含み、前記出力条件制御手段は、前記結合対象のジョブを検出したことに応答して当該ジョブの前記イメージデータおよび前記印刷設定データを一旦退避し、一方で、結合対象の他のジョブを検出し、かつ前記契機とする条件が満たされたことに応答して、退避しておいた前記印刷設定データを読み出して、退避しておいた前記イメージデータを結合するよう当該他のジョブの印刷設定データを書き換え、前記発送手段は、結合されたジョブとして発送する、請求項１０に記載のコンピュータ実行可能なプログラム。
【請求項１２】
前記出力内容の変更は、両面印刷の指定、モノクロ印刷の指定、集約印刷の指定、地紋印刷の指定、電子透かしの指定、親展印刷の指定およびイメージデータ中の文字列置換からなる群から選択された少なくとも１つの機能限定を含む、請求項１０または１１に記載のコンピュータ実行可能なプログラム。
【請求項１３】
前記仮想プリンタドライバ手段が生成するイメージデータは、ページ毎に生成され、前記印刷設定は、面付け情報を含む、請求項１０〜１２のいずれか１項に記載のコンピュータ実行可能なプログラム。
【請求項１４】
請求項１０〜１３のいずれか１項に記載されたプログラムを記録したコンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷出力のためのデータ処理技術に関し、より詳細には、プリントジョブを特定の条件に従って出力先装置にプリントさせるためのデータ処理装置、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、ネットワーク技術の普及により、また情報セキュリティに対する関心の高まりに伴って、企業、病院、検査機関、官公庁などのオフィス環境においては、最小限の機能のみを備えるクライアント端末からネットワークを介して遠隔的にサーバに接続してアプリケーションを利用する、いわゆるシンクライアント環境が普及しつつある。
【０００３】
またオフィス環境においては、ＭＦＰ(Multi-Function Peripheral)やレーザプリンタ、プリントサーバなどがネットワークに接続され、複数の出力装置が利用可能とされていることが多い。しかしながら、このような複数のロケーションから複数の出力装置が利用可能な環境では、ネットワーク上の複数のプリンタの中から所望の出力先を選択する際に、出力先の指定ミスにより問題を発生させる可能性があり問題となっている。特に個人情報や機密情報を取り扱う場合には、ドキュメントの出力先の指定ミスは情報漏洩等の重大な問題に発展しかねない。
【０００４】
また、出力先の振り分けに関連して、帳票や文書などの種類別にあるいは文書内容に併せて、出力先を自動的に切り替えて出力させたいという要望もある。この要望に応えるために、例えば、Ｗｉｎｄｏｗｓ（登録商標）環境において、枚数によって出力装置を自動切り替えし、最適な出力装置に振り分けるソフトウェアが提供されている（非特許文献１）。また、印刷データを解析し、ドキュメント内の特定のキーワードを検出して、上記帳票や文書種類別、セキュリティのレベルを判別し、自動的に出力条件を切り替えて印刷する技術も提供されている（非特許文献２）。
【０００５】
その他、ドキュメントの出力先を管理する技術として、例えば特開２００３−１４０８６７号公報（特許文献１）には、プリンタの電源オフ、用紙無しなどのプリンタのステータスに対応して出力するプリンタを自動振り分けする技術が提案されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、利用可能な複数の出力装置の中から出力装置を自動選択して出力先を振り分ける種々の技術がこれまでに提供されている。しかしながら、上記の従来技術は、出力先の振り分けのみを行えるものであり、出力先に加えて印刷設定や内容等を含めより柔軟に出力条件を制御する技術の開発に要望があった。また、従来技術の分散印刷システムでは、特定のプリンタ言語のみをサポートしていたり、特定のメーカのプリンタのみをサポートしていたりするのみであり、複数のメーカのプリンタが混在するようなオフィス環境で使用する際に不具合があった。
【０００７】
本発明は、上記問題点に鑑みてなされたものであり、本発明は、複数のベンダからのプリンタが混在している環境においてもベンダの異同にかかわらず、端末、印刷等に関する情報に対して定義される条件に則って、出力先のみならず出力内容を変更および決定して、決定された出力先の画像形成装置に出力させるためのデータ処理装置、データ処理方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では、上述した問題に対応するために、アプリケーション実行手段からのジョブデータを受領してプリントを指令するデータ処理装置は、アプリケーション実行手段からのジョブデータを受領し、例えば高次イメージフォーマットのイメージデータを生成するとともに、ジョブデータから抽出される印刷設定を記述して印刷設定データを生成する仮想プリンタドライバ手段を含んで構成される。またデータ処理装置は、出力先の選択および出力内容の変更を条件付ける規則に従って、仮想プリンタドライバ手段により生成されたデータ、つまりイメージデータおよび印刷設定データ、またはこれらのいずれか一方を書き換えるとともに、出力先を判定する出力条件制御手段を備えており、書き換えられた後のイメージデータおよび印刷設定データに対応し内容が変更されたジョブとして、決定された出力先に対応するプリンタドライバを選択して印刷指令する発送手段を含んでいる。この構成により、所定の規則に従って、出力先のみならず出力内容自体に柔軟な変更を加え、適切な出力先に印刷指令することでき、ひいては、複数の出力装置が利用可能なオフィス環境などにおける業務効率を改善することができる。
【０００９】
本発明では、上記規則は、結合対象のジョブを識別する条件および結合対象を統合し出力させる契機とする条件を含むことができる。また出力条件制御手段は、結合対象のジョブを検出したことに応答して当該ジョブのイメージデータおよび印刷設定データを一旦退避することができる。また出力条件制御手段は、一方で、結合対象の他のジョブを検出し、かつ契機とする条件が満たされたことに応答して、退避しておいた印刷設定データを読み出して、退避しておいたイメージデータを結合するよう当該他のジョブの印刷設定データを書き換え、その後、発送手段が結合されたジョブとして発送することができる。上記結合による出力は、例えば、すべてのジョブが揃った段階で所定の順序で行うことができる。その他、指定されたジョブが検出された段階で、ジョブが揃っているか否かにかかわらず行うことができる。この構成により、上記印刷内容の変更として、予め結合対象として登録しておいたジョブを結合して出力させることができ、オフィス環境での業務効率をより向上させることが可能となる。
【００１０】
さらに本発明では、出力内容の変更は、両面印刷の指定、モノクロ印刷の指定、集約印刷の指定、地紋印刷の指定、電子透かしの指定、親展印刷の指定およびイメージデータ中の文字列置換からなる群から選択された少なくとも１つの機能限定を含むことができる。また、本発明では、上記規則は、アプリケーション実行手段にアクセスする端末に関する端末固有情報、アプリケーション実行手段のログインユーザに関するユーザ固有情報、ジョブの印刷設定情報、ジョブの内容情報からなる群から選択された少なくとも１つの条件付け情報に対して、出力先および出力内容の変更が条件付けられるものとすることができる。この構成により、印刷ジョブにおける種々の情報に対して種々の変更内容を条件付けることが可能となる。
【００１１】
また本発明では、上記出力条件制御手段は、ユーザによるジョブ実行履歴を記録するデータベースの履歴データを参照して、出力先および出力内容の変更を判定することができる。また本発明の出力条件制御手段は、アプリケーション実行手段に対し、出力内容の変更の了承を待ち受けるユーザ問い合わせを指令するか、または前記出力内容の変更をユーザ通知することができる。さらに本発明では、上記規則を、出力先の選択および出力内容の変更の条件付けを定義付けるデータ構造として提供することができる。また本発明では、出力条件制御手段および発送手段は、アプリケーション実行手段と同一実行権限で、すべてのページのイメージデータが生成される前に起動されることができる。また上記端末固有情報は、ネットワークアドレスまたは端末の名称を含み、ユーザ固有情報は、ユーザ名、ユーザが属するグループ、ユーザおよびユーザに与えられた権限を含むことができる。上記印刷設定情報は、カラーモード指定、片面印刷または両面印刷の指定、ステープル・パンチやスタンプ等の指定、用紙サイズやメディアタイプの指定、給紙方向や給紙口・排紙口の指定、印刷品質の指定を含むことができる。前記ジョブ情報は、文書名、ジョブ発行時間、個人名や特定用語の有無を含むことができる。また上記仮想プリンタドライバ手段は、ページ毎にイメージデータを生成することができ、上記印刷設定は、面付け情報を含むことができる。上記イメージデータは、共用性を有しかつより高次のデータ形式のものを採用することができる。
【００１２】
本発明は、さらに、コンピュータを上記機能手段として機能させるためのコンピュータ実行可能なプログラムおよび記録媒体提供する。
【図面の簡単な説明】
【００１３】
【図１】本発明のデータ処理装置を含むプリンタネットワークの実施形態を示す図。
【図２】本実施形態のデータ処理装置の機能ブロック図。
【図３】本実施形態のデータ処理装置が実行する処理のフローチャート（１／２）。
【図４】本実施形態のデータ処理装置が実行する処理のフローチャート（２／２）。
【図５】ルール定義データを一例として示す図。
【図６】本実施形態の出力条件制御部が出力条件の決定に用いるデータを例示する図。
【図７】他の実施形態のデータ処理装置の機能ブロック図。
【図８】他の実施形態のデータ処理装置が実行する処理のフローチャート。
【図９】他の実施形態のデータ処理装置が実行する処理のフローチャート。
【図１０】他の実施形態のデータ処理装置によるユーザ問い合わせによって、クライアント上の画面に表示させるＧＵＩを示す図。
【発明を実施するための形態】
【００１４】
以下、本発明を実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本発明のデータ処理装置１１０を含むプリンタネットワーク１００の実施形態を示す。プリンタネットワーク１００は、オフィスなどに配置される複数のクライアント１１２、１１４、１１６、１１８が、ネットワーク１３０に接続されて構成されている。ネットワーク１３０には、データ処理装置１１０の他、プリンタサーバ（図示せず。）が接続され、各クライアント１１２、１１４、１１６、１１８からの印刷要求をプリンタサーバが管理してもよい。
【００１５】
図１に示す例示的な実施形態では、ＭＦＰ１２２、レーザプリンタ１２４、１２６、インクジェットプリンタ１２８などがリモートプリンタとして接続されている。本実施形態では、上述したＭＦＰ１２２、各プリンタ１２４〜１２８を、以下、リモートプリンタとして総称する。なお、図１中、点線で囲まれた領域１４０，１５０，１６０は、同一のロケーションと見なされる拠点を表している。
【００１６】
データ処理装置１１０は、図１に示す実施形態では、クライアント１１２〜１１８からの印刷要求および印刷要求に対応する印刷データを取得し、各種条件に応じて、出力内容に変更を加え、かつ適切な出力先とするリモートプリンタを判断し、当該リモートプリンタに対応するプリンタドライバを起動する。その後、データ処理装置１１０は、当該リモートプリンタに宛てて、出力先で処理可能な形式のデータ、印刷データに対応するＲＡＷデータを送付する。作成されたＲＡＷデータは、例えばＰＤＬ(Page Description Language)コマンドの追加処理などが行われて出力データとされ、指定されたリモートプリンタ１２２〜１２８に送付される。出力先とするリモートプリンタ１２２〜１２８は、クライアント１１２〜１１８に対応して決定することができ、クライアントが設置されたロケーションや、クライアントの近隣のロケーションなどのリモートプリンタで印刷処理を実行させることができる。図１に示した実施形態では、クライアント１１２−リモートプリンタ１２２とがロケーション１４０を構成し、各クライアントと各プリンタとが対応付けられてロケーション１５０、１６０を構成する。クライアントは、ロケーション１４０〜１６０に複数存在することもでき、リモートプリンタについても各ロケーションに複数存在していてもよく、クライアントのみまたはリモートプリンタのみのロケーションがあってもよい。
【００１７】
データ処理装置１１０は、好ましい実施形態では、サーバ装置として実装され、シングルコア、マルチコアのＣＰＵ、ＲＯＭ、実行空間を提供するＲＡＭ、ハードディスク装置などを含み、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘサーバ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）などのオペレーティングシステム（ＯＳ）による制御の下、印刷データの出力内容の変更および出力先を制御する。また、データ処理装置１１０と、クライアント１１２〜１１８の間は、ＲＤＰなどの適切な遠隔接続プロトコルを使用してトランザクションが可能とされている。また、データ処理装置１１０の機能は、クライアント１１２〜１１８がファットクライアントとして実装される場合、クライアントの機能として実装することもできる。
【００１８】
本実施形態で、プリンタネットワーク１００にプリンタサーバを接続し、印刷要求を管理する場合、データ処理装置１１０は、プリンタサーバが処理可能な形式の印刷データを作成し、プリンタサーバに送付することができる。そして、プリンタサーバが、決定された出力先のリモートプリンタ１２２〜１２８に対して、ＲＡＷ形式の印刷データを送付し、印刷ジョブを実行させる構成とすることができる。プリンタサーバを利用する場合、プリンタサーバは、ハードウェア構成およびＯＳ構成についてデータ処理装置１１０と同様の構成とすることができる。
【００１９】
クライアント１１２〜１１８は、それぞれ同様の構成を有しており、いわゆるシンクライアントとして実装することができる。シンクライアントは、ネットワーク接続モジュール、ユーザ認証機能、セッション生成モジュールなど、専らデータ処理装置１１０に対してサービス要求を発行し、処理結果を受領して印刷出力を依頼する機能のみを実装する。クライアント１１２〜１１８がシンクライアントとして実装される場合では、クライアント１１２〜１１８は、シングルコア、マルチコアのＣＰＵを搭載し、ＲＡＭ、ＲＯＭ、ネットワークインタフェースカード（ＮＩＣ）を含み、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｍａｃ  ＯＳ（登録商標）などの適切なＯＳの下で、アプリケーションにより処理を終了した後、データ処理装置１１０に対して印刷要求を発行する。
【００２０】
また、他の実施形態では、クライアント１１２〜１１８は、ファットクライアント、例えば、それぞれがアプリケーションプログラムを実装し、各種処理を完結するパーソナルコンピュータまたはワークステーションなどから構成することができる。ファットクライアントとして実装されるクライアント１１２〜１１８は、ハードディスク装置などからアプリケーションプログラムおよびデータをＲＡＭに読込んで、ＣＰＵがアプリケーションプログラムを実行させることにより、文書、イメージ、マルチメディアまたはこれらが複合的に組合わされた電子的データとして印刷対象とする文書ファイルを生成し、各リモートプリンタ１２２〜１２８へと印刷処理を依頼する。
【００２１】
データ処理装置１１０は、クライアントの要求に対応して作成したデータを、仮想プリンタドライバに渡し、ジョブ毎に出力先の選択や出力内容の変更を可能とする。なお、本実施形態の出力内容の変更については詳細を後述するが、出力内容の変更は、複数のジョブを結合する変更、ジョブの各種印刷設定の変更、およびジョブのページ内容自体の変更などを含むことができる。これらの出力内容の変更および出力先の選択を含む出力条件は、クライアントのＭＡＣアドレス（Media Access Control Address）、ＩＰアドレス（Internet Protocol Address）などの端末固有情報や、ログインユーザ名やユーザ権限などのユーザ固有情報や、ジョブの印刷設定情報や、文書名、ページ数、機密キーワードの有無などのジョブ内容情報などの種々の条件付け情報に対応して決定される。作成された出力データは、決定された出力先に対応するリモートプリンタに送付され、印刷処理が実行される。なお、仮想プリンタドライバについての詳細な説明は後述する。
【００２２】
ネットワーク１３０は、１０００Ｂａｓｅ−ＴＸなどのイーサネット（登録商標）、光ネットワーク、ＩＥＥＥ８０２．１１などの規格の無線ネットワークを含んで構成することができ、フレームまたはＴＰＣ／ＩＰプロトコルに基づくパケット通信によって、相互通信を行う。また、ネットワーク１３０は、ＬＡＮの他、ＶＰＮ(Virtual Private Network)などによるセキュア環境下で構築されたインターネットなどの広域ネットワークを含んで構成されていてもよい。
【００２３】
図２は、本実施形態のデータ処理装置１１０の機能ブロック２００である。なお、図２に示すように、データ処理装置１１０は、複数の機能手段を含んで構成され、これらの機能手段は、ＲＡＭなどにプログラムを読込んで、ＣＰＵがプログラムを実行することによりコンピュータ上に実現されている。
【００２４】
図２に示すように、データ処理装置１１０は、データ処理部２１０と、アプリケーション実行部２１２と、プリント処理部２５０とを含む。データ処理装置１１０のデータ処理部２１０と、アプリケーション実行部２１２と、プリント処理部２５０とは、図２に示すように一体として構成することができる。しかしながら、他の実施形態では、図２に示す各機能部を図２の通りに実装する必要は無く、図２に示す破線のいずれか一方または両方をネットワーク境界として分離して実装することができる。例えば、右手側のプリント処理部２５０をプリントサーバとして実装し、左手側のアプリケーション実行部２１２および内側のデータ処理部２１０をターミナルサーバとして分離して実装することもできる。あるいは、右手側のプリント処理部２５０と内側のデータ処理部２１０とをサーバとして実装し、左手側のアプリケーション実行部２１２を別のサーバとして分離して実装することもできる。その他、データ処理部２１０、アプリケーション実行部２１２およびプリント処理部２５０をそれぞれ分離して独立したサーバとして実装することもできる。
【００２５】
さらに他の実施形態では、データ処理装置１１０の機能をクライアント上に実装してもよく、例えば、クライアント１１２〜１１８がそれぞれ、アプリケーション実行部２１２、データ処理部２１０およびプリント処理部２５０の機能を保有するか、アプリケーション実行部２１２およびデータ処理部２１０を保有するか、またはアプリケーション実行部２１２のみを保有する、いわゆるファットクライアントとして実装することもできる。これらの特定の実装形式は、プリンタネットワーク１００が設置される環境やユーザの特定の用途に応じて適宜変更することができる。
【００２６】
アプリケーション実行部２１２は、ネットワーク１３０を介してクライアント１１２〜１１８の処理要求および印刷要求を受領して処理を実行し、実行結果を作成する。実行結果は、プリント指令部２１６によるプリント指令イベントの発生に応答して、ＧＤＩなどのＡＰＩコールを経てプリントジョブ（以下、単にジョブとして参照する。）とした後、ジョブデータをデータ処理部２１０に送付する。データ処理部２１０は、仮想プリンタドライバ２１８と、仮想プリンタドライバ２１８が呼出された段階でアプリケーション２１４から送付されたジョブデータを一旦格納するジョブ格納部２２６と、出力先および出力内容の変更を所定の規則に従って制御しながら、決定されたいずれかのリモートプリンタ１２２〜１２８のプリンタドライバ２５２に印刷出力すべきデータを送付する発送処理部２４０とを含んでいる。仮想プリンタドライバ２１８は、アプリケーション実行部２１２のプリント指令モジュールとして実装されるプリント指令部２１６からの呼出しに対応して、アプリケーション２１４から送付されるジョブデータを受領し、現在開始したジョブを固有に識別するためのプロセスＩＤを生成し、プリント指令部２１６に通知するとともに処理を開始する。
【００２７】
プリント指令部２１６は、受け取ったプロセスＩＤを引数として、ジョブ毎に発送処理部２４０に出力条件を決定する処理および発送処理を実行させる。発送処理部２４０は、ジョブ毎に出力内容の変更および出力先の選択を含む出力条件を決定する。出力条件を決定した段階で、作業空間２３０内に生成された高次イメージフォーマットのデータを取得し、決定された出力先に対応するプリンタドライバ２５２に印刷指令する。
【００２８】
本実施形態では、データ処理部２１０のジョブ処理機能を、仮想プリンタドライバ２１８と発送処理部２４０とに分離し、ジョブ毎の発送処理部２４０のインスタンスを生成し、ジョブ単位で発送先のリモートプリンタに対する発送処理を実行させることで、リモートプリンタのエラーが発生した場合のプリント停止を最小限としている。本実施形態において、発送処理部２４０がジョブ毎に独立したインスタンスとして生成されている理由は、この点であるため、必ずしも発送処理部２４０が独立したインスタンスとして生成される実施形態に限定されるものではない。例えば他の実施形態では、ジョブ毎に独立した処理が行われるマルチスレッド（マルチタスク）インスタンスとされることも可能である。また、仮想プリンタドライバ２１８は、印刷設定データと高次イメージフォーマットのイメージデータとを出力することで、属性や機種の相違による描画処理を可能な限り後段に持たせ、最終的な印刷品質を高く保つことを可能としている。なお、説明する実施形態では、仮想プリンタドライバ２１８と発送処理部２４０とが同一のコンピュータ上に実装されるものとして説明するが、これらを別々のコンピュータ上に分離し、ネットワークを介して通信を行う形で実装することもできる。
【００２９】
上記の結果、発送処理部２４０は、特定のリモートプリンタがエラーとなった場合でもエラーによる障害を、当該エラーを生じたリモートプリンタのジョブのみに限定できる。また、上記プリント指令部２１６がユーザ単位のアプリケーションプロセスにロードされるため、発送処理部２４０は、アプリケーションプロセスと同一権限で起動され、後述する適切な通知や確認を正しく実現することが可能とされる。また本実施形態において、発送処理部２４０がアプリケーションプロセスと同一権限で起動される理由は、印刷要求元へ表示を行っているアプリケーションの権限を引き継ぐことで、発送処理部２４０が印刷要求元への表示を可能とするためであり、印刷要求元への各種表示が実現可能である限り、その実装方法は限定されるものではない。他の実施形態では、例えば、同一権限で起動することに代えて、印刷要求元のスレッドＩＤを渡すことで発送処理部２４０から印刷要求元への表示を可能とすることもできる。なお、データ処理装置１１０がユーザからの入力を受付けて処理を制御できる場合、プリント指令部２１６は、マウスイベントなどを受領してプリント指令を発行することができる。
【００３０】
また説明する実施形態では、仮想プリンタドライバ２１８がプロセスＩＤを生成し、プリント指令部２１６に通知し、プリント指令部２１６から発送処理部２４０に起動する際の引数として渡すものとして説明するが、仮想プリンタドライバ２１８および発送処理部２４０の間でジョブを固有に識別でき、処理に使用するデータが特定できる限り、その具体的実装は、特に限定されるものではない。他の実施形態では、プロセスＩＤは、仮想プリンタドライバ２１８から発送処理部２４０に送付してもよい。
【００３１】
本実施形態では、ジョブデータは、イメージデータおよびジョブ情報データを含んで構成される。イメージデータは、描画コードを含むＥＭＦ（Enhanced Metafile）、ＰＤＦ（Portable Document Format）、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、ＸＰＳ（XML paper Specification）などの高次イメージデータを含むことが好適であるが、ビットマップ、ＪＰＥＧ、ＧＩＦなどの低次イメージデータを含むことができるし、さらに他の実施形態では低次イメージデータおよび高次イメージデータの両方を含むことができる。またイメージデータは、特定のプリンタに処理を依存しない共用性を有する形式のものを採用することが好ましい。ジョブ情報データは、印刷要求の発行元を固有に識別する識別値、イメージデータの面付情報、カラーモードの指定、集約印刷の指定、マージン、サイズ設定、ページ数、文書名などを含むジョブ情報データである。なお、発送処理部２４０がアプリケーションと同一権限で起動される場合には、アプリケーションのログインユーザに関連付けられた環境情報から発行元を固有に識別し、紐付けられた種々の情報を取得することが可能であるため、上記の発行元を固有に識別する識別値などは、必ずしもジョブ情報データに含ませなくともよい。
【００３２】
仮想プリンタドライバ２１８は、より詳細には、仮想プリント管理部２２０と、ジョブ情報データ抽出部２２２と、仮想描画部２２４とを含んで実装されている。仮想プリンタドライバ２１８は、ジョブデータを受領すると、仮想プリント管理部２２０を呼出し、ジョブデータをジョブ格納部２２６に格納する。一方、仮想プリント管理部２２０は、仮想描画部２２４を呼出し、仮想描画部２２４は、現在ジョブ格納部２２６に格納されているジョブデータが含むイメージデータをジョブに対応付けて処理するための作業領域を作業領域２３０として確保する。この作業領域２３０は、仮想プリンタドライバ２１８および発送処理部２４０からアクセス可能な、データ処理装置１１０のＨＤＤやメモリなどの記憶領域として提供することができる。あるいは作業領域２３０は、仮想プリンタドライバ２１８および発送処理部２４０からアクセス可能な、他のコンピュータ装置の共有フォルダなどの記憶領域として提供することができる。仮想プリント管理部２２０は、データ抽出部２２２を呼出し、データ抽出部２２２は、一旦ジョブ格納部２２６に格納されたジョブデータからジョブ情報データを抽出し、対応する発送処理部２４０のインスタンスに渡すため、ジョブ情報データの内容を含む印刷設定データ２３２として、作業領域２３０に格納する。印刷設定データの格納は、例えば特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）システムであれば、プリントプロセッサまたはグラフィックモジュールが、印刷設定構造体ＤＥＶＭＯＤＥの内容を書き込むことなどで実現することができる。
【００３３】
また仮想描画部２２４は、ジョブデータが含むイメージデータをページ単位など所定のユニット単位で、ジョブ格納部２２６から作業領域２３０に移動して、高次イメージフォーマットのイメージデータを作業領域２３０に生成する。イメージデータの移動は、例えば特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）システムであれば、スプーラが生成するＥＭＦファイルを、プリントプロセッサがページ単位などの所定のユニット単位毎に分割して、作業領域２３０にコピーすることで実現することができ、またはグラフィックモジュールがＥＭＦをページ毎に作業領域２３０に生成することで実現することもできる。ジョブ格納部２２６が空となると、仮想プリント管理部２２０は、アプリケーション実行部２１２に対してイメージ処理終了を通知する。なお、上述したジョブデータは、低次イメージデータよりも容量の少ない高次イメージデータを利用することが好適であり、これにより、ジョブ情報データ抽出部２２２や仮想描画部２２４の処理を効率化し、ＲＴＡ（Return to Application）を短縮することができる。
【００３４】
上記抽出・分離されたジョブ情報データは、プロセスＩＤから特定できる印刷設定データとして上記作業領域２３０に格納される。説明する実施形態では、印刷設定データ２３２のファイル名等がプロセスＩＤから固有に求められ、仮想プリンタドライバ２１８および発送処理部２４０の間で、プロセスＩＤからジョブの印刷設定データ２３２が特定されるものとして説明する。しかしながら、他の実施形態では、プロセスＩＤと、印刷設定データを識別するジョブ情報ＩＤとで関連付けて管理することで、ジョブに対応する印刷設定データが特定されるよう構成してもよい。
【００３５】
また説明する実施形態では、仮想描画部２２４は、作業領域２３０に移動したイメージデータ２３６のファイル名を順に印刷設定データ２３２に書き込む。つまり、印刷設定データ２３２には、ページ毎のイメージデータのファイル名、その印刷設定および面付け情報が記述される。そして、印刷設定データ内に記述されたイメージデータのファイル名から、各ジョブで使用するイメージデータが特定される。他の実施形態では、プロセスＩＤにイメージデータを識別するイメージＩＤでさらに関連付けて管理することで、プロセスＩＤに対応するイメージデータが特定されるよう構成してもよい。また、上述したように、印刷設定データが複数の機能手段からアクセスされる性質を有するため、その書込みは排他制御されることが好ましい。
【００３６】
イメージ処理終了通知を受領すると、アプリケーション２１４は、ジョブ格納部２２６に対する排他管理を解除し、後続する印刷要求の処理を実行することが可能となる。なお、排他管理としては、種々の手法を使用することができ、セマフォや、同期クラスなどを利用して実装することができる。他の実施形態では、また、アプリケーション実行部２１２のプリント指令部２１６を提供するＧＵＩ(Graphical User Interface)をイベントを受領しない形式に変更して表示することで、簡易的に排他制御を行うこともできる。
【００３７】
ジョブ格納部２２６は、データ処理部２１０の実施形態に応じて、プリンタバッファまたはスプールファイルを格納する記憶領域として実装することができ、特定ＯＳの実装形式に限定されるものではない。また、特定の実施形態においてデータ処理部２１０は、作業領域２３０のイメージデータ２３６および印刷設定データ２３２を取得してページ割り当て、面付けなどの処理を実行する、イメージ処理部２３４を含むことができる。この場合、作業領域２３０に移動されたイメージデータは、データ処理部２１０のイメージ処理部２３４に取得される。
【００３８】
イメージ処理部２３４は、本実施形態では、リモートプリンタドライバ２５２および描画プロセッサを含む描画モジュールなどの画像処理モジュールとして実装することができる。より具体的には、イメージ処理部２３４は、ＥＭＦ、ＰＤＦ、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、ＸＰＳなど描画制御コードやベクトルイメージを含む高次イメージデータの場合には、描画プロセッサを呼び出して処理を実行することができる。また処理対象のイメージデータがＢＭＰなどの低次イメージデータの場合、リモートプリンタドライバ２５２を呼出してイメージ変換を実行し、イメージデータからラスタイメージの作成が終了するまで作業領域２３０との間で処理を反復して、ＲＡＷ形式の出力データを生成することもできる。
【００３９】
本実施形態では、イメージデータとしてビットマップ、ＪＰＥＧ、ＪＰＥＧ２０００、ＰＮＧ、ＧＩＦなどの描画コードを含まない低次イメージデータを含むことができる。低次イメージデータを含む場合でも、作業領域２３０を生成し、呼び出されたリモートプリンタドライバ２５２のＲＡＷデータの生成が終了するまで、作業領域２３０を利用して処理を反復させることができる。なお、低次イメージデータと高次イメージデータとが混在しているジョブの場合、描画プロセッサおよびリモートプリンタドライバ２５２を適宜呼出して処理を実行する。イメージ処理部２３４が出力データを生成した後、作業領域２３０から出力データが、データ発送部２４４に取得される。
【００４０】
また、出力先が特定のリモートプリンタに決定され、決定されたリモートプリンタのプリンタドライバ２５２がページ割り当てや面付けの機能を持っている場合には、イメージ処理部２３４は、高次イメージフォーマットとして生成されたイメージデータ２３６を、プリンタドライバ２５２の受信可能なフォーマットへのイメージ変換を行い、印刷設定データ２３２をプリンタドライバ２５２の機能設定値として指定してプリンタドライバ２５２に変換させることでＲＡＷデータを作成することも可能である。例えば、特定の実施形態で、Ｗｉｎｄｏｗｓ（登録商標）のプリンタドライバにおいては、ほとんどのプリンタドライバがＥＭＦを受信できるので、イメージデータ２３６がＥＭＦであった場合にはデータの変換は必要なく、印刷設定データ２３２を印刷設定構造体ＤＥＶＭＯＤＥに設定すれば、プリンタドライバ２５２が目的のＲＡＷデータを作成可能となる。プリンタドライバ２５２にページ割当てや面付けの機能のない場合は、ＥＭＦをページごとのＥＭＦに分割し、ページ順の入れ替えや描画位置の指定をすることで目的のＲＡＷデータを得ることができる。
【００４１】
以下、発送処理部２４０について説明する。本実施形態の発送処理部２４０は、ジョブ毎にインスタンスとして生成され、より詳細には、出力条件制御部２４２と、データ発送部２４４とを含んで実装される。データ発送部２４４は、プロセスＩＤから特定される印刷設定データを検出して、プロセスＩＤまたは印刷設定データのファイル名で出力条件制御部２４２に問い合わせを行う。出力条件制御部２４２は、ルール定義データ２４６および適宜履歴データ２４８（あるいは履歴データから集計された集計データ）を参照して、種々の条件付け情報に対応して、出力先および出力内容の変更を含む出力条件を決定する。出力条件制御部２４２は、プロセスＩＤまたはファイル名から印刷設定データを特定し、決定された出力条件に応じて、印刷設定データおよびイメージデータを書き換えて、出力内容を確定する。その後、出力条件制御部２４２は、決定した出力先をデータ発送部２４４に返答する。なお、出力条件制御部２４２は、好適には、特定の用途に応じて発送処理部２４０に組み込み可能なプラグインモジュールとして提供される。
【００４２】
上記ルール定義データ２４６は、出力先のリモートプリンタの選択および出力内容の変更を条件付けており、ルール定義データ２４６は、好適には、特定の用途に応じてユーザ定義可能なファイルとして提供される。上記履歴データ２４８は、ユーザが実行したジョブ実行履歴を管理するデータベースとして構成され、これらの履歴情報から、例えばユーザ毎の直近１ヶ月間のカラーの印刷枚数などが集計され、出力条件を決定するために供される。出力条件制御部２４２が実行する出力先や出力内容の変更等の出力条件の制御の詳細については後述する。なお、上記ルール定義データ２４６および履歴データ２４８は、出力条件制御部２４２から適切にアクセス可能である限り、必ずしも発送処理部２４０が内部に保持していなくともよい。例えば、管理者がアクセス可能な共有ファイルサーバ上に配置するなど、利用しやすい形態で配置することができる。この構成により、例えば複数のデータ処理装置１１０が動作する環境では、ルール定義データ２４６を共通のファイルとすることによって、メンテナンス性を向上させることが可能となる。さらに、当該ルール定義データ２４６のファイルについて管理者のみに変更権限を設定することで、セキュリティも好適に確保することが可能となる。
【００４３】
データ発送部２４４は、出力条件制御部２４２から出力先の通知を受領して、その出力先を設定する。データ発送部２４４は、決定された出力先のプリンタドライバ２５２に対して、作業領域２３０の高次フォーマットのイメージデータを、印刷設定データ２３２の内容通りに印刷指令する。決定された出力先のプリンタドライバ２５２は、印刷指令を受けて、ポートモニタなどへとＲＡＷ形式の出力データを送付し、決定された出力先であるいずれかのリモートプリンタからの印刷出力を可能とする。そして、ジョブ毎に起動された発送処理部２４０のインスタンスは、印刷完了の通知を受けて終了する。
【００４４】
上述したように、本実施形態では、複数のジョブの結合出力を可能に構成されている。出力内容の変更として、複数ジョブの結合が決定された場合には、出力条件制御部２４２は、作業領域２３０に格納されるイメージデータ２３６と印刷設定データ２３２とを、後続のジョブに対する処理の際に結合して出力するために、図示しない記憶領域に退避させる。この場合、出力条件制御部２４２は、出力先無しとしてデータ発送部２４４に通知し、データ発送部２４４は、発送処理を行わずに処理を終了させる。一方、後続のジョブが要求された際に、例えば結合対象のジョブがすべて揃うなど、結合出力の契機となる条件が満たされた場合には、出力条件制御部２４２は、退避させておいたイメージデータを作業領域２３０に移動させ、これら退避させておいたイメージデータを指定の順序で結合するよう当該後続のジョブの印刷設定データを書き換え、その出力内容を確定する。そして、出力条件制御部２４２は、決定された出力先をデータ発送部２４４に通知する。そして、データ発送部２４４は、決定された出力先のプリンタドライバ２５２に対して、書き換え後の印刷設定データ２３２の内容通りに、結合されたジョブの印刷指令を行う。
【００４５】
なお、本実施形態では、アプリケーション２１４は、ジョブを、可能な限り高次イメージデータを含む形式で仮想プリンタドライバ２１８に送付することが好ましい。この理由は、高次イメージデータとしてイメージデータを送付することにより、特にカラーイメージについてはイメージあたりのデータ量を削減でき、ひいては、データ処理部２１０がより多くの印刷要求に対応することが可能となるためである。また、仮想プリンタドライバ２１８がデータを受け取る時点では、出力先が決定されていないため、出力先の能力より低次となるデータで受け取ってしまうと、出力先の能力を充分に活かしきれないことになる。このため、仮想プリンタドライバ２１８は、その描画能力を充分に高いものとしてアプリケーションに報告することが望ましい。
【００４６】
以下、フローチャートを参照しながら、本実施形態のデータ処理装置１１０が実行する処理の詳細を説明する。図３および図４は、本実施形態のデータ処理装置１１０が実行する処理のフローチャートである。なお、図３および図４は、図中のポイントＡにより処理フローが連結されていることに留意されたい。図３および図４に示す処理は、ステップＳ３００から開始し、ステップＳ３０１で、仮想プリンタドライバ２３０が選択され、各種設定が登録される。なお、この登録は、データ処理装置１１０の管理者やユーザなどが専用のＧＵＩ(Graphical User Interface)により行うことができる。また、図２に示した実施形態の場合、実行結果は、アプリケーション２１４がクライアント１１２〜１１８の要求に対応して作成し、仮想プリンタドライバ２１８に渡される。ステップＳ３０２で、仮想プリンタドライバ２１８は、アプリケーション２１４からジョブを受領する。
【００４７】
ステップＳ３０３で、プリント指令部２１６は、アプリケーションのプロセスと同一権限で発送処理部２４０のインスタンスを生成し、プロセスＩＤを引数として渡す。ステップＳ３０４で、仮想プリンタドライバ２１８は、ジョブデータからジョブ情報データおよびイメージデータを分離・抽出し、作業領域２３０にイメージデータ２３６を移動または生成するとともに、上述した印刷設定データ２３２を生成する。ステップＳ３０４では、より具体的には、仮想描画部２２４は、ジョブ格納部２２６に格納されているイメージデータをページ単位など所定のユニット単位で、作業領域２３０に移動または生成し、同時に印刷設定ファイルを生成し、それにユニット単位毎のイメージデータのファイル名等を書き込む。一方、ジョブ情報データ抽出部２２２は、ジョブデータから分離・抽出されたジョブ情報データの印刷設定等に従って印刷設定ファイルに書き込む。
【００４８】
ステップＳ３０４の後、ポイントＡを介して、図４に示すステップＳ４０１に処理が進められる。図４のステップＳ４０１では、ステップＳ３０３で起動された発送処理部２４０のデータ発送部２４４は、引数として渡されたプロセスＩＤから特定される印刷設定データが作業領域２３０に生成されたことを検出し、発送処理を開始させる。
【００４９】
ステップＳ４０２では、データ発送部２４４は、出力条件制御部２４２に出力条件の問い合わせを行う。なお問い合わせは、プロセスＩＤ、またはプロセスＩＤから求められる印刷設定データのファイル名で行うことができる。そして、ステップＳ４０３では、出力条件制御部２４２は、種々の条件付け情報を取得し、ルール定義データ２４６を参照および比較して、合致する条件を検索する。ステップＳ４０４では、出力条件制御部２４２は、合致した条件に対応する設定を読み出し、印刷設定データを書き換える。また、合致した条件に対応する設定においてイメージデータの内容変更が指定される場合には、イメージデータに対しても変更を加える。
【００５０】
以下、図５〜図６を参照して出力条件の決定処理について詳細を説明する。図５は、ルール定義データを一例として示す。図５に示すルール定義データでは、［Ｃｏｎｄｉｔｉｏｎ１］および［Ｃｏｎｄｉｔｉｏｎ２］の箇所に種々の条件が定義され、［Ｓｅｔｔｉｎｇ１］および［Ｓｅｔｔｉｎｇ２］の箇所に種々の出力内容の変更の設定が定義されている。そして、［Ｃｏｍｍａｎｄ］で示した箇所で、上記条件および設定が紐付けられている。図５に示す例では、ＵｓｅｒＡが２ページ以上のドキュメントを印刷する場合には、両面印刷およびモノクロ印刷に機能を制限し、ＰｒｉｎｔｅｒＡを出力先とすべきとしてルールが定義されている。また、ＣｌｉｅｎｔＡで機密キーワードが含まれるドキュメントを印刷する場合には、機密文書である旨の警告を行い、ＰｒｉｎｔｅｒＢを出力先とすべきとしてルールが定義されている。
【００５１】
なお、図５に示すルール定義データ２４６のデータ構造は、例示を目的とするものであり、特定の用途に応じて種々のルールが定義付け可能であることは言うまでもない。以下、ルール定義データについて説明を加える。定義可能な条件付け情報としては、上記ユーザ名やクライアント名のほか、ユーザに付与されたロール、グループ、権限などの他のユーザ固有情報や、クライアントのＭＡＣアドレス、ＩＰアドレス、ＩＰアドレス範囲などの他の端末固有情報を含むことができる。条件付け情報としては、さらに、上述したページ数や機密キーワードの有無の以外にも、カラーモード指定、片面印刷または両面印刷の指定、ステープル、パンチ、スタンプ等の指定、用紙サイズやメディアタイプの指定、給紙方向や給紙口・排紙口の指定、印刷品質の指定などの印刷設定や、文書名、ジョブ発行時間、個人名や特定用語の有無などのジョブ内容情報を含むことができる。
【００５２】
また、上述した条件付け情報は、単独で条件付けに用いることができるが、図５に示すように複数組み合わせて用いることもできる。なお、上記端末固有情報やユーザ固有情報などは、発送処理部２４０がアプリケーションと同一権限で起動される場合には、ログインユーザに紐付けられた情報として容易に得ることができる。あるいは、上記端末固有情報やユーザ固有情報などを、印刷設定データ内に記述しておくこともできる。
【００５３】
また、定義可能な設定情報としては、両面印刷への制限、モノクロモードへの制限、出力先の制限、地紋印刷への制限、スタンプ付加の制限、電子透かし付加の制限、機密文書である旨の警告の実施の他、所定のレイアウトの集約印刷への制限、印刷設定の変更の通知の実施、印刷設定の変更の確認の実施などを含むことができる。なお、設定情報も、図５に示すように、単数または複数組み合わせて用いることができる。以下、これらの条件付け情報と設定情報とを用いた出力条件の制御の例を説明する。
【００５４】
ユーザ固有情報を用いた出力内容の変更の例としては、例えば、管理者ユーザにはカラー印刷を許可し、一般ユーザにはモノクロ印刷に制限するというような規則を挙げることができる。端末固有情報を用いた出力内容の変更の例としては、例えば、所定の拠点に属するクライアントには、所定の拠点に属する機密文書の印刷のみを許可するというような規則を挙げることができる。印刷設定情報を用いた出力内容の変更の例としては、カラーモードの印刷が指定された場合には、所定ページ数以上である場合に２ｉｎ１で集約印刷し、さらに所定ページ数以上である場合に４ｉｎ１で集約印刷するというような規則を挙げることができる。ジョブ内容を用いた出力内容の変更の例としては、後述する結合出力や、所定枚数以上の場合に両面印刷とするというような規則を挙げることができる。
【００５５】
また印刷設定情報を用いた出力先の選択の例としては、カラーモードが指定された場合には、カラー印刷が可能であるとして登録された出力先を選択するというような規則を挙げることができる。ジョブ内容を用いた出力先の選択の例としては、ページ数が所定枚数以上の場合には、高速印刷可能であるとして登録された出力先を選択するというような規則を挙げることができる。
【００５６】
図６は、本実施形態の出力条件制御部２４２が出力条件の決定に用いる他のデータを例示する。図６（Ａ）に示すルール定義データは、結合出力を条件付けるものである。図６（Ａ）には、［Ｃｏｎｄｉｔｉｏｎ３］および［Ｃｏｎｄｉｔｉｏｎ４］の箇所に、対象の文書名の条件が定義され、［Ｓｅｔｔｉｎｇ３］および［Ｓｅｔｔｉｎｇ４］の箇所に、対応する処理が定義され、［Ｃｏｍｍａｎｄ］の箇所で、上記条件および設定が紐付けられている。
【００５７】
図６（Ａ）に示す例では、ｄｏｃ＿ｃｏｖｅｒという文書名のジョブを検出した場合、ＢａｃｋｕｐｌｏｃａｔｉｏｎＡで示す保存場所に退避させ、かつ発送処理を行わないことが定義されている。また、ｄｏｃ＿ｂｏｄｙという文書名のジョブを検出した場合、ＢａｃｋｕｐｌｏｃａｔｉｏｎＡで示す保存場所に退避されているｄｏｃ＿ｃｏｖｅｒという文書と、当該ジョブのｄｏｃ＿ｂｏｄｙという文書とを結合して、ＰｒｉｎｔｅｒＢに発送することが定義されている。なお、文書名に対する条件は、正規表現やパターン辞書などを用いて表現することで、特定のパターンの名称の文書に対して定義することもできる。
【００５８】
なお、図６（Ａ）に示す結合出力の条件付けも一例であって、その他いかなる表現方法で結合対象のジョブを特定する条件および結合出力の契機とする条件を定義付けることができる。例えば、結合対象とする全文書が揃うことを結合出力の契機の条件として定義することができるし、または結合対象とする全文書が揃わなくとも特定の文書が検出されることを結合出力の契機の条件として定義することもできる。
【００５９】
図６（Ｂ）に示すルール定義データは、機密キーワードなど任意のキーワードを定義付けるものである。図６（Ｂ）には、「Ｃｏｎｆｉｄｅｎｔｉａｌ」や「社内秘」などの機密キーワードが定義されている。また、ルール定義データには、個人名やなど墨消しすべき文字列が定義付けられていてもよい。上記機密キーワードや墨消しすべき文字列の抽出は、ＥＭＦ、ＰＤＦ、ＰｏｓｔＳｃｒｉｐｔ（登録商標）などテキストを保持する形式のイメージデータであれば、作業領域２３０にアクセスし、イメージデータを解析することでこれらの文字列を抽出することができる。また、イメージデータ中の文字列の置き換えを行ってもよい。このような抽出される文字列を利用した出力条件の決定の例としては、機密キーワードを含む場合に地紋印刷したり、個人名などの保護すべき情報を所定の文字列（例えば■や×など。）で置換して印刷したりするような規則を挙げることができる。
【００６０】
その他、条件付け情報としては、履歴データ２４８に保持されるジョブ実行履歴から集計される集計値を含むこともできる。図６（Ｃ）は、集計データを例示する。このような集計データは、履歴データ２４８の履歴を定期的あるいは不定期に集計することによって生成される。図６（Ｃ）に示す集計データは、ユーザ毎に過去１ヶ月分のカラー印刷およびモノクロ印刷の枚数の集計値を含んでいる。集計値を用いた出力条件の決定の例として、例えば、特定のユーザが１ヶ月当たりのカラー印刷の上限値を超えた場合に、モノクロに機能限定するというような規則を挙げることができる。
【００６１】
再び図４を参照すると、ステップＳ４０５では、出力条件制御部２４２は、上述した結合条件に合致するか否かを判定する。説明する実施形態では、合致する条件に対応する設定中に退避（ｂａｃｋｕｐ）および結合（ｍｅｒｇｅ）が指定される場合に、結合条件に合致すると判定する。ステップＳ４０５で、結合条件に合致しないと判定された場合（ＮＯ）には、ステップＳ４０６へ処理を進める。ステップＳ４０６では、出力条件制御部２４２は、問い合わせに対する応答として、合致した条件に対応する設定中に指定された出力先をデータ発送部２４４に通知する。この段階で、出力先および出力内容が確定される。イメージ処理部２３４を用いる実施形態では、イメージ処理部２３４は、書き換え後の印刷設定データに従って、イメージデータの面付けおよび印刷サイズ、マージンなどの処理を適宜行うことができる。またこの段階で、例えば印刷したユーザと、カラーモードと、印刷枚数とを履歴として蓄積し、履歴データ２４８を更新する。
【００６２】
ステップＳ４０７では、データ発送部２４４は、書き換え後の印刷設定データおよびイメージデータの内容に従った印刷指令を、通知された出力先のリモートプリンタのプリンタドライバ２５２に対して実施する。出力先のプリンタドライバ２５２は、印刷指令を受けて、ポートモニタなどへと出力データを送付し、決定された出力先のリモートプリンタに印刷出力させる。そして、発送部処理部２４０のインスタンスは、ジョブの完了通知を受けてステップＳ４０８で処理を終了させる。イメージ処理部２３４を用いる場合には、イメージ処理部２３４による処理の完了を待って、データ発送部２４４が出力データを作業領域２３０から取得し、出力先に送付する。イメージ処理部２３４は、ジョブデータが含むイメージを高次イメージフォーマットとして生成する機能を含んで構成され、リモートプリンタドライバ２５２は、例えば、ＵＰｎＰ、Ｂｏｎｊｏｕｒなどのプラグアンドプレイ機能を利用して自動的に取得される。この結果、特定のメーカの特定実装形式のページプリンタを使用することなく、プリンタネットワーク１００に接続され、プラグアンドプレイ、すなわち、自動ドライバ転送プロトコルを利用することができるページプリンタであれば、特定のメーカに依存せずに処理を行うことができる。
【００６３】
また、特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）システムにおいて、決定された出力先に対応するプリンタドライバがページ割り当ておよび面付け機能を有し、イメージデータ２３６がＥＭＦ形式のデータであった場合など、データ変換が必要ない場合などには、データ発送部２４４は、印刷設定データ２３２を印刷設定構造体ＤＥＶＭＯＤＥに設定して、作業領域２３０の高次イメージフォーマットのイメージデータを出力先に対応するリモートプリンタドライバに渡し、リモートプリンタドライバ２５２にＲＡＷデータを作成させることもできる。
【００６４】
一方、ステップＳ４０５で、結合条件に合致すると判定された場合（ＹＥＳ）には、ステップＳ４０９へ処理を進める。ステップＳ４０９では、出力条件制御部２４２は、結合（ｍｅｒｇｅ）が指定されるか否か、つまり出力の契機とする条件が満たされたか否かを判定する。ステップＳ４０９で、出力の契機とする条件が満たされていないと判定された場合（ＮＯ）には、ステップＳ４１２へ処理を分岐させる。ステップＳ４１２では、出力条件制御部２４２は、当該ジョブの印刷設定データおよびイメージデータを指定の退避先の記憶領域に退避させる。ステップＳ４１３では、出力条件制御部２４２は、データ発送部２４４に出力先なしとして通知し、ステップＳ４０８で処理を終了する。
【００６５】
一方、ステップＳ４０９で、出力の契機とする条件が満たされたと判定された場合（ＹＥＳ）には、ステップＳ４１０へ処理を分岐させる。ステップＳ４１０では、出力条件制御部２４２は、指定された退避先に退避された印刷設定データを読み出し、退避させたジョブのイメージデータを指定の順序で結合するよう現在のジョブの印刷設定データを書き換えるとともに、退避しておいたイメージデータを作業領域２３０に移動する。そして、ステップＳ４１１では、出力条件制御部２４２は、合致する条件に対応する設定に指定された発送先をデータ発送部２４４に通知する。このとき出力先および出力内容が確定される。
【００６６】
続いてステップＳ４０７では、データ発送部２４４は、結合後の印刷設定データおよびイメージデータの内容に従った印刷指令を、通知された出力先のリモートプリンタのプリンタドライバ２５２に対して実施する。出力先のプリンタドライバ２５２は、印刷指令を受けて、ポートモニタなどへと出力データを送付し、決定された出力先のリモートプリンタに印刷出力させる。そして、発送処理部２４０のインスタンスは、ジョブの完了通知を受けてステップＳ４０８で処理を終了させる。
【００６７】
以下、他の実施形態のデータ処理装置が実行する処理について、図３および図７〜図１０を参照して説明する。なお、以下に説明する実施形態の処理では、出力内容の変更が有る場合に、ユーザに対し了承の可否の問い合わせを発生させる。ユーザに対し問い合わせを発生させるか否かは、特定の用途に合わせて実装を変更することができる。あるいは、特定の用途に応じてデータ処理装置１１０の管理者が問い合わせを発生させるか否かを設定できるよう構成することもでき、上記ルール定義データ内に定めてもよい。また説明する実施形態では、ユーザに対し了承の可否の問い合わせを発生させるとしたが、問い合わせとはせずに、出力内容の変更の結果を通知するのみとしてもよい。
【００６８】
図７は、他の実施形態のデータ処理装置の機能ブロック３００を示す。なお、図７に示す各機能部には、図２と同様な機能を有するものについては、その符号の下二桁において同一の番号を付していることに留意されたい。また機能ブロック３００は、図２に示す機能ブロックと同様の構成を有しているため、以下、相違点を中心に説明する。
【００６９】
図７は、複数のクライアント３０２ａ，３０２ｂが接続された状態のデータ処理装置の機能ブロック３００を示し、クライアントＡ３０２ａおよびクライアントＢ３０２ｂに対応して、それぞれアプリケーションＡ３１４ａおよびアプリケーションＢ３１４ｂが動作している。アプリケーション３１４ａ，３１４ｂは、それぞれプリント指令部３１６を有しており、プリント指令部３１６ａ，３１６ｂは、それぞれ、印刷要求に応答して、アプリケーション３１４ａ，３１４ｂと同一権限で発送処理部のインスタンス３４０ａ，３４０ｂを生成するとともに、ジョブを識別するプロセスＩＤと、問い合わせのための表示方法を通知する。
【００７０】
本実施形態において、生成される発送処理部のインスタンス３４０ａ，３４０ｂは、それぞれ、図２に関連して説明したデータ発送部３４４、出力条件制御部３４２、ルール定義データ３４６および履歴データ３４８に加えて、さらに表示部３４５を含んで構成される。表示部３４５は、出力条件制御部３４２がユーザに対する問い合わせまたは通知を行うに際して、出力条件制御部３４２から表示内容を受け取り、対応するアプリケーション３１４が印刷要求元に表示しているのと同一の方法および権限で、印刷要求元に対して表示処理を行う。ここでいう表示方法とは、アプリケーション３１４が印刷指令を受けた印刷要求元が操作している端末画面に対して、表示に充分な権限を持って表示するための方法であり、本実施形態では、発送処理部のインスタンス３４０が、アプリケーション３１４の権限を引き継ぐことで達成されている。このように本実施形態では、発送処理部のインスタンス３４０が、アプリケーション３１４と同一の権限で生成されるため、アプリケーション３１４が印刷要求元に表示しているのと同じ方法および権限で表示することができ、このため印刷要求元への表示が正しく達成される。
【００７１】
一方、仮想プリンタドライバ３１８は、各クライアント３０２に対応するアプリケーション３１４からの印刷要求を排他管理し、例えば、まずクライアントＡ３０２ａからのジョブデータを受領して、ジョブデータからジョブ情報データおよびイメージデータを分離・抽出し、作業領域３３０ａにイメージデータ３３６を移動または生成するとともに、上述した印刷設定データ３３２を生成する。仮想プリンタドライバ３１８は、クライアントＡ３０２ａについての処理が完了した後、同様に、例えばクライアントＢ３０２ｂからの印刷要求があれば、そのジョブデータを受領して、作業領域３３０ｂにイメージデータを移動または生成するとともに、上述した印刷設定データを生成する。各作業領域３３０ａ，３３０ｂのデータは、それぞれ、対応する発送処理部のインスタンス３４０ａ，３４０ｂからアクセスされることとなる。ジョブごとに起動された発送処理部のインスタンス３４０ａ，３４０ｂは、それぞれ、出力内容の変更および出力先の選択を含む出力条件を決定する。出力条件を決定した段階で、それぞれ作業空間３３０ａ，３３０ｂ内に生成された高次イメージフォーマットのデータを取得し、印刷設定データの内容に従って、決定された出力先に対応するプリンタドライバ３５２に印刷指令する。
【００７２】
図８および図９は、他の実施形態のデータ処理装置が実行する処理のフローチャートである。なお、図８に示すポイントＡまでの処理は、図３に示したものと同様であるため説明は割愛する。図８および図９は、図中のポイントＢ〜Ｄにより処理フローが連結されていることに留意されたい。図３と同様の処理フローを経た後、ポイントＡを介して、図８に示すステップＳ８０１に処理が進められる。図８のステップＳ８０１では、ステップＳ３０３で起動された発送処理部のデータ発送部３４４は、プロセスＩＤから特定される印刷設定データが生成されたことを検出し、発送処理を開始させる。
【００７３】
ステップＳ８０２では、データ発送部３４４は、出力条件制御部３４２に出力条件の問い合わせを行う。ステップＳ８０３で、出力条件制御部３４２は、上記種々の条件付け情報を取得し、ルール定義データ３４６を参照および比較して、合致する条件を検索する。ステップＳ８０４で、出力条件制御部３４２は、合致する条件に対応する設定より印刷設定の変更があるか否かを判定する。ステップＳ８０４で、変更があると判定された場合（ＹＥＳ）には、ステップＳ８０５へ処理を分岐させる。ステップＳ８０５では、出力条件制御部３４２は、印刷設定に変更が要請されている旨の問い合わせを行うための表示内容を表示部３４５に渡し、印刷設定に変更が要請されている旨の通知と、その了承の可否のユーザ問い合わせを、表示部３４５を介して起動元のアプリケーション３１４で発生させる。
【００７４】
図１０は、本実施形態のデータ処理装置によるユーザ問い合わせによって、クライアント上の画面に表示させるＧＵＩを示す。図１０（Ａ）は、カラー印刷からモノクロ印刷への変更を提案するＧＵＩを示す。「はい」ボタンや「いいえ」ボタンがクリックされると、了承の可否が表示部３４５を介して出力条件制御部３４２に戻される。ステップＳ８０５に続いて、ステップＳ８０６では、出力条件制御部３４２は、変更が了承されたか否かを判定する。ステップＳ８０６で、例えば「はい」ボタンがクリックされ、了承されている場合には、ステップＳ８０７へ処理を進める。
【００７５】
ステップＳ８０７では、出力条件制御部３４２は、合致した条件に対応する設定で刷設定データを書き換えるとともに、合致した条件に対応する設定においてイメージデータの内容変更が指定される場合にはイメージデータについても変更を加える。一方、ステップＳ８０４で、変更が無かった場合（ＮＯ）、およびステップＳ８０６で了承されなかった場合（ＮＯ）には、そのままステップＳ８０８へ進められる。なお、説明する実施形態では、ステップＳ８０６で了承されなかった場合（ＮＯ）に出力内容を変更せずに進めるものとして説明するが、他の実施形態では、了承されなかった場合（ＮＯ）、一律にジョブの実行を中止したり、了承されなかった場合の対応をルール定義データ３４６に記述しておき、その規則に応じてジョブの実行を継続するか中止するかを決定することもできる。
【００７６】
ステップＳ８０８では、出力条件制御部３４２は、上述した結合条件に合致するか否かを判定する。ステップＳ８０８で、結合条件に合致しないと判定された場合（ＮＯ）には、ステップＳ８０９へ処理を進める。ステップＳ８０９では、出力条件制御部３４２は、合致した条件に対応する設定中に指定された出力先をデータ発送部３４４に通知する。ステップＳ８１０では、データ発送部３４４は、書き換え後の印刷設定データおよびイメージデータの内容に従って、イメージの面付けおよび印刷サイズ、マージンなどの処理を適宜行い、決定された出力先のリモートプリンタのプリンタドライバ３５２に対して印刷指令を行う。決定された出力先のプリンタドライバ３５２は、印刷指令を受けて、ポートモニタなどへとＲＡＷ形式の出力データを送付し、決定された出力先のリモートプリンタに印刷出力させる。そして、データ発送部３４４は、ジョブの完了通知を受けてステップＳ８１１で処理を終了させる。
【００７７】
一方、ステップＳ８０８で、結合条件に合致すると判定された場合（ＹＥＳ）には、ポイントＢを介して図９に示すステップＳ９０１へ処理を進める。ステップＳ９０１では、出力条件制御部３４２は、出力の契機とする条件が満たされたか否かを判定する。ステップＳ９０１で、出力の契機とする条件が満たされていないと判定された場合（ＮＯ）には、ステップＳ９０５へ処理を分岐させる。ステップＳ９０５では、出力条件制御部３４２は、作業領域３３０にある当該ジョブの印刷設定データおよびイメージデータを指定の退避先に退避させる。そして、出力条件制御部３４２は、ステップＳ９０６で、データ発送部に出力先なしとして通知し、ステップＳ９０７で、現在要求されたジョブが結合対象として退避された旨の通知を行うための表示内容を表示部３４５に渡し、表示部３４５を介して起動元のアプリケーションに退避された旨のユーザ通知を発生させる。図１０（Ｂ）は、ドキュメントを退避した旨を通知するＧＵＩを示す。その後、ポイントＤを経て、図８のステップＳ８１１で処理を終了する。
【００７８】
一方、ステップＳ９０１で、出力の契機とする条件が満たされたと判定された場合（ＹＥＳ）には、ステップＳ９０２へ処理を分岐させる。ステップＳ９０２では、出力条件制御部３４２は、指定された退避先に退避された印刷設定データを読み出し、退避させたジョブのイメージデータを指定の順序で結合するよう現在のジョブの印刷設定データを書き換えるとともに、退避されたイメージデータを作業領域３３０に移動する。そして、ステップＳ９０３では、出力条件制御部３４２は、合致する条件に対応する設定に指定された発送先をデータ発送部３４４に通知する。このとき出力先および印刷設定データの内容が確定される。続いてステップＳ９０４で、現在要求されたジョブが結合対象であり、これまで退避されたジョブと結合して出力を行う旨の通知を、表示部３４５を介して起動元のアプリケーションに発生させる。図１０（Ｃ）は、ドキュメントを結合した旨を通知するＧＵＩを示す。その後、ポイントＣを経て、図８のステップＳ８１０でデータ発送部２４４は、結合後の印刷設定データおよびイメージデータに従った内容の出力データを、決定された出力先のリモートプリンタに宛ててジョブとして送信し、ジョブの完了通知を受けて、ステップＳ８１１で処理を終了する。
【００７９】
以上説明したように、本発明の実施形態によれば、複数のベンダからのプリンタが混在している環境においてもベンダの異同にかかわらず、ユーザ、端末、印刷等に関する情報に対して定義される条件に則って、出力先のみならず出力内容を変更および決定して画像形成装置に出力させるデータ処理装置、データ処理方法、プログラムおよび記録媒体が提供される。
【００８０】
また本発明の実施形態によれば、パーソナルコンピュータやシンクライアントが複数の画像形成装置にアクセスすることが可能な現在のネットワークプリント環境で、ユーザ固有の情報や端末固有の情報、印刷設定およびジョブ内容に関連して定義付けた規則に従って、柔軟にジョブ出力先および出力内容を変更および制限し、適切なプリンタから出力させることが可能となり、出力業務ごとの管理を効率化し、さらに情報セキュリティの向上を可能とすることが可能となる。また、本発明の実施形態によれば、アプリケーションサーバに対するアプリケーションモジュールの追加を行うことなく、最小のコストで、出力先および出力内容を制御することが可能なデータ処理装置、プログラムおよび記憶媒体が提供できる。
【００８１】
さらに、本発明によれば、シンクライアントに対して印刷するべきリモートプリンタのプリンタドライバの追加実装を排除して、より柔軟なネットワーク構成に対応しつつ、印刷出力の出力先管理を可能とする、データ処理装置、プログラムおよび記憶媒体が提供できる。
【００８２】
本実施形態の上記機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００８３】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００８４】
１００…プリンタネットワーク、１１０…データ処理装置、１１２，１１４，１１６，１１８…クライアント、１２２…ＭＦＰ、１２４…レーザプリンタ、１２６…レーザプリンタ、１２８…インクジェットプリンタ、１３０…ネットワーク、１４０，１５０，１６０…ロケーション、２００，３００…機能ブロック、２１０…データ処理部、２１２…アプリケーション実行部、２１４，３１４…アプリケーション、２１６，３１６…プリント指令部、２１８，３１８…仮想プリンタドライバ、２２０，３２０…仮想プリント管理部、２２２，３２２…ジョブ情報データ抽出部、２２４，３２４…仮想描画部、２２６，３２６…ジョブ格納部、２３０，３３０…作業領域、２３２，３３２…印刷設定データ、２３４…イメージ処理部、２３６，３３６…イメージデータ、２４０，３４０…発送処理部、２４２，３４２…出力条件制御部、２４４，３４４…データ発送部、２４６，３４６…ルール定義データ、２４８，３４８…履歴データ、２５０…プリント処理部、２５２，３５２…プリンタドライバ、３０２…クライアント、３４５…表示部
【先行技術文献】
【特許文献】
【００８５】
【特許文献１】特開２００３−１４０８６７号公報
【非特許文献】
【００８６】
【非特許文献１】”ちぇんじろう”、［online］、株式会社リコー、製品情報、オフィス向け製品、デジタル印刷機、Ｐｒｉｐｏｒｔシリーズ、ＰＣ  Ｃｏｎｔｒｏｌｌｅｒ［２００９年５月２２日検索］、インターネット＜ＵＲＬ；http://www.ricoh.co.jp/opp/priport/option/control/change_ro/＞
【非特許文献２】”Ｒｉｄｏｃ  ＩＯ  ＤａｔａＳｅｌｅｃｔｏｒＶｅｒｓｉｏｎ４．４”、［online］、株式会社リコー、製品情報、オフィス向け製品、プリンタ、プリンティングソリューション［２００９年５月２２日検索］、インターネット＜ＵＲＬ；http://www.ricoh.co.jp/IPSiO/related_goods/dataselector/＞
【図１】
2011002881.tif 000003
【図２】
2011002881.tif 000004
【図３】
2011002881.tif 000005
【図４】
2011002881.tif 000006
【図５】
2011002881.tif 000007
【図６】
2011002881.tif 000008
【図７】
2011002881.tif 000009
【図８】
2011002881.tif 000010
【図９】
2011002881.tif 000011
【図１０】
2011002881.tif 000012