(57)【要約】【課題】本発明は、マルチベンダー環境下の印刷先自動振り分けにおいて、各ベンダーに固有の独自機能に係る印刷設定を可能にすることを目的とする。【解決手段】本発明においては、ユーザーが印刷設定用ＵＩの表示を要求した時点で（すなわち、印刷ジョブが作成される前に）、ユーザーがログインした時にＯＳが取得することのできるユーザーの属性情報に基づいて出力先プリンタを自動的に決定する。印刷設定用ＵＩの表示要求がなされた時点で出力先プリンタを決定することによって、出力先プリンタに対応するリモートドライバから必要なDEVMODE構造体を動的に取得して印刷設定用ＵＩに反映させることが可能になる。その結果、ユーザーは、自動決定された出力先プリンタについて、全てのベンダーが共通して提供する基本機能に係る印刷設定のみならず、当該出力先プリンタに固有の独自機能に係る印刷設定が可能となる。【選択図】  図２
2014041600.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の情報処理装置および複数の印刷装置に接続され、前記情報処理装置からの印刷要求に応答して出力データを作成するとともに、自動的に決定した出力先に対して該出力データを送信するデータ処理装置であって、
前記出力データの出力先を決定するための振り分けデータベースと、
表示部を備える第１の印刷処理手段であって、該表示部による印刷設定用画面を介した入力に基づいて印刷設定を行うとともに、前記振り分けデータベースの決定に基づいて前記出力先を決定する、第１の印刷処理手段と
を含み、
前記振り分けデータベースは、
前記情報処理装置の操作権限を有するユーザーの情報を収集し、該ユーザーの情報と該ユーザーに割り当てられた識別子とを対応付けて登録するユーザー情報登録部と、
前記ユーザーの情報と出力先とすべき前記印刷装置を対応付ける出力先対応付けテーブルと、
前記ユーザー情報登録部と前記出力先対応付けテーブルとの参照により、出力データの出力先を決定する出力先決定部と
を含み、
前記表示部は、
前記印刷設定用画面の表示要求に含まれる前記識別子を前記出力先決定部に通知し、
前記出力先決定部は、
通知された前記識別子に紐付いた前記ユーザーの情報に基づく前記ユーザー情報登録部と前記出力先対応付けテーブルとの参照により、前記出力先を決定し、
前記表示部は、
前記出力先決定部によって決定された前記印刷装置を制御する第２の印刷処理手段から印刷設定用データを取得し、該印刷設定用データを利用して前記印刷設定用画面を表示する、
データ処理装置。
【請求項２】
前記ユーザーの情報は、ログイン時にＯＳが取得することのできる前記ユーザーの属性情報である、請求項１に記載のデータ処理装置。
【請求項３】
前記ユーザーの情報は、前記ユーザーのユーザー名、グループ名、ドメイン名および組織名からなる群より選択される少なくとも１つの情報である、請求項２に記載のデータ処理装置。
【請求項４】
前記ユーザーの情報は、前記ユーザーが操作する前記情報処理装置のコンピュータ名、ＩＰアドレスおよびＭＡＣアドレスからなる群より選択される少なくとも１つの情報である、請求項２に記載のデータ処理装置。
【請求項５】
ネットワークを介して複数の情報処理装置および複数の印刷装置に接続され、前記情報処理装置からの印刷要求に応答して出力データを作成するとともに、自動的に決定した出力先に対して該出力データを送信するコンピュータ装置に対して、
前記出力データの出力先を決定するための振り分け手段と、
表示部を備える第１の印刷処理手段であって、該表示部による印刷設定用画面を介した入力に基づいて印刷設定を行うとともに、前記振り分け手段の決定に基づいて前記出力先を決定する、第１の印刷処理手段と
を実現させるためのプログラムであって、
前記振り分け手段は、
前記情報処理装置の操作権限を有するユーザーの情報を収集し、該ユーザーの情報と該ユーザーに割り当てられた識別子とを紐付けて登録するユーザー情報登録手段と、
前記ユーザーの情報と出力先とすべき前記印刷装置を対応付ける出力先対応付けテーブルと、
前記ユーザー情報登録手段と前記出力先対応付けテーブルとの参照により、出力データの出力先を決定する出力先決定手段と
を含み、
前記表示部は、
前記印刷設定用画面の表示要求に含まれる前記識別子を前記出力先決定手段に通知し、
前記出力先決定手段は、
通知された前記識別子に紐付いた前記ユーザーの情報に基づく前記ユーザー情報登録手段と前記出力先対応付けテーブルとの参照により、前記出力先を決定し、
前記表示部は、
前記出力先決定手段によって決定された前記印刷装置を制御する第２の印刷処理手段から印刷設定用データを動的に取得し、該印刷設定用データを利用して前記印刷設定用画面を表示する、
コンピュータ実行可能なプログラム。
【請求項６】
前記ユーザーの情報は、ログイン時にＯＳが取得することのできる前記ユーザーの属性情報である、請求項５に記載のプログラム。
【請求項７】
前記ユーザーの情報は、前記ユーザーのユーザー名、グループ名、ドメイン名および組織名からなる群より選択される少なくとも１つの情報である、請求項６に記載のプログラム。
【請求項８】
前記ユーザーの情報は、前記ユーザーが操作する前記情報処理装置のコンピュータ名、ＩＰアドレスおよびＭＡＣアドレスからなる群より選択される少なくとも１つの情報である、請求項６に記載のプログラム。
【請求項９】
ネットワークを介して複数の情報処理装置および複数の印刷装置に接続され、前記情報処理装置からの印刷要求に応答して出力データを作成するとともに、自動的に決定した出力先に対して該出力データを送信するデータ処理システムであって、
前記出力データの出力先を決定するための振り分けデータベースと、
表示部を備える第１の印刷処理手段であって、該表示部による印刷設定用画面を介した入力に基づいて印刷設定を行うとともに、前記振り分けデータベースの決定に基づいて前記出力先を決定する、第１の印刷処理手段と
を含み、
前記振り分けデータベースは、
前記情報処理装置の操作権限を有するユーザーの情報を収集し、該ユーザーの情報と該ユーザーに割り当てられた識別子とを紐付けて登録するユーザー情報登録手段と、
前記ユーザーの情報と出力先とすべき前記印刷装置を対応付ける出力先対応付けテーブルと、
前記ユーザー情報登録手段と前記出力先対応付けテーブルとの参照により、出力データの出力先を決定する出力先決定手段と
を含み、
前記表示部は、
前記印刷設定用画面の表示要求に含まれる前記識別子を前記出力先決定手段に通知し、
前記出力先決定手段は、
通知された前記識別子に紐付いた前記ユーザーの情報に基づく前記ユーザー情報登録手段と前記出力先対応付けテーブルとの参照により、前記出力先を決定し、
前記表示部は、
前記出力先決定手段によって決定された前記印刷装置を制御する第２の印刷処理手段から印刷設定用データを動的に取得し、該印刷設定用データを利用して前記印刷設定用画面を表示する、
データ処理システム。
【請求項１０】
前記ユーザーの情報は、ログイン時にＯＳが取得することのできる前記ユーザーの属性情報である、請求項９に記載のデータ処理システム。
【請求項１１】
１以上の情報処理装置と、１以上の印刷装置と、データ処理装置とがネットワークを介して接続されたデータ処理システムであって、
前記データ処理装置は、
出力先の前記印刷装置に依存する印刷設定である拡張印刷設定を設定するための項目を含む画像を生成する仮想ＵＩ部と、
前記仮想ＵＩ部が前記画像を介して受け付けた前記拡張印刷設定を記憶する印刷設定格納部と、
イメージデータを受信して印刷ジョブを生成する生成部と、
前記印刷ジョブに含まれる前記イメージデータを、前記印刷装置が受信可能なデータに変換し、変換した前記データを出力データとして出力するリモートドライバと、
前記リモートドライバから前記出力データが出力されたときに、前記出力データに適用する前記拡張印刷設定が前記印刷設定格納部に格納されている場合、前記拡張印刷設定に応じて前記出力データを変更する拡張印刷設定変更部と、
を備えるデータ処理システム。
【請求項１２】
前記印刷設定格納部は、
前記仮想ＵＩ部が前記画像を介して受け付けた前記拡張印刷設定を一意に識別する識別子を更に記憶し、
前記リモートドライバは、
前記識別子を含む前記出力データを出力し、
前記拡張印刷設定変更部は、
前記出力データに含まれる前記識別子により、前記印刷設定格納部の前記拡張印刷設定を検索することにより、前記出力データに適用する前記拡張印刷設定が前記印刷設定格納部に格納されているか否かを確認する
請求項１１に記載のデータ処理システム。
【請求項１３】
前記拡張印刷設定は、ステープルの有無を含む
請求項１１又は１２に記載のデータ処理システム。
【請求項１４】
前記拡張印刷設定は、パンチの有無を含む
請求項１１乃至１３のいずれか１項に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、システムおよびプログラムに関する。
【背景技術】
【０００２】
従来、ユーザーがアプリケーションから１つの仮想プリンタドライバを選択して印刷を実行するだけで、ユーザーが出力先を選択しなくても、予め定められたルールに照らして出力先のプリンタを自動的に決定して印刷出力を実行する印刷先自動振り分けシステムが知られている（例えば、特許文献１、特許文献２、特許文献３）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
印刷機能が異なるプリンタが混在するマルチベンダー環境に印刷先自動振り分けシステムを導入する場合、ユーザーから受け付けた印刷設定が決定された出力先のプリンタで実行できないといったことを避ける必要がある。この点につき、従来の印刷先自動振り分けシステムでは、全てのベンダーに共通する基本機能（DEVMODE構造体のPublicメンバーに対応する機能）に係る印刷設定のみを受け付ける印刷設定用ＵＩを提供することでマルチベンダー環境に対応していた。しかしながら、この方法では、各ベンダーに固有の独自機能（DEVMODE構造体のPrivateメンバーに対応する機能）の利用を諦めざるをえず、ユーザビリティが著しく損なわれる。
【０００４】
本発明は、上記従来技術における課題に鑑みてなされたものであり、マルチベンダー環境下の印刷先の振り分けにおいて、全てのベンダーに共通する基本機能に係る印刷設定のみならず、各ベンダーに固有の独自機能に係る印刷設定をも可能にする新規なデータ処理装置、システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明者は、マルチベンダー環境下の印刷先の振り分けにおいて、全てのベンダーに共通する基本機能に係る印刷設定のみならず、各ベンダーに固有の独自機能に係る印刷設定をも可能にする新規なデータ処理装置、システムおよびプログラムにつき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。
【０００６】
すなわち、本発明によれば、ネットワークを介して複数の情報処理装置（クライアント２００）および複数の印刷装置（リモートプリンタ３００）に接続され、前記情報処理装置からの印刷要求に応答して出力データを作成するとともに、自動的に決定した出力先に対して該出力データを送信するデータ処理装置であって、前記出力データの出力先を決定するための振り分けデータベースと、表示部（仮想ＵＩ部１２６）を備える第１の印刷処理手段であって、該表示部による印刷設定用画面（印刷設定用ＵＩ）を介した入力に基づいて印刷設定を行うとともに、前記振り分けデータベースの決定に基づいて前記出力先を決定する、第１の印刷処理手段（仮想プリンタドライバ１２０）とを含み、前記振り分けデータベースは、前記情報処理装置の操作権限を有するユーザーの情報を収集し、該ユーザーの情報と該ユーザーに割り当てられた識別子とを対応付けて登録するユーザー情報登録部と、前記ユーザーの情報と出力先とすべき前記印刷装置を対応付ける出力先対応付けテーブルと、前記ユーザー情報登録部と前記出力先対応付けテーブルとの参照により、出力データの出力先を決定する出力先決定部とを含み、前記表示部は、前記印刷設定用画面の表示要求に含まれる前記識別子を前記出力先決定部に通知し、前記出力先決定部は、通知された前記識別子に紐付いた前記ユーザーの情報に基づく前記ユーザー情報登録部と前記出力先対応付けテーブルとの参照により、前記出力先を決定し、前記表示部は、前記出力先決定部によって決定された前記印刷装置を制御する第２の印刷処理手段（リモートドライバ１５０）から印刷設定用データを取得し、該印刷設定用データを利用して前記印刷設定用画面を表示するデータ処理装置が提供される。
【発明の効果】
【０００７】
上述したように、本発明によれば、マルチベンダー環境下の印刷先の振り分けにおいて、全てのベンダーに共通の基本機能のみならず、各ベンダーに固有の独自機能に係る印刷条件を設定することをも可能にする新規なデータ処理装置、システムおよびプログラムが提供される。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態のネットワークプリントシステムを示す図。
【図２】第１実施形態のデータ処理装置の機能ブロック図。
【図３】第１実施形態におけるユーザー情報テーブルを示す図。
【図４】第１実施形態における出力先対応付けテーブルを示す図。
【図５】第２実施形態のデータ処理装置の機能ブロック図。
【図６】第２実施形態の印刷ダイアログを示す図。
【図７】第２実施形態における出力先対応付けテーブルを示す図。
【図８】第２実施形態の拡張印刷設定変更部の動作を説明するためのフローチャート。
【図９】第１及び第２実施形態のデータ処理装置のハードウェア構成を示す図。
【発明を実施するための形態】
【０００９】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【００１０】
（第１実施形態）
図１は、本発明の第１実施形態であるデータ処理装置１００を含んで構成されるネットワークプリントシステム１０００を示す。ネットワークプリントシステム１０００は、サーバ装置として実装されるデータ処理装置１００と、パーソナル・コンピュータとして参照される複数のクライアント２００と、複数のリモートプリンタ３００とを含んで構成されており、各装置がＬＡＮ、ＶＰＮ、インターネットなどとして参照されるネットワーク４００を介して相互に接続されている。
【００１１】
本実施形態において、ネットワークプリントシステム１０００は、クライアント・サーバ環境またはシンクライアント環境のいずれを採用していてもよい。クライアント・サーバ環境を採用する場合は、各クライアント２００がアプリケーションプログラムを実装し、アプリケーションの処理結果に係る印刷要求をデータ処理装置１００に発行する。
【００１２】
一方、シンクライアント環境を採用する場合は、クライアント２００がアプリケーションを実装せず、データ処理装置１００側がアプリケーションを実装する。この場合、クライアント２００は、ＲＤＰ（Remote Desktop Protocol）などの適切な遠隔接続プロトコルに則って、データ処理装置１００に対してサービス要求を発行し、データ処理装置１００が実装するアプリケーションの実行結果に係る印刷要求をデータ処理装置１００に対して発行する。
【００１３】
本実施形態のデータ処理装置１００は、クライアント２００から受領した印刷要求に係る印刷データについてＲＡＷ形式の出力データ（以下、ＲＡＷデータまたは出力データとして参照する）を作成する。また、データ処理装置１００は、出力先となるリモートプリンタ３００を後述する手順で自動的に決定し、作成したＲＡＷデータを決定した出力先に宛てて送信する。
【００１４】
以上、本実施形態のネットワークプリントシステム１０００について概説してきたが、次に、本実施形態のデータ処理装置１００の具体的な構成について、図２に基づいて説明する。
【００１５】
図２は、第１実施形態のデータ処理装置１００の機能ブロック図を示す。なお、図２は、シンクライアント環境におけるデータ処理装置１００の機能構成を示すものであり、この場合のデータ処理装置１００は、図２に示すように、少なくとも１つのアプリケーション１１４を実装したアプリケーション実行部１１２と、データ処理部１１０とを含んで構成される。
【００１６】
データ処理部１１０は、仮想プリンタドライバ１２０と、印刷ジョブをスプールファイルとして格納するためのジョブ格納部１２４と、イメージ処理部１３６と、振り分けデータベース１６０とを含んで構成されている。
【００１７】
仮想プリンタドライバ１２０は、仮想プリント管理部１２１と、印刷設定情報抽出部１２２と、仮想描画部１２３と、仮想ＵＩ部１２６と、印刷設定格納部１２８とを含んで構成されており、振り分けデータベース１６０は、出力先決定部１６２と、ユーザー情報登録部１６４と、出力先対応付けテーブル１６６とを含んで構成されている。
【００１８】
以上、本実施形態のデータ処理装置１００の基本構成について概説してきたが、次に、ユーザーがアプリケーション１１４の実行結果ファイルの印刷を命令した際に、データ処理部１１０の各機能部が実行する処理について、順を追って説明する。
【００１９】
最初に、ユーザーは、クライアント２００を操作してデータ処理装置１００にログインする。その結果、クライアント２００とデータ処理装置１００の間にセッションが確立する。このとき、データ処理装置１００に搭載されたオペレーション・システム（ＯＳ）は、確立したセッションに係るユーザーに対して、データ処理装置１００内で一意の識別子をテンポラリに割り当てる。このような識別子は、ユーザー識別子（ＵＩＤ）あるいはセッションＩＤなどとして参照される既知の識別子である。ＯＳは、セッションが維持されている間、ログインユーザーに対してテンポラリに割り当てた識別子とログインユーザーの属性情報（以下、ユーザー情報という）を紐付けて保持する。なお、以下の説明においては、この識別子をＵＩＤとして参照する。
【００２０】
本実施形態において、ＯＳが保持するユーザー情報とは、ログイン時にＯＳが取得することのできるログインユーザーの属性情報であり、ログインユーザーのユーザー名（アカウント名）、グループ名、Active Directoryなどで参加しているドメイン名や組織名、ログインユーザーが操作するクライアント２００のコンピュータ名やＩＰアドレス、ＭＡＣアドレスなどを例示することができる。
【００２１】
一方、振り分けデータベース１６０のユーザー情報登録部１６４は、ＯＳが保持するログインユーザーのユーザー情報１１６を常時監視しており、ユーザー情報１１６の中から予め決められた少なくとも１つの項目を収集し、ユーザー情報テーブルに登録する。
【００２２】
ユーザー情報登録部１６４が収集するユーザー情報は、後に出力先の決定に使用される。管理者は、出力先の決定に使用する項目（ユーザー情報）を任意に設定することができ、ユーザー情報登録部１６４は、管理者が設定した項目について収集・登録を実施する。
【００２３】
図３は、ユーザー情報として「ユーザー名」を登録する場合のユーザー情報テーブル１６５を例示する。この場合、ユーザー情報テーブル１６５には、データ処理装置１００にログインしている全てのユーザーのユーザー名（ユーザー情報）とＵＩＤが紐付いて登録される。そして、あるユーザーがデータ処理装置１００からログアウトすると、ユーザー情報登録部１６４は、これに同期して、当該ユーザーのユーザー名をユーザー情報テーブル１６５から削除する。
【００２４】
図３は、ユーザー情報テーブル１６５を例示する。ユーザー情報テーブル１６５には、現時点で、データ処理装置１００にログインしている全てのユーザーのユーザー名（ユーザー情報）とＵＩＤが紐付いて登録されている。
【００２５】
次に、データ処理装置１００にログインしたユーザーは、クライアント２００を操作して、アプリケーション１１４に対してサービス要求を発行する。アプリケーション１１４は、クライアント２００からのサービス要求に応答して所定の処理を実行し、実行結果をファイルに出力する。
【００２６】
続いて、ユーザーは、アプリケーション１１４の実行結果のファイルの印刷を指示するために、クライアント２００を操作して、アプリケーション１１４から印刷設定用ＵＩ（以下、印刷ダイアログとして参照する）を呼び出す。アプリケーション１１４は、ユーザーからの呼び出しに応答して、仮想プリンタドライバ１２０に印刷ダイアログの表示要求を発行する。当該表示要求に応答して、仮想プリント管理部１２１に呼び出された仮想ＵＩ部１２６は、以下の手順で印刷ダイアログを提供する。
【００２７】
まず、仮想ＵＩ部１２６は、印刷ダイアログの表示要求に含まれる要求元のＵＩＤを振り分けデータベース１６０に通知して発送先を問い合わせる。
【００２８】
振り分けデータベース１６０の出力先決定部１６２は、仮想ＵＩ部１２６から通知されたＵＩＤをキーとしてユーザー情報テーブル１６５を検索する。仮に、仮想ＵＩ部１２６から通知されたＵＩＤが「00213」であった場合、出力先決定部１６２は、ＵＩＤ「00213」に紐付いたユーザー名「斉藤」を取得する。
【００２９】
次に、出力先決定部１６２は、ユーザー情報テーブル１６５から取得したユーザー情報「斉藤」をキーとして出力先対応付けテーブル１６６を検索する。
【００３０】
図４は、出力先対応付けテーブル１６６を例示する。出力先対応付けテーブル１６６は、管理者が所定の振り分けポリシーに則って予め作成するものであり、図４に示す例においては、出力先とすべきリモートプリンタ３００のプリンタ情報に対してユーザー名（ユーザー情報）が対応付けて登録されている。図４に例示するプリンタ情報には、出力先とすべきリモートプリンタ３００の「プリンタ名」、「プリンタドライバ名」および「出力ポート名」が含まれる。
【００３１】
出力先決定部１６２は、ユーザー名「斉藤」をキーとして出力先対応付けテーブル１６６を検索した結果、ユーザー名「斉藤」に紐付いたリモートプリンタ３００を出力先として決定し、当該リモートプリンタ３００のプリンタ情報とＵＩＤ「00213」を仮想ＵＩ部１２６に返す。
【００３２】
仮想ＵＩ部１２６は、振り分けデータベース１６０から返されたプリンタ情報をＵＩＤ「00213」に紐付けて一時記憶に保持した上で、当該プリンタ情報に含まれるプリンタドライバ名「Printer_Driver_a」を参照し、当該プリンタドライバ名に対応するリモートドライバ１５０ａから印刷設定用データ構造体であるDEVMODE構造体を動的に取得して印刷設定格納部１２８にセットする。
【００３３】
続いて、仮想ＵＩ部１２６は、リモートドライバ１５０ａから取得したDEVMODE構造体を利用して印刷ダイアログを提供する。このDEVMODE構造体には、リモートドライバ１５０ａの独自機能（Privateメンバーに該当する機能）が含まれている。その結果、ユーザー「斉藤」が利用するアプリケーション１１４の画面に、リモートドライバ１５０ａの独自機能（例えば、地紋印刷）を設定可能に構成された印刷ダイアログが表示される。
【００３４】
これを受けて、ユーザー「斉藤」が表示された印刷ダイアログを介して任意の印刷機能を選択し、印刷実行ボタンをクリックすると、プリント指令イベントが発生する。アプリケーション１１４は、当該プリント指令イベントに応答して、ＧＤＩ（Graphical Device Interface）などのＡＰＩコールを経て実行結果のファイルに係るイメージデータを作成する。
【００３５】
一方、仮想ＵＩ部１２６は、当該プリント指令イベントに応答して、印刷設定格納部１２８にセットされたDEVMODE構造体（リモートドライバ１５０ａから取得したもの）を利用して印刷設定を行うとともに、リモートドライバ１５０ａを出力先とする設定を行う。具体的には、先に一時記憶に保持しておいた出力先（リモートドライバ１５０ａ）のプリンタ情報を印刷設定に紐付けて印刷設定格納部１２８に格納する。以下、印刷設定格納部１２８に格納される印刷設定および出力先のプリンタ情報を総じて印刷設定情報という。
【００３６】
仮想プリント管理部１２１は、アプリケーション１１４が作成したイメージデータに対応する印刷設定情報を印刷設定格納部１２８から読み出して印刷ジョブを生成し、ジョブ格納部１２４に格納する。
【００３７】
印刷ジョブの格納が終わると、仮想プリント管理部１２１は、仮想描画部１２３と印刷設定情報抽出部１２２を呼出す。仮想描画部１２３は、印刷ジョブ毎に独立したスプール空間としての作業空間１３０を確保し、ジョブ格納部１２４に格納された印刷ジョブからイメージデータ１３４を抽出して対応する作業空間１３０に移動する。一方、印刷設定情報抽出部１２２は、当該印刷ジョブから印刷設定情報を抽出して対応する作業空間１３０に移動する。
【００３８】
加えて、仮想プリント管理部１２１は、印刷ジョブ毎に、印刷指示部１４２を含む発送処理部１４０をプライベートインスタンスとして生成する。
【００３９】
印刷指示部１４２は、画像処理モジュールとして実装されるイメージ処理部１３６に対して、対応する作業空間１３０のイメージデータ１３４を取得させ、当該作業空間１３０内の印刷設定情報１３２に含まれる印刷設定に応じた画像処理を実行させる。ここでいう画像処理には、ページ割り当て、面付けなどに係る画像処理の他、独自機能に係る画像処理（例えば、地紋印刷）が含まれる。
【００４０】
イメージデータ１３４に対する画像処理が終了すると、印刷指示部１４２は、印刷設定情報１３２に含まれる出力先のプリンタ情報を参照して、出力先のリモートプリンタ３００「Printer_A」を制御するリモートドライバ１５０ａ「Printer_Driver_a」に対して、作業空間１３０内のイメージデータ１３４（画像処理済み）の印刷指令を発行する。
【００４１】
印刷指示部１４２から印刷指令を受けたリモートドライバ１５０ａ「Printer_Driver_a」は、作業空間１３０内のイメージデータ１３４（画像処理済み）をＲＡＷデータ（出力データ）に変換し、リモートプリンタ３００ａ「Printer_A」に送信する。その後、出力先から印刷完了の通知を受けてジョブ毎に生成された発送処理部１４０のインスタンスは終了する。
【００４２】
以上、説明したように、第１実施形態のネットワークプリントシステム１０００においては、ユーザーが印刷設定用ＵＩの表示を要求した時点で（すなわち、印刷ジョブが作成される前に）、ユーザーがログインした時にＯＳが取得することのできるユーザーの属性情報に基づいて出力先プリンタを自動的に決定する。印刷設定用ＵＩの表示要求がなされた時点で出力先プリンタを決定することによって、出力先プリンタに対応するリモートドライバから必要なDEVMODE構造体を動的に取得して印刷設定用ＵＩに反映させることが可能になる。その結果、ユーザーは、自動決定された出力先プリンタについて、全てのベンダーに共通する基本機能に係る印刷設定のみならず、当該出力先プリンタに固有の独自機能に係る印刷設定が可能となる。
【００４３】
（第２実施形態）
次に、第２実施形態のネットワークプリントシステム１０００について説明する。本実施形態のネットワークプリントシステム１０００は、ユーザーの属性情報に基づいて出力先プリンタを自動的に決定せず、印刷要求に係る印刷データの内容（印刷データに含まれる文字列など）に基づいて出力先プリンタを決定する。本実施形態のネットワークプリントシステム１０００の構成は、第１実施形態と同じ（図１参照）のため、説明を省略する。
【００４４】
本実施形態において、ネットワークプリントシステム１０００は、クライアント・サーバ環境またはシンクライアント環境のいずれを採用していてもよい。クライアント・サーバ環境を採用する場合の説明は、第１実施形態の説明と同じであるため省略する。同様に、シンクライアント環境を採用する場合の説明も、第１実施形態の説明と同じであるため省略する。
【００４５】
本実施形態のデータ処理装置１００は、クライアント２００から受領した印刷要求に係る印刷データについてＲＡＷ形式の出力データ（ＲＡＷデータ）を作成する。また、データ処理装置１００は、出力先となるリモートプリンタ３００を後述する手順で印刷データの内容に応じて決定する。そして、データ処理装置１００は、当該出力データを出力先となるリモートプリンタ３００に出力する。また、ユーザーにより設定されたリモートドライバ１５０の独自機能（ステープルやパンチなど）は、データ処理装置１００の拡張印刷設定変更部１７２が、当該出力データを変更することにより適用される。
【００４６】
以上、本実施形態のネットワークプリントシステム１０００について概説してきたが、次に、本実施形態のデータ処理装置１００の具体的な構成について、図５に基づいて説明する。
【００４７】
図５は、第２実施形態のデータ処理装置１００の機能ブロック図を示す。なお、図５は、シンクライアント環境におけるデータ処理装置１００の機能構成を示すものである。この場合のデータ処理装置１００は、図５に示すように、少なくとも１つのアプリケーション１１４を実装したアプリケーション実行部１１２と、データ処理部１１０とを含んで構成される。
【００４８】
データ処理部１１０は、仮想プリンタドライバ１２０と、印刷ジョブをスプールファイルとして格納するためのジョブ格納部１２４と、出力データ格納部１７１と、拡張印刷設定変更部１７２を含んで構成されている。
【００４９】
仮想プリンタドライバ１２０は、仮想プリント管理部１２１（本発明の生成部に対応する。）と、印刷設定情報抽出部１２２と、仮想描画部１２３と、仮想ＵＩ部１２６と、印刷設定格納部１２８とを含んで構成されている。
【００５０】
以上、本実施形態のデータ処理装置１００の基本構成について概説してきたが、次に、ユーザーがアプリケーション１１４の実行結果ファイルの印刷を命令した際に、データ処理部１１０の各機能部が実行する処理について、順を追って説明する。
【００５１】
最初に、ユーザーは、クライアント２００を操作してデータ処理装置１００にログインする。その結果、クライアント２００とデータ処理装置１００との間にセッションが確立する。このとき、データ処理装置１００に搭載されたオペレーション・システム（ＯＳ）は、確立したセッションに係るユーザーに、データ処理装置１００内で一意の識別子をテンポラリに割り当てる。このような識別子は、ユーザー識別子（ＵＩＤ）あるいはセッションＩＤなどとして参照される既知の識別子である。ＯＳは、セッションが維持されている間、テンポラリに割り当てた識別子とログインユーザーの属性情報（以下、ユーザー情報という）を紐付けて保持する。
【００５２】
本実施形態において、ＯＳが保持するユーザー情報とは、ログイン時にＯＳが取得することのできるログインユーザーの属性情報である。ユーザーの属性情報は、ログインユーザーのユーザー名（アカウント名）、グループ名、Active Directoryなどで参加しているドメイン名や組織名、ログインユーザーが操作するクライアント２００のコンピュータ名やＩＰアドレス、ＭＡＣアドレスなどである。
【００５３】
次に、データ処理装置１００にログインしたユーザーは、クライアント２００を操作して、アプリケーション１１４にサービス要求を発行する。アプリケーション１１４は、クライアント２００からのサービス要求に応答して所定の処理を実行し、実行結果をファイルに出力する。
【００５４】
続いて、ユーザーは、アプリケーション１１４の実行結果のファイルの印刷を指示するために、クライアント２００を操作して、アプリケーション１１４から印刷設定用ＵＩ（以下、印刷ダイアログとして参照する）を呼び出す。アプリケーション１１４は、ユーザーからの呼び出しに応答して、仮想プリンタドライバ１２０に印刷ダイアログの表示要求を発行する。仮想プリンタドライバ１２０の仮想プリント管理部１２１は、当該表示要求を受信すると、仮想ＵＩ部１２６を呼び出す。仮想ＵＩ部１２６は、印刷ダイアログ（印刷設定用の画像）を生成し、生成した印刷ダイアログをアプリケーション１１４に提供する。
【００５５】
当該印刷ダイアログは、リモートドライバ１５０a〜cに共通する基本機能に係る印刷設定と、リモートドライバ１５０a〜cそれぞれの独自機能に係る印刷設定とを含む。当該独自機能は、例えば、ステープルやパンチなどの機能である。
【００５６】
図６は、第２実施形態の印刷ダイアログを示す図である。図６の例では、拡張印刷設定タブに表示されている項目（ステープル及びパンチ）が、リモートドライバ１５０a〜cそれぞれの独自機能に係る印刷設定である。
【００５７】
本実施形態のネットワークプリントシステム１０００では、ユーザーが印刷設定する段階では、リモートドライバ１５０a〜cのうち、どのリモートドライバ１５０を使用するか決定されていない。そのため、仮想ＵＩ部１２６は、使用可能なリモートドライバ１５０の独自機能を、印刷ダイアログ表示時に特定することができないが、仮想ＵＩ部１２６は、ステープルやパンチなどの独自機能の印刷設定項目を印刷ダイアログに表示しておく。
【００５８】
次に、アプリケーション１１４は、仮想ＵＩ部１２６により提供された印刷ダイアログを介して任意の印刷機能の設定と、印刷実行ボタンの押下を受け付ける。ユーザーが、印刷実行ボタンを押下すると、ユーザーにより設定された印刷設定を含むプリント指令イベントが発生する。プリント指定イベントは、当該プリント指定イベントを一意に識別するための識別子（ＩＤ）を有する。アプリケーション１１４は、当該プリント指令イベントに応答して、ＧＤＩ（Graphical Device Interface）などのＡＰＩコールを経て実行結果のファイルに係るイメージデータ１３４を作成する。当該イメージデータ１３４は、プリント指定イベントの識別子により、一意に特定することができる。アプリケーション１１４は、当該イメージデータ１３４を仮想プリント管理部１２１に送信する。
【００５９】
一方、仮想ＵＩ部１２６は、当該プリント指令イベントに応答して、印刷設定格納部１２８のDEVMODE構造体（Publicメンバーに対応する機能）に、リモートドライバ１５０a〜cに共通する基本機能に係る印刷設定（以下、基本印刷設定という。）を行う。また、仮想ＵＩ部１２６は、リモートドライバ１５０a〜cそれぞれの独自機能に係る印刷設定（以下、拡張印刷設定という。）を印刷設定格納部１２８に格納する。仮想ＵＩ部１２６は、基本印刷設定及び拡張印刷設定を、プリント指定イベントの識別子に紐付けて印刷設定格納部１２８に格納する。
【００６０】
次に、仮想プリント管理部１２１は、アプリケーション１１４からイメージデータ１３４を受信すると、当該イメージデータ１３４の基本印刷設定を、印刷設定格納部１２８から読み出す。具体的には、仮想プリント管理部１２１は、当該イメージデータ１３４に対応するプリント指定イベントの識別子を参照することにより、印刷設定格納部１２８から当該イメージデータ１３４の基本印刷設定を読み出す。
【００６１】
次に、仮想プリント管理部１２１は、イメージデータ１３４と基本印刷設定とを含む印刷ジョブを生成する。印刷ジョブは、当該印刷ジョブを一意に識別するための識別子（ＩＤ）を有する。本実施形態の説明では、印刷ジョブの識別子は、上述のプリント指定イベントの識別子と同一とする。仮想プリント管理部１２１は、当該印刷ジョブをジョブ格納部１２４に格納する。
【００６２】
次に、仮想プリント管理部１２１は、仮想描画部１２３と印刷設定情報抽出部１２２とを呼出す。仮想描画部１２３は、印刷ジョブからイメージデータ１３４を抽出する。仮想描画部１２３は、抽出したイメージデータ１３４を振り分けデータベース１６０の出力先決定部１６２に送信する。出力先決定部１６２は、イメージデータ１３４を受信すると、イメージデータ１３４に含まれる文字列と、出力先対応付けテーブル１６７とに基づいて、出力するプリンタ（リモートドライバ１５０）を決定する。
【００６３】
図７は、第２実施形態における出力先対応付けテーブル１６７を示す図である。出力先対応付けテーブル１６７は、管理者が所定の振り分けポリシーに則って予め作成するものである。図７に示す出力先対応付けテーブル１６７の例では、出力先になるリモートプリンタ３００のプリンタ情報に文字列（文字情報）が対応付けて登録されている。図７に例示するプリンタ情報には、リモートプリンタ３００の「プリンタ名」、「プリンタドライバ名」および「出力ポート名」が含まれる。
【００６４】
出力先決定部１６２が、イメージデータ１３４を検索した結果、イメージデータ１３４に「aaa」が含まれていた場合を例にして説明する。この場合、出力先決定部１６２は、プリンタ情報が、プリンタ名「Printer_A」、プリンタドライバ名「Printer_Driver_a」、出力ポート名「XXXXXX」により特定されるリモートプリンタ３００を出力先のリモートプリンタ３００に決定する。
【００６５】
出力先決定部１６２は、出力先として決定したリモートプリンタ３００のプリンタ情報を、仮想描画部１２３に送信する。
【００６６】
仮想描画部１２３は、出力先決定部１６２からプリンタ情報を受信する。次に、仮想描画部１２３は、印刷ジョブ毎に独立したスプール空間としての作業空間１３０を確保する。一方、印刷設定情報抽出部１２２は、当該印刷ジョブから印刷設定情報１３２を抽出して対応する作業空間１３０に移動する。仮想描画部１２３は、ジョブ格納部１２４の印刷ジョブから抽出したイメージデータ１３４を、当該印刷ジョブに対応する作業空間１３０に移動する。また、仮想描画部１２３は、出力先決定部１６２から受信したプリンタ情報を作業空間１３０の印刷設定情報１３２に追加する。
【００６７】
更に、仮想プリント管理部１２１は、印刷ジョブ毎に、印刷指示部１４２を含む発送処理部１４０をプライベートインスタンスとして生成する。
【００６８】
印刷指示部１４２は、画像処理モジュールとして実装されるイメージ処理部１３６に、作業空間１３０のイメージデータ１３４を取得させる。イメージ処理部１３６は、当該作業空間１３０内の印刷設定情報１３２に含まれる印刷設定に応じた画像処理を実行する。ここでいう画像処理には、ページ割り当て、面付けなどに係る画像処理が含まれる。
【００６９】
イメージ処理部１３６によるイメージデータ１３４の画像処理が終了すると、印刷指示部１４２は、印刷設定情報１３２に含まれる出力先のプリンタ情報を参照する。ここでは、プリンタ情報のプリンタ名が「Printer_A」である場合を例にして具体的に説明する。この場合、印刷指示部１４２は、出力先のリモートプリンタ３００「Printer_A」を制御するリモートドライバ１５０ａ「Printer_Driver_a」に、作業空間１３０内のイメージデータ１３４（画像処理済み）の印刷指令を発行する。
【００７０】
リモートドライバ１５０ａ「Printer_Driver_a」は、印刷指示部１４２から印刷指令を受けると、作業空間１３０内のイメージデータ１３４（画像処理済み）を、リモートプリンタ３００ａが受信可能なデータに変換する。リモートドライバ１５０ａ「Printer_Driver_a」は、変換した当該データを出力データ（ＲＡＷデータ）としてプリンタポート１７０に送信する。
【００７１】
プリンタポート１７０は、リモートドライバ１５０が出力した出力データを受信する。プリンタポート１７０は、当該出力データを出力データ格納部１７１に格納する。
【００７２】
拡張印刷設定変更部１７２は、出力データが出力データ格納部１７１に格納されたことを検知すると、当該出力データを出力データ格納部１７１から読み出す。拡張印刷設定変更部１７２は、当該出力データの設定を、印刷設定格納部１２８の拡張印刷設定に応じて変更する。拡張印刷設定変更部１７２は、変更された出力データをリモートプリンタ３００に出力する。拡張印刷設定変更部１７２の動作の詳細は後述する。
【００７３】
出力先のリモートプリンタ３００から印刷完了の通知を受けると、ジョブ毎に生成された発送処理部１４０のインスタンスは終了する。
【００７４】
図８は、第２実施形態の拡張印刷設定変更部１７２の動作を説明するためのフローチャートである。拡張印刷設定変更部１７２は、プリンタポート１７０から出力データ格納部１７１に出力データが出力されたか否かを判定する（ステップＳ１）。出力データが出力された場合（ステップＳ１、Ｙｅｓ）は、拡張印刷設定変更部１７２は、当該出力データを出力データ格納部１７１から読み出す（ステップＳ２）。出力データが出力されていない場合（ステップＳ１、Ｎｏ）は、拡張印刷設定変更部１７２は、プリンタポート１７０から出力データ格納部１７１に出力データが出力されるまで待つ。
【００７５】
次に、拡張印刷設定変更部１７２は、印刷設定格納部１２８に拡張印刷設定が保存されているか否かを判定する（ステップＳ３）。具体的には、拡張印刷設定変更部１７２は、出力データに含まれる印刷ジョブの識別子（本実施形態では、プリント指定イベントの識別子と同じ。）を検索キーとして、印刷設定格納部１２８に当該出力データに適用する拡張印刷設定があるか否かを判定する。
【００７６】
拡張印刷設定が保存されている場合（ステップＳ３、Ｙｅｓ）は、拡張印刷設定変更部１７２は、印刷設定格納部１２８の拡張印刷設定を読み出す（ステップＳ４）。次に、拡張印刷設定変更部１７２は、読み出した拡張印刷設定に応じて出力データを変更する（ステップＳ５）。具体的には、拡張印刷設定変更部１７２は、出力データ（ＲＡＷデータ）に含まれる拡張印刷設定に係る記述を直接編集することにより、出力データを変更する。次に、拡張印刷設定変更部１７２は、ステップＳ５で変更した出力データをリモートプリンタ３００に出力する（ステップＳ６）。
【００７７】
拡張印刷設定が保存されていない場合（ステップＳ３、Ｎｏ）は、拡張印刷設定変更部１７２は、出力データを変更せずにリモートプリンタ３００に出力する（ステップＳ６）。
【００７８】
以上、説明したように、第２実施形態のネットワークプリントシステム１０００では、仮想ＵＩ部１２６が、出力先のリモートプリンタ３００の機種に依存する印刷設定である拡張印刷設定を設定するための項目を含む画像（印刷ダイアログ）を生成する。また、印刷設定格納部１２８が、仮想ＵＩ部１２６が印刷ダイアログを介して受け付けた拡張印刷設定を記憶する。そして、拡張印刷設定変更部１７２は、出力先のリモートプリンタ３００のリモートドライバ１５０から出力データが出力されたときに、出力データに適用する拡張印刷設定が印刷設定格納部１２８に格納されている場合、拡張印刷設定に応じて出力データを変更する。
【００７９】
これにより、本実施形態のネットワークプリントシステム１０００では、マルチベンダー環境下の印刷先の振り分けにおいて、全てのベンダーに共通の基本機能のみならず、各ベンダーに固有の独自機能に係る印刷条件を設定することができる。また、本実施形態のネットワークプリントシステム１０００では、ユーザーがログインした時に出力先プリンタを自動的に決定しない場合であっても、各ベンダーに固有の独自機能に係る印刷条件を設定することができる。
【００８０】
最後に、第１及び第２実施形態のデータ処理装置１００の主要部のハードウェア構成について説明する。図９は、第１及び第２実施形態のデータ処理装置１００のハードウェアの主要部の構成を示す図である。第１及び第２実施形態のデータ処理装置１００は、制御装置５０１と、主記憶装置５０２と、補助記憶装置５０３と、表示装置５０４と、入力装置５０５と、通信装置５０６とを備える。制御装置５０１と、主記憶装置５０２と、補助記憶装置５０３と、表示装置５０４と、入力装置５０５と、通信装置５０６は、バス５０７を介して互いに接続されている。
【００８１】
制御装置５０１は、補助記憶装置５０３から主記憶装置５０２に読み出されたプログラムを実行する。主記憶装置５０２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリである。補助記憶装置５０３は、例えば、ハードディスク等である。表示装置５０４は、データ処理装置１００の状態等を表示する画面である。入力装置５０５は、データ処理装置１００に情報を入力するためのインターフェースである。通信装置５０６は、ネットワークに接続するためのインターフェースである。
【００８２】
本実施形態のデータ処理装置１００で実行されるプログラムは、上述したデータ処理装置１００の機能ブロックを含むモジュール構成となっている。当該モジュールは、実際のハードウェアとしては、制御装置５０１が上記記録媒体からプログラムを読み出して実行することにより、上記各モジュールが主記憶装置５０２上にロードされる。すなわち、上記各モジュールは、主記憶装置５０２上に生成される。なお、データ処理装置１００の各機能ブロックの一部、又は全部を、プログラムにより実現せずに、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェアにより実現してもよい。
【００８３】
本実施形態の上記機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００８４】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではない。例えば、図２に示すアプリケーション実行部１１２をクライアント２００やデータ処理装置１００とは別のターミナルサーバに搭載することもできる。その場合、図２に示す破線がネットワーク境界となり、データ処理装置１００は、プリンタサーバとして実装される。さらに、図２に示したデータ処理部１１０を構成する上述した各機能部は、適切な単位でネットワーク上に分散配置されていてもよく、その場合、本発明は、ネットワークを介したデータ処理システムとして構築される。その他、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００８５】
１００…データ処理装置
１１０…データ処理部
１１２…アプリケーション実行部
１１４…アプリケーション
１１６…ユーザー情報
１２０…仮想プリンタドライバ
１２１…仮想プリント管理部
１２２…印刷設定情報抽出部
１２３…仮想描画部
１２４…ジョブ格納部
１２６…仮想ＵＩ部
１２８…印刷設定格納部
１３０…作業空間
１３２…印刷設定情報
１３４…イメージデータ
１３６…イメージ処理部
１４０…発送処理部
１４２…印刷指示部
１５０…リモートドライバ
１６０…振り分けデータベース
１６２…出力先決定部
１６４…ユーザー情報登録部
１６５…ユーザー情報テーブル
１６６…出力先対応付けテーブル
１６７…出力先対応付けテーブル
１７０…プリンタポート
１７１…出力データ格納部
１７２…拡張印刷設定変更部
２００…クライアント
３００…リモートプリンタ
４００…ネットワーク
５０１…制御装置
５０２…主記憶装置
５０３…補助記憶装置
５０４…表示装置
５０５…入力装置
５０６…通信装置
５０７…バス
１０００…ネットワークプリントシステム
【先行技術文献】
【特許文献】
【００８６】
【特許文献１】特開２０１０−１５７２０８号公報
【特許文献２】特開２０１１−００２８８１号公報
【特許文献３】特開２０１１−００８５８２号公報
【図１】
2014041600.tif 000003
【図２】
2014041600.tif 000004
【図３】
2014041600.tif 000005
【図４】
2014041600.tif 000006
【図５】
2014041600.tif 000007
【図６】
2014041600.tif 000008
【図７】
2014041600.tif 000009
【図８】
2014041600.tif 000010
【図９】
2014041600.tif 000011