JP2004213111A - コンピュータプログラム - Google Patents
コンピュータプログラム Download PDFInfo
- Publication number
- JP2004213111A JP2004213111A JP2002378677A JP2002378677A JP2004213111A JP 2004213111 A JP2004213111 A JP 2004213111A JP 2002378677 A JP2002378677 A JP 2002378677A JP 2002378677 A JP2002378677 A JP 2002378677A JP 2004213111 A JP2004213111 A JP 2004213111A
- Authority
- JP
- Japan
- Prior art keywords
- printer
- printer driver
- driver
- printing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
- G06F3/1232—Transmitting printer device capabilities, e.g. upon request or periodically
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1241—Dividing a job according to job requirements, e.g. black/white and colour pages, covers and body of books, tabs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/121—Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1255—Settings incompatibility, e.g. constraints, user requirements vs. device capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができるようにする。
【解決手段】グループプリンタドライバUI(12)では、エラー代行印刷に関与する複数のプリンタすべてに共通する項目の印刷設定を行うとともに、各プリンタにエラー代行印刷における代行先候補としての優先度を指定する。ここで、グループプリンタドライバUI(12)の表示とともに、優先度第1位に指定されたプリンタ独自の印刷設定を行うためのプリンタドライバUI(16)を同一画面上に表示する。
【選択図】 図19
【解決手段】グループプリンタドライバUI(12)では、エラー代行印刷に関与する複数のプリンタすべてに共通する項目の印刷設定を行うとともに、各プリンタにエラー代行印刷における代行先候補としての優先度を指定する。ここで、グループプリンタドライバUI(12)の表示とともに、優先度第1位に指定されたプリンタ独自の印刷設定を行うためのプリンタドライバUI(16)を同一画面上に表示する。
【選択図】 図19
Description
【0001】
【発明の属する技術分野】
本発明は、複数のプリンタを用いた印刷制御技術に関する。
【0002】
【従来の技術】
近年、ネットワーク機器が一般に利用され、ネットワーク上に多数のパソコン(以下、PC)やプリンタが接続されるようになった。このようなネットワーク環境では、さまざまな形態の印刷ジョブ制御システムを構築して効率的な印刷を行わせることが可能である。印刷ジョブ制御システムとしては例えば、ページ数の多いドキュメントあるいは部数の多いドキュメントについては、印刷時間の短縮を図るために、いったん印刷ジョブをスプールし、複数のプリンタに頁ごとあるいは部数ごとに分散して出力するシステム(分散印刷システム)が知られている。
【0003】
また、カラーページとモノクロページとが混在する1つのドキュメントに対して、印刷時のコストおよび印刷時間の短縮を図るために、カラーページはカラープリンタへ、モノクロページはモノクロプリンタへ分散して出力するシステム(カラー・モノクロ分散印刷システム)が知られている。
【0004】
さらには、1つのドキュメントを一度の印刷指示で、複数のプリンタに同時に送信し印刷するシステム(同報印刷システム)や、印刷ジョブを送信したプリンタでエラーが発生した場合に、自動的に他のプリンタに切り替えて印刷するシステム(エラー代行印刷システム)も知られている。
【0005】
ところで、ネットワークに接続された複数のプリンタを用いて構成される上記のような印刷ジョブ制御システムにおいて、印刷時の設定をプリンタ毎に行うのは煩わしい。そのため一般には、システムにおける各プリンタは1つの仮想プリンタ(グループプリンタドライバ)からの印刷指示に基づき動作するように構成し、これによりユーザはこのグループプリンタドライバ(印刷ユーティリティー)に対してのみ印刷設定を行えばすむようになっている。さらに仮想ジョブとしての分散印刷を採用した仮想プリンタにおいて、複数のプリンタの機能に基づく論理和/論理関の演算結果を仮想プリンタのユーザインタフェース(UI)に反映させ、複数のプリンタに対してまとめて設定を可能とする技術が知られている。
【0006】
以上のような技術の詳細は、例えば特許文献1を参照されたい。
【0007】
【特許文献1】
特開2001-290625号公報
【0008】
【発明が解決しようとする課題】
しかし、仮想ジョブとしては、分散印刷の他にも、上述したようには、カラー・モノクロ分散印刷や同報印刷や代行印刷などの様々な出力方法に対応するものがあり、それら様々な種類の仮想ジョブ及び対応する仮想プリンタに対して、従来から知られているような規則に従う仮想プリンタのUI制御を施すと、夫々の仮想ジョブの特性を十分に考慮したような使い勝手の良いUIを提供するにはいたっていなかった。
【0009】
例えば、エラー代行印刷システムでは、代行時に使われる候補として複数のプリンタがあるような場合、グループプリンタドライバ設定用のUI上で、すべてのメンバプリンタに共通の設定しかできないようにすると、最初に利用されるメンバプリンタの特性を十分に生かすことができないという問題が考えられる。
【0010】
本発明はこのような課題に対処すべくなされたものであり、複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができるようにすることを目的とする。
【0011】
【課題を解決するための手段】
本発明の一側面は、複数のメンバプリンタを利用して所定の出力方法を実行可能な印刷制御を行うためのコンピュータプログラムに係り、第1出力方法に対応した仮想プリンタが指示されることに応じて前記第1出力方法の仮想プリンタに関連した複数のメンバプリンタの機能に基づく第1ユーザインタフェースを起動する起動ステップを有し、前記起動ステップは、第2出力方法に対応した仮想プリンタが指示されたことに応じて代表となる代表メンバプリンタに対応する第2ユーザインタフェースを起動することを特徴とする。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【0013】
<印刷処理システムの構成例>
図1は、実施形態に係る印刷処理システムの構成を示す図である。
【0014】
同図において、101、102、103、104は、ネットワーク106に接続され、相互に通信可能なネットワークコンピュータであり、典型的にはパーソナルコンピュータ(PC)である。
【0015】
これらのうち、102,103,104はクライアントコンピュータ(以下、クライアント)であり、それぞれイーサネット(登録商標)などのネットワークケーブルによってネットワーク106に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアントは複数のプリンタドライバをサポートするものとする。
【0016】
これに対し101はサーバコンピュータ(以下、サーバ)であり、ネットワークケーブルによってネットワーク106に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク106の使用状態を監視する。このサーバは、ネットワーク106に接続されているプリンタを管理するプリントサーバとしても機能する。具体的には、プリントサーバ101は、クライアントコンピュータ102、103、104から印刷要求が出されたプリントデータを含む印刷ジョブを格納して印刷する機能や、クライアントコンピュータ102〜104から印字データを含まないジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知する機能、後述するネットワークプリンタ(プリンタデバイス)105のステータスや印刷ジョブの各種情報を取得して、クライアントコンピュータ102〜104に通知する機能などを有している。
【0017】
105は、印刷制御装置としてのネットワークプリンタであり、図示しないネットワークインタフェースを介してネットワーク106と接続されており、クライアントコンピュータから送信されてくる印字データを含む印刷ジョブを解析し、1ページずつドットイメージに変換して印刷する。なお、同図にネットワークプリンタ105は1台しか示されていないが、他のネットワークプリンタが複数接続されているものとする。各ネットワークプリンタの機能は相違するものであってもよい。
【0018】
また、106はネットワークであり、クライントコンピュータ102〜104、プリントサーバ101、ネットワークプリンタ105等と接続している。
【0019】
<ネットワークコンピュータのハードウエア構成例>
図2は、クライアント102〜104とプリントサーバ101として使用されるコンピュータの構成を説明するブロック図である。なお、本実施形態においてはこのように、クライントコンピュータ102〜104もプリントサーバ101も同様あるいは同等のハードウエア構成とするが、それぞれ専用のハードウエア構成であっても構わない。
【0020】
図2において、200は装置全体の制御を行うCPUであり、ハードディスク(HD)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや、本実施形態のネットワークプリンタ制御プログラム等を実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0021】
201は記憶手段としてのROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。202は一時記憶手段としてのRAMであり、CPU200の主メモリ、ワークエリア等として機能する。
【0022】
203は記憶媒体読み込み手段としてのフロッピディスクドライブであり、後述する図5に示すようにFDドライブ203を通じて、記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータにロードすることができる。204は記憶媒体であるフロッピディスク(FD)であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はFDに限らず、CD−ROM、CDR、CDRW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
【0023】
205は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク(HD)であり、アプリケーションプログラム、プリンタドライバプログラム、OS、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。更に、スプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【0024】
206は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。207は表示手段であるディスプレイであり、キーボード206から入力したコマンドや、プリンタの状態等を表示したりするものである。
【0025】
208はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。209は入出力手段であるインタフェースであり、該インタフェース209を介して情報処理装置は外部装置とのデータのやり取りを行う。
【0026】
なお、上記コンピュータの構成はその一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM、RAM、HDなどで変更することも可能である。
【0027】
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、FD204からロードされる上記ネットワークプリンタ制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。
【0028】
なお、本実施形態では、ネットワークプリンタ制御プログラムおよび関連データをFD204から直接RAM202にロードして実行させる例を示すが、これ以外にも、ネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがFD204からインストールされているHD205から、RAM202にロードするようにしてもよい。また、本ネットワークプリンタ制御プログラムを記憶する媒体は、FD以外にCD−ROM、CDR、PCカード、DVD、ICメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【0029】
また、以下では、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムまたはプリンタドライバと呼ぶこともある。印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本実施形態の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能するようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
【0030】
301は基本I/Oプログラムであり、コンピュータの電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムが入っている領域である。302はオペレーティングシステム(OS)であり、303はネットワークプリンタ制御プログラムで、RAM202上に確保される領域に記憶される。304は関連データで、RAM202上に確保される領域に記憶される。305はワークエリアで、CPU200が本プリンタ制御プログラムを実行する領域が確保されている。
【0031】
図4は、図2に示したFD204のメモリマップの一例を示す図である。
【0032】
図4において、401はデータの情報を示すボリューム情報であり、402はディレクトリ情報、403は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、404はその関連データである。ネットワークプリンタ制御プログラム403は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント及びサーバ共に、同様の構成をとっている。
【0033】
図5は、図2に示したFDドライブ203に対して挿入されるFD204との関係を示す図であり、図2と同一のものには同一の符号を付してある。図5において、FD204には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データが格納されている。
【0034】
<印刷処理システムにおけるソフトウエア構成例>
ここで、本実施形態における用語の技術的意味について説明しておく。
【0035】
複数のプリンタを1つのプリンタとして仮想的に束ねる仮想プリンタを「グループプリンタ」、束ねられるプリンタを「メンバプリンタ」とよぶ。また、グループプリンタおよびメンバプリンタに所定の出力ポートが対応付けられた仮想プリンタドライバおよびデバイスドライバ対応しているので、グループプリンタ及びメンバプリンタをドライバに対応して考えることもできる。
【0036】
グループプリンタを更に具体的に説明すると、アプリケーションからOSを介して生成される描画命令に基づいて中間形式ファイル(汎用印刷ファイル)を生成するためのデータを生成する仮想ドライバをグループプリンタドライバと呼ぶ。そして、後述するジョブ制御プリントサービスにより、先の中間形式のファイルに基づいてページ記述言語を生成させるべく各個別のプリンタドライバに印刷指示がなされるが、この個別の各プリンタドライバに対応するプリンタをメンバプリンタと呼ぶ。また、各メンバプリンタは最終的には特定のデバイスに対応することとなる。
【0037】
一方、本実施形態において、アプリケーションにおける印刷指示に応じてWindows(登録商標)等のOSを介して出力される描画命令(一般的にDDI或いはGDIと呼ばれている)あるいはEMF(EnhancedMetafi1eFormat:拡張メタファイル)を解釈しページ記述言語を生成しデバイスへ出力させるようなプリンタドライバを通常プリンタドライバ、このときのデバイスを通常デバイスと呼び、グループプリンタやメンバプリンタと区別する。なお、OSとしてはWindows(登録商標)に限定されるものではなく、描画命令を備えるOSであれば適用可能であることは言うまでもない。また、デバイスであるプリンタとは区別してプリンタドライバとプリンタ出力ポートとの組み合わせをプリンタと呼ぶこともある。例えば、後述する図7のLogicalPort(ジョブ制御ポートモニタ)とグループプリンタドライバとの組み合わせを指定することを、グループプリンタを指定すると呼ぶこととする。
【0038】
図6は、本システムのクライアントサーバモデルにおいて、Microsoft Word(登録商標)などの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。
【0039】
通常、印刷の指示がされると、アプリケーションプログラムは一連の描画命令をOSを介して生成させる。この生成された描画命令はプリンタドライバを経て所定の形式に変換された後、ウインドウズスプーラ(Windows(登録商標) Spooler)に渡される。Windows(登録商標) Spoolerは、ユーザがユーザインタフェースを介して選択し指示したポートモニタにプリントジョブデータを渡して、プリンタデバイスに送信させる手順をとる。本実施形態では、今述べた通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ621(以降、ジョブ制御ポートモニタと略記)を指定して印刷を指示する。
【0040】
アプリケーションプログラム601は一連の描画命令をOSを介して生成させる。OSを介して生成された描画命令を受け取ったグループプリンタドライバ603では、汎用印刷ファイルを生成するための汎用ドキュメントデータを生成し、プリンタデバイスへプリントジョブデータを送信する従来のポートモニタではなく、ジョブ制御ポートモニタ621にプリントジョブデータとして送信する。また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ621に送信される。
【0041】
ジョブ制御ポートモニタ621は、プリントジョブデータである汎用印刷ドキュメントデータをプリンタデバイス105に送信するのではなく、印刷ジョブ制御システム用プリントサービス622(以降、ジョブ制御プリントサービスと略記)に送信する。ジョブ制御プリントサービス622は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
【0042】
印刷ジョブ制御システム用プリントマネージャ623(以降、ジョブ制御プリントマネージャと略記)は、ユーザがジョブ制御プリントサービス622内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。ジョブ制御プリントマネージャ623は、ジョブ制御プリントサービス622のソフトウェアのインタフェース(API:Application Program Interface)を介して、ジョブ制御プリントサービス622と情報・指示をやり取りしている。更に詳細な処理としては、プリントマネージャー623がジョブ制御プリントサービス622に対してデバイスを指定してのイベントを発行し、ジョブ制御プリントサービス622は発行されたイベントに基づくデバイスのステータスを監視して、該監視に基づく結果をプリントマネージャー623に通知する。
【0043】
印刷ジョブ制御システム用サーバ630(以降、ジョブ制御サーバと略記)は、個々のクライアント102〜104上のジョブ制御プリントサービス622がプリンタデバイス105にプリントジョブデータを送信するタイミングを集中制御(スケジューリング)している。印刷ジョブ制御システム用マネージメントコンソール633(以降、ジョブ制御マネージメントコンソールと略記)は、ジョブ制御サーバ630が持つソフトウェアがアクセスするためのAPIを介して、ジョブ制御サーバ630と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【0044】
また、ジョブ制御サーバ630は、デバイス情報コントロールモジュール631を用いて各プリンタデバイス105と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアント102〜104側のジョブ制御プリントサービス622に渡すことができる。
【0045】
<印刷処理システムの動作例>
次に、本実施形態におけるグループプリンタドライバ603からの印刷について説明する。
【0046】
グループプリンタドライバ603は、アプリケーションプログラム601が生成した一連の描画コマンドをプリンタデバイスやOSの種類に依存しない汎用中間フォーマットデータ(前述の汎用ドキュメントデータに相当)に変換する。この汎用中間フォーマットデータは、Windows(登録商標) Spooler604からジョブ制御ポートモニタ621を経て(図6の(a))、ジョブ制御プリントサービス622に導かれる(図6の(b))。ここで、汎用中間フォーマットデータは、汎用印刷ファイルに構築される。この汎用印刷ファイルの構成については後述する。
【0047】
ジョブ制御プリントサービス622は、このプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し(図6の(c))、続いてPDLドライバ602がその描画コマンドをプリンタデバイス105が解釈可能なPDL形式のファイルにする。
【0048】
図6では、ジョブ制御プリントサービス622で、このプリントジョブに対してプリンタ側のエラーを検知して代行印刷を行う例を示しており、実線で示されるのは当初印刷を予定していたメンバジョブであり、破線については代行印刷のために生成されたのジョブを示している(図6の(c))。PDLドライバ602で生成されたPDLファイルはWindows(登録商標) Spooler604、ジョブ制御ポートモニタ621を経て(図6の(d))、再びジョブ制御プリントサービス622に渡される(図6の(e))。ジョブ制御プリントサービス622は、ジョブ制御サーバ630の指示に従ってPDLのプリントジョブデータをプリンタデバイス105に送信する(図6の(f))。
【0049】
ジョブ制御プリントサービス622は、汎用印刷ファイル中の印刷指示書の指示にしたがって、1つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図6中に示す(c)、(d)、(e)、(f)はそのような場合のプリントジョブデータの経路を示している。
【0050】
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合は、一般のアプリケーションとはグループプリンタドライバ603への情報の渡し方やグループプリンタドライバ603での処理内容が異なる。前述のように、一般のアプリケーションの場合には、アプリケーションはグループプリンタドライバ603に描画情報を渡す際、通常のプリンタドライバと同じようにWindows(登録商標)のGDI関数を呼び出し、グループプリンタドライバ603がそれに応じて汎用印刷ファイルを生成する。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ603に供給する。グループプリンタドライバ603は、必要に応じてあらかじめ設定された印刷方法に基づいて汎用印刷ファイル内部の印刷指示書を書き換えてWindows(登録商標)Spooler604に送る。
【0051】
<汎用印刷ファイルの構成例>
図8は、構築された汎用印刷ファイルの構成の一例を示した図である。
【0052】
本実施形態で使用される汎用印刷ファイルは、印刷指示部8a(前述の印刷指示書に相当)とドキュメントデータ部8bとからなる。印刷指示部8aは、ドキュメントの情報と印刷指示とを記述した部分である。また、ドキュメントデータ8bは、上に説明した如くアプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語やOSの種類に依存しない或は依存しにくい形式のデータフォーマットとなっている。
【0053】
アプリケーションデータを変換した後の変換後データ(汎用印刷データ)としては、印刷リソースデータとして利用可能でかつワードプロセッサアプリケーション等により再度編集可能な形式のデータであることが想定され、実質的な標準形式のうち、例えば、XML形式や、WINDOWS(登録商標)システムにより提供されるEMF形式、或はAdobe Systems IncorporatedによるPDF(Portable Document Format)形式やSVG形式などが汎用形式の汎用印刷データとして採用できる。
【0054】
また、図示はされてはいないが、汎用印刷ファイルには、各メンバプリンタに対応したDEVMODEも含まれているものとする。該DEVMODEには、後述の図12にて詳しく説明する共通設定項目及び拡張設定項目の双方が含まれるものとする。
【0055】
更に詳細に説明すると、印刷指示部8aは、ヘッダ部801、ページ情報部802、ドキュメント属性部803、印刷体裁指示部804、出力方法指定部805、メンバプリンタ数806、メンバプリンタドライバ名807などから構成されている。
【0056】
ヘッダ部801は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部802は、ドキュメントデータ部8bのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【0057】
印刷体裁指示部804は、グループプリンタドライバのUIや、メンバプリンタの個別のUIを介して設定された印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報(N−UPや製本印刷など)、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。尚、ステイプル、パンチ指示については、Page単位で指定(サブセットステイプ等)されることもある。尚、各メンバプリンタの個別のUIを介して設定された内容は印刷指示部804に反映されると共に、各メンバプリンタに対応するDEVMODEにも反映されて保存される。
【0058】
出力方法指定部805は、出力方法として、分散印刷、同報印刷、代行印刷、通常印刷(代行しない印刷)などの出力方法に関する情報を格納する部分である。この出力方法指定部805に代行印刷が設定されている場合には、更に優先順位情報(第一候補、第二候補・・・)を付したプリンタ情報が含まれる。これら様々な出力方法の何れかは後述する図9のプリンタリスト1002を介して選択された仮想プリンタの種別や、図18の12-aのコンボボックスを介して設定された出力方法に対応する。
【0059】
メンバプリンタ数806は、グループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名807は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名807は、前述のメンバプリンタ数806の数だけの格納エリアを持っている。
【0060】
前述の図6で説明したジョブ制御プリントサービス622では、汎用印刷中間フォーマットデータより汎用印刷ファイルを生成する際、グループプリンタドライバのGUI上での設定を印刷指示部8aへ記憶する。更に、グループプリンタドライバから受け取った汎用印刷中間フォーマットデータを、汎用印刷ファイルのドキュメントデータ部8bに記録する処理も、ジョブ制御プリントサービス622により実行される。
【0061】
<Windows(登録商標) Print Systemと印刷ジョブ制御システムの関係例>
次に、図7でWindows(登録商標)が提供するPrintSystemと印刷ジョブ制御システムとにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。ここで、図6と同じ機能は同じ参照番号を付与しており、その機能については詳説しない。
【0062】
図7中では、印刷ジョブ制御システム700は、制御プログラムが動作するプリントサーバ101とクライアント102〜104の物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、プリントサーバが管理している出力ポート(Output Port)711は、クライアントのジョブ制御プリントサービス622のプロキシ出力ポート(Proxy Output Port)712とそれぞれ関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポートの全てを統一的に管理している。本実施形態では、実際のプリントジョブデータは各々のクライアントのプロキシ出力ポート712に保持される。
【0063】
ジョブ制御サーバ630は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス622に対して印刷ジョブの送信指示のみを行う。その指示に応じて、クライアントのジョブ制御プリントサービス622はプリントジョブデータをプリントデバイス105に送信する。
【0064】
次に、印刷ジョブ制御システム700が、代行印刷といった付加価値印刷を行う場合の処理を説明する。
【0065】
印刷ジョブ制御システム700が、代行印刷といった付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション601は、グループプリンタドライバ603に割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス622は、グループプリンタドライバ603によって処理された汎用印刷中間フォーマットデータをジョブ制御ポートモニタ621を介して受け取る。ジョブ制御プリントサービス622は、この汎用印刷中間フォーマットデータより汎用印刷ファイルを構築し(図7の715)、先に説明した印刷指示部8aの指示内容に従う印刷指示をデスプーラ(Despooler)701に対して行う。そして、Despooler701を介してPDLドライバが割り当てられた別のプリンタにジョブ(メンバジョブ)を発行して、印刷を行わせる。
【0066】
このとき、Despooler701は、ジョブ制御プリントサービス622の汎用印刷ファイルの印刷指示部8aの解釈に基づく指示に応じて、ドキュメントデータ部8bのドキュメントデータを加工してWindows(登録商標)のGDIに変換し、プリンタドライバに対して印刷指示を行い、印刷ジョブを発行する。例えば、印刷体裁指定部804に2−UPに相当する指示が記録されていた場合、用紙1枚に2ページ分のドキュメントデータを縮小レイアウトするようにDEVMODEを介してメンバプリンタに対して指示する。また、印刷体裁指定部804にステイプル指示がある場合にはDEVMODEを介してステイプルの指示を行う。また、代行印刷時には、印刷指示部8aに記述されている代行先メンバプリンタにジョブを発行する。尚、2−UP等の縮小レイアウトを処理する場合に、Despooler自身が印刷体裁指定部804の内容に基づき縮小レイアウトするようにして、メンバプリンタにはDEVMODEを介して1−UPを指示するようにしても良い。
【0067】
また、Despooler701はメンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、メンバプリンタのDEVMODEを作成する必要があるが、このDEVMODEは印刷指示部8a或は各メンバプリンタに対応して保存されたDEVMODEに記載された内容を適宜各メンバプリンタDEVMODEに反映させて生成する。
【0068】
クライアント側のジョブ制御プリントサービス622は、PDLドライバ602によってレンダリングされたそれぞれのメンバジョブのPDLデータをジョブ制御ポートモニタ621を介して受け取り、受け取ったジョブ(PDLデータ)に関する情報をプリントサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー(Proxy Output Port)712で一時保持する。その後、ジョブ制御サーバ630からの送信指示を受けた後にプリンタデバイス105に送信する。
【0069】
<グループプリンタドライバの制御処理>
次に、本発明の実施形態における、印刷ジョブ制御システムのためのグループプリンタドライバ603の制御について説明する。
【0070】
図9は、所定のアプリケーションから印刷設定を行うための指示がなされた場合にディスプレイ207に表示されるグラフィカルユーザインタフェース(以下「GUI」、または「UI」という。)の一例を示す。
【0071】
プリンタリスト1002には複数のプリンタ名が示されており、リスト中のプリンタは仮想プリンタ(グループプリンタ)1001や、通常のプリンタ(単独のプリンタドライバ及びデバイスに対応する)1003の双方が含まれている。
【0072】
そして、プロパティボタン1004が押下(マウスによりクリック)されると現在のプリンタリスト1002で選択されているプリンタのプロパティが表示される。図9の場合は代行印刷の出力方法に対応したグループプリンタAが選択されている。
【0073】
図10は、実施形態におけるUI表示処理を示すフローチャートである。このフローチャートに対応するプログラムはハードディスク(HD)205等の所定の記憶媒体に記憶された制御プログラムに含まれ、RAM202にロードされCPU200によって実行されるものである。
【0074】
まず、ステップS101において、デフォルトあるいは図9のようなUIを介して選択されたグループプリンタの出力方法のチェックが行われる。このチェックは図8の出力方法指定部805を参照することで実現される。
【0075】
ここで出力方法として代行印刷に対応するグループプリンタが選択されていたら、ステップS103に進み、それ以外の出力方法(例えば、分散印刷、同報印刷、カラーモノクロ印刷など)だったら、ステップS102へ進む。ステップS102では、指定された出力方法が代行印刷以外の分散印刷や同報印刷であることが特定され特定された出力方法に対応するUI制御処理が行われる。ここで行われるUI制御処理には論理和や論理積などの所定の規則に従った項目別の競合解消処理であるコンフリクト処理および表示処理を含む。これについては後ほど図11乃至15を用いて詳しく説明する。
【0076】
ステップS105は、ステップS102で行ったコンフリクト処理の結果に基づき、グループプリンタドライバUI或は後述の図19に示すようなUI表示を行い、ユーザの指示に応じた各項目の設定を行うステップである。ステップS102でのコンフリクト処理の結果、機能のないものについてはUI上で設定が行えないよう、該当する項目をグレーアウト表示もしくは非表示といったUI制御を行い、機能がある項目についてはUI制御を行わない。
【0077】
また、ステップS101で代行印刷に対応するグループプリンタを利用する指示が入力されていたら、上記したとおりステップS103に進む。ステップS103では、先に説明したグループプリンタドライバ603、或は、ジョブプリント制御サービス622が汎用ドキュメントデータを生成する際の設定項目を含むUIが表示される。ここでの設定項目には、例えば、グレイスケールで汎用ドキュメントデータを生成するか否かを指定する項目や、汎用ドキュメントデータの解像度を指定する項目や、汎用印刷ファイルに汎用ドキュメントデータを含める際の圧縮方式(jpeg圧縮方式やzip圧縮方式等)を指定する項目が含まれている。また、図18中に含まれるような、代行印刷時のメンバプリンタの優先順位を変更設定するための設定項目や、メンバプリンタの追加/削除(12-b)などの複数のメンバプリンタを対象とする仮想ジョブに特有の設定項目が含まれ、ステップS104にて提供されるUIを補足する。
【0078】
一方、用紙サイズやステイプル指示などの設定項目は後述のステップS104にて提供されるUIにて設定可能となるように制御が施されるので、ステップS103において提供されるUIからは設定が無効になるよに制限が施される。
【0079】
次にステップS104に進み、代行印刷における優先順位が最優先の代表メンバプリンタが特定され、該代表メンバプリンタのUIが表示部に表示される。
【0080】
ここで提供されるUIは代表メンバプリンタのために予め容易されたプリンタドライバUIを流用したものに相当し、ここでのUIは流用される以外にも特定のプリンタデバイスを指定しての処理において、アプリケーションデータからPDLデータを生成するために利用されたりもする。
【0081】
尚、ステップS103とステップS104の処理順序は特に限定されるものではなく、フローチャートに示される順序を逆にしても良いし、平行して処理させても良い。
【0082】
そして、ステップS103及びステップS104の処理に基づくUIがステップS105においてクライアントの表示部に表示される。ここで、表示されたUIから設定された設定情報は、図8の印刷指示部8aや、各メンバプリンタに対応するDEVMODEに反映され印刷処理に利用される。
【0083】
尚、代表メンバプリンタが機能制御不可なメンバプリンタの場合には、印刷指示部8aには、共通設定項目のみが反映され、拡張設定項目はDEVMODEに反映されることとなり、拡張設定項目については印刷指示の際にはDEVMODEの設定情報がDesplooerにより利用される。
【0084】
このように代行印刷における優先順位が第一候補プリンタのUIをダイレクトに提供することにより、ステップS1803などの能力取得の処理に伴うコンフリクト処理を行わないことでUI表示を高速に行うことができると共に、第一候補のメンバプリンタの持つ機能を最大限に活用した詳細設定をすることが可能となる。
【0085】
S107は、グループプリンタドライバUI上に設定項目がない項目について、メンバプリンタのUIを開いて詳細を設定させるステップである。
【0086】
なお、メンバプリンタドライバUIを開いた場合、グループプリンタドライバで設定可能な項目についても設定可能となり同一機能が両者に設定された場合に処理が二重にかかってしまうため、次に示すUI制御を施し表示を行う。
【0087】
(1)メンバプリンタが“機能制御可能”なドライバである場合、グループプリンタドライバUI上の設定項目と競合する項目については、メンバプリンタドライバUIでの設定が行えないように、項目をグレーアウト表示もしくは非表示としてUI制御する。
【0088】
(2)メンバプリンタが“機能制御不可”なドライバである場合、共通設定項目についてはメンバプリンタドライバで設定された設定でUI表示する。UI表示後、メンバプリンタドライバUI上でその項目について変更がなされた場合、ドライバUIを閉じるステップでグループプリンタドライバで設定された設定項目の情報を対応するメンバプリンタドライバの共通設定項目に上書きし、メンバプリンタUI上での設定変更を許さない。なお、機能制御可能/不可能については後ほど詳しく説明する。
【0089】
以下、ステップS102におけるUI制御処理について、図11〜16を用いて説明する。
【0090】
図11は、ステップS102におけるUI制御処理の詳細を示すフローチャートである。
【0091】
まず、ステップS1801で、OSを介してUI表示要求を認識すると、一連のUI制御処理を開始する。
【0092】
次に、ステップS1802で、印刷ジョブ制御システムAPIを用いて、グループプリンタドライバを構成するメンバプリンタドライバの識別IDを問い合わせ、獲得する。ここで、グループプリンタを構成する全てのメンバプリンタドライバとは、グループプリンタドライバに対応して予め登録された各プリンタドライバを指す。また、メンバプリンタドライバの識別IDとしては、メンバプリンタドライバが登録される際に割り当てられた名称や、登録されたメンバプリンタドライバに対応してグループプリンタドライバのプログラムが割り当てた識別IDなどに相当させることができる。
【0093】
次に、ステップS1803で、ステップS1802で獲得した各メンバプリンタドライバの識別IDに対応するメンバプリンタドライバの能力を取得する。具体的には、グループプリンタを構成する全てのメンバプリンタドライバに対して、ドライバの能力の取得がドライバ設定情報の拡張設定項目まで可能で、ドライバUI制御が可能な“機能制御可能なドライバ”か、または、それ以外の“機能制御不可なドライバ”かを読み出して判定する。さらに具体的には、グループプリンタドライバによって、識別IDに対応する各メンバプリンタドライバに問合せが行われ、問い合わせに対するメンバプリンタドライバからの応答に応じて“機能制御可能なドライバ”または“機能制御不可なドライバ”の機能制御可否の情報についての判定が行われる。なお、拡張設定項目については後ほど詳しく説明する。
【0094】
続くステップS1804では、ステップS1803にて読み出された機能制御可否の情報より、メンバプリンタがどのような種別の各メンバプリンタドライバから構成されるかの判定を行う。
【0095】
ここで、ステップS1803にて説明に用いた機能制御可能/不可能について詳しく説明すると、機能制御可能とは、例えば、図7中のジョブ制御プリントサービス622のソフトウェアモジュールから、拡張設定項目である印刷設定(例えば、製本とじ代(図12B参照))の指示が行えたり、所定の設定項目をグレーアウト表示制御させることができることをいう。逆に、そのようなことができないことを機能制御不可という。具体的には、プリンタドライバの拡張設定項目を設定したり、グレーアウト表示などの表示制御を行うにはプリンタドライバの制御用に開発されたSDK(Software Development Kit)を使用する必要があり、プリンタドライバのSDKをシステムに組み込めないような場合などは機能制御できないこととなる。例えば、他のベンダーが設計したプリンタドライバなどがこの制御機能不可のメンバプリンタに相当する。
【0096】
説明を図11のフローチャートに戻す。
【0097】
ステップS1804の判定結果により、メンバプリンタ中に“機能制御可能”なドライバが一台でも含まれている場合には、S1805へ処理を進め、機能制御不可なドライバのみからメンバプリンタドライバが構成されている場合には、ステップS1806へ処理が進められる。ステップS1805およびS1806の詳細はそれぞれ、図13および図14を用いて後ほど詳しく説明する。
【0098】
そして任意のタイミングにて、設定終了ボタンが押下されるとS1807の設定終了処理のステップでYesと判定され、ステップS1802に戻る。
【0099】
ステップS1808では、グループプリンタドライバUIを介して設定された項目が、各メンバプリンタドライバの設定項目に矛盾がないかどうかをチェックする(UIコンフリクトチェック)。たとえば、プリンタ1ではA4用紙にステイプル可能な位置は用紙左上のみであり、プリンタ2ではA4用紙にステイプル可能な位置は用紙左下のみであるといったように、プリンタにはデバイスのもつ機能に密接に関連した項目がある。本ステップでは、設定機能上ありえない組み合わせについてのコンフリクトチェックの他に、各メンバプリンタドライバに対して、グループプリンタドライバUI上で設定した項目が、各メンバプリンタドライバの設定項目として反映可能かどうかを、各メンバプリンタドライバを対象にチェックが行われる。
【0100】
ステップS1809では、コンフリクトチェックの結果を判定し、グループプリンタドライバUI上で設定した設定項目が、全てのメンバプリンタで妥当であった場合には、ステップS1812に処理を進めグループプリンタドライバUIの表示を終了する。
【0101】
一方、コンフリクトチェック結果の判定で設定項目にコンフリクトが発生する項目があると判定された場合には、ステップS1810へ処理を進め、「グループプリンタドライバUI上で設定項目を再設定するか、もしくは、現状の設定項目で印刷処理を行うか」といったメッセージと共に、再設定、強行ボタンを表示させる。ステップS1811では、再設定、強行ボタンのどちらが押されたかを判定し、再設定ボタンが押されたと判定された場合には、ステップS1804の処理に戻り、再度、表示制御処理が実行される。
【0102】
また、強行ボタンが押されたと判定された場合には、ステップS1812に処理を進めグループプリンタドライバUIの表示に関する一連の処理を終了し、再び一連の処理を繰り返す処理へ移行する。
【0103】
ここで、図12Aに、メンバプリンタの構成と設定可能項目との対応関係の例を示す。この例によれば、メンバプリンタ中に機能制御可能なドライバが一台もない場合に表示されるUI(ステップS1806)からは図12Bに例示されるような共通設定項目だけが設定可能であり、メンバプリンタ中に機能制御可能なドライバが一台でも含まれている場合に表示されるUI(ステップS1805)からは共通設定項目の他に拡張設定項目が設定可能である。
【0104】
図13は、ステップS1805の詳細な処理を示すフローチャートである。
【0105】
まず、ステップS2001は、全てのメンバプリンタに対してステップS2002、S2004の各ステップに示される機能のコンフリクトチェックを行ったかどうかを判定するステップであり、全てのメンバプリンタのチェックが終了している場合はステップS2005へ進み、終了していない場合にはステップS2002へ進む。
【0106】
ステップS2002は、共通設定項目に関して論理和/論理積などのコンフリクト処理を行うステップであり、各メンバプリンタドライバの個々の共通設定項目に関する能力を問い合わせて、機能のコンフリクト処理を行い、その結果に基づきグループプリンタドライバUIで表示する項目を選択する制御を行う。本ステップでは、全てのメンバプリンタを対象にコンフリクトチェックを行う。
【0107】
ステップS2003は、メンバプリンタの判定を行うステップであり、機能制御可能であればステップS2004へ進む。また、機能制御不可であれば、ステップS2001へ戻る。ステップS2004は、機能制御可能なプリンタに対して拡張設定項目の論理和/論理積などのコンフリクト処理を行うステップである。本ステップを終了するとステップS2001へ戻る。
【0108】
ステップS2005では、ステップS2002,ステップS2004で行われたコンフリクト処理の結果に基づきグループプリンタドライバUIに表示される項目を抽出し、抽出した項目に基づきUI表示を行う。ユーザは表示された項目に従って、各メンバプリンタドライバ間で矛盾が生じることのない設定を容易に行うことができるようになる。
【0109】
なお、上記したコンフリクト処理の結果、いずれかのメンバプリンタドライバが有していない機能については、グループプリンタドライバUIにて設定が行えないように制御される。
【0110】
ステップS2006では、ステップS2002またはステップS2004でコンフリクト対象とならなかった項目の設定を行うために、グループプリンタドライバを構成するいずれかのメンバプリンタのUIを開き詳細に設定させるよう指示がなされたか否かを判断する処理が行われる。
【0111】
グループプリンタドライバ(グループプリンタ)を構成するいずれかのメンバプリンタドライバ(メンバプリンタ)が指定されたと判断されると、処理をステップS2007に移行させる。ステップS2007の処理の詳細は図14にて説明する。なお、図13におけるステップS2006、S2007はステップS2005の後に実行するように説明しているが、任意のタイミングで実行させるようにしてもよい。
【0112】
図14は、ステップS2007のより詳細な処理内容を示すフローチャートである。
【0113】
まず、ステップS2201で、ステップS2006マウス等を介して指定されたメンバプリンタドライバが機能制御可能か否かの判定を行う。機能制御可能か否かについては上のステップS1803にて説明した通りである。
【0114】
そして、機能制御可能と判断された場合には、ステップS2202にて、共通設定項目および拡張設定項目を含めた項目の表示制御を行う。ここでは、図10のステップS107におけるフローチャートにおいて説明した、(1)の規則と同様の規則に従い表示制御処理が施される。
【0115】
また、ステップS2201で、指定されたメンバプリンタドライバが機能制御不可なものと判定された場合には、図10のフローチャートにおいて説明した(2)で示した規則に則して、メンバプリンタドライバの共通設定項目UIに関して表示制御がなされる。
【0116】
図15は、図11のステップS1806の詳細を示すフローチャートである。
【0117】
まず、ステップS2101で、各メンバプリンタドライバの個々の共通設定項目に関する能力の問い合わせを行い、各項目の機能について、上に説明したような論理和/論理積などのコンフリクト処理を実行する。そして、その結果に基づきグループプリンタドライバUIにて設定可能とする項目の抽出を行い、UIに表示する設定項目を決定する。
【0118】
次に、ステップS2102で、ステップS2101で行われたコンフリクト処理の結果に基づき抽出された設定項目を基にグループプリンタドライバUIの表示を行う。ステップS2101でのコンフリクト処理の結果、各メンバプリンタに共通してない機能の項目、および、拡張設定項目と判定された項目については、グループプリンタドライバのUI上で設定が行えないよう、項目をグレーアウト表示もしくは非表示となるように制御が行われる。
【0119】
ステップS2103では、マウスなどのポインティングデバイスを介してメンバプリンタドライバが指定されたか否かの判定を行う。このメンバプリンタドライバの指定は、ステップS2102で表示されなかった拡張設定項目または各メンバプリンタが持つ固有の設定項目を設定するために、メンバプリンタドライバのUIを開き、詳細設定を行うためのものに対応する。メンバプリンタドライバが指定された場合にはステップS2104に進む。
【0120】
ステップS2104では、ステップS2103にて指定されたメンバプリンタドライバのUIを個別に表示し、表示したUIを介して入力された設定項目に対する設定指示に応じて詳細設定を行う。
【0121】
このステップS2104においては、対象となるメンバプリンタドライバが機能制御不可なものなので、グループプリンタUIを介して設定された共通設定項目が反映される。また、機能制御不可なプリンタであっても一部の項目において表示制御可能であれば、その項目についてはグループプリンタUIを介しての設定と重複して設定されないようにグレーアウト等の禁則処理が施される。
【0122】
また、ステップS2104において、個別に表示されたメンバプリンタUIを介して、グループプリンタでは禁則処理が施されていた拡張設定項目についての設定を行うことができ、ここで、設定された内容は、先に説明した印刷指示部8aに反映されることとなる。
【0123】
なお、上に説明したステップS2103、S2104の各ステップの処理は、ステップS2102の後に行うように説明しているが、任意のタイミングにて実行させるようにしてもよい。
【0124】
図16は、図11,13,14,15に示したフローチャートに基づき、第1のUI提供ステップとして表示されるグループプリンタドライバUIの表示例を示す図である。これは、「仕上げ」タブ160が選択されたことでグループプリンタドライバUIが印刷仕上げに関する設定画面を提供している例である。この例の場合、コンフリクト処理の結果、161,162,163の各項目が、このグループプリンタUIからは設定ができない項目としてグレーアウト表示され、選択不可の状態にされる。もちろん、グレーアウト表示ではなく、単に非表示とするようにしてもよい。一方、コンフリクト処理の結果、各メンバプリンタドライバが共通して備える機能に対応する設定項目についてはグレーアウト表示、もしくは非表示などの制御がなされず、選択指示可能な形態でユーザインタフェースに反映される。
【0125】
このようにして、グループプリンタドライバUIからは、所定の印刷処理に関与する各プリンタのすべてに共通する項目や所定のプリンタの機能に合わせた項目の印刷設定を効率良く行うことができる。また、所定の印刷処理(例えば代行印刷)に関与する各プリンタ間で共通しない機能については、第1のUI提供ステップとして表示されるグループプリンタドライバUIからは設定不可/無効となるよう制御される。
【0126】
次に、実施形態におけるグループプリンタおよびメンバプリンタの登録処理について説明する。
【0127】
本実施形態では、グループプリンタドライバのUIを開くことにより、出力方法として例えば「割合分散印刷」、「カラー・モノクロ分散印刷」、「同報印刷」、「代行印刷」が選択でき、それぞれに対してメンバプリンタドライバの指定および設定を行うことにより、1つのプリンタドライバで複数の印刷指示が可能となるものである。
【0128】
図17は、実施形態におけるグループプリンタドライバUIを用いた操作処理を示すフローチャートである。ここでは一例として、「代行印刷」が選択される場合について説明する。
【0129】
まず、ステップS111において、出力方法を指定する。前述のとおり、出力方法としては、「割合分散印刷」、「カラー・モノクロ分散印刷」、「同報印刷」、「代行印刷」が選択可能である。
【0130】
次に、ステップS112に進み、それぞれの出力方法に適したメンバプリンタの登録指定を行う。
【0131】
次に、ステップS113において、出力方法として代行印刷が選択されているかどうか判定し、選択されていなければ、そのままステップS115に進む。ここで、出力方法として代行印刷が選択されていた場合には、ステップS114に進み、第一候補プリンタドライバの出力方法の詳細設定を行う。ステップS115は、グループプリンドライバに対して詳細設定を行うステップである。
【0132】
次に、ステップS116で、ステップS114、S115で設定した内容を登録する。この設定項目の登録は、図8で説明した汎用印刷ファイルに記録することで実現される。例えば、上記設定項目は、本汎用印刷ファイルの印刷指示部8a中、特に、ステップS111の設定項目においては出力方法指定部805を利用して記録する。これら記録された各項目は各種UI表示時のデフォルト設定値として利用される。
【0133】
また、ステップS112の設定項目においては、メンバプリンタ数およびメンバプリンタドライバ名はメンバプリンタドライバ情報設定部を利用して記録する。また、ステップS114、S115の設定項目においては、グループプリンタドライバ設定情報部を利用して記録する。
【0134】
上記の説明は、「代行印刷」が選択される場合を前提にしたが、その他の出力方法が選択される場合も同様な操作手順である。
【0135】
次に、図18、19を用いて、本実施形態におけるUIについて具体的に説明する。
【0136】
図18は、実施形態におけるグループプリンタドライバUI12の一例を示す図である。これは、「出力設定」タブ161が選択されたことでグループプリンタドライバUIが出力方法に関する設定画面を提供している例である。同図において、12−aは、前述の図9に対応するものとは別の出力方法を選択するためのコンボボックスである。図9を介しての選択と共に、ステップS101にも対応する。図18においては、出力方法として代行が選択されている。
【0137】
12−bは、メンバプリンタの追加/削除を行うための登録用のUIを開くためのボタンである。
【0138】
12−cは、メンバプリンタを登録したあと、そのメンバプリンタの一覧を表示するリストボックスである。この一覧表示の内容は前述の12−aで指定した出力方法に従って、その表示内容も変更される。この中で、12−fは前述の図12のS112で説明した、登録したメンバプリンタを出力対象のプリンタより、一時的にはずしたり追加したりするチェックボックスである。このチェックボックスのチェックがありのときは、そのメンバプリンタを対象プリンタとみなし、チェックなしのときはそのメンバプリンタを一時的に対象プリンタからはずすことを意味している。すなわち、前述のステップS112で対象プリンタを選択したが、改めてこのチェックボックスで、選択された対象プリンタを一時的に対象外にすることが可能となる。
【0139】
また、図示の状態では出力方法として代行印刷が選択されているため(12−a)、12−dのボタンによって、メンバプリンタの印刷の際に使用される優先順位(第一候補、第二候補、第三候補・・の順番)を変更することができる。
【0140】
また、12−eは、メンバプリンタドライバのプロパティ画面を開くためのボタンである。対象となるメンバプリンタは12−cのリスト中から選択することができ、そのメンバプリンタについてのプロパティを設定をすることができる。
【0141】
図18のUI上で設定された内容は、図8の汎用印刷ファイルに記録される。たとえば、12−aで設定された出力方法は、図8の805に記録される。また、12−bでメンバプリンタの追加や削除を行った場合、メンバプリンタの数、メンバプリンタ名はそれぞれ、図8の806,807に記録される。
【0142】
このようにして、グループプリンタドライバUIからは、図16を用いて説明したとおり所定の印刷処理に関与する各プリンタのすべてに共通する項目の印刷設定を行うことができる他、所定の印刷処理(例えば代行印刷)のために、各プリンタの優先順位を設定することで当該複数のプリンタから一のプリンタを指定することができる。
【0143】
図19は、図10のステップS103、S104の処理に従いグループプリンタドライバUIとメンバプリンタドライバUIとを同時含ませて表示させた例を示す図である。
【0144】
UI16は、グループプリンタドライバUI12における12−c、12−dにより優先度第1位として設定されたプリンタドライバのUIに対応する。UI16を介して設定された内容は、印刷指示部8aを含む図8の各対応項目に反映される。また、代表メンバプリンタに対応するDEVMODEにも反映され、後述するDespooler701の各メンバのドライバへの印刷指示の際に利用される。
【0145】
また、UI12は、仮想ジョブ(分散印刷、同報印刷など)における代行印刷時の優先順位等の複数のメンバプリンタの構成を設定する為の項目など、仮想ジョブ設定ならでわの設定項目を含んでいる。仮想ジョブの設定を行うにあたって、UI16を補助する機能を含んでいる。また、図19のUI12中では示されてはいないが、設定項目は図19中の項目に限定されるものではなく、「グレイスケール」、「解像度」、「圧縮方式」などの仮想ジョブ(分散印刷、代行印刷など)ならでわの設定項目を適宜含めるようにすることも想定される。無論、仮想ジョブならでわの設定項目は、図19におけるUI12の「出力設定」と同じシートに含めても良いし、別シートに含めるようにしても良い。
【0146】
このように中間データを作成するための設定項目や、仮想ジョブ(分散印刷、同報印刷など)に複数のメンバプリンタの構成を設定する為の設定項目を含ませたUI12だけでなく、グループプリンタドライバUI12における12−c、12−dにより優先度第1位として設定されたプリンタドライバの個別のUI16が、第2のUI提供ステップとして同一画面上に並行して表示される。これにより、優先度第1位のプリンタについての詳細な印刷設定をわざわざ他のボタンの押下で呼び出すことなく容易に表示させることができる。
【0147】
尚、図19では、UI12とUI16とを別々に表示させているが、代行印刷の出力方法に対応した仮想プリンタが指示されたことに応じて代表となる優先順位1位のメンバプリンタに対応するUIに、複数のメンバプリンタの構成を設定する設定項目や、中間データを作成する為の設定項目を含めるようにしても良い。
【0148】
従来のグループドライバ設定UI上ではグループプリンタドライバ上で設定可能な項目(すなわち、共通設定項目)しかできず、様々な出力方法の形態があるにも関わらず、夫々の仮想出力方法における特性を加味した設定環境は提供されていなかった。さらに、従来におけるグループプリンタドライバ設定UI上では。共通設定項目に含まれない機能については、例えばマウスで、OSにより提供される環境設定UIを呼び出し、その環境設定UIからプリンタ設定UI、さらにそのプリンタ設定UIから印刷設定UIを辿ったうえで別途設定しなければならないの一般的であった。
【0149】
これに対し、図19に示すような実施形態におけるグループプリンタドライバUI上では、例えば、エラーが稀にしか起こらず、ほとんどの場合で使用される優先順位第1位のメンバプリンタの詳細設定を、グループプリンタドライバに対する設定と平行して行うことが可能なる。一方、代行印刷以外の分散印刷、同報印刷などの出力方法に対しては図11、13、14、15に示したフローにより効率よく設定を行うことができるようになった。
【0150】
以上説明したように、本実施形態によれば、エラー代行印刷システムにおいて、グループプリンタドライバUI上で、エラー代行印刷時の優先順位第一位のメンバプリンタに対する印刷設定を容易に行うことが可能となった。それにより、例えばエラーが稀にしか起こらない、ほとんどの場合に使用されるような優先度第一位のプリンタがわかっているとき、その詳細な設定を、わざわざそのプリンタの印刷設定画面を開くための操作を行わずとも、グループプリンタUI上で手軽にできるようになった。
【0151】
(他の実施形態)
以上、本発明の実施形態を詳述したが、本発明は、例えばシステム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0152】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(図10,11,13〜15に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【0153】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0154】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0155】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
【0156】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0157】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0158】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0159】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0160】
【発明の効果】
本発明によれば、複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができる。
【図面の簡単な説明】
【図1】実施形態における印刷処理システムの構成を示す図である。
【図2】実施形態における印刷処理システムにおけるコンピュータの構成を示すブロック図である。
【図3】実施形態におけるコンピュータのRAMのメモリマップの一例を示す図である。
【図4】実施形態におけるFDのメモリマップの一例を示す図である。
【図5】実施形態におけるコンピュータのFDドライブに挿入されるFDとの関係を示す図である。
【図6】プリント制御モジュールの構成を示す図である。
【図7】実施形態における印刷制御系の構成を説明するための図である。
【図8】汎用印刷ファイルの構造例を示す図である。
【図9】実施形態における印刷設定用のUIの一例を示す図である。
【図10】実施形態におけるUI表示処理を示すフローチャートである。
【図11】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図12A】実施形態におけるメンバプリンタの構成と設定可能項目との対応関係を示す図である。
【図12B】共通設定項目および拡張設定項目それぞれの具体的な設定項目の例を示す図である。
【図13】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図14】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図15】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図16】実施形態におけるグループプリンタドライバUIの表示例を示す図である。
【図17】実施形態におけるグループプリンタドライバUIを用いた操作処理を示すフローチャートである。
【図18】実施形態におけるグループプリンタドライバUIの一例を示す図である。
【図19】実施形態におけるグループプリンタドライバUIとメンバプリンタドライバUIとを同時表示させた例を示す図である。
【発明の属する技術分野】
本発明は、複数のプリンタを用いた印刷制御技術に関する。
【0002】
【従来の技術】
近年、ネットワーク機器が一般に利用され、ネットワーク上に多数のパソコン(以下、PC)やプリンタが接続されるようになった。このようなネットワーク環境では、さまざまな形態の印刷ジョブ制御システムを構築して効率的な印刷を行わせることが可能である。印刷ジョブ制御システムとしては例えば、ページ数の多いドキュメントあるいは部数の多いドキュメントについては、印刷時間の短縮を図るために、いったん印刷ジョブをスプールし、複数のプリンタに頁ごとあるいは部数ごとに分散して出力するシステム(分散印刷システム)が知られている。
【0003】
また、カラーページとモノクロページとが混在する1つのドキュメントに対して、印刷時のコストおよび印刷時間の短縮を図るために、カラーページはカラープリンタへ、モノクロページはモノクロプリンタへ分散して出力するシステム(カラー・モノクロ分散印刷システム)が知られている。
【0004】
さらには、1つのドキュメントを一度の印刷指示で、複数のプリンタに同時に送信し印刷するシステム(同報印刷システム)や、印刷ジョブを送信したプリンタでエラーが発生した場合に、自動的に他のプリンタに切り替えて印刷するシステム(エラー代行印刷システム)も知られている。
【0005】
ところで、ネットワークに接続された複数のプリンタを用いて構成される上記のような印刷ジョブ制御システムにおいて、印刷時の設定をプリンタ毎に行うのは煩わしい。そのため一般には、システムにおける各プリンタは1つの仮想プリンタ(グループプリンタドライバ)からの印刷指示に基づき動作するように構成し、これによりユーザはこのグループプリンタドライバ(印刷ユーティリティー)に対してのみ印刷設定を行えばすむようになっている。さらに仮想ジョブとしての分散印刷を採用した仮想プリンタにおいて、複数のプリンタの機能に基づく論理和/論理関の演算結果を仮想プリンタのユーザインタフェース(UI)に反映させ、複数のプリンタに対してまとめて設定を可能とする技術が知られている。
【0006】
以上のような技術の詳細は、例えば特許文献1を参照されたい。
【0007】
【特許文献1】
特開2001-290625号公報
【0008】
【発明が解決しようとする課題】
しかし、仮想ジョブとしては、分散印刷の他にも、上述したようには、カラー・モノクロ分散印刷や同報印刷や代行印刷などの様々な出力方法に対応するものがあり、それら様々な種類の仮想ジョブ及び対応する仮想プリンタに対して、従来から知られているような規則に従う仮想プリンタのUI制御を施すと、夫々の仮想ジョブの特性を十分に考慮したような使い勝手の良いUIを提供するにはいたっていなかった。
【0009】
例えば、エラー代行印刷システムでは、代行時に使われる候補として複数のプリンタがあるような場合、グループプリンタドライバ設定用のUI上で、すべてのメンバプリンタに共通の設定しかできないようにすると、最初に利用されるメンバプリンタの特性を十分に生かすことができないという問題が考えられる。
【0010】
本発明はこのような課題に対処すべくなされたものであり、複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができるようにすることを目的とする。
【0011】
【課題を解決するための手段】
本発明の一側面は、複数のメンバプリンタを利用して所定の出力方法を実行可能な印刷制御を行うためのコンピュータプログラムに係り、第1出力方法に対応した仮想プリンタが指示されることに応じて前記第1出力方法の仮想プリンタに関連した複数のメンバプリンタの機能に基づく第1ユーザインタフェースを起動する起動ステップを有し、前記起動ステップは、第2出力方法に対応した仮想プリンタが指示されたことに応じて代表となる代表メンバプリンタに対応する第2ユーザインタフェースを起動することを特徴とする。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【0013】
<印刷処理システムの構成例>
図1は、実施形態に係る印刷処理システムの構成を示す図である。
【0014】
同図において、101、102、103、104は、ネットワーク106に接続され、相互に通信可能なネットワークコンピュータであり、典型的にはパーソナルコンピュータ(PC)である。
【0015】
これらのうち、102,103,104はクライアントコンピュータ(以下、クライアント)であり、それぞれイーサネット(登録商標)などのネットワークケーブルによってネットワーク106に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアントは複数のプリンタドライバをサポートするものとする。
【0016】
これに対し101はサーバコンピュータ(以下、サーバ)であり、ネットワークケーブルによってネットワーク106に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク106の使用状態を監視する。このサーバは、ネットワーク106に接続されているプリンタを管理するプリントサーバとしても機能する。具体的には、プリントサーバ101は、クライアントコンピュータ102、103、104から印刷要求が出されたプリントデータを含む印刷ジョブを格納して印刷する機能や、クライアントコンピュータ102〜104から印字データを含まないジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知する機能、後述するネットワークプリンタ(プリンタデバイス)105のステータスや印刷ジョブの各種情報を取得して、クライアントコンピュータ102〜104に通知する機能などを有している。
【0017】
105は、印刷制御装置としてのネットワークプリンタであり、図示しないネットワークインタフェースを介してネットワーク106と接続されており、クライアントコンピュータから送信されてくる印字データを含む印刷ジョブを解析し、1ページずつドットイメージに変換して印刷する。なお、同図にネットワークプリンタ105は1台しか示されていないが、他のネットワークプリンタが複数接続されているものとする。各ネットワークプリンタの機能は相違するものであってもよい。
【0018】
また、106はネットワークであり、クライントコンピュータ102〜104、プリントサーバ101、ネットワークプリンタ105等と接続している。
【0019】
<ネットワークコンピュータのハードウエア構成例>
図2は、クライアント102〜104とプリントサーバ101として使用されるコンピュータの構成を説明するブロック図である。なお、本実施形態においてはこのように、クライントコンピュータ102〜104もプリントサーバ101も同様あるいは同等のハードウエア構成とするが、それぞれ専用のハードウエア構成であっても構わない。
【0020】
図2において、200は装置全体の制御を行うCPUであり、ハードディスク(HD)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや、本実施形態のネットワークプリンタ制御プログラム等を実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0021】
201は記憶手段としてのROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。202は一時記憶手段としてのRAMであり、CPU200の主メモリ、ワークエリア等として機能する。
【0022】
203は記憶媒体読み込み手段としてのフロッピディスクドライブであり、後述する図5に示すようにFDドライブ203を通じて、記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータにロードすることができる。204は記憶媒体であるフロッピディスク(FD)であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はFDに限らず、CD−ROM、CDR、CDRW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
【0023】
205は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク(HD)であり、アプリケーションプログラム、プリンタドライバプログラム、OS、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。更に、スプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【0024】
206は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。207は表示手段であるディスプレイであり、キーボード206から入力したコマンドや、プリンタの状態等を表示したりするものである。
【0025】
208はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。209は入出力手段であるインタフェースであり、該インタフェース209を介して情報処理装置は外部装置とのデータのやり取りを行う。
【0026】
なお、上記コンピュータの構成はその一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM、RAM、HDなどで変更することも可能である。
【0027】
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、FD204からロードされる上記ネットワークプリンタ制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。
【0028】
なお、本実施形態では、ネットワークプリンタ制御プログラムおよび関連データをFD204から直接RAM202にロードして実行させる例を示すが、これ以外にも、ネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがFD204からインストールされているHD205から、RAM202にロードするようにしてもよい。また、本ネットワークプリンタ制御プログラムを記憶する媒体は、FD以外にCD−ROM、CDR、PCカード、DVD、ICメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【0029】
また、以下では、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムまたはプリンタドライバと呼ぶこともある。印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本実施形態の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能するようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
【0030】
301は基本I/Oプログラムであり、コンピュータの電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムが入っている領域である。302はオペレーティングシステム(OS)であり、303はネットワークプリンタ制御プログラムで、RAM202上に確保される領域に記憶される。304は関連データで、RAM202上に確保される領域に記憶される。305はワークエリアで、CPU200が本プリンタ制御プログラムを実行する領域が確保されている。
【0031】
図4は、図2に示したFD204のメモリマップの一例を示す図である。
【0032】
図4において、401はデータの情報を示すボリューム情報であり、402はディレクトリ情報、403は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、404はその関連データである。ネットワークプリンタ制御プログラム403は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント及びサーバ共に、同様の構成をとっている。
【0033】
図5は、図2に示したFDドライブ203に対して挿入されるFD204との関係を示す図であり、図2と同一のものには同一の符号を付してある。図5において、FD204には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データが格納されている。
【0034】
<印刷処理システムにおけるソフトウエア構成例>
ここで、本実施形態における用語の技術的意味について説明しておく。
【0035】
複数のプリンタを1つのプリンタとして仮想的に束ねる仮想プリンタを「グループプリンタ」、束ねられるプリンタを「メンバプリンタ」とよぶ。また、グループプリンタおよびメンバプリンタに所定の出力ポートが対応付けられた仮想プリンタドライバおよびデバイスドライバ対応しているので、グループプリンタ及びメンバプリンタをドライバに対応して考えることもできる。
【0036】
グループプリンタを更に具体的に説明すると、アプリケーションからOSを介して生成される描画命令に基づいて中間形式ファイル(汎用印刷ファイル)を生成するためのデータを生成する仮想ドライバをグループプリンタドライバと呼ぶ。そして、後述するジョブ制御プリントサービスにより、先の中間形式のファイルに基づいてページ記述言語を生成させるべく各個別のプリンタドライバに印刷指示がなされるが、この個別の各プリンタドライバに対応するプリンタをメンバプリンタと呼ぶ。また、各メンバプリンタは最終的には特定のデバイスに対応することとなる。
【0037】
一方、本実施形態において、アプリケーションにおける印刷指示に応じてWindows(登録商標)等のOSを介して出力される描画命令(一般的にDDI或いはGDIと呼ばれている)あるいはEMF(EnhancedMetafi1eFormat:拡張メタファイル)を解釈しページ記述言語を生成しデバイスへ出力させるようなプリンタドライバを通常プリンタドライバ、このときのデバイスを通常デバイスと呼び、グループプリンタやメンバプリンタと区別する。なお、OSとしてはWindows(登録商標)に限定されるものではなく、描画命令を備えるOSであれば適用可能であることは言うまでもない。また、デバイスであるプリンタとは区別してプリンタドライバとプリンタ出力ポートとの組み合わせをプリンタと呼ぶこともある。例えば、後述する図7のLogicalPort(ジョブ制御ポートモニタ)とグループプリンタドライバとの組み合わせを指定することを、グループプリンタを指定すると呼ぶこととする。
【0038】
図6は、本システムのクライアントサーバモデルにおいて、Microsoft Word(登録商標)などの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。
【0039】
通常、印刷の指示がされると、アプリケーションプログラムは一連の描画命令をOSを介して生成させる。この生成された描画命令はプリンタドライバを経て所定の形式に変換された後、ウインドウズスプーラ(Windows(登録商標) Spooler)に渡される。Windows(登録商標) Spoolerは、ユーザがユーザインタフェースを介して選択し指示したポートモニタにプリントジョブデータを渡して、プリンタデバイスに送信させる手順をとる。本実施形態では、今述べた通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ621(以降、ジョブ制御ポートモニタと略記)を指定して印刷を指示する。
【0040】
アプリケーションプログラム601は一連の描画命令をOSを介して生成させる。OSを介して生成された描画命令を受け取ったグループプリンタドライバ603では、汎用印刷ファイルを生成するための汎用ドキュメントデータを生成し、プリンタデバイスへプリントジョブデータを送信する従来のポートモニタではなく、ジョブ制御ポートモニタ621にプリントジョブデータとして送信する。また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ621に送信される。
【0041】
ジョブ制御ポートモニタ621は、プリントジョブデータである汎用印刷ドキュメントデータをプリンタデバイス105に送信するのではなく、印刷ジョブ制御システム用プリントサービス622(以降、ジョブ制御プリントサービスと略記)に送信する。ジョブ制御プリントサービス622は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
【0042】
印刷ジョブ制御システム用プリントマネージャ623(以降、ジョブ制御プリントマネージャと略記)は、ユーザがジョブ制御プリントサービス622内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。ジョブ制御プリントマネージャ623は、ジョブ制御プリントサービス622のソフトウェアのインタフェース(API:Application Program Interface)を介して、ジョブ制御プリントサービス622と情報・指示をやり取りしている。更に詳細な処理としては、プリントマネージャー623がジョブ制御プリントサービス622に対してデバイスを指定してのイベントを発行し、ジョブ制御プリントサービス622は発行されたイベントに基づくデバイスのステータスを監視して、該監視に基づく結果をプリントマネージャー623に通知する。
【0043】
印刷ジョブ制御システム用サーバ630(以降、ジョブ制御サーバと略記)は、個々のクライアント102〜104上のジョブ制御プリントサービス622がプリンタデバイス105にプリントジョブデータを送信するタイミングを集中制御(スケジューリング)している。印刷ジョブ制御システム用マネージメントコンソール633(以降、ジョブ制御マネージメントコンソールと略記)は、ジョブ制御サーバ630が持つソフトウェアがアクセスするためのAPIを介して、ジョブ制御サーバ630と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【0044】
また、ジョブ制御サーバ630は、デバイス情報コントロールモジュール631を用いて各プリンタデバイス105と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアント102〜104側のジョブ制御プリントサービス622に渡すことができる。
【0045】
<印刷処理システムの動作例>
次に、本実施形態におけるグループプリンタドライバ603からの印刷について説明する。
【0046】
グループプリンタドライバ603は、アプリケーションプログラム601が生成した一連の描画コマンドをプリンタデバイスやOSの種類に依存しない汎用中間フォーマットデータ(前述の汎用ドキュメントデータに相当)に変換する。この汎用中間フォーマットデータは、Windows(登録商標) Spooler604からジョブ制御ポートモニタ621を経て(図6の(a))、ジョブ制御プリントサービス622に導かれる(図6の(b))。ここで、汎用中間フォーマットデータは、汎用印刷ファイルに構築される。この汎用印刷ファイルの構成については後述する。
【0047】
ジョブ制御プリントサービス622は、このプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し(図6の(c))、続いてPDLドライバ602がその描画コマンドをプリンタデバイス105が解釈可能なPDL形式のファイルにする。
【0048】
図6では、ジョブ制御プリントサービス622で、このプリントジョブに対してプリンタ側のエラーを検知して代行印刷を行う例を示しており、実線で示されるのは当初印刷を予定していたメンバジョブであり、破線については代行印刷のために生成されたのジョブを示している(図6の(c))。PDLドライバ602で生成されたPDLファイルはWindows(登録商標) Spooler604、ジョブ制御ポートモニタ621を経て(図6の(d))、再びジョブ制御プリントサービス622に渡される(図6の(e))。ジョブ制御プリントサービス622は、ジョブ制御サーバ630の指示に従ってPDLのプリントジョブデータをプリンタデバイス105に送信する(図6の(f))。
【0049】
ジョブ制御プリントサービス622は、汎用印刷ファイル中の印刷指示書の指示にしたがって、1つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図6中に示す(c)、(d)、(e)、(f)はそのような場合のプリントジョブデータの経路を示している。
【0050】
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合は、一般のアプリケーションとはグループプリンタドライバ603への情報の渡し方やグループプリンタドライバ603での処理内容が異なる。前述のように、一般のアプリケーションの場合には、アプリケーションはグループプリンタドライバ603に描画情報を渡す際、通常のプリンタドライバと同じようにWindows(登録商標)のGDI関数を呼び出し、グループプリンタドライバ603がそれに応じて汎用印刷ファイルを生成する。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ603に供給する。グループプリンタドライバ603は、必要に応じてあらかじめ設定された印刷方法に基づいて汎用印刷ファイル内部の印刷指示書を書き換えてWindows(登録商標)Spooler604に送る。
【0051】
<汎用印刷ファイルの構成例>
図8は、構築された汎用印刷ファイルの構成の一例を示した図である。
【0052】
本実施形態で使用される汎用印刷ファイルは、印刷指示部8a(前述の印刷指示書に相当)とドキュメントデータ部8bとからなる。印刷指示部8aは、ドキュメントの情報と印刷指示とを記述した部分である。また、ドキュメントデータ8bは、上に説明した如くアプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語やOSの種類に依存しない或は依存しにくい形式のデータフォーマットとなっている。
【0053】
アプリケーションデータを変換した後の変換後データ(汎用印刷データ)としては、印刷リソースデータとして利用可能でかつワードプロセッサアプリケーション等により再度編集可能な形式のデータであることが想定され、実質的な標準形式のうち、例えば、XML形式や、WINDOWS(登録商標)システムにより提供されるEMF形式、或はAdobe Systems IncorporatedによるPDF(Portable Document Format)形式やSVG形式などが汎用形式の汎用印刷データとして採用できる。
【0054】
また、図示はされてはいないが、汎用印刷ファイルには、各メンバプリンタに対応したDEVMODEも含まれているものとする。該DEVMODEには、後述の図12にて詳しく説明する共通設定項目及び拡張設定項目の双方が含まれるものとする。
【0055】
更に詳細に説明すると、印刷指示部8aは、ヘッダ部801、ページ情報部802、ドキュメント属性部803、印刷体裁指示部804、出力方法指定部805、メンバプリンタ数806、メンバプリンタドライバ名807などから構成されている。
【0056】
ヘッダ部801は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部802は、ドキュメントデータ部8bのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【0057】
印刷体裁指示部804は、グループプリンタドライバのUIや、メンバプリンタの個別のUIを介して設定された印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報(N−UPや製本印刷など)、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。尚、ステイプル、パンチ指示については、Page単位で指定(サブセットステイプ等)されることもある。尚、各メンバプリンタの個別のUIを介して設定された内容は印刷指示部804に反映されると共に、各メンバプリンタに対応するDEVMODEにも反映されて保存される。
【0058】
出力方法指定部805は、出力方法として、分散印刷、同報印刷、代行印刷、通常印刷(代行しない印刷)などの出力方法に関する情報を格納する部分である。この出力方法指定部805に代行印刷が設定されている場合には、更に優先順位情報(第一候補、第二候補・・・)を付したプリンタ情報が含まれる。これら様々な出力方法の何れかは後述する図9のプリンタリスト1002を介して選択された仮想プリンタの種別や、図18の12-aのコンボボックスを介して設定された出力方法に対応する。
【0059】
メンバプリンタ数806は、グループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名807は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名807は、前述のメンバプリンタ数806の数だけの格納エリアを持っている。
【0060】
前述の図6で説明したジョブ制御プリントサービス622では、汎用印刷中間フォーマットデータより汎用印刷ファイルを生成する際、グループプリンタドライバのGUI上での設定を印刷指示部8aへ記憶する。更に、グループプリンタドライバから受け取った汎用印刷中間フォーマットデータを、汎用印刷ファイルのドキュメントデータ部8bに記録する処理も、ジョブ制御プリントサービス622により実行される。
【0061】
<Windows(登録商標) Print Systemと印刷ジョブ制御システムの関係例>
次に、図7でWindows(登録商標)が提供するPrintSystemと印刷ジョブ制御システムとにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。ここで、図6と同じ機能は同じ参照番号を付与しており、その機能については詳説しない。
【0062】
図7中では、印刷ジョブ制御システム700は、制御プログラムが動作するプリントサーバ101とクライアント102〜104の物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、プリントサーバが管理している出力ポート(Output Port)711は、クライアントのジョブ制御プリントサービス622のプロキシ出力ポート(Proxy Output Port)712とそれぞれ関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポートの全てを統一的に管理している。本実施形態では、実際のプリントジョブデータは各々のクライアントのプロキシ出力ポート712に保持される。
【0063】
ジョブ制御サーバ630は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス622に対して印刷ジョブの送信指示のみを行う。その指示に応じて、クライアントのジョブ制御プリントサービス622はプリントジョブデータをプリントデバイス105に送信する。
【0064】
次に、印刷ジョブ制御システム700が、代行印刷といった付加価値印刷を行う場合の処理を説明する。
【0065】
印刷ジョブ制御システム700が、代行印刷といった付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション601は、グループプリンタドライバ603に割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス622は、グループプリンタドライバ603によって処理された汎用印刷中間フォーマットデータをジョブ制御ポートモニタ621を介して受け取る。ジョブ制御プリントサービス622は、この汎用印刷中間フォーマットデータより汎用印刷ファイルを構築し(図7の715)、先に説明した印刷指示部8aの指示内容に従う印刷指示をデスプーラ(Despooler)701に対して行う。そして、Despooler701を介してPDLドライバが割り当てられた別のプリンタにジョブ(メンバジョブ)を発行して、印刷を行わせる。
【0066】
このとき、Despooler701は、ジョブ制御プリントサービス622の汎用印刷ファイルの印刷指示部8aの解釈に基づく指示に応じて、ドキュメントデータ部8bのドキュメントデータを加工してWindows(登録商標)のGDIに変換し、プリンタドライバに対して印刷指示を行い、印刷ジョブを発行する。例えば、印刷体裁指定部804に2−UPに相当する指示が記録されていた場合、用紙1枚に2ページ分のドキュメントデータを縮小レイアウトするようにDEVMODEを介してメンバプリンタに対して指示する。また、印刷体裁指定部804にステイプル指示がある場合にはDEVMODEを介してステイプルの指示を行う。また、代行印刷時には、印刷指示部8aに記述されている代行先メンバプリンタにジョブを発行する。尚、2−UP等の縮小レイアウトを処理する場合に、Despooler自身が印刷体裁指定部804の内容に基づき縮小レイアウトするようにして、メンバプリンタにはDEVMODEを介して1−UPを指示するようにしても良い。
【0067】
また、Despooler701はメンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、メンバプリンタのDEVMODEを作成する必要があるが、このDEVMODEは印刷指示部8a或は各メンバプリンタに対応して保存されたDEVMODEに記載された内容を適宜各メンバプリンタDEVMODEに反映させて生成する。
【0068】
クライアント側のジョブ制御プリントサービス622は、PDLドライバ602によってレンダリングされたそれぞれのメンバジョブのPDLデータをジョブ制御ポートモニタ621を介して受け取り、受け取ったジョブ(PDLデータ)に関する情報をプリントサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー(Proxy Output Port)712で一時保持する。その後、ジョブ制御サーバ630からの送信指示を受けた後にプリンタデバイス105に送信する。
【0069】
<グループプリンタドライバの制御処理>
次に、本発明の実施形態における、印刷ジョブ制御システムのためのグループプリンタドライバ603の制御について説明する。
【0070】
図9は、所定のアプリケーションから印刷設定を行うための指示がなされた場合にディスプレイ207に表示されるグラフィカルユーザインタフェース(以下「GUI」、または「UI」という。)の一例を示す。
【0071】
プリンタリスト1002には複数のプリンタ名が示されており、リスト中のプリンタは仮想プリンタ(グループプリンタ)1001や、通常のプリンタ(単独のプリンタドライバ及びデバイスに対応する)1003の双方が含まれている。
【0072】
そして、プロパティボタン1004が押下(マウスによりクリック)されると現在のプリンタリスト1002で選択されているプリンタのプロパティが表示される。図9の場合は代行印刷の出力方法に対応したグループプリンタAが選択されている。
【0073】
図10は、実施形態におけるUI表示処理を示すフローチャートである。このフローチャートに対応するプログラムはハードディスク(HD)205等の所定の記憶媒体に記憶された制御プログラムに含まれ、RAM202にロードされCPU200によって実行されるものである。
【0074】
まず、ステップS101において、デフォルトあるいは図9のようなUIを介して選択されたグループプリンタの出力方法のチェックが行われる。このチェックは図8の出力方法指定部805を参照することで実現される。
【0075】
ここで出力方法として代行印刷に対応するグループプリンタが選択されていたら、ステップS103に進み、それ以外の出力方法(例えば、分散印刷、同報印刷、カラーモノクロ印刷など)だったら、ステップS102へ進む。ステップS102では、指定された出力方法が代行印刷以外の分散印刷や同報印刷であることが特定され特定された出力方法に対応するUI制御処理が行われる。ここで行われるUI制御処理には論理和や論理積などの所定の規則に従った項目別の競合解消処理であるコンフリクト処理および表示処理を含む。これについては後ほど図11乃至15を用いて詳しく説明する。
【0076】
ステップS105は、ステップS102で行ったコンフリクト処理の結果に基づき、グループプリンタドライバUI或は後述の図19に示すようなUI表示を行い、ユーザの指示に応じた各項目の設定を行うステップである。ステップS102でのコンフリクト処理の結果、機能のないものについてはUI上で設定が行えないよう、該当する項目をグレーアウト表示もしくは非表示といったUI制御を行い、機能がある項目についてはUI制御を行わない。
【0077】
また、ステップS101で代行印刷に対応するグループプリンタを利用する指示が入力されていたら、上記したとおりステップS103に進む。ステップS103では、先に説明したグループプリンタドライバ603、或は、ジョブプリント制御サービス622が汎用ドキュメントデータを生成する際の設定項目を含むUIが表示される。ここでの設定項目には、例えば、グレイスケールで汎用ドキュメントデータを生成するか否かを指定する項目や、汎用ドキュメントデータの解像度を指定する項目や、汎用印刷ファイルに汎用ドキュメントデータを含める際の圧縮方式(jpeg圧縮方式やzip圧縮方式等)を指定する項目が含まれている。また、図18中に含まれるような、代行印刷時のメンバプリンタの優先順位を変更設定するための設定項目や、メンバプリンタの追加/削除(12-b)などの複数のメンバプリンタを対象とする仮想ジョブに特有の設定項目が含まれ、ステップS104にて提供されるUIを補足する。
【0078】
一方、用紙サイズやステイプル指示などの設定項目は後述のステップS104にて提供されるUIにて設定可能となるように制御が施されるので、ステップS103において提供されるUIからは設定が無効になるよに制限が施される。
【0079】
次にステップS104に進み、代行印刷における優先順位が最優先の代表メンバプリンタが特定され、該代表メンバプリンタのUIが表示部に表示される。
【0080】
ここで提供されるUIは代表メンバプリンタのために予め容易されたプリンタドライバUIを流用したものに相当し、ここでのUIは流用される以外にも特定のプリンタデバイスを指定しての処理において、アプリケーションデータからPDLデータを生成するために利用されたりもする。
【0081】
尚、ステップS103とステップS104の処理順序は特に限定されるものではなく、フローチャートに示される順序を逆にしても良いし、平行して処理させても良い。
【0082】
そして、ステップS103及びステップS104の処理に基づくUIがステップS105においてクライアントの表示部に表示される。ここで、表示されたUIから設定された設定情報は、図8の印刷指示部8aや、各メンバプリンタに対応するDEVMODEに反映され印刷処理に利用される。
【0083】
尚、代表メンバプリンタが機能制御不可なメンバプリンタの場合には、印刷指示部8aには、共通設定項目のみが反映され、拡張設定項目はDEVMODEに反映されることとなり、拡張設定項目については印刷指示の際にはDEVMODEの設定情報がDesplooerにより利用される。
【0084】
このように代行印刷における優先順位が第一候補プリンタのUIをダイレクトに提供することにより、ステップS1803などの能力取得の処理に伴うコンフリクト処理を行わないことでUI表示を高速に行うことができると共に、第一候補のメンバプリンタの持つ機能を最大限に活用した詳細設定をすることが可能となる。
【0085】
S107は、グループプリンタドライバUI上に設定項目がない項目について、メンバプリンタのUIを開いて詳細を設定させるステップである。
【0086】
なお、メンバプリンタドライバUIを開いた場合、グループプリンタドライバで設定可能な項目についても設定可能となり同一機能が両者に設定された場合に処理が二重にかかってしまうため、次に示すUI制御を施し表示を行う。
【0087】
(1)メンバプリンタが“機能制御可能”なドライバである場合、グループプリンタドライバUI上の設定項目と競合する項目については、メンバプリンタドライバUIでの設定が行えないように、項目をグレーアウト表示もしくは非表示としてUI制御する。
【0088】
(2)メンバプリンタが“機能制御不可”なドライバである場合、共通設定項目についてはメンバプリンタドライバで設定された設定でUI表示する。UI表示後、メンバプリンタドライバUI上でその項目について変更がなされた場合、ドライバUIを閉じるステップでグループプリンタドライバで設定された設定項目の情報を対応するメンバプリンタドライバの共通設定項目に上書きし、メンバプリンタUI上での設定変更を許さない。なお、機能制御可能/不可能については後ほど詳しく説明する。
【0089】
以下、ステップS102におけるUI制御処理について、図11〜16を用いて説明する。
【0090】
図11は、ステップS102におけるUI制御処理の詳細を示すフローチャートである。
【0091】
まず、ステップS1801で、OSを介してUI表示要求を認識すると、一連のUI制御処理を開始する。
【0092】
次に、ステップS1802で、印刷ジョブ制御システムAPIを用いて、グループプリンタドライバを構成するメンバプリンタドライバの識別IDを問い合わせ、獲得する。ここで、グループプリンタを構成する全てのメンバプリンタドライバとは、グループプリンタドライバに対応して予め登録された各プリンタドライバを指す。また、メンバプリンタドライバの識別IDとしては、メンバプリンタドライバが登録される際に割り当てられた名称や、登録されたメンバプリンタドライバに対応してグループプリンタドライバのプログラムが割り当てた識別IDなどに相当させることができる。
【0093】
次に、ステップS1803で、ステップS1802で獲得した各メンバプリンタドライバの識別IDに対応するメンバプリンタドライバの能力を取得する。具体的には、グループプリンタを構成する全てのメンバプリンタドライバに対して、ドライバの能力の取得がドライバ設定情報の拡張設定項目まで可能で、ドライバUI制御が可能な“機能制御可能なドライバ”か、または、それ以外の“機能制御不可なドライバ”かを読み出して判定する。さらに具体的には、グループプリンタドライバによって、識別IDに対応する各メンバプリンタドライバに問合せが行われ、問い合わせに対するメンバプリンタドライバからの応答に応じて“機能制御可能なドライバ”または“機能制御不可なドライバ”の機能制御可否の情報についての判定が行われる。なお、拡張設定項目については後ほど詳しく説明する。
【0094】
続くステップS1804では、ステップS1803にて読み出された機能制御可否の情報より、メンバプリンタがどのような種別の各メンバプリンタドライバから構成されるかの判定を行う。
【0095】
ここで、ステップS1803にて説明に用いた機能制御可能/不可能について詳しく説明すると、機能制御可能とは、例えば、図7中のジョブ制御プリントサービス622のソフトウェアモジュールから、拡張設定項目である印刷設定(例えば、製本とじ代(図12B参照))の指示が行えたり、所定の設定項目をグレーアウト表示制御させることができることをいう。逆に、そのようなことができないことを機能制御不可という。具体的には、プリンタドライバの拡張設定項目を設定したり、グレーアウト表示などの表示制御を行うにはプリンタドライバの制御用に開発されたSDK(Software Development Kit)を使用する必要があり、プリンタドライバのSDKをシステムに組み込めないような場合などは機能制御できないこととなる。例えば、他のベンダーが設計したプリンタドライバなどがこの制御機能不可のメンバプリンタに相当する。
【0096】
説明を図11のフローチャートに戻す。
【0097】
ステップS1804の判定結果により、メンバプリンタ中に“機能制御可能”なドライバが一台でも含まれている場合には、S1805へ処理を進め、機能制御不可なドライバのみからメンバプリンタドライバが構成されている場合には、ステップS1806へ処理が進められる。ステップS1805およびS1806の詳細はそれぞれ、図13および図14を用いて後ほど詳しく説明する。
【0098】
そして任意のタイミングにて、設定終了ボタンが押下されるとS1807の設定終了処理のステップでYesと判定され、ステップS1802に戻る。
【0099】
ステップS1808では、グループプリンタドライバUIを介して設定された項目が、各メンバプリンタドライバの設定項目に矛盾がないかどうかをチェックする(UIコンフリクトチェック)。たとえば、プリンタ1ではA4用紙にステイプル可能な位置は用紙左上のみであり、プリンタ2ではA4用紙にステイプル可能な位置は用紙左下のみであるといったように、プリンタにはデバイスのもつ機能に密接に関連した項目がある。本ステップでは、設定機能上ありえない組み合わせについてのコンフリクトチェックの他に、各メンバプリンタドライバに対して、グループプリンタドライバUI上で設定した項目が、各メンバプリンタドライバの設定項目として反映可能かどうかを、各メンバプリンタドライバを対象にチェックが行われる。
【0100】
ステップS1809では、コンフリクトチェックの結果を判定し、グループプリンタドライバUI上で設定した設定項目が、全てのメンバプリンタで妥当であった場合には、ステップS1812に処理を進めグループプリンタドライバUIの表示を終了する。
【0101】
一方、コンフリクトチェック結果の判定で設定項目にコンフリクトが発生する項目があると判定された場合には、ステップS1810へ処理を進め、「グループプリンタドライバUI上で設定項目を再設定するか、もしくは、現状の設定項目で印刷処理を行うか」といったメッセージと共に、再設定、強行ボタンを表示させる。ステップS1811では、再設定、強行ボタンのどちらが押されたかを判定し、再設定ボタンが押されたと判定された場合には、ステップS1804の処理に戻り、再度、表示制御処理が実行される。
【0102】
また、強行ボタンが押されたと判定された場合には、ステップS1812に処理を進めグループプリンタドライバUIの表示に関する一連の処理を終了し、再び一連の処理を繰り返す処理へ移行する。
【0103】
ここで、図12Aに、メンバプリンタの構成と設定可能項目との対応関係の例を示す。この例によれば、メンバプリンタ中に機能制御可能なドライバが一台もない場合に表示されるUI(ステップS1806)からは図12Bに例示されるような共通設定項目だけが設定可能であり、メンバプリンタ中に機能制御可能なドライバが一台でも含まれている場合に表示されるUI(ステップS1805)からは共通設定項目の他に拡張設定項目が設定可能である。
【0104】
図13は、ステップS1805の詳細な処理を示すフローチャートである。
【0105】
まず、ステップS2001は、全てのメンバプリンタに対してステップS2002、S2004の各ステップに示される機能のコンフリクトチェックを行ったかどうかを判定するステップであり、全てのメンバプリンタのチェックが終了している場合はステップS2005へ進み、終了していない場合にはステップS2002へ進む。
【0106】
ステップS2002は、共通設定項目に関して論理和/論理積などのコンフリクト処理を行うステップであり、各メンバプリンタドライバの個々の共通設定項目に関する能力を問い合わせて、機能のコンフリクト処理を行い、その結果に基づきグループプリンタドライバUIで表示する項目を選択する制御を行う。本ステップでは、全てのメンバプリンタを対象にコンフリクトチェックを行う。
【0107】
ステップS2003は、メンバプリンタの判定を行うステップであり、機能制御可能であればステップS2004へ進む。また、機能制御不可であれば、ステップS2001へ戻る。ステップS2004は、機能制御可能なプリンタに対して拡張設定項目の論理和/論理積などのコンフリクト処理を行うステップである。本ステップを終了するとステップS2001へ戻る。
【0108】
ステップS2005では、ステップS2002,ステップS2004で行われたコンフリクト処理の結果に基づきグループプリンタドライバUIに表示される項目を抽出し、抽出した項目に基づきUI表示を行う。ユーザは表示された項目に従って、各メンバプリンタドライバ間で矛盾が生じることのない設定を容易に行うことができるようになる。
【0109】
なお、上記したコンフリクト処理の結果、いずれかのメンバプリンタドライバが有していない機能については、グループプリンタドライバUIにて設定が行えないように制御される。
【0110】
ステップS2006では、ステップS2002またはステップS2004でコンフリクト対象とならなかった項目の設定を行うために、グループプリンタドライバを構成するいずれかのメンバプリンタのUIを開き詳細に設定させるよう指示がなされたか否かを判断する処理が行われる。
【0111】
グループプリンタドライバ(グループプリンタ)を構成するいずれかのメンバプリンタドライバ(メンバプリンタ)が指定されたと判断されると、処理をステップS2007に移行させる。ステップS2007の処理の詳細は図14にて説明する。なお、図13におけるステップS2006、S2007はステップS2005の後に実行するように説明しているが、任意のタイミングで実行させるようにしてもよい。
【0112】
図14は、ステップS2007のより詳細な処理内容を示すフローチャートである。
【0113】
まず、ステップS2201で、ステップS2006マウス等を介して指定されたメンバプリンタドライバが機能制御可能か否かの判定を行う。機能制御可能か否かについては上のステップS1803にて説明した通りである。
【0114】
そして、機能制御可能と判断された場合には、ステップS2202にて、共通設定項目および拡張設定項目を含めた項目の表示制御を行う。ここでは、図10のステップS107におけるフローチャートにおいて説明した、(1)の規則と同様の規則に従い表示制御処理が施される。
【0115】
また、ステップS2201で、指定されたメンバプリンタドライバが機能制御不可なものと判定された場合には、図10のフローチャートにおいて説明した(2)で示した規則に則して、メンバプリンタドライバの共通設定項目UIに関して表示制御がなされる。
【0116】
図15は、図11のステップS1806の詳細を示すフローチャートである。
【0117】
まず、ステップS2101で、各メンバプリンタドライバの個々の共通設定項目に関する能力の問い合わせを行い、各項目の機能について、上に説明したような論理和/論理積などのコンフリクト処理を実行する。そして、その結果に基づきグループプリンタドライバUIにて設定可能とする項目の抽出を行い、UIに表示する設定項目を決定する。
【0118】
次に、ステップS2102で、ステップS2101で行われたコンフリクト処理の結果に基づき抽出された設定項目を基にグループプリンタドライバUIの表示を行う。ステップS2101でのコンフリクト処理の結果、各メンバプリンタに共通してない機能の項目、および、拡張設定項目と判定された項目については、グループプリンタドライバのUI上で設定が行えないよう、項目をグレーアウト表示もしくは非表示となるように制御が行われる。
【0119】
ステップS2103では、マウスなどのポインティングデバイスを介してメンバプリンタドライバが指定されたか否かの判定を行う。このメンバプリンタドライバの指定は、ステップS2102で表示されなかった拡張設定項目または各メンバプリンタが持つ固有の設定項目を設定するために、メンバプリンタドライバのUIを開き、詳細設定を行うためのものに対応する。メンバプリンタドライバが指定された場合にはステップS2104に進む。
【0120】
ステップS2104では、ステップS2103にて指定されたメンバプリンタドライバのUIを個別に表示し、表示したUIを介して入力された設定項目に対する設定指示に応じて詳細設定を行う。
【0121】
このステップS2104においては、対象となるメンバプリンタドライバが機能制御不可なものなので、グループプリンタUIを介して設定された共通設定項目が反映される。また、機能制御不可なプリンタであっても一部の項目において表示制御可能であれば、その項目についてはグループプリンタUIを介しての設定と重複して設定されないようにグレーアウト等の禁則処理が施される。
【0122】
また、ステップS2104において、個別に表示されたメンバプリンタUIを介して、グループプリンタでは禁則処理が施されていた拡張設定項目についての設定を行うことができ、ここで、設定された内容は、先に説明した印刷指示部8aに反映されることとなる。
【0123】
なお、上に説明したステップS2103、S2104の各ステップの処理は、ステップS2102の後に行うように説明しているが、任意のタイミングにて実行させるようにしてもよい。
【0124】
図16は、図11,13,14,15に示したフローチャートに基づき、第1のUI提供ステップとして表示されるグループプリンタドライバUIの表示例を示す図である。これは、「仕上げ」タブ160が選択されたことでグループプリンタドライバUIが印刷仕上げに関する設定画面を提供している例である。この例の場合、コンフリクト処理の結果、161,162,163の各項目が、このグループプリンタUIからは設定ができない項目としてグレーアウト表示され、選択不可の状態にされる。もちろん、グレーアウト表示ではなく、単に非表示とするようにしてもよい。一方、コンフリクト処理の結果、各メンバプリンタドライバが共通して備える機能に対応する設定項目についてはグレーアウト表示、もしくは非表示などの制御がなされず、選択指示可能な形態でユーザインタフェースに反映される。
【0125】
このようにして、グループプリンタドライバUIからは、所定の印刷処理に関与する各プリンタのすべてに共通する項目や所定のプリンタの機能に合わせた項目の印刷設定を効率良く行うことができる。また、所定の印刷処理(例えば代行印刷)に関与する各プリンタ間で共通しない機能については、第1のUI提供ステップとして表示されるグループプリンタドライバUIからは設定不可/無効となるよう制御される。
【0126】
次に、実施形態におけるグループプリンタおよびメンバプリンタの登録処理について説明する。
【0127】
本実施形態では、グループプリンタドライバのUIを開くことにより、出力方法として例えば「割合分散印刷」、「カラー・モノクロ分散印刷」、「同報印刷」、「代行印刷」が選択でき、それぞれに対してメンバプリンタドライバの指定および設定を行うことにより、1つのプリンタドライバで複数の印刷指示が可能となるものである。
【0128】
図17は、実施形態におけるグループプリンタドライバUIを用いた操作処理を示すフローチャートである。ここでは一例として、「代行印刷」が選択される場合について説明する。
【0129】
まず、ステップS111において、出力方法を指定する。前述のとおり、出力方法としては、「割合分散印刷」、「カラー・モノクロ分散印刷」、「同報印刷」、「代行印刷」が選択可能である。
【0130】
次に、ステップS112に進み、それぞれの出力方法に適したメンバプリンタの登録指定を行う。
【0131】
次に、ステップS113において、出力方法として代行印刷が選択されているかどうか判定し、選択されていなければ、そのままステップS115に進む。ここで、出力方法として代行印刷が選択されていた場合には、ステップS114に進み、第一候補プリンタドライバの出力方法の詳細設定を行う。ステップS115は、グループプリンドライバに対して詳細設定を行うステップである。
【0132】
次に、ステップS116で、ステップS114、S115で設定した内容を登録する。この設定項目の登録は、図8で説明した汎用印刷ファイルに記録することで実現される。例えば、上記設定項目は、本汎用印刷ファイルの印刷指示部8a中、特に、ステップS111の設定項目においては出力方法指定部805を利用して記録する。これら記録された各項目は各種UI表示時のデフォルト設定値として利用される。
【0133】
また、ステップS112の設定項目においては、メンバプリンタ数およびメンバプリンタドライバ名はメンバプリンタドライバ情報設定部を利用して記録する。また、ステップS114、S115の設定項目においては、グループプリンタドライバ設定情報部を利用して記録する。
【0134】
上記の説明は、「代行印刷」が選択される場合を前提にしたが、その他の出力方法が選択される場合も同様な操作手順である。
【0135】
次に、図18、19を用いて、本実施形態におけるUIについて具体的に説明する。
【0136】
図18は、実施形態におけるグループプリンタドライバUI12の一例を示す図である。これは、「出力設定」タブ161が選択されたことでグループプリンタドライバUIが出力方法に関する設定画面を提供している例である。同図において、12−aは、前述の図9に対応するものとは別の出力方法を選択するためのコンボボックスである。図9を介しての選択と共に、ステップS101にも対応する。図18においては、出力方法として代行が選択されている。
【0137】
12−bは、メンバプリンタの追加/削除を行うための登録用のUIを開くためのボタンである。
【0138】
12−cは、メンバプリンタを登録したあと、そのメンバプリンタの一覧を表示するリストボックスである。この一覧表示の内容は前述の12−aで指定した出力方法に従って、その表示内容も変更される。この中で、12−fは前述の図12のS112で説明した、登録したメンバプリンタを出力対象のプリンタより、一時的にはずしたり追加したりするチェックボックスである。このチェックボックスのチェックがありのときは、そのメンバプリンタを対象プリンタとみなし、チェックなしのときはそのメンバプリンタを一時的に対象プリンタからはずすことを意味している。すなわち、前述のステップS112で対象プリンタを選択したが、改めてこのチェックボックスで、選択された対象プリンタを一時的に対象外にすることが可能となる。
【0139】
また、図示の状態では出力方法として代行印刷が選択されているため(12−a)、12−dのボタンによって、メンバプリンタの印刷の際に使用される優先順位(第一候補、第二候補、第三候補・・の順番)を変更することができる。
【0140】
また、12−eは、メンバプリンタドライバのプロパティ画面を開くためのボタンである。対象となるメンバプリンタは12−cのリスト中から選択することができ、そのメンバプリンタについてのプロパティを設定をすることができる。
【0141】
図18のUI上で設定された内容は、図8の汎用印刷ファイルに記録される。たとえば、12−aで設定された出力方法は、図8の805に記録される。また、12−bでメンバプリンタの追加や削除を行った場合、メンバプリンタの数、メンバプリンタ名はそれぞれ、図8の806,807に記録される。
【0142】
このようにして、グループプリンタドライバUIからは、図16を用いて説明したとおり所定の印刷処理に関与する各プリンタのすべてに共通する項目の印刷設定を行うことができる他、所定の印刷処理(例えば代行印刷)のために、各プリンタの優先順位を設定することで当該複数のプリンタから一のプリンタを指定することができる。
【0143】
図19は、図10のステップS103、S104の処理に従いグループプリンタドライバUIとメンバプリンタドライバUIとを同時含ませて表示させた例を示す図である。
【0144】
UI16は、グループプリンタドライバUI12における12−c、12−dにより優先度第1位として設定されたプリンタドライバのUIに対応する。UI16を介して設定された内容は、印刷指示部8aを含む図8の各対応項目に反映される。また、代表メンバプリンタに対応するDEVMODEにも反映され、後述するDespooler701の各メンバのドライバへの印刷指示の際に利用される。
【0145】
また、UI12は、仮想ジョブ(分散印刷、同報印刷など)における代行印刷時の優先順位等の複数のメンバプリンタの構成を設定する為の項目など、仮想ジョブ設定ならでわの設定項目を含んでいる。仮想ジョブの設定を行うにあたって、UI16を補助する機能を含んでいる。また、図19のUI12中では示されてはいないが、設定項目は図19中の項目に限定されるものではなく、「グレイスケール」、「解像度」、「圧縮方式」などの仮想ジョブ(分散印刷、代行印刷など)ならでわの設定項目を適宜含めるようにすることも想定される。無論、仮想ジョブならでわの設定項目は、図19におけるUI12の「出力設定」と同じシートに含めても良いし、別シートに含めるようにしても良い。
【0146】
このように中間データを作成するための設定項目や、仮想ジョブ(分散印刷、同報印刷など)に複数のメンバプリンタの構成を設定する為の設定項目を含ませたUI12だけでなく、グループプリンタドライバUI12における12−c、12−dにより優先度第1位として設定されたプリンタドライバの個別のUI16が、第2のUI提供ステップとして同一画面上に並行して表示される。これにより、優先度第1位のプリンタについての詳細な印刷設定をわざわざ他のボタンの押下で呼び出すことなく容易に表示させることができる。
【0147】
尚、図19では、UI12とUI16とを別々に表示させているが、代行印刷の出力方法に対応した仮想プリンタが指示されたことに応じて代表となる優先順位1位のメンバプリンタに対応するUIに、複数のメンバプリンタの構成を設定する設定項目や、中間データを作成する為の設定項目を含めるようにしても良い。
【0148】
従来のグループドライバ設定UI上ではグループプリンタドライバ上で設定可能な項目(すなわち、共通設定項目)しかできず、様々な出力方法の形態があるにも関わらず、夫々の仮想出力方法における特性を加味した設定環境は提供されていなかった。さらに、従来におけるグループプリンタドライバ設定UI上では。共通設定項目に含まれない機能については、例えばマウスで、OSにより提供される環境設定UIを呼び出し、その環境設定UIからプリンタ設定UI、さらにそのプリンタ設定UIから印刷設定UIを辿ったうえで別途設定しなければならないの一般的であった。
【0149】
これに対し、図19に示すような実施形態におけるグループプリンタドライバUI上では、例えば、エラーが稀にしか起こらず、ほとんどの場合で使用される優先順位第1位のメンバプリンタの詳細設定を、グループプリンタドライバに対する設定と平行して行うことが可能なる。一方、代行印刷以外の分散印刷、同報印刷などの出力方法に対しては図11、13、14、15に示したフローにより効率よく設定を行うことができるようになった。
【0150】
以上説明したように、本実施形態によれば、エラー代行印刷システムにおいて、グループプリンタドライバUI上で、エラー代行印刷時の優先順位第一位のメンバプリンタに対する印刷設定を容易に行うことが可能となった。それにより、例えばエラーが稀にしか起こらない、ほとんどの場合に使用されるような優先度第一位のプリンタがわかっているとき、その詳細な設定を、わざわざそのプリンタの印刷設定画面を開くための操作を行わずとも、グループプリンタUI上で手軽にできるようになった。
【0151】
(他の実施形態)
以上、本発明の実施形態を詳述したが、本発明は、例えばシステム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0152】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(図10,11,13〜15に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【0153】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0154】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0155】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
【0156】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0157】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0158】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0159】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0160】
【発明の効果】
本発明によれば、複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができる。
【図面の簡単な説明】
【図1】実施形態における印刷処理システムの構成を示す図である。
【図2】実施形態における印刷処理システムにおけるコンピュータの構成を示すブロック図である。
【図3】実施形態におけるコンピュータのRAMのメモリマップの一例を示す図である。
【図4】実施形態におけるFDのメモリマップの一例を示す図である。
【図5】実施形態におけるコンピュータのFDドライブに挿入されるFDとの関係を示す図である。
【図6】プリント制御モジュールの構成を示す図である。
【図7】実施形態における印刷制御系の構成を説明するための図である。
【図8】汎用印刷ファイルの構造例を示す図である。
【図9】実施形態における印刷設定用のUIの一例を示す図である。
【図10】実施形態におけるUI表示処理を示すフローチャートである。
【図11】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図12A】実施形態におけるメンバプリンタの構成と設定可能項目との対応関係を示す図である。
【図12B】共通設定項目および拡張設定項目それぞれの具体的な設定項目の例を示す図である。
【図13】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図14】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図15】実施形態におけるUI制御処理の詳細を示すフローチャートである。
【図16】実施形態におけるグループプリンタドライバUIの表示例を示す図である。
【図17】実施形態におけるグループプリンタドライバUIを用いた操作処理を示すフローチャートである。
【図18】実施形態におけるグループプリンタドライバUIの一例を示す図である。
【図19】実施形態におけるグループプリンタドライバUIとメンバプリンタドライバUIとを同時表示させた例を示す図である。
Claims (1)
- 複数のメンバプリンタを利用して所定の出力方法を実行可能な印刷制御を行うためのコンピュータプログラムであって、
第1出力方法に対応した仮想プリンタが指示されることに応じて前記第1出力方法の仮想プリンタに関連した複数のメンバプリンタの機能に基づく第1ユーザインタフェースを起動する起動ステップを有し、
前記起動ステップは、第2出力方法に対応した仮想プリンタが指示されたことに応じて代表となる代表メンバプリンタに対応する第2ユーザインタフェースを起動する
ことを特徴とするコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002378677A JP2004213111A (ja) | 2002-12-26 | 2002-12-26 | コンピュータプログラム |
US10/733,296 US7852497B2 (en) | 2002-12-26 | 2003-12-12 | Method of controlling printing control apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002378677A JP2004213111A (ja) | 2002-12-26 | 2002-12-26 | コンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004213111A true JP2004213111A (ja) | 2004-07-29 |
Family
ID=32708344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002378677A Withdrawn JP2004213111A (ja) | 2002-12-26 | 2002-12-26 | コンピュータプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7852497B2 (ja) |
JP (1) | JP2004213111A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164253A (ja) * | 2004-11-15 | 2006-06-22 | Canon Inc | データ処理装置および設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体および制御プログラム |
JP2006330950A (ja) * | 2005-05-25 | 2006-12-07 | Oki Data Corp | 印刷システム及び印刷装置 |
JP2008210371A (ja) * | 2007-02-01 | 2008-09-11 | Sharp Corp | 情報処理システム |
JP2008269058A (ja) * | 2007-04-17 | 2008-11-06 | Canon Inc | 情報処理装置及びその制御方法、並びにプログラム |
JP2010231266A (ja) * | 2009-03-25 | 2010-10-14 | Obic Co Ltd | 印刷設定管理装置、印刷設定管理方法および印刷設定管理プログラム |
JP2014215945A (ja) * | 2013-04-30 | 2014-11-17 | 株式会社リコー | プログラム、情報処理装置及び印刷システム |
JP2015215825A (ja) * | 2014-05-13 | 2015-12-03 | 株式会社リコー | 出力システム、端末装置、プログラム及び出力方法 |
JP2016130970A (ja) * | 2015-01-14 | 2016-07-21 | キヤノン株式会社 | 情報処理装置とその制御方法およびプログラム |
JP2018014135A (ja) * | 2017-10-12 | 2018-01-25 | 株式会社リコー | 出力システム、端末装置、プログラム及び出力方法 |
US10956095B2 (en) | 2018-09-14 | 2021-03-23 | Canon Kabushiki Kaisha | Server system that improves availability of a plurality of printers, print controller, information processing apparatus, and print service system |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3962679B2 (ja) * | 2002-12-05 | 2007-08-22 | キヤノン株式会社 | 印刷制御方法及び装置 |
US7036047B1 (en) * | 2003-03-27 | 2006-04-25 | Ricoh Company, Ltd. | Approach for resolving printer driver incompatibility problems |
JP4387811B2 (ja) * | 2004-01-22 | 2009-12-24 | キヤノン株式会社 | 登録方法、登録装置、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体 |
US20050225795A1 (en) * | 2004-04-12 | 2005-10-13 | Jayasimha Nuggehalli | Automatic customization of printer drivers |
US20050286080A1 (en) * | 2004-06-29 | 2005-12-29 | Samsung Electronics Co., Ltd. | Apparatus and method of transmitting document |
JP4457797B2 (ja) * | 2004-07-27 | 2010-04-28 | ブラザー工業株式会社 | 画像形成装置設定プログラム、画像形成装置設定装置、画像読取装置設定プログラム、および画像読取装置設定装置 |
JP4708906B2 (ja) * | 2004-08-31 | 2011-06-22 | キヤノン株式会社 | 情報処理装置及びその制御方法、制御プログラム |
JP4137861B2 (ja) * | 2004-10-01 | 2008-08-20 | シャープ株式会社 | インターフェース |
US8144348B2 (en) | 2004-11-01 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Systems and methods for managing failed print jobs |
US20060132813A1 (en) * | 2004-12-16 | 2006-06-22 | Kabushiki Kaisha Toshiba | Program and displaying method for printer driver |
JP2006227833A (ja) * | 2005-02-16 | 2006-08-31 | Canon Inc | ジョブ割当制御装置及び方法 |
US7593125B2 (en) * | 2005-05-06 | 2009-09-22 | Kyocera Mita Corporation | Print job spooling and distribution system |
US20060290948A1 (en) * | 2005-06-27 | 2006-12-28 | Sharp Laboratories Of America, Inc. | Undesirable output detection in imaging device |
JP4878471B2 (ja) * | 2005-11-02 | 2012-02-15 | キヤノン株式会社 | 情報処理装置およびその制御方法 |
KR100655924B1 (ko) * | 2005-11-11 | 2006-12-11 | 삼성전자주식회사 | Uwb 통신 기능을 갖는 화상형성장치 및 그의 데이터제공 방법 그리고 uwb 통신 기능을 이용한 데이터 제공시스템 |
JP5121261B2 (ja) * | 2006-04-04 | 2013-01-16 | キヤノン株式会社 | 画像処理装置、画像処理装置の制御方法、制御プログラム |
JP4207053B2 (ja) * | 2006-04-11 | 2009-01-14 | コニカミノルタビジネステクノロジーズ株式会社 | 情報処理装置、画像形成条件設定方法および画像形成条件設定プログラム |
JP4804302B2 (ja) * | 2006-10-06 | 2011-11-02 | キヤノン株式会社 | 画像処理装置及びその制御方法並びにその制御方法を実行するプログラムと記憶媒体 |
US7949741B2 (en) | 2007-02-20 | 2011-05-24 | Microsoft Corporation | Printer user interface redirection over a terminal services session |
JP4795267B2 (ja) * | 2007-02-20 | 2011-10-19 | キヤノン株式会社 | 画像形成装置及びその制御方法 |
JP4438876B2 (ja) * | 2007-04-02 | 2010-03-24 | セイコーエプソン株式会社 | 印刷制御装置及び方法 |
US8339635B2 (en) * | 2007-04-03 | 2012-12-25 | Microsoft Corporation | Printer redirection |
KR101414745B1 (ko) * | 2007-07-02 | 2014-07-07 | 삼성전자주식회사 | 분산인쇄 설정을 위한 호스트 장치 및 분산인쇄 설정 방법 |
KR101310235B1 (ko) * | 2007-07-19 | 2013-09-24 | 삼성전자주식회사 | 화상형성작업에서 작업처리정보를 이용한 수신자별전송방법, 클라이언트 및 화상형성장치 |
KR101352851B1 (ko) * | 2007-08-01 | 2014-01-20 | 삼성전자주식회사 | 유니버셜 프린터 드라이버를 이용하는 인쇄 환경에서화상형성장치의 프린터 드라이버를 설치하는 방법 및 장치 |
US8214548B2 (en) * | 2007-08-29 | 2012-07-03 | Ricoh Company, Ltd. | Capability-based control device driver of a computer peripheral device |
KR101182243B1 (ko) * | 2007-12-05 | 2012-09-14 | 삼성전자주식회사 | 화상형성장치의 호스트장치 및 프린팅 계정 관리방법 |
JP4669901B2 (ja) * | 2008-10-21 | 2011-04-13 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP5393427B2 (ja) * | 2009-09-01 | 2014-01-22 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP2011065290A (ja) * | 2009-09-15 | 2011-03-31 | Ricoh Co Ltd | プログラム、記録媒体、情報処理装置、及び情報処理システム |
KR20110032869A (ko) * | 2009-09-24 | 2011-03-30 | 삼성전자주식회사 | 인쇄 제어 장치 및 그 제어 방법 |
JP5460215B2 (ja) * | 2009-09-29 | 2014-04-02 | キヤノン株式会社 | 情報処理装置及びその方法 |
US20130258377A1 (en) * | 2010-03-31 | 2013-10-03 | Canon Kabushiki Kaisha | Printer control system, printing method, and storage medium |
JP2012058810A (ja) | 2010-09-06 | 2012-03-22 | Seiko Epson Corp | 印刷データを用いた機能拡張プログラム、機能拡張装置、及び、機能拡張方法 |
US20120198082A1 (en) * | 2011-01-27 | 2012-08-02 | Joseph Gaertner | Automatic Fallback Communication Mechanism |
JP5807343B2 (ja) * | 2011-02-25 | 2015-11-10 | セイコーエプソン株式会社 | 印刷データを用いた機能拡張プログラム、機能拡張装置、及び、機能拡張方法 |
JP2014106570A (ja) * | 2012-11-22 | 2014-06-09 | Ricoh Co Ltd | 情報処理装置、ジョブ処理制御方法、及びジョブ処理制御プログラム |
JP2015118403A (ja) * | 2013-12-16 | 2015-06-25 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法およびそのプログラム |
US9430723B1 (en) | 2015-03-27 | 2016-08-30 | Kyocera Document Solutions Inc. | Printing device software management and common interface |
US9760316B2 (en) * | 2015-03-27 | 2017-09-12 | Konica Minolta Laboratory U.S.A., Inc. | Method and system for managing software version compatibility amongst devices in a multi-device network environment |
US9787869B1 (en) * | 2016-04-05 | 2017-10-10 | Hewlett-Packard Development Company, L.P. | Print job access provision |
JP7422462B2 (ja) * | 2020-01-31 | 2024-01-26 | キヤノン株式会社 | プログラム、及び情報処理装置 |
JP7479907B2 (ja) * | 2020-04-03 | 2024-05-09 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、プログラム、および記憶媒体 |
JP2023143184A (ja) * | 2022-03-25 | 2023-10-06 | ブラザー工業株式会社 | サポートプログラムおよび印刷システム |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6552813B2 (en) * | 1996-06-11 | 2003-04-22 | Sun Microsystems, Inc. | Directing print jobs in a network printing system |
US6452692B1 (en) * | 1996-12-02 | 2002-09-17 | Sun Microsystems, Inc. | Networked printer server |
US7177040B2 (en) * | 1998-03-20 | 2007-02-13 | Océ-Technologies B.V. | Remote printer control |
US6798530B1 (en) * | 1999-12-07 | 2004-09-28 | Xerox Corporation | Systems, methods and graphical user interfaces for printing object optimized images using virtual printers |
JP3757749B2 (ja) | 2000-04-07 | 2006-03-22 | セイコーエプソン株式会社 | 分散印刷制御装置および分散印刷制御方法並びに記録媒体 |
WO2001077809A1 (fr) * | 2000-04-07 | 2001-10-18 | Seiko Epson Corporation | Controle d'imprimantes distribuees |
US7173718B2 (en) * | 2000-04-07 | 2007-02-06 | Seiko Epson Corporation | Control of distributed printing using data output control module |
JP3809389B2 (ja) * | 2001-04-19 | 2006-08-16 | キヤノン株式会社 | 印刷制御装置、情報処理装置、印刷制御方法、情報処理装置の方法及びプログラム |
EP1293886B1 (en) * | 2001-09-14 | 2014-04-16 | Canon Kabushiki Kaisha | Controlling printing by use of a virtual printer |
JP3634783B2 (ja) * | 2001-09-14 | 2005-03-30 | キヤノン株式会社 | 印刷システム及び印刷データ処理方法 |
JP3634784B2 (ja) * | 2001-09-14 | 2005-03-30 | キヤノン株式会社 | 情報処理方法及び印刷制御装置 |
JP3639821B2 (ja) * | 2001-09-14 | 2005-04-20 | キヤノン株式会社 | 印刷制御方法及び印刷制御装置及び情報処理装置が実行可能な印刷制御プログラム並びにコンピュータが読み出し可能なプログラムを格納した記憶媒体 |
US7312886B2 (en) * | 2001-12-03 | 2007-12-25 | Canon Kabushiki Kaisha | Printer control method, information processing apparatus, program, and storage medium |
US7180623B2 (en) * | 2001-12-03 | 2007-02-20 | Canon Kabushiki Kaisha | Method and apparatus for print error recovery |
US7167261B2 (en) * | 2001-12-28 | 2007-01-23 | Kabushiki Kaisha Toshiba | Image forming apparatus with predetermined copy quality set by user or operator |
JP3740472B2 (ja) * | 2002-03-12 | 2006-02-01 | キヤノン株式会社 | プログラム、印刷ジョブ制御システム、印刷データ処理方法及び記憶媒体 |
JP2004054909A (ja) * | 2002-05-31 | 2004-02-19 | Canon Inc | 情報処理装置、印刷システム、情報処理装置の印刷制御方法、及び印刷制御プログラム |
-
2002
- 2002-12-26 JP JP2002378677A patent/JP2004213111A/ja not_active Withdrawn
-
2003
- 2003-12-12 US US10/733,296 patent/US7852497B2/en not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4590341B2 (ja) * | 2004-11-15 | 2010-12-01 | キヤノン株式会社 | データ処理装置および設定処理方法および情報処理装置および制御プログラム |
JP2006164253A (ja) * | 2004-11-15 | 2006-06-22 | Canon Inc | データ処理装置および設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体および制御プログラム |
JP2006330950A (ja) * | 2005-05-25 | 2006-12-07 | Oki Data Corp | 印刷システム及び印刷装置 |
JP4549927B2 (ja) * | 2005-05-25 | 2010-09-22 | 株式会社沖データ | 印刷システム及び印刷装置 |
JP2008210371A (ja) * | 2007-02-01 | 2008-09-11 | Sharp Corp | 情報処理システム |
JP2008269058A (ja) * | 2007-04-17 | 2008-11-06 | Canon Inc | 情報処理装置及びその制御方法、並びにプログラム |
JP2010231266A (ja) * | 2009-03-25 | 2010-10-14 | Obic Co Ltd | 印刷設定管理装置、印刷設定管理方法および印刷設定管理プログラム |
JP2014215945A (ja) * | 2013-04-30 | 2014-11-17 | 株式会社リコー | プログラム、情報処理装置及び印刷システム |
JP2015215825A (ja) * | 2014-05-13 | 2015-12-03 | 株式会社リコー | 出力システム、端末装置、プログラム及び出力方法 |
JP2016130970A (ja) * | 2015-01-14 | 2016-07-21 | キヤノン株式会社 | 情報処理装置とその制御方法およびプログラム |
US9584679B2 (en) | 2015-01-14 | 2017-02-28 | Canon Kabushiki Kaisha | Information processing apparatus, control method therefor, and medium |
JP2018014135A (ja) * | 2017-10-12 | 2018-01-25 | 株式会社リコー | 出力システム、端末装置、プログラム及び出力方法 |
US10956095B2 (en) | 2018-09-14 | 2021-03-23 | Canon Kabushiki Kaisha | Server system that improves availability of a plurality of printers, print controller, information processing apparatus, and print service system |
Also Published As
Publication number | Publication date |
---|---|
US20040136023A1 (en) | 2004-07-15 |
US7852497B2 (en) | 2010-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004213111A (ja) | コンピュータプログラム | |
JP3634784B2 (ja) | 情報処理方法及び印刷制御装置 | |
JP3639821B2 (ja) | 印刷制御方法及び印刷制御装置及び情報処理装置が実行可能な印刷制御プログラム並びにコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP3793197B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム並びに記憶媒体 | |
JP4553364B2 (ja) | 印刷システム | |
JP3619087B2 (ja) | 情報処理装置、情報処理方法およびコンピュータ読み取り可能なプログラムを格納した記憶媒体 | |
JP3740472B2 (ja) | プログラム、印刷ジョブ制御システム、印刷データ処理方法及び記憶媒体 | |
US20050179926A1 (en) | Information processor, method for processing information and memory medium for storing program readable by computer | |
JP4372670B2 (ja) | 複合印刷ジョブ組成方法および装置 | |
US20080266601A1 (en) | Information processing apparatus and job management method | |
US8320001B2 (en) | Information processing method and apparatus for banner printing | |
KR101631605B1 (ko) | 인쇄제어 단말장치 및 인쇄제어방법 | |
JP3880575B2 (ja) | 印刷設定方法及びコンピュータ | |
US20070070412A1 (en) | Image forming system, image forming method, and program | |
JP2002014797A (ja) | 情報処理装置、印刷制御装置、およびその制御方法、および記憶媒体、およびその制御プログラム | |
JP3884876B2 (ja) | 情報処理装置、情報処理方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体 | |
JP2004070521A (ja) | カラーモノクロ分散印刷制御方法、プログラム、記憶媒体及び装置 | |
JP7410622B2 (ja) | 情報処理装置、情報処理装置の制御方法ならびにプログラム、および当該情報処理装置と通信することのできるサーバシステム | |
JP3743184B2 (ja) | プリントシステム、プリンタおよびプリントサーバ | |
JP2008108134A (ja) | 画像処理装置およびその制御方法およびプログラムおよび記憶媒体 | |
JP2003271331A (ja) | 印刷制御方法及び印刷処理システムと情報処理装置 | |
JP4323982B2 (ja) | 情報処理方法、及び、情報処理装置、及び、プログラム、並びに、記憶媒体 | |
JP3833090B2 (ja) | 制御方法、制御装置、プログラム及び記憶媒体 | |
JP4110021B2 (ja) | 部門管理を伴う印刷処理を行う印刷処理プログラム及び情報処理装置及び情報処理方法並びに記憶媒体 | |
JP4261784B2 (ja) | 印刷制御方法、印刷制御システム、プログラム及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060307 |