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