(57)【要約】【課題】  印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させる機能を、ＯＳとの親和性が高く、不具合発生の危険が低い手法で実現できるようにする。【解決手段】  プリンタドライバの印刷設定部１３１が、ＯＳから印刷を実行することを通知された場合に、ユーザからその通知に係る印刷に関する設定を受け付けると共に、その受け付けた設定内容を、ジョブと対応する一意なＩＤと対応づけて印刷設定保持モジュール１４０に渡して保持させ、描画部１３２が、ＯＳから印刷を実行することを要求された場合に、その実行に係るジョブと対応する、印刷設定部１３１が生成したものと同じ一意なＩＤを生成し、そのＩＤと対応する設定内容を印刷設定保持モジュール１４０から取得し、その設定内容に従って印刷コマンド及び印刷データを生成するようにした。【選択図】        図１４
2010066876.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置を制御するためのドライバ手段を有する印刷制御装置であって、
前記ドライバ手段が、
前記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段と、
前記印刷装置に実行させるジョブと対応する一意なＩＤを生成する第１のＩＤ生成手段と、
所定の印刷設定保持モジュールに前記設定受付手段が受け付けた設定内容を渡し、前記第１のＩＤ生成手段が生成した一意なＩＤと対応づけて保持させる設定保持手段とを有する第１のモジュールと、
前記印刷装置に印刷を実行させるよう要求された場合に、該印刷に係るジョブと対応する、前記第１のＩＤ生成手段が生成したものと同じ一意なＩＤを生成する第２のＩＤ生成手段と、
前記印刷設定保持モジュールから前記第２のＩＤ生成手段が生成した一意なＩＤと対応づけて保持されている設定内容を取得する設定取得手段と、
前記設定取得手段が取得した設定内容に従って前記印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する印刷指示生成手段とを有する第２のモジュールと、
を備えるものであることを特徴とする印刷制御装置。
【請求項２】
請求項１に記載の印刷制御装置であって、
前記印刷設定保持モジュールを備え、
該印刷設定保持モジュールは、
前記設定保持手段から設定内容の保持を要求された場合に、前記第１のＩＤ生成手段が生成した一意なＩＤと対応づけて該設定内容を保持する手段と、
前記設定取得手段からＩＤを指定して設定内容の取得を要求された場合に、該設定取得手段に該要求に係るＩＤと対応させて保持している設定内容を渡す手段との機能を有し、
前記設定保持手段からの要求に応じて保持した設定内容を、前記設定取得手段に渡すか、当該印刷設定保持モジュールの終了を命令されるまで保持し続けることを特徴とする印刷制御装置。
【請求項３】
請求項２に記載の印刷制御装置であって、
前記印刷設定保持モジュールは、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、それぞれその要求に係るＩＤと対応づけて保持することを特徴とする印刷制御装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の印刷制御装置であって、
アプリケーションからの印刷指示に応じて、前記第１のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第２のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備え、
前記第１のＩＤ生成手段は、前記オペレーティングシステムが前記第１のモジュール及び前記第２のモジュールに対し前記印刷を実行させる通知及び前記印刷を実行させる要求を行う際に渡す情報のうち、前記第１のモジュール及び前記第２のモジュールの双方に共通して渡す情報に基づき、前記一意なＩＤを生成する手段であることを特徴とする印刷制御装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の印刷制御装置であって、
アプリケーションからの印刷指示に応じて、前記第１のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第２のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備え、
前記第２のＩＤ生成手段は、前記オペレーティングシステムが前記第２のモジュールに対し前記印刷を実行させる要求を行う際に渡す情報のうち、予め定められた特定の項目の情報に基づき、前記一意なＩＤを生成する手段であることを特徴とする印刷制御装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の印刷制御装置であって、
前記印刷指示生成手段は、前記第２のモジュールが前記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、前記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って前記印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する手段であることを特徴とする印刷制御装置。
【請求項７】
コンピュータを、印刷装置を制御するためのドライバ手段として機能させるためのプログラムであって、
前記ドライバ手段が、
前記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段と、
前記印刷装置に実行させるジョブと対応する一意なＩＤを生成する第１のＩＤ生成手段と、
所定の印刷設定保持モジュールに前記設定受付手段が受け付けた設定内容を渡し、前記第１のＩＤ生成手段が生成した一意なＩＤと対応づけて保持させる設定保持手段とを有する第１のモジュールと、
前記印刷装置に印刷を実行させるよう要求された場合に、該印刷に係るジョブと対応する、前記第１のＩＤ生成手段が生成したものと同じ一意なＩＤを生成する第２のＩＤ生成手段と、
前記印刷設定保持モジュールから前記第２のＩＤ生成手段が生成した一意なＩＤと対応づけて保持されている設定内容を取得する設定取得手段と、
前記設定取得手段が取得した設定内容に従って前記印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する印刷指示生成手段とを有する第２のモジュールと
を備えるものであることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムであって、
前記コンピュータを前記印刷設定保持モジュールとして機能させるためのプログラムも含み、
前記印刷設定保持モジュールは、
前記設定保持手段から設定内容の保持を要求された場合に、前記第１のＩＤ生成手段が生成した一意なＩＤと対応づけて該設定内容を保持する手段と、
前記設定取得手段からＩＤを指定して設定内容の取得を要求された場合に、該設定取得手段に該要求に係るＩＤと対応させて保持している設定内容を渡す手段との機能を有し、
前記設定保持手段からの要求に応じて保持した設定内容を、前記設定取得手段に渡すか、当該印刷設定保持モジュールの終了を命令されるまで保持し続けることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムであって、
前記印刷設定保持モジュールは、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、その要求に係るＩＤと対応づけて保持することを特徴とするプログラム。
【請求項１０】
請求項７乃至９のいずれか一項に記載のプログラムであって、
前記コンピュータは、アプリケーションからの印刷指示に応じて、前記第１のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第２のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものであり、
前記第１のＩＤ生成手段は、前記オペレーティングシステムが前記第１のモジュール及び前記第２のモジュールに対し前記印刷を実行させる通知及び前記印刷を実行させる要求を行う際に渡す情報のうち、前記第１のモジュール及び前記第２のモジュールの双方に共通して渡す情報に基づき、前記一意なＩＤを生成する手段であることを特徴とするプログラム。
【請求項１１】
請求項７乃至１０のいずれか一項に記載のプログラムであって、
前記コンピュータは、アプリケーションからの印刷指示に応じて、前記第１のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第２のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものであり、
前記第２のＩＤ生成手段は、前記オペレーティングシステムが前記第２のモジュールに対し前記印刷を実行させる要求を行う際に渡す情報のうち、予め定められた特定の項目の情報に基づき、前記一意なＩＤを生成する手段であることを特徴とするプログラム。
【請求項１２】
請求項７乃至１１のいずれか一項に記載のプログラムであって、
前記印刷指示生成手段は、前記第２のモジュールが前記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、前記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って前記印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する手段であることを特徴とするプログラム。
【請求項１３】
請求項７乃至１２のいずれか一項に記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１４】
印刷制御装置がドライバ手段により印刷装置を制御する印刷制御方法であって、
前記ドライバ手段が、第１のモジュールの機能により、
前記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手順と、
前記印刷装置に実行させるジョブと対応する一意なＩＤを生成する第１のＩＤ生成手順と、
所定の印刷設定保持モジュールに前記設定受付手順で受け付けた設定内容を渡し、前記第１のＩＤ生成手順で生成した一意なＩＤと対応づけて保持させる設定保持手順とを実行し、
第２のモジュールの機能により、
前記印刷装置に印刷を実行させるよう要求された場合に、該印刷に係るジョブと対応する、前記第１のＩＤ生成手順で生成したものと同じ一意なＩＤを生成する第２のＩＤ生成手順と、
前記印刷設定保持モジュールから前記第２のＩＤ生成手順で生成した一意なＩＤと対応づけて保持されている設定内容を取得する設定取得手順と、
前記設定取得手順で取得した設定内容に従って前記印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する印刷指示生成手順とを実行することを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、印刷装置を制御するためのドライバ手段を有する印刷制御装置、コンピュータを印刷装置を制御するためのドライバ手段として機能させるためのプログラム、このようなプログラムを記録したコンピュータ読み取り可能な記録媒体、印刷制御装置が印刷装置を制御する印刷制御方法に関する。
【背景技術】
【０００２】
近年、コンピュータによりプリンタ等の印刷装置を制御して印刷を行わせる場合、
オペレーティングシステム（ＯＳ）上でその印刷装置を制御するためのプリンタドライバプログラムを実行することにより、印刷装置を制御するプリンタドライバの機能を実現することが行われている。この場合、ユーザが、文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリケーションプログラム（以下単に「アプリ」という）を実行して、印刷装置に印刷をさせることを指示すると、アプリがその指示をプリンタドライバ（のプロセス）に渡し、プリンタドライバが指示に従って印刷装置の制御を行う。
【０００３】
この場合、ユーザが文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリで作成・閲覧した文書を印刷する指示を行うと、アプリは、指示に従って印刷すべき文書のデータをプリンタドライバに渡し、プリンタドライバがその文書のデータをプリンタが理解可能なプリンタ言語による印刷コマンドや印刷データに変換し、プリンタに渡して印刷を実行させる。
また、アプリが印刷指示を受け付ける際、集約、製本、拡大縮小、仕上げ処理等、プリンタが有する豊富な印刷機能に関する設定を受け付ける機能を提供し、ユーザが様々な設定を組み合わせることで、よりユーザの要望に適した印刷物を得ることを可能とする機能を搭載したプリンタドライバも提供されている。
【０００４】
このようなプリンタドライバが提供する機能の例として、特許文献１に記載のものが挙げられる。
特許文献１に記載のプリンタドライバは、コンピュータにインストールされる際、ワンクッション印刷フラグの設定を受け付ける。そして、ワンクッション印刷フラグがＯＮにされた状態で印刷命令を受けると、他のフラグの状況に応じて、印刷設定簡易確認画面を表示し、印刷設定の変更を受け付けることが記載されている。
【特許文献１】特開２００６−７９２４６号公報
【０００５】
また、特定のＯＳ上で動作させるプリンタドライバを設計する際には、ＯＳ側の機能を意識し、例えばＯＳのＤＤＩ（デバイスドライバインタフェース）を通じたコールに応じて適切な動作ができるように設計することが一般的である。
ＤＤＩを通じたコールがどのようなものであるかについては、例えば非特許文献１に記載されている。
【非特許文献１】“msdn Windows XP Service Pack1 Driver Development Kit”、[CD-ROM]、２００５年１月、Microsoft Corporation（特に”DrvDcomentEvent”の項参照）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ上で動作する従来の一般的なプリンタドライバは、ユーザが印刷の条件を設定した後、アプリに対して印刷の開始を指示すると、その時点での設定内容に従って印刷を実行するようになっており、印刷開始の指示後に印刷条件の設定を変更することはできなかった。
【０００７】
これは、ＯＳの機能上の制約によるものである。すなわち、プリンタドライバが、印刷開始の指示より後に発生するＤＤＩコールに応じて画面にダイアログを表示させ、ユーザからの設定変更操作を受け付けることは可能であるが、そこで受け付けた設定内容を、印刷コマンドや印刷データの生成動作に反映させる機能は、ＯＳからは提供されていなかった。
【０００８】
しかし、一方で、例えば印刷開始指示を受け付けた後、ユーザの権限を判定するためのＩＤとパスワードの入力を受け付け、これを印刷コマンドや印刷データの一部としてプリンタに送信できるようにしたいというように、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させたいという要求があった。
【０００９】
このような要求に対応するためには、ＯＳの機能とは別に、印刷開始指示より後に受け付けた設定の内容を印刷コマンドや印刷データの生成動作に反映させる機能を、プリンタドライバ独自の機能として用意することが考えられる。
例えば、印刷開始指示より後にユーザにより変更された設定内容を、一時ファイルに書き込んでおき、印刷コマンドや印刷データの生成動作を、ＯＳから渡される設定内容ではなく、その一時ファイルから読み出した設定内容に従って行うようにすることが考えられる。
【００１０】
しかし、この手法の場合、プリンタドライバが動作しているタイミングやユーザの権限レベルによっては、ファイルにデータを書き込めない場合があるという問題があった。さらに、複数のアプリにおいて近接したタイミングで印刷開始指示がなされた場合に、１つのアプリからの印刷開始指示に応じて受け付けた設定内容を一時ファイルに書き込んだ後、その設定内容を読み出して印刷コマンドや印刷データの生成に使用する前に、他のアプリからの印刷開始指示に応じて受け付けた設定内容が一時ファイルに書き込まれてしまい、一時ファイルに書き込んだ設定内容を正しく読み出せない場合があるという問題もあった。
【００１１】
また、プリンタドライバ独自の動作として、ファイルの読み書きのように、ＯＳの機能に依存する機能を作ってしまうと、ＯＳ側の予期せぬ動作やバージョンアップによる機能修正の影響を受け、この点からも不具合が発生する危険が高まってしまうという問題もあった。
【００１２】
これらの点につき、上記特許文献１においては、ワンクッション印刷フラグがＯＮの場合、印刷命令を受けた後に印刷設定簡易確認画面を表示し、印刷設定の変更を受け付けることは記載されているものの、この変更内容を印刷コマンドや印刷データの生成に反映させるための具体的な構成については、なんら記載されていない。もちろん、上記の問題を解決する具体的な構成についても、全く記載されていない。
【００１３】
この発明は、このような問題を解決し、印刷装置を制御して印刷を実行させる場合において、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させる機能を、ＯＳとの親和性が高く、不具合発生の危険が低い手法で実現できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するため、この発明は、印刷装置を制御するためのドライバ手段を有する印刷制御装置において、上記ドライバ手段を、上記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段と、上記印刷装置に実行させるジョブと対応する一意なＩＤを生成する第１のＩＤ生成手段と、所定の印刷設定保持モジュールに上記設定受付手段が受け付けた設定内容を渡し、上記第１のＩＤ生成手段が生成した一意なＩＤと対応づけて保持させる設定保持手段とを有する第１のモジュールと、上記印刷装置に印刷を実行させるよう要求された場合に、その印刷に係るジョブと対応する、上記第１のＩＤ生成手段が生成したものと同じ一意なＩＤを生成する第２のＩＤ生成手段と、上記印刷設定保持モジュールから上記第２のＩＤ生成手段が生成した一意なＩＤと対応づけて保持されている設定内容を取得する設定取得手段と、上記設定取得手段が取得した設定内容に従って上記印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する印刷指示生成手段とを有する第２のモジュールと、を備えるものとしたものである。
【００１５】
このような印刷制御装置において、上記印刷設定保持モジュールを設け、その印刷設定保持モジュールを、上記設定保持手段から設定内容の保持を要求された場合に、上記第１のＩＤ生成手段が生成した一意なＩＤと対応づけてその設定内容を保持する手段と、上記設定取得手段からＩＤを指定して設定内容の取得を要求された場合に、その設定取得手段にその要求に係るＩＤと対応させて保持している設定内容を渡す手段との機能を有し、上記設定保持手段からの要求に応じて保持した設定内容を、上記設定取得手段に渡すか、その印刷設定保持モジュールの終了を命令されるまで保持し続けるものとするとよい。
さらに、上記印刷設定保持モジュールを、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、それぞれその要求に係るＩＤと対応づけて保持するものとするとよい。
【００１６】
また、上記の各印刷制御装置において、アプリケーションからの印刷指示に応じて、上記第１のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第２のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを設け、上記第１のＩＤ生成手段を、上記オペレーティングシステムが上記第１のモジュール及び上記第２のモジュールに対し上記印刷を実行させる通知及び上記印刷を実行させる要求を行う際に渡す情報のうち、上記第１のモジュール及び上記第２のモジュールの双方に共通して渡す情報に基づき、上記一意なＩＤを生成する手段とするとよい。
【００１７】
さらに、アプリケーションからの印刷指示に応じて、上記第１のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第２のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを設け、上記第２のＩＤ生成手段を、上記オペレーティングシステムが上記第２のモジュールに対し上記印刷を実行させる要求を行う際に渡す情報のうち、予め定められた特定の項目の情報に基づき、上記一意なＩＤを生成する手段とするとよい。
【００１８】
さらにまた、上記印刷指示生成手段を、上記第２のモジュールが上記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、上記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って上記印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する手段とするとよい。
【００１９】
また、この発明のプログラムは、コンピュータを、印刷装置を制御するためのドライバ手段として機能させるためのプログラムにおいて、上記ドライバ手段を、上記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段と、上記印刷装置に実行させるジョブと対応する一意なＩＤを生成する第１のＩＤ生成手段と、所定の印刷設定保持モジュールに上記設定受付手段が受け付けた設定内容を渡し、上記第１のＩＤ生成手段が生成した一意なＩＤと対応づけて保持させる設定保持手段とを有する第１のモジュールと、上記印刷装置に印刷を実行させるよう要求された場合に、その印刷に係るジョブと対応する、上記第１のＩＤ生成手段が生成したものと同じ一意なＩＤを生成する第２のＩＤ生成手段と、上記印刷設定保持モジュールから上記第２のＩＤ生成手段が生成した一意なＩＤと対応づけて保持されている設定内容を取得する設定取得手段と、上記設定取得手段が取得した設定内容に従って上記印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する印刷指示生成手段とを有する第２のモジュールと、を備えるものとしたものである。
【００２０】
このようなプログラムにおいて、上記コンピュータを上記印刷設定保持モジュールとして機能させるためのプログラムも含め、上記印刷設定保持モジュールを、上記設定保持手段から設定内容の保持を要求された場合に、上記第１のＩＤ生成手段が生成した一意なＩＤと対応づけてその設定内容を保持する手段と、上記設定取得手段からＩＤを指定して設定内容の取得を要求された場合に、その設定取得手段にその要求に係るＩＤと対応させて保持している設定内容を渡す手段との機能を有し、上記設定保持手段からの要求に応じて保持した設定内容を、上記設定取得手段に渡すか、その印刷設定保持モジュールの終了を命令されるまで保持し続けるものとするとよい。
さらに、上記印刷設定保持モジュールを、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、その要求に係るＩＤと対応づけて保持するものとするとよい。
【００２１】
また、上記の各プログラムにおいて、上記コンピュータを、アプリケーションからの印刷指示に応じて、上記第１のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第２のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものとし、上記第１のＩＤ生成手段を、上記オペレーティングシステムが上記第１のモジュール及び上記第２のモジュールに対し上記印刷を実行させる通知及び上記印刷を実行させる要求を行う際に渡す情報のうち、上記第１のモジュール及び上記第２のモジュールの双方に共通して渡す情報に基づき、上記一意なＩＤを生成する手段とするとよい。
【００２２】
さらに、上記コンピュータを、アプリケーションからの印刷指示に応じて、上記第１のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第２のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものとし、上記第２のＩＤ生成手段を、上記オペレーティングシステムが上記第２のモジュールに対し上記印刷を実行させる要求を行う際に渡す情報のうち、予め定められた特定の項目の情報に基づき、上記一意なＩＤを生成する手段とするとよい。
【００２３】
さらにまた、上記印刷指示生成手段を、上記第２のモジュールが上記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、上記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って上記印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する手段とするとよい。
また、この発明の記録媒体は、上記のいずれかのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【００２４】
また、この発明の印刷制御方法は、印刷制御装置がドライバ手段により印刷装置を制御する印刷制御方法において、上記ドライバ手段が、第１のモジュールの機能により、上記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手順と、上記印刷装置に実行させるジョブと対応する一意なＩＤを生成する第１のＩＤ生成手順と、所定の印刷設定保持モジュールに上記設定受付手順で受け付けた設定内容を渡し、上記第１のＩＤ生成手順で生成した一意なＩＤと対応づけて保持させる設定保持手順とを実行し、第２のモジュールの機能により、上記印刷装置に印刷を実行させるよう要求された場合に、その印刷に係るジョブと対応する、上記第１のＩＤ生成手順で生成したものと同じ一意なＩＤを生成する第２のＩＤ生成手順と、上記印刷設定保持モジュールから上記第２のＩＤ生成手順で生成した一意なＩＤと対応づけて保持されている設定内容を取得する設定取得手順と、上記設定取得手順で取得した設定内容に従って上記印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び／又は印刷データを生成する印刷指示生成手順とを実行するようにしたものである。
【発明の効果】
【００２５】
以上のようなこの発明の印刷制御装置又は印刷制御方法によれば、印刷装置を制御して印刷を実行させる場合において、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させる機能を、ＯＳとの親和性が高く、不具合発生の危険が低い手法で実現できるようにすることができる。
また、この発明のプログラムによれば、コンピュータに印刷装置を制御するドライバ手段の機能を実現させ、上記の効果を得ることができる。この発明の記録媒体によれば、上記のプログラムを記憶していないコンピュータにそのプログラムを読み出させて実行させ、上記の効果を得ることができる。
【発明を実施するための最良の形態】
【００２６】
〔実施形態：図１乃至図１８〕
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず図１に、この発明の印刷制御装置の実施形態であるＰＣ（パーソナルコンピュータ）と、そのＰＣによる制御対象の印刷装置であるプリンタとを備えたプリントシステムの構成例を示す。
【００２７】
図１に示すように、このプリントシステムは、ＰＣ１０と、ＰＣ１０により制御される印刷装置であり、ＰＣ１０からの印刷コマンド及び印刷データに従って用紙に画像を形成（印刷）する印刷装置であるプリンタ２０とを、通信経路３０により接続して構成したシステムである。通信経路３０としては、ＬＡＮ（ローカルエリアネットワーク）、シリアルケーブル、パラレルケーブル、ＵＳＢ（Universal Serial Bus）規格、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１３９４規格を始め、有線、無線を問わず、任意の通信経路を採用可能である。
【００２８】
ここで、図２にＰＣ１０のハードウェア構成を示す。
この図に示すように、ＰＣ１０は、ＣＰＵ１１，ＲＯＭ１２，ＲＡＭ１３，通信インタフェース（Ｉ／Ｆ）１４，表示器１５，操作部１６，ＨＤＤ（ハードディスクドライブ）１７を備え、これらがシステムバス１８により接続された構成である。表示器１５は、例えば液晶ディスプレイ、操作部１６は、例えばマウスやキーボードである。もちろん、外部の表示器や操作部を用いてもよい。
これらのハードウェアは、ハードウェアとしては公知の構成でよい。
【００２９】
そして、ＰＣ１０においては、ＣＰＵ１１が実行するＯＳ上で、ＲＯＭ１２やＨＤＤ１７に記憶されているこの発明のプログラムの実施形態であるプリンタドライバプログラムを動作させることにより、プリンタ２０を制御するドライバ手段であるプリンタドライバの機能を実現することができる。
【００３０】
なお、ここでいうプリンタ２０の制御とは、ＰＣ１０とプリンタ２０との間で相互にデータを送受信しながら行うものだけでなく、印刷対象のデータに基づいてプリンタ２０に印刷動作を実行させるための処理全般を含む。例えば、アプリからＯＳを介して渡された印刷内容のデータをプリンタが解釈可能な言語に変換し、ＰＤＬ（Page Description Language）で記載された印刷データやＰＪＬ（Printer Job Language）で記載された印刷コマンドを生成する処理も含む。
【００３１】
また、プリンタ２０も、ハードウェアとしては、ＣＰＵ，ＲＯＭ，ＲＡＭ，通信Ｉ／Ｆ（インタフェース），操作パネル，プリントエンジン等を備えた公知のものでよい。そして、このプリンタ２０は、プリンタドライバからの印刷コマンドや印刷データに従い、そのコマンドやデータによって指定された設定で、プリントデータが示す内容の画像を印刷する機能を有する。また、プリンタ２０を、スキャン、ファクシミリ通信、文書蓄積等の機能を併せ持つＭＦＰ（デジタル複合機）として構成してもよい。
【００３２】
次に、図３に、図１に示したＰＣ１０の機能のうち、この実施形態の特徴に関連する部分の機能構成を示す。
図２に示すように、ＰＣ１０が有する、この実施形態の特徴に関連する機能としては、アプリケーション１１０，ＯＳ１２０，プリンタドライバ１３０，印刷設定保持モジュール１４０，通信Ｉ／Ｆ制御部１５０がある。
【００３３】
このうちアプリケーション１１０は、文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリにより実現される機能である。そして、アプリケーション１１０は、ユーザの操作に従って文書や画像等のデータを作成すると共に、ユーザの印刷指示に従ってＯＳ１２０に作成した文書や画像等のデータを渡し、印刷に必要な処理を実行させる機能を有する。また、この印刷指示に先立ち、ＯＳ１２０を介してプリンタドライバ１３０の機能を利用し、ユーザからの印刷設定の操作を受け付ける機能も有する。
【００３４】
ここで受け付ける設定内容には、用紙サイズ、原稿方向、解像度、カラー等、印刷する文書の内容を描画して印刷データを生成する際に使用する設定内容と、給紙トレイ、印刷部数、両面有無、ユーザのプリンタ利用権限認証用のＩＤ及びパスワード等、ＰＣ１０側での描画には使用しないが、プリンタ２０に送信してプリンタ２０の動作内容を指定するための設定内容とが含まれる。
【００３５】
なお、具体的にどのような項目について印刷設定の操作を受け付けるかについては、プリンタドライバ１３０が提供するＧＵＩ（グラフィカル・ユーザ・インタフェース）の内容に依存する。そして、ユーザや受付時の状況に応じて提供されるＧＵＩが異なり、これに応じて設定操作を受け付ける項目が異なる場合もある。
【００３６】
そして、アプリケーション１１０は、印刷の実行が指示された場合、印刷すべき文書の内容を、その指示時点でなされている印刷設定の内容（ユーザからの設定指示がない場合にはデフォルトの印刷設定の内容）と共にＯＳ１２０に渡し、プリンタ２０にその文書の内容をその設定内容に従って印刷させるよう、要求を行う。
【００３７】
また、ＯＳ１２０は、ＰＣ１０全体の入出力デバイスやハードウェア資源の管理を行う基本ソフトであり、図３に示した各機能は、ＣＰＵ１１がこのＯＳ１２０上でプログラムを動作させることにより実現される。
そして、ＯＳ１２０は、アプリケーション１１０から印刷の実行を要求された場合、その印刷を実行すべき印刷ジョブとして管理し、プリンタドライバ１３０の機能を利用してそのジョブを実行すべく、プリンタドライバ１３０に対して種々の通知や要求を行い、プリンタ２０を制御して印刷を実行させるために必要な動作を行わせる。また、ＯＳ１２０は、アプリケーション１１０から印刷設定操作の受付を要求された場合には、プリンタドライバ１３０にその操作受付の機能を提供させるべく、プリンタドライバ１３０に対して必要な要求を行う。ＯＳ１２０からプリンタドライバ１３０へのこれらの通知や要求は、ＤＤＩコールとして行うことができる。
【００３８】
プリンタドライバ１３０は、上述のプリンタドライバプログラムにより実現される機能であり、大別して、印刷設定部１３１と描画部１３２を有する。
このうち、印刷設定部１３１は、第１のモジュールであり、ディスプレイにＧＵＩを表示させ、プリンタ２０に印刷を実行させる際に使用する印刷設定を受け付ける機能を有する。ＵＩ（ユーザインタフェース）制御部１３３が、このＧＵＩの動作を制御する機能を有する。なお、印刷設定の受付は、アプリケーション１１０における印刷開始指示の前にＯＳ１２０を介してアプリケーション１１０から要求された場合に行うものと、アプリケーション１１０が印刷開始指示を受け付けてＯＳ１２０に印刷の実行を要求した後、ＯＳがその印刷の実行制御の一環として印刷設定部１３１に対して行う通知に応じて行うものとの、少なくとも２種類がある。
【００３９】
また、印刷設定部１３１は、後者のタイミングで印刷設定を受け付けた場合、その設定内容を描画部１３２における印刷コマンドや印刷データの生成に反映させるため、描画部１３２がその設定内容を取得できるよう、一意なＩＤを生成し、そのＩＤと対応づけて設定内容を印刷設定保持モジュール１４０に保持させる機能も有する。
【００４０】
描画部１３２は、第２のモジュールであり、アプリケーション１１０からＯＳ１２０を介して渡された印刷内容のデータをプリンタ２０が解釈可能な言語に変換し、プリンタ２０に、ＯＳ１２０から渡された印刷内容に係る印刷を実行させるための印刷コマンドや印刷データを生成する機能を有する。
また、ＯＳ１２０から描画部１３２には、印刷コマンドや印刷データの生成に用いる印刷設定の情報も渡される。そして、従来であれば、描画部１３２はこの印刷設定に従って印刷コマンドや印刷データの生成を行っていた。
【００４１】
しかしここでは、描画部１３２は、印刷設定保持モジュール１４０に要求して印刷設定部１３１が保持させた設定内容を取得し、ＯＳ１２０から受け取った印刷設定を、印刷設定保持モジュールから取得した設定内容により更新して、更新後の印刷設定に従って印刷コマンドや印刷データの生成を行う。ただし、印刷設定保持モジュール１４０から設定内容が取得できない場合には、ＯＳ１２０から受け取った印刷設定にそのまま従って印刷コマンドや印刷データの生成を行ってもよい。
【００４２】
印刷設定保持モジュール１４０は、アプリケーション１１０が印刷開始指示を受け付けてＯＳ１２０に印刷の実行を要求した後で印刷設定部１３１が受け付ける印刷設定の設定内容を保持する機能を有する。そして、通信部１４１と設定保持部１４２とを有する。
このうち通信部１４１は、プリンタドライバ１３０の印刷設定部１３１及び描画部１３２のプロセスとそれぞれプロセス間通信を行う機能を有する。また、設定保持部１４２は、印刷設定部１３１からの要求に応じて、印刷設定部１３１が生成したＩＤと対応づけて印刷設定部１３１から渡される設定内容のデータを保持する機能と、描画部１３２からの要求に応じて、描画部１３２により指定されたＩＤと対応づけて保持している設定内容を描画部１３２に渡す機能とを有する。
【００４３】
なお、この印刷設定保持モジュール１４０は、必要に応じてプリンタドライバ１３０により起動され、必要がなくなるとプリンタドライバ１３０により終了される。また、設定保持部１４２が一旦保持した設定内容は、描画部１３２に渡すか、印刷設定保持モジュール１４０が終了されるまで保持したままにしておく。
【００４４】
通信Ｉ／Ｆ制御部１５０は、図２に示した通信Ｉ／Ｆ１４を制御する機能を有し、描画部１３２から渡される印刷コマンドや印刷データを、指定されたプリンタ２０に送信する機能を有する。
以上の各部の機能のうち、特徴的な部分は、プリンタドライバ１３０及び印刷設定保持モジュール１４０の機能である。
【００４５】
プリンタドライバ１３０においては、ＯＳ１２０との親和性を保つため、ＯＳ１２０からのＤＤＩコールに対しては、ＯＳ１２０が想定する反応を返せるように設計している。そして、このような設計をする場合、印刷設定部１３１が受け付けた印刷設定の内容を描画部１３２に直接渡して印刷コマンドや印刷データの生成処理に反映させることができない。ＯＳ１２０側が、印刷設定部１３１と描画部１３２とが通信することを想定した設計になっていないためである。
また、ＯＳ１２０には、印刷設定部１３１から設定内容を受け取り、これをアプリケーション１１０を介さずに描画部１３２における印刷コマンドや印刷データの生成処理に反映させる機能も用意されていない。
【００４６】
このような環境においては、アプリケーション１１０がＯＳに印刷の実行を要求した後で、アプリケーション１１０の関与なしにアプリケーション１１０が指示した印刷設定の内容を変更することは通常はできない。しかし、ＰＣ１０においては、印刷設定保持モジュール１４０を設け、アプリケーション１１０がＯＳ１２０に印刷の実行を要求した後で印刷設定部１３１が受け付ける印刷設定の設定内容を保持させ、描画部１３２がこの印刷設定を取得できるようにしたため、プリンタドライバ１３０とＯＳ１２０との親和性を維持しつつ、アプリケーション１１０がＯＳに印刷の実行を要求した後でも、アプリケーション１１０の関与なしにアプリケーション１１０が指示した印刷設定の内容を変更することができる。
【００４７】
以下、この点について、各部の動作の詳細と合わせてさらに説明する。
まず、図４に、プリンタドライバプログラムのインストール／アンインストール時のモジュールライフサイクルを示す。
この図に示すように、図３のプリンタドライバ１３０の機能を実現するためのプリンタドライバプログラムは、手動又は自動で所要のインストールプログラムをＯＳ１２０上で実行することにより、ＰＣ１０のＨＤＤ１７にインストールできる。そしてこのとき、インストール手順の一環として、図３の印刷設定保持モジュール１４０の機能を実現するためのプログラムも、ＰＣ１０のＨＤＤ１７にインストールされる。
【００４８】
すなわち、プリンタドライバ１３０及び印刷設定保持モジュール１４０の機能を実現するためのプログラムは、１つのインストーラに同梱された状態で記録媒体に記録したりダウンロード可能な状態に置いたりして頒布することができる。
また、アンインストールの際には、手動又は自動で所要のアンインストールプログラムをＯＳ１２０上で実行することにより、ＰＣ１０のＨＤＤ１７にインストールされたプリンタドライバプログラムを削除することができる。そしてこのとき、アンインストール手順の一環として、印刷設定保持モジュール１４０の機能を実現するためのプログラムも、ＨＤＤ１７からアンインストールされる。
【００４９】
次に、図５に、アプリケーション１１０がＯＳ１２０に印刷の実行を要求する前に印刷設定の操作を受け付ける場合の各部の動作シーケンスを示す。
アプリケーション１１０は、ユーザから印刷設定用ＧＵＩを開くことを要求されると、図５に示すように、ＯＳ１２０に対して印刷設定受付要求を行う（Ｓ１０１）。また、アプリケーション１１０は、印刷に使用する印刷設定の内容をＤＥＶＭＯＤＥと呼ばれるデータ構造体として保持するが、最初に印刷設定を受け付ける際には、図示しない処理により印刷設定部１３１に設定可能な項目及びその初期値を問い合わせ、その情報に基づいてデフォルトの設定内容を示すＤＥＶＭＯＤＥを作成し、印刷設定受付要求と共にＯＳ１２０に渡す。また、２度目以降に印刷設定を受け付ける場合には、印刷設定受付要求の送信時点での設定内容を示すＤＥＶＭＯＤＥをＯＳ１２０に渡す。
【００５０】
一方、ＯＳ１２０は、アプリケーション１１０から印刷設定受付要求を受けると、プリンタドライバ１３０の印刷設定部１３１に対し、設定受付要求を行うと共に、アプリケーション１１０から受け取ったＤＥＶＭＯＤＥを渡す（Ｓ１０２）。
そして、印刷設定部１３１は、この設定受付要求を受けると、印刷設定受付のためのＧＵＩをＰＣ１０のディスプレイに表示させ、ユーザからの設定操作を受け付ける（Ｓ１０３）。
【００５１】
図６に、このステップＳ１０３で使用するＧＵＩの例を示す。
この図に示す印刷設定画面２００は、４つの操作部２０１〜２０４により、給紙トレイ、用紙サイズ、原稿方向及び印刷部数の各項目について、印刷設定を受け付けるための画面である。そして、ＯＫボタン２０５の押下により、設定の入力を確定させ、キャンセルボタン２０６の押下により、印刷設定を変更せずに設定操作を終了することができる。
【００５２】
受け付ける設定項目については一例であり、もちろん、さらに広範な項目についての設定を受け付けることも考えられる。また、ステップＳ１０２でＯＳ１２０から受け取ったＤＥＶＭＯＤＥが示す設定内容を、この印刷設定画面２００を表示する際の各項目の初期値とする。ただし、ＤＥＶＭＯＤＥにより規定される全ての設定項目について設定を受け付ける必要はない。
【００５３】
図５の説明に戻ると、ユーザが印刷設定画面２００においてＯＫボタン２０５を押下した場合、印刷設定部１３１は、印刷設定画面２００において受け付けた設定内容をＤＥＶＭＯＤＥに保存する（ステップＳ１０２で受け取ったＤＥＶＭＯＤＥから変更されていない部分は元のままとする）（Ｓ１０４）。
【００５４】
その後、印刷設定部１３１は、印刷設定受付要求に対する応答と共に、ステップＳ１０４で保存したＤＥＶＭＯＤＥをＯＳ１２０に返す（Ｓ１０５）。そして、ＯＳ１２０は、印刷設定受付要求に対する応答と共に、そのＤＥＶＭＯＤＥをアプリケーション１１０に返す（Ｓ１０６）。
【００５５】
そして、アプリケーション１１０がそのＤＥＶＭＯＤＥを、現在の印刷設定の内容を表す値として保持し（Ｓ１０７）、印刷設定の受付に関する処理を終了する。
なお、ステップＳ１０３でキャンセルボタン２０６が押下された場合には、ステップＳ１０４をスキップしてステップＳ１０５に進む。この場合、アプリケーション１１０が持つＤＥＶＭＯＤＥの値は更新されない。
以上の処理により、アプリケーション１１０は、印刷設定部１３１が提供するＧＵＩを利用して、ユーザから印刷に使用する印刷設定を受け付けることができる。
【００５６】
次に、図７乃至図９に、アプリケーション１１０がＯＳ１２０に印刷の実行を要求する場合の各部の動作シーケンスを示す。なお、説明を簡単にするため、まずアプリケーション１１０からＯＳ１２０への印刷開始要求が１つしかない単純な動作例を示す。印刷開始要求が複数ある場合の動作については、後述する。
アプリケーション１１０は、ユーザ又は他のアプリやＯＳ１２０等から印刷の実行を指示されると、図７に示すように、ＯＳ１２０に対して印刷開始要求を行う（Ｓ１１１）。また、この印刷開始要求と共に、実行指示時点の印刷設定の内容を示すＤＥＶＭＯＤＥも渡す。
【００５７】
一方、ＯＳ１２０は、この印刷開始要求を受け取ると、プリンタドライバ１３０の印刷設定部１３１及び描画部１３２に対し、印刷準備前通知（Ｓ１１２）及び印刷準備要求（Ｓ１１７）を順次行い、これらの通知及び要求に応じた動作を行わせることにより、プリンタドライバ１３０を、アプリケーション１１０から要求された印刷、すなわち印刷コマンドや印刷データを生成してプリンタ２０に送信する動作の準備をさせる。
【００５８】
この準備の完了後、アプリケーション１１０は、図８に示すように、ＯＳ１２０に対して印刷実行要求を行う（Ｓ１３１）。そして、この要求に応じて、ＯＳ１２０がプリンタドライバ１３０の印刷設定部１３１及び描画部１３２に対し、文書印刷開始前通知（図８のＳ１３２）及び文書印刷開始要求（図９のＳ１５１）を順次行い、これらの通知及び要求に応じた動作を行わせることにより、プリンタドライバ１３０に、アプリケーション１１０から要求された印刷に必要な、印刷コマンドの生成及びプリンタ２０への送信を行わせる。
【００５９】
ここで、ＯＳ１２０は、印刷設定部１３１及び描画部１３２に対して行う上記の４つの通知及び要求を、全てＤＤＩにおいて定義されている関数のコールとして行う。２つの「通知」については、動作の要求というよりは状態の通知が主な機能であるので「通知」の語を用いたが、４つとも全て「要求」と呼んでも差し支えない。
【００６０】
以下、これらの通知及び要求に応じて印刷設定部１３１及び描画部１３２が行う動作について順次説明する。
図７に示すように、印刷開始要求を受け取ったＯＳ１２０が最初に行うのは、印刷設定部１３１に対する印刷準備前通知の送信である（Ｓ１１２）。この印刷準備前通知は、描画部１３２に印刷準備要求を行うことを予め印刷設定部１３１に通知し、印刷準備要求の前に行っておくべき動作があれば通知の時点でこれを行うことができるようにするためのものである。そして、この印刷準備前通知は、ＯＳ１２０により、Windows（登録商標）2000/XP/Server2003/Vista/Server2008におけるＤＤＩであるDrvDocumentEvent()関数が、「DOCUMENTEVENT_CREATEDCPRE」が指定されコールされることに相当する。また、ＯＳ１２０は、この印刷準備前通知と共に、印刷に使用する予定の、アプリケーション１１０から受け取ったＤＥＶＭＯＤＥも印刷設定部１３１に渡す。
【００６１】
そして、印刷設定部１３１は、この印刷準備前通知があると、受け取ったＤＥＶＭＯＤＥに、設定ＩＤ作成用の共有キーとしてタイマ情報を追加する（Ｓ１１３）と共に、その追加後のＤＥＶＭＯＤＥを後で参照できるように保持する（Ｓ１１４）。
ここで、タイマ情報として、例えば、GetTickCount()というＡＰＩで取得できる、システムが起動してからのタイマの計測時間を用いることができる。ただし、共有キーとしては、他のＤＥＶＭＯＤＥと内容が重複しないような情報であれば、他の情報を用いてもよく、印刷設定部１３１がオリジナルのＩＤを作成することも考えられる。
【００６２】
また、図１０に示すように、ＤＥＶＭＯＤＥには、ＯＳで定義されているパブリック領域と、各プリンタドライバのベンダが任意に定義可能なプライベート領域という領域がある。そして、プライベート領域には、プリンタドライバのベンダが任意に設定項目を設けることができるため、このプライベート領域に、共有キーを書き込むための設定項目を用意しておけばよい。
【００６３】
図７の説明に戻ると、ステップＳ１１４の後、印刷設定部１３１は印刷準備前通知に対する応答と共に、共有キーを追加したＤＥＶＭＯＤＥをＯＳ１２０に返し（Ｓ１１５）、印刷準備前通知に応じた処理を終了する。
また、ＯＳ１２０は、この応答を受けると、印刷設定部１３１に渡したＤＥＶＭＯＤＥに代えて、ステップＳ１１５で受け取ったＤＥＶＭＯＤＥを保持する（Ｓ１１６）。
【００６４】
次に、ＯＳ１２０は、描画部１３２に対して印刷準備要求を送信する（Ｓ１１７）。この印刷準備要求は、描画部１３２に特定のＤＥＶＭＯＤＥの値に従った印刷コマンドや印刷データの生成を準備させるためのものである。そして、この印刷準備要求は、ＯＳ１２０により、Windows（登録商標）2000/XP/Server2003/Vista/Server2008におけるＤＤＩであるDrvEnablePDEV()関数がコールされることに相当する。また、ＯＳ１２０は、この印刷準備要求と共に、印刷に使用する予定のＤＥＶＭＯＤＥ（ここでは、アプリケーション１１０から受け取ったＤＥＶＭＯＤＥに共有キーが追加されたもの）を描画部１３２に渡す。
【００６５】
そして、描画部１３２は、この印刷準備要求があると、渡されたＤＥＶＭＯＤＥを保持し、そのＤＥＶＭＯＤＥが示す設定内容に従った印刷コマンドの生成処理を準備する（Ｓ１１８）。また、後でジョブと対応する一意の設定ＩＤを生成するためのキー情報として用いるべく、印刷準備要求の引数として渡されたプリンタハンドルを、ＤＥＶＭＯＤＥと対応づけて保持する（Ｓ１１９）。その後、描画部１３２は印刷準備要求に対する応答をＯＳ１２０に返し（Ｓ１２０）、印刷準備要求に応じた処理を終了する。なお、ＯＳ１２０が提供するＤＤＩの機能では、これ以降、ジョブの実行に使用する印刷設定の内容を変更することはできない。
【００６６】
ＯＳ１２０は、この応答を受けると、印刷開始要求に対する応答を、以後その印刷開始要求と対応する印刷実行要求を行う際に指定すべき識別情報（ハンドル：プリンタハンドルとは異なる）と共に、アプリケーション１１０に送信（Ｓ１２１）し、印刷開始要求に応じた処理を終了する。
【００６７】
一方、アプリケーション１１０は、ステップＳ１２１での応答の受信により、実行しようとしている印刷の準備が完了したことがわかる。そこで次に、図９に示すように、ＯＳ１２０に対して印刷実行要求を行う（Ｓ１３１）。このとき、ステップＳ１２１で受信した識別情報を印刷実行要求に付す。
【００６８】
ＯＳ１２０は、この印刷実行要求を受けると、付された識別情報により、その印刷実行要求が、図７のステップＳ１１１で受けた印刷開始要求と対応する印刷実行要求であると認識できる。そしてまず、印刷設定部１３１に対して、ステップＳ１１１の印刷実行要求に応じて行った印刷準備前通知と対応する文書印刷開始前通知を送信する（Ｓ１３２）。この文書印刷開始前通知は、描画部１３２に文書印刷開始要求を行うことを予め印刷設定部１３１に通知し、文書印刷開始要求（に応じた印刷データの生成開始及びプリンタ２０における印刷実行）の前に行っておくべき動作があれば通知の時点でこれを行うことができるようにするためのものである。そして、この文書印刷開始前通知は、ＯＳ１２０により、Windows（登録商標）2000/XP/Server2003/Vista/Server2008におけるＤＤＩであるDrvDocumentEvent()関数が、「DOCUMENTEVENT_STARTDOCPRE」が指定されコールされることに相当する。
【００６９】
なお、ここでは印刷準備要求は１回のみであり、印刷設定部１３１に印刷準備前通知は一度しかなされていないが、後述のように、複数回の印刷準備要求がなされている場合もある。ＯＳ１２０は、このような場合でも、印刷実行要求に付された識別情報に基づき、印刷実行要求、印刷開始要求及び印刷準備前通知の対応関係を把握し、印刷準備前通知に応じて印刷設定部１３１に保持させたＤＥＶＭＯＤＥを用いた印刷に関する文書印刷開始前通知を適切に行う機能を有する。
従って、アプリケーション１１０が印刷実行要求に付す識別情報は、実質的には、印刷に使用するＤＥＶＭＯＤＥを指定する情報として機能する。
【００７０】
一方、印刷設定部１３１は、ステップＳ１３２の文書印刷開始前通知があると、印刷設定の変更指示を受け付けるためのＧＵＩをＰＣ１０のディスプレイに表示させ、ユーザからの設定変更操作を受け付ける（Ｓ１３３）。この処理は、設定受付手段の機能と対応する処理である。
【００７１】
そして、ここで受け付ける設定変更は、図５のステップＳ１０３で受け付けた項目の全部あるいは一部であってもよいが、ステップＳ１０３では受け付けていない追加的な設定項目であってもよい。これらの両方を含んでいてもよい。また、印刷に使用する旨指定されたＤＥＶＭＯＤＥに含まれている項目であっても、まだ含まれていない追加的な項目であってもよい。ＤＥＶＭＯＤＥに含まれている項目について設定を受け付ける場合には、ＤＥＶＭＯＤＥにおける値を、初期値としてＧＵＩに表示させるとよい。
【００７２】
図１２に、ステップＳ１２１で使用するＧＵＩの例を示す。
この図に示す印刷設定画面２１０は、２つの入力部２１１，２１２でプリンタ２０においてユーザの利用権限把握のための認証に使用するユーザＩＤ及びパスワードの設定を受け付けるための画面である。そして、ＯＫボタン２１３の押下により、設定の入力を確定させ、キャンセルボタン２１４の押下により、印刷設定を変更せずに設定操作を終了することができる。
この印刷設定画面２１０で受け付ける設定内容は、図５のステップＳ１０３では受け付けていない設定内容である。
【００７３】
図９の説明に戻ると、ユーザが印刷設定画面２１０においてＯＫボタン２１３を押下した場合、印刷設定部１３１は、その受け付けた設定内容を印刷設定保持モジュール１４０に保持させるべく、まず、印刷に使用予定のＤＥＶＭＯＤＥに書き込まれている共有キーと、文書印刷開始前通知の引数として渡された情報のうちキー情報として用いるプリンタハンドルとから、印刷実行要求により実行を指示されたジョブと対応する一意の設定ＩＤを生成する（Ｓ１３４）。
【００７４】
ここで、図１２にステップＳ１３４で行う設定ＩＤの生成処理のフローチャートを示す。
この図に示すように、設定ＩＤを生成する場合、印刷設定部１３１（として機能するＣＰＵ１１）はまず、印刷準備前通知と共に渡され、図７のステップＳ１１４で保持したＤＥＶＭＯＤＥであって、文書印刷開始前通知にて実行予定を通知されたジョブに使用するものから、設定ＩＤ生成の共有キーとして使用する所定項目の情報（ここではタイマ情報）を取得する（Ｓ１１）。その後、ＯＳ１２０から渡された印刷準備前通知の引数であって設定ＩＤ作成のキー情報として使用するプリンタハンドルの値を取得する（Ｓ１２）。
【００７５】
そしてその後、ここまでに取得した共有キー及びプリンタハンドルを所定のアルゴリズムに従って処理して設定ＩＤを生成し（Ｓ１３）、処理を終了する。ここで使用するアルゴリズムは、単に２つのデータをマージするような単純なものでもよいし、元のデータがわからないようにハッシュ処理等を行ってもよい。ただし、ジョブに対する一意性は失わないアルゴリズムを用いる。
【００７６】
このような処理により設定ＩＤを生成すると、ジョブ毎に異なる共有キー及びキー情報を用いて、ジョブと対応する一意な設定ＩＤを生成することができる。ここでは、共有キーとして、ＤＥＶＭＯＤＥが印刷設定部１３１に渡された時刻を使用しているため、この情報のみで、概ね一意性を確保できる。そしてさらに、キー情報として、印刷を要求するアプリケーションに応じて異なる値を取るプリンタハンドルを用いているため、同時刻に異なるアプリケーションから印刷の要求があった場合でも、設定ＩＤをジョブ毎に異なるものとし、設定ＩＤの一意性を確保できる。
【００７７】
また、設定ＩＤの素にする共有キー及びキー情報は後述のように描画部１３２においても同じ値を取得できるため、印刷設定部１３１と描画部１３２とが通信しなくても、印刷設定部１３１と描画部１３２の双方において、同じジョブに対しては同じ設定ＩＤを生成することができる。
以上の設定ＩＤ生成処理において、ＣＰＵ１１は第１のＩＤ生成手段として機能する。
【００７８】
図８の説明に戻ると、ステップＳ１３４の後、印刷設定部１３１は、ステップＳ１３３で受け付けた設定内容を保持させるべく、印刷設定保持モジュール１４０を起動する（Ｓ１１５）。そして、起動が完了すると、印刷設定保持モジュール１４０がその旨を通知してくるので（Ｓ１３６）、次の処理に進む。なお、ステップＳ１３５の時点で印刷設定保持モジュール１４０が既に起動されている場合には、そのことを確認するだけでよい。
【００７９】
次に、印刷設定部１３１は、印刷設定保持モジュール１４０に対し、印刷設定保持要求を行い、ステップＳ１３４で生成した設定ＩＤと、ステップＳ１３３で受け付けた設定内容のデータとを渡す（Ｓ１２２）。この処理は、設定保持手段の機能と対応する処理である。
印刷設定保持モジュール１４０は、この印刷設定保持要求に応じて必要なメモリ領域を確保し、受け取った設定ＩＤと設定内容とを対応させて保持して（Ｓ１３８）、印刷設定保持要求に対する応答を返す（Ｓ１３９）。
【００８０】
そして、印刷設定部１３１は、この応答を受け取ると、文書印刷開始前通知に対する応答をＯＳ１２０に返し（Ｓ１４０）、文書印刷開始前通知に応じた処理を終了する。
なお、印刷設定画面２１０においてキャンセルボタン２１４が押下された場合には、印刷設定部１３１は、ステップＳ１３４乃至Ｓ１３９の処理をスキップしてステップＳ１４０の応答を行う。
【００８１】
いずれの場合も、ＯＳ１２０は、Ｓ１４０の応答を受けると、次に描画部１３２に対して文書印刷開始要求を送信する（図９のＳ１５１）。この文書印刷開始要求は、描画部１３２に、既に準備させてある印刷コマンドや印刷データの生成を実行させてプリンタ２０に送信させ、印刷の実行を指示させるためのものである。そして、この文書印刷開始要求は、ＯＳ１２０により、Windows（登録商標）2000/XP/Server2003/Vista/Server2008におけるＤＤＩであるDrvStartDoc()関数がコールされることに相当する。
【００８２】
またこのとき、ＯＳ１２０は、文書印刷開始前通知の場合と同様、印刷実行要求に付された識別情報に基づき、印刷実行要求、印刷開始要求及び印刷準備要求の対応関係を把握し、印刷準備要求に応じて描画部１３２に保持させたＤＥＶＭＯＤＥを用いた印刷に関する文書印刷要求を適切に行う機能を有する。
【００８３】
そして、描画部１３２は、この文書印刷開始要求があると、印刷に使用する旨指定されたＤＥＶＭＯＤＥに書き込まれている共有キーと、図７のステップＳ１１９でそのＤＥＶＭＯＤＥと対応づけて保持したキー情報であるプリンタハンドルとから、文書印刷開始要求により実行を指示されたジョブと対応する一意の設定ＩＤを生成する（Ｓ１５２）。
【００８４】
ここで、図１３にステップＳ１５２で行う設定ＩＤの生成処理のフローチャートを示す。
この図に示すように、設定ＩＤを生成する場合、描画部１３２（として機能するＣＰＵ１１）はまず、印刷準備要求と共に渡され、図７のステップＳ１１８で保持したＤＥＶＭＯＤＥであって、文書印刷開始要求にて印刷に使用する旨が指定されたものから、設定ＩＤ生成の共有キーとする所定項目の情報を取得する（Ｓ２１）。その後、図７のステップＳ１１９でそのＤＥＶＭＯＤＥと対応づけてキー情報として保持したプリンタハンドルの値を取得する（Ｓ２２）。そしてその後、ここまでに取得した共有キー及びプリンタハンドルを図１１のステップＳ１３の場合と同じ所定のアルゴリズムに従って処理して設定ＩＤを生成し（Ｓ２３）、処理を終了する。以上の設定ＩＤ生成処理において、ＣＰＵ１１は第２のＩＤ生成手段として機能する。
【００８５】
そして、以上の処理により、同じジョブの実行に係る処理中に設定ＩＤを作成するのであれば、図１２に示した処理の場合と同じ設定ＩＤが作成される。
すなわち、まず、同じジョブに関する文書印刷開始前通知と印刷準備要求とでは、ＯＳ１２０が同じプリンタハンドルの値を引数とすることがＯＳ１２０の規格において保証されているため、図１３に示す処理においてステップＳ２２で取得するプリンタハンドルの値は、図１２のステップＳ１２で取得するプリンタハンドルの値と同じ値となる。また、同じジョブの実行に使用するＤＥＶＭＯＤＥとしては、印刷設定部１３１にも、描画部１３２にも、同じ値のものが通知されるため、ステップＳ２１で取得する共有キーの値は、図１２のステップＳ１１で取得する共有キーの値と同じ値となる。
【００８６】
そして、これらの同じプリンタハンドルと共有キーとを同じアルゴリズムに従って処理して設定ＩＤを生成するため、得られる設定ＩＤも当然同じ値となる。
逆に、ジョブが異なる場合、プリンタハンドルの値やＤＥＶＭＯＤＥが異なるため、得られる設定ＩＤの値も異なることになる。
【００８７】
図９の説明に戻る。
描画部１３２は、ステップＳ１５２で設定ＩＤを生成した後、印刷設定保持モジュール１４０がその設定ＩＤと対応させて保持している設定内容を取得するべく、印刷設定保持モジュール１４０に対し、印刷設定取得要求を行い、ステップＳ１５２で生成した設定ＩＤを渡す（Ｓ１５３）。
【００８８】
これに対し、印刷設定保持モジュール１４０は、受け取った設定ＩＤと対応する印刷設定を検索し（Ｓ１５４）、これを発見した場合、印刷設定取得要求に対する応答と共に描画部１３２に返す（Ｓ１５５）。
これらのステップＳ１５３乃至Ｓ１５５の処理が、設定取得手段の機能と対応する処理である。
【００８９】
上述の通り、（１つの印刷開始要求に係る）１つのジョブの実行に関する処理の中で印刷設定部１３１がステップＳ１３４で生成し、ステップＳ１３７で印刷設定保持モジュール１４０に渡す設定ＩＤと、描画部１３２がステップＳ１５３で印刷設定保持モジュール１４０に渡す設定ＩＤとは同じものになるから、描画部１３２は、印刷設定部１３１とは一切通信せずに、ステップＳ１５５において、印刷設定部１３１がステップＳ１３７で印刷設定保持モジュール１４０に保持させた設定内容を取得することができる。
【００９０】
また、描画部１３２は、ステップＳ１５５で印刷設定を受け取ると、取得した印刷設定で、印刷に使用する（ステップＳ１５１で指定された）ＤＥＶＭＯＤＥに係る印刷設定の内容を更新する（Ｓ１５６）。この更新は、取得した印刷設定に含まれる各項目の設定内容をＤＥＶＭＯＤＥの内容に上書き又は追加すれば足り、ＤＥＶＭＯＤＥにあって取得した印刷設定にない項目の設定内容を削除する必要はない。ここで説明している例では、図６に示した画面で受け付けた各項目の設定内容に、図１１に示した画面で受け付けたＩＤ及びパスワードの設定を追加することになる。
【００９１】
描画部１３２は、次に、更新後の印刷設定の内容に従って、プリンタ２０に送信する印刷コマンドを生成する（Ｓ１５７）。この処理には、プリンタ２０側の機能に関する項目の設定内容に従ってプリンタ２０に動作を指示するためのコマンドを生成する処理が含まれる。この処理が、印刷指示生成手段の機能と対応する処理である。
【００９２】
その後、描画部１３２は、ステップＳ１５７で生成した印刷コマンドを通信Ｉ／Ｆ制御部１５０に渡してプリンタ２０に送信させる（Ｓ１５８）。このことにより、プリンタ２０に、ＯＳ１２０から要求されたジョブを実行させることができる。
そしてその後、描画部１３２は文書印刷開始要求に対する応答をＯＳ１２０に返し（Ｓ１５９）、文書印刷開始要求に応じた処理を終了する。
また、この応答を受け取ると、ＯＳ１２０は、アプリケーション１１０から受けた印刷実行要求に応じて行うべき処理が全て完了したことがわかるので、アプリケーション１１０に対し、印刷実行要求に対する応答を返す（Ｓ１６０）。
【００９３】
また、図示は省略したが、ステップＳ１６０の印刷実行応答を受け取ると、アプリケーション１００は、ＯＳ１２０に対し、図７のステップＳ１２１において受け取った識別情報を付して、印刷すべき画像の内容を示すデータを渡す。そして、ＯＳ１２０がこのデータを描画部１２２に渡し、描画部１２２が、図９のステップＳ１５６で更新した後の印刷設定に従い印刷すべき画像の描画を行って印刷データを生成し、印刷コマンドと同様に通信Ｉ／Ｆ制御部を介してプリンタ２０に渡し、先に送信した印刷コマンドが示す設定内容に従って、印刷データに係る画像を形成させる。
以上で、アプリケーション１１０が指示されたジョブの実行に係るＰＣ１０側の処理は全て完了する。
なお、印刷設定保持モジュール１４０は、ステップＳ１３５で設定内容を描画部に送信した後、その設定内容を削除する（Ｓ１６１）。
【００９４】
また、描画部１３２が印刷設定保持モジュール１４０から設定内容を取得した後、印刷設定保持モジュール１４０が他に設定内容を保持していなければ、印刷設定保持モジュール１４０はその後適当なタイミングで終了させてしまってよい。描画部１３２は、例えばステップＳ１５８の後で印刷準備要求に応じて保持したまま印刷データの生成処理をしていないＤＥＶＭＯＤＥがない状態の場合、もはや印刷設定保持モジュール１４０に設定内容が保持されていないことがわかるので、ハードウェア資源の節約を考慮して、この時点で印刷設定保持モジュール１４０を停止させることが考えられる（ＳＮ）。
この場合、印刷設定保持モジュール１４０は、設定内容を記憶するメモリ領域を開放し、停止する（Ｓ１６２）。
【００９５】
次に、以上のような構成の効果について説明する。
図１４は、この効果について説明するための図である。
上述したＰＣ１０は、図１４に示すように、印刷設定保持モジュール１４０を設け、印刷設定部１３１が、アプリケーション１１０からＯＳ１２０に印刷開始要求があった後、すなわちユーザがアプリケーション１１０に印刷の実行を指示した後で受け付けた印刷設定の内容を、印刷設定保持モジュール１４０を介して描画部１３２に渡せるようにした点に特徴を有する。
【００９６】
そして、この特徴により、印刷設定部１３１と描画部１３２とを直接通信させなくても、描画部１３２が印刷準備要求に応じて印刷データの生成を準備した後で、印刷設定部１３１が受け付けた設定内容を印刷設定保持モジュール１４０から取得し、その設定内容に基づいて変更することができる。従って、ＯＳの機能との親和性を高いものとすることができる。またこのため、ＯＳのバージョンアップ等があっても、不具合発生の危険を小さいものとすることができる。
【００９７】
また、このとき、設定内容の保持にファイルを使わず、モジュールを利用して、モジュールに動的に設定内容保持のためのメモリ領域を確保／解放させるようにしているため、保持する設定内容を盗用される危険を低減することができる。従って、印刷設定保持モジュール１４０を利用する構成は、ＩＤやパスワードのような、機密性の高い設定内容の保存に好適である。
【００９８】
また、上述したＰＣ１０は、ＯＳ１２０から実行するジョブ毎に印刷設定部１３１と描画部１３２に共通して渡され、かつ異なるジョブについては異なる内容が渡されるような情報に基づいて設定ＩＤを生成し、その設定ＩＤと対応づけて印刷設定保持モジュール１４０に保持させる設定内容を管理する点にも特徴を有する。なお、設定ＩＤを複数項目の情報の組み合わせに基づいて生成するのであれば、その複数項目の情報（上述の例ではプリンタハンドルとＤＥＶＭＯＤＥに保存した共有キー）の組み合わせが、上記の性質を満たしていればよい。
【００９９】
そして、この特徴により、複数のジョブを同時に取り扱う場合でも、あるジョブに関して印刷設定部１３１が受け付けた設定内容を、印刷設定部１３１と描画部１３２とを直接通信させることなしに、描画部１３２における同じジョブの印刷コマンド及び印刷データの生成に確実に反映させることができる。
【０１００】
この点につき、アプリケーション１１０からＯＳ１２０への印刷開始要求が続けて複数回行われる場合の各部の動作について説明する。
なお、ここで説明に使用する図１５乃至図１８及び図２０においては、スペースの都合上一部の処理を省略したり簡略化したりして示しているが、印刷設定部１３１や描画部１３２がＯＳ１２０からの通知や要求に応じて行う処理は、図７乃至図９を用いて説明したものと同じである。例えば、図１５においては図７のステップＳ１１４，Ｓ１１６及びＳ１１８に相当する処理の図示は省略し、ステップＳ１１３に相当する処理（Ｓ１１３ａ，Ｓ１１３ｂ）は記載を簡単にしているが、印刷設定部１３１や描画部１３２は、実際には図７の場合と同じ処理を行う。
また、図１５等でＤＥＶＭＯＤＥに付した「（ＫＥＹ）」は、共有キーが書き込まれている状態であることを示す。
【０１０１】
アプリケーション１１０からＯＳ１２０への印刷開始要求が続けて複数回行われる場合としては、まず、アプリケーション１１０やＯＳ１２０の機能として、１つのジョブについて複数回の印刷開始要求を必要とする設計を採用した場合が考えられる。
【０１０２】
図１５及び図１６に、この場合の動作シーケンス例を示す。
この場合、例えば図１４に示すように、アプリケーション１１０がＯＳ１２０に対して２回の印刷開始要求（Ｓ１１１ａ，Ｓ１１１ｂ）を行い、ＯＳ１２０は、これらの要求それぞれに応じて、印刷設定部１３１に対する印刷準備前通知の送信（Ｓ１１２ａ，Ｓ１１２ｂ）と、描画部１３２に対する印刷準備要求の送信（Ｓ１１７ａ，Ｓ１１７ｂ）とを行う。そして、印刷制御部１３１及び描画部１３２は、それぞれこれらの要求に応じた処理を行う。従って、図８のステップＳ１１１乃至Ｓ１２１に相当する処理を２回繰り返すことになる。
【０１０３】
その結果、ステップＳ１２１ｂの時点では、描画部１３２は、ＤＥＶＭＯＤＥ＿Ａに対応するキー情報となるプリンタハンドル及びＤＥＶＭＯＤＥ＿Ｂに対応するキー情報であるプリンタハンドルを保持することになる。また描画部１３２は、ＤＥＶＭＯＤＥ＿Ａを用いた印刷データの生成と、ＤＥＶＭＯＤＥ＿Ｂを用いた印刷データの生成とを準備することになる。
【０１０４】
なお、図１５では、ステップＳ１２１ａの印刷開始応答の後で２度目の印刷開始要求が行われるようになっているが、これに限られることはない。アプリケーション１１０やＯＳ１２０の側で適宜各通知及び要求のタイミング管理を適切に行えば、印刷開始要求の送信タイミングは任意であり、複数の印刷開始要求に係る処理を並行して行ってもよい。
【０１０５】
２つの印刷開始要求について印刷開始応答が得られると、アプリケーション１１０は、図１６に示すように、ＯＳ１２０に対し、印刷実行要求を送信する（Ｓ１３１ａ）。またこのとき、先に送信した印刷開始要求のいずれに対応する印刷実行要求であるかを示すため、図１５のステップＳ１２１ａ又はステップＳ１２１ｂで印刷開始応答と共に受け取った識別情報（ここでは識別情報Ａ）を、印刷実行要求に付してＯＳ１２０に渡す。
ＯＳ１２０は、この印刷開始要求を受けると、印刷実行要求に付された識別情報に従い、対応する印刷開始要求に応じて保持させたＤＥＶＭＯＤＥを用いた印刷を行うべく、印刷設定部１３１に対する文書印刷開始前通知の送信（Ｓ１３２ａ）と、描画部１３２に対する文書印刷開始要求の送信（Ｓ１５１ａ）とを行う。そしてこのことにより、ステップＳ１１１ａの印刷開始要求で指示されたジョブと、ステップＳ１１１ｂの印刷開始要求で指示されたジョブの一方（ここでは前者）をプリンタドライバ１３０に実行させる。
【０１０６】
一方、印刷設定部１３１は、ステップＳ１３２ａの文書印刷開始前通知を受けると、図８のステップＳ１３３乃至Ｓ１３９の場合と同じように、文書印刷開始前通知において指定されたＤＥＶＭＯＤＥ＿Ａを用いる印刷に関する印刷設定の変更指示を受け付け、ジョブと対応する設定ＩＤを生成し、印刷設定保持モジュール１４０を起動して、印刷設定保持モジュール１４０に変更後の設定内容を設定ＩＤと対応させて保持させる（Ｓ１３３ａ〜Ｓ１３９ａ）。
【０１０７】
なおこのとき、設定ＩＤの生成に際し、共有キーは、文書印刷開始前通知において指定されたＤＥＶＭＯＤＥ＿Ａに書き込まれているものを用いる。また、変更指示の受け付けに際しては、どのジョブに関する変更指示を受け付けるのかを、ユーザにわかるように表示してもよい。
【０１０８】
また、描画部１３２は、ステップＳ１５１ａで文書印刷開始要求を受けると、図９のステップＳ１５２乃至Ｓ１５８の場合と同様に、実行を要求されたジョブと対応する設定ＩＤを生成して印刷設定保持モジュール１４０からその設定ＩＤと対応する設定内容を取得し、その設定内容によりＤＥＶＭＯＤＥ＿Ａに係る印刷設定を更新して、更新後の印刷設定に基づき印刷コマンドの生成とプリンタへの送信を行う（Ｓ１５２ａ〜Ｓ１５８ａ）。
【０１０９】
このとき、文書印刷開始要求では、同じジョブに係る文書印刷開始前通知であるステップＳ１３２ａの文書印刷開始前通知の際と同じプリンタハンドルが引数として渡され、また、設定ＩＤの生成に使用するＤＥＶＭＯＤＥも同じものであるので、ステップＳ１５２ａでは、設定ＩＤとして、ステップＳ１３４ａで作成したもの、すなわちステップＳ１３７ａで設定内容の保持に用いたものと同じものを生成することができる。
【０１１０】
従って、この例のように印刷開始通知が複数ある場合でも、描画部１３２は、印刷設定部１３１がこれから実行しようとしているジョブについて受け付けた設定内容を、確実に取得して印刷内容に反映させることができる。
その後の描画等についても、もちろん図７乃至図９に示した例の場合と同様に実行できる。以下に説明する例についても同様である。
【０１１１】
なお、図１５及び図１６に示した例の場合には、２回の印刷開始要求に対し、実際に実行されるジョブは、ＤＥＶＭＯＤＥ＿Ａを用いた１つのみである。
しかし、アプリケーション１１０が設計上の理由から複数回の印刷開始要求を行うのではなく、ユーザから２つのジョブの実行を指示され、これに応じてそれぞれのジョブに関する印刷開始要求及び印刷実行要求を行うことも考えられる。この場合には、ＯＳ１２０は、各々の印刷開始要求及び印刷実行要求と対応するジョブをプリンタドライバ１３０に実行させるべく、各々の印刷開始要求についてそれぞれ、印刷準備前通知及び印刷準備要求の送信を行うと共に、各々の印刷実行要求についてそれぞれ、文書印刷開始前通知及び文書印刷開始要求の送信を行う。
【０１１２】
図１７及び図１８に、このような場合の動作シーケンスを示す。ただし、この図にはアプリケーション１１０からの印刷実行要求に応じた処理のみを示しており、印刷開始要求に応じた処理の内容は図１５と同じであるため図示を省略した。
上記の場合、２つのジョブは独立したものであり、アプリケーション１１０及びＯＳ１２０は、これらのジョブの実行タイミングを独立に管理する。そして、初めのジョブが完了する前に次のジョブを進行させることもある。
【０１１３】
従って、例えば図１７及び図１８に示すように、アプリケーション１１０からの識別情報Ａを付した印刷実行要求（Ｓ１３１ａ）に応じてＯＳ１２０がＤＥＶＭＯＤＥ＿Ａを用いるジョブについての文書印刷開始前通知を行い、印刷設定部１３１が印刷設定保持モジュール１４０に変更後設定内容を保持させた後（Ｓ１３２ａ〜Ｓ１４０ａ）、このジョブについての文書印刷開始要求を行う前に、アプリケーション１１０からの識別情報Ｂを付した別の印刷実行要求（Ｓ１３１ｂ）に応じて、別のＤＥＶＭＯＤＥ＿Ｂを用いるジョブについての文書印刷開始前通知を行う（Ｓ１３２ｂ）ことも考えられる。
【０１１４】
この場合、図１９に示すように、印刷設定保持モジュール１４０には、２つの設定内容が保持されることになる。しかし、印刷設定モジュール１４０は、これらの設定内容をそれぞれ設定ＩＤと対応づけて保持するため、これらの設定内容を区別して保持することができる。もちろん、異なるジョブについて生成される設定ＩＤは、上述のように互いに異なるものとなる。
【０１１５】
また、描画部１３２は、文書印刷開始要求に応じた処理の中で、印刷設定保持モジュール１４０が保持している設定内容を取得する（Ｓ１５５ａ，Ｓ１５５ｂ）。そして、この場合においても、描画部１３２は、同じジョブについて印刷設定部１３１が生成した設定ＩＤと同じ設定ＩＤを生成できるので、印刷設定保持モジュール１４０が複数の設定内容を保持していても、その設定ＩＤをキーに、これから実行しようとしているジョブについて印刷設定部１３１が受け付けた設定内容を、確実に取得することができる。
この処理は、図１７及び図１８に示すように、文書印刷開始前通知と文書印刷要求とで、ＯＳ１２０からの送信順が入れ替わったとしても、全く問題なく実行できる。
【０１１６】
また、ＯＳ１２０が複数の印刷開始要求を受ける場合としては、異なる複数のアプリケーションからほぼ同時に印刷開始要求を受ける場合も考えられる。
図２０に、このような場合の動作シーケンスを示す。ただし、この図にはアプリケーション１１０からの印刷開始要求に応じた処理のみを示しており、印刷実行要求に応じた処理の内容は、ステップＳ１３１ｂでの印刷実行要求の送信元及びステップＳ１６０ｂでの印刷実行応答の送信先が、ステップＳ１３１ａ及びステップＳ１６０ａの場合と異なるアプリケーションである点を除いて図１７及び図１８と同じであるため、図示を省略した。
【０１１７】
これらの図に示すように、ＯＳ１２０は、異なる複数のアプリケーション１１０ａ，１１０ｂから印刷開始要求を受けた場合でも、１つのアプリケーションから複数の印刷開始要求を受けた場合と同様に、各印刷開始要求について、印刷準備前通知及び印刷準備要求の送信を行う。そして、印刷設定部１３１，描画部１３２及び印刷設定保持モジュール１４０は、各通知や要求のもとになった印刷開始要求がどのアプリケーションから出されたものであるかは全く意識せずに動作する。
【０１１８】
従って、この場合も、図１５乃至図１８を用いて説明した例の場合と全く同じように、印刷設定保持モジュール１４０に、複数のジョブについて受け付けた設定内容をそれぞれ区別して保持させることができ、描画部１３２は、印刷設定部１３１がこれから実行しようとしているジョブについて受け付けた設定内容を、確実に取得して印刷内容に反映させることができる。
【０１１９】
〔変形例：図２１乃至図２５〕
以上で実施形態の説明を終了するが、この発明において、装置の構成、具体的な処理内容、設定ＩＤの生成方法、表示する画面の構成、設定内容に含まれる項目の種類、データの形式等が、以上説明してきた実施形態において具体的に説明したものに限られないことは、もちろんである。
【０１２０】
例えば、設定ＩＤの生成に使用する情報を変更する例として、図２１乃至図２５に示すものが考えられる。
図２１乃至図２３はそれぞれ、この変形例における図７乃至図９と対応する動作シーケンスを示す図、図２４及び図２５は、それぞれこの変形例における図１２及び図１３と対応する設定ＩＤ生成処理の内容を示すフローチャートである。
【０１２１】
この例は、設定ＩＤの生成に、ＯＳ１２０から印刷設定部１３１と描画部１３２に共通して渡される情報として、ジョブ名の情報を使用するようにしたものである。この情報も、ジョブ毎に異なるものである。ただし、ジョブ名は、上述の実施形態で用いたプリンタハンドルとは異なり、描画部１３２に対し、文書印刷開始要求の引数として渡されるものである。
【０１２２】
従って、この変形例においては、図２１に示す印刷準備要求に応じた描画部１３２の処理には、図７のステップＳ１１９のようなキー情報の保持の処理はない。そして、描画部１３２は、図２３のステップＳ１５２′において、文書印刷開始要求の引数として渡されたジョブ名をキー情報として用いて設定ＩＤの生成を行う。
また、印刷設定部１３１は、設定ＩＤを生成するタイミングは図８の処理の場合と変わらないが、図２２のステップＳ１３４′に示すように、文書印刷開始前通知の引数として渡されたジョブ名をキー情報として用いて設定ＩＤの生成を行う。
なお、どちらの場合も、設定ＩＤの生成に使用する共有キーは、ジョブの実行に使用するＤＥＶＭＯＤＥから取得する。
【０１２３】
図２１乃至図２３に示した動作シーケンスは、これらの点を除いては、図７乃至図９に示したものと同じである。
そして、この動作シーケンスにおいて、図２２のステップＳ１３４′での設定ＩＤの生成は、図２４のフローチャートに示す処理により行われる。
この処理は、図１２に示した処理とほぼ同じであり、ステップＳ１２′でプリンタハンドルに代えてジョブ名の値を取得し、ステップＳ１３′でそのジョブ名と共有キーとを用いて設定ＩＤを生成する点が異なるのみである。
【０１２４】
また、図２３のステップＳ１５２′における設定ＩＤの生成は、図２５のフローチャートに示す処理により行われる。
この処理は、図１３に示した処理とほぼ同じであり、ステップＳ２２′でＯＳ１２０から渡された文書印刷開始要求の引数であるジョブ名の値を取得し、ステップＳ２３′でそのジョブ名と共有キーとを用いて設定ＩＤを生成する点が異なるのみである。
【０１２５】
以上のような処理によっても、図１乃至図２０を用いて説明した実施形態の場合と同様、印刷設定保持モジュール１４０に、複数の印刷ジョブについて受け付けた設定内容をそれぞれ区別して保持させることができ、描画部１３２は、印刷設定部１３１がこれから実行しようとしている印刷ジョブについて受け付けた設定内容を、確実に取得して印刷内容に反映させることができる。
【０１２６】
なお、上述の実施形態では、印刷設定保持モジュール１４０はプリンタドライバ１３０とは別のモジュールであるとしたが、プリンタドライバ１３０自体の一部として構成することもできる。また、逆に、プリンタドライバ１３０とプロセス間通信が可能であれば、印刷設定保持モジュール１４０がプリンタドライバ１３０と同じハードウェアにより実行されることは、必須ではない。
【０１２７】
また、印刷設定部１３１が受け付けて印刷設定保持モジュール１４０に保持させる設定の内容によっては、描画部１３２が、ＯＳ１２０から指定されたＤＥＶＭＯＤＥの内容を全く使用せず、印刷設定保持モジュール１４０から取得した設定内容のみに基づいて印刷データや印刷コマンドの生成を行うようにしてもよい。
また、描画部１３２は、必ずしも印刷データと印刷コマンドの両方を生成することを要しない。
【０１２８】
また、上述の実施形態においては、印刷設定保持モジュール１４０の起動は、印刷設定保持要求の送信直前に行うようにしていた（図８のＳ１３５等）。しかし、この起動は、印刷設定保持要求を印刷設定保持モジュール１４０に送信する前に任意のタイミングで行えばよく、図８に示したように文書印刷開始前通知に応じた処理の中で行うことは、必須ではない。また、印刷設定保持モジュール１４０を、常に起動したままにしておくことも、妨げられない。
【０１２９】
また、この発明のプログラムは、コンピュータにハードウェアを制御させて上述したようなプリンタドライバ１３０又はこれに加えて印刷設定保持モジュール１４０として機能させるためのプログラムであり、予めＲＯＭやＨＤＤ等に記憶させておくほか、ＣＤ−ＲＯＭあるいはフレキシブルディスク等の不揮発性記録媒体（メモリ）に記録して提供し、そのメモリからこのプログラムをＲＡＭに読み出させてＣＰＵに実行させたり、プログラムを記録した記録媒体を備える外部機器あるいはプログラムをＨＤＤ等の記憶手段に記憶した外部機器からダウンロードして実行させたりしても、同様の効果を得ることができる。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【０１３０】
以上説明してきたように、この発明の印刷制御装置、印刷制御方法、プログラム又は記録媒体によれば、印刷装置を制御して印刷を実行させる場合において、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させる機能を、ＯＳとの親和性が高く、不具合発生の危険が低い手法で実現できるようにすることができる。
従って、この発明を適用することにより、安定性の高い印刷制御を行うことができる。
【図面の簡単な説明】
【０１３１】
【図１】この発明の印刷制御装置の実施形態であるＰＣと、そのＰＣによる制御対象の印刷装置であるプリンタとを備えたプリントシステムの構成例を示すブロック図である。
【図２】図１に示したＰＣのハードウェア構成を示すブロック図である。
【図３】図１に示したＰＣの機能のうち、実施形態の特徴に関連する部分の機能構成を示す、機能ブロック図である。
【図４】図１に示したＰＣにおけるプリンタドライバプログラムのインストール／アンインストール時のモジュールライフサイクルを示す図である。
【図５】図１に示したＰＣにおいてアプリケーションがＯＳに印刷の実行を要求する前に印刷設定の操作を受け付ける場合の各部の動作シーケンス例を示す図である。
【０１３２】
【図６】図５のステップＳ１０３で使用するＧＵＩの例を示す図である。
【図７】図１に示したＰＣにおいてアプリケーションがＯＳに印刷の実行を要求する場合の各部の動作シーケンス例を示す図である。
【図８】その続きを示す図である。
【図９】そのさらに続きを示す図である。
【図１０】ＤＥＶＭＯＤＥに記載する情報について説明するための図である。
【０１３３】
【図１１】図８のステップＳ１３３で使用するＧＵＩの例を示す図である。
【図１２】図８のステップＳ１３４で行う設定ＩＤの生成処理のフローチャートである。
【図１３】図９のステップＳ１５２で行う設定ＩＤの生成処理のフローチャートである。
【図１４】本発明の実施形態の効果について説明するための図である。
【図１５】図１に示したＰＣにおいてアプリケーションがＯＳに印刷の実行を要求する場合の図７乃至図９とは異なる動作シーケンス例を示す図である。
【０１３４】
【図１６】その続きを示す図である。
【図１７】図１に示したＰＣにおいてアプリケーションがＯＳに印刷の実行を要求する場合のさらに別の動作シーケンスの一部を示す図である。
【図１８】その続きを示す図である。
【図１９】図１７及び図１８に示す動作シーケンスのある時点における印刷設定保持モジュールの状態を示す図である。
【図２０】図１に示したＰＣにおいてアプリケーションがＯＳに印刷の実行を要求する場合のさらに別の動作シーケンスの一部を示す図である。
【図２１】この発明の実施形態の変形例における図７と対応する動作シーケンスの例を示す図である。
【図２２】同じく図８と対応する動作シーケンスの例を示す図である。
【図２３】同じく図９と対応する動作シーケンスの例を示す図である。
【図２４】同じく図１２と対応する設定ＩＤの生成処理のフローチャートである。
【図２５】同じく図１３と対応する設定ＩＤの生成処理のフローチャートである。
【符号の説明】
【０１３５】
１０：ＰＣ、２０：プリンタ、３０：通信経路、１１０：アプリケーション、
１２０：ＯＳ、１３０：プリンタドライバ、１３１：印刷設定部、１３２：描画部、
１３３：ＵＩ制御部、１４０：印刷設定保持モジュール、１４１：通信部、
１４２：設定保持部、１５０：通信Ｉ／Ｆ制御部
【図１】
2010066876.tif 000003
【図２】
2010066876.tif 000004
【図３】
2010066876.tif 000005
【図４】
2010066876.tif 000006
【図５】
2010066876.tif 000007
【図６】
2010066876.tif 000008
【図７】
2010066876.tif 000009
【図８】
2010066876.tif 000010
【図９】
2010066876.tif 000011
【図１０】
2010066876.tif 000012
【図１１】
2010066876.tif 000013
【図１２】
2010066876.tif 000014
【図１３】
2010066876.tif 000015
【図１４】
2010066876.tif 000016
【図１５】
2010066876.tif 000017
【図１６】
2010066876.tif 000018
【図１７】
2010066876.tif 000019
【図１８】
2010066876.tif 000020
【図１９】
2010066876.tif 000021
【図２０】
2010066876.tif 000022
【図２１】
2010066876.tif 000023
【図２２】
2010066876.tif 000024
【図２３】
2010066876.tif 000025
【図２４】
2010066876.tif 000026
【図２５】
2010066876.tif 000027