(57)【特許請求の範囲】
【請求項１】
指定された印刷設定をルールに応じて変更して印刷要求を処理し、印刷制御プログラムに対し変更後の印刷設定を通知する情報処理装置であって、
印刷要求に応答して、印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件とを対応付けるルールにより、該印刷要求が合致する入力条件に対応する出力条件を判定する手段と、
判定された出力条件が、印刷設定の変更が反映された設定済みの印刷設定データ構造の使用を規定するかを判定する手段と、
使用が規定される場合には対応する設定済みの印刷設定データ構造を、使用が規定されない場合には対応する印刷制御プログラムから取得した標準の印刷設定データ構造を、前記印刷要求で指定される印刷設定で一部上書きする手段と
を含む、情報処理装置。
【請求項２】
前記ルールは、前記出力条件として出力先の指定を含み、前記対応する設定済みの印刷設定データ構造は、出力先の印刷制御プログラムに固有な設定項目を格納するプライベート部を含む、請求項１に記載の情報処理装置。
【請求項３】
前記印刷要求が合致する入力条件に対応する出力条件が、印刷設定データ構造のパブリック部のベンダ間共通の設定項目の変更を規定する場合には、前記印刷要求で指定される印刷設定が上書きされた印刷設定データ構造を、さらに前記ベンダ間共通の設定項目について上書きする手段をさらに含む、請求項１または２に記載の情報処理装置。
【請求項４】
アプリケーション手段から印刷要求に関する印刷データを受領して、中間データおよび印刷設定データ構造のパブリック部を保存する手段と、前記中間データと、上書きされた印刷設定データ構造とを使用して、印刷制御プログラムに対し、変更後の印刷設定を通知するとともに印刷を指令する手段とをさらに含む、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記入力条件は、印刷要求の要求元を識別する要求元識別値または印刷要求にて指定される印刷設定の設定項目に対する条件を含む、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記印刷設定データ構造は、ＤＥＶＭＯＤＥ構造体またはＰｒｉｎｔｅｒＴｉｃｋｅｔ形式のデータである、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
指定された印刷設定をルールに応じて変更して印刷要求を処理し、印刷制御プログラムに対し変更後の印刷設定を通知するためのコンピュータ実行可能なプログラムであって、
印刷要求に応答して、印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件とを対応付けるルールにより、該印刷要求が合致する入力条件に対応する出力条件を判定する手段、
判定された出力条件が、印刷設定の変更が反映された設定済みの印刷設定データ構造の使用を規定するかを判定する手段、および
使用が規定される場合には対応する設定済みの印刷設定データ構造を、使用が規定されない場合には対応する印刷制御プログラムから取得した標準の印刷設定データ構造を、前記印刷要求で指定される印刷設定で一部上書きする手段
をコンピュータに実現するためのコンピュータ実行可能なプログラム。
【請求項８】
前記ルールは、前記出力条件として出力先の指定を含み、前記対応する設定済みの印刷設定データ構造は、出力先の印刷制御プログラムに固有な設定項目を格納するプライベート部を含む、請求項７に記載のプログラム。
【請求項９】
前記印刷要求が合致する入力条件に対応する出力条件が、印刷設定データ構造のパブリック部のベンダ間共通の設定項目の変更を規定する場合には、前記印刷要求で指定される印刷設定が上書きされた印刷設定データ構造を前記ベンダ間共通の設定項目について上書きする手段をさらにコンピュータに実現する、請求項７または８に記載のプログラム。
【請求項１０】
請求項７〜９のいずれか１項に記載のプログラムを格納する、コンピュータ可読な記録媒体。
【請求項１１】
指定される印刷設定を変更して印刷要求を処理するためのルールを規定する定義データを作成する情報処理装置であって、
印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件との入力を受け付ける受付手段と、
前記出力条件が、印刷設定データ構造のパブリック部に規定されるベンダ間共通の設定項目に該当するか、前記印刷設定データ構造のプライベート部に規定される固有の設定項目に該当するかを判定する手段と、
前記固有の設定項目に該当する場合に、出力先の印刷制御プログラムに対し印刷設定画面の表示を依頼する依頼手段と、
前記印刷設定画面を介して設定済みの印刷設定データ構造が取得された場合に、該設定済みの印刷設定データ構造を前記入力条件に対応付けて定義データに書き込む書込手段と
を含む、情報処理装置。
【請求項１２】
前記依頼手段は、前記出力条件が前記ベンダ間共通の設定項目に該当する場合であって、出力先の印刷制御プログラムが該ベンダ間共通の設定項目をサポートしない場合にも、前記出力先の印刷制御プログラムに対し印刷設定画面の表示を依頼する、請求項１１に記載の情報処理装置。
【請求項１３】
前記依頼手段は、該印刷制御プログラムが印刷設定構造体のいずれの設定項目を使用するかを表すフラグを該印刷設定構造体から読み出して、前記サポートの有無を判断する、請求項１２に記載の情報処理装置。
【請求項１４】
出力先として決定され得る印刷制御プログラムのバージョンを監視し、更新された印刷制御プログラムが発見された場合には、設定済みの印刷設定構造体の更新の必要性を管理者に対し通知する、請求項１１〜１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記入力条件は、印刷要求の要求元を識別する要求元識別値および印刷要求にて印刷設定の設定項目に対する条件であり、前記出力条件は、出力先の指定を含み、前記設定済みの印刷設定データ構造は、出力先の印刷制御プログラムに固有な設定項目を格納するプライベート部を含む、請求項１１〜１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記印刷設定データ構造は、ＤＥＶＭＯＤＥ構造体またはＰｒｉｎｔｅｒＴｉｃｋｅｔ形式のデータである、請求項１１〜１５のいずれか１項に記載の情報処理装置。
【請求項１７】
指定される印刷設定を変更して印刷要求を処理するためのルールを規定する定義データを作成するためのコンピュータ実行可能なプログラムであって、
印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件との入力を受け付ける受付手段、
前記出力条件が、印刷設定データ構造のパブリック部に規定されるベンダ間共通の設定項目に該当するか、前記印刷設定データ構造のプライベート部に規定される固有の設定項目に該当するかを判定する手段、
前記固有の設定項目に該当する場合に、出力先の印刷制御プログラムに対し印刷設定画面の表示を依頼する依頼手段、および
前記印刷設定画面を介して設定済みの印刷設定データ構造が取得された場合に、該設定済みの印刷設定データ構造を前記入力条件に対応付けて定義データに書き込む書込手段
をコンピュータに実現するためのコンピュータ実行可能なプログラム。
【請求項１８】
前記依頼手段は、さらに、前記出力条件が前記ベンダ間共通の設定項目に該当する場合であって、出力先の印刷制御プログラムが該ベンダ間共通の設定項目をサポートしない場合にも、前記出力先の印刷制御プログラムに対し印刷設定画面の表示を依頼する、請求項１７に記載のプログラム。
【請求項１９】
前記依頼手段は、該印刷制御プログラムが印刷設定構造体のいずれのメンバを使用するかを表すフラグを該印刷設定構造体から読み出して、前記サポートの有無を判断する、請求項１８に記載のプログラム。
【請求項２０】
請求項１７〜１９のいずれか１項に記載のプログラムを格納するコンピュータ可読な記録媒体。
【請求項２１】
指定される印刷設定を変更して印刷要求を処理するためのルールを規定する定義データを作成するとともに、指定された印刷設定を前記ルールに応じて変更して印刷要求を処理し、印刷制御プログラムに対し変更後の印刷設定を通知する情報処理装置であって、
印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件との入力を受け付ける受付手段と、
前記出力条件が、印刷設定データ構造のパブリック部に規定されるベンダ間共通の設定項目に該当するか、前記印刷設定データ構造のプライベート部に規定される固有の設定項目に該当するかを判定する手段と、
前記固有の設定項目に該当する場合に、出力先の印刷制御プログラムに対し印刷設定画面の表示を依頼する依頼手段と、
前記印刷設定画面を介して設定済みの印刷設定データ構造が取得された場合に、該設定済みの印刷設定データ構造を前記入力条件に対応付けて定義データに書き込む書込手段と、
印刷要求に応答して、印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件とを対応付けるルールにより、該印刷要求が合致する入力条件に対応する出力条件を判定する手段と、
判定された出力条件が、印刷設定の変更が反映された設定済みの印刷設定データ構造の使用を規定するかを判定する手段と、
使用が規定される場合には対応する設定済みの印刷設定データ構造を、使用が規定されない場合には対応する印刷制御プログラムから取得した標準の印刷設定データ構造を、前記印刷要求で指定される印刷設定で一部上書きする手段と
を含む、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、より詳細には、クライアント端末から指令される印刷ジョブを特定の条件に従って出力先を振り分けて印刷するための情報処理装置、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、官公庁、企業等のオフィス環境では、ＭＦＰ(Multi-Function Peripheral)やレーザプリンタなど複数の画像形成装置がネットワークに接続されており、これら複数の画像形成装置が種々のロケーションから利用可能とされていることが多くなっている。一方、上述したような複数のロケーションから複数の画像形成装置が利用可能な環境では、ネットワーク上の複数の出力先の中から所望の出力先を選択する際に、指定ミスによって、不便を生じさせたり、情報漏洩などの問題を生じさせたりする場合があった。このような背景から、端末の識別情報等に応じて自動的に適切な出力先に振り分けたいという要望がある。
【０００３】
また、上記複数の画像形成装置が利用可能な環境では、管理者の視点からは、ネットワーク上の画像形成装置が有する機能を無制限に利用者に解放するのではなく、機能に一定の制限をかけた上で各利用者に提供したいという要望があった。
【０００４】
上述したような要望に応えるために、近年、端末の識別情報や印刷設定等に応じて、出力先および印刷設定を強制的に変更して、出力先の振り分けおよび機能制限を行う技術の開発が試みられている。また、上記オフィス環境は、複数のベンダから提供されたプリンタが混在するような環境も多いため、ベンダ、プリンタ言語、機種の異同にかかわらず利用可能とする、いわゆるマルチベンダ対応のシステムの開発が試みられている。
【０００５】
例えば、本願出願人が出願した特願２００９−１４３１６１号は、アプリケーション実行手段からのジョブデータを受領し、ページ毎にイメージデータを生成するとともに、ジョブデータから抽出される面付情報および印刷設定を記述して印刷設定データを生成する仮想プリンタドライバ手段と、出力先の選択および出力内容の変更を条件付ける規則に従って仮想プリンタドライバ手段により生成されたデータを書き換えるとともに出力先を判定する出力条件制御手段と、書き換えられた後のイメージデータおよび印刷設定データに対応して内容が変更されたジョブとして、決定された出力先に発送する発送手段とを含む、データ処理装置に関するものである。
【０００６】
上記先行技術では、受領したジョブデータからページ毎に共通形式のイメージデータを一旦生成し、ジョブデータから抽出される面付情報および印刷設定が記述される印刷設定データを生成し、出力先を決定した後に、イメージデータおよび印刷設定データを使用してジョブとして出力先に発送する構成により、ベンダの異同にかかわらず、印刷設定の強制的な変更および出力先の振り分けを可能としている。
【０００７】
しかしながら、印刷設定を記述する汎用のデータ構造であるＤＥＶＭＯＤＥ構造体のパブリック部分に対応する一部の機能については、比較的容易に印刷設定の変更を行うことが可能であるものの、パブリック部分以外のプリンタドライバ特有の情報を含むプライベート部分については、ベンダ間で自由に取り決められるため、機械的に正しく変更することは困難である。また、パブリック部分の機能であっても、プリンタドライバによってはサポートしていない機種のものもあり、この場合、プライベート部分に設定が保存されているため、上記と同様に機械的に正しく変更することは困難である。したがって、印刷設定を動的に変更する上で何ら工夫を施さなければ、すべての機種のプリンタドライバのすべての機能に対応することはきわめて困難である。
【０００８】
機種毎に異なる設定条件に対応する技術としては、特開２００５−２２８２０２号公報（特許文献１）の技術がある。特許文献１は、機種毎に異なる駆動条件を簡易かつ的確に設定することを目的として、コンピュータにて駆動される周辺器機の駆動条件を設定するにあたり、上記周辺器機の駆動条件設定のために実施する処理の手順を示すデータであって、上記周辺器機の機種毎に決められた処理手順データを記録した記録媒体から、使用対象となっている周辺器機の機種に対応する処理手順データを参照するように設定し、上記周辺器機の駆動条件を設定するために実施する処理を示す実施処理データを受け付け、同実施処理データ受付工程にて受け付けた処理についての処理手順データを参照し、その手順に従った処理を実行することによって上記駆動条件の設定を行うことを特徴する、駆動条件設定装置を開示する。
【０００９】
しかしながら、上記特許文献１に開示される従来技術では、各機種毎に処理手順データを準備しなければならず、すべてのベンダから協力を得ることは難しく、随時リリースされる周辺器機等のすべての機種を網羅して処理手順データを準備することは現実的ではない。したがって、あらゆる既存の機種のプリンタドライバに個別に対応するのではなく、汎用的に種々の機種のプリンタドライバに対応可能とする技術の開発が必要である。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、上記問題点に鑑みてなされたものであり、本発明は、所定の条件に応じて、印刷設定を強制的に変更し、所望の出力先の画像形成装置に振り分ける際に、その変更対象の設定項目が、決定された出力先プリンタドライバ固有なものであっても、上記所定の条件に応じて正しく印刷設定を変更することが可能な、情報処理装置、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では、上記課題を解決するために、下記特徴を備える情報処理装置を提供する。本発明の情報処理装置は、印刷要求に応答して、印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件とを対応付けるルールにより、該印刷要求が合致する入力条件に対応する出力条件を判定し、判定された出力条件が、印刷設定の変更が反映された設定済みの印刷設定データ構造の使用を規定するかを判定する。本情報処理装置は、使用が規定される場合には対応する設定済みの印刷設定データ構造を、使用が規定されない場合には対応する印刷制御プログラムから取得した標準の印刷設定データ構造を、上記印刷要求で指定される印刷設定で一部上書きする。これにより、ユーザ指定された印刷設定をルールに応じて変更して印刷要求を処理し、印刷制御プログラムに対し変更後の印刷設定を通知する。
【００１２】
また本発明では、指定される印刷設定を変更して印刷要求を処理するための上記ルールを規定する定義データを作成する情報処理装置を提供することができる。本情報処理装置は、印刷設定の変更を規定する出力条件と該出力条件の適用を条件付ける入力条件との入力を受け付け、上記出力条件が、印刷設定データ構造のパブリック部に規定されるベンダ間共通の設定項目に該当するか、上記印刷設定データ構造のプライベート部に規定される固有の設定項目に該当するかを判定する。本情報処理装置は、固有の設定項目に該当する場合に、出力先の印刷制御プログラムに対し印刷設定画面の表示を依頼し、印刷設定画面を介して設定済みの印刷設定データ構造を取得し、該設定済みの印刷設定データ構造を上記入力条件に対応付けて定義データに書き込む。
【００１３】
さらに本発明では、上記特徴を有する情報処理装置を実現するコンピュータ実行可能なプログラム、および該プログラムを格納するコンピュータ可読な記録媒体を提供することができる。
【発明の効果】
【００１４】
上記構成によれば、印刷要求の処理に際して、印刷要求が合致する入力条件に対応する出力条件が、設定済みの印刷設定データ構造の使用を規定している場合に、その設定済みの印刷設定データ構造を使用するため、出力条件がベンダ固有または機種固有の設定項目の変更を規定する場合であっても、条件付けられた印刷設定の変更を最終的な印刷設定に反映することができる。さらに、上記構成によれば、ルールを規定する定義データを作成する際に、出力条件が印刷設定データ構造のプライベート部に規定される固有の設定項目の変更を条件付ける場合に、出力先の印刷制御プログラムを使用して設定済みの印刷設定データ構造を取得し、その使用を定義データに書き込むため、ベンダ固有または機種固有の設定項目の変更を規定するルールを作成することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態のプリントシステムの概略構成図。
【図２】本実施形態のプリントシステムの概略的な機能ブロック図。
【図３】本実施形態のプリントシステムの詳細な機能ブロック図。
【図４】ルール定義データおよび設定済みＤＥＶＭＯＤＥ構造体を作成するルール定義処理を示すフローチャート。
【図５】ディスプレイ装置上に表示される、入力条件を設定するための入力条件設定画面を例示する図。
【図６】ディスプレイ装置上に表示される、出力条件を設定するための出力条件設定画面を例示する図。
【図７】ディスプレイ装置上に表示される、プリンタドライバＵＩの印刷設定用画面を例示する図。
【図８】（Ａ）ルール定義データおよび（Ｂ）設定済みＤＥＶＭＯＤＥ構造体のデータ構造を例示する図。
【図９】ルール定義データに従った印刷ジョブ処理を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。以下の実施形態では、指定される印刷設定を変更して印刷要求を処理するためのルール定義データを作成する情報処理装置、およびルール定義データに応じて印刷設定を変更して印刷要求を処理し、印刷制御プログラムに対し変更後の印刷設定を通知する情報処理装置として、プリントシステム１００を構成するアプリケーション・サーバ１１０を一例として説明する。
【００１７】
図１は、本実施形態のプリントシステム１００の概略構成を示す。図１に示すプリントシステム１００は、オフィスなどに配置される複数のクライアント１１２，１１４，１１６，１１８とアプリケーション・サーバ１１０とがネットワーク１０２に接続されて構成されており、アプリケーション・サーバ１１０は、上記クライアント１１２〜１１８に対し、ドキュメントビュアなどのアプリケーション機能と、本実施形態の仮想プリンタドライバ（詳細は後述する。）の機能とを提供する。
【００１８】
また図１に示す例示的な実施形態では、ネットワーク１０２には、さらに、ＭＦＰ１２２、レーザプリンタ１２４，１２６およびインクジェットプリンタ１２８などが接続されている。本実施形態では、上記ＭＦＰ１２２、レーザプリンタ１２４，１２６、インクジェットプリンタ１２８を、以下、リモートプリンタとして総称する。また、ネットワーク１０２には、プリンタサーバ１３０が接続されており、プリンタサーバ１３０は、各リモートプリンタ１２４〜１２８を管理する。なお、プリンタサーバ１３０は、説明する実施形態では、独立した専用サーバとして実装するものとして説明するが、他の実施形態では、アプリケーション・サーバ１１０、いずれかのクライアン上に実装されてもよい。
【００１９】
アプリケーション・サーバ１１０は、ネットワーク１０２上の各クライアント１１２〜１１８から受信するアプリケーション・サービス要求を処理し、その処理結果を要求元のクライアントに返す。上記サービス要求としては、説明する実施形態では、例えば、所定のドキュメントをビュア上で開く旨の指示、印刷設定の指示、ドキュメントの印刷指示などを挙げることができる。
【００２０】
クライアントにおいて、印刷設定がユーザ指定され、印刷指示が行われると、アプリケーション・サーバ１１０は、クライアントからの印刷指示を受領し、当該クライアントを要求元とする印刷ジョブ（印刷要求）として印刷データを作成する。それからアプリケーション・サーバ１１０は、所与のルールに従い、出力先および印刷設定の変更内容を適宜決定し、プリンタサーバ１３０に対し、変更後の印刷設定を通知するとともに印刷ジョブの実行を指令する。プリンタサーバ１３０は、印刷ジョブの実行指令に応答して、出力先として決定されたリモートプリンタに対して印刷ジョブを実行させる。
【００２１】
出力先とするリモートプリンタは、一例としては、クライアント１１２〜１１８に対応して決定することができる。例えば、各クライアントが設置されたロケーションまたは近隣のロケーションに配置されたリモートプリンタを出力先として決定することができる。なお、このような対応関係は、本プリントシステム１００の管理者により定義可能とされている。
【００２２】
図１中、点線で囲まれた領域１４０，１５０，１６０は、同一のロケーションと見なされる拠点を表している。図１に示した実施形態では、クライアント１１２−リモートプリンタ１２２とが対応付けられてロケーション１４０を構成し、その他の各クライアントと各プリンタとが対応付けられてロケーション１５０、１６０を構成している。なお、クライアントおよびリモートプリンタは、各ロケーション１４０〜１６０に複数存在することもでき、クライアントのみまたはリモートプリンタのみのロケーションがあってもよい。
【００２３】
アプリケーション・サーバ１１０は、サーバ、ワークステーション、パーソナル・コンピュータとして実装され、シングルコア、マルチコアのＣＰＵ、ＲＯＭ、実行空間を提供するＲＡＭ、ハードディスク装置などを含み、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘサーバ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）などのオペレーティングシステム（ＯＳ）による制御の下、後述する各機能部を実現し、各印刷ジョブについて印刷設定および出力先を制御する。なお、プリンタサーバ１３０は、ハードウェア構成およびＯＳ構成についてアプリケーション・サーバ１１０と同様の構成とすることができる。
【００２４】
クライアント１１２〜１１８は、それぞれ同様の構成を有しており、いわゆるシンクライアントとして実装することができる。シンクライアントは、専らアプリケーション・サーバ１１０に対して、ＲＤＰなどの適切な遠隔接続プロトコルを使用して、サービス要求を発行し、処理結果を受領する機能を実装する。クライアント１１２〜１１８がシンクライアントとして実装される場合では、クライアント１１２〜１１８は、シングルコア、マルチコアのＣＰＵを搭載し、ＲＡＭ、ＲＯＭ、ネットワーク・インタフェース・カード（ＮＩＣ）を含み、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｍａｃ  ＯＳ（登録商標）などの適切なＯＳのもと動作し、アプリケーション・サーバ１１０に対し印刷指示をサービス要求として発行する。
【００２５】
また、他の実施形態では、クライアント１１２〜１１８は、ファットクライアント、例えば、それぞれがアプリケーション・プログラムを実装し、各種処理を完結するパーソナル・コンピュータ、ワークステーション、携帯端末などから構成することができる。ファットクライアントとして実装されるクライアントは、ハードディスク装置、フラッシュ・メモリなどからアプリケーション・プログラムおよびデータをＲＡＭに読込んで、ＣＰＵがアプリケーション・プログラムを実行させることにより、適切なＯＳのもと動作する。この場合、ファットクライアントは、ファットクライアント上のアプリケーション上で、ドキュメントの電子データから当該クライアントを要求元とする印刷ジョブとして印刷データを作成し、この印刷データをアプリケーション・サーバ１１０に対し送信することができる。
【００２６】
ネットワーク１０２は、１０００Ｂａｓｅ−ＴＸなどのイーサネット（登録商標）、光ネットワーク、ＩＥＥＥ８０２．１１などの規格の無線ネットワークを含んで構成することができ、フレームまたはＴＰＣ／ＩＰプロトコルに基づくパケット通信によって、相互通信を行う。また、ネットワーク１０２は、ＬＡＮの他、ＶＰＮ(Virtual Private Network)などによるセキュア環境下で構築されたインターネットなどの広域ネットワークを含んで構成されていてもよい。
【００２７】
図２は、本実施形態のプリントシステム１００の概略的な機能ブロックを示す。図２に示すように、本実施形態のアプリケーション・サーバ１１０は、ドキュメントビュア等のアプリケーション２１０と、複数のクライアント１１２〜１１８から指示されるアプリケーション２１０による印刷ジョブを一元的に処理する仮想プリンタドライバ２２０とを含んで構成される。プリンタサーバ１３０上では、当該プリントシステム１００にインストール済みの各リモートプリンタの各プリンタドライバ２６０Ａ〜２６０Ｄが動作している。プリンタドライバ２６０は、本実施形態の印刷制御プログラムを構成する。
【００２８】
仮想プリンタドライバ２２０は、出力先および印刷設定の変更内容を条件付けるルールが定義されるルール定義データ２３８を備える。出力先および印刷設定の変更内容に関しては詳細を後述するが、出力先および印刷設定の変更内容を規定する出力条件は、クライアントのＭＡＣアドレス（Media Access Control Address）、ＩＰアドレス（Internet Protocol Address）などの端末固有情報、ログインユーザ名やユーザ権限などのユーザ固有情報、ユーザ指定された印刷設定内の各設定項目、文書名、ページ数などの印刷ジョブの内容に関するジョブ内容情報といった種々のキー項目に対し設定される入力条件に対応付けられる。
【００２９】
アプリケーション２１０は、ネットワーク１０２を介してクライアント１１２〜１１８から所定ドキュメントの印刷指示を受領すると、ＧＤＩなどのＡＰＩコールを経て印刷ジョブの印刷データを作成し、その後、仮想プリンタドライバ２２０を呼出し、作成した印刷データを送信して、当該印刷ジョブの処理を指令する。
【００３０】
仮想プリンタドライバ２２０は、アプリケーション２１０からの呼出しに応答して、アプリケーション２１０から印刷データを受信し、印刷ジョブに対する処理を開始する。印刷ジョブに対する処理が開始されると、仮想プリンタドライバ２２０は、上記ルール定義データ２３８を参照して、印刷指示の要求元の識別情報（端末固有情報およびユーザ固有情報など）やユーザ指定の印刷設定内の設定項目をキーとして、合致する入力条件に対応付けられた出力条件を取得し、出力先を決定するとともに印刷設定の変更内容を決定し、当該印刷ジョブの印刷設定を確定する。仮想プリンタドライバ２２０は、続いて、決定された出力先のプリンタドライバ２６０を呼出し、変更後の印刷設定を通知して、印刷ジョブを実行指令する。
【００３１】
例えば、ロケーション１５０内のクライアント１１６およびリモートプリンタ１２６がルール定義データ２３８内で対応付けられている場合、クライアント１１６からアプリケーション２１０に対し印刷指示が行われると、仮想プリンタドライバ２２０は、リモートプリンタ１２６を出力先として決定し、プリンタサーバ１３０上の対応するプリンタドライバ２６０Ａを経由して、同一ロケーション１５０のリモートプリンタ１２６へ印刷ジョブが実行指令される。この場合、ユーザＡは、自らのロケーション１５０に設置されたリモートプリンタ１２６から印刷物を取得することができる。また、ロケーション１６０内のクライアント１１８およびリモートプリンタ１２８が対応付けられている場合も同様に、クライアント１１８から印刷指示が行われると、仮想プリンタドライバ２２０がリモートプリンタ１２８を出力先として決定し、自らのロケーション１６０に設置されたリモートプリンタ１２８から印刷物を取得することができる。
【００３２】
図３は、図２に示したプリントシステム１００の詳細な機能ブロックを示す。図３に示すように、本実施形態の仮想プリンタドライバ２２０は、より詳細には、印刷受付部２２２と、出力情報作成部２２４と、印刷処理部２２６と、中間データ格納部２２８と、ルール定義格納部２３６と、ＤＥＶＭＯＤＥ格納部２４０とを含んで構成される。
【００３３】
本実施形態では、クライアント１１６からアプリケーション２１０へ印刷指示が行われると、仮想プリンタドライバ２２０の印刷受付部２２２は、ユーザ指定された印刷設定のＤＥＶＭＯＤＥ構造体を含む印刷ジョブの印刷データをアプリケーション２１０から受信し、出力情報作成部２２４および印刷処理部２２６と連携しながら、ルール定義データ２３８に従って当該印刷ジョブを処理する。
【００３４】
上記ルール定義データ２３８は、ルール定義格納部２３６に格納されており、ルール定義データ２３８は、好適には、特定の用途に応じてユーザ定義可能なファイルとして提供される。ルール定義格納部２３６は、出力情報作成部２２４からの要求に応答してルール定義データ２３８の読み込みを行う。ルール定義データ２３８には、端末固有情報、ユーザ固有情報、ユーザ指定の印刷設定の設定項目またはジョブ内容情報などの入力条件と、印刷設定の変更内容および出力先を規定する出力条件とが対応付けて定義されており、出力条件により適用すべき出力条件を条件付けている。印刷ジョブの処理に際しては、当該印刷ジョブが合致する入力条件に対応付けられる出力条件が特定され、これにより出力先が決定され、印刷設定が変更される。
【００３５】
上記ユーザ指定される印刷設定の設定項目は、種々のベンダにより提供される様々な機種に対応させるべく、ＤＥＶＭＯＤＥ構造体のパブリック部に対応するベンダ間共通の印刷設定の設定項目を含み、上述したように入力条件としても使用される。上記共通の設定項目としては、例えばカラー設定や両面印刷の指定などを挙げることができる。これに対して、ルール定義データ２３８において出力条件として規定される印刷設定の設定項目は、ＤＥＶＭＯＤＥ構造体のパブリック部に対応する共通の設定項目に加え、ベンダ固有または機種固有の機能をも利用可能にするべく、ＤＥＶＭＯＤＥ構造体のプライベート部に対応するベンダまたは機種固有の設定項目も含むことができる。
【００３６】
出力条件としてパブリック部の共通の設定項目が規定される場合、この設定項目はベンダ間で仕様が共通して定められているため、上述したように、ＤＥＶＭＯＤＥ構造体における対応する設定項目の値を変更後の所与の値に上書きすること（例えば、Color=colorをColor=monochromeに上書きする）により、当該設定項目を容易に変更することができる。しかし、固有の設定項目については、ベンダ間で共通に仕様が定められているというわけではないため、同様な処理により必ずしも印刷設定を正しく変更できるとは限らない。
【００３７】
そこで本実施形態では、固有の設定項目の変更を定義する際には、その固有の設定項目の内容が設定されているＤＥＶＭＯＤＥ構造体を予め準備しておく。そして、印刷ジョブの処理に際し、固有の設定項目の変更が条件付けられる場合には、予め変更内容を反映して保存しておいた設定済みＤＥＶＭＯＤＥ構造体を読み出し、これを使用することにより、条件付けられた印刷設定の変更内容を反映させる。
【００３８】
また、パブリック部分の設定項目であっても、プリンタドライバによってはサポートしていない機種のものもあり、この場合、プライベート部分に設定が保存されることになるため、固有の設定項目と同様に、必ずしも印刷設定を正しく変更できるとは限らない。そこで本実施形態では、設定項目の変更を定義する際において、共通の設定項目ではあるが出力先として決定されるプリンタドライバが当該共通の設定項目をサポートしない場合、その共通の設定項目の内容が設定されているＤＥＶＭＯＤＥ構造体を予め準備しておく。印刷ジョブの処理に際しては、未サポートの設定項目の変更が条件付けられる場合には、当該設定済みＤＥＶＭＯＤＥ構造体を読み出し、これを使用する。
【００３９】
上述のような設定済みＤＥＶＭＯＤＥ構造体の使用は、ルール定義データ２３８の出力条件として規定され、ルール定義データ２３８中には、設定済みＤＥＶＭＯＤＥ構造体を特定する情報（ＤＥＶＭＯＤＥ構造体を識別するＩＤまたは、保存先パスおよびファイル名など）が記述され、入力条件と設定済みＤＥＶＭＯＤＥ構造体とが関連付けられる。ＤＥＶＭＯＤＥ格納部２４０は、設定項目の変更の定義に際して作成された設定済みＤＥＶＭＯＤＥ構造体２４２を格納し、出力情報作成部２２４からの要求に応答して設定済みＤＥＶＭＯＤＥ構造体２４２の読み込みを行う。
【００４０】
本実施形態のアプリケーション・サーバ１１０は、ルール定義データ２３８および設定済みＤＥＶＭＯＤＥ構造体２４２を作成するために、さらに、設定入力受付部２５２と、ルール定義データ書込部２５４と、プリンタドライバ・ユーザインタフェース（以下、ユーザ・インタフェースを単にＵＩと表記する。）操作部２５６とを含んで構成される。
【００４１】
設定入力受付部２５２は、当該アプリケーション・サーバ１１０に接続されるキーボードやマウスなどの入力装置２５０または、ＮＩＣなどによるリモート・インタフェースを介してアクセス可能とされており、システム管理者からの、上記入力条件および出力条件の設定入力を受け付けている。設定入力受付部２５２は、管理者により、印刷設定の変更内容として、指定のリモートプリンタ固有の設定項目（つまり、ＤＥＶＭＯＤＥ構造体のパブリック部に該当する以外の機能）を設定するための処理が要求された場合には、プリンタドライバＵＩ操作部２５６を呼出す。
【００４２】
プリンタドライバＵＩ操作部２５６は、指定のリモートプリンタのプリンタドライバ名を設定入力受付部２５２から受け取り、対応するプリンタドライバを呼出し、管理者が使用しているディスプレイ上に印刷設定用ＵＩを表示させる。印刷設定用ＵＩの表示は、例えばＯＳがＷｉｎｄｏｗｓ（登録商標）である場合にはDocumentProperties()ＡＰＩ関数を呼出すことにより行うことができる。そして、管理者が、プリンタドライバの印刷設定用ＵＩにおいて設定入力を行い、ＵＩを閉じると、プリンタドライバＵＩ操作部２５６は、設定済みＤＥＶＭＯＤＥ構造体を受け取り、設定入力受付部２５２に返す。より具体的には、ＯＳがＷｉｎｄｏｗｓ（登録商標）である場合には、DocumentProperties()ＡＰＩ関数を呼出してＵＩ表示を行うと、引数にて予め指定しておいたメモリ領域に設定済みＤＥＶＭＯＤＥ構造体が保存されて戻されてくるので、これにより設定済みＤＥＶＭＯＤＥ構造体を取得することができる。
【００４３】
また管理者により、印刷設定の変更内容としてパブリック部の共通の設定項目の変更が要求された場合であって、変更対象となる共通の設定項目が指定のリモートプリンタにおいて未サポートであった場合は、設定入力受付部２５２は、同様にプリンタドライバＵＩ操作部２５６を呼出すことができる。この場合も、管理者がプリンタドライバの印刷設定用ＵＩにおいて設定入力を行ってＵＩを閉じると、プリンタドライバＵＩ操作部２５６は、設定済みＤＥＶＭＯＤＥ構造体を受け取り、設定入力受付部２５２に返す。なお、指定のリモートプリンタのプリンタドライバが変更対象の設定項目をサポートしているか否かは、ＯＳがＷｉｎｄｏｗｓ（登録商標）である場合には、DocumentProperties()ＡＰＩ関数を呼出し取得したＤＥＶＭＯＤＥ構造体のdmFieldメンバを参照することにより、判断することができる。上記dmFieldsメンバは、プリンタドライバがこの構造体のどのメンバを使うかを表すフラグである。なお、サポートの有無を判定する手法としては、dmFieldメンバの参照に限られず、例えば、ＤＥＶＭＯＤＥ構造体のパブリック部の該当する設定項目を変更して、実際に印刷をしてみて、管理者が設定が反映されたかをチェックし、その結果の手動入力を待ち受けて判断することもできる。
【００４４】
設定入力受付部２５２は、管理者からの入力条件および出力条件の設定入力を受け付けると、当該入力条件および出力条件をルール定義データ書込部２５４に渡し、書き込みを依頼する。設定入力受付部２５２は、さらに、設定済みＤＥＶＭＯＤＥ構造体をプリンタドライバＵＩ操作部２５６から受け取っている場合には、上記入力条件および出力条件とともに設定済みＤＥＶＭＯＤＥ構造体をルール定義データ書込部２５４に渡す。
【００４５】
ルール定義データ書込部２５４は、設定入力受付部２５２からの依頼を受けて、渡された入力条件および出力条件を所定のフォーマットに従いルール定義データ２３８に書き込む。またルール定義データ書込部２５４は、設定済みＤＥＶＭＯＤＥ構造体を受け取った場合には、その設定済みＤＥＶＭＯＤＥ構造体をＤＥＶＭＯＤＥ格納部２４０に保存するとともに、ルール定義データ２３８の出力条件として、その設定済みＤＥＶＭＯＤＥ構造体を特定する情報、例えば保存先パスおよびファイル名を記述する。
【００４６】
なお、上記ルール定義データ２３８および設定済みＤＥＶＭＯＤＥ構造体２４２は、出力情報作成部２２４およびルール定義データ書込部２５４から適切にアクセスできる限り、アプリケーション・サーバ１１０内部に保持している必要はない。例えば、管理者がアクセス可能な共有ファイルサーバ上に配置するなど、利用しやすい形態で配置することができ、これにより、メンテナンス性を向上させることが可能となる。さらに、当該ルール定義データ２３８のファイルについて管理者のみに変更権限を設定することで、セキュリティも好適に確保することが可能となる。
【００４７】
また、インストールされたプリンタドライバが更新された場合には、設定済みのＤＥＶＭＯＤＥ構造体を再度作成しなければならない可能性があるため、ルール定義データ作成プログラムは、各プリンタドライバのバージョンを監視し、更新されたプリンタドライバが発見された場合に設定済みの印刷設定構造体の更新の必要性を管理者に対し通知する機能を備えることが好ましい。このような通知は、例えば、電子メール、次回ルール定義データ作成プログラムにアクセスしたときに表示する警告メッセージ等により行うことができる。
【００４８】
さらに、ルール定義データ作成時に、出力先のプリンタドライバのベンダまたは機種を判定し、所定のベンダまたは機種のプリンタドライバのみをプリンタドライバの印刷設定用ＵＩを用いて設定可能とすることができる。
【００４９】
以下、図４〜図７を参照しながら、ルール定義データ２３８および設定済みＤＥＶＭＯＤＥ構造体２４２を作成する処理について説明する。図４は、ルール定義データ２３８および設定済みＤＥＶＭＯＤＥ構造体２４２を作成するルール定義処理を示すフローチャートを示す。図４に示すルール定義処理は、ルール定義データ作成プログラムの起動に応答してステップＳ１００から開始し、ステップＳ１０１で、設定入力受付部２５２は、入力条件を設定するための設定画面をディスプレイ装置（アプリケーション・サーバ１１０が備えるもの又はリモート接続する端末が備えるもの）上に表示する。
【００５０】
図５は、ディスプレイ装置上に表示される、入力条件を設定するための入力条件設定画面３００を例示する。図５に示す入力条件設定画面３００は、入力条件としてＩＰアドレスを入力するためのテキストボックス群３０２と、ＩＰアドレスを入力条件としない旨を指示するためのラジオボタン３０４とを含む。入力条件設定画面３００は、また、入力条件としてカラー印刷の値（カラー又はモノクロ）を指定し、またはカラー印刷を入力条件としない旨を指示するためのラジオボタン群３０６と、入力条件として両面印刷の値（ＯＮ又はＯＦＦ）を指定し、または両面印刷を入力条件としない旨を指示するためのラジオボタン群３０８と、設定手順を次へ進めるためのＯＫボタン３１０とを含む。
【００５１】
ＵＩ部品３０２〜３０８を介して入力条件が設定入力され、ＯＫボタン３１０がクリックされると、当該入力条件設定画面３００を介して設定入力された入力条件の各値が、設定入力受付部２５２に戻される。再び図４を参照すると、設定入力受付部２５２は、ステップＳ１０２で、上記入力条件設定画面３００を介して入力条件の入力を受け付け、ステップＳ１０３で、出力条件を設定するための設定画面をディスプレイ装置上に表示する。
【００５２】
図６は、ディスプレイ装置上に表示される、出力条件を設定するための出力条件設定画面３２０を例示する。図６に示す出力条件設定画面３２０は、インストール済みプリンタ群の中から出力先リモートプリンタを選択するためのプルダウンメニュー３２２と、出力条件として印刷しない旨を指定するためのラジオボタン３２４とを含む。出力条件設定画面３２０は、また、出力条件として指定するカラー印刷の変更後の値（カラー又はモノクロ）を指定し、またはカラー印刷を出力条件としない旨を指示するためのラジオボタン群３２６と、出力条件として指定する両面印刷の変更後の値（ＯＮ又はＯＦＦ）を指定し、または両面印刷を出力条件としない旨を指示するためのラジオボタン群３２８と、出力先リモートプリンタが指定される場合に、当該プリンタ独自の機能を使用して出力を行う旨を要求するためのチェックボックス３３０と、設定手順を次へ進めるためのＯＫボタン３３２とを含む。
【００５３】
ＵＩ部品３２２〜３３０を介して出力条件が設定入力され、ＯＫボタン３３２がクリックされると、当該出力条件設定画面３２０を介して設定入力された出力条件の各値が、設定入力受付部２５２に戻される。再び図４を参照すると、設定入力受付部２５２は、ステップＳ１０４で、上記出力条件設定画面３２０を介して出力条件の入力を受け付け、ステップＳ１０５へ処理を進める。
【００５４】
ステップＳ１０５では、設定入力受付部２５２は、上記出力条件設定画面３２０のラジオボタン３２４により「印刷しない」が選択されているか否かを判定する。ステップＳ１０５で、「印刷しない」が選択されていないと判定された場合（ＮＯ）には、ステップＳ１０６へ処理を進める。ステップＳ１０６では、設定入力受付部２５２は、さらに、ＤＥＶＭＯＤＥ構造体のパブリック部の共通の設定項目の変更が指定されているか否かを判定する。ステップＳ１０６で、共通の設定項目の変更ありと判定された場合（ＹＥＳ）には、ステップＳ１０７へ処理を進める。ステップＳ１０７では、設定入力受付部２５２は、例えばプリンタドライバ名を指定してDocumentProperties()ＡＰＩ関数を呼出すなどにより、指定のリモートプリンタのプリンタドライバが当該設定項目をサポートしているかを確認する。
【００５５】
ステップＳ１０８で、サポートされている場合（ＹＥＳ）は、ステップＳ１０９へ処理を分岐させる。またステップＳ１０６で、共通の設定項目の変更なしと判定された場合（ＮＯ）にも、ステップＳ１０９へ処理を進める。ステップＳ１０９では、設定入力受付部２５２は、さらに、ＤＥＶＭＯＤＥ構造体のプライベート部の固有の設定項目の変更が指定されたか否かを判定する。ステップＳ１０９で、固有の設定項目の変更ありと判定された場合（ＹＥＳ）には、プリンタドライバのＵＩを介して管理者による設定を受けるため、ステップＳ１１０へ処理を進める。また、ステップＳ１０８で、プリンタドライバが共通の設定項目をサポートしていないと判定された場合（ＮＯ）にも、ステップＳ１１０へ処理を直接進める。
【００５６】
ステップＳ１１０では、設定入力受付部２５２は、プリンタドライバＵＩ操作部２５６を呼出し、プリンタドライバＵＩ操作部２５６は、プリンタドライバの印刷設定用ＵＩをディスプレイ装置上に表示する。図７は、ディスプレイ装置上に表示される、プリンタドライバＵＩの印刷設定用画面３４０を例示する。図７に示す印刷設定用画面３４０は、印刷設定の各設定項目を設定するためのＵＩ部品群３４２と、設定手順を次へ進めるためのＯＫボタン３４４とを含む。ＵＩ部品群３４２を介して設定項目の値が入力され、ＯＫボタン３４４がクリックされると、当該印刷設定用画面３４０を介して入力された設定項目の各値が設定された設定済みＤＥＶＭＯＤＥ構造体がプリンタドライバＵＩ操作部２５６に戻される。なお、印刷設定用画面３４０を介して設定される設定項目は、共有または固有の別を問わない。再び図４を参照すると、ステップＳ１１１では、プリンタドライバＵＩ操作部２５６は、戻された上記設定済みＤＥＶＭＯＤＥ構造体を取得し、それを設定入力受付部２５２へ返し、ステップＳ１１２へ処理を進める。
【００５７】
また、上記ステップＳ１０９で共通の設定項目の変更なしと判定された場合（ＮＯ）、またはステップＳ１０５で「印刷しない」が選択されていると判定された場合（ＹＥＳ）には、ステップＳ１１２へ直接処理が進められる。ステップＳ１１２では、設定入力受付部２５２は、管理者が設定入力した入力条件と、出力条件と、適宜設定済みＤＥＶＭＯＤＥ構造体とをルール定義データ書込部２５４に渡し、定義データの書き込みを依頼する。またステップＳ１１２では、依頼に応答して、ルール定義データ書込部２５４は、渡された入力条件と、出力条件と、適宜設定済みＤＥＶＭＯＤＥ構造体とを関連付けて、ルール定義データ２３８に書き込み、適宜ＤＥＶＭＯＤＥ構造体をＤＥＶＭＯＤＥ格納部２４０に格納する。
【００５８】
ステップＳ１１３では、設定入力受付部２５２は、管理者に対し、さらにルール定義データの定義内容の追加が必要であるかを問い合わせ、追加が必要であり処理を終了できない場合（ＮＯ）には、ステップＳ１０１へ再びループさせる。一方、ステップＳ１１３で、定義内容の追加が不要であり処理を終了させる場合（ＹＥＳ）には、ステップＳ１１４へ処理を分岐させ、本処理を終了させる。
【００５９】
図８（Ａ）は、ルール定義データのデータ構造を例示する。図８（Ａ）に示すルール定義データ３６０では、［Condition1］および［Condition2］の箇所に入力条件が定義され、［Setting1］および［Setting2］の箇所に出力条件が定義されている。そして、［Command］で示した箇所で、上記入力条件および出力条件が関連付けられる。図８（Ａ）に示す例では、入力条件「IP=xxx.xxx.xxx.001」および出力条件「Printer=printerA」が関連付けられており、印刷指示の要求元ＩＰアドレスが「xxx.xxx.xxx.001」である場合には、プリンタ名「printerA」で識別されるリモートプリンタを出力先に決定されるようになる。さらに、入力条件「IP=xxx.xxx.xxx.001」および出力条件「Devmode=c:\AA\BB\DevmodeA」が関連付けられており、印刷指示の要求元ＩＰアドレスが「xxx.xxx.xxx.001」である場合には、さらに、「c:\AA\BB\DevmodeA」で特定される設定済みＤＥＶＭＯＤＥ構造体の使用が規定されている。さらに、図８（Ａ）の例では、入力条件「Color=color」および出力条件「Color= monochrome」が関連付けられており、ユーザ指定の印刷設定におけるカラー設定（これは共有の設定項目である。）が「color」に設定されている場合には、カラー設定を「monochrome」に強制的に変更するようになる。
【００６０】
なお、図８（Ａ）に示すルール定義データ２３８のデータ構造は、例示を目的とするものであり、特定の用途に応じて種々のルールが定義付け可能であることは言うまでもない。以下、ルール定義データについて説明を加える。定義可能な入力条件としては、上記ＩＰアドレスやユーザ名のほか、ユーザに付与されたロール、グループ、権限などの他のユーザ固有情報や、クライアントのＭＡＣアドレス、クライアント名ＩＰアドレス範囲などの他の端末固有情報、上述したカラー設定や両面印刷の設定項目の他、ステープル、パンチ、スタンプ等の指定、印刷品質の指定などの印刷設定の設定項目、ページ数、文書名、ジョブ発行時間などのジョブ内容情報を含むことができる。
【００６１】
また、定義可能な出力条件としては、両面印刷への制限、モノクロモードへの制限、地紋印刷への制限、スタンプ付加の制限、電子透かし付加の制限、所定のレイアウトの集約印刷への制限などを含むことができる。ユーザ固有情報を用いた印刷設定の変更の例としては、例えば、管理者ユーザにはカラー印刷を許可し、一般ユーザにはモノクロ印刷に制限するというような規則を挙げることができる。印刷設定の設定項目を用いた印刷設定の変更の例としては、カラーモードの印刷が指定された場合には、所定ページ数以上である場合に２ｉｎ１で集約印刷し、さらに所定ページ数以上である場合に４ｉｎ１で集約印刷するというような規則を挙げることもできる。
【００６２】
このように、印刷ジョブの処理の際に参照されるルール定義データ２３８および設定済みＤＥＶＭＯＤＥ構造体２４２は、上述した定義処理によって作成される。以下、再び図３を参照して、印刷指示を受領した際のルール定義データ２３８を参照しながら実行される処理について説明する。
【００６３】
クライアント１１６からアプリケーション２１０へ印刷指示が行われると、印刷受付部２２２は、印刷ジョブの印刷データをアプリケーション２１０から受信する。この印刷データには、ユーザ指定の印刷設定を格納するＤＥＶＭＯＤＥ構造体が含まれる。本実施形態では、種々のベンダにより提供される機種に対応させるべく、ＤＥＶＭＯＤＥ構造体は、パブリック部に対応するユーザ指定の印刷設定の設定項目を保持する。
【００６４】
印刷受付部２２２は、印刷データを受信すると、ページイメージ（各ページ毎の描画データ）を中間データとして作成し、この中間データ２３０と、印刷指示の要求元クライアントを識別するクライアント識別情報（端末固有情報、ユーザ固有情報）２３２と、ユーザ指定の印刷設定を格納するＤＥＶＭＯＤＥ構造体のパブリック部（以下、ＤＥＶＭＯＤＥパブリック部という。）２３４とを保存するよう中間データ格納部２２８に対し要求し、さらに出力情報作成部２２４を呼出す。この段階では出力先が決定されていないため、この中間データは、様々な機種のプリンタドライバが処理可能な共通形式のデータとされている。このような共通形式のデータとしては、ＥＭＦ（Enhanced Metafile）を例示することができる。中間データ格納部２２８は、保存要求を受けて、中間データ２３０とクライアント識別情報２３２とＤＥＶＭＯＤＥパブリック部２３４とを対応付けて、ハードディスク装置などの記憶装置に格納する。
【００６５】
出力情報作成部２２４は、中間データ格納部２２８を呼出し、上記保存された中間データ２３０、クライアント識別情報２３２およびＤＥＶＭＯＤＥパブリック部２３４を読み出す。出力情報作成部２２４は、さらに、ルール定義格納部２３６を呼出し、クライアント識別情報、ＤＥＶＭＯＤＥパブリック部２３４の各設定項目をキーとして、対応する出力条件を取得し、出力先および印刷設定の変更内容を判定する。出力情報作成部２２４は、特定された出力条件に設定済みＤＥＶＭＯＤＥ構造体の使用が規定されているか否かを判定し、規定されている場合には、ＤＥＶＭＯＤＥ格納部２４０から必要な設定済みＤＥＶＭＯＤＥ構造体を読み出す。そして、出力情報作成部２２４は、出力先および印刷設定が確定され、必要なデータがそろった後、印刷処理部２２６を呼出す。なお、出力情報作成部２２４は、本実施形態における、印刷要求が合致する入力条件に対応する出力条件を判定する手段、印刷設定データ構造の使用を規定するかを判定する手段を構成する。
【００６６】
印刷処理部２２６は、ルール定義データ２３８中に設定済みＤＥＶＭＯＤＥ構造体の使用が規定されていない場合には、決定された出力先のプリンタドライバ２６０から標準（デフォルト）のＤＥＶＭＯＤＥ構造体を取得する。図８（Ｂ）は、取得されるＤＥＶＭＯＤＥ構造体のデータ構造を例示する。図８（Ｂ）に示すＤＥＶＭＯＤＥ構造体３８０は、カラー設定（Color）および両面印刷（Duplex）の指定を含むパブリック部３８２と、当該リモートプリンタの独自機能（Specific X〜Z）の指定を含むプライベート部３８４とから構成される。印刷処理部２２６は、取得した標準のＤＥＶＭＯＤＥ構造体体、またはＤＥＶＭＯＤＥ格納部２４０から読み出した設定済みＤＥＶＭＯＤＥ構造体を、ユーザ指定の印刷設定を規定するＤＥＶＭＯＤＥパブリック部２３４で一部上書きし、さらに、出力条件に共通の設定項目の変更が規定される場合には、変更対象の設定項目の内容で一部上書きする。なお、印刷処理部２２６は、本実施形態の印刷設定で一部上書きする手段を構成する。
【００６７】
印刷処理部２２６は、変更後の印刷設定が確定すると、上書きされた最終的なＤＥＶＭＯＤＥ構造体を使用して、プリンタサーバ１３０上の、決定された出力先のリモートプリンタに対応するプリンタドライバ２６０に対し、当該印刷ジョブの実行を指令する。このとき、この最終的なＤＥＶＭＯＤＥ構造体が保持する変更後の印刷設定がプリンタドライバに通知される。プリンタサーバ１３０は、対応するプリンタドライバ２６０を使用して、印刷ジョブの実行指令に応答して、出力先として決定されたリモートプリンタに対して印刷ジョブを実行させる。
【００６８】
以下、図９を参照しながら、ルール定義データに従った印刷ジョブ処理について説明する。図９は、ルール定義データ２３８に従った印刷ジョブ処理を示すフローチャートを示す。図９に示す印刷ジョブ処理は、クライアント１１６からアプリケーション２１０へ印刷指示が行われ、アプリケーション２１０が印刷ジョブの印刷データを印刷受付部２２２に送信したことに応答して、ステップＳ２００から開始する。ステップＳ２０１で、印刷受付部２２２は、印刷ジョブの印刷データをアプリケーション２１０から受信し、ステップＳ２０２で、中間データ２３０、クライアント識別情報２３２およびＤＥＶＭＯＤＥパブリック部２３４の保存を中間データ格納部２２８に要求し、ステップＳ２０３で、出力情報作成部２２４を呼出す。
【００６９】
ステップＳ２０４では、出力情報作成部２２４は、中間データ格納部２２８から、ステップＳ２０２で保存された中間データ２３０、クライアント識別情報２３２およびＤＲＶＭＯＤＥパブリック部２３４を読み込む。ステップＳ２０５では、出力情報作成部２２４は、ルール定義格納部２３６により、ルール定義データ２３８を検索し、クライアント識別情報２３２およびＤＲＶＭＯＤＥパブリック部２３４が合致する入力条件に対応付けられる出力条件（出力先、印刷設定の変更内容）を取得し、出力情報を作成する。ここで、出力情報は、中間データ２３０、クライアント識別情報２３２、ＤＥＶＭＯＤＥパブリック部２３４および出力条件含む、出力に必要な情報をいう。ステップＳ２０６では、出力情報作成部２２４は、出力条件中に設定済みＤＥＶＭＯＤＥ構造体２４２の使用が規定されているか否かを判定する。
【００７０】
ステップＳ２０６で、設定済みＤＥＶＭＯＤＥ構造体２４２を使用すると判定された場合（ＹＥＳ）には、ステップＳ２０７へ処理が進められる。ステップＳ２０７では、出力情報作成部２２４は、ＤＥＶＭＯＤＥ格納部２４０から出力条件に対応する設定済みＤＥＶＭＯＤＥ構造体を読み込み、ステップＳ２０８へ処理を進める。また、ステップＳ２０６で、設定済みＤＥＶＭＯＤＥ構造体２４２を使用しないと判定された場合（ＮＯ）には、ステップＳ２０８へ直接処理が進められる。ステップＳ２０８では、出力情報作成部２２４は、出力情報および適宜設定済みＤＥＶＭＯＤＥ構造体を渡して、印刷処理部２２６を呼出す。
【００７１】
ステップＳ２０９では、印刷処理部２２６は、設定済みＤＥＶＭＯＤＥ構造体があるか否かを判定する。ステップＳ２０９で、設定済みＤＥＶＭＯＤＥ構造体がないと判定された場合（ＮＯ）には、ステップＳ２１０へ処理を進める。ステップＳ２１０では、印刷処理部２２６は、出力条件に規定された出力先のプリンタドライバ２６０から標準のＤＥＶＭＯＤＥ構造体を取得し、ステップＳ２１１へ処理を進める。一方、ステップＳ２０９で、設定済みＤＥＶＭＯＤＥ構造体があると判定された場合（ＹＥＳ）には、ステップＳ２１１へ直接処理を進める。
【００７２】
印刷処理部２２６は、ステップＳ２１１では、ステップＳ２１０で取得した標準のＤＥＶＭＯＤＥ構造体、またはステップＳ２０７で読み込まれた設定済みＤＥＶＭＯＤＥ構造体に対し、ユーザ指定の印刷設定を保持するＤＥＶＭＯＤＥパブリック部２３４を上書きし、ステップＳ２１２で、さらに、出力条件に規定された変更対象の設定項目の内容を上書きする。ステップＳ２１３では、印刷処理部２２６は、中間データおよび変更後の最終的な印刷設定を保持するＤＥＶＭＯＤＥ構造体を使用し、プリンタドライバ２６０に対し、印刷ジョブを実行指令し、ステップＳ２１４で本処理を終了させる。
【００７３】
以上説明したように、本発明の実施形態によれば、所定の条件に応じて、印刷設定を強制的に変更し、所望の出力先の画像形成装置に振り分ける際に、その変更対象の設定項目が、決定された出力先プリンタドライバ固有なものであっても、上記所定の条件に応じて正しく印刷設定を変更することが可能な情報処理装置、プログラムおよび記録媒体を提供することができる。
【００７４】
本発明の実施形態によれば、種々の印刷設定のうちのベンダ間共通の設定項目のみならず、ベンダ固有または機種固有の設定項目についても、予め定義したルールに応じて変更を加えることが可能となる。また、ベンダ間共通とされる設定項目であっても、機種によっては未サポートの項目ものがあるが、このような場合でも、ルールに応じて変更を加えることが可能となる。したがって、幅広いベンダが提供する画像形成装置に容易に機種対応することができる。
【００７５】
さらに、本発明の実施形態によれば、決定された出力先のプリンタドライバに固有な設定項目の変更を条件付けることができるルール定義データを作成するための情報処理装置、プログラムおよび記録媒体を提供することができる。なお、上述までの実施形態では、印刷設定を保持する印刷設定データ構造として、ＤＥＶＭＯＤＥ構造体を例に説明してきたが、ＸＰＳ（XML Paper Specification ）形式の印刷データを採用する場合には、ＰｒｉｎｔｅｒｅＴｉｃｋｅｔ形式のデータ構造を採用することもできる。
【００７６】
また本発明の実施形態によれば、パーソナル・コンピュータやシンクライアントが複数の画像形成装置にアクセスすることが可能なネットワークプリント環境で、ユーザ固有の情報や端末固有の情報、印刷設定およびジョブ内容に関連して定義付けた規則に従って、柔軟にジョブ出力先および印刷設定を変更および制限し、適切なプリンタから出力させることが可能となり、出力業務ごとの管理を効率化し、さらに情報セキュリティの向上を可能とすることが可能となる。
【００７７】
本実施形態の上記機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００７８】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７９】
１００…プリントシステム、１０２…ネットワーク、１１０…アプリケーション・サーバ、１１２，１１４，１１６，１１８…クライアント、１２２，１２４，１２６，１２８…リモートプリンタ、１３０…プリンタサーバ、１４０，１５０，１６０…ロケーション、２１０…アプリケーション、２２０…仮想プリンタドライバ、２２２…印刷受付部、２２４…出力情報作成部、２２６…印刷処理部、２２８…中間データ格納部、２３０…中間データ、２３２…クライアント識別情報、２３４…ＤＥＶＭＯＤＥパブリック部、２３６…ルール定義格納部、２３８…ルール定義データ、２４０…ＤＥＶＭＯＤＥ格納部、２４２…設定済みＤＥＶＭＯＤＥ構造体、２５０…入力装置、２５２…設定入力受付部、２５４…ルール定義データ書込部、２５６…プリンタドライバＵＩ操作部、２６０…プリンタドライバ、３００…入力条件設定画面、３０２…テキストボックス群、３０４…ラジオボタン、３０６，３０８…ラジオボタン群、３１０…ＯＫボタン、３２０…出力条件設定画面、３２２…プルダウンメニュー、３２４…ラジオボタン、３２６，３２８…ラジオボタン群、３３０…チェックボックス、３３２…ＯＫボタン、３４０…印刷設定用画面、３４２…ＵＩ部品群、３４４…ＯＫボタン、３６０…ルール定義データ、３８０…ＤＥＶＭＯＤＥ構造体、３８２…パブリック部、３８４…プライベート部
【先行技術文献】
【特許文献】
【００８０】
【特許文献１】特開２００５−２２８２０２号公報
【図１】
0005577892.tif 000002
【図２】
0005577892.tif 000003
【図３】
0005577892.tif 000004
【図４】
0005577892.tif 000005
【図５】
0005577892.tif 000006
【図６】
0005577892.tif 000007
【図７】
0005577892.tif 000008
【図８】
0005577892.tif 000009
【図９】
0005577892.tif 000010