JP2012168814A - タンデムプリントシステムおよび印刷制御方法 - Google Patents
タンデムプリントシステムおよび印刷制御方法 Download PDFInfo
- Publication number
- JP2012168814A JP2012168814A JP2011030218A JP2011030218A JP2012168814A JP 2012168814 A JP2012168814 A JP 2012168814A JP 2011030218 A JP2011030218 A JP 2011030218A JP 2011030218 A JP2011030218 A JP 2011030218A JP 2012168814 A JP2012168814 A JP 2012168814A
- Authority
- JP
- Japan
- Prior art keywords
- driver
- printer driver
- printing
- tandem
- 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
【課題】タンデムデバイスに対して、複数のプリンタドライバが連携してタンデムドライバとして動作して印刷可能にする。
【解決手段】プリンタドライバがタンデムデバイスであると判断したら、接続されているデバイスのプリンタドライバを呼び出して、タンデムシステム向けのプリンタドライバとして連携して印刷を行う。
【選択図】図11
【解決手段】プリンタドライバがタンデムデバイスであると判断したら、接続されているデバイスのプリンタドライバを呼び出して、タンデムシステム向けのプリンタドライバとして連携して印刷を行う。
【選択図】図11
Description
本発明は、たとえば複数のデバイスが連結されたタンデムプリントシステムと該システムにより実行される印刷制御方法およびプログラムに関するものである。
近年、CMYKなどのプロセスカラーを表現するトナーを組み合わせることで生成した印刷物に更なる付加価値を加えるため、プロセスカラーでは表現できない色を表現する特色トナーや、光沢感を与えることを目的とした透明トナーを用いることがある。しかし、これらの特色トナーや透明トナーは特殊な印刷装置でしか扱えないことが殆どである。よって、多種類のトナーを用いた印刷を行う印刷装置を組み合わせることで付加価値印刷を実現している。例えば特許文献1に開示されているように、印刷ジョブを受け取った前段の印刷装置が印刷した用紙を排紙し、前段の印刷装置に接続された後段の印刷装置が、この排紙された印刷済みの用紙を給紙して印刷を行う。
一方、従来の印刷装置において、印刷装置の排紙部にフィニッシャを接続するように、印刷装置に対してアクセサリを接続することがある。
この場合、この印刷装置を制御するためのプリンタドライバが対応できるアクセサリの種類、機能などについては、プリンタドライバを作成する時点で決定しているのが一般的であった。よって、製品が発売される時にすでに、後から接続され得る全てのアクセサリに対応可能なプリンタドライバがリリースされている。このため、1度市場に出た製品に対して後からアクセサリを追加する場合は、その都度、新規にプリンタドライバを開発していた。
この場合、この印刷装置を制御するためのプリンタドライバが対応できるアクセサリの種類、機能などについては、プリンタドライバを作成する時点で決定しているのが一般的であった。よって、製品が発売される時にすでに、後から接続され得る全てのアクセサリに対応可能なプリンタドライバがリリースされている。このため、1度市場に出た製品に対して後からアクセサリを追加する場合は、その都度、新規にプリンタドライバを開発していた。
あるいは、アドイン機能を追加することができるI/Fを予め用意することで対応をしていた。すなわち、新規に接続されるアクセサリに対して操作を行う部分を、新規に接続されるアクセサリごとにアドイン機能として開発し、従来のプリンタドライバに影響を与えずに、単純に機能を付加する機能拡張を図ることで対応をしていた。このため、既存の印刷装置に対してアクセサリを後から接続する製品拡張の際、新規のドライバを開発するか、後から接続するアクセサリに対応するアドイン機能を開発していた。よって、製品拡張の際は、ユーザも新規に開発されたドライバをインストールするかアクセサリに対応するアドイン機能を導入するのが一般的であった。
しかし、先行技術に示されているように複数の印刷装置を接続して一台の印刷装置として扱う場合に、上記のアドイン機能追加のような対応では開発負荷が大きくなる。つまり、接続される装置に対応したドライバ又はアドイン機能をそれぞれ新規に作らなければならない。よって、接続される装置が変更されると、そのたびに接続した装置を制御するためだけに必要な新たなドライバや、接続される個々の装置に対して新たなアドイン機能を開発する必要があるため、開発負荷が大きくなる。
また、複数の印刷装置を接続して制御するのに必要なプリンタドライバを新たに作成すると、複数の印刷装置を接続して使用する場合と、複数の印刷装置を独立で使用する場合の両ケースに対応できるドライバを実現させることが難しい。
また、複数の独立した印刷装置が接続されているか否かによって対応するプリンタドライバをその都度使い分けることは、ユーザにとって煩雑な作業を要するという問題が存在しうる。
本発明は上記従来例に鑑みてなされたもので、上記課題を解決することを目的とする。具体的には、タンデムシステム用のドライバや専用アプリケーションを用いずに、タンデムシステムを構成する個々のプリンタのプリンタドライバの連携を可能にする。そして、印刷を行おうとするアプリケーションからはあたかもひとつのプリンタと同様に扱うことができるタンデムプリントシステムおよび印刷制御方法を提供することを目的とする。すなわち、単一のポートを通してタンデムシステムと通信し、また、印刷を行うアプリケーションにより、タンデムを構成する個々のデバイスにより遂行される機能の設定を行うことができるタンデムプリントシステムおよび印刷制御方法を提供する。
上記目的を達成するために本発明は以下の構成を備える。すなわち、第1の印刷装置の排紙部と第2の印刷装置の給紙部とが接続されている印刷システムを制御する情報処理装置であって、
該情報処理装置は第1のプリンタドライバと第2のプリンタドライバとを有し、
前記第1のプリンタドライバは、
前記第1の印刷装置に対して該第1の印刷装置に接続された前記第2の印刷装置のモデル名を取得させる取得手段と、
前記取得手段により取得された第2の印刷装置のモデル名から前記第1の印刷装置に接続された第2の印刷装置を特定する特定手段と、
前記特定手段により特定された前記第2の印刷装置のドライバである第2のプリンタドライバを特定し、該第2のプリンタドライバの出力ポートを、前記第1の印刷装置のドライバである第1のドライバの出力ポートに合わせて変更する変更手段と、
前記特定手段により特定された前記第2のプリンタドライバを起動し、印刷対象データのうち、前記第2の印刷装置で処理されるデータを前記第2のプリンタドライバに送信する送信手段と、
前記印刷対象データのうち、第1の印刷装置にて印刷すべき印刷ジョブを生成する第1の生成手段とを有し、
前記第2のプリンタドライバは、
前記第1のプリンタドライバにより起動されると、前記送信手段で送信された前記第2の印刷装置に対応する印刷ジョブを用いて、前記第1の印刷装置に対応する印刷ジョブとは識別できるように生成する第2の生成手段を有し、
前記情報処理装置はさらに
前記第1の生成手段及び前記第2の生成手段で生成された印刷ジョブを関連付けて、前記変更手段にて変更された出力ポートから前記第1の印刷装置に送信する手段を有する。
該情報処理装置は第1のプリンタドライバと第2のプリンタドライバとを有し、
前記第1のプリンタドライバは、
前記第1の印刷装置に対して該第1の印刷装置に接続された前記第2の印刷装置のモデル名を取得させる取得手段と、
前記取得手段により取得された第2の印刷装置のモデル名から前記第1の印刷装置に接続された第2の印刷装置を特定する特定手段と、
前記特定手段により特定された前記第2の印刷装置のドライバである第2のプリンタドライバを特定し、該第2のプリンタドライバの出力ポートを、前記第1の印刷装置のドライバである第1のドライバの出力ポートに合わせて変更する変更手段と、
前記特定手段により特定された前記第2のプリンタドライバを起動し、印刷対象データのうち、前記第2の印刷装置で処理されるデータを前記第2のプリンタドライバに送信する送信手段と、
前記印刷対象データのうち、第1の印刷装置にて印刷すべき印刷ジョブを生成する第1の生成手段とを有し、
前記第2のプリンタドライバは、
前記第1のプリンタドライバにより起動されると、前記送信手段で送信された前記第2の印刷装置に対応する印刷ジョブを用いて、前記第1の印刷装置に対応する印刷ジョブとは識別できるように生成する第2の生成手段を有し、
前記情報処理装置はさらに
前記第1の生成手段及び前記第2の生成手段で生成された印刷ジョブを関連付けて、前記変更手段にて変更された出力ポートから前記第1の印刷装置に送信する手段を有する。
本発明により、タンデムシステム用のドライバや専用アプリケーションを用いずに、タンデムシステムを構成する個々のプリンタのプリンタドライバの連携を可能する。そして、印刷を行おうとするアプリケーションからはあたかもひとつのプリンタと同様に扱うことができる。具体的には、プリンタドライバがタンデムシステムであると認識すると、接続されている別の機種のプリンタドライバを呼び出し連携して動作することができる。また、タンデムシステムの1つのポートに向かって接続されている機種のすべてのプリンタドライバが印刷を行うことができる。また接続されているプリンタドライバの印刷設定はすべて、ユーザインターフェースを使って呼び出すことができるので、接続されているすべての機種の機能をあらかじめ設定しておくことができる。これにより、タンデムシステムにおいて、専用のプリンタドライバや、プリンタドライバの更新をすることなく、通常のプリンタドライバ同士が連携して、タンデムシステムのすべての機能を活用した印刷を行うことができる。
[実施形態1]
<コンピュータの構成>
図1は本発明の実施形態を示す一般的なコンピュータを用いたシステムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できる。
<コンピュータの構成>
図1は本発明の実施形態を示す一般的なコンピュータを用いたシステムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できる。
CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105はオペレーティングシステム(OS)1053やアプリケーションソフト1051等を記録する。キーボード1031やマウス・タッチパネルなどに代表されるポインティングデバイスなどの入力機器は、入力I/F103を通じて、ユーザがコンピュータに対して各種指示を与えるためのデバイスである。出力I/F104は、データを外部に出力するためのインターフェースであり、モニタ1041やプリンタ1042などの出力機器に対してデータを出力する。プリンタ1042とは直接接続されるローカルI/Oのみならず、通信I/F106を通じて接続されるネットワーク1061を通して接続されていてもよい。また、107は共通データシステムバスで、モジュール間でそれぞれのデータのやりとりを行う。
図2は本発明の実施の形態におけるネットワーク1061の環境を簡略した図である。印刷を行う文書や画像を作成するクライアントコンピュータ(情報処理装置)201/202が単体もしくは複数ネットワークに接続されている。また、クライアントのユーザやプリンタを管理するサーバーコンピュータ203が接続されていることもある。プリンタ204/205が単体もしくは複数ネットワークに接続されており、プリンタ205のように物理的に接続されていても実際には使用できないオフライン状態であることもある。
ネットワークにはPAN(Personal Area Network)、LAN(Local Area Network)がある。その他、MAN(Metropolitan Area Network)、WAN(Wide Area Network)もある。このように、小規模から大規模までのネットワークがあり、これらの機器がすべてのネットワークに接続されている。クラウドなど、サーバーやプリンタがインターネットを越えて接続されていてもかまわない。またプリンタは単機能のプリンタのみならず、種々の機能を備えた複合機であってもよく、画像形成機能を持つ画像形成装置であればよい。タンデムシステムを構成する際には、その後段のデバイスとして、画像形成機能を持たないフィニッシャを用いることもできる。ただし本実施形態では、画像形成装置を直列に接続したタンデムプリントシステムについて説明する。また、本実施形態では、タンデムプリントシステムとは画像形成装置のみにより構成されるシステムを指し、クライアントを含めた全体を印刷処理システムと呼ぶ。
図3において、一般的なコンピュータを用いた印刷処理システムを示す。オペレーティングシステム310は、図1の補助記憶装置105にOS1053として格納されている。グラフィックスエンジン302、プリントマネージャ304はオペレーティングシステム310に含まれるモジュールである。プリンタドライバ303は、図1の補助記憶装置105にプリンタドライバー1052として格納されている。アプリケーション301は、図1の補助記憶装置105にアプリケーション1051として格納されている。ユーザはキーボード1031やマウス1032などといった入力装置を使用して、出力装置のモニタ1041に映し出されたアプリケーションプログラム301を使用して作成した文書3011の印刷処理を実行する。印刷処理はプリンタの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行される。まずは、プリンタの選択として、印刷を実行するプリンタに対応したプリンタドライバ303を選択する。次に印刷設定3013の作成を行う。印刷対象のアプリケーションデータである文書の印刷設定3013はプリンタドライバのコンフィギュレーションモジュール3032によって初期値が作成される。作成された印刷設定3013をアプリケーションもしくはプリンタドライバのユーザインターフェースを使用してユーザが望む最終印刷結果になるように変更して設定を行う。たとえば、出力する用紙サイズを変更したり、両面印刷、白黒印刷を行なうといった設定である。印刷設定3013はRAM1022上に確保されるが、保存する形式はバイナリのデータ構造体であったり、マークアップ言語のXMLであったりする。この形態はプリンタドライバやオペレーティングシステム310の仕様によって異なる。印刷設定3013は文書印刷のたびに作成するが、プリンタ309のオプション機器や、ユーザごとの環境設定など設定を保持しておきたいものは、プリンタドライバがオペレーティングシステム310のレジストリデータベース308に保存する。印刷設定3013のユーザごとのデフォルト値はオペレーティングシステム310のプリントマネージャ304が、レジストリデータベース308に保存する。最後に描画データの変換を行う。印刷設定3013が作成し終わったら、ユーザによって印刷処理が実行され、オペレーティングシステム310に印刷処理を通知する。オペレーティングシステム310はグラフィックスエンジン302を通じて、指定されたプリンタドライバ303への描画を行う。印刷設定3013でレイアウト処理が指定されている場合は、プリンタドライバ303のレンダリングモジュール3031に行く前に一時的なスプールファイル305を作成し、レイアウトモジュール306を起動する。レイアウト処理とは用紙の順番を入れ替えたり、一枚の用紙に複数ページを貼り付けたりする処理を指す。レイアウトモジュール306はレイアウトを変更した後、プリンタドライバ303への描画を行う。描画データが送られてきたプリンタドライバ303はレンダリングモジュール3031によって、プリンタが理解できるデータ言語すなわちプリンタ制御言語(プリンタ記述言語とも呼ぶ)に変換する。このとき印刷設定3013も、プリンタ制御言語として変換する。レンダリングモジュール3031、コンフィギュレーションモジュール3032はともに複数の種類のプリンタ308に対して共通のモジュールであることが多く、機種ごとの違いは機種依存データファイル3033に記述されている。レンダリングモジュール3031、コンフィギュレーションモジュール3032は適宜、この機種依存データファイル3033を参照する。変換されたデータはスプールファイル305として逐次保存していく。プリントマネージャ304はスプールファイル305を取得し、印刷ジョブファイルとして印刷処理のスケジュール管理を行う。プリンタが印刷できる状態になったら、プリントマネージャ304はI/Oモジュール307を介してプリンタ309に印刷ジョブデータを送信する。このようにして、アプリケーションからの印刷データがプリンタ言語に変換されて印刷を行う。
文書3011の印刷設定3013を作成するには、アプリケーションによって印刷設定3013を直接書き換えるか、プリンタドライバ303のコンフィギュレーションモジュール3032が提供するユーザインタフェース(図7に示す)を使用する。印刷設定3013はMicrosoft(登録商標)Windows(登録商標)オペレーティングシステムでは、DEVMODE構造体と呼ばれる図5の構造をしている。DEVMODE構造体はオペレーティングシステムで公開定義されている標準の設定領域501と、プリンタドライバが拡張した設定領域502に分けられている。標準の設定領域501には、用紙サイズや給紙段の切り替え、カラー白黒の切り替えなど印刷の基本的な設定の値がある。拡張した設定領域502には、プリンタのオプションに応じた排紙機能や、細かい色調整機能などの値がある。本実施形態ではさらに、タンデム接続されたプリンタのプリンタドライバが作成する印刷設定領域5026も拡張した設定領域502に保持する。アプリケーションは各プリンタドライバ303が持つ拡張設定を知ることはできず、直接印刷設定を書き換えることができるのは、システムで定義されている標準の設定領域501だけとなる。そこで、アプリケーションはプリンタドライバ303のコンフィギュレーションモジュール3032が提供するユーザインターフェースを表示させて、拡張された印刷設定領域502をユーザに行わせるのが一般的である。コンフィギュレーションモジュール3032はユーザインターフェースだけではなく、アプリケーションプログラムインタフェース(API:Application Programming Interface)も提供している。よって、ユーザインターフェースを表示せずに拡張された印刷設定502を外部から設定することも可能である。しかし、コンフィギュレーションモジュール3032のAPIを使用する場合はアプリケーションがプリンタドライバ303ごとに対応しなければならないので、一般的なアプリケーションは標準の設定領域501のみ変更を行う。
本実施形態のタンデムシステムとは、図20に示すように、前段にある第1のプリンタAと後段にある第2のプリンタBが接続されて構成されている印刷システムである。具体的には、第1のプリンタAが給紙し、トナーを用いて印刷を行った後、排紙口に排紙をした用紙を第2のプリンタBが給紙し、給紙した紙に対して再度トナーを用いて印刷を行う。このような印刷を行うタンデムシステムにおけるプリンタドライバ303の動作について、図11のシステム図と、図13、14、15、16、17、18のフローチャートを使って説明する。図11にあるように、タンデムシステムでは前段のプリンタであるメインのプリンタドライバ(以降はメインドライバと呼ぶ)と、後段のプリンタであるサブのプリンタドライバ(以降はサブドライバと呼ぶ)が連携して動作を行う。タンデムシステムは2台以上の印刷装置もしくは複合機が接続されたシステムで、外部から印刷データを受信し、タンデムシステム全体の制御をするデバイスを第1の印刷装置であるメインデバイスとする。第2の印刷装置であるサブデバイスはメインデバイスからの命令に従い、動作を行う。第1のプリンタドライバであるメインドライバは、タンデムシステムにおけるメインデバイス用のプリンタドライバであり、メインデバイスにて印刷すべき印刷データを生成する第1の生成手段を有する。第2のプリンタドライバであるサブドライバはサブデバイス用のプリンタドライバであり、サブドライバにて印刷すべき印刷データを生成する第2の生成手段を有する。
<印刷設定変更手順>
タンデムシステムにおける印刷設定3013を作成するための動作フローとして図14のフローチャートを追って説明する。メインドライバはアプリケーションから、拡張された印刷設定502を作成するために、ユーザインターフェースを表示させる命令を受け取る(S1401)。この命令は図11にあるように、グラフィックスエンジン302を通して渡される。メインドライバは、プリンタデバイスからタンデムシステムとして接続されているサブデバイスのモデル名を取得する(S1402)。モデル名はプリンタドライバがデバイスと双方向通信を行うことで取得するが、デバイス側の動作フローは図13のフローチャートに記載しているので後述する。メインドライバは、タンデムシステムのモデル名が1つも取得できなかったらタンデムシステムではないと判断し(S1403)、通常のプリンタドライバのユーザインターフェースを表示する(S1405)。メインドライバは、タンデムシステムのモデル名が1つでも取得できれば、オペレーティングシステム310にインストールされているドライバからタンデムシステムのサブドライバを検索してリストを作る(S1404)。オペレーティングシステム310からサブドライバを検索する動作フローは、図18のフローチャートに記載しているので後述する。タンデムシステムのサブドライバが見つかったら、メインドライバはプリンタドライバのユーザインターフェースに、サブドライバのユーザインターフェースを表示させるための操作部であるタンデムドライバボタンをつけて表示する(S1406)。図8がタンデムドライバボタンを表示したプリンタドライバのユーザインターフェースである。ユーザによってタンデムボタンが押されると、メインドライバは先ほど取得したサブドライバリストを参照する(S1407)。サブドライバリストに複数のドライバが列挙されている場合は(S1408)、タンデムシステムで接続されているすべてのサブデバイスのサブドライバ一覧リストを表示する(S1409)。
タンデムシステムにおける印刷設定3013を作成するための動作フローとして図14のフローチャートを追って説明する。メインドライバはアプリケーションから、拡張された印刷設定502を作成するために、ユーザインターフェースを表示させる命令を受け取る(S1401)。この命令は図11にあるように、グラフィックスエンジン302を通して渡される。メインドライバは、プリンタデバイスからタンデムシステムとして接続されているサブデバイスのモデル名を取得する(S1402)。モデル名はプリンタドライバがデバイスと双方向通信を行うことで取得するが、デバイス側の動作フローは図13のフローチャートに記載しているので後述する。メインドライバは、タンデムシステムのモデル名が1つも取得できなかったらタンデムシステムではないと判断し(S1403)、通常のプリンタドライバのユーザインターフェースを表示する(S1405)。メインドライバは、タンデムシステムのモデル名が1つでも取得できれば、オペレーティングシステム310にインストールされているドライバからタンデムシステムのサブドライバを検索してリストを作る(S1404)。オペレーティングシステム310からサブドライバを検索する動作フローは、図18のフローチャートに記載しているので後述する。タンデムシステムのサブドライバが見つかったら、メインドライバはプリンタドライバのユーザインターフェースに、サブドライバのユーザインターフェースを表示させるための操作部であるタンデムドライバボタンをつけて表示する(S1406)。図8がタンデムドライバボタンを表示したプリンタドライバのユーザインターフェースである。ユーザによってタンデムボタンが押されると、メインドライバは先ほど取得したサブドライバリストを参照する(S1407)。サブドライバリストに複数のドライバが列挙されている場合は(S1408)、タンデムシステムで接続されているすべてのサブデバイスのサブドライバ一覧リストを表示する(S1409)。
図10はタンデムシステムで2つのデバイスがサブデバイスとして接続されているときに表示される、サブドライバ一覧リストの例である。サブドライバ一覧リストから1つサブドライバを選択するか、タンデムシステムでサブドライバが1つのときにタンデムボタンが押されると、選択されたサブドライバのプリンタドライバのユーザインターフェースを開く(S1410)。サブドライバのユーザインターフェースは、そのドライバが通常ユーザに対して提供するユーザインターフェースと同じものでよい。すなわち例えば図8の画面から、「タンデムドライバ」ボタンを除いたような構成である。もちろんデバイスの種類により様々であってよい。
しかし、メインドライバで2in1印刷設定が選ばれた場合、このサブドライバでは2in1印刷設定しか選ばれないように画面を制御する。つまり、印刷設定においてコンフリクトが発生しないように、メインドライバの設定に応じて、サブドライバが設定できる項目のみ限定して表示する。または設定できない項目をグレーアウト等してもよい。つまり、通常印刷で用いられる場合、サブドライバのユーザインターフェースは図8の画面から「タンデムドライバ」ボタンを除いたような一般的な構成でよい。
しかし、サブドライバ一覧リストから選択されるかメインドライバの「タンデムボタン」が押されることにより起動された場合、サブドライバのユーザインターフェースは、メインドライバの設定に応じて制御された表示を行う。
さらに、メインドライバにてある印刷設定(第1の印刷設定)をお気に入りに登録し、サブドライバにてある印刷設定(第2の印刷設定)をお気に入りに登録し、この2つのお気に入りを関連づけることができる。この関連付けにより、サブドライバを起動させずに、メインドライバにて関連付けられたお気に入りを選択するだけで、2つのドライバで設定しておいたお気に入り印刷設定を印刷対象データに施して実行することができる。例えば、メインドライバでは2in1印刷をお気に入りに設定し、サブドライバではスタンプ印刷をお気に入りに設定して、これらを関連付ける。そして、メインドライバにて関連付けられたお気に入りの設定を選択する。すると、メインドライバからはメインデバイスに対して、印刷対象データに2in1設定を施して印刷を実行させる。そして、サブドライバからはサブデバイスに対して、印刷対象データにスタンプ印刷を施して実行させることができる。この時、起動しているメインドライバのユーザインターフェースにおけるプレビューには、メインドライバにて設定された印刷設定とサブドライバにて設定された印刷設定を組み合わせた結果が表示される。
また、このサブドライバにて設定された値の保存先は、タンデムシステムのサブドライバ(タンデムドライバ)の領域5026である。このユーザインターフェースで、オペレータはサブデバイスの印刷設定を行う。サブドライバのユーザインターフェースがユーザによって閉じられると、メインドライバはサブドライバの印刷設定を取得する(S1411)。そして、メインドライバの印刷設定3013の拡張した設定領域502のサブドライバの印刷設定領域5026に、取得した印刷設定を追加して保存する(S1412)。このとき、サブドライバの印刷設定領域5026の標準の設定領域50261をタンデムシステム用に変更し、設定しなおす。具体的には、給紙段の設定を「手差しトレイ」に変更する。標準の設定領域はどのドライバにも共通の仕様であり外部から変更することが可能なので、給紙段の設定をメインドライバが変更することは容易である。「手差しトレイ」に変更するのは、タンデムシステムにおいては、メインのデバイスが排紙部から排紙した用紙を、サブのデバイスが「手差しトレイ」である給紙部で受け取って印刷を続けるためである。つまり、タンデムデバイスでは、メインのデバイスの排紙口とサブのデバイスの給紙部である「手差しトレイ」が接続されていることになる。
サブドライバのユーザインターフェースを閉じると、再びメインドライバのユーザインターフェースに戻る。そして、メインドライバのユーザインターフェースでメインデバイスの印刷設定を完了してユーザインターフェースを閉じると、メインドライバの印刷設定3013が作成され、タンデムシステムの印刷設定が完成する。サブドライバのユーザインターフェースはモーダルダイアログであるため、サブドライバのユーザインターフェースを閉じることなく、メインドライバのユーザインターフェースを閉じることはできない。つまり前後連動しているウィンドウとなっている。こサブドライバのユーザインターフェースが閉じた後、メインドライバのユーザインターフェースのプレビュー画面には、メインドライバで設定された印刷設定とサブドライバで設定された印刷設定を組み合わせた結果が表示される。
また、メインドライバはタンデムドライバとしての動作をあらかじめ決めておくことができる。メインドライバのユーザインターフェースにあるドライバの動作を設定する「環境設定」項目(不図示)には、タンデムドライバの動作を決める図9のダイアログが存在する。タンデムドライバの動作としては、タンデムドライバとして印刷するときに、メインドライバとサブドライバの両方で同一の描画データを印刷ジョブとして作成してタンデムシステムに送信する設定がデフォルトである。だが、メインドライバ、サブドライバそれぞれ片方しか印刷ジョブを作成しないようにすることもできる。メインドライバしか印刷ジョブを作らないようにすると、タンデムシステムとして認識しても通常のドライバと変わらない動作となる。サブドライバしか印刷ジョブを作らないようにすると、メインドライバの描画がまったく行われないので、サブデバイスにだけ印刷ジョブを送信することができる。これは、サブデバイスがグロス(つや)効果のあるクリア(透明)トナーを持つデバイスで、フォームをあらかじめ登録してクリアトナーを重ね合わせるオーバーレイ動作を行うときに、フォームだけを送信するといった用途で使用できる。図9のタンデムドライバの動作の設定において、「ジョブ識別ID」は空欄であれば自動でメインドライバが作成するが、オペレータが任意のIDを入力することもできる。図9のユーザインターフェースで設定されたタンデムドライバの動作は、メインドライバがユーザごとにレジストリデータベース308に保存しておき、印刷時にレジストリデータベースから読みだして使用する。
<メインデバイスの動作>
図13のフローチャートを使って、S1402のメインデバイスがタンデムシステムのモデル名、すなわちサブデバイスのモデル名をプリンタドライバに返すフローを説明する。メインプリンタドライバ(メインドライバ)はタンデムシステムのサブデバイスのモデル名を取得するためにメインデバイスに対してモデル名を要求する命令を送信し、タンデムシステムのメインデバイスは命令を取得する(S1301)。メインデバイスはその命令に応じて、タンデム接続されたデバイスがあるかどうかを判定する(S1302)。接続の有無およびモデル名は、例えばタンデム接続用のポートから接続確認用の命令を送信し、その応答を読み取ることで判定する。接続がなければ、メインプリンタドライバに対してタンデムシステムのモデル名がないことを返却する(S1304)。1台でもタンデムシステムとして接続されていれば、メインデバイスはタンデム接続されたサブデバイスに対してモデル名取得の命令を送信する。この命令で接続の有無の判定を兼ねてもよい。メインデバイスはサブデバイスがモデル名を返してくるまで待っていて、モデル名を取得する(S1305)。モデル名が取得できたら、メインデバイスはタンデム接続されているモデル名リストにモデル名を追加する(S1306)。メインデバイスは、すべてのタンデム接続されているサブデバイスからモデル名を取得するまで、モデル名取得を繰り返すため(S1307)、取得していないサブデバイスがあれば次のモデル名取得デバイスとして選択する(S1309)。そして、メインデバイスはメインプリンタドライバにすべてのサブデバイスのモデル名リストを返却する(S1308)。例えば、メインデバイスにサブデバイス1が接続し、そのサブデバイス1にさらにサブデバイス2が接続した場合について説明する。この時、メインプリンタドライバにはサブデバイスのモデル名が2つ返却されるが、デバイスが接続されている順番はわからない。よって、メインデバイスのコントローラは、まず自身に接続されるサブデバイス1のコントローラにモデル名を問い合わせる。さらに、そのサブデバイス1に自身以外に接続されているデバイスがあるか問い合わせる。すると、サブデバイス1はサブデバイス2に接続されていることをメインコントローラに回答する。これにより、メインコントローラは、自身に接続されているサブデバイスの接続順番を把握することができる。
図13のフローチャートを使って、S1402のメインデバイスがタンデムシステムのモデル名、すなわちサブデバイスのモデル名をプリンタドライバに返すフローを説明する。メインプリンタドライバ(メインドライバ)はタンデムシステムのサブデバイスのモデル名を取得するためにメインデバイスに対してモデル名を要求する命令を送信し、タンデムシステムのメインデバイスは命令を取得する(S1301)。メインデバイスはその命令に応じて、タンデム接続されたデバイスがあるかどうかを判定する(S1302)。接続の有無およびモデル名は、例えばタンデム接続用のポートから接続確認用の命令を送信し、その応答を読み取ることで判定する。接続がなければ、メインプリンタドライバに対してタンデムシステムのモデル名がないことを返却する(S1304)。1台でもタンデムシステムとして接続されていれば、メインデバイスはタンデム接続されたサブデバイスに対してモデル名取得の命令を送信する。この命令で接続の有無の判定を兼ねてもよい。メインデバイスはサブデバイスがモデル名を返してくるまで待っていて、モデル名を取得する(S1305)。モデル名が取得できたら、メインデバイスはタンデム接続されているモデル名リストにモデル名を追加する(S1306)。メインデバイスは、すべてのタンデム接続されているサブデバイスからモデル名を取得するまで、モデル名取得を繰り返すため(S1307)、取得していないサブデバイスがあれば次のモデル名取得デバイスとして選択する(S1309)。そして、メインデバイスはメインプリンタドライバにすべてのサブデバイスのモデル名リストを返却する(S1308)。例えば、メインデバイスにサブデバイス1が接続し、そのサブデバイス1にさらにサブデバイス2が接続した場合について説明する。この時、メインプリンタドライバにはサブデバイスのモデル名が2つ返却されるが、デバイスが接続されている順番はわからない。よって、メインデバイスのコントローラは、まず自身に接続されるサブデバイス1のコントローラにモデル名を問い合わせる。さらに、そのサブデバイス1に自身以外に接続されているデバイスがあるか問い合わせる。すると、サブデバイス1はサブデバイス2に接続されていることをメインコントローラに回答する。これにより、メインコントローラは、自身に接続されているサブデバイスの接続順番を把握することができる。
<サブドライバの検索手順>
図18のフローチャートを使って、S1404における、オペレーティングシステム310から、インストールされているサブドライバを検索する方法を説明する。メインドライバはオペレーティングシステム310にインストールされているプリンタドライバをすべて列挙する(S1801)。これはメインドライバが、オペレーティングシステム310の提供するAPIを呼び出すことで、すべて列挙することができる。次にメインドライバは、列挙したプリンタドライバから1つ取り出し(S1802)、取り出したプリンタドライバのモデル名をオペレーティングシステム310の提供するAPIを呼び出して取得する(S1803)。プリンタドライバはデバイスの機種ごとに1つ用意されているので、機種を特定するためのモデル名に関連づけられてオペレーティングシステム310にインストールされている。したがって、オペレーティングシステム310はプリンタドライバとモデル名の関連を知っているので、メインドライバがオペレーティングシステム310を経由してモデル名を取得することができる。メインドライバはここで、デバイスから取得したタンデムシステムのモデル名リストに、今取得したプリンタドライバのモデル名が含まれているかどうかを調べる(S1804)。タンデムシステムのモデル名リストに含まれていたら、メインドライバは取り出したプリンタドライバをサブドライバリストに追加する(S1805)。同一のモデル名のプリンタドライバが複数オペレーティングシステム310にインストールされていることがある。そのときは、出力ポートが同一のプリンタドライバを1つ選び、なければ最初に見つかったプリンタドライバを選んで、サブドライバとしてリストに追加する。同一モデルのプリンタドライバであればいいので、複数インストールされているときは、どれか1つを使うことですむからである。
図18のフローチャートを使って、S1404における、オペレーティングシステム310から、インストールされているサブドライバを検索する方法を説明する。メインドライバはオペレーティングシステム310にインストールされているプリンタドライバをすべて列挙する(S1801)。これはメインドライバが、オペレーティングシステム310の提供するAPIを呼び出すことで、すべて列挙することができる。次にメインドライバは、列挙したプリンタドライバから1つ取り出し(S1802)、取り出したプリンタドライバのモデル名をオペレーティングシステム310の提供するAPIを呼び出して取得する(S1803)。プリンタドライバはデバイスの機種ごとに1つ用意されているので、機種を特定するためのモデル名に関連づけられてオペレーティングシステム310にインストールされている。したがって、オペレーティングシステム310はプリンタドライバとモデル名の関連を知っているので、メインドライバがオペレーティングシステム310を経由してモデル名を取得することができる。メインドライバはここで、デバイスから取得したタンデムシステムのモデル名リストに、今取得したプリンタドライバのモデル名が含まれているかどうかを調べる(S1804)。タンデムシステムのモデル名リストに含まれていたら、メインドライバは取り出したプリンタドライバをサブドライバリストに追加する(S1805)。同一のモデル名のプリンタドライバが複数オペレーティングシステム310にインストールされていることがある。そのときは、出力ポートが同一のプリンタドライバを1つ選び、なければ最初に見つかったプリンタドライバを選んで、サブドライバとしてリストに追加する。同一モデルのプリンタドライバであればいいので、複数インストールされているときは、どれか1つを使うことですむからである。
メインドライバは、列挙したプリンタドライバをすべて確認したら(S1806)、タンデムシステムに必要なサブデバイスのすべてのドライバがサブドライバとして見つかったかどうかを判定する(S1807)。見つからなかったときは、プリンタドライバを検索してインストールを試みる。まず、メインドライバはオペレーティングシステム310に組み込まれているプリンタドライバから、サブデバイスのモデル名に一致するドライバを検索する(S1808)。見つかれば、メインドライバはオペレーティングシステム310に組み込みドライバを使ってそのモデル名のドライバをインストールするように指示を行う。インストールができれば、メインドライバはサブドライバリストにインストールしたドライバを追加する(S1809)。これでもタンデムシステムに必要なサブドライバが見つからないときは(S1810)、S1811へ進む。そして、メインドライバがオペレーティングシステム310の持つインターネットの更新プログラムのサイトへ、オペレーティングシステム310を経由して問い合わせを行う(S1811)。インターネットの更新サイトから一致するモデル名のドライバが見つかれば、メインドライバはドライバのダウンロードを行いインストールする。インストールができれば、メインドライバはサブドライバリストにインストールしたドライバを追加する(S1812)。これでほとんどの場合はすべてのサブドライバが見つかるが、どうしても見つからなかったときは、メインドライバはエラーとして終了する。エラーになったときは、メインドライバはメッセージボックスを表示し、足りないサブドライバのモデル名を表示し、ユーザに手動でプリンタドライバをインストールしてもらうように呼びかける。
<メインドライバによる印刷処理手順>
次にタンデムシステムにおける印刷を行うための動作フローとして、図15のフローチャートを使って説明する。メインドライバはアプリケーションから、タンデムシステムに向かって印刷を行う印刷開始命令を取得する(S1501)。この印刷開始命令もまた図11にあるように、グラフィックスエンジン302を通して渡される。メインドライバは、プリンタデバイスからタンデムシステムとして接続されているサブデバイスのモデル名を取得する(S1502)。これは前述した図13のフローチャートと同じである。メインドライバは、サブデバイスのモデル名が1つも取得できなかったらタンデムシステムではないと判断し(S1503)、通常の印刷処理に行く。メインドライバはレジストリデータベース308からタンデムドライバの動作設定(図9で設定)を取得し、サブドライバで描画データを作成するかどうかを調べる(S1504)。サブドライバで描画データを作成しない場合は、通常の印刷処理に行く。
次にタンデムシステムにおける印刷を行うための動作フローとして、図15のフローチャートを使って説明する。メインドライバはアプリケーションから、タンデムシステムに向かって印刷を行う印刷開始命令を取得する(S1501)。この印刷開始命令もまた図11にあるように、グラフィックスエンジン302を通して渡される。メインドライバは、プリンタデバイスからタンデムシステムとして接続されているサブデバイスのモデル名を取得する(S1502)。これは前述した図13のフローチャートと同じである。メインドライバは、サブデバイスのモデル名が1つも取得できなかったらタンデムシステムではないと判断し(S1503)、通常の印刷処理に行く。メインドライバはレジストリデータベース308からタンデムドライバの動作設定(図9で設定)を取得し、サブドライバで描画データを作成するかどうかを調べる(S1504)。サブドライバで描画データを作成しない場合は、通常の印刷処理に行く。
サブドライバで描画データを作成するときは、メインドライバはまずジョブ識別IDを作成する(S1505)。レジストリデータベース308からタンデムドライバの動作設定に含まれるジョブ識別IDを取得し、ユーザによってIDが入力されていればその値を使用する。ジョブ識別IDが設定されていなければ、メインドライバはスプールファイル305に関連づけられている印刷ジョブIDをベースにしたジョブ識別IDを作成する。作成したジョブ識別IDは、その保存場所に保存される。オペレーティングシステム310は複数のスプールファイル305を管理するためにそれぞれにIDをつけており、そのIDをメインドライバはオペレーティングシステム310を経由して取得する。メインドライバは、オペレーティングシステム310にインストールされているドライバからタンデムシステムのサブドライバを検索してリストを作る(S1506)。これは前述した図18のフローチャートと同じである。メインドライバはサブドライバのリストから1つサブドライバを取り出し(S1507)、サブドライバの出力ポートをメインドライバの出力ポートに変更する(S1508)。これにより、サブドライバのデータ出力先であるIPアドレスをメインデバイスと同じにする。このとき、メインドライバはサブドライバの出力ポートをサブドライバのリストに関連づけて保持しておき、印刷の終了処理で元のポートに戻すときに使用する。
つぎにメインドライバは、印刷設定領域501からサブドライバの印刷設定領域5026を取り出し、サブドライバの印刷開始命令を呼び出す(S1509)。ここでは図11に示すように、メインドライバ(図11の1101)があたかもアプリケーションのようになり、サブドライバ(図11の1102)に向かって印刷を行うことになる。次にメインドライバは、サブドライバに対して作成したジョブ識別IDを送信する(S1510)。サブドライバはジョブ識別IDを受け取り、印刷ジョブにジョブ識別IDとモデル名とを埋め込む。メインドライバはサブドライバの印刷開始命令を呼び出すことで取得したハンドルとデバイスコンテキストとを、サブドライバに関連づけて保持しておく(S1511)。ここでいうハンドルはサブドライバのオブジェクトの実体を指し示し、デバイスコンテキストとはサブドライバにより描画するためのキャンバスすなわち描画する対象である。メインドライバは、サブドライバリストからすべてのサブドライバについて印刷開始処理を行ったら(S1512)、メインドライバ自身での印刷処理に移る。メインドライバはレジストリデータベース308からタンデムドライバの動作設定を取得し、メインドライバで印刷を行うかどうかを判定する(S1513)。メインドライバで印刷を行うときは、印刷開始処理を行い(S1514)、印刷ジョブにジョブ識別IDとモデル名を埋め込む。これで、印刷開始処理が完了した。
<ジョブの変換処理>
次に図16のフローチャートを使って、アプリケーションからの描画命令をタンデムシステムの印刷ジョブに変換していく処理を説明する。この処理は、図15の印刷開始処理手順の終了に引き続いてメインドライバにより実行される。メインドライバは、アプリケーションからの描画命令を受け取る(S1601)。メインドライバは、サブドライバのハンドルとデバイスコンテキストを保持しているかどうかをサブドライバリストから判定する(S1602)。サブドライバのハンドルとデバイスコンテキストを保持していれば、サブドライバのデバイスコンテキストに、アプリケーションからの描画命令をそのまま同じ内容で描画する(S1603)。そして、メインドライバの印刷処理として、描画命令をプリンタ制御言語に変換する(S1604)。変換されたプリンタ制御言語のデータはスプールファイル305として逐次保存されていき、サブドライバ側でも同様に変換処理が行われ、別のスプールファイル305として保存される。こうして図11にあるように、メインデバイスとサブデバイスそれぞれに対応したデータを保存する複数のスプールファイル305が生成され、いずれもタンデムシステムに送信される。
次に図16のフローチャートを使って、アプリケーションからの描画命令をタンデムシステムの印刷ジョブに変換していく処理を説明する。この処理は、図15の印刷開始処理手順の終了に引き続いてメインドライバにより実行される。メインドライバは、アプリケーションからの描画命令を受け取る(S1601)。メインドライバは、サブドライバのハンドルとデバイスコンテキストを保持しているかどうかをサブドライバリストから判定する(S1602)。サブドライバのハンドルとデバイスコンテキストを保持していれば、サブドライバのデバイスコンテキストに、アプリケーションからの描画命令をそのまま同じ内容で描画する(S1603)。そして、メインドライバの印刷処理として、描画命令をプリンタ制御言語に変換する(S1604)。変換されたプリンタ制御言語のデータはスプールファイル305として逐次保存されていき、サブドライバ側でも同様に変換処理が行われ、別のスプールファイル305として保存される。こうして図11にあるように、メインデバイスとサブデバイスそれぞれに対応したデータを保存する複数のスプールファイル305が生成され、いずれもタンデムシステムに送信される。
すべての描画命令処理が終わると、アプリケーションからは印刷終了処理が呼ばれる。ここで、サブドライバリストにサブドライバのハンドルとデバイスコンテキストを保持していたら破棄し、出力ポートを元のポートに戻す処理を行う。
<メインデバイスによる印刷ジョブの実行>
図17のフローチャートでは、タンデムシステムのプリンタドライバから送られてきた複数の印刷ジョブを、メインデバイスがどのように制御するのかを示した動作フローである。まず、メインデバイスは印刷ジョブが到着するまで待ちの状態になっている(S1701)。次に印刷ジョブを受信すると、メインデバイスは印刷ジョブを取得し(S1702)、タンデムシステムとしてサブデバイスが接続されているかどうかを判定する(S1703)。タンデムシステムでなければ、受信した印刷ジョブのレンダリングを行い(S1709)、エンジンハードウェアにレンダリングした絵を送信する(S1710)。こうして通常の印刷処理が行われる。
図17のフローチャートでは、タンデムシステムのプリンタドライバから送られてきた複数の印刷ジョブを、メインデバイスがどのように制御するのかを示した動作フローである。まず、メインデバイスは印刷ジョブが到着するまで待ちの状態になっている(S1701)。次に印刷ジョブを受信すると、メインデバイスは印刷ジョブを取得し(S1702)、タンデムシステムとしてサブデバイスが接続されているかどうかを判定する(S1703)。タンデムシステムでなければ、受信した印刷ジョブのレンダリングを行い(S1709)、エンジンハードウェアにレンダリングした絵を送信する(S1710)。こうして通常の印刷処理が行われる。
一方、タンデムシステムになっていれば、メインデバイスは、メインドライバとサブドライバで生成された印刷されたジョブが結合した印刷ジョブを受信する。タンデムシステムに接続されているサブデバイスの数だけ複数の印刷ジョブが到着することがあるので、メインデバイスは印刷ジョブにあるジョブ識別IDを取得する。メインデバイスは、同じジョブ識別IDを持った印刷ジョブがタンデムシステムに接続されたサブデバイスの数だけ取得するまで待ち(S1704)、すべてそろった時点で印刷処理を開始する。このようにジョブ識別IDによりジョブとデバイスとを関連付ける。メインデバイスは、印刷ジョブに記載されているモデル名が一致するジョブをサブデバイスに送信する(S1705)。ここで、サブデバイスは印刷ジョブを受信するが、レンダリングは行わずためておく。メインデバイスは自分の印刷ジョブのレンダリングを行い(S1706)、エンジンハードウェアにレンダリングした絵を送信する(S1707)。メインデバイスの印刷が完了したら、タンデムシステムのサブデバイスに対して、ジョブ識別IDが同一のジョブの印刷を開始するように指示を送る(S1708)。指示が来たサブデバイスは、受信してあった印刷ジョブからジョブ識別IDが同一のジョブのレンダリングを行い、エンジンハードウェアにレンダリングした絵を送信する。このサブデバイスによる印刷処理は、メインデバイスが印刷ジョブ全体を完了した後で開始してもよいが、シートを単位として、1枚のシートの処理がメインデバイスで完了するつど、サブデバイスによる処理を開始してもよい。
上述したタンデムプリントシステムにおける印刷制御方法は、たとえば電子写真方式のプリンタを2つ接続してタンデムシステムを構成する。そして、前段のプリンタで通常のトナーを用いて画像形成し、後段のプリンタで透明トナーを用いてコーティングする場合などに応用できる。透明トナーに限らず、特色記録剤を用いてもよい。
このように、タンデムシステム専用のプリンタドライバを使用することなく、タンデムシステムを構成するそれぞれのデバイスのプリンタドライバが連携して動作することで、タンデムシステムを用いて印刷することが可能である。さらに、タンデムシステムを使用するにあたって、それぞれのプリンタドライバを少し変更するだけで、メインデバイスとサブデバイスの詳細な機能までフルに設定して使用することができる。また、タンデムシステムとして接続されるサブデバイスの種類が新しく追加されても、プリンタドライバを変更することなく、タンデムシステムの印刷を行うことができる。
本実施形態では、サブドライバの出力ポートをメインドライバの出力ポートと同一にしていた(S1508)。しかし、メインデバイスだけでなくサブデバイスにもプリンタドライバから接続している場合は、出力ポートを変更せず直接サブドライバがサブデバイスに印刷ジョブを送信してもよい。この場合は、1つのポートを複数の印刷ジョブが流れることがなくなるので、ネットワークの占有時間の軽減を図ることができる。
[実施形態2]
実施形態1とは別の印刷処理システムであっても、本発明を適用することができる。図4は第2の実施形態におけるXPSDrv(XPSドライバ)印刷システムのブロック構成図である。XPSDrvとはXPS(XML Paper Specification)と呼ばれる文書ファイルフォーマットをスプールデータとして使用し、印刷を行うプリンタドライバのことを指す。XPSDrv印刷処理システム全体はオペレーティングシステム上で動作しており、図1の補助記憶装置105のOS1053に相当する。プリントマネージャ414、GDItoXPS変換モジュール408、フィルタパイプラインマネージャはオペレーティングシステムに含まれるモジュールである。バージョン3プリンタドライバとフィルタパイプラインの各フィルタは、図1の補助記憶装置105にプリンタドライバ1052として格納されている。フィルタパイプラインマネージャはオペレーティングシステムに含まれるが、各フィルタはプリンタドライバのモジュールである。GDI印刷アプリケーション401とXPS印刷アプリケーション402は、図1の補助記憶装置105にアプリケーション1051として格納されている。ユーザはキーボード1031やマウス1032等の入力装置を使用する。この装置を用い、出力装置のモニタ1041に映し出されたGDI印刷アプリケーションプログラム401(以下GDIアプリ)、もしくはXPS印刷アプリケーションプログラム402(以下XPSアプリ)から印刷処理を実行する。印刷処理はプリンタの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行する。
実施形態1とは別の印刷処理システムであっても、本発明を適用することができる。図4は第2の実施形態におけるXPSDrv(XPSドライバ)印刷システムのブロック構成図である。XPSDrvとはXPS(XML Paper Specification)と呼ばれる文書ファイルフォーマットをスプールデータとして使用し、印刷を行うプリンタドライバのことを指す。XPSDrv印刷処理システム全体はオペレーティングシステム上で動作しており、図1の補助記憶装置105のOS1053に相当する。プリントマネージャ414、GDItoXPS変換モジュール408、フィルタパイプラインマネージャはオペレーティングシステムに含まれるモジュールである。バージョン3プリンタドライバとフィルタパイプラインの各フィルタは、図1の補助記憶装置105にプリンタドライバ1052として格納されている。フィルタパイプラインマネージャはオペレーティングシステムに含まれるが、各フィルタはプリンタドライバのモジュールである。GDI印刷アプリケーション401とXPS印刷アプリケーション402は、図1の補助記憶装置105にアプリケーション1051として格納されている。ユーザはキーボード1031やマウス1032等の入力装置を使用する。この装置を用い、出力装置のモニタ1041に映し出されたGDI印刷アプリケーションプログラム401(以下GDIアプリ)、もしくはXPS印刷アプリケーションプログラム402(以下XPSアプリ)から印刷処理を実行する。印刷処理はプリンタの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行する。
まずは、印刷に用いるプリンタ416の選択をする。これは、印刷を実行するプリンタ416に対応したプリンタドライバを選択することと同義である。次に印刷設定を作成する。印刷設定はアプリケーションが印刷設定用のメモリを確保し、アプリケーションかプリンタドライバのコンフィギュレーションモジュール405が、機種依存ファイル407を利用して設定データを埋めるという形で行われる。GDIアプリ401では、印刷設定データとしてバイナリのDEVMODE構造体403を用い、XPSアプリ402ではマークアップ言語のXMLで記載されたプリントチケット404を用いる。DEVMODE構造体403もプリントチケット404も、図5の構造のように、オペレーティングシステムが定義する標準領域とプリンタドライバが独自で定義する拡張領域を持つ。また、プリントチケット404は、図6にあるようなXML形式で記述された印刷設定情報であるので、標準領域と拡張領域は名前空間によって記載が分かれている。このDEVMODE構造体403もしくはプリントチケット404が印刷設定を保持しており、アプリケーションが直接書き換えることで印刷設定を変更する。プリンタ416に依存した専用の設定は、コンフィギュレーションモジュール405が持つプリンタドライバのユーザインタフェース(図7)を表示し、ユーザがユーザインターフェースを操作することで行う。
プリンタドライバは、ユーザインターフェースで入力された設定に従い、DEVMODE構造体403もしくはプリントチケット404のプリンタ416に依存した設定を変更する。印刷設定とは具体的に、出力する用紙サイズを「A4」にする、両面印刷を行う、カラーと白黒を切り替える、給紙段を指定するなどといった設定のことを指す。プリントチケット404は印刷設定がXML形式で記述されているので、XPSアプリ402がすべての設定値を直接変更して書き換えることは容易だが、従来のようにプリンタドライバのユーザインターフェースを使って設定変更してもかまわない。印刷設定は文書印刷のたびに作成するが、プリンタ416のオプション機器や、ユーザごとの環境設定など設定を保持しておきたいものは、プリンタドライバがオペレーティングシステムのレジストリデータベース417に保存する。印刷設定のユーザごとのデフォルト値はオペレーティングシステムのプリントマネージャ414が、レジストリデータベース417に保存する。最後に描画データの変換を行う。印刷設定が確定したら、ユーザはアプリケーションから印刷処理を実行する。GDIアプリ401から印刷する場合は、バージョン3プリンタドライバの形態を取るGDItoXPS変換モジュール408に描画データが送られ、XPSスプールファイル409が作成される。バージョン3プリンタドライバとは、Microsoft(登録商標)のWindows2000(登録商標)以降に対応したプリンタドライバのことを指す。このときGDItoXPS変換モジュール408はコンフィギュレーションモジュール405を呼び出し、印刷設定をDEVMODE構造体403からプリントチケット404に変換する。XPSアプリ402から印刷する場合は、XPSファイルをXPSアプリ自身が生成するのと、オペレーティングシステムがXPSアプリからの描画命令に応じてXPSファイルを生成するのと2通りの方法がある。どちらの方法であっても、印刷の途中でXPSスプールファイル409を生成する。このようにXPSDrv印刷システムは、印刷時に必ずXPSスプールファイル409を生成するのが特徴である。
XPSスプールファイル409が生成されたら、プリントフィルタパイプラインプロセスに処理が渡される。プリントフィルタパイプラインプロセスは複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル410でフィルタの数や順番を制御する。プリントフィルタパイプラインプロセスで動作するフィルタパイプラインマネージャはフィルタコンフィギュレーションファイル410に従って、この実施例では設定フィルタ411、レイアウトフィルタ412、レンダラフィルタ413の順に処理を行う。処理はXPSスプールファイル409をフィルタに受け渡すことで行われ、フィルタがそれぞれXPSスプールファイル409を加工し次のフィルタに渡していくことで処理が進む。最後にはプリンタが理解できるデータ言語であるプリンタ制御言語(以下、PDL(Page Description Language)と略す)となって出力される。もちろんプリンタ416がXPSスプールファイル409を直接読み込んで印刷できるXPSダイレクトプリンタであれば、すべてのフィルタをスルーして印刷してもよい。設定フィルタ411ではプリントチケットを読み込んで印刷に必要なデータをプリントチケットに書き込む処理を、レイアウトフィルタ412では倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。レイアウトフィルタ412では、XPSスプールファイル409に含まれる印刷設定プリントチケット404に従って動作する。よって、たとえば面付けの設定がプリントチケット404に存在しないときは、レイアウトフィルタ412は何も動作せずスルーして、次のフィルタにXPSスプールファイル409をそのまま渡す。最後のレンダラフィルタ413では、XPSスプールファイル409をレンダリングしてPDLに変換する。PDLデータは印刷処理のスケジュール管理を行うプリントマネージャ414で管理され、キュー(待ち行列)に印刷ジョブが次々と登録される。プリンタ416が印刷できる状態になったら、キューに登録した順にPDLデータをI/Oモニタ415を通して送信する。このようにして、アプリケーションからの印刷データをプリンタ言語に変換することがプリンタドライバの主な役目であり、実際の印刷処理が行われる。
次にXPSDrv印刷システムのタンデムシステムにおける印刷を行うための動作フローとして、図19のフローチャートを使って説明する。メインのプリンタドライバのフィルタはオペレーティングシステムからフィルタパイプラインマネージャを通じてXPSスプールファイルが渡される(S1901)。図12がXPSDrv印刷システムのタンデムシステムにおけるシステム図である。メインドライバにはタンデムシステムにおける印刷を行うタンデムフィルタ1201が存在する。タンデムフィルタ1201は、メインドライバの印刷処理の最初に処理を行う。タンデムフィルタ1201は、プリンタデバイスからタンデムシステムとして接続されているモデル名を取得する(S1902)。これは実施形態1で記載した図13のフローチャートと同じである。タンデムフィルタ1201は、タンデムシステムのモデル名が1つも取得できなかったらタンデムシステムではないと判断し(S1903)、通常の印刷処理に行く。タンデムフィルタ1201は、レジストリデータベース308からタンデムドライバの動作設定を取得し、サブドライバで印刷するかどうかを調べる(S1904)。サブドライバで印刷しない場合は、通常の印刷処理に行く。サブドライバで印刷するときは、タンデムフィルタ1201はまずジョブ識別IDを作成する(S1905)。レジストリデータベース308からタンデムドライバの動作設定に含まれるジョブ識別IDを取得し、ユーザによってジョブ識別IDが入力されていればその値を使用する。ジョブ識別IDが存在しなければ、タンデムフィルタ1201はXPSスプールファイルに関連づけられている印刷ジョブIDをベースにしたIDを作成する。オペレーティングシステム310はXPSスプールファイルを管理するためにそれぞれにIDをつけており、そのIDをタンデムフィルタ1201はフィルタパイプラインマネージャのインターフェースを経由して取得する。
タンデムフィルタ1201は、オペレーティングシステム310にインストールされているドライバからタンデムシステムのサブドライバを検索してリストを作る(S1906)。これは実施形態1で記載した図18のフローチャートと同じである。タンデムフィルタ1201はサブドライバのリストから1つサブドライバを取り出し(S1907)、サブドライバの出力ポートをメインドライバの出力ポートに変更する(S1908)。このとき、タンデムフィルタ1201はサブドライバの出力ポートをサブドライバのリストに関連づけて保持しておき、印刷の終了処理で元のポートに戻すときに使用する。タンデムフィルタ1201は入力されたXPSスプールファイルをそのままコピーし、補助記憶装置105に保存しておく(S1909)。タンデムフィルタ1201は、印刷設定プリントチケット404からサブドライバの印刷設定を取り出し、そこに作成したジョブ識別IDをプロパティとして追加して、保存したXPSスプールファイル409のコピーに保存する(S1910)。保存したXPSスプールファイル409のコピーを使って、タンデムフィルタ1201はサブドライバに印刷を行う(S1911)。これはXPSファイルをアプリケーション自身が作成して印刷している方式と同じなので、図12にあるようにすぐにサブドライバのフィルタパイプラインマネージャに渡されて印刷が開始される。タンデムフィルタ1201は、サブドライバリストからすべてのサブドライバについて印刷開始処理を行ったら(S1912)、メインドライバ自身での印刷処理に移る。タンデムフィルタ1201はレジストリデータベース308からタンデムドライバの動作設定を取得し、メインドライバで印刷を行うかどうかを判定する(S1913)。メインドライバで印刷を行うときは、XPSスプールファイルの印刷設定プリントチケットにジョブ識別IDを記載して、次のフィルタにXPSスプールファイルを送る(S1914)。
このようにXPSDrv印刷システムにおいても、タンデムシステム向けの印刷処理を、他の処理に影響を与えないタンデムフィルタを1つ追加するだけで実現できる。タンデムフィルタは機種に依存しているわけではないので、すべてのドライバにあらかじめ入れておけば、どのような組み合わせのタンデムシステムであっても、印刷処理を実現することができる。
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (11)
- 第1の印刷装置の排紙部と第2の印刷装置の給紙部とが接続されている印刷システムを制御する情報処理装置であって、
該情報処理装置は第1のプリンタドライバと第2のプリンタドライバとを有し、
前記第1のプリンタドライバは、
前記第1の印刷装置に対して該第1の印刷装置に接続された前記第2の印刷装置のモデル名を取得させる取得手段と、
前記取得手段により取得された第2の印刷装置のモデル名から前記第1の印刷装置に接続された第2の印刷装置を特定する特定手段と、
前記特定手段により特定された前記第2の印刷装置のドライバである第2のプリンタドライバを特定し、該第2のプリンタドライバの出力ポートを、前記第1の印刷装置のドライバである第1のプリンタドライバの出力ポートに合わせて変更する変更手段と、
前記特定手段により特定された前記第2のプリンタドライバを起動し、印刷対象データのうち、前記第2の印刷装置で処理されるデータを前記第2のプリンタドライバに送信する送信手段と、
前記印刷対象データのうち、第1の印刷装置にて印刷すべき印刷ジョブを生成する第1の生成手段とを有し、
前記第2のプリンタドライバは、
前記第1のプリンタドライバにより起動されると、前記送信手段で送信された前記第2の印刷装置に対応する印刷ジョブを用いて、前記第1の印刷装置に対応する印刷ジョブとは識別できるように生成する第2の生成手段を有し、
前記情報処理装置はさらに
前記第1の生成手段及び前記第2の生成手段で生成された印刷ジョブを関連付けて、前記変更手段にて変更された出力ポートから前記第1の印刷装置に送信する手段を有することを特徴とする情報処理装置。
- 前記第1のプリンタドライバは前記第1の印刷装置の印刷設定を受け付けるためのユーザインターフェースを表示する手段を備え、
前記第2のプリンタドライバは前記第2の印刷装置の印刷設定を受け付けるためのユーザインターフェースを表示する手段を備え、
前記第1のプリンタドライバのユーザインターフェースには、前記第2のプリンタドライバのユーザインターフェースを表示させるための操作部を含むことを特徴とする請求項1に記載の情報処理装置。
- 前記ユーザインターフェースでは、前記第1の印刷装置または前記第2の印刷装置またはその両方により画像形成を行うタンデムドライバの動作を設定でき、
前記タンデムドライバの動作の設定に応じて、前記第1のプリンタドライバおよび前記第2の印刷装置により、それぞれの印刷装置に対する印刷ジョブを生成することを特徴とする請求項2に記載の情報処理装置。
- 前記第2の印刷装置に対応する第2のプリンタドライバがインストールされていない場合には、当該第2のプリンタドライバを新たにインストールする手段を更に有することを特徴とする請求項1に記載の情報処理装置。
- 前記第1のプリンタドライバにてお気に入りに設定された第1の印刷設定と、前記第2のプリンタドライバにてお気に入りに設定された第2の印刷設定とを関連付けて登録し、
前記第1のプリンタドライバを起動させ、前記関連付けて登録された第1の印刷設定と第2の印刷設定を選択することにより、
前記第1の印刷設定を用いて前記第1の生成手段が、第1の印刷装置にて印刷すべき印刷ジョブを生成し、
前記第2の印刷設定を用いて前記第2の生成手段が、第2の印刷設定にて印刷すべき印刷ジョブを生成し、
前記送信手段が、前記第1の生成手段及び前記第2の生成手段で生成された印刷ジョブを関連付け、前記変更手段にて変更された出力ポートから前記第1の印刷装置に送信することを特徴とする請求項1に記載の情報処理装置。
- 第1の印刷装置の排紙部と第2の印刷装置の給紙部とが接続されている印刷システムを制御する情報処理装置の制御方法であって、
該情報処理装置は第1のプリンタドライバと第2のプリンタドライバを有し
前記第1のプリンタドライバは、
前記第1の印刷装置に対して該第1の印刷装置に接続された前記第2の印刷装置のモデル名を取得させる取得ステップと、
前記取得ステップにより取得された第2の印刷装置のモデル名から前記第1の印刷装置に接続された第2の印刷装置を特定する特定ステップと、
前記特定ステップにより特定された前記第2の印刷装置のドライバである第2のプリンタドライバを特定し、該第2のプリンタドライバの出力ポートを、前記第1の印刷装置のドライバである第1のプリンタドライバの出力ポートに合わせて変更する変更ステップと、
前記特定ステップにより特定された前記第2のプリンタドライバを起動し、印刷対象データのうち、前記第2の印刷装置で処理されるデータを前記第2のプリンタドライバに送信する送信ステップと、
前記印刷対象データのうち、第1の印刷装置にて印刷すべき印刷ジョブを生成する第1の生成ステップとを有し、
前記第2のプリンタドライバは、
前記第1のプリンタドライバにより起動されると、前記送信ステップで送信された前記第2の印刷装置に対応する印刷ジョブを用いて、前記第1の印刷装置に対応する印刷ジョブとは識別できるように生成する第2の生成ステップを有し、
前記情報処理装置の制御方法はさらに
前記第1の生成ステップ及び前記第2の生成ステップで生成された印刷ジョブを関連づけて、前記変更ステップにて変更された出力ポートから前記第1の印刷装置に送信するステップを有することを特徴とする情報処理装置の制御方法。
- 前記第1のプリンタドライバは前記第1の印刷装置の印刷設定を受け付けるためのユーザインターフェースを表示するステップを有し、
前記第2のプリンタドライバは前記第2の印刷装置の印刷設定を受け付けるためのユーザインターフェースを表示するステップを有し、
前記第1のプリンタドライバのユーザインターフェースには、前記第2のプリンタドライバのユーザインターフェースを表示させるための操作部を含むことを特徴とする請求項6に記載の情報処理装置の制御方法。
- 前記ユーザインターフェースでは、前記第1の印刷装置または前記第2の印刷装置またはその両方により画像形成を行うタンデムドライバの動作を設定でき、
前記タンデムドライバの動作の設定に応じて、前記第1のプリンタドライバおよび前記第2の印刷装置により、それぞれの印刷装置に対する印刷ジョブを生成することを特徴とする請求項7に記載の情報処理装置の制御方法。
- 前記第2の印刷装置に対応する第2のプリンタドライバがインストールされていない場合には、当該第2のプリンタドライバを新たにインストールするステップを更に有することを特徴とする請求項6に記載の情報処理装置の制御方法。
- 前記第1のプリンタドライバにてお気に入りに設定された第1の印刷設定と、前記第2のプリンタドライバにてお気に入りに設定された第2の印刷設定とを関連付けて登録し、
前記第1のプリンタドライバを起動させ、前記関連付けて登録された第1の印刷設定と第2の印刷設定を選択することにより、
前記第1の印刷設定を用いて前記第1の生成ステップが、第1の印刷装置にて印刷すべき印刷ジョブを生成し、
前記第2の印刷設定を用いて前記第2の生成ステップが、第2の印刷設定にて印刷すべき印刷ジョブを生成し、
前記送信ステップが、前記第1の生成ステップ及び前記第2の生成ステップで生成された印刷ジョブを関連づけ、前記変更ステップにて変更された出力ポートから前記第1の印刷装置に送信することを特徴とする請求項7に記載の情報処理装置の制御方法。
- 請求項7乃至10のいずれか一項に記載の情報処理装置の制御方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011030218A JP2012168814A (ja) | 2011-02-15 | 2011-02-15 | タンデムプリントシステムおよび印刷制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011030218A JP2012168814A (ja) | 2011-02-15 | 2011-02-15 | タンデムプリントシステムおよび印刷制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012168814A true JP2012168814A (ja) | 2012-09-06 |
Family
ID=46972896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011030218A Withdrawn JP2012168814A (ja) | 2011-02-15 | 2011-02-15 | タンデムプリントシステムおよび印刷制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012168814A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015007964A (ja) * | 2013-05-27 | 2015-01-15 | 株式会社リコー | システム、及び方法 |
US10983734B2 (en) | 2019-03-15 | 2021-04-20 | Fuji Xerox Co., Ltd. | Image processing system with independently changeable modules for generating an image to be printed and for receiving print settings |
-
2011
- 2011-02-15 JP JP2011030218A patent/JP2012168814A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015007964A (ja) * | 2013-05-27 | 2015-01-15 | 株式会社リコー | システム、及び方法 |
US10983734B2 (en) | 2019-03-15 | 2021-04-20 | Fuji Xerox Co., Ltd. | Image processing system with independently changeable modules for generating an image to be printed and for receiving print settings |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11016782B2 (en) | Information processing apparatus, information processing method, and storage medium | |
JP7086754B2 (ja) | 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム | |
WO2020004159A1 (ja) | 情報処理装置、制御方法及びプログラム | |
JP5921165B2 (ja) | 印刷システム、中継サーバ、印刷システムの制御方法、およびコンピュータプログラム | |
JP5072676B2 (ja) | 情報処理装置、情報処理方法及び印刷システム | |
US8139236B2 (en) | On-demand publishing system | |
JP5979893B2 (ja) | 情報処理装置、制御方法、及びプログラム | |
EP1501008A2 (en) | Imformation processing apparatus, information processing method, program, and computer-readable storage medium | |
US8649030B2 (en) | Controlling an information processing apparatus on which a plurality of printer drivers are installed | |
JP2006309353A (ja) | 画像形成システム、情報処理装置及びその制御方法 | |
US9122428B2 (en) | Information processing apparatus allowing a user certain print setting operations in an environment where an image processing apparatus is undetermined | |
JP2015118559A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2011084066A (ja) | 画像形成装置及びその処理方法 | |
JP2005271265A (ja) | 印刷管理装置、方法、プログラム、記憶媒体、及び印刷システム | |
KR20110026721A (ko) | 인쇄제어장치, 화상형성장치 및 인쇄제어방법 | |
US11520536B2 (en) | Information processing apparatus, control method and program therefor, and server system capable of communicating with the information processing apparatus | |
JP4428108B2 (ja) | 処理装置、印刷処理方法、印刷処理プログラム、及び印刷システム | |
JP2018049520A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2012168814A (ja) | タンデムプリントシステムおよび印刷制御方法 | |
JP2005174121A (ja) | 印刷設定方法及びコンピュータ | |
JP2019008673A (ja) | 情報処理装置およびドライバーインストール方法 | |
JP2016177700A (ja) | 印刷システム、印刷プログラム、印刷方法及び情報処理装置 | |
JP7328405B2 (ja) | 情報処理装置、情報処理装置の制御方法及び印刷設定アプリケーション | |
JP7493947B2 (ja) | 情報処理装置、情報処理装置の制御方法、プログラム、および記憶媒体 | |
WO2023181987A1 (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: 20140513 |