(57)【要約】【課題】アプリケーションプログラム毎に印刷可能なアプリケーションプログラムであるか否かの判定を行うことにより、アプリケーションを操作するユーザの混乱を軽減させる。【解決手段】アプリケーションＡからの印刷時、アプリケーションＡは印刷前に記憶領域３０３を書き換えて、所定の領域に自分自身のＩＤを示す”アプリケーションＡ”を設定する。印刷開始命令６０１を受け取ったプリンタドライバ２０３は記憶領域３０３を読み込み、上記所定の領域を参照し、これがアプリケーションＡ、すなわち印刷可能アプリケーションからの印刷だと判断する。【選択図】　　　図７
2004078589.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムから印刷指示により印刷データを所定のフォーマットに変換する処理を実行する情報処理装置であって、
所定の記憶領域にアプリケーションプログラムの識別情報を含む印刷属性を設定する手段と、
印刷開始時に前記記憶領域からアプリケーションプログラムの識別情報を読み込む手段と、
前記識別情報から印刷指示があったアプリケーションプログラムが印刷可能なアプリケーションプログラムであるか否かを判定する手段とを備えたことを特徴とする情報処理装置。
【請求項２】
前記記憶領域に設定される印刷可能なアプリケーションプログラムの識別情報は、印刷可能なアプリケーションプログラムにより設定されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定の結果、印刷指示があったアプリケーションプログラムが印刷可能なアプリケーションプログラムではない場合、その旨をユーザに告知する手段を備えたことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記判定の結果、印刷指示があったアプリケーションプログラムが印刷可能なアプリケーションプログラムではない場合、その旨を前記印刷指示のあったアプリケーションプログラムに通知する手段を備えたことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
情報処理装置上において、特定の機能をユーザに提供するアプリケーションプログラム及び印刷システムが動作する環境に関して、前記アプリケーションプログラムが、前記情報処理装置上で動作するオペレーティングシステムが提供する印刷出力機能を利用して、印刷データを所望のフォーマットに変換する印刷システムであり、前記オペレーティングシステムが提供する印刷出力機能の一部である制御コード生成モジュールが、前記情報処理装置上の任意の記憶領域に印刷属性を設定させる手段と、印刷開始時に前記記憶領域よりアプリケーションプログラムの識別情報を読み込む手段と、前記設定された印刷属性から印刷可能なアプリケーションプログラムか否かを判定する手段とを提供し、後の印刷の開始を制御するように構成することを特徴とする印刷モジュール構成方法。
【請求項６】
ネットワーク上で特定の制御コードを印刷可能なプリンタ機器と、前記ネットワーク上の情報処理装置上において前記制御コードを前記プリンタ機器に対して送信することにより印刷を実現することが可能な印刷環境に関して、前記情報処理装置上で動作する任意のアプリケーションが、前記情報処理装置上で動作するオペレーティングシステムが提供する印刷出力機能を利用して、印刷データを印刷する印刷システムであり、前記オペレーティングシステムが提供する印刷出力機能の一部である制御コード生成モジュールが、前記情報処理装置上の任意の記憶領域にアプリケーションプログラムに印刷属性を設定させる手段と、印刷開始時に前記記憶領域よりアプリケーションプログラムの印刷属性を読み込む手段と、前記設定された印刷属性から印刷可能なアプリケーションプログラムかを判定する手段とを提供し、印刷可能と判断された場合には設定された印刷属性を印刷に反映させるように構成することを特徴とする印刷モジュール構成方法。
【請求項７】
前記情報処理装置上の制御コード生成モジュールが、任意のアプリケーションプログラムに印刷属性を設定させ、印刷処理に反映させるように構成することを特徴とする請求項５又は６に記載の印刷モジュール構成方法。
【請求項８】
任意のアプリケーションプログラムを識別し、印刷動作を変更するように構成することを特徴とする請求項５又は６に記載の印刷モジュール構成方法。
【請求項９】
任意のアプリケーションプログラムを識別し、印刷の許可を決定するように構成することを特徴とする請求項５又は６に記載の印刷モジュール構成方法。
【請求項１０】
アプリケーションプログラムから印刷指示により印刷データを所定のフォーマットに変換する処理をコンピュータに実行させるコンピュータプログラムであって、
所定の記憶領域にアプリケーションプログラムの識別情報を含む印刷属性を設定する処理と、
印刷開始時に前記記憶領域からアプリケーションプログラムの識別情報を読み込む処理と、
前記識別情報から印刷指示があったアプリケーションプログラムが印刷可能なアプリケーションプログラムであるか否かを判定する処理とをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、特定のデータ形式を認識可能なプリンタ機器やアプリケーションに対して、該認識可能データを生成する情報処理装置、情報処理装置上の印刷モジュール構成方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体に関するもので、特にパーソナルコンピュータ等の情報処理装置と出力機器における、印刷システムに関するものである。
【０００２】
【従来の技術】
一般的に、情報処理装置上で動作するオペレーティングシステム（以下、ＯＳ）上の印刷システムにおいて、文書作成ソフトウェアや画像編集ソフトウェア等のアプリケーションプログラムからの印刷データはＯＳの内部モジュールであるグラフィックエンジンを介して、抽象的な論理描画要求として、制御コード生成モジュール（以下、プリンタドライバ）へと送信される。プリンタドライバは該論理描画要求を解釈し、特定のフォーマットに準拠した制御コマンド群を生成する。
【０００３】
通常、このような機能を提供するプリンタドライバはＯＳ上に一つのソフトウエアモジュールとしてインストールされ、該ＯＳ上で稼動するすべてのアプリケーションから利用されることが可能である。また、プリンタドライバは情報処理装置上で動作する、すべてのアプリケーションに対して同等の機能を提供する。つまり、すべてのアプリケーションが同等にプリンタドライバの機能を使用することが可能であり、アプリケーション毎に印刷を認証するようなことは行われない。
【０００４】
【発明が解決しようとする課題】
上述の通り、現在の印刷システムではＯＳ上で動作するアプリケーション毎に印刷の認証を行うことはできない。例えば、あるプリンタドライバは、ある特定のアプリケーションに特化したフォーマットの出力ファイルを作成するように設計されていたとすれば、これらは通常のアプリケーションから印刷されることに全く意味をもたないことがある。この場合、すべてのアプリケーションが同等に印刷を指示できることはアプリケーションに印刷を指示したアプリケーションを操作するユーザの混乱をまねくことにもなる。
【０００５】
本発明は上記の点に鑑みてなされたものであり、アプリケーションプログラム毎に印刷可能なアプリケーションプログラムであるか否かの判定を行うことにより、アプリケーションを操作するユーザの混乱を軽減させることを目的とする。
【０００６】
【課題を解決するための手段】
本発明の情報処理装置は、アプリケーションプログラムから印刷指示により印刷データを所定のフォーマットに変換する処理を実行する情報処理装置であって、所定の記憶領域にアプリケーションプログラムの識別情報を含む印刷属性を設定する手段と、印刷開始時に前記記憶領域からアプリケーションプログラムの識別情報を読み込む手段と、前記識別情報から印刷指示があったアプリケーションプログラムが印刷可能なアプリケーションプログラムであるか否かを判定する手段とを備えた点に特徴を有する。
【０００７】
本発明の印刷モジュール構成方法は、情報処理装置上において、特定の機能をユーザに提供するアプリケーションプログラム及び印刷システムが動作する環境に関して、前記アプリケーションプログラムが、前記情報処理装置上で動作するオペレーティングシステムが提供する印刷出力機能を利用して、印刷データを所望のフォーマットに変換する印刷システムであり、前記オペレーティングシステムが提供する印刷出力機能の一部である制御コード生成モジュールが、前記情報処理装置上の任意の記憶領域に印刷属性を設定させる手段と、印刷開始時に前記記憶領域よりアプリケーションプログラムの識別情報を読み込む手段と、前記設定された印刷属性から印刷可能なアプリケーションプログラムか否かを判定する手段とを提供し、後の印刷の開始を制御するように構成する点に特徴を有する。
【０００８】
本発明の他の印刷モジュール構成方法は、ネットワーク上で特定の制御コードを印刷可能なプリンタ機器と、前記ネットワーク上の情報処理装置上において前記制御コードを前記プリンタ機器に対して送信することにより印刷を実現することが可能な印刷環境に関して、前記情報処理装置上で動作する任意のアプリケーションが、前記情報処理装置上で動作するオペレーティングシステムが提供する印刷出力機能を利用して、印刷データを印刷する印刷システムであり、前記オペレーティングシステムが提供する印刷出力機能の一部である制御コード生成モジュールが、前記情報処理装置上の任意の記憶領域にアプリケーションプログラムに印刷属性を設定させる手段と、印刷開始時に前記記憶領域よりアプリケーションプログラムの印刷属性を読み込む手段と、前記設定された印刷属性から印刷可能なアプリケーションプログラムかを判定する手段とを提供し、印刷可能と判断された場合には設定された印刷属性を印刷に反映させるように構成する点に特徴を有する。
【０００９】
本発明のコンピュータプログラムは、アプリケーションプログラムから印刷指示により印刷データを所定のフォーマットに変換する処理をコンピュータに実行させるコンピュータプログラムであって、所定の記憶領域にアプリケーションプログラムの識別情報を含む印刷属性を設定する処理と、印刷開始時に前記記憶領域からアプリケーションプログラムの識別情報を読み込む処理と、前記識別情報から印刷指示があったアプリケーションプログラムが印刷可能なアプリケーションプログラムであるか否かを判定する処理とをコンピュータに実行させる点に特徴を有する。
【００１０】
本発明のコンピュータ読み取り可能な記憶媒体は、本発明のコンピュータプログラムを格納した点に特徴を有する。
【００１１】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を説明する。
【００１２】
（第１の実施形態）
図１は実施形態で示す印刷システムが稼動する情報処理装置の構成を示すブロック図である。同図において、３０００は情報処理装置で、ＲＯＭ３のプログラム用ＲＯＭ或いは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムデバイス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００１３】
また、ＲＯＭ３のプログラム用ＲＯＭ或いは外部メモリ１１にはＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、ＯＳ）等を記憶し、ＲＯＭ３のフォント用ＲＯＭ或いは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭ或いは外部メモリ１１には上記文書処理等を行う際に使用する各種データを記憶する。
【００１４】
２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）で、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。６はビデオコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）や液晶ディスプレイ１０の表示を制御する。
【００１５】
７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、及び本発明にかかるプリンタドライバ等を記憶するハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。
【００１６】
８はプリンタコントローラ（ＰＲＴＣ）で、所定のインターフェースを介してプリンタ機器に接続され、プリンタとの通信制御処理を実行する。
【００１７】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ１０上での表示を可能としている。また、ＣＰＵ１は、ディスプレイ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタドライバに対する印刷処理方法の設定を行うことができる。
【００１８】
図２は、ホストコンピュータである情報処理装置３０００上のＲＡＭ２にロードされて実行可能状態になった典型的な印刷処理モジュールの構成図である。文書処理プログラム等のアプリケーション２０１、ＯＳの提供するグラフィックエンジン２０２、グラフィックエンジン２０２を経由し、アプリケーション２０１から渡された印刷描画命令を処理するプリンタドライバ２０３から構成される。
【００１９】
これらのモジュールは外部メモリ１１に保存されたファイルとして存在し、実行されるときにＯＳによってＲＡＭ２にロードされて実行されるプログラムモジュールである。また、アプリケーション２０１及びプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤ−ＲＯＭ、或いは不図示のネットワークを経由して外部のＨＤから追加することが可能となっている。
【００２０】
外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタドライバ２０２に対して印刷を行う際には、同様にＲＡＭ２にロードされて実行可能となっているグラフィックエンジン２０２を介して出力を行う。
【００２１】
グラフィックエンジン２０２はプリンタドライバ２０３と同様に外部メモリ１１からＲＡＭ２にロードされ、アプリケーション２０１の描画要求をプリンタドライバ２０３に伝達する。
【００２２】
プリンタドライバ２０３は伝達された描画命令を特定の制御コマンドに変換する。プリンタドライバ２０３により生成された制御コマンドはネットワークを介してプリンタ機器に送信されることも、或いは外部メモリ１１のようなファイルシステム上にファイルとして出力されることも可能である。なお、本実施形態においては、プリンタドライバ２０３からの出力はファイル２０４としてファイルシステム上に出力されるものとする。
【００２３】
図３は図２に示した印刷処理モジュールの構成を詳細に示したものであり、この例では、アプリケーションＡ（３０１）、アプリケーションＢ（３０２）の二つのアプリケーションがＲＡＭ２にロードされて実行可能状態となっているものとする。なお、アプリケーションの同時起動数はこれ以上であっても構わないことはいうまでもない。
【００２４】
３０３はアプリケーションとプリンタドライバ２０３が情報伝達に用いる外部メモリ１１に代表されるファイルシステム上の記憶領域を示す。ある特定のアプリケーションとプリンタドライバ２０３は本記憶領域に情報を書き込み、これをお互いが読み込むことにより通信を確立することが可能となる。
【００２５】
図４は図３に示した記憶領域３０３の構造例（記憶領域３０３に格納される印刷属性の例）を示す。本実施形態では記憶領域３０３の領域４０１にプリンタドライバを識別するＩＤが格納され、領域４０２にアプリケーションを識別するＩＤが格納される。また、領域４０３にアプリケーションがプリンタドライバからの出力ファイルを所得する出力先ファイル名が保存されるものとする。領域４０１、４０２に記述されるフォーマットは、プリンタドライバ、アプリケーションが識別可能であればどのような形式でも構わない。
【００２６】
本実施形態において、プリンタドライバ２０３はアプリケーションＡから使用されたときのみ印刷を行うものとし、他のアプリケーション（アプリケーションＢ）からの印刷においては印刷を開始できない旨のメッセージをユーザに表示し、印刷を終了するものとする。
【００２７】
なお、アプリケーションＡ（３０１）、アプリケーションＢ（３０２）はＲＡＭ２にロードされて実行可能状態となっているものとする。また、以下の説明では、例として、アプリケーションＢ（３０２）からの印刷、アプリケーションＡ（３０１）からの印刷の順で印刷が行われるものとする。
【００２８】
印刷処理がされていない通常状態において、記憶領域３０３は図５に示すような状態になっているものとする。すなわち、領域５０１（図４で示す領域４０１）にプリンタドライバ２０３を示す”プリンタドライバＡ”という文字列、領域５０２、５０３（図４で示す領域４０２、４０３）にアプリケーションＩＤ及び出力ファイル名が設定されていないことを示す”０”が設定されている。
【００２９】
アプリケーションからの印刷開始時、アプリケーションからの印字要求はグラフィックエンジン２０２を介してプリンタドライバ２０３に伝えられる。図６は本実施形態においてグラフィックエンジン２０２からプリンタドライバ２０３に要求された印字命令の例を示している。同図に示すように、グラフィックエンジン２０２から渡された印字要求は印刷開始と印刷終了を判別可能であるものとし、本印字要求は印刷開始命令（ＳｔａｒｔＰｒｉｎｔ（））６０１で開始され、任意の個数の描画要求（Ｏｕｔｐｕｔ（））６０２を経た後、印刷終了命令（ＥｎｄＰｒｉｎｔ（））６０３で終了するものと仮定する。
【００３０】
図７は本実施形態におけるフローチャートを示す。アプリケーションＢからの印刷開始時（ステップＳ７０１）、プリンタドライバ２０３は描画要求を受け付ける（ステップＳ７０２）。本描画要求が印刷開始命令ならば（ステップＳ７０３）、ステップＳ７０５へ進む。印刷開始時は印刷開始命令６０１（ＳｔａｒｔＰｒｉｎｔ）を受け取り、ステップＳ７０５へ進む。
【００３１】
次にプリンタドライバ２０３は記憶領域３０３を読み出す（ステップＳ７０５）。この記憶領域３０３における参照位置はプリンタドライバ２０３のＩＤ５０１を判断することにより位置を識別することが可能である。このとき、記憶領域３０３は初期状態で図５に示すようになっている。プリンタドライバ２０３はアプリケーションＩＤが現在セットされていないため（領域５０２が”０”）、本印刷は通常のアプリケーションからの印刷、すなわち印刷可能アプリケーションではないと判断する（ステップＳ７０６）。
【００３２】
このとき、プリンタドライバ２０３は図８に示すようなユーザインターフェイスを表示する（ステップＳ７０９）。さらにグラフィックエンジン２０２を介してアプリケーションＢに印刷ができなかったことを通知する（ステップＳ７１１）。この通知の方法は通常グラフィックエンジン２０２を介してアプリケーションＢに通知が可能である。なお、本実施形態では図８に示すようなユーザインターフェイスを表示したが、本ユーザインターフェイスを表示せずにステップＳ７１１における印刷ができなかったことの通知のみとし、後の動作を一般アプリケーションＢに依存して処理させることも可能である。
【００３３】
次にアプリケーションＡからの印刷時、アプリケーションＡは印刷前に図９に示すように記憶領域３０３を書き換えるものとする。領域９０２には自分自身のＩＤを示す”アプリケーションＡ”、領域９０３にはアプリケーションＡがプリンタドライバ２０３からの出力を所得するファイル名”Ｃ：￥ｐｒｉｎｔ．ｘ”が入力されている。
【００３４】
その後、アプリケーションＡはグラフィックエンジン２０２を介してプリンタドライバ２０３に印刷を指示する。印刷開始時（ステップＳ７０１）、プリンタドライバ２０３は同様に描画要求を受け付ける（ステップＳ７０２）。
【００３５】
印刷開始命令６０１（ＳｔａｒｔＰｒｉｎｔ）を受け取ったプリンタドライバ２０３は記憶領域３０３を読み込む（ステップＳ７０５）。この時、記憶領域３０３は図９に示すようになっているため、プリンタドライバ２０３は領域９０２を参照し、これがアプリケーションＡ、すなわち印刷可能アプリケーションからの印刷だと判断することができる（ステップＳ７０６）。
【００３６】
次に、記憶領域３０３の領域９０３を参照し、プリンタドライバ２０３の出力先を決定する（ステップＳ７１０）。この読み込み終了後、プリンタドライバ２０３は記憶領域３０３を図５に示すような初期状態にリセットする。つまり、以後、このプリンタドライバ２０３に対する印刷要求は初期状態から開始されることになる。
【００３７】
次にグラフィックエンジン２０２より描画要求を逐次受け付ける（ステップＳ７０２）。次の描画要求は描画命令６０２（Ｏｕｔｐｕｔ）であり、印刷開始、印刷終了ではないので、ステップＳ７０６へ進み、描画命令をプリンタドライバ２０３で特定の制御コードに変換し、記憶領域３０３の領域９０２で示されるファイル名、”Ｃ：￥ｐｒｉｎｔ．ｘ”に出力する。本動作を以後続けられるすべての描画要求に対して行う。
【００３８】
最後に、ステップＳ７０２にて印刷終了命令６０３（ＥｎｄＰｒｉｎｔ）を受け取る。これを受け取ったプリンタドライバ２０３はステップＳ７０８にてアプリケーションＡに印刷終了を通知する。一般的に、この印刷終了通知はグラフィックエンジン２０２を介して行われることが可能である。アプリケーションＡは印刷終了通知をグラフィックエンジン２０２より所得後、記憶領域３０３の領域９０３で指定した出力ファイルを所得及び参照することが可能となる。
【００３９】
以上述べた実施形態からも明らかなように、本発明は、印刷開始時に印刷アプリケーションの認証を行い、プリンタドライバを適当に使用するアプリケーションと認証された場合のみ通常通り印刷を行い、また、プリンタドライバを使用するのに適当でないアプリケーションであれば、ユーザインターフェイス等のユーザ告知手段を用いて、ユーザ或いは印刷を指示したアプリケーションに対して印刷を開始しない等の情報を伝達するものである。
【００４０】
以上の構成により、プリンタドライバ（２０３）を使用する特定のアプリケーション（Ａ）に対して、所望の印刷データを提供することを可能とし、また、プリンタドライバ（２０３）からの印刷データを所得することに意味をもたないアプリケーションに対してはその旨を通知し、ユーザの混乱を軽減することが可能となる。
【００４１】
（第２の実施形態）
次に、第２の実施形態について説明する。以下、上記第１の実施形態との相違点を中心に説明する。図１０は、本実施形態におけるホストコンピュータである情報処理装置３０００上のＲＡＭ２にロードされて、実行可能状態になった典型的な印刷処理モジュールのシステム構成図である。アプリケーション１００１はＲＡＭ２にロードされて実行されるが、このアプリケーション１００１から不図示のネットワーク上のプリンタに対して印刷を行う際には、同様にＲＡＭ２にロードされて実行可能となっているグラフィックエンジン１００２を介して出力を行う。
【００４２】
グラフィックエンジン１００２はアプリケーション１００１の描画要求をプリンタドライバ１００３に伝達する。
【００４３】
プリンタドライバ１００３は伝達された描画命令を特定のプリンタが認識する制御コマンドに変換する。プリンタドライバ１００３は生成した制御コマンドを予めプリンタの位置を認識するシステムスプーラ１００４へと送信する。
【００４４】
その後システムスプーラ１００４を介してプリンタドライバ１００３が生成した制御コマンドはプリンタ機器へと送信され、実際の印刷が実行される。
【００４５】
本実施形態において、記憶領域３０３には図１１に示すような情報が保持されるものとする。１１０１はプリンタドライバを識別するＩＤを記憶する領域、１１０２はアプリケーションを識別するＩＤを識別する領域である。また、１１０３はプリンタに出力する用紙の物理サイズを示すＩＤを格納する領域である。本実施形態では出力用紙の物理サイズを示すＩＤを定義したが、これはプリンタ印刷設定等の印刷に関係する別の設定値であっても構わない。
【００４６】
図１２は本実施形態におけるフローチャートを示している。上記第１の実施形態と同様、印刷処理がアプリケーションＢ、アプリケーションＡの順で行われ、また、プリンタドライバ１００３はアプリケーションＡからの印刷設定のみ許可する。
【００４７】
アプリケーションＢからの印刷開始時（ステップＳ１２０１）、プリンタドライバ１００３は描画要求を受け付ける（ステップＳ１２０２）。本描画要求が印刷開始命令ならば（ステップＳ１２０３）、ステップＳ１２０５へ進む。印刷開始時は印刷開始命令６０１（ＳｔａｒｔＰｒｉｎｔ）を受け取るため、ステップＳ１２０５へ進む。
【００４８】
次にプリンタドライバ１００３は記憶領域３０３を読み出す（ステップＳ１２０５）。この記憶領域３０３における参照位置はプリンタドライバ１００３のＩＤ１１０１を判断することにより位置を識別することが可能である。このとき、記憶領域３０３は初期状態で図１３に示すようになっている。プリンタドライバ１００３はアプリケーションＩＤが現在セットされていないため（領域１３０２が”０”）、本印刷は通常のアプリケーションからの印刷、すなわち印刷可能アプリではないと判断する（ステップＳ１２０６）。
【００４９】
このとき、プリンタドライバ１００３は図８に示すようなユーザインターフェイスを表示する（ステップＳ１２０９）。さらにグラフィックエンジン１００２を介してアプリケーションＢに印刷ができなかったことを通知する（ステップＳ１２１１）。この通知の方法は通常グラフィックエンジン１００２を介してアプリケーションＢに通知が可能である。なお、本実施形態では図８に示すようなユーザインターフェイスを表示したが、本ユーザインターフェイスを表示せずにステップＳ１２１１における印刷ができなかったことの通知のみとし、後の動作をアプリケーションＢに処理させることも可能である。
【００５０】
次にアプリケーションＡからの印刷時、アプリケーションＡは印刷前に図１４に示すように記憶領域３０３を書き換えるものとする。領域１４０２には自分自身のＩＤを示す”アプリケーションＡ”、領域１４０３には出力する物理用紙サイズ”Ａ４”が入力される。
【００５１】
その後、アプリケーションＡはグラフィックエンジン１００２を介してプリンタドライバ１００３に印刷を指示する。印刷開始時（ステップＳ１２０１）、プリンタドライバ１００３は同様に描画要求を受け付ける（ステップＳ１２０２）。
【００５２】
印刷開始命令６０１（ＳｔａｒｔＰｒｉｎｔ）を受け取ったプリンタドライバ１００３は記憶領域３０３を読み込む（ステップＳ１２０５）。この時、記憶領域３０３は図１４に示すようになっているため、プリンタドライバ１００３は領域１４０２を参照し、これがアプリケーションＡ、すなわち印刷可能アプリケーションからの印刷だと判断することができる（ステップＳ１２０６）。
【００５３】
次に、記憶領域３０３の領域１４０３を参照し、印刷出力の出力用紙サイズを決定する（ステップＳ１２１０）。この読み込み終了後、プリンタドライバ１００３は記憶領域３０３を図１３に示すような初期状態にリセットする。つまり、以後、このプリンタドライバ１００３に対する印刷要求は初期状態から開始されることになる。
【００５４】
次にグラフィックエンジン１００２より描画要求を逐次受け付ける（ステップＳ１２０２）。次の描画要求は描画命令６０２（Ｏｕｔｐｕｔ）であるので、ステップＳ１２０３へ進み、描画命令をプリンタドライバ１００３で特定の制御コードに変換し、システムスプーラ１００４へと出力する（ステップＳ１２０７）。本動作を以後続けられるすべての描画要求に対して行う。
【００５５】
最後に、ステップＳ１２０４にて印刷終了命令６０３（ＥｎｄＰｒｉｎｔ）を受け取る。これを受け取ったプリンタドライバ１００３はステップＳ１２０８にてアプリケーションＡに印刷終了を通知する。一般的に、この印刷終了通知はグラフィックエンジン１００２を介して行われることが可能である。
【００５６】
また、本実施形態において、ステップＳ１２１０で所得した出力サイズはステップＳ１２０７の任意のタイミングでプリンタが認識する出力サイズ選択命令に変換し、システムスプーラ１００４に送信される。結果、プリンタでは出力サイズとして記憶領域３０３で記述された”Ａ４”用紙を選択し、印刷される。
【００５７】
以上の構成により、プリンタドライバ（１００３）を使用する特定のアプリケーション（Ａ）に対して、所望の印刷データを提供することを可能とし、また、プリンタドライバ（１００３）からの印刷データを所得することに意味をもたないアプリケーションに対してはその旨を通知し、ユーザの混乱を軽減することが可能となる。また、特定のアプリケーション（Ａ）のみ実際の印刷を許可することで、印刷の制御を行うことが可能となる。
【００５８】
（その他の実施の形態）
上述した実施の形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置或いはシステム内のコンピュータに対し、上記実施の形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ或いはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００５９】
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。そのプログラムコードの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネット等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体（光ファイバ等の有線回線や無線回線等）を用いることができる。
【００６０】
さらに、上記プログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００６１】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施の形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して上述の実施の形態の機能が実現される場合にもかかるプログラムコードは本発明の実施の形態に含まれることはいうまでもない。
【００６２】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合にも本発明に含まれることはいうまでもない。
【００６３】
なお、上記実施の形態において示した各部の形状及び構造は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００６４】
【発明の効果】
以上述べたように本発明によれば、アプリケーションプログラム毎に印刷可能なアプリケーションプログラムであるか否かを判定するようにしたので、例えばプリンタドライバが、ある特定のアプリケーションに特化したフォーマットの出力ファイルを作成するように設計されており、これらは通常のアプリケーションから印刷されることに全く意味をもたないような場合に、その意味をもたない印刷が行われるのを避けることができ、アプリケーションを操作するユーザの混乱を軽減させることができる。
【図面の簡単な説明】
【図１】情報処理装置３０００の構成を示すブロック図である。
【図２】第１の実施形態における情報処理装置３０００上で動作する印刷処理モジュールの構成図である。
【図３】情報処理装置３０００上で動作する印刷処理モジュール構成を詳細に示す図である。
【図４】第１の実施形態における記憶領域３０３の構造例を示す図である。
【図５】第１の実施形態における記憶領域３０３の初期状態を示す図である。
【図６】印刷描画命令の一例を示す図である。
【図７】第１の実施形態における処理を示すフローチャートである。
【図８】プリンタドライバ２０３が表示するユーザインターフェイスの一例を示す図である。
【図９】第１の実施形態におけるアプリケーションＡにより書き換えられた記憶領域３０３の状態を示す図である。
【図１０】第２の実施形態における情報処理装置３０００上で動作する印刷処理モジュールの構成図である。
【図１１】記憶領域３０３の構造例を示す図である。
【図１２】第２の実施形態における処理を示すフローチャートである。
【図１３】第２の実施形態における記憶領域３０３の初期状態を示す図である。
【図１４】第２の実施形態におけるアプリケーションＡにより書き換えられた記憶領域３０３の状態を示す図である。
【符号の説明】
３０００　　　情報処理装置
２０１、３０１、３０２、１００１　　　アプリケーション
２０３、１００３　　　プリンタドライバ
３０３　　　記憶領域
【図１】
2004078589.tif 000003
【図２】
2004078589.tif 000004
【図３】
2004078589.tif 000005
【図４】
2004078589.tif 000006
【図５】
2004078589.tif 000007
【図６】
2004078589.tif 000008
【図７】
2004078589.tif 000009
【図８】
2004078589.tif 000010
【図９】
2004078589.tif 000011
【図１０】
2004078589.tif 000012
【図１１】
2004078589.tif 000013
【図１２】
2004078589.tif 000014
【図１３】
2004078589.tif 000015
【図１４】
2004078589.tif 000016