(57)【特許請求の範囲】
【請求項１】
印刷機能を有する出力機器と接続され、前記出力機器が認識する出力機器制御コマンドを生成する情報処理装置であって、
印刷機能を有する出力機器に対してユーザが所望の印刷機能を設定するための印刷設定ユーザインタフェースを提供する提供手段と、
設定された印刷機能に応じて、前記出力機器が認識する出力機器制御コマンドを、印刷を指示するアプリケーションモジュールが生成するか、当該コマンドを出力機器に送出するドライバモジュールが生成するかを決定する決定手段と、
決定されたモジュールにより生成された出力機器制御コマンドを出力する出力手段とを有することを特徴とする情報処理装置。
【請求項２】
前記提供手段は、Ｎ面印刷機能又は製本印刷機能の印刷機能を設定するための印刷設定ユーザインタフェースを提供することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、前記印刷機能に対して生成可能な出力機器制御コマンドが前記アプリケーションモジュールと前記ドライバモジュールとで異なる場合は、前記ドライバモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記決定手段は、少なくともＮ面印刷機能と製本印刷機能の何れかが指定されている場合は、前記ドライバモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記決定手段は、前記印刷機能に対して生成可能な出力機器制御コマンドが前記アプリケーションモジュールと前記ドライバモジュールとで同一の場合は、前記アプリケーションモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記出力機器制御コマンドを生成するモジュールをユーザが明示的に指定することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記アプリケーションモジュールをユーザが指定した場合は、印刷品質及び速度を優先させる場合であることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
請求項１乃至請求項７の何れか一項に記載の情報処理装置と印刷機能を有する出力機器とで構成されることを特徴とする印刷システム。
【請求項９】
印刷機能を有する出力機器と接続され、前記出力機器が認識する出力機器制御コマンドを生成する情報処理装置におけるコマンド生成方法であって、
印刷機能を有する出力機器に対してユーザが所望の印刷機能を設定するための印刷設定ユーザインタフェースを提供する提供工程と、
設定された印刷機能に応じて前記出力機器が認識する出力機器制御コマンドを印刷を指示するアプリケーションモジュールが生成するか、当該コマンドを出力機器に送出するドライバモジュールが生成するかを決定する決定工程と、
決定されたモジュールにより生成された出力機器制御コマンドを出力する出力工程とを有することを特徴とするコマンド生成方法。
【請求項１０】
前記提供工程は、Ｎ面印刷機能又は製本印刷機能の印刷機能を設定するための印刷設定ユーザインタフェースを提供することを特徴とする請求項９に記載のコマンド生成方法。
【請求項１１】
前記決定工程は、前記印刷機能に対して生成可能な出力機器制御コマンドが前記アプリケーションモジュールと前記ドライバモジュールとで異なる場合は、前記ドライバモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項９に記載のコマンド生成方法。
【請求項１２】
前記決定工程は、少なくともＮ面印刷機能と製本印刷機能の何れかが指定されている場合は、前記ドライバモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項１１に記載のコマンド生成方法。
【請求項１３】
前記決定工程は、前記印刷機能に対して生成可能な出力機器制御コマンドが前記アプリケーションモジュールと前記ドライバモジュールとで同一の場合は、前記アプリケーションモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項９に記載のコマンド生成方法。
【請求項１４】
前記出力機器制御コマンドを生成するモジュールをユーザが明示的に指定することを特徴とする請求項９に記載のコマンド生成方法。
【請求項１５】
前記アプリケーションモジュールをユーザが指定した場合は、印刷品質及び速度を優先させる場合であることを特徴とする請求項１４に記載のコマンド生成方法。
【請求項１６】
印刷機能を有する出力機器と接続され、前記出力機器が認識する出力機器制御コマンドを生成する情報処理装置におけるコマンド生成方法のプログラムが格納されたコンピュータ読み取り可能な記憶媒体であって、
印刷機能を有する出力機器に対してユーザが所望の印刷機能を設定するための印刷設定ユーザインタフェースを提供するプログラムと、
設定された印刷機能に応じて前記出力機器が認識する出力機器制御コマンドを印刷を指示するアプリケーションモジュールが生成するか、当該コマンドを出力機器に送出するドライバモジュールが生成するかを決定するプログラムと、
決定されたモジュールにより生成された出力機器制御コマンドを出力するプログラムとを含むことを特徴とする記憶媒体。
【請求項１７】
前記提供するプログラムは、Ｎ面印刷機能又は製本印刷機能の印刷機能を設定するための印刷設定ユーザインタフェースを提供することを特徴とする請求項１６に記載の記憶媒体。
【請求項１８】
前記決定するプログラムは、前記印刷機能に対して生成可能な出力機器制御コマンドが前記アプリケーションモジュールと前記ドライバモジュールとで異なる場合は、前記ドライバモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項１６に記載の記憶媒体。
【請求項１９】
前記決定するプログラムは、少なくともＮ面印刷機能と製本印刷機能の何れかが指定されている場合は、前記ドライバモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項１８に記載の記憶媒体。
【請求項２０】
前記決定するプログラムは、前記印刷機能に対して生成可能な出力機器制御コマンドが前記アプリケーションモジュールと前記ドライバモジュールとで同一の場合は、前記アプリケーションモジュールが当該出力機器制御コマンドを生成する旨決定することを特徴とする請求項１６に記載の記憶媒体。
【請求項２１】
前記出力機器制御コマンドを生成するモジュールをユーザが明示的に指定することを特徴とする請求項１６に記載の記憶媒体。
【請求項２２】
前記アプリケーションモジュールをユーザが指定した場合は、印刷品質及び速度を優先させる場合であることを特徴とする請求項２１に記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷機能を有する出力機器と接続され、前記出力機器が認識する出力機器制御コマンドを生成する情報処理装置、印刷システム、及びコマンド生成方法に関するものである。
【０００２】
【従来の技術】
例えば、Microsoft社のWindowsのようなオペレーティングシステム（ＯＳ）上で動作する印刷システムにおいて、通常印刷アプリケーションからの印刷データ（一般にＧＤＩ関数と呼ばれる）はＯＳのグラフィックエンジンによりプリンタドライバが解釈可能な論理描画要求（一般にＤＤＩ関数と呼ばれる）に変換されて、プリンタ機器を制御するプリンタドライバへと送信され、プリンタドライバがその論理描画要求を解釈し、プリンタ機器が認識できるプリンタ制御コマンド（一般にページ記述言語（ＰＤＬ）と呼ばれる）を生成している。
【０００３】
また、その他の印刷シーケンスとして、印刷アプリケーションが独自にプリンタ機器が認識できるプリンタ制御コマンドを生成するものも存在する。具体例として、PageMaker（登録商標）、Photoshop（登録商標）、CorelDraw!（登録商標）等のAdobe系アプリケーションは、アプリケーション自身の機能によりＰＳ（Postscript）データを発行することができる。このようにアプリケーションが独自にプリンタ制御コマンドを生成する印刷システムにおいて、印刷アプリケーションはプリンタドライバの許可を得て、独自にプリンタ制御コマンドを生成し、プリンタドライバの大部分の機能を介さずに印刷データを直接プリンタ機器に送信することが可能である。
【０００４】
この場合、プリンタドライバはアプリケーションによるプリンタ制御コマンド生成をアプリケーションとのネゴシエーションにより抑圧することが可能である。しかし、一般的に、アプリケーションが独自にプリンタ制御コマンドを生成することにより、アプリケーション所望のプリンタ制御コマンドを生成することが可能となり、印刷品質が向上する。また、プリンタドライバの処理が少なくなるため、アプリケーションによる印刷開始から印刷終了までに動作するプログラム群（プリンタドライバの複数のモジュールの中の一部）が少なくなり、印刷速度も向上する。このような理由から従来、プリンタドライバはアプリケーションがプリンタ制御コマンドを生成可能な場合はその抑圧を行わずに、アプリケーション独自にプリンタ制御コマンドを生成し、印刷出力を行っている。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来のような、プリンタ制御コマンドを生成可能なアプリケーションを含む印刷システムにおいては、アプリケーションが独自にプリンタ制御コマンドを生成し、プリンタドライバはアプリケーションから受け取ったプリンタ制御言語（ＰＳデータ）をプリンタ機器に送信していた。そのため、印刷システムにおいては、アプリケーションが独自にプリンタ制御コマンドを生成し、プリンタドライバの大半の機能を介さずにプリンタ機器に直接印刷データを送信している。ここで、プリンタドライバの提供している機能として、Ｎ面印刷機能や製本印刷機能などで実行されるページレイアウト機能や、「社内秘」や「まる秘」などのスタンプを付加する情報付加機能が存在している。これらの機能はプリンタドライバで一度、ＯＳを介して受け取る描画命令（ＤＤＩ関数）を解析して中間データとしてスプールし、ページレイアウトや情報付加を行ったのち、プリンタドライバの印刷データ生成モジュールに渡している。従って、ＯＳを介して受け取るデータが描画命令（ＤＤＩ関数）ではなく、印刷データ（ＰＳデータ）である場合は、プリンタドライバはユーザにより設定されたＮ面印刷機能（１物理ページに複数論理ページを印刷する機能）や、製本印刷機能（出力結果が製本されるように面付けて印刷する機能）等のプリンタドライバ機能を遂行できなくなり、これらの付加機能は使えなくなるという欠点があった。
【０００６】
本発明は、上記課題を解決するためになされたものであり、ユーザにより設定された印刷機能に応じて、出力機器が認識する出力機器制御コマンドをアプリケーションが生成するかドライバが生成するかを決定することにより、印刷品質及び速度を向上させた情報処理装置、印刷システム、及びコマンド生成方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明は、印刷機能を有する出力機器と接続され、前記出力機器が認識する出力機器制御コマンドを生成する情報処理装置であって、印刷機能を有する出力機器に対してユーザが所望の印刷機能を設定するための印刷設定ユーザインタフェースを提供する提供手段と、設定された印刷機能に応じて、前記出力機器が認識する出力機器制御コマンドを、印刷を指示するアプリケーションモジュールが生成するか、当該コマンドを出力機器に送出するドライバモジュールが生成するかを決定する決定手段と、決定されたモジュールにより生成された出力機器制御コマンドを出力する出力手段とを有することを特徴とする。
【０００８】
また上記目的を達成するために、本発明は、印刷機能を有する出力機器と接続され、前記出力機器が認識する出力機器制御コマンドを生成する情報処理装置におけるコマンド生成方法であって、印刷機能を有する出力機器に対してユーザが所望の印刷機能を設定するための印刷設定ユーザインタフェースを提供する提供工程と、設定された印刷機能に応じて前記出力機器が認識する出力機器制御コマンドを印刷を指示するアプリケーションモジュールが生成するか、当該コマンドを出力機器に送出するドライバモジュールが生成するかを決定する決定工程と、決定されたモジュールにより生成された出力機器制御コマンドを出力する出力工程とを有することを特徴とする。
【０００９】
【実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【００１０】
図１は、本実施形態による印刷システムの構成を示すブロック図である。尚、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続され、所定の処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００１１】
同図において、３０００はホストコンピュータであり、ＲＯＭ３のプログラムＲＯＭ３ｂ或いは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形，イメージ，文字，表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００１２】
尚、このＲＯＭ３のプログラムＲＯＭ３ｂ或いは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下、ＯＳ）等が記憶され、またＲＯＭ３のフォントＲＯＭ３ａ或いは外部メモリ１１には、上述の文書処理の際に使用するフォントデータ等が記憶され、同様にＲＯＭ３のデータ用ＲＯＭ３ｃ或いは外部メモリ１１には上述の文書処理等を行う際に使用する各種データが記憶されている。
【００１３】
２はＲＡＭであり、ＣＰＵ１の主メモリ，ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）であり、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）であり、ＣＲＴディスプレイ（ＣＲＴ）１０への表示を制御する。７はディスクコントローラ（ＤＫＣ）であり、ブートプログラム，種々のアプリケーション，フォントデータ，ユーザファイル，編集ファイル等を記憶するハードディスク（ＨＤ），フロッピーディスク（ＦＤ）等の外部メモリ１１へのアクセスを制御する。８はプリンタコントローラ（ＰＲＴＣ）であり、所定の双方向性インタフェース（インタフェース）２１を介してプリンタ１５００に接続され、プリンタ１５００との通信制御処理を実行する。
【００１４】
尚、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、印刷設定や、印刷シーケンスの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００１５】
一方、プリンタ１５００において、１２はプリンタＣＰＵであり、ＲＯＭ１３のプログラムＲＯＭ１３ｂに記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続された各種のデバイスへのアクセスを総括的に制御し、印刷部インタフェース（Ｉ／Ｆ）１６を介して接続された印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００１６】
尚、このＲＯＭ１３のプログラムＲＯＭ１３ｂには。ＣＰＵ１２の制御プログラム等が記憶され、またＲＯＭ１３のフォントＲＯＭ１３ａには、上述の出力情報を生成する際に使用するフォントデータ等が記憶され、同様にＲＯＭ１３のデータＲＯＭ１３ｃにはハードディスク等の外部メモリ１４がないプリンタの場合、ホストコンピュータ３０００上で利用される情報等が記憶されている。
【００１７】
また、ＣＰＵ１２は入力部１８を介してホストコンピュータ３０００と通信が可能となっており、プリンタ１５００内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００１８】
１９はＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭであり、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。尚、ＲＡＭ１９は出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。上述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によってアクセスが制御される。また、外部メモリ１４は、オプションとして接続され、フォントデータ，エミュレーションプログラム，フォームデータ等を記憶する。１５０１は操作パネルであり、操作のための各種スイッチ及びＬＥＤ表示器等が配されている。
【００１９】
尚、上述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。更に、不図示のＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしても良い。
【００２０】
図２は、プリンタ等の印刷装置が直接接続されているか、或いはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理を実行するプログラムモジュールの構成を示す図である。ここで、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３及びシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用する他のモジュールによってＲＡＭ２にロードされ、実行されるプログラムモジュールである。尚、アプリケーション２０１及びプリンタドライバ２０３は外部メモリ１１のＦＤや不図示のＣＤ−ＲＯＭ或いは不図示のネットワークを経由して外部のハードディスク（ＨＤ）に追加することが可能となっている。
【００２１】
また、外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力を行う。このグラフィックエンジン２０２は印刷装置毎に用意されたプリンタドライバ２０３と同様に、外部メモリ１１からＲＡＭ２にロードされ、アプリケーション２１０からの出力をプリンタドライバ２０３を用いてプリンタの制御コマンドに変換する。プリンタドライバにより生成されたプリンタ制御コマンドはＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て、インタフェース２１経由でプリンタ１５００へ出力される仕組みとなっている。
【００２２】
これに対して、アプリケーションが独自にプリンタ制御コマンドを生成可能なアプリケーションも存在する。この場合にはアプリケーションにより生成されたプリンタ制御コマンドはグラフィックエンジン２０２、プリンタドライバ２０３の大部分の処理をバイパスしてシステムスプーラ２０４へと送信される。上述のプリンタ制御コマンドを生成可能なアプリケーションとして、例えばPageMakerやPhotoshop、CorelDraw等のAdobe系アプリケーション、その他QuarkXPressなどのDTP系アプリケーションが存在する。
【００２３】
上述したように、図２に示すような印刷システムにおいて、アプリケーション２０１には独自でプリンタ１５００が認識するプリンタ制御コマンドを生成可能なものが存在する。このようなアプリケーションが独自にプリンタ制御コマンドを生成するか否かを決定するシーケンスを図３に示す。
【００２４】
まず、印刷開始時、アプリケーション２０１はグラフィックエンジン２０２に対してアプリケーションが独自にプリンタ制御コマンドを生成しても良いか否かを問い合わせる（３０１）。そして、グラフィックエンジン２０２がその問い合わせをプリンタドライバ２０３に対して再度行い（３０２）、プリンタドライバ２０３がその返答（アプリケーションによるプリンタ制御コマンドの生成を許可するかしないか）をグラフィックエンジン２０２に対して行う（３０３）。これにより、グラフィックエンジン２０２はプリンタドライバ２０３より受けた返答をアプリケーション２０１に返答する。
【００２５】
上述のシーケンスにより、アプリケーション２０１は受け取った返答が、アプリケーション２０１で独自にプリンタ制御コマンドを生成することを許可しないことを示す「不可」の場合、印刷開始時にグラフィックエンジン２０２に対して論理描画要求を行う。また、受け取った返答がアプリケーション２０１が独自にプリンタ制御コマンドを生成することを許可することを示す「可」の場合は独自にプリンタ制御コマンドを生成する。
【００２６】
次に、プリンタドライバ２０３から受け取った返答がアプリケーション２０１でプリンタ制御コマンドを生成することを許可しないことを示す「不可」の場合の印刷シーケンスを図４に示す。
【００２７】
まず、印刷開始時に、アプリケーション２０１は独自にプリンタ制御コマンドの生成を許可されていないため、グラフィックエンジン２０２に対して論理的な描画要求（ＧＤＩ関数の発行処理）を行う（ステップＳ４０１）。この論理描画要求はグラフィックエンジン２０２においてプリンタドライバに解釈可能な第二の論理描画要求（ＤＤＩ関数）に変換され、グラフィックエンジン２０２からプリンタドライバ２０３に対して送られる（ステップＳ４０２）。そして、プリンタドライバ２０３がこの論理描画要求を解釈し、プリンタが認識できるプリンタ制御コマンドに変換し（ステップＳ４０３）、システムスプーラ２０４に送信する（ステップＳ４０４）。これにより、システムスプーラ２０４からプリンタ制御コマンドが適当なタイミングでプリンタへと送信され、印刷がなされる。
【００２８】
一方、プリンタドライバ２０３から受け取った返答がアプリケーション２０１で独自にプリンタ制御コマンドを生成することを許可することを示す「可」であった場合の印刷シーケンスを図５に示す。
【００２９】
この場合、印刷開始時に、アプリケーション２０１は独自にプリンタ制御コマンドの生成が可能であることを認識し、独自にプリンタ制御コマンドを生成する（ステップＳ５０１）。そして、生成したプリンタ制御コマンドをグラフィックエンジン２０２とプリンタドライバ２０３の一部の機能のみ（アプリケーション２０１から受け取ったコマンドをシステムスプーラ２０４へと送信する機能）を使って直接システムスプーラ２０４へと送信する（ステップＳ５０２）。具体的には、アプリケーション２０１は独自に印刷データ（ポストスクリプトコード）を生成して、所定の関数、例えばEscape(PASSTHOUGH)を使って送信する。これにより、システムスプーラ２０４はこの印刷データを適当なタイミングでプリンタへと送信し、印刷がなされる。
【００３０】
尚、図３に示した印刷シーケンスを決定するプリンタドライバ２０３からアプリケーション２０１へのプリンタ制御コマンド生成の可否の解答の決定方法は、例えばアプリケーション２０１が生成可能なプリンタ制御コマンドが、プリンタドライバ２０３が管理するプリンタのプリンタ制御コマンドと同一の場合には、アプリケーション２０１が独自にプリンタ制御コマンドを生成することを許可する「可」を返答する。これに対して、アプリケーション２０１が独自に生成可能なプリンタ制御コマンドが、プリンタドライバ２０３の管理するプリンタのプリンタ制御コマンドと異なる場合にはアプリケーション２０１によるプリンタ制御コマンドの生成を許可しないことを示す「不可」を返す。ここでいうプリンタドライバが生成するプリンタ制御コマンドとアプリケーションが生成するプリンタ制御コマンドが同一の場合とは、プリンタドライバが提供する印刷設定を行うためのユーザインタフェースにおいて、印刷設定（印刷属性）でページレイアウト機能や情報付加機能がユーザにより設定されていない場合に相当する。
【００３１】
一般的に、プリンタ制御コマンドを独自に生成可能なアプリケーション２０１を含む印刷システムにおいては、アプリケーション２０１が独自にプリンタ制御コマンドを生成し、グラフィックエンジン２０２及びプリンタドライバ２０３の大部分の機能を省略して印刷する図５に示した印刷シーケンスの方が印刷全体の印刷品質・速度は向上する。これは、アプリケーションの意図する細かい設定を含むプリンタ制御コマンドを独自の機構で生成することを可能とし、また印刷開始から終了まで介在するプログラム群が減少するからである。
【００３２】
しかし、アプリケーションが独自にプリンタ制御コマンドを生成する場合には、グラフィックエンジン、プリンタドライバは一部の機能においてのみしか介在できないため、Ｎ面印刷機能や製本印刷機能等のプリンタドライバの付加機能は使うことが制限される。
【００３３】
［第１の実施形態］
第１の実施形態は、このような印刷品質・速度とプリンタドライバの付加機能のどちらを優先するかを印刷機能に応じて変更可能とするものである。即ち、ユーザによりプリンタドライバのユーザインタフェースに設定された印刷設定からプリンタ制御コマンドを生成する部分（アプリケーションかプリンタドライバ）を決定し、印刷シーケンスを変更する方法を提供するものである。
【００３４】
以下に、第１の実施形態における印刷シーケンスの制御について説明する。
【００３５】
まず、印刷の前段階として、ユーザはＣＲＴ１０に表示したプリンタドライバ２０３のユーザインタフェースによりプリンタドライバ２０３の印刷設定を行う。尚、本実施形態では、簡潔化のためにプリンタドライバ２０３の印刷設定画面は図６に示すようなユーザインタフェースを表示し、ユーザに印刷機能の設定をさせるものとする。図において、６０１はＮ面印刷機能（１物理ページに複数の論理ページを印刷する機能）をユーザがＯＮに設定した状態を示し、また６０２はユーザが２面印刷（１物理ページに２論理ページを印刷）を設定した状態を示している。本実施形態において、Ｎ面印刷機能はプリンタドライバ２０３独自の機能であるものとし、本機能はアプリケーション２０１が生成するプリンタ制御コマンドでは実現不可能であるものとする。この時、Ｎ面印刷機能を実現するために、プリンタドライバ２０３はアプリケーション２０１に対して、アプリケーション２０１独自でプリンタ制御コマンド発行することを不許可にし、プリンタドライバ２０３が独自にプリンタ制御コマンドを出力できるよう印刷シーケンスを制御する。
【００３６】
ここで、ユーザはアプリケーション２０１を用いて図７に示すような２ページのデータを印刷するものとする。
【００３７】
印刷開始時に、アプリケーション２０１は図３に示したシーケンスでプリンタドライバ２０３にアプリケーション２０１が独自にプリンタ制御コマンドを生成可能か否かを問い合せるために、グラフィックエンジン２０２に本問い合わせを発行する（３０１）。次に、グラフィックエンジン２０２は本問い合わせをプリンタドライバ２０３に対して行う（３０２）。ここで、プリンタドライバ２０３はユーザインタフェース上のユーザ設定が図６に示すように、プリンタドライバ２０３独自の機能を使うＮ面印刷機能が設定されているため、アプリケーション２０１に独自にプリンタ制御コマンドの生成を許可しないことを示す「不許可」を返す（３０３）。
【００３８】
この結果は、グラフィックエンジン２０２を介してアプリケーション２０１に伝達される（３０４）。アプリケーション２０１がこの返答を受け取ると、この結果から独自にプリンタ制御コマンドを生成せずにグラフィックエンジン２０２に対して論理描画要求を行うこととなる。従って、本実施形態においては、図４に示す印刷シーケンスとなる。
【００３９】
図４において、印刷開始後、アプリケーション２０１はグラフィックエンジン２０２に対して論理描画印字要求を行う（ステップＳ４０１）。ここで、アプリケーション２０１がグラフィックエンジン２０２に対して発行する論理描画要求の例は図８に示すようになる。この論理描画印字要求は、グラフィックエンジン２０２とプリンタドライバ２０３が認識する論理的なものであり、プリンタ機器が認識するものではない。図８において、８０１は１ページ目の座標（１０、１０）に文字列“Page 1”を印字することを示し、また８０２は２ページ目の座標（１０、１０）に文字列“Page 2”を印字することを示している。
【００４０】
この論理描画要求はグラフィックエンジン２０２からプリンタドライバ２０３へと伝達される（ステップＳ４０２）。そして、プリンタドライバ２０３がこの論理描画要求を解釈し、Ｎ面印刷機能を施したプリンタ制御コマンドを生成する（ステップＳ４０３）。上述のプリンタドライバ２０３によって生成された２面印刷機能が施されたプリンタ制御コマンドの一例を図９に示す。尚、図９に示すプリンタドライバ２０３によって生成されたプリンタ制御コマンドはプリンタが認識可能な２面印刷データである。本データはシステムスプーラ２０４へと送信され（ステップＳ４０４）、印刷される。図１０は、２面印刷データに基づいてプリンタが印刷した印刷結果を示す図である。
【００４１】
また、ユーザが図１１に示す１１０１のように「Ｎ面印刷機能を使う」をオフに設定し、図７に示した２ページのデータを印刷する場合、図３に示すシーケンスによりアプリケーション２０１が独自にプリンタ制御コマンドを生成することを許可することを示す「可」を受け取り、印刷までの印刷シーケンスは図５に示すようになる。
【００４２】
印刷開始時に、アプリケーション２０１は上述の場合と同様に、グラフィックエンジン２０２を介してプリンタドライバ２０３に独自にプリンタ制御コマンドを生成可能か否かを問い合わせる（３０１，３０２）。ここで、プリンタドライバ２０３はユーザインタフェース上のユーザ設定が図１１に示すように、「Ｎ面印刷機能を使う」の設定がオフ、即ち、プリンタドライバ機能を使わない設定になっているため、アプリケーション２０１が独自にプリンタ制御コマンドの生成を行うことを可能とする「可」を返す（３０３）。
【００４３】
これにより、アプリケーション２０１はグラフィックエンジン２０２を介して上述の返答を受け取り（３０４）、この結果から、独自にプリンタ制御コマンドを生成する（ステップＳ５０１）。ここで、アプリケーション２０１が生成するプリンタ制御コマンドは図９に示すようになる。生成されたコマンドのデータは一部のグラフィックエンジン２０２とプリンタドライバ２０３の機能（システムスプーラ２０４へとデータを転送する機能）を用いてシステムスプーラ２０４へと転送され（ステップＳ５０２）、プリンタへと転送され、印刷される。図１０は、印刷された印刷結果を示す図である。
【００４４】
尚、本実施形態において、アプリケーション２０１が独自に生成するプリンタ制御コマンドは、プリンタ機器が認識する、プリンタドライバ２０３が出力するものと同様の印刷出力を得るものであれば、図９に示すようなプリンタドライバ２０３が生成するものと同じである必要はない。
【００４５】
第１の実施形態によれば、ユーザがプリンタドライバ付加機能をユーザインタフェースより選択した場合、即ちアプリケーションとプリンタドライバとで生成可能なプリンタ制御コマンドが異なる場合には、自動的にプリンタドライバ自身がプリンタ制御コマンドを生成することにより、ユーザによる設定を有効にすることが可能となる。
【００４６】
また、ユーザによりプリンタドライバ付加機能が選択されていない場合、即ちアプリケーションとプリンタドライバとで生成可能なプリンタ制御コマンドが同一の場合には、アプリケーションがプリンタ制御コマンドを生成することにより、印刷品質・速度を向上させることができる。
【００４７】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について説明する。
【００４８】
前述した第１の実施形態では、印刷品質・速度とプリンタドライバの付加機能のどちらを優先するかを印刷機能に応じて変更可能とするものであったが、第２の実施形態では印刷品質・速度とＮ面印刷機能等のプリンタドライバの付加機能のどちらを優先するかをユーザがプリンタドライバのユーザインタフェース上から明示的に指定するものである。
【００４９】
以下に、第２の実施形態における印刷シーケンスの制御について説明する。
【００５０】
まず、印刷の前段階として、ユーザはＣＲＴ１０に表示したプリンタドライバ２０３のユーザインタフェースにより印刷品質・速度とプリンタドライバ機能のどちらを優先するか設定を行う。尚、本実施形態では、簡潔化のために設定画面は図１２に示すようなユーザインタフェースを表示し、ユーザにどちらを優先するか設定させるものとする。同図において、１２０１はプリンタドライバ２０３でプリンタ制御コマンドを生成することを示す「プリンタドライバ機能優先」の設定である。１２０２はアプリケーション２０１においてプリンタ制御コマンドを生成することを示す「印刷品質・速度優先」の設定である。
【００５１】
ここで、ユーザが図１２に示すように設定したとすれば（「プリンタドライバ機能優先」がＯＮ）、プリンタドライバ２０３はアプリケーション２０１に対して、アプリケーション２０１が独自にプリンタ制御コマンドの発行を不可にし、プリンタドライバ２０３がプリンタ制御コマンドを生成するよう印刷シーケンスを制御する。この場合、印刷開始から印刷終了まで印刷のシーケンスは図３及び図４に示すようになる。
【００５２】
印刷開始時に、アプリケーション２０１は図３に示したように、グラフィックエンジン２０２を介してプリンタドライバ２０３に独自にプリンタ制御コマンドを生成可能か問い合わせ（３０１，３０２）、プリンタドライバ２０３はユーザインタフェース上のユーザ設定が図１２に示すように、「プリンタドライバ機能優先」がＯＮになっているのでプリンタドライバ２０３がプリンタ制御コマンドの生成処理を行うことを示す「不許可」を返す（３０３）。
【００５３】
アプリケーション２０１は、グラフィックエンジン２０２を介してこの返答を受け取り（３０４）、この結果から、独自にプリンタ制御コマンドを生成せずに、グラフィックエンジン２０２に対して論理描画要求を行う（ステップＳ４０１）。グラフィックエンジン２０２はこの論理描画要求をプリンタドライバ２０３へと伝達する（ステップＳ４０２）。そして、プリンタドライバ２０３はこの論理描画要求を解釈し、プリンタ制御コマンドを生成する（ステップＳ４０３）。このプリンタ制御コマンドはシステムスプーラ２０４へと送信され（ステップＳ４０４）、システムスプーラ２０４からプリンタへと送信され、印刷される。
【００５４】
また、ユーザが図１３に示す１３０１のように「印刷品質・速度優先」を選択した場合、印刷開始から終了までの印刷シーケンスは図３及び図５に示すようになる。
【００５５】
印刷開始時に、アプリケーション２０１は上述の場合と同様に、グラフィックエンジン２０２を介してプリンタドライバ２０３に独自にプリンタ制御コマンドを生成可能か否かを問い合わせる（３０１，３０２）。ここで、プリンタドライバ２０３はユーザインタフェース上のユーザ設定が図１３に示すように、「印刷品質・速度優先」となっているため、アプリケーション２０１が独自にプリンタ制御コマンドの生成を行うことを可能とする「可」を返答する（３０３）。
【００５６】
これにより、アプリケーション２０１はグラフィックエンジン２０２を介して上述の返答を受け取り（３０４）、この結果から、独自にプリンタ制御コマンドを生成する（ステップＳ５０１）。ここで、アプリケーション２０１により生成されたプリンタ制御コマンドのデータは、一部のグラフィックエンジン２０２とプリンタドライバ２０３の機能（システムスプーラ２０４へとデータを転送する機能）を用いてシステムスプーラ２０４へと転送され（ステップＳ５０２）、プリンタへと転送され、印刷される。
【００５７】
第２の実施形態によれば、ユーザが明示的にユーザインタフェース上から指定することにより、プリンタドライバ機能優先、印刷品質・速度優先のユーザ所望の印刷シーケンスを決定することが可能となる。
【００５８】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００５９】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００６０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６１】
プログラムコードを供給するための記憶媒体としては、例えばフロッピーディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６３】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６４】
【発明の効果】
以上説明したように、本発明によれば、ユーザにより設定された印刷機能に応じて、出力機器が認識する出力機器制御コマンドをアプリケーションが生成するかドライバが生成するかを決定することにより、印刷品質及び速度を向上させることが可能となる。
【図面の簡単な説明】
【図１】本実施形態による印刷システムの構成を示すブロック図である。
【図２】ホストコンピュータにおける典型的な印刷処理を実行するプログラムモジュールの構成を示す図である。
【図３】アプリケーションが独自にプリンタ制御コマンドを生成するか否かを決定するシーケンスを示す図である。
【図４】プリンタドライバ２０３から受け取った返答がアプリケーション２０１でプリンタ制御コマンドを生成することを許可しないことを示す「不可」の場合の印刷シーケンスを示すフローチャートである。
【図５】プリンタドライバ２０３から受け取った返答がアプリケーション２０１で独自にプリンタ制御コマンドを生成することを許可することを示す「可」であった場合の印刷シーケンスを示すフローチャートである。
【図６】プリンタドライバ２０３の印刷設定画面としてのユーザインタフェースを示す図である。
【図７】ユーザが印刷する２ページのデータを示す図である。
【図８】アプリケーション２０１がグラフィックエンジン２０２に対して発行する論理描画要求を示す図である。
【図９】プリンタドライバ２０３によって生成された２面印刷機能が施されたプリンタ制御コマンドの一例を示す図である。
【図１０】２面印刷データに基づいてプリンタが印刷した印刷結果を示す図である。
【図１１】ユーザが「Ｎ面印刷機能を使う」をオフに設定した状態を示す図である。
【図１２】プリンタドライバ機能優先の設定を示す図である。
【図１３】印刷品質・速度優先の設定を示す図である。
【符号の説明】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
１２  ＣＰＵ
１３  ＲＯＭ
１９  ＲＡＭ
２０１  アプリケーション
２０２  グラフィックエンジン
２０３  プリンタドライバ
２０４  システムスプーラ
１５００  プリンタ
３０００  ホストコンピュータ
【図１】
0003733284.tif 000002
【図２】
0003733284.tif 000003
【図３】
0003733284.tif 000004
【図４】
0003733284.tif 000005
【図５】
0003733284.tif 000006
【図６】
0003733284.tif 000007
【図７】
0003733284.tif 000008
【図８】
0003733284.tif 000009
【図９】
0003733284.tif 000010
【図１０】
0003733284.tif 000011
【図１１】
0003733284.tif 000012
【図１２】
0003733284.tif 000013
【図１３】
0003733284.tif 000014