(57)【要約】【課題】使用可能な印刷機能に応じて最適なドキュメント編集、また、認証情報に応じた細かな使用可能な印刷機能制限、さらに、標準的な印刷機能の他にオプション装置類等を搭載して実現可能なプリンタデバイス機能および高度なプリンタドライバ実現機能の使用を可能とし、より付加価値の高い印刷環境を提供すること。【解決手段】アプリケーションプログラム１０３から該当アプリケーションプログラム１０３の認証情報をプリンタドライバ１０２に通知し、該通知される認証情報に基づいて、プリンタドライバ１０２が動作および機能可能な印刷を行うための印刷設定情報を選択してアプリケーションプログラム１０３に通知し、該通知される印刷設定情報に基づいて、アプリケーションプログラム１０３上でドキュメントの編集及び印刷設定を制御する構成を特徴とする。【選択図】図１
2007004332.tif 000002
【特許請求の範囲】
【請求項１】
所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいてプリンタドライバが該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置において、
前記アプリケーションプログラムから該当アプリケーションプログラムの認証情報を前記プリンタドライバに通知する第１の通知手段と、
前記第１の通知手段により通知される認証情報に基づいて、前記プリンタドライバが動作および機能可能な印刷を行うための印刷設定情報を選択して前記アプリケーションプログラムに通知する第２の通知手段と、
前記第２の通知手段により通知される印刷設定情報に基づいて、前記アプリケーションプログラム上でのドキュメントの編集及び印刷設定を制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記認証情報は、前記アプリケーションプログラムの使用目的あるいは動作目的に応じたものであり、
前記認証情報に応じたアクセス制御レベル情報を記憶管理する第１の記憶手段とを設け、
前記第２の通知手段は、前記第１の通知手段により通知される認証情報に基づいて、前記プリンタドライバにて認証処理を行って前記第１の記憶手段からアクセス制御レベルを取得し、該取得したアクセス制御レベルに応じた動作および機能可能な印刷を行うための印刷設定情報を選択して前記アプリケーションプログラムに通知することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記印刷設定情報は、前記印刷装置において実行可能な印刷機能および前記プリンタドライバの印刷制御処理で実行可能な印刷機能を表わす印刷機能属性情報と、前記印刷機能情報に基づきプリンタドライバで実行可能な各種印刷機能の実行範囲を表わす印刷能力属性情報を含むことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記印刷機能属性情報は、給紙方法、排紙方法、両面印刷機能、複数ページ割付印刷、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能などの各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、スタンプ機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能等の前記プリンタドライバにおいて実行可能な印刷機能情報を含むことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記印刷能力属性情報は、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間および設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリングなどのグラフィックス描画方法、印刷可能な用紙サイズおよび用紙種、最大設定可能コピー部数、複数ページ割付印刷時の割付可能ページ数の前記プリンタドライバにおいて各種印刷機能実行のための印刷能力情報を含むことを特徴とする請求項３又は４記載の情報処理装置。
【請求項６】
前記第１通知手段，前記第２の通知手段は、前記アプリケーションプログラムおよび前記プリンタドライバプログラムに、共通の任意にプログラミング可能な関数あるいはデータ形式のプログラミングインターフェースによりデータの送受信を行うことを特徴とする請求項１〜５のいずれかに記載の情報処理装置。
【請求項７】
前記アプリケーションプログラムから前記アプリケーションプログラムインタフェースを用いて前記プリンタドライバに印刷設定を指示する印刷設定手段を設けたことを特徴とする請求項１〜６のいずれかに記載の情報処理装置。
【請求項８】
前記プリンタドライバで、前記印刷設定手段により指示された印刷設定に基づき、印刷制御命令を生成し、該印刷制御命令と前記アプリケーションプログラムからの印刷ドキュメントデータを組み合わせて印刷装置に送信する印刷制御手段を設けたことを特徴とする請求項１〜７のいずれかに記載の情報処理装置。
【請求項９】
所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいてプリンタドライバが該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置における印刷制御方法において、
前記アプリケーションプログラムから該当アプリケーションプログラムの認証情報を前記プリンタドライバに通知する第１の通知ステップと、
前記第１の通知ステップにより通知される認証情報に基づいて、前記プリンタドライバが動作および機能可能な印刷を行うための印刷設定情報を選択して前記アプリケーションプログラムに通知する第２の通知ステップと、
前記第２の通知ステップにより通知される印刷設定情報に基づいて、前記アプリケーションプログラム上でのドキュメントの編集及び印刷設定を制御する制御ステップと、
を有することを特徴とする印刷制御方法。
【請求項１０】
請求項９に記載された印刷制御方法をコンピュータに実行させるためのプログラム。
【請求項１１】
請求項９に記載された印刷制御方法をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいてプリンタドライバが該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置および印刷制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来のオペレーティングシステム上で実行されるドキュメント作成・印刷アプリケーションプログラムからの印刷に関して、以下（１），（２）に示す方法が一般的であった。
【０００３】
（１）Ｗｉｎｄｏｗｓ（登録商標）に代表されるオペレーティングシステム環境においては、Software Development Kit（ＳＤＫ）で共通のアプリケーションプログラムインタフェース（ＡＰＩ）が提供され、これを利用して最小限の印刷属性設定および印刷指示を行う方法。
【０００４】
（２）特開平７−４４３８８号公報の「コンピュータシステムの印刷処理装置および方法」に代表されるように一般的なプリンタドライバの動作で、利用者にユーザインタフェース（ダイアログボックス）でオプション装置を指定させ、そのオプション情報に基づき、最終的な印刷データを作成し、印刷装置に送信する方法。
【０００５】
さらに、プログラム認証によるアクセス制御においては、以下の従来技術がある。
【０００６】
特開２００３−３０１４９号公報の「認証方法に基づいてリソースへのアクセスを制御するための方法および装置」にあるように、この技術は、オペレーティングシステムを介して、コンピュータおよびコンピュータネットワーク中のリソース、オブジェクト（ファイル/フォルダ/プログラム/プリンタ/…など）へのユーザあるいはグループのログイン情報に基づく、アクセスおよび監査を制御するものである。
【特許文献１】特開平７−４４３８８号公報
【特許文献２】特開２００３−３０１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら上記従来例では、ドキュメント作成・印刷アプリケーションプログラムからの印刷を行う場合、以下に示すような問題があった。
【０００８】
Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫなどのオペレーティングシステムに付属する開発キットでは、印刷装置の一般的な印刷属性設定および印刷指示だけしかできず、高機能を有する印刷装置に対して、一部の一般的な機能のみ使用して、その他の付加価値が高い機能は使用できないでいた。
【０００９】
印刷装置の使用可能な機能は、利用者がユーザインタフェース（ダイアログボックス）等で明示的に確認しなければ、認識できない。例えば、カラー印刷不可能な印刷装置で印刷するドキュメントを作成する場合、ユーザがカラー印刷不可能な旨を知らずに、カラーでドキュメントを作成・編集してしまう等といった事態が発生していた。
【００１０】
従来、アプリケーションプログラム使用あるいはデータファイル、オブジェクト利用のためのアクセス制御はあったが、アプリケーションプログラムの使用目的あるいは動作目的に応じて、使用する印刷機能の制限、一般には公開されていない機能の使用許可のアクセス制御を行う認証機構がなく、細かなアクセス制御ができなかった等の問題点があった。
【００１１】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいてプリンタドライバが該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置において、前記アプリケーションプログラムから該当アプリケーションプログラムの認証情報を前記プリンタドライバに通知し、該通知される認証情報に基づいて、前記プリンタドライバが動作および機能可能な印刷を行うための印刷設定情報を選択して前記アプリケーションプログラムに通知し、該通知される印刷設定情報に基づいて、前記アプリケーションプログラム上でのドキュメントの編集及び印刷設定を制御することにより、使用可能な印刷機能に応じて最適なドキュメント編集を可能とし、また、認証情報に応じた細かな使用可能な印刷機能制限を可能とし、さらに、標準的な印刷機能の他にオプション装置類等を搭載して実現可能なプリンタデバイス機能および高度なプリンタドライバ実現機能を使用可能とし、より付加価値の高い印刷機能を提供することを可能とする情報処理装置および印刷制御方法およびプログラムおよび記憶媒体を提供することである。
【課題を解決するための手段】
【００１２】
本発明は、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいてプリンタドライバが該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置において、前記アプリケーションプログラムから該当アプリケーションプログラムの認証情報を前記プリンタドライバに通知する第１の通知手段と、前記第１の通知手段により通知される認証情報に基づいて、前記プリンタドライバが動作および機能可能な印刷を行うための印刷設定情報を選択して前記アプリケーションプログラムに通知する第２の通知手段と、前記第２の通知手段により通知される印刷設定情報に基づいて、前記アプリケーションプログラム上でのドキュメントの編集及び印刷設定を制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいてプリンタドライバが該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置において、前記アプリケーションプログラムから該当アプリケーションプログラムの認証情報を前記プリンタドライバに通知し、該通知される認証情報に基づいて、前記プリンタドライバが動作および機能可能な印刷を行うための印刷設定情報を選択して前記アプリケーションプログラムに通知し、該通知される印刷設定情報に基づいて、前記アプリケーションプログラム上でのドキュメントの編集及び印刷設定を制御するので、使用可能な印刷機能に応じて最適なドキュメント編集を可能とし、また、認証情報に応じた細かな使用可能な印刷機能制限を可能とし、さらに、標準的な印刷機能の他にオプション装置類等を搭載して実現可能なプリンタデバイス機能および高度なプリンタドライバ実現機能を使用可能とし、より付加価値の高い印刷機能を使用可能な印刷環境を提供することができる等の効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面にしたがって本発明の実施形態を詳細に説明する。
【００１５】
〔第１実施形態〕
＜本実施形態における動作例の概略＞
以下にホストコンピュータシステム（以下、ホストコンピュータ）上にＷｉｎｄｏｗｓ（登録商標）オペレーティング（ＯＳ）、ドキュメント作成・印刷アプリケーションプログラム、プリンタドライバプログラムおよびこれに接続する印刷装置（プリンタ）から構成される印刷システムを、本発明の印刷システムの一例として説明する。
【００１６】
本発明の印刷システムでは、ホストコンピュータシステム上で動作するアプリケーションプログラムおよびプリンタドライバプログラムにおいて、相互に各種情報および各種データを通知する手段として、任意にプログラミング可能な関数あるいはデータ形式のアプリケーションプログラムインタフェース（ＡＰＩ）を備える。なお、このＡＰＩは、上記アプリケーションプログラムおよびプリンタドライバが動作する上記ホストコンピュータ上のオペレーティングシステム上で認識実行可能である。
【００１７】
この印刷システムでは、アプリケーションプログラムからの認証情報通知により、プリンタドライバでアプリケーションプログラムのアクセス制御レベルに応じた、印刷機能属性情報および印刷能力属性情報を生成し、ＡＰＩを使用し、アプリケーションプログラムに通知する。アプリケーションプログラムでは、上記プリンタドライバから通知される印刷機能属性情報および印刷能力属性情報に基づき、目的の印刷ドキュメント体裁加工を施し、同じくＡＰＩを使用し、各種印刷属性設定および印刷指示を行う例を示す。
【００１８】
＜ＯＳ、アプリケーション、プリンタドライバおよびプリンタのシステム構成の説明（図１）＞
図１は、本発明の一実施形態を示す印刷システムの一例を示すシステム構成図である。なお、本実施形態では、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム（ＯＳ）、ドキュメント作成・印刷アプリケーションプログラム、プリンタドライバプログラムおよびこれに接続する印刷装置（プリンタ）から構成されるシステムについて、各要素間のＡＰＩの流れ、及び各種データの流れを示す。
【００１９】
図１において、１００はホストコンピュータである。このホストコンピュータ１００のプログラムメモリ上では、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム（ＯＳ）１０１、プリンタドライバプログラム１０２およびドキュメント作成・印刷アプリケーションプログラム１０３が動作・実行される。
【００２０】
１０４はプリンタであり、上記ホストコンピュータ１００に接続される。プリンタ１０４において、１０５はプリンタ１０４から出力されるドキュメント印刷である。
【００２１】
次に、本発明の印刷システムの動作・作用について詳細に説明する。
【００２２】
ホストコンピュータ１００のプログラムメモリ上で動作するＯＳ１０１上で実行されるアプリケーションプログラム１０３が初期化される時点で、プリンタドライバ１０２が、ＯＳ１０１へロードされる。これにより、アプリケーションプログラム１０３からもプリンタドライバ１０２と各種情報およびデータの送受信が可能となる。
【００２３】
また、この初期化時、ＡＰＩとなるプログラム関数を含むライブラリ群（プリンタドライバＳＤＫ（Software Development Kit）ＡＰＩ）も、アプリケーションプログラム１０３においてロードする。
【００２４】
そして、アプリケーションプログラム１０３は、本印刷システムにおけるその使用目的あるいは動作目的に応じたアクセス権限に基づく認証情報をプリンタドライバに通知する。ここでの認証情報は、アプリケーションプログラムの名称、対応ＯＳ、バージョン番号などの前記アプリケーションプログラムを識別する情報、及び、あらかじめ該当アプリケーションプログラム１０３に付与されるアクセスＩＤ、パスワード等の情報であり、前記アプリケーションプログラムにおいて利用する印刷機能・能力あるいは性能に対するアクセス権限を決定するための情報である。また、この認証情報に、アプリケーションプログラム１０３のユーザのユーザＩＤ，パスワード等も含めるように構成してもよく、ユーザ毎にアプリケーションプログラムの認証情報を変化させるように構成してもよい。
【００２５】
さらに、アプリケーションプログラム１０３は、前記初期化時に前記プリンタドライバＳＤＫ ＡＰＩを使用して、ＯＳ１０１を介して、プリンタドライバ１０２に、印刷機能属性情報，印刷能力属性情報を問い合わせる。ここで、印刷機能属性情報とは、印刷装置において実行可能な印刷機能およびプリンタドライバ１０２の印刷制御処理で実行可能な印刷機能を表わす情報を示す。また、印刷能力属性情報とは、上記各種印刷機能情報に基づきＯＳ１０１およびプリンタドライバ１０２で実行可能な各種印刷機能の実行範囲を表わす情報を示す。なお、印刷機能属性情報，印刷能力属性情報の具体的例は後述する。
【００２６】
プリンタドライバ１０２は、上記アプリケーションプログラム１０３からのプリンタドライバＳＤＫ ＡＰＩによる問い合わせを受けて、プリンタドライバ１０２内で備え、管理される認証情報データベースを参照する。なお、この認証情報データベースは、上記アプリケーションプログラムの認証情報毎に、各アプリケーションプログラムのアクセス制御レベル情報を格納、保管するものである。
【００２７】
また、プリンタドライバ１０２は、アプリケーションプログラム１０３からのＡＰＩによる前記認証情報通知に基づき、前記アプリケーションプログラム１０３に対する認証を行い、現在動作するアプリケーションプログラムが利用できる印刷機能・能力あるいは性能に対するアクセス制御レベルを決定する。
【００２８】
さらに、プリンタドライバ１０２は、アプリケーションプログラム１０３の前記アクセス制御レベルに応じた印刷機能属性情報および印刷能力属性情報を生成する。なお、上記印刷機能属性情報とは、具体的には、給紙方法、排紙方法、両面印刷機能、Ｎ−ｕｐ印刷（複数ページ割付印刷）機能、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能などの各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、スタンプ（Watermark）機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能等の、前記プリンタドライバにおいて実行可能な印刷機能属性情報を示す。また、上記印刷能力属性情報とは、具体的には、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間および設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリングなどのグラフィックス描画方法、印刷可能な用紙サイズおよび用紙種、最大設定可能コピー部数、Ｎ−ｕｐ印刷時の印刷設定可能Ｎ−ｕｐ数（複数ページ割付印刷時の割付可能ページ数）等の、前記プリンタドライバ１０２において各種印刷機能実行のための印刷能力属性情報を示す。
【００２９】
そして、プリンタドライバ１０２は、上記生成された印刷機能属性情報および印刷能力属性情報を、前記アプリケーションプログラム１０３からコールされたプリンタドライバＳＤＫ ＡＰＩ関数に対するリターンとして、ＯＳ１０１を介して、アプリケーションプログラム１０３に通知する。
【００３０】
また、アプリケーションプログラム１０３では、プリンタドライバ１０２より通知された印刷機能属性情報および印刷能力属性情報に基づいて、アプリケーションプログラム内の各種設定処理を行う。例えば、印刷機能属性情報および印刷能力属性情報でカラー印刷機能が不可となっていた場合には、アプリケーションプログラム１０３でのカラー編集（カラードキュメント作成）を不可に設定する。また、製本機能が不可となっていた場合には、アプリケーションプログラム１０３での印刷ダイアログ上の製本指定を不可能に設定する。さらに、スタンプ機能が不可となっていた場合には、アプリケーションプログラム１０３での印刷ダイアログ上のスタンプ指定を不可能に設定する。そして、このように設定されたアプリケーションプログラム１０３において、ユーザはドキュメント作成・体裁加工を行う。
【００３１】
さらに、ユーザがアプリケーションプログラム１０３上で印刷設定，印刷指示を行うと、アプリケーションプログラム１０３では、プリンタドライバＳＤＫ ＡＰＩを使用しての各種印刷属性設定，印刷指示、又は／及び、通常のＯＳ１０１がもつＧＤＩ（Graphical Device Interface）で提供されるＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩを使用しての印刷設定（例えば、DEVMODE構造体を用いた印刷設定），印刷指示をプリンタドライバ１０２に対して行う。
【００３２】
そして、プリンタドライバ１０２は、アプリケーションプログラム１０３からプリンタドライバＳＤＫ ＡＰＩを使用しての各種印刷属性設定、印刷指示がなされると、該印刷属性設定に基づいて、印刷制御命令を生成し、印刷指示に基づく印刷データと組み合わせて、プリンタ１０４に送信する。一方、アプリケーションプログラム１０３から通常のＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩを使用しての印刷設定、印刷指示がなされると、プリンタドライバ１０２では、ＯＳ１０１からコールされる印刷属性設定および印刷指示関数に基づいて、印刷制御命令を生成し、印刷指示に基づく印刷データと組み合わせて、プリンタ１０４に送信する。これにより、プリンタ１０４から目的のドキュメントの印刷出力１０５を行うことが可能となる。
【００３３】
本実施形態の印刷システムは、以上示したような構成からなる。
【００３４】
なお、ここでは、ホストコンピュータ１００上の各種プログラム環境となるＯＳ１０１として、Ｗｉｎｄｏｗｓ（登録商標）を例にあげて説明したが、他のオペレーティングシステムにおいても本発明を適用できる。
【００３５】
＜ＯＳ，アプリケーション、プリンタドライバの各処理の流れを表すブロック図の説明（図２）＞
図２は、図１に示したホストコンピュータ１００上のＯＳ１０１、アプリケーションプログラム１０３、プリンタドライバ１０２およびプリンタ１０４における、プリンタドライバＳＤＫ ＡＰＩを使用して、初期化から印刷までの各構成要素の内部および構成要素間の処理の流れをあらわすブロック図である。なお、図１と同一のものには同一の符号を付してある。
【００３６】
図２において、３００はＯＳ１０１のＷｉｎｄｏｗｓ（登録商標） ＧＤＩ（以下、単にＧＤＩ）である。
【００３７】
以下、アプリケーションプログラム１０３、ＧＤＩ３００、プリンタドライバ１０２から、プリンタ２００へドキュメントデータ送信、ドキュメント印刷までの流れについて、詳細に説明する。なお、図２中のＳ２０１〜Ｓ２０７はアプリケーションプログラム１０３のステップに対応する。また、Ｓ２１１〜Ｓ２１３はＧＤＩ３００のステップに対応する。さらに、Ｓ２２１〜Ｓ２２９はプリンタドライバ１０２のステップに対応する。
【００３８】
図２のステップＳ２０１に示すように、まず、アプリケーションプログラム１０３で、各種動作処理に要するメモリ領域の確保、各種属性パラメータの初期化、ディスプレイやプリンタ１０４に対するデバイスコンテキストの作成、フォント／ペン／ブラシなどのオブジェクト作成などの初期化処理を行う。
【００３９】
ＧＤＩ３００では、アプリケーションプログラム１０３のドキュメント生成、印刷のための各種初期化処理を受けて、ＧＤＩ３００における各種動作処理に要するメモリ領域の確保、各種属性パラメータの初期化処理を行う（Ｓ２１１）。
【００４０】
プリンタドライバ１０２においても、アプリケーションプログラム１０３およびＧＤＩ３００のドキュメント印刷のための各種初期化処理を受けて、プリンタドライバ１０２における各種動作処理に要するメモリ領域の確保、各種属性パラメータの初期化処理を行う（Ｓ２２１）。
【００４１】
次に、アプリケーションプログラム１０３から、プリンタドライバＳＤＫ ＡＰＩを使用して、前記アプリケーションプログラム１０３のシステム上での使用目的あるいは動作目的に応じたアクセス権限に基づく認証情報をプリンタドライバ１０２に通知する（Ｓ２０２）。
【００４２】
そして、プリンタドライバ１０２は、アプリケーションプログラム１０３からの認証情報通知を受けて、認証情報データベースを参照し、前記認証情報の認証および照合を行う（Ｓ２２２）。さらに、プリンタドライバ１０２は、アプリケーションプログラム１０３のドキュメント印刷に係る印刷機能および印刷能力・性能に対するアクセス制御レベルを決定する（Ｓ２２３）。
【００４３】
続いて、アプリケーションプログラム１０３は、現在有効で使用可能なドキュメント印刷に係る印刷機能および印刷能力・性能について、プリンタドライバＳＤＫ ＡＰＩを使用して、プリンタドライバ１０２に問い合わせる（Ｓ２０３）。
【００４４】
プリンタドライバ１０２は、この問い合わせを受けて、アプリケーションプログラム１０３のドキュメント印刷に係る印刷機能および印刷能力・性能に対するアクセス制御レベルに応じた、印刷機能および印刷能力・性能を選択する（Ｓ２２４）。さらに、プリンタドライバ１０２は、前記選択した印刷機能および印刷能力・性能をアプリケーションプログラム１０３に通知するための印刷機能属性情報および印刷能力属性情報を生成する（Ｓ２２５）。さらに、プリンタドライバ１０２は、該生成した印刷機能属性情報および印刷能力属性情報を、前記アプリケーションプログラム１０３からの問い合わせのためにコールされたプリンタドライバＳＤＫ ＡＰＩのリターン値として、アプリケーションプログラム１０３に通知する（Ｓ２２６）。
【００４５】
ここで、印刷機能および印刷能力・性能とは、給紙方法、排紙方法、両面印刷機能、Ｎ−ｕｐ印刷（複数ページ割付印刷）機能、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能などの各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、スタンプ（Watermark）機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能などの前記プリンタドライバにおいて実行可能な印刷機能属性情報、およびモノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間および設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリングなどのグラフィックス描画方法、印刷可能な用紙サイズおよび用紙種、最大設定可能コピー部数、Ｎ−ｕｐ印刷時の印刷設定可能Ｎ−ｕｐ数等である。
【００４６】
アプリケーションプログラム１０３は、上述のプリンタドライバ１０２より通知された印刷機能属性情報および印刷能力属性情報を取得し、アプリケーションプログラム１０３上の各種設定を行う（Ｓ２０４）。具体的には、例えば、印刷機能属性情報および印刷能力属性情報でカラー印刷機能が不可となっていた場合には、アプリケーションプログラム１０３でのカラー編集（カラードキュメント作成）を不可に設定する。また、製本機能が不可となっていた場合には、アプリケーションプログラム１０３での印刷ダイアログ上の製本指定を不可能に設定する等である。
【００４７】
そして、アプリケーションプログラム１０３は、ＧＤＩ３００のＧＤＩ描画エンジンと、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩを介して、ユーザからのドキュメント編集およびドキュメントの体裁加工を受け付ける（Ｓ２０４，Ｓ２１２）。
【００４８】
そして、アプリケーションプログラム１０３は、ユーザからアプリケーションの印刷ダイアログ等により各種印刷属性が設定され（Ｓ２０５）、印刷指示がなされると、ＧＤＩ３００に対してドキュメント印刷指示を行う（Ｓ２０６）。なお、これらの各種印刷属性設定および指示は、プリンタドライバＳＤＫ ＡＰＩを使用して行うことも可能である。
【００４９】
ＧＤＩ３００は、アプリケーションプログラム１０３からのＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩによる各種印刷属性設定およびドキュメント印刷指示に基づき、印刷に係るDevice Driver Interface（ＤＤＩ）に変換するドキュメント印刷処理を経て、プリンタドライバ１０２に前記ＤＤＩをコールして、印刷指示を行う（Ｓ２１３）。
【００５０】
プリンタドライバ１０２は、ＧＤＩ３００からの各種ＤＤＩコールに基づき、各種文字・図形・イメージ描画処理を行い（Ｓ２２７）、プリンタ２００の印刷制御命令を生成し（Ｓ２２８）、スプーラに送信することにより（Ｓ２２９）、プリンタ１０４からドキュメント印刷１０５を行う。
【００５１】
＜ＧＤＩ，アプリケーション、ドライバ間のＳＤＫ ＡＰＩコーリングシーケンス図の説明（図３）＞
図３は、図１に示したホストコンピュータ１００上のＯＳ１０１、アプリケーションプログラム１０３およびプリンタドライバ１０２における、プリンタドライバＳＤＫ ＡＰＩの初期化から印刷までのコーリングシーケンス図である。なお、図１，図２と同一のものには同一の符号を付してある。
【００５２】
アプリケーションプログラム１０３およびプリンタドライバ１０２間で通常のＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩおよびプリンタドライバＳＤＫ ＡＰＩによる情報およびデータの送受信は、ＯＳ１０１のＧＤＩ３００を介して行なわれる。
【００５３】
まず、アプリケーションプログラム１０３は、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩであるCreateDC( )関数３０３をコールし、プリンタ１０４に対するデバイスコンテキストを作成する。なお、対応するプリンタが複数ある場合には、このタイミングでダイアログを表示してユーザに使用するプリンタを選択させるように構成したもよい。また、このときにアプリケーションプログラム１０３は、プリンタドライバ１０２と組み合わせて用意されるアプリケーションプログラムインタフェース（ＡＰＩ）関数群を構成するプリンタドライバＳＤＫライブラリをロードする。
【００５４】
次に、アプリケーションプログラム１０３は、初期化処理に移行し、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩであるStartDoc( )関数３０４をコールし、指定のプリンタデバイスで印刷ジョブを開始する。
【００５５】
プリンタドライバ１０２では、アプリケーションプログラム１０３からコールされたStartDoc( )関数３０３がＧＤＩ３００で変換されてＤＤＩであるDrvStartDoc( )関数３０５がＧＤＩ３００よりコールされる。この結果、プリンタドライバ１０２は、この関数内で印刷のための各種初期化処理を行う。
【００５６】
アプリケーションプログラム１０３は、前記初期化処理と同時に、プリンタＳＤＫ ＡＰＩである本システムにおけるその使用目的あるいは動作目的に応じたアクセス権限に基づく認証情報を通知するFS_FNCertificate( ) 関数４０１（詳細は図４に示す）をコールする。
【００５７】
また、さらにアプリケーションプログラム１０３は、プリンタＳＤＫ ＡＰＩであるプリンタおよびプリンタドライバにおける印刷に関する機能情報および能力情報を取得するFS_GetFuncItem( )関数４０２（詳細は図４に示す）をコールする。
【００５８】
プリンタドライバ１０２は、前記FS_GetFuncItem( )関数４０２コールに基づいて、印刷能力情報および印刷機能情報をＧＤＩ３００を介して、前記FS_GetFuncItem( )関数４０２のリターンとして、アプリケーションプログラム１０３に通知する。なお、ここで、印刷能力情報とは、具体的には、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間および設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリングなどのグラフィックス描画方法、印刷可能な用紙サイズおよび用紙種、最大設定可能コピー部数、Ｎ−ｕｐ印刷時の印刷設定可能Ｎ−ｕｐ数などの前記プリンタドライバ１０２において各種印刷機能実行のための印刷能力情報を示す。また、印刷機能情報とは、および給紙方法、排紙方法、両面印刷機能、Ｎ−ｕｐ印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能などの各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、スタンプ（Watermark）機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能などの前記プリンタドライバ１０２において実行可能な印刷機能情報を示す。
【００５９】
そして、アプリケーションプログラム１０３では、上記FS_GetFuncItem( )関数４０２で取得した印刷能力情報および印刷機能情報に基づきアプリケーションプログラム１０３内の各種設定処理がなされ、ユーザによるドキュメントの編集，体裁加工が施されることになる。
【００６０】
さらに、ユーザからの印刷設定及びドキュメント印刷指示がなされると、アプリケーションプログラム１０３は、ユーザからの各種印刷設定に基づいて各種印刷設定をプリンタドライバ１０２に指定する。例えば、前記同様にプリンタドライバＳＤＫ ＡＰＩである両面印刷属性を設定するFS_SetDuplexPrint( )関数３０８あるいはステイプル印刷属性を設定するFS_SetStaplePrint( )関数３０９をコールして、最終的なドキュメント出力形態を指定する。
【００６１】
以降、同様にプリンタドライバＳＤＫ ＡＰＩを使用して、各印刷属性設定を行う。例えば、複数サイズの用紙の混在する場合の製本機能等のより付加価値が高い機能（一般的でない印刷機能）の設定も可能である。
【００６２】
また、一般的な印刷設定に関しては、DEVMODE構造体に通常の印刷属性の設定値をセットし、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩであるResetDC( )をコールして印刷属性を指定するようにしてもよい。
【００６３】
そして、プリンタドライバ１０２は、前記プリンタドライバＳＤＫ ＡＰＩによる各種印刷属性設定を受けて、各関数処理において、プリンタ制御命令の生成あるいは解像度、カラー／モノクロ出力、ベクタ／イメージ描画、ディザリングなどの画像描画のための初期化設定処理などを行う。
【００６４】
続いて、アプリケーションプログラム１０３は、ドキュメント出力処理に移行するために、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩであるStartPage( )関数３１０をコールし、プリンタドライバ１０２に新しいページも受け取りを開始するように指示する。以降、アプリケーションプログラム１０３は、ドキュメントページを構成するＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩ，プリンタドライバＳＤＫ ＡＰＩの各関数３１２および印刷データを書き込み・送信する。
【００６５】
そして、プリンタドライバ１０２では、前記アプリケーションプログラム１０３からコールされたStartPage( )関数３１０がＧＤＩ３００で変換されてＤＤＩであるDrvStartPage( )関数３１１がＧＤＩ３００よりコールされる。この関数内で、プリンタドライバ１０２は、新しいページ印刷のための各種処理を行う。
【００６６】
また、アプリケーションプログラム１０３は、ドキュメントページ毎にＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩであるEndPage( )関数３１３をコールし、１ページの書き込みを終えたことをプリンタドライバ１０２に伝える。
【００６７】
プリンタドライバ１０２では、前記アプリケーションプログラム２０１からコールされたEndPage( )関数３１３がＧＤＩ ３００で変換されてＤＤＩであるDrvEndPage( )関数３１４がＧＤＩ ３００よりコールされる。この関数内で、プリンタドライバ１０２は、ページ終了のための各種処理を行う。
【００６８】
また、アプリケーションプログラム１０３は、全てのドキュメントページの書き込み・送信が完了したら、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩであるEndDoc( )関数３１５をコールし、StartDoc( )関数３０４で開始された印刷ジョブを終了する。
【００６９】
プリンタドライバ１０２では、前記アプリケーションプログラム１０３からコールされたEndDoc( )関数３１７がＧＤＩ ３００で変換されてＤＤＩであるDrvEndDoc( )関数３１６がＧＤＩ ３００よりコールされる。この関数内で、プリンタドライバ１０２は、ジョブ終了のための各種処理を行う。
【００７０】
そして、アプリケーションプログラム１０３は、全ての印刷処理を完了し、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩであるDeleteDC( )関数３１７をコールして、CreateDC( )関数３０３で作成されたデバイスコンテキストを削除し、プリンタドライバ１０２とのセッションを終了する。
【００７１】
＜認証関数および印刷機能属性情報、印刷能力属性情報を取得する関数の説明（図４）＞
図４は、図３に示したプリンタドライバＳＤＫ ＡＰＩである認証情報通知するFS_FNCertificate( )関数４０１および印刷機能属性情報、印刷能力属性情報を取得・通知するFS_GetFuncItem()関数４０２を説明する図である。
【００７２】
FS_FNCertificate( )関数４０１は、アプリケーションプログラム１０３において、本印刷システムにおけるその使用目的あるいは動作目的に応じたアクセス権限に基づく認証情報をプリンタドライバ１０２に通知するプリンタドライバＳＤＫ ＡＰＩの関数である。
【００７３】
アプリケーションプログラム１０３から本関数がコールされると、プリンタドライバ１０２は、プリンタドライバ内で備え、管理される各アプリケーションプログラムのアクセス制御レベル情報を格納・保管するデータベースを参照する。そして、プリンタドライバ１０２は、該参照した情報と前記通知されたアプリケーションプログラムの認証情報に基づき、前記アプリケーションプログラムに対する認証を行い、現在動作するアプリケーションプログラムが利用できる印刷機能・能力あるいは性能に対するアクセス制御レベルを決定する。
【００７４】
アプリケーションプログラム１０３は、例えば、FS_FNCertificate( )関数４０１のパラメータの１つであるアプリケーションプログラム１０３側で確保されたメモリバッファのポインタとして渡されるCERTIFICATIONで型定義されるプログラム構造体に、識別情報および種認証情報を代入して、リターンすることで前記プリンタドライバ１０２に通知し、前記プリンタドライバ１０２で認証情報を参照することが可能となる。
【００７５】
なお、上記識別情報とは、該当アプリケーションプログラムのアプリケーションプログラム名称、対応ＯＳ、バージョン番号等の該当アプリケーションプログラムを識別する情報を示す。また、上記種認証情報とは、あらかじめ該当アプリケーションプログラムに付与されるアクセスＩＤ，パスワード等の各種認証情報を示す。また、この認証情報に、ユーザＩＤ，パスワード等も含めるように構成してもよく、ユーザ毎にアプリケーションプログラムの認証情報を変化させるように構成してもよい。
【００７６】
FS_GetFuncItem()関数４０２は、アプリケーションプログラム１０３において上述の印刷機能属性情報および印刷能力属性情報を問い合わせ・取得するプリンタドライバＳＤＫ ＡＰＩの関数である。
【００７７】
アプリケーションプログラム１０３から本関数がコールされると、プリンタドライバ１０２は、先にFS_FNCertificate( )関数４０１により通知された該当アプリケーションプログラムの認証情報に基づいて、印刷機能・能力あるいは性能に対するアクセス制御レベルに応じた、現在有効な印刷に係る印刷機能属性情報および印刷能力属性情報を決定・生成し、前記アプリケーションプログラム１０３に通知する。
【００７８】
プリンタドライバ１０２は、例えば、FS_GetFuncItem()関数４０２のパラメータの１つであるアプリケーションプログラム１０３側で確保されたメモリバッファのポインタとして渡されるFUNCITEMで型定義されるプログラム構造体に、各種印刷機能情報および印刷能力情報を代入して、リターンすることでアプリケーションプログラム１０３に上記各種印刷機能情報および印刷能力情報を通知する。
【００７９】
＜32-Bitオペレーティングシステム環境での各構成要素ブロック図の説明（図５）＞
図５は、Windows（登録商標） NT4.0/Windows（登録商標） 2000/Windows（登録商標） XP等の32-Bitオペレーティングシステム環境下におけるオペレーティングシステムのＧＤＩ，アプリケーションプログラム，プリンタドライバおよびプリンタドライバＳＤＫライブラリの各構成例を示す図である。
【００８０】
図５において、５０１は32-bitアプリケーションプログラムである。５０２はWindows（登録商標）（登録商標） NT4.0/Windows（登録商標） 2000/Windows（登録商標） XPなどの32-Bitオペレーティングシステムが備えるＧＤＩである。
【００８１】
５０３は、プリンタドライバＳＤＫライブラリとしてのPDSDK.dllであり、32-bitオペレーティングシステム環境下で動作・実行できるよう32-bit関数群で構成される。このPDSDK.dll５０３は、アプリケーションプログラム５０１の初期化時にロードされる。そして、本ライブラリPDSDK.dll５０３に定義される関数を、前記アプリケーションプログラム５０１においてコールすることにより、プリンタドライバ５０４に実装される関数がコールされる。
【００８２】
上述した図４に示したFS_FNCertificate( )関数４０１およびFS_GetFuncItem( )関数４０２等も、本ＳＤＫライブラリPDSDK.dll ５０３に定義される。
【００８３】
なお、通常の印刷属性設定および印刷指示を行うＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩは、アプリケーションプログラム５０１からコールされると、ＧＤＩ５０２を介してＤＤＩに変換されてプリンタドライバ５０４の各関数をコールする。
【００８４】
一方、上記印刷機能属性情報および印刷能力属性情報に基づいてさらに高機能で詳細な印刷属性設定を行うプリンタドライバＳＤＫライブラリPDSDK.dll５０３は、アプリケーションプログラム５０１からコールされると、直接プリンタドライバ５０４に対して通知を行う。
【００８５】
＜16-Bitオペレーティングシステム環境での各構成要素ブロック図の説明（図６）＞
図６は、Windows（登録商標） 95/Windows（登録商標） 98/Windows（登録商標） Me等の16-Bitオペレーティングシステム環境下におけるオペレーティングシステムのＧＤＩ，アプリケーションプログラム，プリンタドライバおよびプリンタドライバＳＤＫライブラリの各構成例を示す図である。
【００８６】
図６において、６０１は現在一般的にある32-bitアプリケーションプログラムである。６０２はWindows（登録商標） 95/Windows（登録商標） 98/Windows（登録商標） Me等の16-Bitオペレーティングシステムが備えるＧＤＩである。
【００８７】
６０３はプリンタドライバＳＤＫライブラリとしてのPDSDK.dllであり、32-bitオペレーティングシステム環境下で動作・実行できるよう32-bit関数群で構成される。
【００８８】
上述の図４に示したFS_FNCertificate( )関数４０１およびFS_GetFuncItem( )関数４０２等も、本ＳＤＫライブラリPDSDK.dll６０３に定義される。
【００８９】
６０４はプリンタドライバＳＤＫライブラリとしてのSDK32.dllである。このSDK32.dllは、前記32-bitプリンタドライバＳＤＫライブラリPDSDK.dll６０３からコールされる32-bit関数群および32-bitデータタイプを受け取り、16-bit関数群および16-bitデータタイプに変換し、前記16-bitＧＤＩ６０２との入出力インタフェースとなる。
【００９０】
６０５はプリンタドライバＳＤＫライブラリSDK16.dllである。このSDK16.dll６０５は、前記16-bitオペレーティングシステム環境下で動作・実行できるよう16-bitデータタイプを扱う16-bit関数群で構成され、16-bitデータタイプおよび関数群で構成されるプリンタドライバ６０６との入出力インタフェースとなる。
【００９１】
前記PDSDK.dll６０３、SDK32.dll６０４およびSDK16.dll６０５は、前記アプリケーションプログラム６０１の初期化時にロードされる。PDSDK.dll６０３に定義される関数を、前記アプリケーションプログラム６０１においてコールすることにより、SDK32.dll６０４およびSDK16.dll６０５でそれぞれデータタイプを変化され、プリンタドライバ６０６に実装される関数がコールされる。
【００９２】
なお、通常の印刷属性設定および印刷指示を行うＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩは、アプリケーションプログラム６０１からコールされると、ＧＤＩ６０２を介してＤＤＩに変換されてプリンタドライバ５０４の各関数をコールする。
【００９３】
一方、上記印刷機能属性情報および印刷能力属性情報に基づいてさらに高機能で詳細な印刷属性設定を行うプリンタドライバＳＤＫライブラリPDSDK.dll６０３は、アプリケーションプログラム５０１からコールされると、SDK32.dll６０４およびSDK16.dll６０５を介して、直接プリンタドライバ５０４に対して通知を行う。
【００９４】
＜ホストコンピュータ及びプリンタ接続構成図の説明（図７）＞
図７は、図１に示したホストコンピュータ１００及びプリンタ１０４のハードウェア接続構成を示すブロック図である。
【００９５】
図７において、１００１は入力装置であり、ホストコンピュータ１００に対して入力を行うキーボード，マウス等に対応する。１００２は表示装置（ディスプレイ（Ｄｉｓｐｌａｙ））１００２であり、表示出力を行う。１００３はディスク（Ｄｉｓｋ）であり、ファイルの入出力を行うハードディスク等の外部記憶装置に対応する。
【００９６】
以下、ホストコンピュータ１００の構成を詳細に説明する。
【００９７】
ホストコンピュータ１００において、１００４はＣＰＵであり、ホストシステムおよび接続される各入出力装置の制御や、入力された指示に従って出力制御などの一連の処理、各種プログラムを実行する。１００５はＲＯＭであり、ＣＰＵ１００４を動作させるためのブートプログラム、各種データ等を格納するメモリである。ディスク１００３には、ＯＳ１０１、プリンタドライバプログラム１０２、アプリケーションプログラム１０３、ＳＤＫライブラリ、及び、各種データが格納されている。
【００９８】
１００６はＲＡＭであり、プリンタに係る各種印刷属性設定、ドキュメント印刷を実行／動作させる各種処理のための作業領域として用いられるメモリである。また、このＲＡＭ１００６上には、ＣＰＵ１００４により、ＲＯＭ１００５やディスク１００３から各種プログラムがロードされて実行される。ＣＰＵ１００４は、ディスク１００３からＯＳ１０１，プリンタドライバ１０２，アプリケーションプログラム１０３，プリンタＳＤＫライブラリをＲＡＭ１００６上にロードして、これらのプログラムを用いて一連の印刷制御処理を行い、プリンタ１０４からドキュメント出力を行う。
【００９９】
１００７はキーボード・コントローラであり、入力装置１００１のインタフェースを備える。１００８はディスプレイ・コントローラであり、ディスプレイ１００２への表示出力を行うためのインタフェースを備える。１００９はディスク・コントローラであり、ディスク１００３への入出力インタフェースを備える。
【０１００】
１０１０はイーサネット（登録商標）・インタフェースであり、ホストコンピュータ１００とプリンタ１０４を接続して、通信を行うための通信プロトコルを備えたイーサネット（登録商標）等のネットワーク回線を介して、入出力を行うネットワークインタフェースである。なお、ここでは、イーサネット（登録商標）・インタフェースとしているが、その他のネットワークインタフェースであってもよい。１０１１はＣＰＵバスであり、各構成要素１００４〜１０１１を接続するバスである。
【０１０１】
以下、プリンタ１０４の構成を詳細に説明する。
【０１０２】
プリンタ１０４において、１０１４はＣＰＵであり、プリンタ１０４に接続される各種入出力の制御や、入力された指示に従って印刷制御等の一連の処理、通信制御制御処理等のプログラムを実行する。
【０１０３】
１０１５はＲＯＭであり、各入出力の制御、通信制御処理、入力された指示に従って印字制御など一連の処理、制御コマンド解析処理などプリンタを動作させるプログラム、各種データ等が格納されているメモリである。
【０１０４】
１０１６はＲＡＭであり、ＣＰＵ１０１４が各種プログラムで実行・処理を行うための作業領域として用いられるメモリである。このＲＡＭ１０１６には、ＣＰＵ１０１４により、ＲＯＭ１０１５から各種プログラムがロードされて実行される。
【０１０５】
１０１７はイーサネット（登録商標）・インタフェースであり、ホストコンピュータ１００とプリンタ１０４を接続して、データのやり取りを行うための通信プロトコルを備えたイーサネット（登録商標）などのネットワーク回線を介して、入出力を行うネットワークインタフェースである。なお、ここでは、イーサネット（登録商標）・インタフェースとしているが、その他のネットワークインタフェースであってもよい。
【０１０６】
１０１８はディスク・コントローラであり、ハードディスク等のディスク１０１３への入出力インタフェースを備える。１０１９はエンジン制御処理部であり、機構的にパターン出力を行うビデオインタフェースで印刷装置駆動系（エンジン部）１０２１とのデータおよび信号のやり取りを行う入出力インタフェースを備える。１０２０はＣＰＵバスであり、各構成要素１０１４〜１０１９を接続するバスである。
【０１０７】
なお、エンジン部１０２１は、レーザビーム方式であっても、レーザビーム方式以外の電子写真方式（例えばＬＥＤ方式）でも、液晶シャッタ方式、インクジェット方式、熱転写方式、昇華方式でもその他のプリント方式であっても本発明は適用可能である。
【０１０８】
また、ホストコンピュータ１００のイーサネット（登録商標）・インタフェース１０１０およびプリンタ１０４のイーサネット（登録商標）・インタフェース１０１７で構築されるＴＣＰ／ＩＰなどの通信プロトコルを備えたネットワークに替えて、ＵＳＢ，セントロニクスインタフェース，シリアルインタフェース，ＳＣＳＩ等の通信プロトコルを備えた各種インタフェースにおいても適用可能である。
【０１０９】
以下、ホストコンピュータ１００内のプログラムメモリＲＡＭ１００６上にある（ロードされた）Ｗｉｎｄｏｗｓ（登録商標）ＳＤＫライブラリを含むＯＳ１０１、アプリケーションプログラム１０３、プリンタドライバ１０２およびプリンタドライバＳＤＫライブラリの各制御処理および動作を詳細に説明する。
【０１１０】
まず、アプリケーションプログラム１０３における動作について説明する。
【０１１１】
ホストコンピュータ１００内のＲＡＭ１００６上にある（ロードされた）アプリケーションプログラム１０３は、ドキュメント作成、体裁加工および印刷出力のための各種初期化処理を行う過程で、オペレーティングシステムを介してプリンタドライバのロードおよび起動、プリンタドライバＳＤＫライブラリのロードを行う。
【０１１２】
ここでアプリケーションプログラム１０３は、通常のＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩを使用しての各種初期化処理の他に、プリンタ１０４およびプリンタドライバ１０２において、現在使用可能な機能・能力を認識するために、前記プリンタドライバＳＤＫライブラリに含まれるＡＰＩを使用して、該当アプリケーションプログラムの使用目的あるいは動作目的に応じたアクセス権限に基づく認証情報をプリンタドライバ１０２に通知する。さらに、アプリケーションプログラム１０３は、プリンタドライバ１０２に印刷機能属性情報および印刷能力属性情報を問い合わせる。
【０１１３】
そして、アプリケーションプログラム１０３は、この印刷機能属性情報および印刷能力属性情報を問い合わせに応答してプリンタドライバ１０２から通知される前記印刷機能属性情報および印刷能力属性情報を取得し、これに基づきアプリケーションプログラム１０３内の各種設定を行う。具体的には、例えば、印刷機能属性情報および印刷能力属性情報でカラー印刷機能が不可となっていた場合には、アプリケーションプログラム１０３でのカラー編集（カラードキュメント作成）を不可に設定する。また、製本機能が不可となっていた場合には、アプリケーションプログラム１０３での印刷ダイアログ上の製本指定を不可能に設定する等である。
【０１１４】
このように設定処理されたアプリケーションプログラム１０３において、ユーザは入力手段１００１によりドキュメントを目的の出力形態に作成および体裁加工を行う。
【０１１５】
さらにアプリケーションプログラム１０３において、ユーザは入力手段１００１により、目的の出力形態を実現するために、各種印刷属性設定および印刷指示を行う。
【０１１６】
このユーザからの印刷指示により、アプリケーションプログラム１０３は、上述の各種印刷設定と印刷指示をドキュメントデータと共に、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩおよびプリンタドライバＳＤＫ ＡＰＩを使用して送信する。
【０１１７】
以下、プリンタドライバ１０２における動作を説明する。
【０１１８】
ホストコンピュータ１００内のＲＡＭ１００６上にあるプリンタドライバ１０２は、前記アプリケーションプログラム１０３の起動初期化時に、ＯＳ１０１上にロードされて起動される。
【０１１９】
前記アプリケーションプログラム１０３におけるドキュメント作成、印刷のための各種初期化処理に基づき、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩがコールされることによって、ＯＳ１０１のＧＤＩ３００を介してＤＤＩに変換され、コールされることによって、プリンタドライバ１０２での初期化処理が開始される。
【０１２０】
同時に、アプリケーションプログラム１０３からプリンタＳＤＫ ＡＰＩによる該当アプリケーションプログラムの使用目的あるいは動作目的に応じたアクセス権限に基づく認証情報をプリンタドライバ１０２に通知する。
【０１２１】
また、プリンタドライバ１０２は、アプリケーションプログラム１０３からプリンタＳＤＫ ＡＰＩによる前記印刷機能属性情報および印刷能力属性情報を問い合わせに対し、プリンタ機器が有するリソース情報およびプリンタ機器が有する印刷機能情報に基づき、上述した印刷機能属性情報および印刷能力属性情報を生成し、前記アプリケーションプログラム１０３から問い合わせを受けたプリンタドライバＳＤＫ ＡＰＩのリターンとして、前記アプリケーションプログラム１０３に通知する。
【０１２２】
なお、上記プリンタ機器が有するリソース情報とは、印刷用紙の給紙方法を決定する各種給紙装置、用紙出力方法を決定する各種排紙装置、両面印刷装置、ステイプル装置、パンチャー装置、トリマー装置、用紙Ｚ折り装置などのフィニッシング装置類、メモリ、ハードディスクなどの記憶装置、機器に搭載され出力可能な用紙サイズおよび用紙種、搭載されるフォント等を示す。また、上記プリンタ機器が有する印刷機能情報とは、モノクロ／カラー印刷機能、解像度、グラフィックス描画方法、用紙印刷方向、最大コピー部数、Ｎ−ｕｐ印刷機能、ジョブストア機能、フォントダウンロード機能等を示す。
【０１２３】
さらに、プリンタドライバ１０２は、アプリケーションプログラム１０３から目的のドキュメント印刷を行うための各種印刷属性設定をＧＤＩ３００を介してＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩおよびプリンタドライバＳＤＫ ＡＰＩがコールされると、該コールされることによってプリンタドライバ１０２においてコールされるＤＤＩに基づいて、各種印刷属性設定処理を行う。
【０１２４】
プリンタドライバ１０２は、前記アプリケーションプログラム１０３からのドキュメント印刷指示と併せて、ドキュメントデータに基づき、図形／文字およびイメージのパターン・データ、サイズ、描画出力開始位置などのデータおよび各種設定情報の入力処理を行う。さらに、プリンタドライバ１０２は、前記読み込まれた印刷属性設定情報等を解析する解析処理を行う。さらに、プリンタドライバ１０２は、サイズ、描画出力形態等を指示する各設定パラメータに基づいて、構成されるドキュメントの描画出力形態を決定する描画出力形態制御処理を行う。さらに、プリンタドライバ１０２は、前記決定したドキュメントを印刷するため、プリンタ１０４のプリンタ制御命令を変換・生成する出力制御命令変換処理を行う。さらに、プリンタドライバ１０２は、生成された印字出力制御命令をプリンタに送信する出力制御命令送信制御処理を行う。これらの一連の処理により、プリンタドライバ１０２は、プリンタ１０４から目的のドキュメントを出力する。
【０１２５】
以下、プリンタ１０４における動作について説明する。
【０１２６】
プリンタ１０４内のメモリＲＯＭ１０１５上にある制御プログラムにおける印刷出力制御処理によるドキュメントの出力動作を詳細に説明する。
【０１２７】
まず、プリンタ１０４内の制御プログラムは、現在サポートしている用紙サイズ、用紙タイプ、ステイプル機能をもつフィニッシャの有無など、印刷を行う際の有効な機能、資源のプリンタ構成情報をイーサネット（登録商標）・インタフェース１０１７を介して、ホストコンピュータ１００のＲＡＭ１００６上にあるプリンタドライバ１０２に通知する。
【０１２８】
また、プリンタ１０４内の制御プログラムは、ホストコンピュータ１００内のプログラムメモリＲＡＭ１００６上にあるプリンタドライバ１０２から送信されるプリンタを初期化する制御命令を受信し、初期化処理を行う。
【０１２９】
続いて、プリンタ１０４内の制御プログラムは、ホストコンピュータ１００からプリンタ１０４で印刷を行うために送信されてくるプリンタ印刷制御命令の入力を行な印刷制御命令入力処理を行う。さらに、プリンタ１０４内の制御プログラムは、前記入力されたプリンタ印刷制御命令及び各種設定パラメータなどを解析する制御設定パラメータ解析処理を行う。さらに、プリンタ１０４内の制御プログラムは、前記印刷制御命令、制御設定パラメータに基づいて、ビットマップを生成し、ビットマップメモリに展開するビットマップ展開処理の一連の処理を行う。そして、プリンタ１０４内の制御プログラムは、エンジン制御処理部１０２１と入出力を行うビデオインタフェース１０１９を通して、印字出力装置駆動系（エンジン部）１０２１に前記生成されたビットマップ・データを送信して、ドキュメントを出力する（１０５）。
【０１３０】
＜本実施形態のアプリケーションプログラムにおける各制御処理（図８）＞
以下、図８に示すフローチャートによって、本実施形態におけるホストコンピュータ１００のプログラムメモリ上にあるアプリケーションプログラム１０３の各制御処理を詳細に説明する。
【０１３１】
図８は、本発明の印刷システムにおける第１の制御処理手順の一例を示すフローチャートである。
【０１３２】
なお、図８中、Ｓ７０１〜Ｓ７０９に示すステップは、本実施形態に係るホストコンピュータ１００におけるアプリケーションプログラム１０３（ＣＰＵ３０４がＲＡＭ３０６上で実行する）での各処理に対応する。これらの処理は、プリンタドライバＳＤＫライブラリを使用して、アプリケーションプログラム１０３の認証情報をプリンタドライバ１０２に通知して、この認証情報より決定されるアクセス制御レベルに応じた印刷機能属性情報および印刷能力属性情報を取得して、目的のドキュメント作成、体裁加工および印刷指示を行う一連の制御処理に対応する。
【０１３３】
まず、ステップＳ７０１は、アプリケーションプログラム起動時に行われる初期化処理である（CreateDC( )３０３，StartDC( )３０４をコール）。このときにプリンタドライバもＯＳ１０１上でロードされ、起動される。
【０１３４】
また同時にステップＳ７０２において、アプリケーションプログラム１０３は、プリンタドライバＳＤＫ ＡＰＩライブラリもロードする。
【０１３５】
そして、アステップＳ７０３において、アプリケーションプログラム１０３は、プリンタドライバ１０２に対して、プリンタドライバＳＤＫ ＡＰＩであるFS_FNCertificate( )関数４０１（図４）を使用して、該当アプリケーションプログラムの使用目的あるいは動作目的に応じたアクセス権限に基づく認証情報を通知する。ここでの認証情報は、アプリケーションプログラムの名称、対応ＯＳ、バージョン番号などの前記アプリケーションプログラムを識別する情報、及び、あらかじめ該当アプリケーションプログラム１０３に付与されるアクセスＩＤ、パスワード等の情報であり、前記アプリケーションプログラムにおいて利用する印刷機能・能力あるいは性能に対するアクセス権限を決定するための情報である。また、この認証情報に、ユーザＩＤ，パスワード等も含めるように構成してもよく、ユーザ毎にアプリケーションプログラムの認証情報を変化させるように構成してもよい。
【０１３６】
次に、ステップＳ７０４において、アプリケーションプログラム１０３は、プリンタドライバ１０２に対して、プリンタドライバＳＤＫ ＡＰＩであるFS_GetFuncItem( )関数４０２（図４）を使用して、印刷機能属性情報および印刷能力属性情報の問い合わせを行い、該情報をプリンタドライバ１０２から取得する。
【０１３７】
そして、ステップＳ７０５において、アプリケーションプログラム１０３は、前記取得した印刷機能属性情報および印刷能力属性情報に基づき、アプリケーションプログラム内の各種設定を行う。具体的には、例えば、印刷機能属性情報および印刷能力属性情報でカラー印刷機能が不可となっていた場合には、アプリケーションプログラム１０３でのカラー編集（カラードキュメント作成）を不可に設定する。この様子を図９に示す。また、スタンプ機能，製本機能が不可となっていた場合には、アプリケーションプログラム１０３での印刷ダイアログ上のスタンプ指定，製本指定を不可能に設定する等である。この様子を図１０，図１１に示す。
【０１３８】
図９は、図１に示したアプリケーションプログラム１０３の編集画面及び色設定画面の一例を示す図である。
【０１３９】
図９において、１３００はアプリケーションプログラム１０３の編集画面である。１３０１はアプリケーションプログラム１０３の色設定ダイアログである。ここでは、印刷機能属性情報および印刷能力属性情報でカラー印刷機能が不可となり、１３０２に示すように、カラー選択部分がグレー表示され（又は非表示とされ）、カラー選択不可能になっている。即ち、アプリケーションプログラム１０３でのカラー編集が不可能に制御される。
【０１４０】
図１０，図１１は、図１に示したアプリケーションプログラム１０３の印刷ダイアログの一例を示す図である。
【０１４１】
図１０，図１１において、１４００はアプリケーションプログラム１０３の印刷ダイアログである。１４０１はプリンタドライバ１０２より通知された印刷機能属性情報および印刷能力属性情報に基づいて、設定された部分である。
【０１４２】
図１０では、印刷機能属性情報および印刷能力属性情報でスタンプ（Watermark）機能が不可となり、１４０２に示すように、スタンプ設定部分がグレー表示され（又は非表示とされ）、スタンプ（Watermark）機能が使用不可と設定された場合に対応する。
【０１４３】
図１１では、印刷機能属性情報および印刷能力属性情報で製本機能が不可となり、１４０３に示すように、製品設定部分がグレー表示され（又は非表示とされ）、製本機能が使用不可と設定された場合に対応する。
【０１４４】
以下、図８のフローチャートの説明に戻る。
【０１４５】
次に、ステップＳ７０５において、アプリケーションプログラム１０３は、図９に示したような、図９に示したような、上記ステップＳ７０４で印刷機能属性情報および印刷能力属性情報に基づいて設定された編集画面１３００をディスプレイ１００２に表示し、目的のドキュメントを作成のためのドキュメントを構成する文字・図形などの描画操作および体裁加工操作等のユーザによる編集操作を受け付ける。
【０１４６】
次に、ステップS７０６において、アプリケーションプログラム１０３は、ユーザから印刷ダイアログ表示指示があると、図１０，図１１に示したような、上記ステップＳ７０４で印刷機能属性情報および印刷能力属性情報に基づいて設定された印刷ダイアログ１４００をディスプレイ１００２に表示し、ユーザからの各種設定及び印刷指示を受け付ける。
【０１４７】
そして、ユーザから印刷指示があると（印刷ダイアログ１４００の「ＯＫ」ボタンが入力装置１００１により指示されると）、ステップＳ７０７において、アプリケーションプログラム１０３は、一般的な印刷属性設定欄１３０１の設定に従いＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩを使用して一般的な印刷属性設定を行い、また、高度な印刷属性設定欄１３０２の設定値に従いプリンタドライバＳＤＫ ＡＰＩを使用して、プリンタ１０４およびプリンタドライバ１０２が有するより高機能な印刷属性設定を行う。ここで、高度な印刷属性設定とは、例えば、異なるサイズの用紙が混在し、さらに、製本設定等がなされている場合に、自動的に縮小又は拡大して、一つのサイズの用紙に印刷処理して製本処理するような高機能を有する印刷装置に対して、この機能を使用する設定を示す。なお、高度な印刷設定は、この例に限られるものではなく、一般的に用意されている印刷機能以外の印刷機能の設定も全て含まれる。
【０１４８】
さらに、アプリケーションプログラム１０３は、Ｗｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩを使用してドキュメント印刷指示とともに、前記描画処理を行った文字・図形データをプリンタドライバ１００２に送る。
【０１４９】
全てのドキュメントデータを送信後、ステップＳ７０８において、アプリケーションプログラム１０３は、印刷終了処理に移行するとともに、ステップＳ７０９において、プリンタドライバＳＤＫ ＡＰＩライブラリをアンロードし、処理を終了する。
【０１５０】
＜本実施形態のプリンタドライバにおける認証、印刷機能/能力情報通知の各制御処理（図１２，図１３）＞
以下、図１２，図１３に示すフローチャートによって、本実施形態におけるホストコンピュータ１００のプログラムメモリ上にあるプリンタドライバプログラム１０４の各制御処理を詳細に説明する。
【０１５１】
図１２は、本発明の印刷システムにおける第２の制御処理手順の一例を示すフローチャートである。
【０１５２】
なお、図１２中、Ｓ８０１〜Ｓ８０９に示すステップは、本実施形態に係るホストコンピュータ１００におけるプリンタドライバプログラム１０２（ＣＰＵ３０４がＲＡＭ３０６上で実行する）におけるアプリケーションプログラム１０３から通知される認証情報の照合、印刷機能/能力に対するアクセス制御レベルに応じた印刷機能属性情報および印刷能力属性情報をアプリケーションプログラム１０３に通知する一連の制御処理に対応する。
【０１５３】
まず、ステップＳ８０１において、プリンタドライバ１０２は、プリンタドライバが動作するためのプログラムメモリ領域確保、各種パラメータの初期化を行う。プリンタドライバＳＤＫ ＡＰＩの各種関数処理を行うライブラリの初期化も行う。
【０１５４】
次に、ステップＳ８０２において、プリンタドライバ１０２は、アプリケーションプログラム１０３からの認証情報通知に対する受理を行う。この認証情報通知は、アプリケーションプログラム１０３から、プリンタドライバＳＤＫ ＡＰＩであるFS_FNCertificate( )関数４０１がコールされることにより行われる。
【０１５５】
ステップＳ８０３において、プリンタドライバ１０２は、認証情報の照合処理（プリンタドライバ１０２におけるFS_FNCertificate( )関数４０１モジュール処理である）を行い、前記認証情報に基づくアクセス制御レベルあるいは認証失敗ステータスを出力する。なお、この認証情報照合処理の詳細は図１３に示す。
【０１５６】
次に、ステップＳ８０４において、プリンタドライバ１０２は、上記ステップＳ８０３の認証情報照合処理（FS_FNCertificate( )関数４０１モジュール処理）の処理結果に基づき、認証に成功しアプリケーションプログラム１０３のアクセス制御レベルが決定できたか否か（認証に失敗したか）を判定する。
【０１５７】
ステップＳ８０４で、プリンタドライバ１０２が、認証に成功したと判定し、前記アプリケーションプログラム１０３のアクセス制御レベルが決定できたと判定した場合には、ステップＳ８０５に処理を進め、前記決定したアクセス制御レベルに応じた印刷機能および印刷能力を選択し、ステップＳ８０７に処理を進める。なお、アクセス制御レベルに応じた印刷機能および印刷能力の情報は、プリンタドライバ１０２内に格納されているものとする。
【０１５８】
一方、ステップＳ８０４で、プリンタドライバ１０２が、認証に失敗したと判定した場合には、ステップＳ８０６に処理を進め、デフォルトの印刷機能および印刷能力を選択し、ステップＳ８０７に処理を進める。なお、通常、デフォルトの印刷機能および印刷能力は、一般的な印刷機能および印刷能力選択にとどまるものとする。なお、このデフォルト印刷機能および印刷能力を、管理者等が自由に設定可能に構成してもよい。
【０１５９】
次に、ステップＳ８０７において、プリンタドライバ１０２は、前記アプリケーションプログラム１０３からの印刷機能属性情報および印刷能力属性情報の問い合わせ通知受理を行う。この印刷機能属性情報および印刷能力属性情報の問い合わせ通知は、アプリケーションプログラム１０３から、プリンタドライバＳＤＫ ＡＰＩであるFS_GetFuncItem( )関数４０２コールによって行なわれる。
【０１６０】
次に、ステップＳ８０８において、プリンタドライバ１０２は、上記ステップＳ８０５あるいはステップＳ８０６の印刷機能および印刷能力の選択結果より、印刷機能属性情報および印刷能力属性情報を作成する。
【０１６１】
次に、ステップＳ８０９において、プリンタドライバ１０２は、ステップＳ８０８で作成した印刷機能属性情報および印刷能力属性情報を、アプリケーションプログラム１０３からコールされたFS_GetFuncItem( )関数４０２のパラメータであるメモリバッファのポインタへコピーして、リターンすることにより、前記アプリケーションプログラムに通知して、処理を終了する。
【０１６２】
図１３は、本発明の印刷システムにおける第３の制御処理手順の一例を示すフローチャートであり、図１２のステップＳ８０３に示した認証情報照合処理に対応する。
【０１６３】
なお、図１２中、Ｓ９０１〜Ｓ９０７に示す各ステップは、本実施形態に係るホストコンピュータ１００におけるプリンタドライバプログラム１０２（ＣＰＵ３０４がＲＡＭ３０６上で実行する）により実行される認証情報照合処理であるFS_FNCertificate( )関数４０１モジュール内の処理の一例に対応する。
【０１６４】
まず、ステップＳ９０１において、プリンタドライバ１０２は、図８のステップＳ７０３でFS_FNCertificate( )関数４０１をコールしたアプリケーションプログラムから通知される認証情報を入力する。
【０１６５】
上記FS_FNCertificate( )関数４０１のパラメータであるCERTIFICATIONプログラム構造体へのポインタが示す領域には、前記アプリケーションプログラム１０３のアプリケーションプログラム名称、対応ＯＳ、バージョン番号等の前記アプリケーションプログラム１０３を識別する情報および予め該当アプリケーションプログラム１０３に付与されるアクセスＩＤ、パスワード等の各種認証情報が格納されている。また、この認証情報に、ユーザＩＤ，パスワード等も含めるように構成してもよく、ユーザ毎にアプリケーションプログラムの認証情報を変化させるように構成してもよい。
【０１６６】
ステップＳ９０２において、プリンタドライバ１０２は、プリンタドライバ１０２のデータ定義領域あるいはリソース（例えば、ディスク１００３内の所定の領域）に格納される認証情報データベース（認証情報ＤＢ）を参照する。この認証情報ＤＢは、複数のアプリケーションプログラムに関する前記アプリケーションプログラム名称、対応ＯＳ、バージョン番号等の前記アプリケーションプログラムを識別する情報、あらかじめ該当アプリケーションプログラムに付与されるアクセスＩＤ、パスワードなどの各種認証情報、およびこれらに対応するアクセス制御レベルを格納・保管および管理するものである。ここでの認証情報は、アプリケーションプログラムの名称、対応ＯＳ、バージョン番号などの前記アプリケーションプログラムを識別する情報、及び、あらかじめ該当アプリケーションプログラム１０３に付与されるアクセスＩＤ、パスワード等の情報であり、前記アプリケーションプログラムにおいて利用する印刷機能・能力あるいは性能に対するアクセス権限を決定するための情報である。また、この認証情報に、ユーザＩＤ，パスワード等も含めるように構成してもよく、ユーザ毎にアプリケーションプログラムの認証情報を変化させるように構成してもよい。
【０１６７】
次に、ステップＳ９０３において、プリンタドライバ１０２は、ステップＳ９０１でアプリケーションプログラム１０３から通知・入力された認証情報内のアプリケーションプログラム１０３を識別する情報に基づいて、ステップＳ９０２で参照した認証情報データベースに登録されている前記アプリケーションプログラム１０３を検索する（登録アプリケーションプログラム検索）。
【０１６８】
次に、ステップＳ９０４において、プリンタドライバ１０２は、上記ステップＳ９０３の登録アプリケーションプログラムの検索結果に基づき、検索に成功したか失敗したかを判定する。
【０１６９】
ステップＳ９０４で、プリンタドライバ１０２が、検索に成功したと判定した場合には、ステップＳ９０５に処理を進め、該認証情報ＤＢから検索されたアプリケーションプログラムの登録アクセスＩＤ，パスワード等と前記アプリケーションプログラム１０３から通知された認証情報内のアクセスＩＤ、パスワード等を照合する。ここでの認証情報は、アプリケーションプログラムの名称、対応ＯＳ、バージョン番号などの前記アプリケーションプログラムを識別する情報、及び、あらかじめ該当アプリケーションプログラム１０３に付与されるアクセスＩＤ、パスワード等の情報であり、前記アプリケーションプログラムにおいて利用する印刷機能・能力あるいは性能に対するアクセス権限を決定するための情報である。ユーザＩＤ，パスワード等の照合も含めるように構成してもよい。
【０１７０】
次に、ステップＳ９０６において、プリンタドライバ１０２は、前記ステップＳ９０５の照合結果に基づき、照合に成功したか失敗したかを判定する。
【０１７１】
ステップＳ９０６で、プリンタドライバ１０２が、照合に成功したと判定した場合には、ステップＳ９０７に処理を進め、該照合されたアプリケーションプログラムの印刷機能および印刷能力に対するアクセス制御レベルを認証情報ＤＢから取得出力して、処理を終了する。
【０１７２】
一方、ステップＳ９０４で、プリンタドライバ１０２が、検索に成功しなかった（失敗した）と判定した場合には、ステップＳ９０８に処理を進め、認証失敗ステータスを出力して、処理を終了する。
【０１７３】
また、ステップＳ９０６で、プリンタドライバ１０２が、照合に成功しなかった（失敗した）と判定した場合には、上記検索に失敗した場合と同様に、ステップＳ９０８に処理を進め、認証失敗ステータスを出力して、処理を終了する。
【０１７４】
＜プリンタドライバプログラムにおける印刷制御処理の説明（図１４）＞
以下、図１４に示すフローチャートによって、本実施形態におけるホストコンピュータ１００のプログラムメモリＲＡＭ１００６上にあるプリンタドライバプログラム１０２の印刷制御処理を詳細に説明する。
【０１７５】
図１４は、本発明の印刷システムにおける第４の制御処理手順の一例を示すフローチャートである。
【０１７６】
なお、図１４中の１１０１〜Ｓ１１１１に示すステップは、本実施形態に係るプリンタ１０４におけるプリンタドライバプログラム１０２（ＣＰＵ３０４がＲＡＭ３０６上で実行する）での印刷制御処理に対応する。
【０１７７】
プリンタドライバ１０２は、外部、例えば文字、図形、イメージ作成、編集、印刷アプリケーションプログラム１０３などのドキュメント入力プログラムからのプリンタへの印刷指示によって、起動されステップＳ１１０１〜Ｓ１１１１を実行する。
【０１７８】
まず、ステップＳ１１０１において、プリンタドライバプログラム１０２は、アプリケーションプログラム１０３からＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩを介して渡される各種印刷属性設定パラメータおよびアプリケーションから印刷指示されたドキュメントを構成する文字／図形/イメージデータの印刷指示を入力する。
【０１７９】
そして、ステップＳ１１０２おいて、プリンタドライバプログラム１０２は、ステップＳ１１０１で入力されたパラメータおよびデータを解析する。
【０１８０】
なお、ステップＳ１１０１，Ｓ１１０２は、各種印刷属性設定パラメータおよび文字／図形/イメージデータの印刷指示が入力される毎に実行される。
【０１８１】
次に、ステップＳ１１０３において、プリンタドライバプログラム１０２は、ステップＳ１１０２での前記入力データの解析結果より、用紙サイズ、印刷方向、描画解像度設定、座標系の単位設定など印刷の準備をするため、プリンタ１０４に対する各設定パラメータをプリンタ制御命令に変換・生成し、プリンタ１０４に送信してプリンタ１０４の初期化処理を行う。
【０１８２】
なお、ステップＳ１１０３は、ジョブ中のページ／グループ／章単位で出力属性が異なる度に実行される。
【０１８３】
さらに、ステップＳ１１０４およびステップＳ１１０６において、プリンタドライバプログラム１０２は、前記ステップＳ１１０２で解析処理されたパラメータ及びデータを、文字データ，図形データ，イメージデータに分離する。
【０１８４】
ステップＳ１１０４で、プリンタドライバプログラム１０２が、文字データと判定したデータについては、ステップＳ１１０５において、文字印字制御処理モジュールで文字印字制御処理を施す。
【０１８５】
また、ステップＳ１１０４及びＳ１１０６で、プリンタドライバプログラム１０２が図形データと判定したデータについては、ステップＳ１１０７において、図形描画制御処理モジュールで図形描画制御処理を施す。
【０１８６】
また、ステップＳ１１０４及びＳ１１０６で、プリンタドライバプログラム１０２がイメージデータと判定したデータについては、ステップＳ１１０８において、イメージ描画制御処理モジュールでイメージ描画制御処理を施す。
【０１８７】
そして、ステップＳ１１０９において、プリンタドライバプログラム１０２は、上記ステップＳ１１０５の文字印字制御処理，ステップＳ１１０７の図形描画制御処理，ステップＳ１１０８のイメージ描画制御処理に基づき、ドキュメント構成制御処理モジュールで描画出力属性，サイズ計算，描画出力位置等パターンの出力形態を決定し、プリンタの出力ページに配置する処理（ドキュメント構成処理）を行う。
【０１８８】
次に、ステップＳ１１１０において、プリンタドライバプログラム１０２は、ステップＳ１１０９で構成されたドキュメント出力の制御データを、印刷制御命令生成処理モジュールで、プリンタにドキュメントを出力するためにプリンタの印刷制御命令に変換・生成する処理（印刷制御命令生成処理）を行う。
【０１８９】
そして、ステップＳ１１１１において、プリンタドライバプログラム１０２は、プリンタへの出力送信処理モジュールで、ステップＳ１１１０で生成した印刷制御命令をプリンタ１０４に対して送信する処理（出力送信処理）を行い、プリンタ１０４でドキュメントを印刷させる。
【０１９０】
なお、ステップＳ１１０４〜Ｓ１１１１の処理は、各種印刷属性設定パラメータおよび文字／図形／イメージデータの印刷指示毎に実行される。
【０１９１】
以上説明したように、本実施形態によれば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム環境下において、ドキュメント作成・印刷アプリケーションプログラムで標準的に使用されるＷｉｎｄｏｗｓ（登録商標） ＳＤＫ ＡＰＩライブラリとともに、本発明のプリンタドライバＳＤＫ ＡＰＩライブラリも使用することによって、標準的な印刷機能の他に、オプション装置類を搭載して実現可能なプリンタデバイス機能およびプリンタドライバ機能を使用可能とし、より付加価値の高い印刷機能を提供することが可能である。
【０１９２】
さらに、これらの印刷機能は、アプリケーションプログラムの使用目的あるいは動作目的に応じて、アクセス制御レベルに基づく機能拡張および機能制限を行うため、アプリケーションプログラムの種類、アプリケーションプログラム利用者（ユーザ）にとって、特定用途向けに機能の拡張、あるいは簡便なドキュメント印刷操作などの最適用途かつ運用性の高い印刷システムを提供することが可能となる。
【０１９３】
また、認証による印刷機能および印刷能力の提供を行うため、セキュリティ向上を図るドキュメント印刷システムを構築することが可能となる。
【０１９４】
〔第２実施形態〕
第２実施形態では、上記第１実施形態の図２にあるプリンタドライバ１０２で行っているアプリケーションプログラム１０３の印刷機能および印刷能力・性能に対するアクセス制御レベルの決定を、部門管理あるいは課金管理に応用させるように構成する。
【０１９５】
部門管理においては、部門毎にアプリケーションプログラムの認証情報を変化させることによって、部門毎に前記アクセス制御レベルを変化させ、使用および動作可能とする印刷機能、印刷能力・性能を管理することで実現可能となる。
【０１９６】
また、課金管理においては、ユーザ毎の使用上限課金度数（使用上限費用）及び、前記プリンタドライバのアクセス制御レベルに基づいて、使用および動作可能とする印刷機能、印刷能力・性能を選択決定することにより、アプリケーション及びユーザに対する使用および動作可能とする印刷機能、印刷能力・性能を管理することで実現可能となる。
【０１９７】
以下、図１５〜図１７を参照して、課金管理に基づくアプリケーションプログラムの認証およびアクセス制御レベルの決定の一例について説明する。
【０１９８】
＜本システムの課金管理における各制御処理の流れを表わすブロック図の説明（図１５）＞
図１５は、本発明の第２実施形態におけるアプリケーションプログラム、プリンタドライバ、プリンタおよび各種データベースから構成されるドキュメント印刷課金管理システムの各制御処理の流れに一例を示す図である。なお、図１と同一のものには同一の符号を付してある。
【０１９９】
図１５に示すように、アプリケーションプログラム１０３およびプリンタドライバ１０２は、上述の第１実施形態と同様に、アプリケーションプログラム１０３の認証情報をプリンタドライバ１０２にプリンタドライバＳＤＫ ＡＰＩを使用して通知し、プリンタドライバ１０２がこの認証情報に基づき、印刷機能および印刷能力・性能に対するアクセス制御レベルを決定する。
【０２００】
さらに、プリンタドライバ１０２は、アプリケーションプログラム１０３からプリンタドライバＳＤＫ ＡＰＩを使用しての現在使用・動作可能な印刷機能および印刷能力・性能についての問い合わせに対して、前記アクセス制御レベルに基づく、印刷機能属性情報および印刷能力属性情報を生成してアプリケーションプログラムに通知する。
【０２０１】
一方、アプリケーションプログラム１０３は、これらのプリンタドライバ１０２から通知される情報に基づき、ドキュメント編集・加工を行い、ドキュメント印刷指示をプリンタドライバ１０２に対して行う。
【０２０２】
そして、プリンタドライバ１０２は、前記アプリケーションプログラム１０３からの印刷指示に基づき、各種印刷制御処理および文字、図形、イメージ描画出力に係るプリンタ印刷制御命令に変換・生成し、ＯＳ１０１のスプーラ１２０２を経由してプリンタ１０４に送信し、ドキュメント出力１０５を行う構成からなる。
【０２０３】
なお、本実施形態のプリンタドライバ１０２は、認証情報ＤＢ１２００からアクセス制御レベル及びアクセス制御レベルに応じたユーザ毎の使用上限課金度数（使用上限費用）を取得する。
【０２０４】
また、本実施形態のプリンタドライバ１０２は、図示しないサーバ上に構築された機能/能力コスト情報データベース１２０８にアクセス可能である。なお、この機能/能力コスト情報データベース１２０８は、給紙方法、排紙方法、両面印刷機能、Ｎ−ｕｐ印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Ｚ折り機能などの各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、スタンプ（Watermark）機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能等の前記プリンタドライバにおいて実行可能な印刷機能属性情報、およびモノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間および設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ／イメージ描画、ディザリング等のグラフィックス描画方法、印刷可能な用紙サイズおよび用紙種、最大設定可能コピー部数、Ｎ−ｕｐ印刷時の印刷設定可能Ｎ−ｕｐ数などの各種印刷機能および印刷能力それぞれに、使用費用，公開費用（より高度な機能の明示／使用に係る費用）等を割り当てて管理するデータベースである。なお、上記「使用費用」も「公開費用（より高度な機能の明示／使用に係る費用）」も共に、使用された際に課金されるものであるが、「使用費用」は一般的な印刷属性設定をの使用費用に対応し、「公開費用（より高度な機能の明示／使用に係る費用）」は、例えば、異なるサイズの用紙が混在し、さらに、製本設定等がなされている場合に、自動的に縮小又は拡大して、一つのサイズの用紙に印刷処理して製本処理するような高機能を有する印刷装置に対して、この機能を使用する費用に対応する。なお、「公開費用（より高度な機能の明示／使用に係る費用）」は、この例に限られるものではなく、一般的な印刷装置に用意されている印刷機能以外の印刷機能を使用する費用は全て含まれるものである。
【０２０５】
そして、プリンタドライバ１０２において、アプリケーションプログラム１０３に通知する印刷機能および印刷能力・性能を選択決定する際、この機能/能力コスト情報データベース１２０８を参照し、アクセス制御レベル及び上記使用上限課金度数に応じた（使用上限課金度数以下の）課金対象となる印刷機能および印刷能力を選択・決定しアプリケーションプログラム１０３に通知する。
【０２０６】
また、プリンタドライバ１０２は、アプリケーションプログラム１０３から印刷指示とともに送信される各種印刷属性設定情報に基づき、印刷制御命令を生成し、ＯＳ１０１のスプーラ１２０２を経由してプリンタ１０４に送信し、ドキュメント出力１０５を行う。そして、プリンタドライバ１０２は、上記各種印刷属性設定情報の使用実績に基づいて、課金対象の情報を生成し（１２０６）、前記機能/能力コスト情報データベース１２０８を参照して、ドキュメント印刷を行ったユーザ毎に課金算出処理を行い（１２０７）、課金結果を課金情報データベース１２０９に蓄積する。
【０２０７】
なお、前記機能/能力コスト情報データベース１２０８および課金情報データベース１２０９は、一般的にホストコンピュータ１００が通信可能なサーバ上に構築することにより運用される。
【０２０８】
＜第２実施形態のプリンタドライバにおける認証、印刷機能/能力情報通知の各制御処理（図１６，図１７）＞
以下、図１６，図１７に示すフローチャートによって、第２実施形態におけるホストコンピュータ１００のプログラムメモリ上にあるプリンタドライバプログラム１０４の各制御処理を詳細に説明する。
【０２０９】
図１６は、本発明の印刷システムにおける第５の制御処理手順の一例を示すフローチャートである。なお、図１２と同一のステップには同一のステップ番号を付してある。
【０２１０】
また、図１６中、Ｓ８０１〜Ｓ８０２、Ｓ１６０１〜Ｓ１６０、Ｓ８０５〜Ｓ８０９に示すステップは、本実施形態に係るホストコンピュータ１００におけるプリンタドライバプログラム１０２（ＣＰＵ３０４がＲＡＭ３０６上で実行する）におけるアプリケーションプログラム１０３から通知される認証情報の照合、印刷機能/能力に対するアクセス制御レベルに応じた印刷機能属性情報および印刷能力属性情報をアプリケーションプログラム１０３に通知する一連の制御処理に対応する。
【０２１１】
以下、図１２と異なるステップのみ説明する。
【０２１２】
ステップＳ１６０１において、プリンタドライバ１０２は、認証情報の照合処理（プリンタドライバ１０２におけるFS_FNCertificate( )関数４０１モジュール処理である）を行い、前記認証情報に基づくアクセス制御レベル，上限課金度数あるいは認証失敗ステータスを出力する。なお、この認証情報照合処理の詳細は図１７に示す。
【０２１３】
次に、ステップＳ１６０２において、プリンタドライバ１０２は、上記ステップＳ８０３の認証情報照合処理（FS_FNCertificate( )関数４０１モジュール処理）の処理結果に基づき、認証に成功しアプリケーションプログラム１０３のアクセス制御レベル，上限課金度数が決定できたか否か（認証に失敗したか）を判定する。
【０２１４】
ステップＳ１６０２で、プリンタドライバ１０２が、認証に成功したと判定し、前記アプリケーションプログラム１０３のアクセス制御レベル，上限課金度数が決定できたと判定した場合には、ステップＳ１６０３に処理を進め、前記決定したアクセス制御レベル，上限課金度数に応じた印刷機能および印刷能力を選択し、ステップＳ８０７に処理を進める。
【０２１５】
一方、ステップＳ１６０２で、プリンタドライバ１０２が、認証に失敗したと判定した場合には、ステップＳ８０６に処理を進る。
【０２１６】
図１７は、本発明の印刷システムにおける第６の制御処理手順の一例を示すフローチャートであり、図１６のステップＳ１６０１に示した認証情報照合処理に対応する。なお、図１３と同一のステップには同一のステップ番号を付してある。
【０２１７】
なお、図１２中、Ｓ９０１〜Ｓ９０６，Ｓ９０８，Ｓ１７０１に示す各ステップは、本実施形態に係るホストコンピュータ１００におけるプリンタドライバプログラム１０２（ＣＰＵ３０４がＲＡＭ３０６上で実行する）により実行される認証情報照合処理であるFS_FNCertificate( )関数４０１モジュール内の処理の一例に対応する。
【０２１８】
ステップＳ９０６で、プリンタドライバ１０２が、照合に成功したと判定した場合には、ステップＳ１７０１に処理を進め、該照合されたアプリケーションプログラムの印刷機能および印刷能力に対するアクセス制御レベル，上限課金度数を認証情報ＤＢから取得出力して、処理を終了する。
【０２１９】
＜プリンタドライバプログラムにおける印刷制御処理の説明（図１８）＞
以下、図１８に示すフローチャートによって、第２実施形態におけるホストコンピュータ１００のプログラムメモリＲＡＭ１００６上にあるプリンタドライバプログラム１０２の印刷制御処理を詳細に説明する。
【０２２０】
図１８は、本発明の印刷システムにおける第７の制御処理手順の一例を示すフローチャートである。なお、図１４と同一のステップには同一のステップ番号を付してある。
【０２２１】
なお、図１８中の１１０１〜Ｓ１１１１，Ｓ１８０１に示すステップは、本実施形態に係るプリンタ１０４におけるプリンタドライバプログラム１０２（ＣＰＵ３０４がＲＡＭ３０６上で実行する）での印刷制御処理に対応する。
【０２２２】
プリンタドライバプログラム１０２は、プリンタ１０４でのドキュメントが印刷が終了すると、ステップＳ１８０１において、この印刷処理における上記各種印刷属性設定情報の使用実績に基づいて、課金対象の情報を生成し、前記機能/能力コスト情報データベース１２０８を参照して、ドキュメント印刷を行ったユーザ毎に課金算出処理を行い、課金結果を課金情報データベース１２０９に蓄積し、処理を終了する。
【０２２３】
本実施形態によれば、第１の実施形態をさらに部門管理あるいは課金管理を行うことによって、印刷機能および印刷能力・性能を得るために、最適なコストで印刷システム構築、運用が可能となる。
【０２２４】
〔第３実施形態〕
第３実施形態では、上記第１実施形態において、プリンタドライバ１０２内に備えていたアプリケーションプログラム１０３の認証情報データベースを外部ファイル形式で提供するように構成する。例えば、プリンタドライバ１０２へのプラグイン形態・運用を採用することによって、必要に応じて、上記各種認証情報あるいはアクセス制御レベルを書き換え可能とすることができる。
【０２２５】
本実施形態によれば、例えば、アプリケーションプログラムのバージョンアップ、印刷機能・能力および利用者制限解除などを行った場合に、プリンタドライバ提供者あるいはユーザシステム管理者により、上記各種認証情報あるいはアクセス制御レベルを更新可能になり、効率の良い、柔軟なシステム構築、運用を実現することが可能となる。
【０２２６】
〔第４実施形態〕
第４実施形態では、上記第１実施形態において、プリンタドライバ内に備えていたアプリケーションプログラムの認証情報データベースを外部のサーバ上に構築するように構成してもよい。
【０２２７】
例えば、上記第２実施形態において、機能/能力コスト情報データベース１２０８および課金情報データベース１２０９と併せて、サーバ上に構築するように構成してもよい。
【０２２８】
本実施形態によれば、例えば、大規模なシステムにおいて、多数のアプリケーションプログラム、多数のアプリケーションプログラム利用者の認証情報を一元管理することができる。また、上記第２形態形態の部門管理あるいは課金管理を適用する場合でも、効率の良いシステム構築、運用を実現することが可能となる。
【０２２９】
〔第５実施形態〕
第５実施形態では、アプリケーションプログラム１０３側で動作環境、特定用途利用者向けなどの各レベルに応じた複数認証情報を用意し、該アプリケーションプログラム１０３側に設定しておくように構成する。
【０２３０】
本実施形態によれば、アプリケーションプログラム側で意図した印刷機能および印刷能力・性能に対するアクセス制御レベル決定を可能になるため、セキュリティの高いアプリケーションプログラム、ドキュメント印刷システムの提供が可能となる。
【０２３１】
〔第６実施形態〕
上記各実施形態では、プリンタＳＤＫ ＡＰＩライブラリを、ホストコンピュータ１００上のアプリケーションプログラム１０３、プリンタドライバプログラム１０２から読み込み可能なプログラムライブラリ形式として提供する構成について説明した。
【０２３２】
このプリンタＳＤＫ ＡＰＩライブラリは、ホストコンピュータ１００上のアプリケーションプログラム１０３、プリンタドライバプログラム１０２において、スタティックリンクライブラリとして、予め各プログラムに内蔵される構成であっても、或いは、外部ファイル形式（ダイナミックリンクライブラリ）として、任意のタイミングで必要に応じて、プログラムメモリ上に外部ライブラリファイルをロードして使用する構成であってもよい。
【０２３３】
なお、上記各実施形態内で示した印刷能力情報および印刷機能情報等の各種情報や画面等の構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０２３４】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２３５】
なお、上記各実施形態をいずれか又は全てを組み合わせた実施形態も全て本発明に含まれるものである。
【０２３６】
以上説明したように、本実施形態の情報処理装置は、一般的な印刷機能はもとより、印刷装置のもつオプション類などのリソース付加による種々の機能およびプリンタドライバで処理実現される高付加価値機能をアプリケーションプログラムから利用するために、ドキュメント作成・印刷アプリケーションプログラムで標準的に使用されるＷｉｎｄｏｗｓ（登録商標） ＳＤＫライブラリとともに、使用可能な機能をアプリケーションプログラムインタフェース（ＡＰＩ）を使用して、プリンタドライバからアプリケーションプログラムに通知することにより、アプリケーションプログラムにおいて、印刷可能な機能に応じた印刷するドキュメント体裁加工を可能とし、標準的な印刷機能の他に、オプション装置類などを搭載して実現可能なプリンタデバイス機能および高度なプリンタドライバ実現機能を使用可能とし、より付加価値の高い印刷機能を提供することが可能である。
【０２３７】
さらに、アプリケーションプログラムの使用目的あるいは動作目的により、アプリケーションプログラムの認証情報をアプリケーションプログラムインタフェース（ＡＰＩ）を使用して、プリンタドライバに通知することにより、アプリケーションプログラムのシステム上における使用目的、動作目的および利用者毎の印刷機能使用制限に応じて認証を行い、印刷機能および印刷能力・性能のアクセス制御が行えるため、個別ユーザ向けの特定アプリケーションプログラム、特殊用途アプリケーションプログラム、公開されていない機能を利用するアプリケーションプログラム、製本機能などのプリンタの機能をフルに使用するアプリケーションプログラム、機能・能力に関してセキュリティの高い印刷システムを実現できる。従って、アプリケーションプログラムおよび印刷システム開発のコスト低減、低コストかつ構築・運用性の高い印刷システムの提供が可能となる効果を奏する。
【０２３８】
さらに、前記認証について、印刷機能のアクセス制御を部門管理、課金管理に基づいて行う等の応用も可能である。
【０２３９】
以下、図１９に示すメモリマップを参照して本発明に係る印刷システムを構成する情報処理装置（ホストコンピュータ１００）で読み取り可能なデータ処理プログラムの構成について説明する。
【０２４０】
図１９は、本発明に係る本発明に係る印刷システムを構成する情報処理装置（ホストコンピュータ１００）で読み取り可能な各種データ処理プログラムを格納する記憶媒体（記録媒体）のメモリマップを説明する図である。
【０２４１】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２４２】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２４３】
本実施形態における図８，図１２，図１３，図１４，図１６，図１７，図１８に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２４４】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２４５】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２４６】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０２４７】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０２４８】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２４９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０２５０】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０２５１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２５２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２５３】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２５４】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組み合わせを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０２５５】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【０２５６】
以上説明したように、アプリケーションからＳＤＫ ＡＰＩでアプリケーションの使用／動作目的に応じた認証情報をプリンタドライバに通知し、ドライバにおいてこの認証情報に基づき各種印刷機能及び印刷能力・性能に対するアクセス制御レベルを決定し、アプリケーションからＡＰＩによる現在使用可能な印刷機能及び印刷能力・性能をドライバに問い合わせ、ドライバは、アクセス制御レベルに基づいた印刷機能属性情報及び印刷能力属性情報をアプリケーションに通知し、アプリケーションは、これらの情報に基づき、ドキュメント編集・加工及び印刷設定を制御し、ドキュメント印刷を行うことにより、アプリケーションの使用／動作目的に応じ使用する各種印刷機能に対するアクセス制御レベルを与え、印刷に関して、機能拡張、機能制限を設けることが可能とあんり、アプリケーション用途及び利用者による高機能あるいは簡便機能を目的に応じて提供することを可能とする。また、ＡＰＩによる認証により機能制限を行えるため、低コストかつセキュリティ向上を図る運用性の高い印刷システムを提供することが可能となる。
【図面の簡単な説明】
【０２５７】
【図１】本発明の一実施形態を示す印刷システムの一例を示すシステム構成図である。
【図２】図１に示したホストコンピュータ上のＯＳ、アプリケーションプログラム、プリンタドライバおよびプリンタにおける、プリンタドライバＳＤＫ ＡＰＩを使用して、初期化から印刷までの各構成要素の内部および構成要素間の処理の流れをあらわすブロック図である。
【図３】図１に示したホストコンピュータ上のＯＳ、アプリケーションプログラムおよびプリンタドライバにおける、プリンタドライバＳＤＫ ＡＰＩの初期化から印刷までのコーリングシーケンス図である。
【図４】図３に示したプリンタドライバＳＤＫ ＡＰＩである認証情報通知するFS_FNCertificate( )関数および印刷機能属性情報、印刷能力属性情報を取得・通知するFS_GetFuncItem()関数を説明する図である。
【図５】Windows（登録商標） NT4.0/Windows（登録商標） 2000/Windows（登録商標） XP等の32-Bitオペレーティングシステム環境下におけるオペレーティングシステムのＧＤＩ，アプリケーションプログラム，プリンタドライバおよびプリンタドライバＳＤＫライブラリの各構成例を示す図である。
【図６】Windows（登録商標） 95/Windows（登録商標） 98/Windows（登録商標） Me等の16-Bitオペレーティングシステム環境下におけるオペレーティングシステムのＧＤＩ，アプリケーションプログラム，プリンタドライバおよびプリンタドライバＳＤＫライブラリの各構成例を示す図である。
【図７】図１に示したホストコンピュータ及びプリンタのハードウェア接続構成を示すブロック図である。
【図８】本発明の印刷システムにおける第１の制御処理手順の一例を示すフローチャートである。
【図９】図１に示したアプリケーションプログラム１０３の編集画面及び色設定画面の一例を示す図である。
【図１０】図１に示したアプリケーションプログラム１０３の印刷ダイアログの一例を示す図である。
【図１１】図１に示したアプリケーションプログラム１０３の印刷ダイアログの一例を示す図である。
【図１２】本発明の印刷システムにおける第２の制御処理手順の一例を示すフローチャートである。
【図１３】本発明の印刷システムにおける第３の制御処理手順の一例を示すフローチャートである。
【図１４】本発明の印刷システムにおける第４の制御処理手順の一例を示すフローチャートである。
【図１５】本発明の第２実施形態におけるアプリケーションプログラム、プリンタドライバ、プリンタおよび各種データベースから構成されるドキュメント印刷課金管理システムの各制御処理の流れに一例を示す図である。
【図１６】本発明の印刷システムにおける第５の制御処理手順の一例を示すフローチャートである。
【図１７】本発明の印刷システムにおける第６の制御処理手順の一例を示すフローチャートである。
【図１８】本発明の印刷システムにおける第７の制御処理手順の一例を示すフローチャートである。
【図１９】本発明に係る本発明に係る印刷システムを構成する情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体（記録媒体）のメモリマップを説明する図である。
【符号の説明】
【０２５８】
１００    ホストコンピュータシステム
１０１    オペレーティングシステム（ＯＳ）
１０２    プリンタドライバ
１０３    アプリケーションプログラム
１０４    プリンタ
【図１】
2007004332.tif 000003
【図２】
2007004332.tif 000004
【図３】
2007004332.tif 000005
【図４】
2007004332.tif 000006
【図５】
2007004332.tif 000007
【図６】
2007004332.tif 000008
【図７】
2007004332.tif 000009
【図８】
2007004332.tif 000010
【図９】
2007004332.tif 000011
【図１０】
2007004332.tif 000012
【図１１】
2007004332.tif 000013
【図１２】
2007004332.tif 000014
【図１３】
2007004332.tif 000015
【図１４】
2007004332.tif 000016
【図１５】
2007004332.tif 000017
【図１６】
2007004332.tif 000018
【図１７】
2007004332.tif 000019
【図１８】
2007004332.tif 000020
【図１９】
2007004332.tif 000021