JP2006259853A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2006259853A JP2006259853A JP2005073024A JP2005073024A JP2006259853A JP 2006259853 A JP2006259853 A JP 2006259853A JP 2005073024 A JP2005073024 A JP 2005073024A JP 2005073024 A JP2005073024 A JP 2005073024A JP 2006259853 A JP2006259853 A JP 2006259853A
- Authority
- JP
- Japan
- Prior art keywords
- conflict
- printer
- processing apparatus
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】 メンバプリンタの台数、印刷処理装置の能力によってはメンバプリンタドライバの機能を反映した仮想プリンタドライバ印刷設定画面の表示に時間を要するという問題があった。
【解決手段】 複数のメンバプリンタにより構成される仮想プリンタのジョブ制御を行う情報処理装置において、メンバプリンタとのコンフリクト処理方法をメンバプリンタの構成台数、印刷処理装置の処理パフォーマンス及び、コンフリクト処理時間により切り替え、設定画面の表示を一定の時間内に行えるようコンフリクト処理方法を制御する。
【選択図】 図10
【解決手段】 複数のメンバプリンタにより構成される仮想プリンタのジョブ制御を行う情報処理装置において、メンバプリンタとのコンフリクト処理方法をメンバプリンタの構成台数、印刷処理装置の処理パフォーマンス及び、コンフリクト処理時間により切り替え、設定画面の表示を一定の時間内に行えるようコンフリクト処理方法を制御する。
【選択図】 図10
Description
本発明は、仮想プリンタドライバ(以降、仮想ドライバ)の仕組みに関する。
従来、アプリケーションデータから作成されたEMF(Enhanced Meta−File)と、仮想ドライバを介しての設定に基づき作成されたジョブ記述ファイルとを用意し、ジョブ記述ファイルに含まれるジョブの配布先のプリンタに対しEMFを変換したコマンドを送信し、同報、分散印刷を行う仕組みが知られている。
例えば特許文献1には、上に述べたような仮想ドライバを利用する印刷において、仮想ドライバのダイアログ画面を介して設定された、メーカやプリンタ機種に依存しない共通な情報(用紙サイズ、用紙種等)をDEVMODE情報として印刷設定する仕組みが開示されている。
この仮想ドライバのダイアログ画面の設定可能項目は固定的なものとなっており、同報印刷に利用される複数のプリンタを代表するものであり、同報印刷などの配布印刷では、ユーザは複数のプリンタにまとめて所定の設定を行えるというメリットを受けることができた。
特開平11−143661号公報
しかしながら、従来から知られている特許文献1によれば仮想ドライバのダイアログ画面を介して設定可能な項目が固定的なものとなっており、複数のプリンタの各々の機能を画一的なものとして扱うことになり、実際には異なる各々のプリンタの機能を十分に反映させたものであるとは云えず、各々のプリンタの機能を十分に生かしきれないという問題が挙げられる。
このような問題点を解決するために各々のプリンタの機能を取得し、取得した情報を元に各々のプリンタに矛盾の無いような印刷設定項目を特定し、該特定された印刷設定項目を仮想ドライバのダイアログ画面に反映させるようにすることが望まれる。しかしながら、従来から知られている特許文献1によれば、各々のプリンタの機能を十分に生かすべく各々のプリンタの機能の取得処理などを想定しておらず、単に仮想ドライバのダイアログ画面を表示させるという仕組みであったため、仮想ドライバのダイアログ画面の生成に数秒から数十秒要する場合に、ユーザに不安を与えてしまうという問題があった。場合によっては、ユーザは印刷処理装置(パーソナルコンピュータ等)がフリーズしたと勘違いし、印刷処理装置を再起動させてしまうような問題もある。
本発明は上記問題点を鑑みてなされたものであり、仮想ドライバの設定画面表示を一定の時間内に行いユーザに不安を与えることなく提示可能な仕組みを提供することを目的とする。
本発明は上記目的を達成する為に、複数のメンバプリンタにより構成される仮想プリンタのジョブ制御に関わる仕組みにおいて、複数のメンバプリンタのそれぞれの機能に基づくコンフリクト処理を行うコンフリクト手段と、コンフリクト手段によるコンフリクト結果を、前記仮想ドライバの設定画面に反映させる表示制御手段と、メンバプリンタの構成を調べる調査手段と、本システムが導入されている印刷処理装置(パーソナルコンピュータ等)のスペックを読み出す手段を有し、さらにコンフリクト手段は、前記システムより読み出した構成メンバ台数、印刷処理装置スペック及び、コンフリクト方法切り替え判定情報及びコンフリクト処理時間に基づき、コンフリクト処理の切り替え制御を行うことを特徴とする仕組みを提供する。
仮想ドライバの設定画面上で設定を行い印刷する際に、メンバプリンタの台数が増加しても、メンバプリンタとのコンフリクト処理をメンバプリンタの構成台数、印刷処理装置の処理パフォーマンス及び処理時間によりダイナミックに切り替えることで設定画面表示を一定の時間内に行う事により、ユーザに不安を与えることなく提示可能な仕組みを提供することを可能にしたので、従来発生していたメンバ台数が多い場合にはUI表示に時間がかかりすぎ、ユーザが印刷処理装置(パーソナルコンピュータ等)がフリーズしたと勘違いし印刷処理装置を再起動させてしまうようなケースを防ぐことが可能となった。
以下、本発明を適用するのに好適である実施形態について説明を行う。
〔第1の実施の形態〕
図1は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、1台、または複数台接続されていることを仮定している。
図1は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、1台、または複数台接続されていることを仮定している。
図において、102、103、104はクライアントコンピュータ(クライアント)としての情報処理装置であり、イーサネット(登録商標)などのネットワークケーブルによって、ネットワーク106に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応する或は解釈可能なプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、後述にて詳しく説明するが、本発明におけるプリンタドライバは複数のプリンタドライバをサポートするものとする。
101は本実施形態のサーバ(以下、プリントサーバと呼ぶ)としての情報処理装置であり、ネットワークケーブルによって、ネットワーク106に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク106の使用状態を監視したりする。プリントサーバ101は、ネットワーク106に接続されている複数のプリンタを管理する機能を有する。
構成としては、クライアント102〜104とプリントサーバ101は、一般的な情報処理装置であり、クライアントとプリントサーバには、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
また、プリントサーバ101は、一般的な情報処理装置であり、クライアント102〜104の機能を同時に持つこともできる。
本実施形態におけるプリントサーバ101は、さらにクライアントコンピュータ102、103、104から印刷要求が出された印字データを含む印刷ジョブを格納して印刷させたり、または、クライアントコンピュータ102、103、104から印字データを含まないジョブ情報のみ受け取り、クライアントコンピュータ102、103、104のプリンタへの印刷データを送出する印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ105のステータスや印刷ジョブの各種情報を取得し、クライアントコンピュータ102、103、104に通知したりする機能を揃えている。
105は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインターフェイスを介してネットワーク106と接続されており、クライアントコンピュータやプリントサーバ101から送信される印字データを含む印刷ジョブを解析してドットイメージに変換して、1ページ毎に印刷する。106はネットワークであり、クライントコンピュータ102、103、104、サーバ101、ネットワークプリンタ105等を通信可能に接続している。
図2は、本発明の情報処理装置の構成を説明するブロック図であり、情報処理装置であるクライントコンピュータ102、103、104も同じ構成であり、さらにサーバ101も同様あるいは同等のハードウエア構成とする。よって、クライアントとサーバの構成を説明するブロック図として説明する。
図2において、200は情報処理装置の制御手段であるCPUであり、ハードディスク(HD)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや本発明のネットワークプリンタ制御プログラム等を実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
201は記憶手段であるROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。202は一時記憶手段であるRAMであり、CPU200の主メモリ、ワークエリア等として機能する。
203は記憶媒体読み込み手段としてのフロッピー(登録商標)ディスク(FD)ドライブであり、後述する図5に示すようにFDドライブ203を通じて記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、FDに限らず、CD−ROM、CD−R、CD−RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
204は記憶媒体であるフロッピー(登録商標)ディスク(FD)であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
205は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク(HD)であり、アプリケーションプログラム、プリンタドライバプログラム、OS、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。さらにスプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
206は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。
207は表示手段であるディスプレイであり、キーボード206から入力したコマンドや、プリンタの状態等を表示したりするものである。
208はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。
209は入出力手段であるインターフェイスであり、該インターフェイス209を介して情報処理装置は外部装置とのデータのやり取りを行う。
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、FD204からロードされる上記ネットワークプリンタ制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。
本実施形態では、FD204からネットワークプリンタ制御プログラムおよび関連データを直接RAM202にロードして実行させる例を示すが、これ以外にも、FD204からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているHD205からRAM202にロードするようにしてもよい。
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、FD以外にCD−ROM、CD−R、PCカード、DVD、ICメモリカード等、情報が記憶できる媒体であれば適用可能である。さらに、本ネットワークプリンタ制御プログラムをROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウエア装置の代替として構成することもできる。
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアントにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、また、プリントサーバにおいて、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本発明の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に平行動作させる構成も可能である。
301は基本I/Oプログラムであり、本制御装置の電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムが入っている領域である。
302はオペレーティングシステム(OS)であり、303はネットワークプリンタ制御プログラムで、RAM202上に確保される領域に記憶される。304は関連データで、RAM202上に確保される領域に記憶される。305はワークエリアで、CPU200が本プリンタ制御プログラムを実行する領域が確保されている。
図4は、図2に示したFD204のメモリマップの一例を示す図である。
図4において、400は前記FD204のデータ内容であり、401はデータの情報を示すボリューム情報であり、402はディレクトリ情報、403は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、404はその関連データである。403のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施例では、クライアント、サーバ共、同様の構成をとっている。
図5は、図2に示したFDドライブ203に対して挿入されるFD204との関係を示す図であり、図2と同一のものには同一の符号を付してある。
図5において、FD204には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データを格納している。
次に本実施の形態における、プリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムについて説明する。
なお、本実施の形態では、複数のプリンタを1台のプリンタとして仮想的に束ねるプリンタをグループプリンタ、束ねられるプリンタをメンバプリンタと呼ぶ。また、それに対応するプリンタドライバをそれぞれグループプリンタドライバ、メンバプリンタドライバと呼ぶ。
図6は本システムのクライアントサーバモデルにおいてMicrosoftWord(登録商標)などの一般的なアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図6において、600はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す。
通常、印刷の指示がされるとアプリケーションプログラムは一連の描画命令を生成し、プリンタドライバを経てWindows(登録商標)Spoolerに渡される。Windows(登録商標)Spoolerは、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
本実施の形態では、ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ621(以降、本実施例ではジョブ制御ポートモニタと略記)を指定して印刷を指示する。アプリケーションプログラム601は一連の描画命令を生成する。描画命令を受け取ったグループプリンタドライバ603では、汎用印刷ファイルを生成し、プリンタデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ621にプリントジョブデータとして送信する。ジョブ制御ポートモニタ621はプリントジョブデータをプリンタデバイス650に送信するのではなく、印刷ジョブ制御システム用プリントサービス622(以降、本実施例ではジョブ制御プリントサービスと略記)に送信する。ジョブ制御プリントサービス622は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
印刷ジョブ制御システム用プリントマネージャ623(以降、本実施例ではジョブ制御プリントマネージャと略記)は、ユーザがジョブ制御プリントサービス622内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインターフェイス(UI)を提供するプログラムである。
ジョブ制御プリントマネージャ623はジョブ制御プリントサービス622のソフトウェアのインターフェイス(API)を介して、ジョブ制御プリントサービス622と情報・指示をやり取りしている。
印刷ジョブ制御システム用サーバ630(以降、本実施例ではジョブ制御サーバと略記)は、個々のクライアント600上のジョブ制御プリントサービス622がプリンタデバイス650にプリントジョブデータを送信するタイミングを集中制御(スケジューリング)している。
印刷ジョブ制御システム用マネージメントコンソール633(以降、本実施例ではジョブ制御マネージメントコンソールと略記)は、ジョブ制御サーバ630が持つソフトウェアがアクセスするためのAPIを介してジョブ制御サーバ630と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
また、ジョブ制御サーバ630はデバイス情報コントロールモジュール631を用いて各プリンタデバイス650と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はクライアント600側のジョブ制御プリントサービス622に渡すことができる。
次に本実施の形態におけるグループプリンタドライバ603からの印刷について説明する。
グループプリンタドライバ603はアプリケーションプログラムが生成した一連の描画コマンドを、プリンタデバイスやOS等の種類に依存しない中間フォーマットのファイルである汎用印刷ファイルに変換する。この汎用印刷ファイルの構成については後述する。
この汎用印刷ファイルは前述したようにWindows(登録商標)Spooler604からジョブ制御ポートモニタ621を経て(a)、ジョブ制御プリントサービス622に導かれる(b)。ジョブ制御プリントサービス622はこのプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し(c)、続いてPDLドライバ602がその描画コマンドをプリンタデバイス650が解釈可能なPDLファイルにする。図6では、ジョブ制御プリントサービス622で、このプリントジョブに対してプリントジョブをふたつに分けるジョブ制御が行われる例で、2つのメンバジョブが生成された例を2つの矢印(c)で示している。PDLドライバ602で生成されたPDLファイルはWindows(登録商標)Spooler604、ジョブ制御ポートモニタ621を経て(d)、再びジョブ制御プリントサービス622に渡される(e)。ジョブ制御プリントサービス622は、ジョブ制御サーバ630の指示に従ってPDLのプリントジョブデータをプリンタデバイス650に送信する(f)。
ジョブ制御プリントサービス622は、汎用印刷ファイル中の印刷指示書の指示にしたがって、一つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。尚、図6のA中の(c)(d)(e)(f)はそのような場合のプリントジョブデータの経路を示している。
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合、一般のアプリケーションとはグループプリンタドライバ603への情報の渡し方や、グループプリンタドライバ603での処理内容が異なる。前述のように、一般のアプリケーションの場合、アプリケーションはグループプリンタドライバ603に描画情報を渡す際、通常のプリンタドライバと同じようにWindows(登録商標)のGDI関数を呼び出し、グループプリンタドライバ603がそれに応じて汎用印刷ファイルを生成する。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ603に供給する。グループプリンタドライバ603は必要に応じてあらかじめ設定された印刷方法にもとづいて汎用印刷ファイル内部の印刷指示書を書き換えてWindows(登録商標)Spooler604に送る。
図8は、汎用印刷ファイルの構成の一例を示した図である。
本実施の形態で使用される汎用印刷ファイルは、印刷指示部8−aと、ドキュメントデータ部8−bからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのドキュメントのデータをPDF(Adobesystems登録商標)などの汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、メンバプリンタドライバ設定情報部などから構成されている。
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
ページ情報部は、ドキュメントデータ部8−bのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報(N−UPや製本印刷など)、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
出力方法指定部は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのUIの設定情報を格納する部分である。
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。
メンバプリンタドライバ設定情報部はメンバプリンタのドライバUIの設定情報として例えばDEVMODE情報を格納する部分である。
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
前述の図6で説明したグループプリンタドライバ603では、汎用印刷ファイルを生成する際、グループプリンタドライバGUI上の設定を印刷指示部8−bヨ記録する。さらに、グループプリンタドライバ603はGDIで受け取ったデータを汎用的なデータに変換しドキュメントデータとして、本汎用印刷ファイルのドキュメントデータ部に記録することとなる。
なお、本ファイルは、印刷指示部8−aとドキュメントデータ部8−bが異なるファイルであってもかまわない。その場合、印刷指示部は印刷指示書ファイルとして、ドキュメントデータ部はドキュメントデータファイルとしてそれぞれ存在し、これらを一つのアーカイブ形式でまとめて同様に一つのファイルのように扱うこともが可能である。
次に図7でWindows(登録商標)が提供するPrintSystemと印刷ジョブ制御システムにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。
図7中で印刷ジョブ制御システム700は、サーバとクライアントの制御プログラムが動作する物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、サーバが管理している出力ポート(OutputPort)711は、クライアントのジョブ制御プリントサービス622のプロキシ出力ポート(ProxyOutputPort)712と関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。本実施例では、実際のプリントジョブデータはおのおののクライアントのプロキシ出力ポート712に保持される。ジョブ制御サーバ630は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス622に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス622はプリントジョブデータをデバイス650に送信する。
次に、印刷ジョブ制御システム700が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合の処理を説明する。
印刷ジョブ制御システム700が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション601はグループプリンタドライバ603が割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス622は、グループプリンタドライバ603によって処理されたジョブデータをジョブ制御ポートモニタ621を介して汎用印刷ファイルとして受け取る。ジョブ制御プリントサービス622はこのジョブを受け取り、De−spooler701を介してPDLドライバが割り当てられた別のプリンタにジョブ(メンバジョブ)を発行して印刷を行わせる。この時、De−spooler701は前述の図8で説明した汎用印刷ファイルの印刷指示部8−aを解釈し、ドキュメントデータ部8−bのドキュメントデータを加工して、Windows(登録商標)のGDIに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、2−UPの指示が記録されていた場合、用紙1枚に2ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部8−aに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。
また、De−spooler701は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのDEVMODEを作成する必要があるが、このDEVMODEは印刷指示部8−aに記載された内容を適宜各メンバプリンタのDEVMODEに反映させて生成する。
クライアント側のジョブ制御プリントサービス622は、PDLドライバ602によってレンダリングされた、それぞれのメンバジョブのPDLデータをジョブ制御ポートモニタ621を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー(ProxyOutputPort)712で一時保持する。その後、ジョブ制御サーバ630からの送信指示を受けた後にプリントデバイス650に送信する。
図9は、本発明のグループプリンタドライバのUI制御フローを示すフローチャートである。尚、図9のフローチャートの各ステップにおける処理は上に説明した情報処理装置に設けられたCPU(中央演算処理装置)が、ROM、FD、ハードディスク(HD)等の所定の記憶媒体に記憶された制御プログラムを読込み、該読込んだプログラムに基づく処理を実行することに応じて実現されるものとする。
以下、複数のメンバプリンタにより構成されるグループプリンタのジョブ制御を行う仕組みにおいて、複数のメンバプリンタドライバのそれぞれの機能に基づくコンフリクト処理を行うコンフリクト手段と、コンフリクト手段によるコンフリクト結果をグループプリンタドライバの設定画面に反映させる表示制御手段と、メンバプリンタの構成を調べる調査手段と、本システムが導入されている印刷処理装置(パーソナルコンピュータ等、以降PC)のスペックを読み出す手段を有し、前記コンフリクト手段において、構成メンバ台数、PCスペック、及びコンフリクト方法切り替え判定情報、及びコンフリクト処理時間に基づき、コンフリクト処理の切り替え制御を行うことを特徴とする情報処理装置。
まず、アプリケーションからグループプリンタドライバへのUI表示要求が来ると、処理はステップ9−1へ進む。
ステップ9−2では、グループプリンタドライバを構成するメンバプリンタの台数及び本システムが導入されているPCのスペックを読み出し、複数のメンバプリンタのそれぞれの機能に基づくコンフリクト処理を行うステップであり、図10はその詳細である。
ステップ9−3は、前記ステップで行ったコンフリクト処理に基づき仮想プリンタドライバの印刷設定画面に反映させる表示制御手段である。メンバプリンタの構成は所定の仮想プリンタ毎に特有のものであり、ユーザ操作などによりメンバプリンタを削除/変更/追加できたりする。図9のフローチャートはそのようなダイナミックに変更しうるメンバプリンタ構成に適応したUI表示制御を行うものとなっている。
図10は、ステップ9−2の詳細な処理を示した図でありコンフリクト処理の切り替え制御を行うステップである。ステップ10−1は、印刷ジョブ制御システムAPIを使って、グループプリンタを構成するメンバプリンタの数を取得する。一般的にクライアントPCには複数種類のグループプリンタ(仮想プリンタ)が備えられており、各々のグループプリンタ毎にメンバプリンタの構成が異なる可能性がある。ステップ10−1では、現在選択されているグループプリンタに対応するメンバプリンタの数が調べられる。またステップ10−1の処理には、グループプリンタを構成するメンバプリンタドライバの識別IDを問い合わせる処理も含まれており、この取得された各メンバプリンタドライバの識別IDを用いて、IDの数から構成台数を算出するようにしても良い。ステップ10−3は、クライアントPCのCPUスペックを読み出すステップであり、OSが提供しているAPIよりマシンのCPUの能力をたとえば、MHzの単位で読み出す。ステップ10−3は、ステップ10−1,10−2で読み出し情報を元にコンフリクトレベルを判定するステップであり、その詳細が図11−1である。また図11−2はコンフリクト方法切り替え判定情報テーブルの一例である。前記、切り替え判定情報テーブルは、メンバ台数及びPCのスペックをパラメータにもつ2次元のテーブルである。図11−1のテーブルについて例を上げて説明する。なお、表中の各セルにある、F,H,Zは、それぞれの意味は、F(フルコンフリクト)、H(ハーフコンフリクト)、Z(ゼロコンフリクト)をそれぞれ示しており、詳細については、ステップ10−6で説明を行う。縦軸のパラメータは、メンバ台数を示しており、たとえば15と記載されている部分は、メンバ台数が11台から15台までを示しており、同様に横軸のパラメータは、システム導入環境のCPUパフォーマンスを示している。たとえば500と記載されている部分は、401から500MHzまでのCPUパフォーマンスを搭載したマシン環境を示している。したがって、メンバ台数が、13台でPCスペックが433MHzの場合には図11−2の表よりコンフリクトレベルはハーフコンフリクトと読み出せる。ステップ11−1は、前述の処理フローをステップ化したものであり、ステップ10−1で読み出しグループプリンタを構成するメンバプリンタの台数が、コンフリクト方法切り替え判定情報テーブルのメンバ台数のどのレンジに相当するかを判定するステップである。本ステップでメンバプリンタ台数のレンジを確定した後、ステップ11−2へ進む。ステップ11−2は、ステップ10−2で読み出したマシンスペックが前記テーブルのどのレンジに相当するかを判定するステップである。ステップ11−3は、前記11−1,11−2で判定した各パラメータのレンジより、コンフリクトレベルを読み出すステップである。ここでコンフリクトレベルの読みだしを行いステップ10−4へ進む。なお、コンフリクト方法切り替え判定情報テーブルは、プログラムで自動生成させてもよく、また、システム導入環境における導入アプリケーション(特に常駐アプリケーション)やネットワーク設定によって切り替え可能なようにファイル形式で保存しておく形式をとっても有効なのは言うまでもない。ステップ10−4は、ステップ11−3で読み出したコンフリクトレベルを元に処理を切り替えるステップであり、フルコンフリクトと、もしくはハーフコンフリクトと判定された場合には、ステップ10−5へ進み、それ以外であればステップ10−6へ進む。
図12は、ステップ10−5の詳細である。
ステップ12−1は、前記ステップ10−1で求めたメンバプリンタの構成台数をカウンタ(以降COUNTER)変数にセットするステップであり、台数をカウンタにセットした後、ステップ12−2へ進む。ステップ12−2は、処理開始時間を設定するステップであり、本コンフリクト処理時間を計測するために計測タイマ変数(TIMER)に対しゼロを設定するステップである。ステップ12−3は、前記COUNTER変数がゼロになったかどうか判定するステップであり、カウンタ変数が0となった場合、ドライバのコンフリクト情報の獲得を完了したものとしてステップ9−3へ進み、ゼロになっていない場合には、ステップ12−4へ進む。ステップ12−4は、メンバプリンタの能力を取得するステップであり、ステップ10−1で得た、各メンバプリンタの識別IDを使って当該メンバプリンタの能力を読み出すステップである。ステップ12−5は、フル及びハーフコンフリクト処理を行うステップである。
ここで行うフルコンフリクト処理および、ハーフコンフリクト処理について記載する。
一般的なプリンタドライバの設定項目には、OSの機能を使って設定項目の能力の取得が可能な基本設定項目と呼ばれる部分と、プリンタドライバの開発ベンダで独自に実装し、また、その能力の取得方法が一般には非公開となっている拡張設定項目と呼ばれる部分がある。
図15は、共通設定項目・拡張設定項目と各設定項目との対応を示す。なお、本特許では共通設定項目は、前記、共通設定領域に存在する項目、拡張設定項目は、前記、拡張設定領域に存在する項目として分類し規定しているが、印刷ジョブ制御システムを運用するOSの違いによっては、設定項目の分類が異なる場合や設定可能項目に変更がある場合があるが、本特許のUI制御フローが有効なのはいうまでもない。
図15について更に詳しく説明すると、共通設定項目に規定される各機能の項目は複数のメンバプリンタドライバのそれぞれの相違に係らず、印刷制御プログラムがOSを介して問い合わせることが可能な項目に相当する。一方、拡張設定項目に対応する各機能の項目は、共通設定項目のように印刷制御プログラムがOSを介して問い合わせることが必ずしも保証されているとは限らない。該拡張設定項目はそれぞれのプリンタドライバの提供元が独自に問合せの仕組みを規定しているようなものに相当する。グループプリンタドライバにしてみれば、拡張設定項目の問い合わせが利用できないようなプリンタドライバのことを“機能制御不可なドライバ”と呼ぶこともある。次に、機能のコンフリクト処理について具体的に説明すると、機能のコンフリクト処理とは、グループプリンタの対象となる各メンバプリンタドライバのそれぞれからドライバ識別情報や共通設定領域及び拡張設定領域に規定されている各機能の情報の取得や、メンバプリンタドライバから取得された各設定項目の機能の“あり”・“なし”をチェックし、対象となるメンバプリンタドライバ全てに機能がある場合にグループプリンタドライバUIでその機能を設定可能項目として扱い、また、1台でも、機能がないものがあればその項目は、設定不可項目として扱うようにする。
図16の(a)中のプリンタドライバAは、グループプリンタドライバを表しプリンタドライバ、B,C,Dはグループプリンタドライバを構成するメンバプリンタドライバを表し、表中の、“あり”・“なし”は各メンバプリンタドライバが製本印刷機能、ステイプル印刷機能、パンチ機能をサポートしているかどうかを示したものである。
ここで製本印刷機能に着目すると、ドライバA、Bは製本印刷機能があるが、ドライバCにはその機能がないため、グループプリンタドライバAの製本印刷機能は“なし”となる。
同様に、ステイプル機能は、B,C,D全てのメンバプリンタドライバに機能があるため、グループプリンタドライバAのステイプルは、“あり”となり、パンチ機能は、B,C,D全てのメンバプリンタドライバに機能がないため、グループプリンタドライバAのパンチ機能は、“なし”となる。
図16の(a)は、特に共通設定項目と拡張設定項目とを区別無く説明してきたが、実際には、メンバプリンタドライバの構成に機能制御不可なものが含まれる場合には、コンフリクト処理(機能の取得及び整合性計算)の対象となる設定項目を共通設定項目のみにし、機能制御可能なドライバのみからメンバプリンタが構成されている場合にはコンフリクト処理の対象となる設定項目を共通設定項目と拡張設定項目にするような処理が行われる。そのメンバプリンタ種別構成とコンフリクト処理の対象とする項目との関係を示す図を図16の(b)に示す。また、図のメンバプリンタ種別構成とコンフリクト処理の対象とする項目との関係を図16の(c)のようにしても良い。
図16の(a)においては、図15中の拡張設定項目について論理和の計算を行っている様子を示しており、図16の(b)のメンバプリンタの構成が「機能制御可能なドライバのみ」や、図16の(c)の「1台でも機能制御可能なものを含む場合」に行われるコンフリクト処理を示すものとなっている。
以上が本特許で行うコンフリクト処理であり、本特許におけるフルコンフリクトとは、前記、機能制御可能なドライバに対して、基本設定項目及び拡張設定項目までのコンフリクトを行うものである。また、メンバプリンタ中に機能制御不可なドライバがあった場合、そのコンフリクト処理としては、前記、図16の(b)もしくは、16の(c)に提示したどちらの方法によって行われても有効である。一般に拡張設定項目は、ステイプル、製本といった複雑な機能を持ち、それに伴なう能力取得処理も複雑なため処理時間が増大する。
一方、ハーフコンフリクト処理とは、メンバプリンタの機能制御の可、不可にかかわらず基本設定項目のみのコンフリクト処理を行うものである。
図13は、ステップ12−5の詳細である。ステップ13−1は、基本設定項目に対するコンフリクト処理を行うステップである。このステップは、コンフリクトモードがフルコンフリクト、ハーフコンフリクトどちらのケースに対しても処理を行う。ステップ13−2は、コンフリクトモードを判定するステップであり、コンフリクトモードがフルコンフリクトの場合には、ステップ13−3へ進み、またハーフコンフリクトモードの場合には、ステップ12−6へ進む。ステップ13−3は、メンバプリンタの能力を判定するステップであり、メンバプリンタの能力が機能制御可能なドライバであった場合には、ステップ13−4へ進み、ステップ13−4で拡張設定項目に対するコンフリクト処理を行う。また本ステップが終了した後、ステップ12−6へ進む。ステップ12−6は、COUNTERを一つ減算させるステップである。ステップ12−7は、ステップ12−2でゼロを設定したTIMER変数より処理時間を読み出すステップでありコンフリクト処理のトータル処理時間が、あらかじめ指定されていた処理時間をオーバしていると判断した場合には、ステップ12−8へ進みゼロコンフリクト処理を行い、その処理を行った後にステップ9−3へ進む。なお、ゼロコンフリクトに対しては、ステップ10−6へ詳しく述べる。以上が、ステップ10−4でコンフリクトレベルがフルもしくはハーフコンフリクトとして判断された場合の処理である。一方、ステップ10−4でNOと判断された場合には、ステップ10−6へ進む。
図14は、ステップ10−6の詳細である。本ステップのゼロコンフリクトは、コンフリクト処理を一切行わない処理である。ステップ14−1は、あらかじめグループプリンタドライバの基本設定項目及び拡張設定項目のデフォルト設定値として、システムに登録されている設定情報を読み込むステップである。このデフォルト設定は、グループプリンタドライバ登録時にユーザによって設定された情報を用いても、また、外部ファイルとして提供されていても、または、プログラムコード中に埋め込まれている情報を使用しても有効なのは言うまでもない。ステップ14−2は、前記ステップで読み込んだドライバのデフォルト設定値を、コンフリクト情報として登録するステップであり、本ステップを終了した後、ステップ9−3へ進む。
ステップ9−3は、ステップ10−5及び10−6で取得したコンフリクト情報を元にドライバUIを表示するステップある。前記コンフリクトの結果、機能のないものについては、UI上で設定が行えないよう、項目をグレーアウト表示、もしくは非表示といったUI制御を行い、機能がある項目についてはUI制御を行わない。
図17の(a)、(b)にUIのグレーアウト制御、非表示制御の具体例を示す。設定項目の両面印刷、製本印刷のダイアログボックスが前記UI制御を施した部分である。また、本ステップでは、ユーザの指定により、たとえば「製本印刷」が指定された時のパンチや、ステイプルの指定といった、機能上ありえない組み合わせが設定できないようUI制御を行い設定項目に矛盾が発生しないようUI表示する。
101 サーバ
102 クライアントコンピュータ
103 クライアントコンピュータ
104 クライアントコンピュータ
105 ネットワークプリンタ
106 ネットワーク
200 CPU
102 クライアントコンピュータ
103 クライアントコンピュータ
104 クライアントコンピュータ
105 ネットワークプリンタ
106 ネットワーク
200 CPU
Claims (8)
- 複数のメンバプリンタより構成される仮想プリンタのジョブ制御を行う情報処理装置において、メンバプリンタの構成を調べる調査手段と、本システムが導入されている印刷処理装置の処理能力を読み出す手段と、前記メンバプリンタのそれぞれの機能に基づくコンフリクト処理を行うコンフリクト手段と、前記システムより読み出した構成メンバ台数及び印刷処理装置スペックに基づき、複数あるコンフリクト処理手段の中から、どのコンフリクト手段を適用すべきかを判断する判定手段を持ち、この判定結果によりコンフリクト処理の切り替え手段により切り替え制御を行い、この結果を前記仮想ドライバの設定画面に反映させる表示制御手段を持つことを特徴とする情報処理装置。
- 前記調査手段は、仮想プリンタに関連付けられたメンバプリンタに対応するメンバプリンタドライバからAPIを用いてプリンタドライバの識別IDを獲得する獲得手段と、前記調査手段は前記獲得手段により獲得されたプリンタドライバの識別IDに基づきメンバプリンタの数を判断することを特徴とする請求項1に記載の情報処理装置。
- 前記、システムが導入されている印刷処理装置の処理能力読み出し手段は、処理装置のCPUパフォーマンスをクロック周波数として獲得することを特徴とする請求項1に記載の情報処理装置。
- 前記、複数のメンバプリンタのそれぞれの機能に基づくコンフリクト処理手段は、機能制御可能メンバプリンタに対して、基本設定項目及び拡張設定項目の両者をコンフリクト対象として処理を行う事を特徴とした請求項1に記載の情報処理装置。
- 前記、複数のメンバプリンタのそれぞれの機能に基づくコンフリクト処理手段は、機能制御可能メンバプリンタに対して、基本設定項目のみをコンフリクト対象として処理を行う事を特徴とした請求項1に記載の情報処理装置。
- 前記、複数のメンバプリンタのそれぞれの機能に基づくコンフリクト処理手段は、機能のコンフリクトを一切にとらずに仮想ドライバのデフォルト設定をコンフリクト結果として扱う事を特徴とした請求項1に記載の情報処理装置。
- 前記、コンフリクト手段の適用判定手段は、当該の仮想ドライバを構成するメンバプリンタの台数及び、印刷処理装置の能力を元に、前記、請求項4ないし6いずれかに記載のコンフリクト処理の適用を判定する事を特徴とした請求項1に記載の情報処理装置。
- 請求項7の適用において請求項4又は5の適用を判断し適用を行った際に、そのコンフリクト処理時間を計測し、処理時間が一定の時間を超えた場合には、請求項6に記載の処理に切り替える事を特徴とした請求項1に記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005073024A JP2006259853A (ja) | 2005-03-15 | 2005-03-15 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005073024A JP2006259853A (ja) | 2005-03-15 | 2005-03-15 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006259853A true JP2006259853A (ja) | 2006-09-28 |
Family
ID=37099080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005073024A Withdrawn JP2006259853A (ja) | 2005-03-15 | 2005-03-15 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006259853A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163680A (ja) * | 2008-01-10 | 2009-07-23 | Canon Inc | 情報処理装置、印刷設定方法、記憶媒体、プログラム |
US10990334B2 (en) | 2018-08-30 | 2021-04-27 | Canon Kabushiki Kaisha | System, server and method of controlling the system and method of controlling the server |
-
2005
- 2005-03-15 JP JP2005073024A patent/JP2006259853A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163680A (ja) * | 2008-01-10 | 2009-07-23 | Canon Inc | 情報処理装置、印刷設定方法、記憶媒体、プログラム |
US10990334B2 (en) | 2018-08-30 | 2021-04-27 | Canon Kabushiki Kaisha | System, server and method of controlling the system and method of controlling the server |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3634784B2 (ja) | 情報処理方法及び印刷制御装置 | |
US7372590B2 (en) | Printing method, printing apparatus, printing program executable by information processing apparatus, and computer-readable storage medium storing program | |
US7312886B2 (en) | Printer control method, information processing apparatus, program, and storage medium | |
JP3793197B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム並びに記憶媒体 | |
JP2005010919A (ja) | 情報処理装置及び情報処理方法及びプログラム並びに記憶媒体 | |
JP3639821B2 (ja) | 印刷制御方法及び印刷制御装置及び情報処理装置が実行可能な印刷制御プログラム並びにコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
US7102783B2 (en) | Printing data processing apparatus and method | |
US7707326B2 (en) | System for setting print end notification either when data transmission ends or when printing ends based on print check ability of printing devices | |
US8488174B2 (en) | Print control apparatus, print control method, and storage medium for configuring output device based on acquired information | |
JP2003271354A (ja) | 代行印刷処理装置、代行印刷処理方法、プログラム、および記憶媒体 | |
JP3880575B2 (ja) | 印刷設定方法及びコンピュータ | |
JP2006301860A (ja) | 情報処理装置 | |
JP2009123075A (ja) | 印刷制御装置、および印刷制御方法、ならびに記憶媒体 | |
JP2004240589A (ja) | 印刷システム及びその制御方法並びに情報処理装置及び方法 | |
JP2006259853A (ja) | 情報処理装置 | |
JP3740448B2 (ja) | 制御装置、制御方法、プログラム及び記憶媒体 | |
JP7187226B2 (ja) | プログラム、記憶媒体、情報処理装置、及び情報処理装置の制御方法 | |
JP3833090B2 (ja) | 制御方法、制御装置、プログラム及び記憶媒体 | |
JP2003271331A (ja) | 印刷制御方法及び印刷処理システムと情報処理装置 | |
JP2006171991A (ja) | 代行及び分散印刷システム | |
JP4323982B2 (ja) | 情報処理方法、及び、情報処理装置、及び、プログラム、並びに、記憶媒体 | |
JP2005174174A (ja) | 情報処理装置、印刷処理方法、プログラム、及び、記憶媒体 | |
JP2008269327A (ja) | 画像形成装置、情報処理装置印刷完了予測アイコン | |
JP4110021B2 (ja) | 部門管理を伴う印刷処理を行う印刷処理プログラム及び情報処理装置及び情報処理方法並びに記憶媒体 | |
JP2006163860A (ja) | プリンティングシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080603 |