(57)【要約】【課題】  ＤＯＭＳのようなジョブ管理システムのユーザインタフェースにおいて、複数のジョブをドラッグ・アンド・ドロップによって他のプリンタに移動できるようにする技術に関し、ドライバ種類や印刷設定といったジョブの属性とプリンタの機能の整合性を調べ、移動不可能なジョブや、移動可能であっても印刷設定が無視されるような場合には、プリンタアイコンの表示状態を変更してユーザに視覚的に通知する。【解決手段】  プリンタリストの表示を制御するモジュールやジョブリストの表示を制御するモジュールと連繋して、ドラッグ・アンド・ドロップ操作時の処理を制御するモジュールを追加することにより、プリンタアイコンやマウスカーソルの形状を適宜変更するようにする。【選択図】        図９
2006301860.tif 000002
【特許請求の範囲】
【請求項１】
入力装置、表示装置と通信可能な情報処理装置であって、
印刷ジョブを象徴的に示す印刷ジョブ表示要素と、複数の論理プリンタ又は物理プリンタのプリントキューを象徴的に示すプリンタ表示要素とを、前記表示装置の画面上に表示させる表示制御手段と、
前記入力装置からの前記印刷ジョブ表示要素を選択する選択指示入力により選択された一または複数の前記印刷ジョブ表示要素の個々に対応する印刷ジョブの属性を取得する第１取得手段と、
前記プリンタ表示要素が示す論理プリンタ又は物理プリンタの属性を取得する第２取得手段と、
を有し、
前記表示制御手段は、
前記第１取得手段により取得された前記一または複数の印刷ジョブの属性と、前記第２取得手段により取得された論理プリンタ又は物理プリンタの属性とに基づき、前記選択された一または複数の印刷ジョブ表示要素に対応する一または複数の印刷ジョブのいずれも出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの一部のみ出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの全てを出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素とを相互に識別可能に表示させることを特徴とする情報処理装置。
【請求項２】
前記印刷ジョブが中間形式ファイルから作成されたものであれば、前記中間形式ファイルを用いて印刷ジョブを生成できるプリンタドライバに対応した論理プリンタ又は物理プリンタのプリンタ表示要素を、前記印刷ジョブを出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素として表示させ、
前記印刷ジョブが中間形式ファイルを用いずに作成されたものであれば、前記印刷ジョブを生成したプリンタドライバと互換性のあるプリンタドライバに対応した論理プリンタ又は物理プリンタのプリンタ表示要素を、前記印刷ジョブを出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素として表示させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示制御手段は、
前記入力装置から前記印刷ジョブ表示要素の移動指示を入力された場合に、前記選択された一または複数の印刷ジョブ表示要素に対応する一または複数の印刷ジョブのいずれも出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの一部のみ出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの全てが出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素とを相互に識別可能に表示させることを特徴とする情報処理装置。
【請求項４】
前記表示制御手段は、
前記印刷ジョブ表示要素を、前記選択された一または複数の印刷ジョブ表示要素に対応する一または複数の印刷ジョブのうち一つでも出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素上に移動する移動指示を、前記入力装置から入力した場合に、前記印刷ジョブ表示要素に対応する一または複数の印刷ジョブを、移動対象となった前記プリンタ表示要素に対応するプリントキューに登録するよう指示することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記印刷ジョブ表示要素は、印刷ジョブを表わす印刷ジョブアイコンであり、前記プリンタ表示要素は、プリントキューを表わすプリンタアイコンであり、
前記表示制御手段は、一または複数の前記印刷ジョブアイコンがドラッグされた場合に、前記一または複数の選択された印刷ジョブアイコンに対応する一または複数の印刷ジョブのうち少なくとも一つを出力不可能な論理プリンタ又は物理プリンタのプリンタアイコンの表示形態を変更させることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記印刷ジョブ表示要素は、印刷ジョブを表わす印刷ジョブアイコンであり、前記プリンタ表示要素は、プリントキューを表わすプリンタアイコンであり、
前記表示制御手段は、一または複数の前記印刷ジョブアイコンがドラッグされた状態で、前記一または複数の印刷ジョブアイコンに対応する一または複数の印刷ジョブのうち少なくとも一つを出力不可能なプリンタのプリンタアイコン上に移動された場合に、警告を表示させることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記第１取得手段は、前記入力装置から前記一または複数の印刷ジョブ表示要素の移動指示を入力した場合に、該一または複数の印刷ジョブ表示要素に対応する一または複数の印刷ジョブの属性の取得を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記第２取得手段は、前記入力装置から前記一または複数の印刷ジョブ表示要素の移動指示を入力した場合に、前記プリンタ表示要素が示す印刷装置の属性を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記表示制御手段は、前記第１取得手段により取得された一または複数の印刷ジョブの属性と前記第２取得手段により取得された論理プリンタ又は物理プリンタの属性とに基づき、前記選択された印刷ジョブ表示要素に対応する一または複数の印刷ジョブのうち少なくとも一つの印刷ジョブの属性を一部満たなさいことを示す警告表示を行わせることを特徴とする請求項１から８のいずれかに記載の情報処理装置。
【請求項１０】
前記第１及び第２取得手段により取得された印刷ジョブの属性及び前記論理プリンタ又は物理プリンタの属性には、プリンタドライバ名が含まれることを特徴とする請求項１から９のいずれかに記載の情報処理装置。
【請求項１１】
前記表示制御手段は、前記第１取得手段により取得された印刷ジョブに関連付けられた論理プリンタと同じ物理プリンタに対応する複数の論理プリンタを、各々の論理プリンタに関連付けられた物理プリンタ識別情報に基づき特定し、該特定された各々の論理プリンタのプリンタ表示要素を出力不可能として表示するようにすることを特徴とする請求項１から１０のいずれかに記載の情報処理装置。
【請求項１２】
前記第１取得手段は、ネットワークを介して通信可能な他のコンピュータに保持された印刷ジョブの属性を取得し、前記表示制御手段は前記他のコンピュータに保持された一または複数の印刷ジョブの属性と、前記第２取得手段により取得された論理プリンタ又は物理プリンタの属性とに基づき、選択された一または複数の印刷ジョブ表示要素に対応する印刷ジョブのいずれもが出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの一部のみ出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの全てを出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素とを相互に識別可能に表示させることを特徴とする請求項１から１１のいずれかに記載の情報処理装置。
【請求項１３】
印刷ジョブの印刷ジョブ表示要素と複数の論理プリンタ又は物理プリンタのプリンタ表示要素とを画面上に表示可能な情報処理装置であって、
選択指示入力により選択された一または複数の所定の印刷ジョブ表示要素に対応する一または複数の印刷ジョブの属性と、前記プリンタ表示要素に関連付けられた論理プリンタ又は物理プリンタの属性とに基づき、前記選択された印刷ジョブ表示要素に対応する一または複数の印刷ジョブのいずれもが出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記選択された印刷ジョブ表示要素に対応する一または複数の印刷ジョブの一部のみ出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの全てを出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素とを相互に識別可能に表示させる表示制御手段と、
前記選択された一または複数の前記印刷ジョブの表示要素のうち、所定の出力可能なプリンタのプリンタ表示要素への、ドロップ操作に応じて、前記選択された一または複数の印刷ジョブを前記所定の出力可能なプリンタのキューに移動指示する移動手段と、を有することを特徴とする情報処理装置。
【請求項１４】
前記移動は印刷ジョブのプリントキューへの関連付けを変更して再登録する処理であることを特徴とする請求項１から１３のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置と通信可能な情報処理装置における印刷ジョブの制御に係る情報処理装置に関する。
【背景技術】
【０００２】
従来から、印刷ジョブを象徴的に示す表示要素と、プリントデバイスを象徴的に示す表示要素と、を画面に表示する情報処理装置が知られている。例えば、画面上において、あるプリントキューに登録された印刷ジョブを他のプリントキューに移動させる技術も知られている（例えば、特許文献１参照）。
【特許文献１】特開平１１−１７５３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら上記の方法では、印刷ジョブのリストからある印刷ジョブを選択した場合に、その印刷ジョブの特性を考慮して選択された印刷ジョブを出力可能なプリンタを、出力不可能なプリンタから容易に識別することができなかった。すなわち、ユーザが既に生成され、あるプリントキューに登録された印刷ジョブを、他のプリントキューに移動しようとする場合に、移動可能なプリントキューと移動不可能なプリントキューとを区別することは困難であった。特にプリンタが複数ある場合に困難であった。
【０００４】
さらに、複数の印刷ジョブを選択した場合、通常各印刷ジョブの特性が一様ではないため、それらを移動できるプリントキューと移動できないプリントキューの識別はさらに困難度が高くなる。
【０００５】
本発明は、上記の問題点を解決するためになされたもので、その目的は、表示画面上で、複数の印刷ジョブを選択した場合に、それらの印刷ジョブを出力可能なプリンタと、出力不可能なプリンタとを容易に識別可能とし、さらに前記選択された複数の印刷ジョブのうち一部のみ出力不可能な場合についても識別可能とすることのできる情報処理装置の提供にある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の情報処理装置は、以下に示すとおりの構成を備える。
【０００７】
入力装置、表示装置と通信可能な情報処理装置において、
印刷ジョブを象徴的に示す印刷ジョブ表示要素と、複数の論理プリンタ又は物理プリンタのプリントキューを象徴的に示すプリンタ表示要素とを、前記表示装置の画面上に表示させる表示制御手段と、
前記入力装置からの前記印刷ジョブ表示要素を選択する選択指示入力により選択された一または複数の前記印刷ジョブ表示要素の個々に対応する印刷ジョブの属性を取得する第１取得手段と、
前記プリンタ表示要素が示す論理プリンタ又は物理プリンタの属性を取得する第２取得手段と、
を有し、
前記表示制御手段は、
前記第１取得手段により取得された前記一または複数の印刷ジョブの属性と、前記第２取得手段により取得された論理プリンタ又は物理プリンタの属性とに基づき、前記選択された一または複数の印刷ジョブ表示要素に対応する一または複数の印刷ジョブのいずれも出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの一部のみ出力不可能な論理プリンタ又は物理プリンタのプリンタ表示要素と、前記一または複数の印刷ジョブの全てを出力可能な論理プリンタ又は物理プリンタのプリンタ表示要素とを相互に識別可能に表示させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、表示画面上で、ユーザ任意のタイミングにおいて複数の印刷ジョブを選択した場合に、それらの印刷ジョブ全てを出力可能なプリンタと、いずれも出力不可能なプリンタと、一部のジョブのみ出力可能なプリンタとを容易に識別可能となる。さらに、出力不可能な印刷ジョブが存在する場合は、その理由について知ることができる。また、出力可能であっても出力の体裁等が指定どおりにならないプリンタについては、その指定内容を知ることができる。それらによって、選択した前記複数の印刷ジョブを出力させるプリンタを選択することが容易になる。
【発明を実施するための最良の形態】
【０００９】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１０】
［第１実施形態］
以下、図面を参照して本発明の第１実施形態について詳細に説明する。本実施形態は、複数の印刷ジョブの移動を、マウスなどのポインティングデバイスでドラッグ、ドロップすることにより可能にし、さらにそれら複数の印刷ジョブの移動先として適当なプリンタ又はプリントデバイスであるか不適当なプリンタ又はプリントデバイスであるかを、印刷ジョブの属性、プリントデバイスの能力等によって判断し、その印刷ジョブの移動先として不適当なプリンタを示す表示をグレイアウト表示するシステムである。さらに本システムは、前記複数の印刷ジョブのうち一部にとっては適当であって、その他にとっては不適当なプリンタ又はプリントデバイスである場合には、その旨が判断できるよう表示を行う。
【００１１】
＜印刷処理システムの構成例＞
図１は、第１実施形態に係る印刷処理システムの構成を示す図である。
【００１２】
同図において、１０１、１０２、１０３、１０４は、ネットワーク１０６に接続され、相互に通信可能なネットワークコンピュータであり、典型的にはパーソナルコンピュータ（ＰＣ）である。また、１０５は、印刷装置としてのネットワークプリンタである。
【００１３】
これらのうち、１０２，１０３，１０４はクライアントコンピュータ（以下、クライアント）であり、それぞれイーサネット（登録商標）などのネットワークケーブルによってネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアントは複数のプリンタドライバをサポートするものとする。
【００１４】
これに対し１０１はサーバコンピュータ（以下、サーバ）であり、ネットワークケーブルによってネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。このサーバ１０１は、ネットワーク１０６に接続されているプリンタを管理するプリントサーバとしても機能する。具体的には、プリントサーバ１０１は、クライアントコンピュータ１０２、１０３、１０４から印刷要求が出された場合に、印刷データを含む印刷ジョブを生成してネットワークプリンタ１０５に印刷指示を行う機能や、クライアントコンピュータ１０２〜１０４から印刷データを含まない印刷ジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアント１０２〜１０４に対して印刷データを含む印刷ジョブの送信許可を通知する機能や、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得してクライアントコンピュータ１０２〜１０４に通知する機能などを有している。
【００１５】
ネットワークプリンタ１０５は、ネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントコンピュータ１０２〜１０４やサーバ１０１から送信されてくる印刷ジョブを解析し、１ページずつドットイメージに変換して印刷する。なお、同図にネットワークプリンタ１０５は１台しか示されていないが、他にも複数のネットワークプリンタが接続されているものとする。各ネットワークプリンタの機能は相違するものであってもよい。
【００１６】
また、１０６はネットワークであり、クライントコンピュータ１０２〜１０４、プリントサーバ１０１、ネットワークプリンタ１０５等と接続している。
【００１７】
＜ネットワークコンピュータのハードウエア構成例＞
図２は、クライアントコンピュータ１０２〜１０４やプリントサーバ１０１として使用されるコンピュータの構成を説明するブロック図である。なお、本実施形態においては、クライアントコンピュータ１０２〜１０４もプリントサーバ１０１も同様あるいは同等のハードウエア構成とするが、それぞれ専用のハードウエア構成であっても構わない。
【００１８】
図２において、２００は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳ（オペレーティングシステム）や、本実施形態の印刷制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。なお、ＯＳとしてはＷｉｎｄｏｗｓ（登録商標）に限定されるものではなく、描画命令を備えていれば他のＯＳも適用可能である。また、プリンタドライバは本印刷制御プログラムがＯＳを介して各種情報を取得する際に利用されるものであり、この点で、本印刷制御プログラムに含めるように考えても良い。
【００１９】
２０１は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２０】
２０３は記憶媒体読み込み手段としてのフロッピディスク（ＦＤ）ドライブであり、ＦＤドライブ２０３を通じて、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータにロードすることができる。
【００２１】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、印刷制御プログラム、関連プログラム等を格納している。さらに、スプール手段であるスプーラはここに確保される。スプール手段は、クライアントコンピュータ１０２〜１０４ではクライアントスプーラのことであり、プリントサーバ１０１ではサーバスプーラのことである。また、プリントサーバ１０１では、クライアントコンピュータ１０２〜１０４から受けた印刷ジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２２】
２０６は入力装置としてのキーボードであり、ユーザがクライアントコンピュータ１０２〜１０４に対して、また、オペレータや管理者がプリントサーバ１０１に対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７は表示装置としてのディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの能力等を表示したりするものである。
【００２３】
２０８はシステムバスであり、クライアントコンピュータ１０２〜１０４やプリントサーバ１０１であるコンピュータ内のデータの流れを司るものである。２０９は入出力手段であるインタフェースであり、インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００２４】
なお、上記コンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤなどで変更することも可能である。
【００２５】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる印刷制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００２６】
なお、本実施形態では、印刷制御プログラムおよび関連データをＦＤ２０４から直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、印刷制御プログラムを動作させる度に、既に印刷制御プログラムがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードするようにしてもよい。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウエア装置の代替として構成することもできる。
【００２７】
印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序の変更を指示したりするための制御を行うプログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知したりするためのプログラムを含んでいる。また、このような制御を行う本実施形態の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能したりするようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとを共にインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
【００２８】
３０１は基本Ｉ／Ｏプログラムであり、コンピュータの電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムである。３０２はＯＳであり、３０３は印刷制御プログラムであり、３０４は関連データである。印刷制御プログラム３０３及び関連データ３０４は、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が他のプログラムを実行するための領域である。
【００２９】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００３０】
図４において、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は印刷制御プログラム、４０４はその関連データである。印刷制御プログラム４０３は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント及びサーバ共に、同様の構成をとっている。
【００３１】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。図５において、ＦＤ２０４には、本実施形態で説明する印刷制御プログラムおよび関連データが格納されている。
【００３２】
＜印刷処理システムにおけるソフトウェア構成例＞
本印刷処理システムでは、複数のプリンタを仮想的に束ねて１つにした単独では為しえない機能を備えた仮想的なプリンタを「グループプリンタ」として設定することができる。即ち、アプリケーションから、グループプリンタに対して印刷指示を発行することにより、グループプリンタに属する複数のプリンタのいずれかに印刷を行わせることができる。ここで、束ねられる複数のプリンタの各々を「メンバプリンタ」と称する。また、グループプリンタおよびメンバプリンタには、グループプリンタドライバおよびデバイスドライバが対応している。
【００３３】
アプリケーションがＯＳの機能を借りてグループプリンタに対して描画命令を渡すと、グループプリンタドライバ及び中間形式ファイル構築部（汎用印刷ファイル構築部）７１５は、図８に示される中間形式ファイル（汎用印刷ファイルと呼ぶこともある）を生成する。そして、この中間形式ファイルに基づいてページ記述言語を生成させるべく、ジョブ制御プリントサービスから、各個別のプリンタドライバに中間形式ファイルに基づく印刷指示がなされる。この個別の各プリンタドライバは、メンバプリンタに対応するものである。
【００３４】
アプリケーションにおける印刷指示に応じてＯＳを介して出力される描画命令（一般的にＤＤＩ或いはＧＤＩと呼ばれている）を解釈しページ記述言語を生成し、図６のジョブ制御ポートモニタ６２１ではなく、ＯＳに標準で搭載され標準ＴＣＰ／ＩＰスタンダードポートのようなポートモニタを介して、デバイスへ出力させるようなプリンタを通常プリンタと呼び、ジョブ制御ポートモニタ６２１に関連付けられたグループプリンタやメンバプリンタと区別する。
【００３５】
また、デバイスである物理プリンタとは区別してプリンタドライバとプリンタ出力ポートとの組み合わせをプリンタと呼ぶ。例えば、図７のジョブ制御ポートモニタ６２１とグループプリンタドライバ６０３との組み合わせを指定することを、グループプリンタを指定すると呼ぶこととする。
【００３６】
図６は、本システムのクライアントサーバモデルにおいて、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｏｒｄなどの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。
【００３７】
通常、印刷の指示がされると、アプリケーションプログラム６０１は一連の描画命令をＯＳを介して生成する。
【００３８】
生成された描画命令は、グループプリンタドライバ６０３或はＰＤＬドライバ６０２のいずれか指定されたプログラムに引き渡される。なお、ＰＤＬドライバ６０２の代わりに、例えば、ＢＤＬ（Ｂａｎｄ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）や、圧縮ビットマップを作成するプリンタドライバなども適用可能である。
【００３９】
ＯＳを介して生成された描画命令がグループプリンタドライバ６０３に渡された場合には、グループプリンタドライバ６０３は、中間形式ファイルを生成し、スプーラ（Ｗｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒ）６０４に渡す。スプーラ６０４は、ユーザがユーザインタフェースを介して選択し指示したポートモニタに印刷ジョブを渡して、プリントデバイスに送信させる手順をとる。本実施形態では、プリントデバイス１０５へ印刷ジョブを送信する従来のポートモニタではなく、印刷ジョブ制御システム用のポートモニタ６２１（以降、ジョブ制御ポートモニタと略記）をユーザがあらかじめ指定したものとする。
【００４０】
プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ６２１に送信される。
【００４１】
ジョブ制御ポートモニタ６２１は、中間形式ファイルのデータをプリントデバイス１０５に送信するのではなく、印刷ジョブ制御システム用プリントサービス６２２（以降、ジョブ制御プリントサービスと略記）に転送する。
【００４２】
一方、ＯＳを介して生成された描画命令がＰＤＬドライバ６０２に投入された場合には、ＰＤＬドライバ６０２よって頁記述言語が生成され、生成された頁記述言語は、印刷処理を行うよう設定されたＰＤＬドライバ６０２に対応するジョブ制御ポートモニタ６２１、ジョブ制御プリントサービス６２２を介して対応するデバイスに送信される。
【００４３】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス６２２内部で印刷ジョブがどのような状態にあるかを調べたり、印刷ジョブを操作したりするためのユーザインタフェースを提供するプログラムである。プリントマネージャ６２３は、ジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介して、ジョブ制御プリントサービス６２２と情報・指示をやり取りしている。例えば、プリントマネージャ６２３がジョブ制御プリントサービス６２２に対してデバイスを指定したイベントを発行し、ジョブ制御プリントサービス６２２は発行されたイベントに基づくデバイスのステータスを監視して、監視に基づく結果をプリントマネージャ６２３に通知する。
【００４４】
印刷ジョブ制御システム用サーバ６３０（以降、ジョブ制御サーバと略記）は、個々のクライアントコンピュータ１０２〜１０４上のジョブ制御プリントサービス６２２がプリントデバイス１０５に印刷ジョブを送信するタイミングを集中制御（スケジューリング）している。印刷ジョブ制御システム用マネージメントコンソール６３３（以降、マネージメントコンソールと略記）は、ＡＰＩを介して、ジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。なお、ジョブ制御サーバ６３０の機能が個々のクライアントコンピュータ１０２〜１０４に含まれるようにしても良い。その場合には、ジョブ制御サーバ６３０はジョブ制御プリントサービス６２２に含めるものとして考えてよい。
【００４５】
また、ジョブ制御サーバ６３０は、デバイス情報コントロールモジュール６３１を用いて各プリントデバイス１０５と通信を行い、各プリントデバイス１０５に対して発行された印刷ジョブやプリントデバイス１０５の動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアントコンピュータ１０２〜１０４側のジョブ制御プリントサービス６２２に渡すことができる。
【００４６】
＜印刷処理システムの動作例＞
次に、本実施形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００４７】
グループプリンタドライバ６０３は、アプリケーションプログラム６０１が生成した一連の描画コマンドをプリントデバイスやＯＳの種類に依存しない中間形式データに変換する。この中間形式データは、スプーラ６０４からジョブ制御ポートモニタ６２１を経て（図６の矢印（ａ））、中間形式ファイルとしてジョブ制御プリントサービス６２２に導かれる（図６の矢印（ｂ））。
【００４８】
ジョブ制御プリントサービス６２２は、この印刷ジョブに対して行うジョブ制御の種類に応じて、中間形式ファイルをもとに描画コマンドを生成してＰＤＬドライバ６０２に渡す（図６の矢印（ｃ））。そして、続けてＰＤＬドライバ６０２がその描画コマンドをプリントデバイス１０５が解釈可能なＰＤＬ形式のファイルにする。
【００４９】
図６では、ジョブ制御プリントサービス６２２で、この印刷ジョブに対してプリントデバイス１０５側のエラー等を検知して代行印刷を行う例を示しており、実線で示されるのは当初印刷を予定していた印刷ジョブであり、破線については代行印刷のために生成された印刷ジョブを示している（図６の矢印（ｃ））。
【００５０】
ＰＤＬドライバ６０２で生成されたＰＤＬファイルはスプーラ６０４、ジョブ制御ポートモニタ６２１を経て（図６の矢印（ｄ））、再びジョブ制御プリントサービス６２２に渡される（図６の矢印（ｅ））。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬの印刷ジョブをプリントデバイス１０５に送信する（図６の矢印（ｆ））。
【００５１】
ジョブ制御プリントサービス６２２は、中間形式ファイル中の印刷指示書の指示にしたがって、１つの中間形式ファイルを複数の印刷ジョブに論理的に分割してそれぞれ別のプリントデバイスに送信したり、一度送信した印刷ジョブを別のプリントデバイスに送信し直したりする。図６中に示す矢印（ｃ）、（ｄ）、（ｅ）、（ｆ）はそのような場合の印刷ジョブデータの経路を示している。
【００５２】
＜中間形式ファイルの構成例＞
図８は、構築された中間形式ファイルの構成の一例を示した図である。
【００５３】
本実施形態で使用される中間形式ファイルは、印刷指示部８ａ（前述の印刷指示書に相当）とドキュメントデータ部８ｂとからなる。印刷指示部８ａは、ドキュメントの情報と印刷指示とを記述した部分である。また、ドキュメントデータ部８ｂは、アプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語やＯＳの種類に依存しない或は依存しにくい中間形式データとなっている。
【００５４】
中間形式データとしては、印刷リソースデータとして利用可能でかつワードプロセッサアプリケーション等により再度編集可能な形式のデータであることが必要とされ、実質的な標準形式のうち、例えば、ＸＭＬ形式や、ＷＩＮＤＯＷＳ（登録商標）システムにより提供されるＥＭＦ形式、Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ  ＩｎｃｏｒｐｏｒａｔｅｄによるＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）形式、ＳＶＧ形式などがあげられる。
【００５５】
また、図示はされてはいないが、中間形式ファイルには、各メンバプリンタに対応したＤＥＶＭＯＤＥの設定も含まれているものとする。ＤＥＶＭＯＤＥの設定には共通及び拡張設定項目の双方が含まれる。
【００５６】
さらに詳細に説明すると、印刷指示部８ａは、ヘッダ部８０１、ページ情報部８０２、ドキュメント属性部８０３、印刷体裁指示部８０４、出力方法指定部８０５、メンバプリンタ数８０６、メンバプリンタドライバ名８０７などから構成されている。
【００５７】
ヘッダ部８０１は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部８０２は、ドキュメントデータ部８ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００５８】
印刷体裁指示部８０４は、グループプリンタドライバのＵＩや、メンバプリンタの個別のＵＩを介して設定された印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステープル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。なお、ステープル、パンチ指示については、ページ単位で指定（サブセットステイプ等）されることもある。なお、各メンバプリンタの個別のＵＩを介して設定された内容は印刷体裁指示部８０４に反映されると共に、各メンバプリンタに対応するＤＥＶＭＯＤＥにも反映させるために保存される。
【００５９】
出力方法指定部８０５は、出力方法として、分散印刷、同報印刷、代行印刷、通常印刷（代行しない印刷）などの出力方法に関する情報を格納する部分である。この出力方法指定部８０５に代行印刷が設定されている場合には、さらに優先順位情報（第一候補、第二候補・・・）を付したプリンタ情報が含まれる。
【００６０】
メンバプリンタ数８０６は、グループプリンタに関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名８０７は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名８０７は、前述のメンバプリンタ数８０６の数だけの格納エリアを持っている。
【００６１】
前述の図６で説明したジョブ制御プリントサービス６２２では、中間形式データより中間形式ファイルを生成する際、グループプリンタドライバ６０３のＧＵＩ上での設定を印刷指示部８ａへ記憶する。さらに、グループプリンタドライバ６０３から受け取った中間形式データを、中間形式ファイルのドキュメントデータ部８ｂに記録する処理も、ジョブ制御プリントサービス６２２により実行される。
【００６２】
＜印刷ジョブの流れ＞
次に、図７で印刷ジョブの流れをさらに詳しく述べる。ここで、図６と同じ機能は同じ参照番号を付与しており、その機能については詳説しない。
【００６３】
図７中では、印刷ジョブ制御システム７００は、制御プログラムが動作するプリントサーバ１０１とクライアント１０２〜１０４の物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、プリントサーバ１０１が管理しているアウトプットポート（Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１１は、クライアントコンピュータ１０２〜１０４のジョブ制御プリントサービス６２２のプロキシアウトプットポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２とそれぞれ関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシアウトプットポートの全てを統一的に管理している。本実施形態では、実際の印刷ジョブは各々のクライアントコンピュータ１０２，１０３，１０４のプリントキューを含むプロキシアウトプットポート７１２に保持される。
【００６４】
ジョブ制御サーバ６３０は、印刷データ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じて、クライアントのジョブ制御プリントサービス６２２は印刷データをプリントデバイス１０５に送信する。
【００６５】
次に、印刷ジョブ制御システム７００が、代行印刷といった付加価値印刷を行う場合の処理を説明する。
【００６６】
アプリケーション６０１がグループプリンタドライバ６０３に対応するグループプリンタに対して印刷指示を発行すると、ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって生成された中間形式をジョブ制御ポートモニタ６２１を介して受け取る。ジョブ制御プリントサービス６２２は、この中間形式データより中間形式ファイルを構築し（図７の汎用印刷ファイル７１５）、先に説明した印刷指示部８ａの指示内容に従う印刷指示をデスプーラ（Ｄｅｓｐｏｏｌｅｒ）７０１に対して行う。そしてデスプーラ７０１を介してＰＤＬドライバが割り当てられた別のプリントデバイスに印刷指示を発行する。これにより、各ＰＤＬドライバにおいて、ＰＤＬファイルを実体とする印刷ジョブが生成される。このジョブをメンバジョブを称する。つまり、メンバジョブとは、分散印刷や同報印刷や代行印刷などの出力方法に対応するグループプリンタドライバを経て中間形式ファイルに基づき生成したジョブを指す。また、複数のメンバジョブを束ねたジョブをグループジョブと呼ぶこともある。
【００６７】
このとき、デスプーラ７０１は、ジョブ制御プリントサービス６２２の印刷指示部８ａの解釈に基づく指示に応じて、ドキュメントデータ部８ｂのドキュメントデータを加工してＧＤＩに変換し、ドライバ６０２に対して印刷指示を行い、印刷ジョブを発行する。例えば、印刷体裁指定部８０４に２−ＵＰに相当する指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトするようにＤＥＶＭＯＤＥを介してメンバプリンタに対して指示する。また、印刷体裁指定部８０４にステープル指示がある場合にはＤＥＶＭＯＤＥを介してステープルの指示を行う。また、代行印刷時には、印刷指示部８ａに記述されている代行先メンバプリンタにジョブを発行する。なお、２−ＵＰ等の縮小レイアウトを処理する場合にデスプーラ自身が印刷体裁指定部８０４の内容に基づき縮小レイアウトするようにして、メンバプリンタにはＤＥＶＭＯＤＥを介して１−ＵＰを指示するようにしても良い。
【００６８】
またデスプーラ７０１はメンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部８ａ或いは各メンバプリンタに対応して保存されたＤＥＶＭＯＤＥに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【００６９】
クライアント１０２〜１０４側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされたそれぞれのメンバジョブの印刷データをジョブ制御ポートモニタ６２１を介して受け取り、受け取った印刷ジョブに関する印刷ジョブ情報をプリントサーバ１０１側に知らせ、印刷ジョブのデータは自身のプロキシアウトプットポート７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス１０５に送信する。
【００７０】
なお、ここで、プロキシアウトプットポート７１２で一時保持される印刷ジョブのデータには、少なくとも印刷データと該印刷データの管理情報とが含まれる。この管理情報には、（Ａ）印刷データの格納場所のポインタ、（Ｂ）ジョブＩＤ、（Ｃ）中間形式ファイルから作成されたメンバジョブか否かを識別するためのメンバジョブフラグ、（Ｄ）プリンタ名、（Ｅ）どのような種別及びバージョンのプリンタ言語に対応するドライバかを識別するためのプリンタドライバ名称、（Ｆ）ポート名（プロキシアウトプットポート識別子）、（Ｇ）プリンタデバイスを識別可能する際にも利用するＩＰアドレス、（Ｈ）ジョブ発行時刻、（Ｉ）ユーザ名、（Ｊ）ＰＤＬデータのファイル名、（Ｋ）ホストコンピュータ名、（Ｌ）両面やステープルなどを含む印刷設定が少なくとも含まれる。（Ａ）〜（Ｌ）の各項目の情報は（１）管理情報に直接含めるようにしても良いし、（２）例えば、プリンタ名をパラメータに間接的に取得するようにしても良い。以下に説明する各フローチャートの各ステップにおいて、下の情報を取得する場合には、上記（１）、（２）の方法のいずれかで行っているものとする。
【００７１】
【表１】
2006301860.tif 000003
【００７２】
＜プリンタ間で移動可能な印刷ジョブ＞
図１２を用いて、印刷ジョブの種類と、それぞれの種類で移動可能なプリンタの種類との関係を示す。なお、論理プリンタがプリンタデバイスと１対１に対応している場合にはプリンタをプリンタデバイスと置き換えることもできる。
【００７３】
図７においてアプリケーション６０１からＰＤＬドライバ６０２を持つプリンタに対して投入された印刷ジョブ（直接印刷ジョブ）の場合、移動前と同じ種類のドライバを持ったプリンタに移動可能である。直接印刷のジョブの移動においては、印刷ジョブ制御システム７００は印刷ジョブの実体であるＰＤＬファイルをプロキシアウトプットポート７１２間で移すことにより実現しているが、一つの機種用のＰＤＬドライバによって生成されたＰＤＬファイルはそれとは異なる機種のデバイスで印刷しても結果が保証されないからである。
【００７４】
印刷ジョブがメンバジョブの場合、ＰＤＬファイルを実体としていながらも、そのＰＤＬファイルの元になった中間形式ファイル７１６に基づく印刷データの変換を、移動先デバイスに対応するＰＤＬドライバ６０２に行わせ、メンバジョブを再生成することができるため、印刷ジョブの移動先としては、移動先がメンバプリンタのプリントキューであるか否かだけを考えればよく、機種（ドライバの種類）の制約がない。
【００７５】
さらに、メンバジョブの移動方法には２通りの処理方法がある。１つ目は、移動先と移動元とのプリンタが同じ種類のプリントデバイスに対応している場合であり、２つ目は移動先と移動元とのプリンタが異なる種類のプリントデバイスに対応している場合である。特に後者のほうは、異なる種類のプリントデバイスと対応しているアウトプットポート７１１やプロキシアウトプットポート７１２に関連付けられたプリンタ間の移動を可能とする。これは、図７における中間形式ファイル７１６から移動先のプリンタに割り当てられているＰＤＬドライバ６０２を介して再度ＰＤＬデータ及びその管理情報を生成しなおしプリントキューに登録する処理に対応する。以降の説明においては、メンバジョブの移動に関して、同じ種類のプリンタが移動先となる場合には上記のいずれの方法でも良いものとする。
【００７６】
これらＰＤＬファイルを実体とした２種類の印刷ジョブのいずれの場合も、グループプリンタドライバ６０３を持ったグループプリンタのプリントキューへの移動は行えないものとする。また、グループプリンタ用に生成されたグループジョブは他のいかなるプリントキューへも移動できないものとする。
【００７７】
さらに図１２は、たとえ移動が可能であっても、印刷ジョブにおいて両面印刷などのオプション設定が指定されているとき、移動先のプリンタデバイスが当該設定を実行するための機能を備えているかどうかによって印刷結果が異なり得る組み合わせ（▲）を示している。このような場合には、警告等をユーザに識別可能に知らしめるようにすればよい。
【００７８】
＜印刷ジョブの管理画面例＞
図１４は、印刷ジョブを管理するための画面の１例を示す図である。図１４の画面には、印刷ジョブを象徴的に示す印刷ジョブ表示要素としてプリンタアイコンがリスト表示され、複数の印刷装置のプリントキューを象徴的に示すプリンタ表示要素として印刷ジョブアイコンがリスト表示されている。図１５〜１６についても同様であるが、ユーザはプリンタに障害が発生したタイミングや込み合っていることをこの表示画面中の「状態」を介して知ることが出来、任意のタイミングで所定のジョブを所定のプリンタに対して移動指示することができる。さらに、ジャム発生や消耗品切れ時などにおける代行印刷を行うようなタイミングに限定されることなく、ユーザに都合の良いタイミングで容易に印刷ジョブのプリンタ変更を指示することができる。ただし、印刷ジョブの状態によっては移動指示しても実際に移動が実行できないことがある。
【００７９】
図１４において、１４０１はマウスカーソルの通常表示、１４０２はプリンタアイコンの通常表示、１４０３は印刷ジョブアイコンの通常表示、１４０４は印刷ジョブアイコンの選択状態表示を示す。このようなジョブリスト及びプリンタリストの表示は、例えば図６において説明したプリントマネージャ６２３により実現される。
【００８０】
なお、ここでプリンタリストに表示されるプリンタアイコンは、「プリントキュー」を示したものであり、各プリンタに対応するアイコン及びグループプリンタに対応するアイコンが含まれる。したがって、以下の説明中、ＧＵＩ上で、プリンタＡ用に生成された印刷ジョブのアイコンをプリンタＢのアイコン上に移動させることを、「印刷ジョブをプリンタＡからプリンタＢに移動する」と表現しているが、実際にジョブ制御プリントサービス６２２内部で行われる処理はそれとは異なっている。以下に印刷ジョブの移動を実現するための処理についてより具体的に説明する。
【００８１】
本発明で意味するところの印刷ジョブの移動とは、１つの実装形態としては印刷ジョブに係るＰＤＬデータおよびその表１の管理情報のうち、管理情報を操作することにより、新たな印刷ジョブとして別のアウトプットポート７１１ないしはプロキシアウトプットポート７１２の管理下に置き換えることを指す。この場合、ＰＤＬデータおよびその管理情報の実体を保持する領域は変更する必要はない。したがって、印刷キューはあくまで仮想的な概念であって、実体として個々に区別できる形では存在しない。
【００８２】
これに代わる実装形態として、ＰＤＬデータおよびその管理情報の実体を保持する領域を個々のアウトプットポート７１１ないしはプロキシアウトプットポート７１２ごとに独立して設け、印刷ジョブの移動時には管理情報を文字通り移動するという方法がある。この場合、印刷キューとは各アウトプットポート７１１ないしはプロキシアウトプットポート７１２ごとのＰＤＬデータおよびその管理情報の実体を保持する領域と管理情報を組み合わせたものに相当する。
【００８３】
ただ、いずれの方法においても、印刷キューというものがアウトプットポート７１１ないしはプロキシアウトプットポート７１２の一側面を表すものとして捉えることができ、さらに、当該アウトプットポート７１１ないしはプロキシアウトプットポート７１２が関連付けられたプリンタとの関係においても同様のことが言える。
【００８４】
以降の説明においては印刷ジョブの移動の実装は上記のいずれでもよいものと考え、二者間の差異は捨象することとする。
【００８５】
なお、上記二種類の実装方法は、同一機種のプリントデバイスに対応しているアウトプットポート７１１ないしはプロキシアウトプットポート７１２に関連付けられたプリンタ間の移動の場合に限られる。これは、プリントデバイスに送られるＰＤＬデータおよび制御情報は機種に依存するからである。
【００８６】
＜表示を制御するモジュールの構成＞
図９は、図１４に示す画面に対するユーザの操作を取得し、その操作を画面に反映させるための表示制御用モジュールの構成を示す図である。
【００８７】
マウス操作情報取得部９０１はユーザによるマウスの移動やボタン押下といった操作の情報（以後、マウスイベント情報と総称する）をＯＳ９０２に伝える。このマウス操作情報取得部９０１は一般的にはＯＳが司る機能であるが、独自に設けるようにしても良い。
【００８８】
プリントマネージャ９００中のマウスイベント処理部９０４はＯＳ９０２からマウスイベント情報（マウスの位置座標や、マウスが重なっているウィンドウのハンドルを含む）を受け取り、プリンタリスト表示制御部９０５または印刷ジョブリスト表示制御部９０６にイベント情報を伝える。
【００８９】
プリンタリスト表示制御部９０５および印刷ジョブリスト表示制御部９０６は、受け取ったマウスイベント情報に応じて画面上のプリンタのリスト表示、印刷ジョブのリスト表示を各々更新するようＯＳ９０２に指示する。
【００９０】
ドラッグ・アンド・ドロップ制御部９０７はプリンタリスト表示制御部９０５または印刷ジョブリスト表示制御部９０６からドラッグされているジョブやマウスカーソルが重なっているプリンタアイコンに関する情報を受け取り、プリンタリストが表示すべきプリンタアイコンの態様を決定してプリンタリスト表示制御部９０５に伝える。さらに表示すべきマウスカーソルの形状をマウスカーソル表示制御部９０３に指示し、それを受けてマウスカーソル表示制御部９０３は画面に表示されたマウスカーソルの形状を変更するようＯＳ９０２に指示する。
【００９１】
プリンタリスト表示制御部９０５はプリンタ情報取得部９０８を介してジョブ制御プリントサービス６２２から取得したプリントデバイスに関する情報と、ドラッグ・アンド・ドロップ制御部９０７から伝えられた情報に基づいてプリンタリストにプリンタアイコンを表示する。
【００９２】
印刷ジョブリスト表示制御部９０６は印刷ジョブ情報取得部９０９を介してジョブ制御プリントサービス６２２から取得した印刷ジョブに関する情報と、ドラッグ・アンド・ドロップ制御部９０７から伝えられた情報にもとづいて印刷ジョブリストに各印刷ジョブのアイコンを表示する。
【００９３】
なお、以下に示す図１０、図１１における各フローチャートの各ステップの説明では、図９のいずれかのブロックを対応付けて説明するが、図９における各ブロックの機能の分担は一例であり、例えば、あるブロック一部或いは全部の機能を他のブロックに設けるようにしてもよく、機能の分担については特に限定されるものではない。
【００９４】
＜印刷ジョブの移動表示処理＞
次に、図１０を参照して印刷ジョブを移動する際の表示処理の詳細を説明する。図１０は選択した印刷ジョブの移動を指示する一連の操作に関する処理の流れを示すフローチャートである。
【００９５】
ユーザが、印刷ジョブリストから印刷ジョブをポイント・アンド・クリックによって選択すると、ステップ１００１では、それに応じて、当該各印刷ジョブのアイコンをハイライト表示する。ここで、選択された印刷ジョブに対してどのようなオペレーションをユーザが行おうとしているかはまだ判断できない。すなわち、移動のためにドラッグする可能性もあるし、マウスボタンをリリースしてから停止あるいは削除のメニューを選択するなど別のオペレーションを行う可能性もある。したがってこの時点では印刷ジョブのアイコンは単にハイライト表示のみ行う。ここで、複数の印刷ジョブを選択することも可能であり、以下では複数の印刷ジョブが選択されたものとして説明を進める。複数の印刷ジョブを選択するには、コンピュータのユーザインタフェースで広く慣習となっているようにシフトキーやコントロールキーをマウス操作と併用することによるものとする。
【００９６】
この処理を行うに当たり、マウス操作情報取得部９０１は、ユーザの操作を検出し、ＯＳ９０２、マウスイベント処理部９０４を介して印刷ジョブリスト表示制御部９０６に伝える。印刷ジョブリスト表示制御部９０６はマウスクリックが発生した場所から選択された印刷ジョブを割り出して印刷ジョブのハイライト表示を行う。
【００９７】
次に、ステップ１００２では、選択された印刷ジョブの移動指示即ちドラッグが開始されたか否かを判定する。つまり、ユーザがマウスのドラッグ操作を行ったかどうかを判定する。具体的には、ステップ１００１でハイライト表示された印刷ジョブをユーザがドラッグすると、マウス操作情報取得部９０１において検出されたユーザのマウス操作情報をＯＳ９０２を介してドラッグ開始イベントとしてマウスイベント処理部９０４が受け取ったかどうかで判定する。
【００９８】
ステップ１００２でＹＥＳと判定された場合には次にステップ１００３ではドラッグされた印刷ジョブの属性の取得が行なわれる。さらに詳細には、ステップ１００２でＹＥＳと判定されたことを契機に印刷ジョブリスト表示制御部９０６が印刷ジョブ情報取得部９０９にステップ１００１で選択された印刷ジョブの詳細情報（属性）を取得させ、取得された情報がクリップボードに保持される。なおドラッグ開始イベントはユーザがボタンを押下したままマウスの移動を開始したことを示すイベントである。
【００９９】
ここで、ステップ１００３で取得される情報としては、表１に示されるものとなる。また別の形態として、ステップ１００３においては表１の（Ａ）のジョブＩＤのようなキー情報を取得しておき、後述するステップ１１０３の処理において必要に応じて、キー情報に基づき表１の（Ｂ）〜（Ｌ）の中の必要な情報を取得するようにしても良い。
【０１００】
なお上で言うイベントとは、一般にユーザによるキーボードおよびマウス入力を始めとした外部的な要因によって発生し、アプリケーションに通知される種々の事象をいう。ただし、イベントはアプリケーションのコンテキストに基づいたものではないので、アプリケーション側でイベント情報を解析してその意味を解釈する必要がある。例えば上のドラッグ開始イベントの場合、それがどのジョブアイコンについて発生したかを知る手段はＯＳ９０２により提供されるが、それがどの印刷ジョブに対応するかの判断はアプリケーションであるプリントマネージャ９００に委ねられる。
【０１０１】
ユーザがマウスのドラッグ操作を行ったと判定すると、さらに、ステップ１００４において、マウスカーソルおよびプリンタリスト上のプリンタアイコンの表示を更新する。このタイミングでマウスカーソルの形状を変更するのは、ステップ１００１でユーザが印刷ジョブアイコンをクリックした後ドラッグを開始することにより、初めてユーザがこの印刷ジョブの移動を行おうとしていると判断できるためである。この処理の詳細については図１１を用いて後述する。
【０１０２】
この処理ではマウス操作情報取得部９０１において検出されたユーザのマウス操作情報がＯＳ９０２を介してドラッグイベント、ドラッグオーバーイベントのいずれかとしてマウスイベント処理部９０４に伝えられたことにより、ユーザがドラッグしたと判断される。なおドラッグイベントはユーザがドラッグ操作を行ったことを示し、ドラッグオーバーイベントはドラッグ中にカーソルがプリンタアイコンのリスト上のひとつのアイテム上に重なったことを示す。ドラッグ開始イベントと同様、ドラッグオーバーイベントに関しても、マウスカーソルがどのプリンタアイコン上に重ねられたかを知る手段はＯＳ９０２により提供されるが、それがどのプリントデバイスに対応するかの判断はプリントマネージャ９００側で行う必要がある。
【０１０３】
ステップ１００５ではユーザがマウスボタンの押下を止めて印刷ジョブの選択を解除（ドロップ操作）したかどうかを判定する。これはマウス操作情報取得部９０１において検出されたユーザのマウス操作情報を、ＯＳ９０２を介してドロップイベントとしてマウスイベント処理部９０４が受け取ったときに真と判定する。あるいはボタンイベントとしてマウスイベント処理部９０４に伝達され、ボタン押下を止めたことが検出された場合でも真と判断する。真と判断された場合はステップ１００６に進む。
【０１０４】
ステップ１００６では、ステップ１００５においてユーザがマウスボタンの押下を止めて印刷ジョブの選択を解除したと判定した場合、続いてマウスカーソルがプリンタリスト上のプリンタアイコンの一つに重ねられているかどうかを判定する。この処理はステップ１００２においてドラッグオーバーイベントが伝達された場合に限り、さらに以下のように判定する。すなわち、ドラッグオーバーイベントがマウスイベント処理部９０４を介してプリンタリスト表示制御部９０５に伝達され、プリンタリスト表示制御部９０５が前記イベントに含まれる座標情報からどのプリンタのアイコンに重なったかを割り出す。判定結果はドラッグ・アンド・ドロップ制御部９０７に伝えられる。
【０１０５】
ステップ１００６においてマウスカーソルがプリンタリスト上のプリンタアイコンの一つに重ねられていると判定された場合は、選択された複数の印刷ジョブをプリンタアイコンで表されたプリントキューに移動するようにユーザが指示した場合に相当するので実際にその印刷ジョブの移動処理を行う。まずステップ１００９で、ドラッグされている複数の印刷ジョブのおのおのを実際にそのプリンタアイコンで表されたプリントキューに移動することができるかどうかを調べる。これは、後述するようにステップ１００４において選択されている印刷ジョブのおのおのについてマウスカーソルが重ねられているアイコンによって示されるプリントキューに移動可能かを調べるので、その情報を内部的な管理テーブルに保持しておき、参照すればよい。保持された情報は参照された後に破棄される。
【０１０６】
ステップ１０１０においてドラッグ・アンド・ドロップ制御部９０７は、選択されている各印刷ジョブについて移動（再登録）の指示をジョブ制御プリントサービス６２２に対して出す。ここで、移動可能な印刷ジョブに対しても不可能な印刷ジョブに対しても画一的に移動の指示を出すが、移動不可能な印刷ジョブについてはエラーが返るので無視する。この後ステップ１００７に進む。
【０１０７】
ここで、ステップ１０１０においてジョブ制御プリントサービス６２２の内部で行われる印刷ジョブの移動処理について述べる。移動すべき印刷ジョブが、図７においてアプリケーション６０１からＰＤＬドライバ６０２を持つプリンタに発行する形の印刷ジョブの場合、プロキシアウトプットポート７１２Ａからプロキシアウトプットポート７１２Ｂに印刷ジョブを直接移す。この場合、前述のようにプロキシアウトプットポート７１２Ａが関連付けられているプリンタのドライバ６０２Ａとプロキシアウトプットポート７１２Ｂが関連付けられているプリンタのドライバ６０２Ｂは同一種類のドライバでなければならない。一方、移動すべき印刷ジョブが、図７において中間形式ファイル７１６を経てデスプーラ７０１によりＰＤＬドライバ６０２Ａに送信され、生成されたメンバジョブである場合、移動指示を受けると、再度中間形式ファイル７１６からデスプーラ７０１を経てＰＤＬドライバ６０２Ｂに送信される。
【０１０８】
また、ジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２を用いて生成された印刷ジョブのデータを、ジョブ制御ポートモニタ６２１から受け取り、プリントデバイス１０５で印刷ジョブに基づく印刷出力（排紙完了）が確認されるまで、保持続ける。印刷ジョブの移動処理は印刷ジョブが保持続けられる間に可能であり、印刷ジョブのデータがプリントデバイス１０５に転送された後でも、ユーザによる任意のタイミングでの移動指示に応じて、ジョブ制御プリントサービス６２２に保持される印刷ジョブのデータに基づきジョブの移動が行なわれる。図１４〜１６、１８のユーザインタフェースを介して行なわれる移動指示は、印刷ジョブが保持続けられる間に行われるものとする。
【０１０９】
さらに、ジョブ制御プリントサービス６２２が保持し、移動処理時に用いる印刷ジョブのデータは、ジョブ制御プリントサービス６２２がソフトウェアによるラスタイメージプロセッサ（以後ソフトウェアＲＩＰと呼ぶ）が知られているが、ソフトウェアＲＩＰ後のデータをプリントデバイスに依存しない形式のデータとすれば、このソフトウェアＲＩＰ後のデータの印刷ジョブを移動させる場合には、中間形式ファイルの場合と同様に機種を跨いだプリンタを移動可能なプリンタとしてアイコン表示させることができる。
【０１１０】
ステップ１００７では、プリンタアイコン、印刷ジョブアイコンを通常表示する。この処理はマウスイベント処理部９０４からユーザの操作情報を受け取ったプリンタリスト表示制御部９０５、印刷ジョブリスト表示制御部９０６がドラッグ・アンド・ドロップ制御部９０７の指示に応じてそれぞれ行う。マウスカーソルについてはドラッグ・アンド・ドロップ制御部９０７からの指示に応じてマウスカーソル表示制御部９０３がＯＳ９０２に指示を出して行う。
【０１１１】
一方、ステップ１００６でＮＯと判断された場合には、ステップ１００８に進む。ステップ１００８では、マウスカーソルとプリンタアイコンを通常表示する。これはユーザが印刷ジョブのアイコンをプリンタアイコンに重ねずにドラッグを中止した場合に相当する。結果として印刷ジョブの移動処理は行われず、印刷ジョブが選択状態（白黒反転表示）になる。この処理はマウスイベント処理部９０４からユーザの操作情報を受け取ったプリンタリスト表示制御部９０５がドラッグ・アンド・ドロップ制御部９０７の指示に応じてそれぞれ行う。マウスカーソルについてはドラッグ・アンド・ドロップ制御部９０７からの指示に応じてマウスカーソル表示制御部９０３がＯＳ９０２に指示を出して行う。
【０１１２】
また、ステップ１００２でＮＯと判断された場合、つまり、ユーザが印刷ジョブアイコンを選択したものの、ドラッグをしない場合にはステップ１０１１に進み、ドロップしたか否か判定する。これでドロップしていなければ、ステップ１００２に戻り、さらにドラッグしたか否かを監視する。これらのステップ１００２とステップ１０１１とを繰り返して、クリックされた印刷ジョブアイコンのドラッグまたはドロップを監視する。クリックされた印刷ジョブアイコンがドラッグされないままドロップされると、ステップ１０１１からステップ１００８に進み、マウスカーソルとプリンタアイコンを通常どおり表示して処理を終了する。
【０１１３】
＜プリンタアイコン及びマウスカーソルの表示制御＞
図１１は図１０のフローチャートにおけるステップ１００４の詳細を示す図である。これはユーザの、任意のタイミングの指示入力により選択された所定の印刷ジョブ表示要素に対応する複数の印刷ジョブの属性と、プリンタ表示要素に関連付けられたプリンタの属性とに基づき、選択された印刷ジョブ表示要素に対応する印刷ジョブを出力不可能なプリンタのプリンタ表示要素と、前記印刷ジョブを出力可能なプリンタのプリンタ表示要素と、を識別可能に表示させる処理を表す。さらに、図１２に示したように、出力可能であってもユーザが印刷を開始する際に行った印刷設定が満たされない場合があり得るので、それをユーザが識別可能なように表示させる処理も併せて行う。
【０１１４】
ステップ１１０１はマウスカーソルがプリンタリスト中のプリンタアイコンに重なっているかどうかを判定する。これはマウスのドラッグ操作の情報がマウス操作情報取得部９０１、ＯＳ９０２、マウスイベント処理部９０４を経てプリンタリスト表示制御部９０５、印刷ジョブリスト表示制御部９０６に伝えられるため、最後のイベントがドラッグオーバーイベントであったかどうかによりプリンタリスト表示制御部９０５で検出することができる。プリンタリスト表示制御部９０５は、マウスカーソルが重なっているプリンタアイコンに対応するプリントデバイスの情報を、プリンタ情報取得部９０８を介してジョブ制御プリントサービス６２２から取得する。
【０１１５】
ステップ１１０１の判定の結果、重なっていないと判定した場合はステップ１１０５に進み、マウスカーソルを進入禁止マーク付き表示する。重なっていると判定した場合はステップ１１０２に進む。図１７に、マウスカーソルの進入禁止マーク付き表示の様子を示す。
【０１１６】
ステップ１１０２ではまずマウスカーソルが重なっているプリンタの装備情報を取得する。これはその都度ジョブ制御プリントサービス６２２に問い合わせても良いが、プリントマネージャ９００側でキャッシュしておいたものを参照するようにした方がレスポンス性の点で優れている。
【０１１７】
ステップ１１０３ではドラッグされている複数の印刷ジョブそれぞれの種類とプリンタの種類とを比較する。さらに、各印刷ジョブが持つオプション設定情報を調べ、ステップ１１０２で取得したプリンタの装備情報とを比較する。これらをもとに、マウスカーソルが重なっているプリンタアイコンの付加表示レベルを図１３に示した規則に応じて決定する。
【０１１８】
ステップ１１０４では、ステップ１１０３の決定に応じてプリンタアイコン表示を更新する。続いてステップ１１０５ではステータスバーの表示を更新する。表示内容については図１３に示す。具体的には以下のようなメッセージを表示する。
（１）［通常］  表示の場合：
選択されている印刷ジョブを移動できます。
（２）［情報］  表示の場合：
無効な印刷設定：“＜印刷設定１＞”、“＜印刷設定２＞”、…
（３）［禁止］  表示の場合：
選択された印刷ジョブは、“＜プリンタ名＞”に移動できません。
（４）［警告］  表示の場合：
移動できないジョブ：“＜ドキュメント名１＞”、“＜ドキュメント名２＞”、…
次に図１５、図１６を用いて複数の印刷ジョブをドラッグ・アンド・ドロップによって他のプリンタに移動する際にユーザインタフェース上でどのような表示が行われるかについて図解説明する。
【０１１９】
図１５の例ではプリンタＢとプリンタＤという二つのプリンタに対して発行された二つのジョブが選択、ドラッグされている。ここで、プリンタＢに対応するプリントデバイスはステープル機能を持ち、プリンタＤ、プリンタＥに対応するプリントデバイスはいずれも持たないものとし、印刷ジョブ“報告書．ｄｏｃ”はステープル指定がされ、印刷ジョブ“２００４予算．ｘｌｓ”はステープル指定されていないものとする。これらの印刷ジョブをプリンタＥのアイコンの上にドラッグしたとき、上述の規則によればプリンタＥのアイコンには情報マークが付されることになる。その理由は、
“報告書．ｄｏｃ”については、同一ドライバの別プリンタなので移動可能。ただしステープル指示の設定が無視される；
“２００４予算．ｘｌｓ”については、同一ドライバの別プリンタなので移動可能である；
ということから、いずれの印刷ジョブもプリンタＥに移動して印刷可能であるが、“報告書．ｄｏｃ”が印刷ジョブの持つステープル指示の設定が無視されることになるためである。
【０１２０】
さらにこの時、ステータスバーにはプリンタＥではステープル指示の設定が無視される旨の表示がなされる。
【０１２１】
次に図１６の例では、プリンタＤとプリンタＦという二つのプリンタに対して発行された二つのジョブが選択、ドラッグされている。ここで、プリンタＢに対応するプリントデバイスはモノクロプリンタ、プリンタＦに対応するプリントデバイスはカラープリンタとする。これらの印刷ジョブをプリンタＤの上にドラッグしたとき、上述の規則によればプリンタＤのアイコンには警告マークが付されることになる。その理由は、
“２００４予算．ｘｌｓ”については元と同じプリンタなので移動不可である；
“計画書．ｄｏｃ”についてはジョブの種類が“自動代行”であることからメンバジョブなので異なる機種であっても移動可能、ただし、モノクロ印刷になる；
ということから、一部の印刷ジョブがプリンタＦでは印刷不可能であるためである。
【０１２２】
さらにこの時、ステータスバーには“２００４予算．ｘｌｓ”がプリンタＤには移動できない旨の表示がなされる。
【０１２３】
ここでステータスバーに表示されるメッセージについて補足しておく。
【０１２４】
図１６の例のように、同時に複数の「警告」または「情報」の要因となる事象が発生することがある。そのような場合、ステータスバーの表示領域の制約により、全てを表示することが難しい。そこで下記の優先順位に従って優先順位の最も高い事象のみについてステータスバーにメッセージを表示する（ただし、これらの優先順位およびレベルは初期化ファイルを編集することで変更が可能であるとする。また、検出できる「警告」、「情報」の種類が追加されればそれに対応して下記表にもエントリが追加されることになる。）。
【０１２５】
［第二実施形態］
第一実施形態では、ユーザが選択した印刷ジョブのドラッグを行い、プリンタアイコンの上にマウスカーソルを重ねている間だけ、そのプリンタへ選択された印刷ジョブを移動できるかどうか等の情報をプリンタアイコンの表示を変化させることで示す。これに対して、もう一つの実施形態として以下のものが考えられる。すなわち、ユーザがドラッグを開始した時点で、選択されている印刷ジョブが移動可能かどうか等をプリンタリスト上の全てのプリンタについてアイコンの表示を変化させて示すというものである。図１８にその時の表示様子を示す。
【０１２６】
処理の内容としては第一実施形態で図１１により示されていた手順を図１９により示される手順に変更する。具体的には、ユーザがマウスをドラッグ中、マウスカーソルがプリンタアイコンに重なっていない状態でプリンタリスト上の各プリンタにつき選択されている印刷ジョブの移動が可能かどうか等を判断してプリンタアイコンの表示に反映させる（ステップ１９０４からステップ１９０８のループがこの処理に対応する）。ただし、ドラッグイベントが検出されるたびにこの処理を行っていたのでは処理が冗長となり、表示も緩慢になる可能性がある。そこで、ドラッグ開始時にいったん各プリンタアイコンの表示変更処理を行った後は、ユーザがドロップを行うまでは再度変更することはしないこととする（ステップ１９０３でそのためのチェックを行っている）。しかしながら、前記変更処理により、マウスカーソルがプリンタリスト上のプリンタアイコンに重ねられた時点では、すでにアイコンの表示は前記ループの中で変更されていることになるので、第一実施形態の図１１で示されるステップ１１０２からステップ１１０４までの変更処理を行う必要がない。したがって、マウスカーソルの表示を通常ドラッグ中の表示に変更するだけでよい（ステップ１９０２）。
【０１２７】
第二実施形態の方法によれば、図１８に示したように、ユーザがジョブのドラッグを開始した直後から、選択したジョブが移動可能かどうか等に応じてプリンタリスト上のプリンタアイコンの表示が変化する。それにより、ユーザは印刷ジョブの適当な移動先を探すのに試行錯誤を繰り返す頻度を低減する効果がある。ただし、プリントマネージャが印刷ジョブのドラッグ開始時に処理すべき量がプリンタリスト上のプリンタの数にほぼ比例して増えるため、プリンタの数が非常に多い場合にはドラッグ操作の開始がスムーズに行われないという欠点が生じ得る。
【図面の簡単な説明】
【０１２８】
【図１】印刷処理システムの構成を説明する図である。
【図２】コンピュータの構成を説明するブロック図である。
【図３】図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【図５】図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図である。
【図６】本システムのクライアントサーバモデルにおいて、一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。
【図７】Ｗｉｎｄｏｗｓ（登録商標）が提供するプリントシステムと印刷ジョブ制御システムとにおける印刷ジョブの関係と処理概要を示した図である。
【図８】構築された中間形式ファイルの構成の一例を示した図である。
【図９】印刷ジョブ制御システムのモジュール構成を示すブロック図である。
【図１０】本発明の第１実施形態におけるドラッグ・アンド・ドロップ操作による印刷ジョブ移動の全体処理を示すフローチャートである。
【図１１】本発明の第１実施形態におけるマウスカーソルとプリンタアイコンの表示処理の詳細を示すフローチャートである。
【図１２】本発明の第１実施形態に係る印刷ジョブ制御システムにおける印刷ジョブの種類とその移動可能なプリンタの種類との組み合わせを示す表である。
【図１３】本発明の第１実施形態に係る印刷ジョブ制御システムにおける印刷ジョブの移動可能性の組み合わせによるプリンタアイコンの付加表示レベル、ステータスバーにおける表示の内容を示す表である。
【図１４】本発明の第１実施形態におけるマウスカーソルの通常表示、プリンタアイコンの通常表示、印刷ジョブの選択状態表示および非選択状態表示の様子を示す図である。
【図１５】本発明の第１実施形態における、複数の印刷ジョブをプリンタアイコンへドラッグした際に情報表示が行われた様子を示す図である。
【図１６】本発明の第１実施形態における、複数の印刷ジョブをプリンタアイコンへドラッグした際に警告表示が行われた様子を示す図である。
【図１７】本発明の第１実施形態における、警告表示または情報表示を行うべき事象が複数発生した際の表示の優先順位を表で示す図である。
【図１８】本発明の第２実施形態における、複数の印刷ジョブのドラッグを開始した際に情報表示が行われた様子を示す図である。
【図１９】本発明の第２実施形態におけるマウスカーソルとプリンタアイコンの表示処理の詳細を示すフローチャートである。
【符号の説明】
【０１２９】
１０１  サーバコンピュータ、プリントサーバ
１０２、１０３、１０４  クライアントコンピュータ
１０５  ネットワークプリンタ、プリントデバイス
１０６  ネットワーク
【図１】
2006301860.tif 000004
【図２】
2006301860.tif 000005
【図３】
2006301860.tif 000006
【図４】
2006301860.tif 000007
【図５】
2006301860.tif 000008
【図６】
2006301860.tif 000009
【図７】
2006301860.tif 000010
【図８】
2006301860.tif 000011
【図９】
2006301860.tif 000012
【図１０】
2006301860.tif 000013
【図１１】
2006301860.tif 000014
【図１２】
2006301860.tif 000015
【図１３】
2006301860.tif 000016
【図１４】
2006301860.tif 000017
【図１５】
2006301860.tif 000018
【図１６】
2006301860.tif 000019
【図１７】
2006301860.tif 000020
【図１８】
2006301860.tif 000021
【図１９】
2006301860.tif 000022