(57)【要約】【課題】印刷装置の標準的な印刷機能を使用可能にするだけでなく、高機能を有する印刷装置に対しては、その付加価値の高い機能を好適に使用可能にすることができる印刷制御方法を提供する。【解決手段】ホストコンピュータシステム１００上で動作するオペレーティングシステム１０１、アプリケーションプログラム１０３及びプリンタドライバ１０２を用いて、プリンタドライバ１０２でプリンタ１０４の機器構成情報を取得する。次に、印刷機能情報を取得した機器構成情報に基づいてプリンタドライバ１０２で生成し、印刷機能情報をオペレーティングシステム１０１を介してアプリケーションプログラム１０３に通知する。そして、印刷機能情報に基づいてアプリケーションプログラム１０３がプリンタドライバ１０２に対して印刷指示を行い、プリンタドライバ１０２は印刷指示に基づいて印刷制御命令を生成する。【選択図】  図１
2004288013.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で動作するオペレーティングシステム、アプリケーションプログラム及びプリンタドライバを用いて、該コンピュータに接続された印刷装置での印刷処理を制御する印刷制御方法であって、
前記プリンタドライバで前記印刷装置に関する機器構成情報を取得し、
前記印刷装置で動作可能な印刷機能情報を前記機器構成情報に基づいて前記プリンタドライバで生成し、
前記プリンタドライバで生成された前記印刷機能情報を前記オペレーティングシステムを介して前記アプリケーションプログラムに通知し、
前記印刷機能情報に基づいて前記アプリケーションプログラムが印刷ドキュメントを構成して前記プリンタドライバに対して印刷指示を行い、
前記プリンタドライバが前記印刷指示に基づいて前記印刷装置に対する印刷制御命令を生成することを特徴とする印刷制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションプログラム、プリンタドライバ及び印刷装置からなる印刷システムにおける印刷制御技術に関し、特に、アプリケーションプログラムインタフェース（ＡＰＩ）による印刷制御技術に関する。
【０００２】
【従来の技術】
従来のオペレーティングシステム上で実行されるドキュメント作成・印刷アプリケーションプログラムからの印刷に関しては、以下に示す方法が一般的であった。
【０００３】
すなわち、
（１）Ｗｉｎｄｏｗｓ（登録商標）（以下、「Ｗｉｎｄｏｗｓ」とする。）に代表されるオペレーティングシステム環境においては、Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ（ＳＤＫ）で共通のアプリケーションプログラムインタフェース（ＡＰＩ）が提供され、これを利用して最小限の印刷属性設定及び印刷指示を行う方法、
（２）一般的なプリンタドライバの動作で、利用者にユーザインタフェース（ダイアログ）でオプション装置を指定させ、そのオプション情報に基づき、最終的な印刷データが作成され、印刷装置に送信する方法（例えば、特許文献１参照）、
（３）印刷装置と双方向通信を行い、印刷装置の有するのオプション類等の構成情報を取得するユーティリティアプリケーションプログラムが用意され、機器情報を表示する方法、
である。
【０００４】
【特許文献１】
特開平７−４４３８８号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来例では、ドキュメント作成・印刷アプリケーションプログラムからの印刷を行う場合、以下に示すような問題があった。
【０００６】
すなわち、
（１）ＷｉｎｄｏｗｓＳＤＫ等のオペレーティングシステムに付属する開発キットでは、印刷装置の一般的な印刷属性設定及び印刷指示だけしかできず、高機能を有する印刷装置に対して、一部の一般的な機能のみ使用して、その他の付加価値が高い機能が使用できない、
（２）印刷装置のオプション機能及び装置を利用する場合には、利用者にユーザインタフェース（ダイアログ）等で、オプション類を明示的に選択・指定させ、そのオプション情報に基づいて、最終的な印刷データを作成する必要がある、
（３）一部のアプリケーションプログラム、プリンタドライバ及び印刷装置で使用されるために用意されるアプリケーションプログラムインタフェース（ＡＰＩ）では、機器の構成情報取得のみ行われ、この情報によって印刷に関する機能を実現するための各種印刷属性設定を行うことまでは至っていない、
という問題があった。
【０００７】
本発明は、このような事情を考慮してなされたものであり、アプリケーションプログラム、プリンタドライバ及び印刷装置からなる印刷システムにおいて、印刷装置の標準的な印刷機能を使用可能にするだけでなく、高機能を有する印刷装置に対しては、その付加価値の高い機能を好適に使用可能にすることができる印刷制御方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明は、コンピュータ上で動作するオペレーティングシステム、アプリケーションプログラム及びプリンタドライバを用いて、該コンピュータに接続された印刷装置での印刷処理を制御する印刷制御方法であって、
前記プリンタドライバで前記印刷装置に関する機器構成情報を取得し、
前記印刷装置で動作可能な印刷機能情報を前記機器構成情報に基づいて前記プリンタドライバで生成し、
前記プリンタドライバで生成された前記印刷機能情報を前記オペレーティングシステムを介して前記アプリケーションプログラムに通知し、
前記印刷機能情報に基づいて前記アプリケーションプログラムが印刷ドキュメントを構成して前記プリンタドライバに対して印刷指示を行い、
前記プリンタドライバが前記印刷指示に基づいて前記印刷装置に対する印刷制御命令を生成することを特徴とする。
【０００９】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について詳細に説明する。
【００１０】
＜第１の実施形態＞
［第１の実施形態における印刷システム及びその動作の概要］
以下では、本実施形態に係る、ホストコンピュータシステム上で動作・実行されるＷｉｎｄｏｗｓオペレーティングシステム（ＯＳ）、ドキュメント作成・印刷アプリケーションプログラム及びプリンタドライバと、当該ホストコンピュータに接続する印刷装置（プリンタ）から構成される印刷システムについて説明する。すなわち、本実施形態に係る印刷システムにおいては、ドキュメント作成・印刷アプリケーションプログラムからの問い合わせにより、プリンタドライバにはプリンタから機器構成情報を取得する。プリンタドライバは、取得した機器構成情報に基づいて、後述する印刷機能属性情報及び印刷能力属性情報を生成し、アプリケーションプログラムインタフェース（ＡＰＩ）を使用して、ドキュメント作成・印刷アプリケーションプログラムに通知する。そして、ドキュメント作成・印刷アプリケーションプログラムは、通知された印刷機能属性情報及び印刷能力属性情報に基づいて、目的の印刷ドキュメント体裁加工を施し、同じくアプリケーションプログラムインタフェース（ＡＰＩ）を使用して、プリンタに対し各種印刷属性設定及び印刷指示を行う。
【００１１】
［第１の実施形態における印刷システムの構成及び動作の説明］
図１は、本発明の第１の実施形態に係る印刷システムのシステム構成を示すブロック図である。図１に示すように、本実施形態に係る印刷システムは、Ｗｉｎｄｏｗｓオペレーティングシステム（ＯＳ）１０１、ドキュメント作成・印刷アプリケーションプログラム１０３及びプリンタドライバ１０２が動作・実行されるホストコンピュータシステム１００とこれに接続する印刷装置（プリンタ）１０４とから構成される。また、図１では、本実施形態に係る印刷システムにおいて、各構成要素間のアプリケーションプログラムインタフェース（ＡＰＩ）の流れ及びデータの流れも示している。
【００１２】
ホストコンピュータシステム１００では、前述のように、Ｗｉｎｄｏｗｓオペレーティングシステム（ＯＳ）１０１、プリンタドライバ１０２及びドキュメント作成・印刷アプリケーションプログラム１０３がこのプログラムメモリ上で動作・実行される。また、プリンタ１０４は、ホストコンピュータシステム１００に接続されており、１０５はこのプリンタ１０４から出力されるドキュメント印刷出力を示している。
【００１３】
次に、本実施形態に係る印刷システムの動作・作用について詳細に説明する。尚、以下では、Ｗｉｎｄｏｗｓオペレーティングシステム（ＯＳ）１０１を「オペレーティングシステム１０１」と、ドキュメント作成・印刷アプリケーションプログラム１０３を「アプリケーションプログラム１０３」と称す。
【００１４】
ホストコンピュータシステム１００のプログラムメモリ上で動作するオペレーティングシステム１０１から実行されるアプリケーションプログラム１０３が初期化される時点で、プリンタドライバ１０２が、オペレーティングシステム１０１へロードされ、アプリケーションプログラム１０３からもプリンタドライバ１０２との間で各種情報及びデータの送受信が可能となる。また、このアプリケーションプログラム１０３の初期化時に、アプリケーションプログラムインタフェース（ＡＰＩ）となるプログラム関数を含むライブラリ群（プリンタドライバＳＤＫ  ＡＰＩ）も、アプリケーションプログラム１０３においてロードする。
【００１５】
すなわち、本実施形態に係る印刷システムでは、ホストコンピュータシステム１００とプリンタ１０４とが、双方向通信可能なネットワークを介して接続されており、プリンタ１０４とホストコンピュータシステム１００とは、それぞれプリンタ１０４とプリンタドライバ１０２との間で各種情報の送受信を行う送受信手段を備えている。
【００１６】
アプリケーションプログラム１０３は、前述した初期化時に、上記プリンタドライバＳＤＫ  ＡＰＩを使用して、オペレーティングシステム１０１を介して、プリンタドライバ１０２に後述する印刷機能属性情報及び印刷能力属性情報を問い合わせる。
【００１７】
プリンタドライバ１０２は、アプリケーションプログラム１０３からのプリンタドライバＳＤＫ  ＡＰＩによる問い合わせを受けて、プリンタ１０４との双方向通信により、プリンタＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）又はプリンタ１０４が備える機器情報送受信に係る制御命令を使用して、プリンタ１０４の機器構成情報の取得を行う。
【００１８】
プリンタドライバ１０２は、プリンタ１０４から取得した機器構成情報に基づいて、給紙方法、排紙方法、両面印刷機能、Ｎ−ｕｐ印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能等の各種フィニッシング機能、これらの機能を複合して実現する製本機能、フォントダウンロード機能、フォント置換機能及びフォームオーバレイ機能等のプリンタドライバ１０２において実行可能な印刷機能属性情報を生成する。また、プリンタドライバ１０２は、プリンタ１０４から取得した機器構成情報に基づいて、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間及び設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリング等のグラフィックス描画方法、印刷可能な用紙サイズ及び用紙種、最大設定可能コピー部数、Ｎ−ｕｐ印刷時の印刷設定可能Ｎ−ｕｐ数等のプリンタドライバ１０４において各種印刷機能実行のための印刷能力属性情報を生成する。
【００１９】
さらに、プリンタドライバ１０２は、アプリケーションプログラム１０３からコールされたプリンタドライバＳＤＫ  ＡＰＩ関数に対するリターンにより、プリンタドライバ１０２で生成された上記印刷機能属性情報及び印刷能力属性情報をオペレーティングシステム１０１を介して、アプリケーションプログラム１０３に通知する。
【００２０】
アプリケーションプログラム１０３では、プリンタドライバ１０２より通知された印刷機能属性情報及び印刷能力属性情報に基づいて、ドキュメント作成・体裁加工を行い、プリンタドライバＳＤＫ  ＡＰＩを使用してプリンタ１０４に対する各種印刷属性設定、印刷指示を行う、又は通常のＷｉｎｄｏｗｓＳＤＫ  ＡＰＩを使用してプリンタ１０４に対して印刷指示を行う。
【００２１】
ここで、プリンタドライバ１０２が、アプリケーションプログラム１０３からプリンタドライバＳＤＫ  ＡＰＩを使用しての各種印刷属性設定、印刷指示を行う場合は、当該印刷属性設定に基づいて印刷制御命令を生成し、印刷指示に基づく印刷データと組み合わせてプリンタ１０４に送信し、目的のドキュメントの印刷出力１０５を行う。
【００２２】
一方、プリンタドライバ１０２が、アプリケーションプログラム１０３から通常のＷｉｎｄｏｗｓＳＤＫ  ＡＰＩを使用して印刷指示を行う場合は、オペレーティングシステム１０１からコールされる印刷属性設定及び印刷指示関数に基づいて印刷制御命令を生成し、印刷指示に基づく印刷データと組み合わせてプリンタ１０４に送信し、目的のドキュメントの印刷出力１０５を行う。
【００２３】
すなわち、本実施形態に係る印刷システムでは、アプリケーションプログラム１０３が、印刷ドキュメントを構成する際に、所定のアプリケーションプログラムインタフェースを用いて、プリンタドライバ１０２に対して印刷機能属性情報及び印刷能力属性情報の取得を問い合わせ、取得した印刷機能属性情報及び印刷能力属性情報に基づいて、印刷ドキュメントを構成することを特徴とする。
【００２４】
また、本実施形態に係る印刷システムでは、上記プリンタドライバ１０２が、アプリケーションプログラム１０３からの所定のアプリケーションプログラムインタフェースを介した印刷機能属性情報及び印刷能力属性情報の問い合わせに基づいて、印刷機能属性情報及び印刷能力属性情報をアプリケーションプログラムインタフェースを介して、アプリケーションプログラム１０３に対して通知することを特徴とする。
【００２５】
さらに、本実施形態においてアプリケーションプログラム１０３は、構成した印刷ドキュメントをプリンタ１０４において印刷させるため、所定のアプリケーションプログラムインタフェースを介してプリンタドライバ１０２に対して各種印刷属性の設定及び印刷指示を行うことを特徴とする。一方、上記プリンタドライバ１０２が、アプリケーションプログラム１０３から所定のアプリケーションプログラムインタフェースを介した各種印刷属性の設定及び印刷指示に基づいて各種印刷のための処理を行って、各種印刷制御命令を生成し、当該各種印刷制御命令とアプリケーションプログラムで構成された印刷ドキュメントとを組み合わせてプリンタ１０４に送信することを特徴とする。
【００２６】
上述したように、本実施形態に係る印刷システムでは、ホストコンピュータシステム１００上で動作するオペレーティングシステム１０１、アプリケーションプログラム１０３及びプリンタドライバ１０２を用いて、ホストコンピュータシステム１００に接続されたプリンタ１０４での印刷制御のために、プリンタドライバ１０２でプリンタ１０４に関する機器構成情報を取得する。次に、プリンタ１０４で動作可能な印刷機能情報を取得した機器構成情報に基づいてプリンタドライバ１０２で生成する。さらに、プリンタドライバ１０２で生成された印刷機能情報をオペレーティングシステム１０１を介してアプリケーションプログラム１０３に通知する。そして、生成された印刷機能情報に基づいてアプリケーションプログラム１０３が印刷ドキュメントを構成してプリンタドライバ１０２に対して印刷指示を行い、プリンタドライバ１０２が印刷指示に基づいてプリンタ１０４に対する印刷制御命令を生成する。
【００２７】
［オペレーティングシステム１０１、アプリケーションプログラム１０３及びプリンタドライバ１０２における各処理のシーケンスの説明］
図２は、本発明の第１の実施形態に係るホストコンピュータシステム１００上のオペレーティングシステム１０１、アプリケーションプログラム１０３及びプリンタドライバ１０２におけるプリンタドライバＳＤＫ  ＡＰＩを使用した初期化から印刷までの流れを説明するためのシーケンス図である。
【００２８】
図２において、２００はオペレーティングシステム１０１が備えるＧｒａｐｈｉｃａｌ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ（ＧＤＩ）である。アプリケーションプログラム１０３及びプリンタドライバ１０２間で通常のＷｉｎｄｏｗｓＳＤＫ  ＡＰＩ及びプリンタドライバＳＤＫ  ＡＰＩによる情報及びデータの送受信は、オペレーティングシステム１０１のＧＤＩ２００を介して行われる。
【００２９】
まず、アプリケーションプログラム１０３は、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩであるＣｒｅａｔｅＤＣ（  ）関数２０３をコールし、プリンタ１０４に対するデバイスコンテキストを作成する。このとき、アプリケーションプログラム１０３は、プリンタドライバ１０２と組み合わせて用意されるアプリケーションプログラムインタフェース（ＡＰＩ）関数群を構成するプリンタドライバＳＤＫライブラリをロードする。
【００３０】
次に、アプリケーションプログラム１０３は、初期化処理に移行し、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩであるＳｔａｒｔＤｏｃ（  ）関数２０４をコールし、指定のプリンタデバイス（例えば、プリンタ１０４）で印刷ジョブを開始する。一方、プリンタドライバ１０２は、アプリケーションプログラム１３からコールされたＳｔａｒｔＤｏｃ（  ）関数２０３がＧＤＩ２００で変換されてＤｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ（ＤＤＩ）であるＤｒｖＳｔａｒｔＤｏｃ（  ）関数２０５がＧＤＩ２００よりコールされる。プリンタドライバ１０２は、この関数内で印刷のための各種初期化処理を行う。
【００３１】
アプリケーションプログラム１０３は、前述した初期化処理と同時に、プリンタＳＤＫ  ＡＰＩであるプリンタ１０４及びプリンタドライバ１０２における印刷に関する能力情報を取得するＦＳ＿ＧｅｔＤｅｖＣａｐａｂｉｌｉｔｉｅｓ（）関数２０６と、プリンタ１０４及びプリンタドライバ１０２における印刷に関する機能情報を取得するＦＳ＿ＧｅｔＦｕｎｃＩｔｅｍ（  ）関数２０７をコールする。
【００３２】
そして、プリンタドライバ１０２は、前述したＦＳ＿ＧｅｔＤｅｖＣａｐａｂｉｌｉｔｉｅｓ（  ）関数２０６及びＦＳ＿ＧｅｔＦｕｎｃＩｔｅｍ（  ）関数２０７のコールに基づいて、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間及び設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリング等のグラフィックス描画方法、印刷可能な用紙サイズ及び用紙種、最大設定可能コピー部数、Ｎ−ｕｐ印刷時の印刷設定可能Ｎ−ｕｐ数等の前記プリンタドライバ２０２において各種印刷機能実行のための印刷能力情報及び給紙方法、排紙方法、両面印刷機能、Ｎ−ｕｐ印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能等の各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能等の前記プリンタドライバ２０２において実行可能な印刷機能情報をＧＤＩ２００を介して、前記ＦＳ＿ＧｅｔＣａｐａｂｉｌｉｔｉｅｓ（  ）  関数２０６及びＦＳ＿ＧｅｔＦｕｎｃＩｔｅｍ（  ）  関数２０７のリターン値として、アプリケーションプログラム１０３に通知する。
【００３３】
アプリケーションプログラム１０３は、上記ＦＳ＿ＧｅｔＣａｐａｂｉｌｉｔｉｅｓ（  ）  関数２０６及びＦＳ＿ＧｅｔＦｕｎｃＩｔｅｍ（  ）関数２０７で取得した印刷能力情報及び印刷機能情報に基づき、ドキュメント作成及び体裁加工処理を施し、例えば、前述したようにプリンタドライバＳＤＫ  ＡＰＩである両面印刷属性を設定するＦＳ＿ＳｅｔＤｕｐｌｅｘＰｒｉｎｔ（  ）関数２０８又はステイプル印刷属性を設定するＦＳ＿ＳｅｔＳｔａｐｌｅＰｒｉｎｔ（  ）関数２０９をコールして、最終的なドキュメント出力形態を指定する。
【００３４】
以降同様に、アプリケーションプログラム１０３は、プリンタドライバＳＤＫ
ＡＰＩを使用して各印刷属性設定を行う。
【００３５】
プリンタドライバ１０２は、プリンタドライバＳＤＫ  ＡＰＩによる各種印刷属性設定を受けて、各関数処理において、プリンタ制御命令の生成、或いは解像度、カラー／モノクロ出力、ベクタ／イメージ描画、ディザリング等の画像描画のための初期化設定処理等を行う。
【００３６】
続いて、アプリケーションプログラム１０３は、ドキュメント出力処理に移行するために、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩであるＳｔａｒｔＰａｇｅ（  ）関数２１０をコールし、プリンタドライバ１０２に新しいページの受け取りを開始するように指示し、以降ドキュメントページを構成するＷｉｎｄｏｗｓＳＤＫ  ＡＰＩ、プリンタドライバＳＤＫ  ＡＰＩの各関数（ｆｕｎｃｔｉｏｎ）２１２及び印刷データを書き込み・送信する。
【００３７】
プリンタドライバ１０２は、アプリケーションプログラム１０３からコールされたＳｔａｒｔＰａｇｅ（  ）関数２１０がＧＤＩ２００で変換されて、ＤＤＩであるＤｒｖＳｔａｒｔＰａｇｅ（  ）関数２１１がＧＤＩ２００よりコールされる。そして、プリンタドライバ１０２は、この関数内で新しいページ印刷のための各種処理を行う。
【００３８】
アプリケーションプログラム１０３は、ドキュメントページ毎にＷｉｎｄｏｗｓＳＤＫ  ＡＰＩであるＥｎｄＰａｇｅ（  ）関数２１３をコールし、１ページの書き込みを終えたことをプリンタドライバ１０２に伝える。プリンタドライバ１０２は、アプリケーションプログラム１０３からコールされたＥｎｄＰａｇｅ（  ）関数２１３がＧＤＩ２００で変換されて、ＤＤＩであるＤｒｖＥｎｄＰａｇｅ（  ）関数２１４がＧＤＩ２００よりコールされる。そして、プリンタドライバ１０２は、この関数内でページ終了のための各種処理を行う。
【００３９】
アプリケーションプログラム１０３は、すべてのドキュメントページの書き込み・送信が完了した場合、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩであるＥｎｄＤｏｃ（）関数２１５をコールし、ＳｔａｒｔＤｏｃ（  ）関数２０４で開始された印刷ジョブを終了する。
【００４０】
また、プリンタドライバ１０２は、アプリケーションプログラム１０３からコールされたＥｎｄＤｏｃ（  ）関数２１５がＧＤＩ２００で変換されて、ＤＤＩであるＤｒｖＥｎｄＤｏｃ（  ）関数２１６がＧＤＩ２００よりコールされる。そして、プリンタドライバ１０２は、この関数内でジョブ終了のための各種処理を行う。
【００４１】
さらに、アプリケーションプログラム１０３は、すべての印刷処理を完了し、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩであるＤｅｌｅｔｅＤＣ（  ）関数２１７をコールして、ＣｒｅａｔｅＤＣ（  ）関数２０３で作成されたデバイスコンテキストを削除し、プリンタドライバ１０２とのセッションを終了する。
【００４２】
［印刷機能属性情報及び印刷能力属性情報を取得する関数のコーリングシーケンスの説明］
図３は、本発明の第１の実施形態におけるプリンタドライバＳＤＫ  ＡＰＩである、印刷機能属性情報を通知・取得するＦＳ＿ＧｅｔＦｕｎｃＩｔｅｍ（  ）関数及び印刷能力属性情報を通知・取得するＦＳ＿ＧｅｔＤｅｖＣａｐａｂｉｌｉｔｉｅｓ（  ）関数のコーリングシーケンスを示す図である。
【００４３】
図３において、３０１は、アプリケーションプログラム１０３において、給紙方法、排紙方法、両面印刷機能、Ｎ−ｕｐ印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能等の各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能等のプリンタドライバ１０２において実行可能な印刷機能情報を問い合わせ・取得するプリンタドライバＳＤＫ  ＡＰＩであるＦＳ＿ＧｅｔＦｕｎｃＩｔｅｍ（  ）関数のコーリングシーケンスである。
【００４４】
アプリケーションプログラム１０３から本関数がコールされると、プリンタドライバ１０２は、プリンタ１０４から機器構成情報であるリソース情報及び印刷機能情報を取得し、これらの情報に基づき、現在有効な印刷機能をアプリケーションプログラム１０３に通知する。例えば、本関数のコーリングシーケンス例では、関数パラメータの１つであるアプリケーションプログラム１０３側で確保されたメモリバッファのポインタとして渡されるＦＵＮＣＩＴＥＭプログラム構造体に各種印刷機能情報を代入して、リターンすることでアプリケーションプログラム１０３に通知する。
【００４５】
また、３０２は、アプリケーションプログラム１０３において、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間及び設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリング等のグラフィックス描画方法、印刷可能な用紙サイズ及び用紙種、最大設定可能コピー部数、Ｎ−ｕｐ印刷時の印刷設定可能Ｎ−ｕｐ数等のプリンタドライバ１０２において各種印刷機能実行のための印刷能力情報を問い合わせ・取得するプリンタドライバＳＤＫ  ＡＰＩであるＦＳ＿ＧｅｔＣａｐａｂｉｌｉｔｉｅｓ（  ）関数のコーリングシーケンスである。
【００４６】
アプリケーションプログラム１０３から本関数がコールされると、プリンタドライバ１０２は、プリンタ１０４から機器構成情報であるリソース情報及び印刷機能情報を取得し、これらの情報に基づき、現在有効な印刷能力をアプリケーションプログラム１０３に通知する。例えば、本関数のコーリングシーケンス例では、関数パラメータの１つであるアプリケーションプログラム１０３側で確保されたメモリバッファのポインタとして渡されるＰＤＥＶＣＡＰＳプログラム構造体に各種印刷能力情報を代入して、リターンすることでアプリケーションプログラム１０３に通知する。
【００４７】
［３２−Ｂｉｔオペレーティングシステム環境での構成及び動作の説明］
以下では、Ｗｉｎｄｏｗｓ  ＮＴ４．０／Ｗｉｎｄｏｗｓ  ２０００／Ｗｉｎｄｏｗｓ  ＸＰ等の３２−Ｂｉｔオペレーティングシステム環境下におけるオペレーティングシステムのＧＤＩ、アプリケーションプログラム、プリンタドライバ及びプリンタドライバＳＤＫライブラリの各構成及び動作例について説明する。
【００４８】
図４は、本発明の第１の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるＷｉｎｄｏｗｓ  ＮＴ４．０／２０００の３２−ＢｉｔオペレーティングシステムでのＳＤＫの構成を示す図である。
【００４９】
図４において、４０１は３２−Ｂｉｔアプリケーションプログラム（３２−ｂｉｔ  Ｕｓｅｒ  Ａｐｐｌｉｃａｔｉｏｎ）である。また、４０２はＷｉｎｄｏｗｓ  ＮＴ４．０／Ｗｉｎｄｏｗｓ  ２０００／Ｗｉｎｄｏｗｓ  ＸＰ等の３２−Ｂｉｔオペレーティングシステムが備えるＧｒａｐｈｉｃａｌ  ＤｅｖｉｃｅＩｎｔｅｒｆａｃｅ（ＧＤＩ）である。さらに、４０３はプリンタドライバＳＤＫライブラリ（ＰＤＳＤＫ．ｄｌｌ）であり、３２−Ｂｉｔオペレーティングシステム環境下で動作・実行できるように３２−Ｂｉｔ関数群で構成される。さらにまた、４０４はプリンタドライバ（Ｐｒｉｎｔｅｒ  Ｄｒｉｖｅｒ）である。
【００５０】
通常の印刷属性設定及び印刷指示を行うＷｉｎｄｏｗｓＳＤＫ  ＡＰＩは、アプリケーションプログラム４０１から、ＧＤＩ４０２を介してＤＤＩに変換されて、プリンタドライバ４０４の各関数をコールする。
【００５１】
一方、アプリケーションプログラム４０１は、前述した印刷機能属性情報及び印刷能力属性情報に基づいて、より高機能で詳細な印刷属性設定をプリンタドライバＳＤＫライブラリ（ＰＤＳＤＫ．ｄｌｌ）４０３を使用して、直接プリンタドライバ４０４に対して行う。
【００５２】
［１６−Ｂｉｔオペレーティングシステム環境での構成及び動作の説明］
以下では、Ｗｉｎｄｏｗｓ  ９５／Ｗｉｎｄｏｗｓ  ９８／Ｗｉｎｄｏｗｓ  Ｍｅ等の１６−Ｂｉｔオペレーティングシステム環境下におけるオペレーティングシステムのＧＤＩ、アプリケーションプログラム、プリンタドライバ及びプリンタドライバＳＤＫライブラリの各構成及び動作例について説明する。
【００５３】
図５は、本発明の第１の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるＷｉｎｄｏｗｓ  ９５／９８／Ｍｅの１６−ＢｉｔオペレーティングシステムでのＳＤＫの構成を示すブロック図である。
【００５４】
図５において、５０１は一般な３２−Ｂｉｔのアプリケーションプログラム（３２−ｂｉｔ  Ｕｓｅｒ  Ａｐｐｌｉｃａｔｉｏｎ）である。また、５０２はＷｉｎｄｏｗｓ  ９５／Ｗｉｎｄｏｗｓ  ９８／Ｗｉｎｄｏｗｓ  Ｍｅ等の１６−Ｂｉｔオペレーティングシステムが備えるＧｒａｐｈｉｃａｌ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ（ＧＤＩ）である。さらに、５０３はプリンタドライバＳＤＫライブラリ（ＰＤＳＤＫ．ｄｌｌ）であり、３２−Ｂｉｔオペレーティングシステム環境下で動作・実行できるように３２−Ｂｉｔ関数群で構成されている。
【００５５】
さらにまた、５０４はプリンタドライバＳＤＫライブラリ（ＳＤＫ３２．ｄｌｌ）であり、上記３２−ＢｉｔプリンタドライバＳＤＫライブラリ（ＰＤＳＤＫ．ｄｌｌ）５０３からコールされる３２−Ｂｉｔ関数群及び３２−Ｂｉｔデータタイプを受け取り、１６−Ｂｉｔ関数群及び１６−Ｂｉｔデータタイプに変換し、１６−ＢｉｔのＧＤＩ５０２との入出力インタフェースとなる。
【００５６】
さらにまた、５０５はプリンタドライバＳＤＫライブラリ（ＳＤＫ１６．ｄｌｌ）であり、１６−Ｂｉｔオペレーティングシステム環境下で動作・実行できるように１６−Ｂｉｔデータタイプを扱う１６−Ｂｉｔ関数群で構成され、１６−Ｂｉｔデータタイプ及び関数群で構成されるプリンタドライバ５０６との入出力インタフェースとなる。
【００５７】
通常の印刷属性設定及び印刷指示を行うＷｉｎｄｏｗｓＳＤＫ  ＡＰＩは、アプリケーションプログラム５０１から、ＧＤＩ５０２を介してＤＤＩに変換されて、プリンタドライバ５０６の各関数をコールする。
【００５８】
一方、アプリケーションプログラム５０１は、前述した印刷機能属性情報及び印刷能力属性情報に基づいて、より高機能で詳細な印刷属性設定をプリンタドライバＳＤＫライブラリ（ＰＤＳＤＫ．ｄｌｌ）５０３、ＳＤＫ３２．ｄｌｌ５０４及びＳＤＫ１６．ｄｌｌ５０５を使用して、直接プリンタドライバ５０６に対して行う。
【００５９】
［ホストコンピュータシステム及びプリンタのハードウェア構成図の説明］
図６は、本発明の第１の実施形態に係る印刷システムにおけるホストコンピュータシステム１００及びプリンタ１０４のハードウェア構成を示す図である。図６に示すように、ホストコンピュータシステム１００には、ホストコンピュータシステム１００に対して入力を行うキーボードやマウス等の入力装置６０１と、表示出力を行う表示装置（Ｄｉｓｐｌａｙ）６０２と、ファイルを格納し入出力が可能なディスク（Ｄｉｓｋ）６０３が接続されている。そして、ホストコンピュータシステム１００は、当該システム内のプログラムメモリ（ＲＡＭ）６０６上にある、本発明のオペレーティングシステム１０１、プリンタドライバ１０２、アプリケーションプログラム１０３及びプリンタＳＤＫライブラリによって一連の印刷制御処理を行い、プリンタ１０４からドキュメント印刷出力１０５を行う。
【００６０】
さらに、図６を参照して、ホストコンピュータシステム１００の構成について詳細に説明する。６０４は、ホストコンピュータシステム１００及びそれに接続される各入出力装置（例えば、上述した入力装置６０１等）の制御や、入力された指示に従って出力制御等の一連の処理、各種プログラムを実行するＣＰＵである。また、６０５は、ＣＰＵ６０４を動作させるためのオペレーティングシステム等の種々の基本プログラムを格納するメモリ（ＲＯＭ）である。さらに、６０６は、ＣＰＵ６０４が本実施形態におけるプリンタ１０４に係る各種印刷属性設定、ドキュメント印刷を実行／動作させる各種処理のための作業領域として用いられるメモリ（ＲＡＭ）である。
【００６１】
一方、６０７は、ホストコンピュータシステム１００に接続され、各種入力を行うキーボードやマウス等の入力装置６０１のインタフェースを備えるキーボード・コントローラ（Ｋｅｙｂｏａｒｄ  Ｃｏｎｔｒｏｌｌｅｒ）、６０８は、ディスプレイ６０２への表示出力を行うためのインタフェースを備えるディスプレイ・コントローラ（Ｄｉｓｐｌａｙ  Ｃｏｎｔｒｏｌｌｅｒ）、６０９は、ディスク６０３への入出力インタフェースを備えるディスク・コントローラ（Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ）である。さらに、６１０は、ホストコンピュータシステム１００とプリンタ１０４を互いに接続して、通信を行うための通信プロトコルを備えたイーサネット（登録商標）等のネットワーク回線を介して、入出力を行うネットワークインタフェース（Ｎｅｔｗｏｒｋ  Ｉ／Ｆ）である。また、６１１は上述したホストコンピュータシステム１００内の各構成要素を接続するためのＣＰＵバスである。
【００６２】
次に、プリンタ１０４の構成について詳細に説明する。図６に示すように、６１４はプリンタ１０４に接続される各種入出力の制御や、入力された指示に従って、印刷制御等の一連の処理、通信制御制御処理等のプログラムを実行するＣＰＵである。また、６１５は、各入出力の制御、通信制御処理、入力された指示に従って印字制御等一連の処理、制御コマンド解析処理等プリンタを動作させるプログラム、各種データ等が格納されているメモリ（ＲＯＭ）である。さらに、６１６は、ＣＰＵ６１４が各種プログラムで実行・処理を行うための作業領域として用いられるメモリ（ＲＡＭ）である。
【００６３】
一方、６１７は、ホストコンピュータシステム１００とプリンタ１０４とを互いに接続して、データのやり取りを行うための通信プロトコルを備えたイーサネット（登録商標）等のネットワーク回線を介して、入出力を行うネットワークインタフェースである。また、６１８は、ディスク６１３への入出力インタフェースを備えるディスク・コントローラである。さらに、６１９は、機構的にパターン出力を行うビデオインタフェースであって印刷装置駆動系（エンジン部）６２１とのデータ及び信号のやり取りを行う入出力インタフェースを備えるエンジン制御処理部である。尚、６２０は、上述した各構成要素を接続するＣＰＵバスである。
【００６４】
次に、ホストコンピュータシステム１００内のプログラムメモリであるＲＡＭ６０６上にあるＷｉｎｄｏｗｓＳＤＫライブラリを含むオペレーティングシステム１０１、アプリケーションプログラム１０３、プリンタドライバ１０２及びプリンタドライバＳＤＫライブラリの各制御処理及び動作を詳細に説明する。
【００６５】
まず、アプリケーションプログラム１０３における動作について説明する。ホストコンピュータシステム１００内のＲＡＭ６０６上にあるアプリケーションプログラム１０３は、ドキュメント作成、体裁加工及び印刷出力のための各種初期化処理を行う過程で、オペレーティングシステム１０１を介してプリンタドライバ１０２のロード及び起動、プリンタドライバＳＤＫライブラリのロードを行う。
【００６６】
ここで当該アプリケーションプログラム１０３は、通常のＷｉｎｄｏｗｓＳＤＫ  ＡＰＩを使用しての各種初期化処理の他に、プリンタ１０４及びプリンタドライバ１０２において、現在使用可能な機能・能力を認識するために、プリンタドライバＳＤＫライブラリに含まれるＡＰＩを使用して、プリンタドライバ１０２に印刷機能属性情報及び印刷能力属性情報を問い合わせる。そして、アプリケーションプログラム１０３は、問い合わせに応答してプリンタドライバ１０２から通知される印刷機能属性情報及び印刷能力属性情報を取得し、これに基づいてドキュメントを目的の出力形態に作成及び体裁加工を行う。さらに、アプリケーションプログラム１０３は、目的の出力形態を実現するために、プリンタ１０４に対し、各種印刷属性設定及び印刷指示をドキュメントデータと共に、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩ及びプリンタドライバＳＤＫ  ＡＰＩを使用して行う。
【００６７】
次に、プリンタドライバ１０２における動作を説明する。ホストコンピュータシステム１００内のＲＡＭ６０６上にあるプリンタドライバ１０２は、前述したアプリケーションプログラム１０３の起動初期化時に、オペレーティングシステム１０１上にロードされ、起動する。上記アプリケーションプログラム１０３におけるドキュメント作成、印刷のための各種初期化処理に基づいて、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩがコールされることによって、オペレーティングシステム１０１のＧＤＩを介してＤＤＩに変換され、コールされることによって、プリンタドライバ１０２での初期化処理が開始される。
【００６８】
同時に、アプリケーションプログラム１０３からプリンタＳＤＫ  ＡＰＩによる前述した印刷機能属性情報及び印刷能力属性情報の問い合わせに対し、プリンタドライバ１０２は、プリンタ１０４との双方向通信により機器構成情報として、印刷用紙の給紙方法を決定する各種給紙装置、用紙出力方法を決定する各種排紙装置、両面印刷装置、ステイプル装置、パンチャー装置、トリマー装置、用紙Ｚ折り装置等のフィニッシング装置類、メモリ、ハードディスク等の記憶装置、機器に搭載され出力可能な用紙サイズ及び用紙種、搭載されるフォント等の機器が有するリソース情報を取得する。また、プリンタドライバ１０２は、機器構成情報として、モノクロ／カラー印刷機能、解像度、グラフィックス描画方法、用紙印刷方向、最大コピー部数、Ｎ−ｕｐ印刷機能、ジョブストア機能、フォントダウンロード機能等の機器が有する印刷機能情報も取得する。
【００６９】
また、プリンタドライバ１０２は、プリンタ１０４の機器構成情報である機器リソース情報及び印刷機能情報に基づき、プリンタ１０４及びプリンタドライバ１０２で現在実現可能な印刷機能属性情報及び印刷能力属性情報を生成し、アプリケーションプログラム１０３から問い合わせを受けたプリンタドライバＳＤＫＡＰＩのリターン値として、アプリケーションプログラム１０３にそれらを通知する。
【００７０】
すなわち、本実施形態に係る印刷システムでは、プリンタドライバ１０２が、プリンタ１０４から前述したリソース情報及び印刷機能情報を取得し、そのリソース情報及び印刷機器情報に基づいて、プリンタドライバ１０２が有する各種印刷機能を実行可能であるか否かを判定し、その判定結果に基づいて、アプリケーションプログラム１０３に情報通知を行うための印刷機能属性情報を生成することを特徴とする。
【００７１】
また、上記印刷システムでは、プリンタドライバ１０２が、さらに、その判定結果に基づいて、アプリケーションプログラム１０３に情報通知を行うための印刷能力属性情報を生成することを特徴とする。
【００７２】
さらに、アプリケーションプログラム１０３に通知した印刷機能属性情報及び印刷能力属性情報に基づき、目的のドキュメント印刷を行うための各種印刷属性設定をＧＤＩを介してＷｉｎｄｏｗｓＳＤＫ  ＡＰＩ及びプリンタドライバＳＤＫ  ＡＰＩでコールされることによって、プリンタドライバ１０２においてコールされるＤＤＩに基づいて、各種印刷属性設定処理を行う。
【００７３】
また、プリンタドライバ１０２は、上記アプリケーションプログラム１０３からのドキュメント印刷指示と併せて、ドキュメントデータに基づき、図形／文字及びイメージのパターン・データ、サイズ、描画出力開始位置等の入力処理を行うデータ及び各種設定情報入力処理と、読み込まれた印刷属性設定情報等を解析する入力データ及び情報解析処理と、サイズ、描画出力形態等を指示する各設定パラメータに基づいて、構成されるドキュメントの描画出力形態を決定する描画出力形態制御処理と、決定したドキュメントを印刷するため、プリンタ６１２のプリンタ制御命令を変換・生成する出力制御命令変換処理と、生成された印字出力制御命令をプリンタに送信する出力制御命令送信制御処理とにおいて一連の処理を施し、プリンタ１０４から目的のドキュメントを出力させる。
【００７４】
次に、プリンタ１０４における動作について詳細に説明する。プリンタ１０４内のメモリであるＲＯＭ６１５上にある制御プログラムにおける印刷出力制御処理によるドキュメントの出力動作を詳細に説明する。まず、現在サポートしている用紙サイズ、用紙タイプ、ステイプル機能をもつフィニッシャの有無等、印刷を行う際の有効な機能、資源のプリンタ構成情報をネットワークインタフェース６１７を介して、ホストコンピュータシステム１００のＲＡＭ６０６上にあるプリンタドライバに通知する。
【００７５】
そして、ホストコンピュータシステム１００内のプログラムメモリであるＲＡＭ６０６上にあるプリンタドライバ１０２から送信されるプリンタ１０４を初期化する制御命令を受信し、初期化処理を行う。
【００７６】
続いて、ホストコンピュータシステム１００から、プリンタ１０４に印刷を行うために送信されてくるプリンタ印刷制御命令の入力を行う印刷制御命令入力処理、入力されたプリンタ印刷制御命令及び各種設定パラメータ等を解析する制御設定パラメータ解析処理、印刷制御命令、制御設定パラメータに基づいて、ビットマップを生成し、ビットマップメモリに展開するビットマップ展開処理において一連の処理を施し、エンジン制御処理部と入出力を行うビデオインタフェース６１９を通して、印字出力装置駆動系（エンジン部）６２１に生成されたビットマップ・データを送信して、ドキュメント出力１０５を出力する。
【００７７】
［第１の実施形態のアプリケーションプログラムにおける各制御処理］
次に、図７に示すフローチャートによって、本実施形態におけるホストコンピュータシステム１００のプログラムメモリであるＲＡＭ６０６上にあるアプリケーションプログラムの各制御処理を詳細に説明する。
【００７８】
図７は、本発明の第１の実施形態に係るホストコンピュータシステム１００におけるアプリケーションプログラム１０３における処理の一例を説明するためのフローチャートである。すなわち、プリンタドライバＳＤＫライブラリを使用して、印刷機能属性情報及び印刷能力属性情報を取得して、目的のドキュメント作成、体裁加工及び印刷指示を行う一連の制御処理について以下に説明する。
【００７９】
まず、アプリケーションプログラム１０３の起動時に初期化処理が行われる（ステップＳ７０１）。このとき、プリンタドライバ１０２もオペレーティングシステム１０１上でロードされ、起動する。また、同時に、プリンタドライバＳＤＫライブラリをロードする（ステップＳ７０２）。次いで、プリンタドライバ１０２に対してプリンタドライバＳＤＫ  ＡＰＩを使用して、印刷機能属性情報及び印刷能力属性情報の問い合わせを行い、プリンタドライバ１０２から取得する（ステップＳ７０３）。
【００８０】
そして、アプリケーションプログラム１０３は、プリンタドライバ１０２から取得した印刷機能属性情報及び印刷能力属性情報に基づき、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩを使用して一般的な印刷属性設定を行い、プリンタ１０４及びプリンタドライバ１０２が有する、より高機能な印刷属性設定をプリンタドライバＳＤＫ  ＡＰＩを使用して行う（ステップＳ７０４）。次に、アプリケーションプログラム１０３は、取得した印刷機能属性情報及び印刷能力属性情報に基づき、目的のドキュメントの作成、体裁加工等の編集を行う（ステップＳ７０５）。さらに、アプリケーションプログラム１０３は、ドキュメントを構成する文字・図形描画処理を行う（ステップＳ７０６）。
【００８１】
次いで、アプリケーションプログラム１０３は、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩを使用してドキュメント印刷指示とともに、描画処理を行った文字・図形データをプリンタ１０４に送る（ステップＳ７０７）。そして、すべてのドキュメントデータを送信後、印刷終了処理に移行する（ステップＳ７０８）とともに、プリンタドライバＳＤＫライブラリをアンロードする（ステップＳ７０９）。
【００８２】
［第１の実施形態のプリンタドライバ１０２における各制御処理］
ここでは、図８及び図９に示すフローチャートを用いて、本実施形態のプリンタドライバ１０２における各制御処理を詳細に説明する。
【００８３】
図８は、本発明の第１の実施形態のプリンタドライバ１０２におけるプリンタ１０４からの機器構成情報取得及びアプリケーションプログラム１０３への印刷機能属性情報及び印刷能力属性情報通知を行う制御処理を説明するためのフローチャートである。
【００８４】
まず、プリンタドライバ１０２は、プリンタ１０４から各種機器構成情報を取得するために、ホストコンピュータシステム１０１とプリンタ１０４間で双方向通信を行い、プリンタＭＩＢ又は機器構成情報の送受信を行う制御コマンドを発行するモジュールライブラリのロード、取得する情報の種類の列挙処理等の初期化を行う（ステップＳ８０１）。次に、プリンタドライバ１０２は、プリンタ１０４にプリンタＭＩＢ又は機器構成情報の送受信を行う制御コマンドを発行して、機器構成情報を問い合わせる（ステップＳ８０２）。ステップＳ８０２における問い合わせの結果、ステップＳ８０３の判断分岐処理に進む。
【００８５】
その結果、機器構成情報取得に成功した場合（Ｙｅｓ）、プリンタドライバ１０２は、取得した機器構成情報からプリンタ１０４が備えるオプション類等のリソース情報と、有効な機能情報に分離し、リソース情報解析（ステップＳ８０４）及び機能情報解析（ステップＳ８０５）を行う。一方、ホストコンピュータシステム１００及びプリンタ１０４間の通信で、オフライン又は通信状態劣化等通信不可能の理由で機器構成情報取得に失敗した場合（Ｎｏ）、プリンタドライバ１０２は、デフォルト設定値及びユーザインタフェース上で設定される値を採用して、これらの値からリソース情報及び機能情報を解析する（ステップＳ８０６）。
【００８６】
ステップＳ８０５又はステップＳ８０６の解析処理後、上記リソース情報及び機能情報解析結果より、プリンタドライバ１０２は、印刷機能属性情報及び印刷能力属性情報を作成する（ステップＳ８０７）。さらに、プリンタドライバ１０２は、作成した印刷機能属性情報及び印刷能力属性情報をアプリケーションプログラム１０３からコールされた関数のパラメータであるメモリバッファのポインタへコピーして、リターンすることによりアプリケーションプログラム１０３に通知する（ステップＳ８０８）。
【００８７】
図９は、本発明の第１の実施形態に係る印刷システムにおけるホストコンピュータシステム１００のプログラムメモリであるＲＡＭ６０６上のプリンタドライバ１０２における印刷制御処理の詳細を説明するためのフローチャートである。
プリンタドライバ１０２は、外部から、例えば文字、図形、イメージ作成、編集、印刷アプリケーションプログラム等のドキュメント入力プログラムからのプリンタへの印刷指示によって起動され、ステップＳ９０１〜Ｓ９１２を実行する。
【００８８】
まず、プリンタドライバ１０２には、各種印刷属性設定パラメータ及びアプリケーションから印刷指示されたドキュメントを構成する文字／図形／イメージデータが入力される（ステップＳ９０１）。これらの入力は、ＷｉｎｄｏｗｓＳＤＫ  ＡＰＩ及びプリンタドライバＳＤＫ  ＡＰＩを使用して行われる。次に、プリンタドライバ１０２は、これらの入力されたパラメータ及びデータを解析する（ステップＳ９０２）。
【００８９】
そして、入力データの解析結果より、用紙サイズ、印刷方向、描画解像度設定、座標系の単位設定等印刷の準備をするため、プリンタドライバ１０２は、プリンタ１０４に対する各設定パラメータをプリンタ制御命令に変換・生成し、送信してプリンタ１０４の初期化処理を行う（ステップＳ９０３）。さらに、プリンタドライバ１０２は、ステップＳ９０４及びステップＳ９０６において、解析処理されたパラメータ及びデータを、文字データ、図形データ又はイメージデータに分離する。
【００９０】
ステップＳ９０４及びステップＳ９０６で分離された文字データ、図形データ又はイメージデータは、プリンタドライバ１０２において、それぞれステップＳ９０５、ステップＳ９０７及びステップＳ９０８の文字印字制御処理部（モジュール）、図形描画制御処理部（モジュール）及びイメージ描画制御処理部（モジュール）で処理が施される。
【００９１】
ステップＳ９０５、ステップＳ９０７及びステップＳ９０８における文字印字、図形描画及びイメージ描画制御処理に基づき、ステップＳ９０９のドキュメント構成制御処理（モジュール）において、プリンタドライバ１０２は、描画出力属性、サイズ計算、描画出力位置等パターンの出力形態を決定し、プリンタ１０４の出力ページに配置する。
【００９２】
ステップＳ９０９で構成されたドキュメント出力の制御データは、ステップＳ９１０の印刷制御命令生成処理（モジュール）において、プリンタ１０４にドキュメントを出力するためにプリンタの印刷制御命令に変換・生成する。そして、ステップＳ９１１のプリンタへの出力送信処理（モジュール）において、プリンタドライバ１０２は、プリンタ１０４に対してステップＳ９１０で生成された印刷制御命令を送信し、プリンタ１０４からドキュメント印刷出力を行う（ステップＳ９１２）。
【００９３】
以上説明したように、本実施形態によれば、Ｗｉｎｄｏｗｓオペレーティングシステム環境下において、アプリケーションプログラムで標準的に使用されるＷｉｎｄｏｗｓＳＤＫライブラリとともに、本発明のプリンタドライバＳＤＫライブラリを使用することによって、標準的な印刷機能の他に、オプション装置類を搭載して実現可能なプリンタデバイス機能及びプリンタデバイス機器構成情報に基づくプリンタドライバ機能を使用可能とし、より付加価値の高い印刷機能を提供することが可能である。
【００９４】
また、アプリケーションプログラム及びプリンタドライバにおいて、プリンタＳＤＫを使用して、内部的に各種印刷属性設定処理が進行され、常に現在のプリンタデバイスの状況に適応した機能を自動的に利用可能とすることができるため、利用者にとって操作性に優れ、効率的で簡便かつ運用性の高い印刷システムを提供することが可能である。
【００９５】
＜第２の実施形態＞
第２の実施形態では、上述した第１の実施形態のプリンタドライバ１０２で行っているプリンタ１０４との双方向通信によるプリンタ機器構成情報取得処理を、Ｌａｎｇｕａｇｅ  Ｍｏｎｉｔｏｒが代わって行い、プリンタドライバ１０４とＬａｎｇｕａｇｅ  Ｍｏｎｉｔｏｒとの間でこれらの機器構成情報のやりとりを行う手段をさらに備える印刷システムを提供する。
【００９６】
本実施形態によれば、前述した第１の実施形態から各ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）プリンタドライバに依存せずに機器構成情報を取得することができる、各ＰＤＬ共通の汎用的な機器構成情報取得手段を備えることにより、さらに簡便かつ低コストな印刷システムの構築、運用が可能となる。
【００９７】
＜第３の実施形態＞
第３の本実施形態では、上述した第１の実施形態のオペーレーティングシステム１０１に代わって、他のオペレーティングシステムを適用した印刷システムを提供する。
【００９８】
本実施形態によれば、例えば、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を持たないＵＮＩＸ（登録商標）系オペレーティングシステム等を用いて、前述したプリンタドライバ１０１が備えるような各種印刷属性設定を行うユーザインタフェースが実現不可能であっても、本発明のプリンタドライバＳＤＫを用意することによって、同様に高機能な印刷設定を行い、印刷を行うことができる印刷システムを実現することが可能である。
【００９９】
＜第４の実施形態＞
第４の本実施形態では、図６に示すホストコンピュータシステム１００とプリンタ１０４間を接続するイーサネット（登録商標）・インタフェースに代えて、セントロニクス準拠の入出力パラレル・インタフェース、ＲＳ−２３２Ｃ準拠、ＲＳ−４２４準拠の入出力シリアル・インタフェース或いはＳＣＳＩインタフェースを使って、図６に示すホストコンピュータシステム１００のプログラムメモリＲＡＭ６０６上にあるプリンタドライバ１０２及びプリンタ１０４とデータのやりとりを行うものである。
【０１００】
＜その他の実施形態＞
尚、本発明は、前述したそれぞれの実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（記録媒体）を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０１０１】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光磁気ディスク、光ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１０２】
また、コンピュータが読み出したプログラムコードを実行することによって、前述した実施形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０４】
尚、本発明は、前述したそれぞれの実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体からそのプログラムをパソコン通信等の通信ラインを介して要求者にそのプログラムを配信する場合にも適用できることは言うまでもない。
【０１０５】
【発明の効果】
以上説明したように、本発明によれば、アプリケーションプログラム、プリンタドライバ及び印刷装置からなる印刷システムにおいて、印刷装置の標準的な印刷機能を使用可能にするだけでなく、高機能を有する印刷装置に対しては、その付加価値の高い機能を好適に使用可能にすることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る印刷システムのシステム構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るホストコンピュータシステム１００上のオペレーティングシステム１０１、アプリケーションプログラム１０３及びプリンタドライバ１０２におけるプリンタドライバＳＤＫ  ＡＰＩを使用した初期化から印刷までの流れを説明するためのシーケンス図である。
【図３】本発明の第１の実施形態におけるプリンタドライバＳＤＫ  ＡＰＩである、印刷機能属性情報を通知・取得するＦＳ＿ＧｅｔＦｕｎｃＩｔｅｍ（  ）関数及び印刷能力属性情報を通知・取得するＦＳ＿ＧｅｔＤｅｖＣａｐａｂｉｌｉｔｉｅｓ（  ）関数のコーリングシーケンスを示す図である。
【図４】本発明の第１の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるＷｉｎｄｏｗｓ  ＮＴ４．０／２０００の３２−ＢｉｔオペレーティングシステムでのＳＤＫの構成を示す図である。
【図５】本発明の第１の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるＷｉｎｄｏｗｓ  ９５／９８／Ｍｅの１６−ＢｉｔオペレーティングシステムでのＳＤＫの構成を示すブロック図である。
【図６】本発明の第１の実施形態に係る印刷システムにおけるホストコンピュータシステム１００及びプリンタ１０４のハードウェア構成を示す図である
【図７】本発明の第１の実施形態に係るホストコンピュータシステム１００におけるアプリケーションプログラム１０３における処理の一例を説明するためのフローチャートである。
【図８】本発明の第１の実施形態のプリンタドライバ１０２におけるプリンタ１０４からの機器構成情報取得及びアプリケーションプログラム１０３への印刷機能属性情報及び印刷能力属性情報通知を行う制御処理を説明するためのフローチャートである。
【図９】本発明の第１の実施形態に係る印刷システムにおけるホストコンピュータシステム１００のプログラムメモリであるＲＡＭ６０６上のプリンタドライバ１０２における印刷制御処理の詳細を説明するためのフローチャートである。
【符号の説明】
１００  ホストコンピュータシステム
１０１  オペレーティングシステム
１０２  プリンタドライバ
１０３  アプリケーションプログラム
１０４  プリンタ
１０５  印刷出力
【図１】
2004288013.tif 000003
【図２】
2004288013.tif 000004
【図３】
2004288013.tif 000005
【図４】
2004288013.tif 000006
【図５】
2004288013.tif 000007
【図６】
2004288013.tif 000008
【図７】
2004288013.tif 000009
【図８】
2004288013.tif 000010
【図９】
2004288013.tif 000011