(57)【要約】【課題】  アプリケーションが出力する描画データに印刷設定構造にプライベート構造が無い場合などは、プリンタから取得したプリンタの用紙サイズを印刷設定構造に反映できない。【解決手段】  印刷設定構造補正機能を有するユーザインタフェースドライバを介して完全な印刷設定構造を作成し、実際に印刷処理を行なうプリントプロセッサとプリンタグラフィックドライバは作成された完全な印刷設定構造を用いる。【選択図】  図６
2005148927.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置で印刷すべき印刷データを生成する情報処理装置であって、
文書のページを印刷するにあたり、文書の描画命令を一時中間ファイルに印刷データとして格納する印刷データ格納手段と、
前記一時中間ファイルから前記印刷データを抽出する印刷データ抽出手段と、
前記印刷データ抽出手段から取得した印刷データをページ単位でレイアウトするページレイアウト手段とを有し、
前記印刷データ格納手段は、印刷設定が不完全な場合は完全な印刷設定としてから前記一時中間ファイルに格納することを特徴とする情報処理装置。
【請求項２】
印刷装置で印刷すべき印刷データを生成する情報処理装置であって、
文書のページを印刷するにあたり、文書の描画命令を一時中間ファイルに印刷データとして格納する印刷データ格納手段と、
前記一時中間ファイルから前記印刷データを抽出する印刷データ抽出手段と、
前記印刷データ抽出手段から取得した印刷データをページ単位でレイアウトするページレイアウト手段とを有し、
前記印刷データ抽出手段は印刷設定が不完全な場合は完全な印刷設定としてから前記ページレイアウト手段に供給することを特徴とする情報処理装置。
【請求項３】
印刷装置で印刷すべき印刷データを生成する情報処理装置であって、
文書のページを印刷するにあたり、文書の描画命令を一時中間ファイルに印刷データとして格納する印刷データ格納手段と、
前記一時中間ファイルから前記印刷データを抽出する印刷データ抽出手段と、
前記印刷データ抽出手段から取得した印刷データをページ単位でレイアウトするページレイアウト手段とを有し、
前記ページレイアウト手段は印刷設定が不完全な場合は完全な印刷設定としてからレイアウトすることを特徴とする情報処理装置。
【請求項４】
印刷装置で印刷すべき印刷データを生成する情報処理装置における印刷制御方法であって、
文書のページを印刷するにあたり、文書の描画命令を一時中間ファイルに印刷データとして格納する印刷データ格納工程と、
前記一時中間ファイルから前記印刷データを抽出する印刷データ抽出工程と、
前記印刷データ抽出工程から取得した印刷データをページ単位でレイアウトするページレイアウト工程とを含み、
前記印刷データ格納工程が印刷設定が不完全な場合は完全な印刷設定としてから前記一時中間ファイルに格納するか、前記印刷データ抽出工程が印刷設定が不完全な場合は完全な印刷設定としてから前記ページレイアウト工程に供給するか、前記ページレイアウト工程が印刷設定が不完全な場合は完全な印刷設定としてからレイアウトすることを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置で印刷すべき印刷データを生成する情報処理装置および印刷制御方法に関し、特に、印刷するためのドキュメントを作成するアプリケーションから呼び出されユーザに印刷設定を行なわせ設定された印刷設定を保持する印刷設定構造を作成するユーザインタフェースドライバと、印刷設定構造を補正する機能を有する印刷設定構造補正モジュールを有するプリンタドライバを含む情報処理装置及び印刷制御方法に関する。
【背景技術】
【０００２】
従来の印刷システムでは、目的の文書を印刷する際に、印刷設定の各項目はユーザインタフェースドライバを介して行われ、ユーザインタフェースドライバはユーザに設定された各設定項目の設定値を含む情報を印刷設定構造としてアプリケーションに返却し、アプリケーションは返却された印刷設定構造を使用して印刷処理を行なう。
【０００３】
印刷設定構造に格納される情報は、アプリケーションがユーザインタフェースドライバを介して対話的にユーザに各設定項目を設定させることが可能である。また印刷設定構造はオペレーティングシステムの既定の設定項目として公開されているパブリック構造と、プリンタドライバに依存し非公開となっているプライベート構造の二つの部分により構成されている。パブリック構造に格納される情報はプリンタの機種に依存しなく、つまり様々なプリンタドライバの種類には関係なく、一般的な印刷処理に必要な設定項目である。
【０００４】
また、プライベート構造に格納される情報はプリンタの機種に依存する、つまりプリンタドライバ固有の機能であり、プリンタやプリンタドライバの個性的な機能に関する設定項目である。
【０００５】
また、アプリケーションは、印刷設定項目のうちＯＳを介してパブリック構造領域の印刷設定項目についてはＯＳで規定されているＡＰＩを用いることで設定可能になっている。よって、アプリケーションは公開されているパブリック構造の設定項目については、ユーザインタフェースドライバを介することなく、アプリケーション自身で設定することが可能である。
【０００６】
アプリケーションが文書を印刷する環境を提供する印刷システムのスプーラは、アプリケーションが印刷に使用する印刷設定構造や、印刷用に作成した文書内容の描画命令をスプールファイルに格納し、印刷システムのデスプーラはスプールファイルから格納されている印刷設定構造を抽出し、文書のページをレイアウトするプリントプロセッサに提供する。
【０００７】
プリントプロセッサは抽出された印刷設定構造を用いてスプールファイルに格納された印刷データをレイアウトし、プリンタグラフィックドライバに供給する。プリンタグラフィックドライバは供給されたレイアウト済みの印刷データからプリンタが解釈できる印刷コマンドを作成し、作成した印刷コマンドをプリンタに送信する。プリンタは受信した印刷コマンドに従い印刷用紙に印刷処理を行ない、印刷結果が得られる構造になっている。
【０００８】
なお、従来、この種の印刷システムとして、下記特許文献が提案されている。
【特許文献１】特開２００２−３３３９５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら上述した従来の技術においては、以下のような問題があった。上述したようにアプリケーションは、印刷設定項目のうち、パブリック構造領域の印刷設定項目は、ユーザインタフェースドライバを介さずに自身で設定することが可能である。現在、米国マイクロソフト社のＷＩＮＤＯＷＳ（登録商標）ＯＳ上で動作するアプリケーションは、印刷時に、ＧＤＩを介して出力するスプールファイルに印刷設定構造を含ませる仕様となっているが、アプリケーションの中には、この印刷設定構造をスプールファイルと共に出力する際に、ユーザインタフェースドライバからの印刷設定項目（プライベート構造）を含ませないで、出力するものがある。このように、アプリケーションが印刷に使用した印刷設定構造がパブリック構造のみで構成されている場合、プライベート構造が無いためプリンタドライバ固有の設定は含まれない。
【００１０】
よって、スプール時にはパブリック構造のみで構成される印刷設定構造がスプールファイルに格納され、デスプール時にはこの印刷設定構造が印刷コマンドを生成するためにプリンタドライバのモジュールであるプリントプロセッサに渡される。ここでプリンタドライバを構成するモジュールが印刷設定構造のプライベート構造に印刷実行時の情報を格納しモジュール間で相互に情報の交換を行なうプリンタドライバ（例えば、ユニバーサルプリンタドライバ）では、プライベート構造が無い印刷設定構造で印刷処理を実行するとモジュール間で情報の交換ができなくなり、動作が不安定になったり、プリンタドライバ固有の性能（例えば、ポスター印刷機能）を出し切ることができないという問題があった。
【００１１】
また、同様にアプリケーションが印刷に使用した印刷設定構造のプライベート構造が、プリンタドライバ依存のプライベート構造では無い場合にも、プライベート構造は自身以外のプリンタドライバのものであるので内容を知ることができず、プリンタドライバの動作が不安定になったり、プリンタドライバ固有の性能を出し切ることができないという問題がある。
【００１２】
例えばプリンタドライバ構成モジュールの一つであるプリントプロセッサが、デスプール時にプリンタから取得したプリンタにセットされている用紙のサイズと、印刷設定構造のパブリック構造に格納されたアプリケーションの用紙サイズとを比較し、用紙サイズが異なっている場合、プライベート構造のプリンタ用紙サイズをプリンタから取得した用紙サイズに変更した印刷設定構造をプリンタグラフィックドライバに供給することで、プリンタにセットされている用紙サイズとアプリケーションの文書の用紙サイズが異なっている時はプリンタの用紙サイズにフィットさせて出力するというプリンタドライバ独自の機能を提供できる。ところが印刷設定構造にプライベート構造が無い場合などは、プリンタから取得したプリンタの用紙サイズを印刷設定構造に反映できないために、プリンタドライバはこの独自機能を適用することができない不具合がある。
【課題を解決するための手段】
【００１３】
本発明は上記従来の問題点に鑑みなされたものであり、アプリケーションは文書を印刷するための印刷設定の情報を印刷設定構造に格納し、スプーラはアプリケーションから渡された印刷設定構造をスプールファイルに格納し、デスプーラはスプールファイルに格納された印刷設定構造を抽出しプリントプロセッサに渡し、プリントプロセッサはデスプーラから取得した印刷設定構造を用いて印刷処理を行なう印刷システムにおいて、アプリケーションがプライベート構造を含まない印刷設定構造やプリンタドライバにとって未知のプライベート構造を含む不完全な印刷設定構造を利用した場合に備え、印刷設定構造補正機能を有するユーザインタフェースドライバを介して完全な印刷設定構造を作成し、実際に印刷処理を行なうプリントプロセッサとプリンタグラフィックドライバは作成された完全な印刷設定構造を用いるべく、下記の構成とした。
【００１４】
まず第１に、上記印刷システムにおいて、スプーラはアプリケーションから取得した印刷設定構造をスプールファイルに格納する前にユーザインタフェースドライバに渡し、完全な印刷設定構造を取得し、取得した完全な印刷設定構造をスプールファイルに格納する構成とした。
【００１５】
第２に、上記印刷システムにおいて、デスプーラはスプールファイルから抽出した印刷設定構造をプリントプロセッサに渡す前にユーザインタフェースドライバに渡し、完全な印刷設定構造を取得し、取得した完全な印刷設定構造をプリントプロセッサに渡す構成とした。
【００１６】
第３に、上記印刷システムにおいて、プリンタドライバの構成モジュールであるプリントプロセッサはデスプーラから取得した印刷設定構造を用いて印刷処理を開始する前にユーザインタフェースドライバに渡し、完全な印刷設定構造を取得し、取得した完全な印刷設定構造を用いて印刷処理を開始する構成とした。
【発明の効果】
【００１７】
以上説明したように、本発明によれば次のような効果が得られる。
【００１８】
第１に、スプーラにより完全な印刷設定構造を取得しスプールファイルに格納することにより、プリントプロセッサは完全な印刷設定構造を取得でき、プリンタドライバ固有の性能を引き出すことが可能となる。
【００１９】
第２に、スプーラにより完全な印刷設定構造を取得しスプールファイルに格納することにより、スプールされている状態つまり印刷キューに入っている印刷ジョブの印刷設定を正確に知ることができるようになる。
【００２０】
第３に、デスプーラにより完全な印刷設定構造を取得しプリントプロセッサに供給することにより、プリントプロセッサは完全な印刷設定構造を取得でき、プリンタドライバ固有の性能を引き出すことが可能となる。
【発明を実施するための最良の形態】
【００２１】
まず発明に関る基本的な印刷システムを具体例を用いて説明する。なお本具体例ではオペレーティングシステム（以下ＯＳと略す）として、米国マイクロソフト社のＷＩＮＤＯＷＳ（登録商標）２０００／ＸＰを用いた場合を示す。
【００２２】
図１は、本発明による印刷システムの具体例を示すブロック図である。図において、本発明に関るモジュールは、印刷設定処理部と印刷ページ生成処理部を兼備するユーザインタフェースドライバ３と、印刷ページ合成処理部であるプリントプロセッサ５である。これらのモジュールは、一般にプリンタドライバと呼ばれているが、ここではより詳細にモノレシックプリンタドライバと呼ぶ。モノレシックプリンタドライバとは、米国マイクロソフト社のオペレーションシステムに合わせて、プリンタ開発会社が作成する一貫した構成のプリンタドライバである。このモノレシックプリンタドライバに対して、ユニバーサルプリンタドライバが存在する。ユニバーサルプリンタドライバとは、米国マイクロソフト社が作成する各社のプリンタで共通に用いるプリンタドライバであり、各社のプリンタに固有の印刷設定は、ミニドライバまたはレンダリングプラグインと呼ばれる。ミニドライバまたはレンダリングプラグインは、プリンタ開発会社が独自で作成するモジュールである。
【００２３】
図１に、モノレシックプリンタドライバを用いた印刷システムのブロック構成を示しており、この印刷システムを構成する１０１〜１０８はプリンタ１０９の上位装置であるパーソナルコンピュータ（本発明の情報処理装置に相当する）等で動作し、アプリケーション１０１が作成した文書の印刷データをＧＤＩ１０３を介して一時的にＥＭＦ形式でスプールファイル１０５に一時保持し、これをプリンタ１０９が解釈可能な印刷コマンド形式のビットマップデータに変換しプリンタ１０９に供給して印刷するよう構成されている。ここでＧＤＩとはグラフィックデバイスインタフェースのことでＷＩＮＤＯＷＳ（登録商標）のグラフィクスエンジンである。またＥＭＦとはＥｎｈａｎｃｅｄＭｅｔａＦｉｌｅの略でＷＩＮＤＯＷＳ（登録商標）における描画データの論理的な格納形式であり、スプールファイルには印刷データがＥＭＦ形式で格納される。ここで、プリンタドライバを構成するモジュールはユーザインタフェースドライバ１０２と、プリントプロセッサ１０７とプリンタグラフィックドライバ１０８である。また、ＷＩＮＤＯＷＳ（登録商標）が提供するモジュールはＧＤＩ１０３とスプーラ１０４とデスプーラ１０６である。
【００２４】
ユーザインタフェースドライバ１０２は印刷に使用する用紙サイズや印刷品位、その他の属性を設定する機能をユーザに提供する。ユーザはユーザインタフェースドライバを介して対話的に印刷設定の各設定項目を変更することが可能であり、設定値を印刷設定構造であるＤＥＶＭＯＤＥに格納し、アプリケーション１０１に返却する。
【００２５】
アプリケーションは印刷設定構造ＤＥＶＭＯＤＥを作成し、必要に応じユーザインタフェースドライバ１０２を介してユーザに印刷設定を行なわせ印刷設定構造を獲得し、印刷設定構造に格納されている設定を利用することや文書の内容を描画命令としてＧＤＩ１０３に供給する。
【００２６】
スプーラ１０４はＧＤＩ１０３を介してアプリケーション１０１が作成した文書の内容を印刷データとしてスプールファイル１０５に格納する。またアプリケーション１０１が印刷に用いた印刷設定構造ＤＥＶＭＯＤＥもスプールファイル１０５に格納する機能を有する。
【００２７】
デスプーラ１０６は印刷時にスプールファイル１０５から印刷設定構造と印刷データを抽出しプリントプロセッサ１０７に渡す機能を有する。またスプールファイル１０５に格納された印刷データはページ単位で扱えるような形式でプリントプロセッサ１０７に供給する機能を有する。
【００２８】
プリントプロセッサ１０７は、印刷時にスプールファイル１０５から印刷設定構造と印刷データを取得し、印刷データを１ページずつレイアウトし、ＧＤＩ１０３を介してプリンタグラフィクスドライバ１０８に供給し印刷を行うモジュールである。
【００２９】
プリンタグラフィックドライバ１０８はイメージ生成処理部であり、プリントプロセッサ１０７が供給した印刷データをもとにＧＤＩ２が生成したグラフィック描画コマンドからビットマップデータを生成するモジュールであり、生成したビットマップデータをプリンタが解釈できる印刷コマンド形式にして、図に示していないデータ送信部を介してプリンタ１０９に供給する。
【００３０】
ここで出力デバイスであるプリンタ１０９は、プリンタグラフィックドライバ１０８から渡された、印刷コマンド形式のビットマップデータを印刷用紙１１０に対し印刷する機能を持つ。
【００３１】
また、図１４を用いて、ユニバーサルプリンタドライバを用いた印刷システムのブロック構成を示している。
【００３２】
ここで、この情報処理装置であるコンピュータがプリンタ１１０８にデータを出力する際には、コンピュータのプリンタドライバ１１０３がプリンタ１１０８に応じたデータを作成する。このプリンタドライバ１１０３には幾つかの形態が考えられるが、ここでは最も簡単な方法としてＷＩＮＤＯＷＳ（登録商標）で提供されるユニバーサルプリンタドライバ１１０９を用いる場合で説明する。このプリンタドライバ１１０３は、各プリンタ１１０８に対応する用紙種類や解像度などの機種情報が記述されたＧＰＤファイル１１１１と、ユニバーサルプリンタドライバ１１０９に情報を提供したり、ユニバーサルプリンタドライバ１１０９の一部の機能を代替するプログラムであるレンダリングｐｌｕｇ−ｉｎ（プラグイン）１１１０とを具備している。
【００３３】
アプリケーション１１０１が印刷要求した描画データ（文書データ、画像データ等の印刷データ）は、グラフィックデバイス・インターフェース（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ：以下、「ＧＤＩ」）１１０２経由でプリンタドライバ１１０３へ印刷要求として出力される。ＧＤＩ１１０２は、通常、一旦、そのデータをＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅ）データとしてスプールファイル１１０４にスプールし、そのスプールが終了すると、ＯＳが提供するプリントプロセッサ１１０５に印刷要求を発行する。これによりプリントプロセッサ１１０５は、スプールファイル１１０４から印刷出力情報と描画データをページ単位で読み込み、１ページずつＧＤＩ１１０２を介してプリンタドライバ１１０３に出力して印刷するように要求する。
【００３４】
このプリントプロセッサ１１０５は、スプールファイル１１０４にスプールされている描画データをプリンタドライバ１１０３に出力する際、プリンタドライバ１１０３から出力されるラスタイメージデータの解像度に合わせて座標情報を変換する機能がある。尚、このプリントプロセッサ１１０５は、ＯＳのモジュールとして用意されているが、プリンタ１１０８のメーカ等がカスタマイズしたプリントプロセッサ１１０５をレンダリングｐｌｕｇ−ｉｎ１１１０、ＧＰＤファイル１１１１とともに供給し、それらをハードディスクにインストールするようにしてもよい。こうしてプリントプロセッサ１１０５から印刷が要求されたプリンタドライバ１１０３は、ＧＤＩレンダリングエンジン１１０７を用いて、その描画データをラスタイメージデータにレンダリングした後、色処理やプリンタコマンドの付加などを行い、ポートモニタ１１０６経由でプリンタ１１０８に送信する。
【００３５】
図３に完全な印刷設定構造ＤＥＶＭＯＤＥの概念図を示す。図に示されるようにパブリック構造とプライベート構造で構成され、パブリック構造には一般的な印刷に必要な設定項目の情報が格納される。本図では部数、印刷品位、アプリケーションの原稿の用紙サイズ、プリンタにセットされているメディアの種類、メディアがセットされている給紙口をパブリック構造の設定項目として例に挙げている。
【００３６】
一方プライベート構造にはプリンタドライバ固有の情報が格納されており、ハーフトーン手法、濃度調整値、プリンタにセットされているメディアのサイズ、スタンプ機能、背景機能を設定項目の例に挙げている。プライベート構造の内容はプリンタドライバによって異なっており、アプリケーションは内部を知ることが出来ないためプライベート構造に格納された設定項目の設定値を独自に変更することはできない。
【００３７】
アプリケーションは図２で示されるユーザインタフェースドライバの印刷設定ダイアログを表示し、ユーザは設定項目を変更するために印刷設定ダイアログを操作し、その結果印刷設定ダイアログの各設定項目の設定値が印刷設定構造のプライベート構造とパブリック構造に格納される。アプリケーションがユーザインタフェースドライバの印刷設定ダイアログを表示することなく変更できるのは印刷設定構造のパブリック構造に格納される設定項目のみに限定される。
【００３８】
不完全な印刷設定構造ＤＥＶＭＯＤＥのうち、プライベート構造を含まない印刷設定構造は図４に示すようにパブリック構造のみで構成される。またプリンタドライバにとって未知のプライベート構造を含む印刷設定構造は図５のようにパブリック構造の他にも未知のプライベート構造を含んでおり、プリンタドライバは未知のプライベート構造にはどのような設定項目が含まれているかを知り得ない。
【００３９】
図１のプリントプロセッサ１０７はデスプール時にデスプーラから取得した印刷設定構造ＤＥＶＭＯＤＥのプライベート構造の内容を必要に応じ変更し、ＧＤＩ１０３を介してプリンタグラフィックドライバ１０８に供給し印刷処理を行なう。ここでデスプーラ１０６から取得した印刷設定構造が完全では無い場合、従来の印刷システムでは印刷設定構造のプライベート構造にプリンタグラフィックドライバ１０８に連絡すべき情報を格納することができず、プリンタドライバ固有の性能を引き出すことができなかった。
【００４０】
本実施例の印刷システムでは、少なくともプリントプロセッサ１０７が完全な印刷設定構造ＤＥＶＭＯＤＥを取得することができ、プリンタドライバ固有の性能を発揮できる。如何に本発明の印刷システムについて記述する。
【００４１】
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【００４２】
＜スプーラが完全な印刷設定構造を取得しスプールファイルに格納する形態＞
以下、図面に示す実施例に基づき本実施形態を詳細に説明する。
【００４３】
図２は本実施形態におけるユーザインタフェースドライバが提供する、各種印刷設定を行う際に表示される印刷設定ダイアログの一例を示す図である。この印刷設定ダイアログによりユーザによる上記設定内容の変更指示や入力を受け付ける。
【００４４】
同図において、３０１は印刷設定ダイアログであり、３０２〜３１１、３２０〜３３１までの各表示エリアから構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。本実施形態でもタブを使用する。３０２は基本設定タブであり、印刷の基本に関する内容を表示する。詳細については後述する。３０３はページ設定のタブであり、用紙の大きさ、印刷方向、印刷レイアウト（Ｎ−ｕｐ）などの各種ページ設定に関する内容を表示する。
【００４５】
３０４はスタンプ／背景のタブであり、印刷文書に対して文字を重ねるスタンプ機能や、画像を重ねる背景機能という、印刷文書を変更することなしに印刷時に付加するパターンの選択画面を表示する。３０５は特殊効果のタブであり、各種画像補整やセピア調など特殊な効果を画像に与える場合に使用する機能の選択画面を表示する。３０６はお気に入りのタブであり頻繁に使用する印刷設定などの保存と呼び出し機能を選択させる画面を表示する。
【００４６】
３０７はユーティリティのタブであり、ヘッドの調整やクリーニングなどの機能の選択画面を表示する。３２０は基本設定の簡易表示エリアであり、文字情報だけでなく視覚に訴える形で、設定された情報を表示する。３２１はプリントアドバイザであり印刷目的から最適な印刷設定を段階的に導く機能を持つサブダイアログを表示する。３２２は用紙種類選択部であり用紙種類を表示するとともに選択することができ、ドロップダウンメニューとなっており普段は選択されている用紙種類が表示され、クリックすることで選択可能な用紙種類がリストされる。選択可能な用紙種類はプリンタで印刷可能な用紙である。
【００４７】
３２３はプリンタ本体が用紙を給紙する給紙方法を表示選択することができ、たとえば自動給紙口である給紙トレイや給紙カセットが選択できる。３２４は印刷の品位を設定する項目である。３２５は印刷の色や濃度を調整するための項目である。３２６は印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。３２７は印刷部数を設定する項目である。この数値を設定することによりアプリケーションが作成した印刷ジョブの印刷データを、プリンタドライバが繰り返し印刷することにより複数部数の印刷結果を得ることができる。
【００４８】
３２８はページ順を逆順に設定する項目である。３２９は印刷を部単位で行なうかどうかを設定する項目であり印刷部数３２７の設定が２以上の場合に設定が有効となる。３３０は本ダイアログを表示するドライバのバージョンを示すサブダイアログを表示する。３３１は基本設定３０２の設定を標準（出荷時設定）に戻す機能をもつ。ユーザは各項目を選択した後にＯＫボタン３０８を押下することで印刷設定ダイアログ３０１を閉じ、選択した印刷設定を印刷に反映させることができる。つまりＯＫボタン３０８が押下されたことによりユーザが操作した印刷設定ダイアログの情報を、印刷設定構造ＤＥＶＭＯＤＥの設定項目として格納することになる。Ｃａｎｃｅｌボタン３０９を押下すると印刷設定ダイアログ３０１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。Ａｐｐｌｙボタン３１０を押下することで、印刷設定ダイアログ３０１は開いたままで選択した印刷設定を印刷に反映させることができる。Ｈｅｌｐボタン３１１は基本設定３０２の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【００４９】
図６は、本実施形態における印刷システムの具体例を示すブロック図である。本図に示されるスプーラ１１４以外の各ブロックは図１と同様であるので指示番号は同じ数字を利用し説明を省略する。
【００５０】
本実施形態のスプーラ１１４はＧＤＩ１０３を介して取得したアプリケーションの印刷設定構造をそのままスプールファイル１０５に格納するのではなく、取得した印刷設定構造をユーザインタフェースドライバ１０２に渡し、完全な印刷設定構造を作成してからスプールファイル１０５に格納する。従ってスプールファイル１０５には完全な印刷設定構造が格納され、デスプーラ１０６によりスプールファイル１０５から抽出された完全な印刷設定構造はプリントプロセッサ１０７に供給される。結果プリントプロセッサ１０７はデスプーラ１０６から得た完全な印刷設定構造のプライベート構造の印刷設定項目の設定値を変更し、ＧＤＩ１０３を介してグラフィックドライバ１０６に情報を正しく通知することが可能となり、プリンタドライバ固有の性能を発揮することができるようになる。
【００５１】
次に図を用いてスプーラ１１４の完全な印刷設定構造取得処理の流れと、ユーザインタフェースドライバ１０２の受け取った印刷設定構造から完全な印刷設定構造を作成する処理の流れを説明する。
【００５２】
図８はスプーラ１１４の完全な印刷設定構造取得処理を含む印刷命令格納処理を示すフローチャートである。このフローチャートでは、図６に示したスプーラ１１４の動作について説明するものであるが、図１４に示したスプールファイル１１０４をスプールするＧＤＩ１１０２に置き換えても成り立つ。
【００５３】
Ｓ１０１で、スプーラ１１４は、アプリケーション１０１が発行した文書を印刷するための命令を取得する。Ｓ１０２では、スプーラ１１４は、取得した命令が印刷命令かどうか、つまりアプリケーション１０１による印刷設定構造を利用することを表す命令かどうかを判定し、印刷設定構造命令の場合はＳ１０３に移る。Ｓ１０３では、スプーラ１１４は、取得した印刷命令構造をユーザインタフェースドライバ１０２に渡し、後述するユーザインタフェースドライバ１０２の印刷設定構造補正処理により、完全な印刷設定構造を新たに取得する。続いてＳ１０４では、スプーラ１１４は、印刷設定構造命令と新たに取得した完全な印刷設定構造をスプール形式でスプールファイル１０５に格納し、処理を終了する。また、Ｓ１０２において取得した命令が印刷設定構造命令では無い場合、つまりアプリケーション１０１の文書を印刷するための描画命令で在る場合は、取得した印刷命令を対応するスプール形式でスプールファイル１０５に格納し、処理を終了する。こうしてアプリケーション１０１が発行した印刷設定構造命令に付随する印刷設定構造が不完全な場合であっても、スプーラ１１４が完全な印刷設定構造を取得し、不完全な印刷設定構造の代わりにスプールファイル１０５に格納することで、後にプリントプロセッサ１０７はデスプーラ１０６から完全な印刷設定構造を取得できるようになる。
【００５４】
図７はユーザインタフェースドライバ１０２の印刷設定構造補正処理を示すフローチャートである。このフローチャートでは、図１に示したユーザインタフェースドライバ１０２の動作について説明するものであり、本処理はユーザインタフェースドライバ１０２に入力された印刷設定構造から、完全な印刷設定構造を作成することを目的としている。
【００５５】
まずＳ２０１で、ユーザインタフェースドライバ１０２は、各設定項目の設定値を既定値とする完全な設定構造を作成し出力印刷設定構造とする。続いてＳ２０２でユーザインタフェースドライバに与えられた入力印刷設定構造を取得する。続いてＳ２０３では、ユーザインタフェースドライバ１０２は、前のステップで取得した入力印刷設定構造が正当なパブリック構造を持つかどうか確認し、正当なパブリック構造を持たない場合はＳ２０８に移り、Ｓ２０１で作成した出力印刷設定構造を返却し、処理を終了する。一方Ｓ２０３の判断で正当なパブリック構造を持つと判断された場合はＳ２０４に移り、入力印刷設定構造のパブリック構造を出力印刷設定構造のパブリック構造にコピーする。続いてＳ２０５では、ユーザインタフェースドライバ１０２は、入力印刷設定構造は正当なプライベート構造を持つかどうか確認し、正当なプライベート構造を持つ場合はＳ２０６に移り、正当なプライベート構造を持たない場合はＳ２０７に移る。
【００５６】
Ｓ２０６では、入力印刷設定構造は正当なプライベート構造を持つため、ユーザインタフェースドライバ１０２は、これを出力印刷設定構造のプライベート構造へコピーし、Ｓ２０７に移る。Ｓ２０７では、ユーザインタフェースドライバ１０２は、出力印刷設定構造のプライベート構造の設定項目の設定値と、パブリック構造の設定項目の設定値を調査し、全体として設定に矛盾が無いように調整する。続いてＳ２０８に移り出力印刷設定構造を返却して処理を終了する。ここでＳ２０７における矛盾の無い設定とは、例えば図３で示される印刷設定構造の設定項目のうち、パブリック構造の設定項目である給紙口は「オートシートフィーダ」となっており、プライベート構造の設定項目である出力用紙サイズは「Ａ４」となっている。ここではプリンタ１０９のオートシートフィーダがＡ４サイズの印刷用紙を給紙できるため、この二つの設定項目の間に矛盾がない。
【００５７】
ここでプライベート構造の設定項目である出力用紙サイズは、アプリケーション１０１がユーザインタフェースドライバ１０２を介して図３に示される印刷設定ダイアログを表示しユーザが設定を変更することによってはじめて設定値が変わる。
【００５８】
一方パブリック構造の設定項目は印刷設定ダイアログを表示しなくてもアプリケーション１０１が自由に変更できる。従って例えばプリンタ１０９は手差し給紙口からはＡ４サイズの印刷用紙を給紙できない仮定において、出力用紙サイズの設定値が「Ａ４」、給紙口の設定値が「手差し給紙」となる場合もあり、この場合は設定項目間に矛盾があることになる。以上のようにユーザインタフェースドライバは入力された印刷設定構造を用いて設定項目間に矛盾のないような完全な印刷設定項目を作成することができる。
【００５９】
図１３は本実施形態における印刷システムのハードウェア構成を示すブロック図である。本図において、９０１は、ＣＲＴ表示装置であり、図２に示すユーザインタフェースドライバが提供する印刷設定ダイアログ等を表示する。９０２はＣＲＴＣで表示装置用のコントローラである。９０３は、キーボードなどのデータ入力装置であり、９０４は、キーボードコントローラである。９０５は、ポインティングデバイス等の座標入力装置であり、９０６は、ポインティングデバイスコントローラである。９０７は、装置全体の制御を司るＣＰＵである。９０８は、ブートプログラムなどを記憶しているＲＯＭである。９０９は、ＯＳ、各アプリケーションプログラムと図７、８、１０、１２のフローチャートに関るプリンタドライバプログラムを格納したり、さらにはワークエリアとしても利用されるＲＡＭである。
【００６０】
９１０は、ＯＳ、各アプリケーションプログラムと図７、８、１０、１２のフローチャートに関るプログラムを含むプリンタドライバプログラム、フォントデータを記憶しており、さらにはスプールファイル等を一時的に記憶するハードディスク装置であり、９１１はハードディスクコントローラである。９１２は、可搬性記憶媒体の駆動装置であるフロッピー（登録商標）ディスク装置であり、９１３はフロッピー（登録商標）ディスクコントローラである。
【００６１】
９１４は、インターフェースであり、インターフェースケーブルを介してインクジェットプリンタなどの印刷装置９１５に接続される。９１６は、各デバイスを接続するバスである。本装置に電源が投入されると、ＣＰＵ９０７はＲＯＭ９０８に格納されているブートプログラムに従って起動し、ハードディスク装置９１０からＯＳをロードし、操作者の操作待ち状態になる。そして、操作者からＫＢ９０３またはＰＤ９０５からアプリケーションを介して印刷指示やプリンタドライバの印刷設定変更指示を受けた場合、もしくは自動的に起動するように設定されている場合は、ハードディスク装置９１０に格納されているプリンタドライバプログラムがＲＡＭ９０９にロードされ実行される。
【００６２】
＜デスプーラが完全な印刷設定構造を取得しプリントプロセッサに渡す形態＞
以下、図面に示す実施例に基づき本実施形態を説明する。ただし印刷設定ダイアログとユーザインタフェースドライバの印刷設定構造補正処理、ハードウェア構成は上述した実施形態と同様なので説明を省略する。
【００６３】
図９は、本実施形態における印刷システムの具体例を示すブロック図である。本図に示されるデスプーラ１１６以外の各ブロックは図１と同様であるので指示番号は同じ数字を利用し説明を省略する。本実施形態のデスプーラ１１６はスプールファイル１０５から取得したアプリケーションの印刷設定構造をそのままプリントプロセッサ１０７に渡すのではなく、取得した印刷設定構造をユーザインタフェースドライバ１０２に渡し、完全な印刷設定構造を作成してからプリントプロセッサ１０７に渡す。従ってプリントプロセッサ１０７には完全な印刷設定構造が渡され、結果プリントプロセッサ１０７はデスプーラ１１６から得た完全な印刷設定構造のプライベート構造の印刷設定項目の設定値を変更し、ＧＤＩ１０３を介してグラフィックドライバ１０８に情報を正しく通知することが可能となり、プリンタドライバ固有の性能を発揮することができるようになる。
【００６４】
図１０はデスプーラ１１６の完全な印刷設定構造取得処理を含む、スプールファイル１０５からの印刷設定構造抽出処理を示すフローチャートである。Ｓ３０１で、デスプーラ１１６は、スプールファイルから印刷設定構造を抽出する。この印刷設定構造はアプリケーション１０１が作成したものであり不完全である可能性が在る。続いてＳ３０２では、デスプーラ１１６は、前のステップで取得した印刷設定構造をユーザインタフェースドライバ１０２に渡し、前述したユーザインタフェースドライバ１０２の印刷設定構造補正処理により、完全な印刷設定構造を新たに取得する。続いてＳ３０３では、デスプーラ１１６は、新たに取得した完全な印刷設定構造をプリントプロセッサ１０７に供給する。こうしてアプリケーション１０１が作成した印刷設定構造が不完全な場合であっても、デスプーラ１１６が完全な印刷設定構造を取得し、不完全な印刷設定構造の代わりにプリントプロセッサ１０７に供給することで、プリントプロセッサ１０７は完全な印刷設定構造を取得できるようになる。
【００６５】
＜プリントプロセッサが完全な印刷設定構造を取得し印刷処理を行なう形態＞
以下、図面に示す実施例に基づき本実施形態を説明する。ただし印刷設定ダイアログとユーザインタフェースドライバの印刷設定構造補正処理、ハードウェア構成は前述した実施形態と同様なので説明を省略する。
【００６６】
図１１は、本実施形態における印刷システムの具体例を示すブロック図である。本図に示されるプリントプロセッサ１１７以外の各ブロックは図１と同様であるので指示番号は同じ数字を利用し説明を省略する。本実施形態のプリントプロセッサ１１７は、デスプーラ１０８から取得したアプリケーションの印刷設定構造をそのまま印刷処理に用いるのではなく、取得した印刷設定構造をユーザインタフェースドライバ１０２に渡し、完全な印刷設定構造を作成してから印刷処理を行なう。プリントプロセッサ１１７は完全な印刷設定構造のプライベート構造の印刷設定項目の設定値を変更し、ＧＤＩ１０３を介してグラフィックドライバ１０６に情報を正しく通知することが可能となり、プリンタドライバ固有の性能を発揮することができるようになる。
【００６７】
図１２はプリントプロセッサ１１７の完全な印刷設定構造取得処理を含む、デスプーラ１０６からの印刷設定構造取得処理を示すフローチャートである。Ｓ４０１では、プリントプロセッサ１１７は、デスプーラ１０６から印刷設定構造を取得する。この印刷設定構造はアプリケーション１０１が作成したものであり不完全である可能性が在る。続いてＳ４０２では、プリントプロセッサ１１７は、前のステップで取得した印刷設定構造をユーザインタフェースドライバ１０２に渡し、前述したユーザインタフェースドライバ１０２の印刷設定構造補正処理により、完全な印刷設定構造を新たに取得し、処理を終了する。こうしてアプリケーション１０１が作成した印刷設定構造が不完全な場合であっても、プリントプロセッサ１１７が完全な印刷設定構造を取得できるようになる。
【００６８】
以上、３つの実施形態を説明したが、上記３パターンの実施形態の組み合わせた印刷システムでも同様の効果が得られることは言うまでもない。
【００６９】
また、本実施形態ではユーザインタフェースドライバは印刷設定構造の補正機能を有し、完全な印刷設定構造の取得はユーザインタフェースドライバを介して行なう構成としたが、印刷設定構造の補正機能を別のプリンタドライバを構成するモジュールとしてもよい。
【００７０】
＜他の実施形態＞
本発明は上述のように、複数の機器（たとえばホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても一つの機器（たとえば複写機、ファクシミリ装置）からなる装置に適用してもよい。
【００７１】
また、前述した実施形態の機能を実現するように各種のデバイスを動作させるように該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【００７２】
またこの場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、およびそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【００７３】
かかるプログラムコードを格納する記憶媒体としては例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００７４】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００７５】
さらに供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【図面の簡単な説明】
【００７６】
【図１】従来の印刷システムのブロック図
【図２】ユーザインタフェースドライバの画面例
【図３】完全な印刷設定構造の例
【図４】不完全な印刷設定構造の例（パブリック構造のみ）
【図５】不完全な印刷設定構造の例（プライベート構造が不明）
【図６】実施形態（１）の印刷システムのブロック図
【図７】ユーザインタフェースドライバの印刷設定構造補正処理のフローチャート
【図８】スプーラの印刷命令格納処理のフローチャート
【図９】実施形態（２）の印刷システムのブロック図
【図１０】デスプーラの印刷設定構造抽出処理のフローチャート
【図１１】実施形態（３）の印刷システムのブロック図
【図１２】プリントプロセッサの印刷設定構造取得処理のフローチャート
【図１３】実施例のハードウェアのブロック図
【図１４】ユニバーサルプリンタドライバを用いた印刷システムのブロック図
【図１】
2005148927.tif 000003
【図２】
2005148927.tif 000004
【図３】
2005148927.tif 000005
【図４】
2005148927.tif 000006
【図５】
2005148927.tif 000007
【図６】
2005148927.tif 000008
【図７】
2005148927.tif 000009
【図８】
2005148927.tif 000010
【図９】
2005148927.tif 000011
【図１０】
2005148927.tif 000012
【図１１】
2005148927.tif 000013
【図１２】
2005148927.tif 000014
【図１３】
2005148927.tif 000015
【図１４】
2005148927.tif 000016