JP5245661B2 - 印刷制御装置、プログラム、記録媒体及び印刷制御方法 - Google Patents

印刷制御装置、プログラム、記録媒体及び印刷制御方法 Download PDF

Info

Publication number
JP5245661B2
JP5245661B2 JP2008230812A JP2008230812A JP5245661B2 JP 5245661 B2 JP5245661 B2 JP 5245661B2 JP 2008230812 A JP2008230812 A JP 2008230812A JP 2008230812 A JP2008230812 A JP 2008230812A JP 5245661 B2 JP5245661 B2 JP 5245661B2
Authority
JP
Japan
Prior art keywords
setting
print
printing
module
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008230812A
Other languages
English (en)
Other versions
JP2010066876A (ja
Inventor
紘士 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008230812A priority Critical patent/JP5245661B2/ja
Publication of JP2010066876A publication Critical patent/JP2010066876A/ja
Application granted granted Critical
Publication of JP5245661B2 publication Critical patent/JP5245661B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、印刷装置を制御するためのドライバ手段を有する印刷制御装置、コンピュータを印刷装置を制御するためのドライバ手段として機能させるためのプログラム、このようなプログラムを記録したコンピュータ読み取り可能な記録媒体、印刷制御装置が印刷装置を制御する印刷制御方法に関する。
近年、コンピュータによりプリンタ等の印刷装置を制御して印刷を行わせる場合、
オペレーティングシステム(OS)上でその印刷装置を制御するためのプリンタドライバプログラムを実行することにより、印刷装置を制御するプリンタドライバの機能を実現することが行われている。この場合、ユーザが、文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリケーションプログラム(以下単に「アプリ」という)を実行して、印刷装置に印刷をさせることを指示すると、アプリがその指示をプリンタドライバ(のプロセス)に渡し、プリンタドライバが指示に従って印刷装置の制御を行う。
この場合、ユーザが文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリで作成・閲覧した文書を印刷する指示を行うと、アプリは、指示に従って印刷すべき文書のデータをプリンタドライバに渡し、プリンタドライバがその文書のデータをプリンタが理解可能なプリンタ言語による印刷コマンドや印刷データに変換し、プリンタに渡して印刷を実行させる。
また、アプリが印刷指示を受け付ける際、集約、製本、拡大縮小、仕上げ処理等、プリンタが有する豊富な印刷機能に関する設定を受け付ける機能を提供し、ユーザが様々な設定を組み合わせることで、よりユーザの要望に適した印刷物を得ることを可能とする機能を搭載したプリンタドライバも提供されている。
このようなプリンタドライバが提供する機能の例として、特許文献1に記載のものが挙げられる。
特許文献1に記載のプリンタドライバは、コンピュータにインストールされる際、ワンクッション印刷フラグの設定を受け付ける。そして、ワンクッション印刷フラグがONにされた状態で印刷命令を受けると、他のフラグの状況に応じて、印刷設定簡易確認画面を表示し、印刷設定の変更を受け付けることが記載されている。
特開2006−79246号公報
また、特定のOS上で動作させるプリンタドライバを設計する際には、OS側の機能を意識し、例えばOSのDDI(デバイスドライバインタフェース)を通じたコールに応じて適切な動作ができるように設計することが一般的である。
DDIを通じたコールがどのようなものであるかについては、例えば非特許文献1に記載されている。
"msdn Windows XP Service Pack1 Driver Development Kit"、[CD-ROM]、2005年1月、Microsoft Corporation(特に"DrvDcomentEvent"の項参照)
ところで、Windows(登録商標)OS上で動作する従来の一般的なプリンタドライバは、ユーザが印刷の条件を設定した後、アプリに対して印刷の開始を指示すると、その時点での設定内容に従って印刷を実行するようになっており、印刷開始の指示後に印刷条件の設定を変更することはできなかった。
これは、OSの機能上の制約によるものである。すなわち、プリンタドライバが、印刷開始の指示より後に発生するDDIコールに応じて画面にダイアログを表示させ、ユーザからの設定変更操作を受け付けることは可能であるが、そこで受け付けた設定内容を、印刷コマンドや印刷データの生成動作に反映させる機能は、OSからは提供されていなかった。
しかし、一方で、例えば印刷開始指示を受け付けた後、ユーザの権限を判定するためのIDとパスワードの入力を受け付け、これを印刷コマンドや印刷データの一部としてプリンタに送信できるようにしたいというように、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させたいという要求があった。
このような要求に対応するためには、OSの機能とは別に、印刷開始指示より後に受け付けた設定の内容を印刷コマンドや印刷データの生成動作に反映させる機能を、プリンタドライバ独自の機能として用意することが考えられる。
例えば、印刷開始指示より後にユーザにより変更された設定内容を、一時ファイルに書き込んでおき、印刷コマンドや印刷データの生成動作を、OSから渡される設定内容ではなく、その一時ファイルから読み出した設定内容に従って行うようにすることが考えられる。
しかし、この手法の場合、プリンタドライバが動作しているタイミングやユーザの権限レベルによっては、ファイルにデータを書き込めない場合があるという問題があった。さらに、複数のアプリにおいて近接したタイミングで印刷開始指示がなされた場合に、1つのアプリからの印刷開始指示に応じて受け付けた設定内容を一時ファイルに書き込んだ後、その設定内容を読み出して印刷コマンドや印刷データの生成に使用する前に、他のアプリからの印刷開始指示に応じて受け付けた設定内容が一時ファイルに書き込まれてしまい、一時ファイルに書き込んだ設定内容を正しく読み出せない場合があるという問題もあった。
また、プリンタドライバ独自の動作として、ファイルの読み書きのように、OSの機能に依存する機能を作ってしまうと、OS側の予期せぬ動作やバージョンアップによる機能修正の影響を受け、この点からも不具合が発生する危険が高まってしまうという問題もあった。
これらの点につき、上記特許文献1においては、ワンクッション印刷フラグがONの場合、印刷命令を受けた後に印刷設定簡易確認画面を表示し、印刷設定の変更を受け付けることは記載されているものの、この変更内容を印刷コマンドや印刷データの生成に反映させるための具体的な構成については、なんら記載されていない。もちろん、上記の問題を解決する具体的な構成についても、全く記載されていない。
この発明は、このような問題を解決し、印刷装置を制御して印刷を実行させる場合において、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させる機能を、OSとの親和性が高く、不具合発生の危険が低い手法で実現できるようにすることを目的とする。
上記の目的を達成するため、この発明は、印刷装置を制御するためのドライバ手段を有する印刷制御装置において、上記ドライバ手段を、上記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段を備える第1のモジュールと、上記印刷装置に印刷を実行させるよう要求された場合に、印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する印刷指示生成手段を備える第2のモジュールとを備え、上記第1のモジュールが、上記印刷装置に印刷を実行させることを通知された場合に共有情報を所定の記憶領域に記憶する記憶制御手段と、上記記憶制御手段によって上記所定の記憶領域に記憶された共有情報に基づき、上記印刷装置に実行させるジョブと対応する一意なIDを生成する第1のID生成手段と、所定の印刷設定保持モジュールに上記設定受付手段が受け付けた設定内容を渡し、上記第1のID生成手段が生成した一意なIDと対応づけて保持させる設定保持手段とを備え、上記第2のモジュールが、上記印刷装置に印刷を実行させるよう要求された場合に、上記第1のモジュールによって上記所定の記憶領域に記憶された共有情報に基づき、その印刷に係るジョブと対応する、上記第1のID生成手段が生成したものと同じ一意なIDを生成する第2のID生成手段と、上記印刷設定保持モジュールから上記第2のID生成手段が生成した一意なIDと対応づけて保持されている設定内容を取得する設定取得手段とを備えるものとしたものである。
このような印刷制御装置において、上記印刷設定保持モジュールを設け、その印刷設定保持モジュールを、上記設定保持手段から設定内容の保持を要求された場合に、上記第1のID生成手段が生成した一意なIDと対応づけてその設定内容を保持する手段と、上記設定取得手段からIDを指定して設定内容の取得を要求された場合に、その設定取得手段にその要求に係るIDと対応させて保持している設定内容を渡す手段との機能を有し、上記設定保持手段からの要求に応じて保持した設定内容を、上記設定取得手段に渡すか、その印刷設定保持モジュールの終了を命令されるまで保持し続けるものとするとよい。
さらに、上記印刷設定保持モジュールを、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、それぞれその要求に係るIDと対応づけて保持するものとするとよい。
また、上記の各印刷制御装置において、アプリケーションからの印刷指示に応じて、上記第1のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第2のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを設け、上記第1のID生成手段を、上記オペレーティングシステムが上記第1のモジュール及び上記第2のモジュールに対し上記印刷を実行させる通知及び上記印刷を実行させる要求を行う際に渡す情報のうち、上記第1のモジュール及び上記第2のモジュールの双方に共通して渡す情報に基づき、上記一意なIDを生成する手段とするとよい。
さらに、アプリケーションからの印刷指示に応じて、上記第1のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第2のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを設け、上記所定の記憶領域を、上記オペレーティングシステムから渡される印刷に使用する設定内容のうち、予め定められた特定の項目の記憶領域とするとよい。
さらにまた、上記印刷指示生成手段を、上記第2のモジュールが上記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、上記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って上記印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する手段とするとよい。
また、この発明のプログラムは、コンピュータを、印刷装置を制御するためのドライバ手段として機能させるためのプログラムにおいて、上記ドライバ手段を、上記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段を備える第1のモジュールと、上記印刷装置に印刷を実行させるよう要求された場合に、印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する印刷指示生成手段を備える第2のモジュールとを備え、上記第1のモジュールが、上記印刷装置に印刷を実行させることを通知された場合に共有情報を所定の記憶領域に記憶する記憶制御手段と、上記記憶制御手段によって上記所定の記憶領域に記憶された共有情報に基づき、上記印刷装置に実行させるジョブと対応する一意なIDを生成する第1のID生成手段と、所定の印刷設定保持モジュールに上記設定受付手段が受け付けた設定内容を渡し、上記第1のID生成手段が生成した一意なIDと対応づけて保持させる設定保持手段とを備え、上記第2のモジュールが、上記印刷装置に印刷を実行させるよう要求された場合に、上記第1のモジュールによって上記所定の記憶領域に記憶された共有情報に基づき、その印刷に係るジョブと対応する、上記第1のID生成手段が生成したものと同じ一意なIDを生成する第2のID生成手段と、上記印刷設定保持モジュールから上記第2のID生成手段が生成した一意なIDと対応づけて保持されている設定内容を取得する設定取得手段とを備えるものとしたものである。
このようなプログラムにおいて、上記コンピュータを上記印刷設定保持モジュールとして機能させるためのプログラムも含め、上記印刷設定保持モジュールを、上記設定保持手段から設定内容の保持を要求された場合に、上記第1のID生成手段が生成した一意なIDと対応づけてその設定内容を保持する手段と、上記設定取得手段からIDを指定して設定内容の取得を要求された場合に、その設定取得手段にその要求に係るIDと対応させて保持している設定内容を渡す手段との機能を有し、上記設定保持手段からの要求に応じて保持した設定内容を、上記設定取得手段に渡すか、その印刷設定保持モジュールの終了を命令されるまで保持し続けるものとするとよい。
さらに、上記印刷設定保持モジュールを、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、その要求に係るIDと対応づけて保持するものとするとよい。
また、上記の各プログラムにおいて、上記コンピュータを、アプリケーションからの印刷指示に応じて、上記第1のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第2のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものとし、上記第1のID生成手段を、上記オペレーティングシステムが上記第1のモジュール及び上記第2のモジュールに対し上記印刷を実行させる通知及び上記印刷を実行させる要求を行う際に渡す情報のうち、上記第1のモジュール及び上記第2のモジュールの双方に共通して渡す情報に基づき、上記一意なIDを生成する手段とするとよい。
さらに、上記コンピュータを、アプリケーションからの印刷指示に応じて、上記第1のモジュールに対し上記印刷装置に印刷を実行させることを通知すると共に上記第2のモジュールに対し上記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものとし、上記所定の記憶領域を、上記オペレーティングシステムから渡される印刷に使用する設定内容のうち、予め定められた特定の項目の記憶領域とするとよい。
さらにまた、上記印刷指示生成手段を、上記第2のモジュールが上記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、上記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って上記印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する手段とするとよい。
また、この発明の記録媒体は、上記のいずれかのプログラムを記録したコンピュータ読取り可能な記録媒体である。
また、この発明の印刷制御方法は、印刷制御装置がドライバ手段により印刷装置を制御する印刷制御方法において、上記ドライバ手段が、上記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段を備える第1のモジュールの機能により、上記印刷装置に印刷を実行させることを通知された場合に共有情報を所定の記憶領域に記憶する記憶制御手順と、上記記憶制御手順で上記所定の記憶領域に記憶された共有情報に基づき、上記印刷装置に実行させるジョブと対応する一意なIDを生成する第1のID生成手順と、所定の印刷設定保持モジュールに上記設定受付手順で受け付けた設定内容を渡し、上記第1のID生成手順で生成した一意なIDと対応づけて保持させる設定保持手順とを実行し、上記印刷装置に印刷を実行させるよう要求された場合に、印刷装置に上記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する印刷指示生成手段を備える第2のモジュールの機能により、上記印刷装置に印刷を実行させるよう要求された場合に、上記第1のモジュールによって上記所定の記憶領域に記憶された共有情報に基づき、その印刷に係るジョブと対応する、上記第1のID生成手順で生成したものと同じ一意なIDを生成する第2のID生成手順と、上記印刷設定保持モジュールから上記第2のID生成手順で生成した一意なIDと対応づけて保持されている設定内容を取得する設定取得手順とを実行するようにしたものである。
以上のようなこの発明の印刷制御装置又は印刷制御方法によれば、印刷装置を制御して印刷を実行させる場合において、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させる機能を、OSとの親和性が高く、不具合発生の危険が低い手法で実現できるようにすることができる。
また、この発明のプログラムによれば、コンピュータに印刷装置を制御するドライバ手段の機能を実現させ、上記の効果を得ることができる。この発明の記録媒体によれば、上記のプログラムを記憶していないコンピュータにそのプログラムを読み出させて実行させ、上記の効果を得ることができる。
〔実施形態:図1乃至図18〕
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず図1に、この発明の印刷制御装置の実施形態であるPC(パーソナルコンピュータ)と、そのPCによる制御対象の印刷装置であるプリンタとを備えたプリントシステムの構成例を示す。
図1に示すように、このプリントシステムは、PC10と、PC10により制御される印刷装置であり、PC10からの印刷コマンド及び印刷データに従って用紙に画像を形成(印刷)する印刷装置であるプリンタ20とを、通信経路30により接続して構成したシステムである。通信経路30としては、LAN(ローカルエリアネットワーク)、シリアルケーブル、パラレルケーブル、USB(Universal Serial Bus)規格、IEEE(Institute of Electrical and Electronic Engineers)1394規格を始め、有線、無線を問わず、任意の通信経路を採用可能である。
ここで、図2にPC10のハードウェア構成を示す。
この図に示すように、PC10は、CPU11,ROM12,RAM13,通信インタフェース(I/F)14,表示器15,操作部16,HDD(ハードディスクドライブ)17を備え、これらがシステムバス18により接続された構成である。表示器15は、例えば液晶ディスプレイ、操作部16は、例えばマウスやキーボードである。もちろん、外部の表示器や操作部を用いてもよい。
これらのハードウェアは、ハードウェアとしては公知の構成でよい。
そして、PC10においては、CPU11が実行するOS上で、ROM12やHDD17に記憶されているこの発明のプログラムの実施形態であるプリンタドライバプログラムを動作させることにより、プリンタ20を制御するドライバ手段であるプリンタドライバの機能を実現することができる。
なお、ここでいうプリンタ20の制御とは、PC10とプリンタ20との間で相互にデータを送受信しながら行うものだけでなく、印刷対象のデータに基づいてプリンタ20に印刷動作を実行させるための処理全般を含む。例えば、アプリからOSを介して渡された印刷内容のデータをプリンタが解釈可能な言語に変換し、PDL(Page Description Language)で記載された印刷データやPJL(Printer Job Language)で記載された印刷コマンドを生成する処理も含む。
また、プリンタ20も、ハードウェアとしては、CPU,ROM,RAM,通信I/F(インタフェース),操作パネル,プリントエンジン等を備えた公知のものでよい。そして、このプリンタ20は、プリンタドライバからの印刷コマンドや印刷データに従い、そのコマンドやデータによって指定された設定で、プリントデータが示す内容の画像を印刷する機能を有する。また、プリンタ20を、スキャン、ファクシミリ通信、文書蓄積等の機能を併せ持つMFP(デジタル複合機)として構成してもよい。
次に、図3に、図1に示したPC10の機能のうち、この実施形態の特徴に関連する部分の機能構成を示す。
図2に示すように、PC10が有する、この実施形態の特徴に関連する機能としては、アプリケーション110,OS120,プリンタドライバ130,印刷設定保持モジュール140,通信I/F制御部150がある。
このうちアプリケーション110は、文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリにより実現される機能である。そして、アプリケーション110は、ユーザの操作に従って文書や画像等のデータを作成すると共に、ユーザの印刷指示に従ってOS120に作成した文書や画像等のデータを渡し、印刷に必要な処理を実行させる機能を有する。また、この印刷指示に先立ち、OS120を介してプリンタドライバ130の機能を利用し、ユーザからの印刷設定の操作を受け付ける機能も有する。
ここで受け付ける設定内容には、用紙サイズ、原稿方向、解像度、カラー等、印刷する文書の内容を描画して印刷データを生成する際に使用する設定内容と、給紙トレイ、印刷部数、両面有無、ユーザのプリンタ利用権限認証用のID及びパスワード等、PC10側での描画には使用しないが、プリンタ20に送信してプリンタ20の動作内容を指定するための設定内容とが含まれる。
なお、具体的にどのような項目について印刷設定の操作を受け付けるかについては、プリンタドライバ130が提供するGUI(グラフィカル・ユーザ・インタフェース)の内容に依存する。そして、ユーザや受付時の状況に応じて提供されるGUIが異なり、これに応じて設定操作を受け付ける項目が異なる場合もある。
そして、アプリケーション110は、印刷の実行が指示された場合、印刷すべき文書の内容を、その指示時点でなされている印刷設定の内容(ユーザからの設定指示がない場合にはデフォルトの印刷設定の内容)と共にOS120に渡し、プリンタ20にその文書の内容をその設定内容に従って印刷させるよう、要求を行う。
また、OS120は、PC10全体の入出力デバイスやハードウェア資源の管理を行う基本ソフトであり、図3に示した各機能は、CPU11がこのOS120上でプログラムを動作させることにより実現される。
そして、OS120は、アプリケーション110から印刷の実行を要求された場合、その印刷を実行すべき印刷ジョブとして管理し、プリンタドライバ130の機能を利用してそのジョブを実行すべく、プリンタドライバ130に対して種々の通知や要求を行い、プリンタ20を制御して印刷を実行させるために必要な動作を行わせる。また、OS120は、アプリケーション110から印刷設定操作の受付を要求された場合には、プリンタドライバ130にその操作受付の機能を提供させるべく、プリンタドライバ130に対して必要な要求を行う。OS120からプリンタドライバ130へのこれらの通知や要求は、DDIコールとして行うことができる。
プリンタドライバ130は、上述のプリンタドライバプログラムにより実現される機能であり、大別して、印刷設定部131と描画部132を有する。
このうち、印刷設定部131は、第1のモジュールであり、ディスプレイにGUIを表示させ、プリンタ20に印刷を実行させる際に使用する印刷設定を受け付ける機能を有する。UI(ユーザインタフェース)制御部133が、このGUIの動作を制御する機能を有する。なお、印刷設定の受付は、アプリケーション110における印刷開始指示の前にOS120を介してアプリケーション110から要求された場合に行うものと、アプリケーション110が印刷開始指示を受け付けてOS120に印刷の実行を要求した後、OSがその印刷の実行制御の一環として印刷設定部131に対して行う通知に応じて行うものとの、少なくとも2種類がある。
また、印刷設定部131は、後者のタイミングで印刷設定を受け付けた場合、その設定内容を描画部132における印刷コマンドや印刷データの生成に反映させるため、描画部132がその設定内容を取得できるよう、一意なIDを生成し、そのIDと対応づけて設定内容を印刷設定保持モジュール140に保持させる機能も有する。
描画部132は、第2のモジュールであり、アプリケーション110からOS120を介して渡された印刷内容のデータをプリンタ20が解釈可能な言語に変換し、プリンタ20に、OS120から渡された印刷内容に係る印刷を実行させるための印刷コマンドや印刷データを生成する機能を有する。
また、OS120から描画部132には、印刷コマンドや印刷データの生成に用いる印刷設定の情報も渡される。そして、従来であれば、描画部132はこの印刷設定に従って印刷コマンドや印刷データの生成を行っていた。
しかしここでは、描画部132は、印刷設定保持モジュール140に要求して印刷設定部131が保持させた設定内容を取得し、OS120から受け取った印刷設定を、印刷設定保持モジュールから取得した設定内容により更新して、更新後の印刷設定に従って印刷コマンドや印刷データの生成を行う。ただし、印刷設定保持モジュール140から設定内容が取得できない場合には、OS120から受け取った印刷設定にそのまま従って印刷コマンドや印刷データの生成を行ってもよい。
印刷設定保持モジュール140は、アプリケーション110が印刷開始指示を受け付けてOS120に印刷の実行を要求した後で印刷設定部131が受け付ける印刷設定の設定内容を保持する機能を有する。そして、通信部141と設定保持部142とを有する。
このうち通信部141は、プリンタドライバ130の印刷設定部131及び描画部132のプロセスとそれぞれプロセス間通信を行う機能を有する。また、設定保持部142は、印刷設定部131からの要求に応じて、印刷設定部131が生成したIDと対応づけて印刷設定部131から渡される設定内容のデータを保持する機能と、描画部132からの要求に応じて、描画部132により指定されたIDと対応づけて保持している設定内容を描画部132に渡す機能とを有する。
なお、この印刷設定保持モジュール140は、必要に応じてプリンタドライバ130により起動され、必要がなくなるとプリンタドライバ130により終了される。また、設定保持部142が一旦保持した設定内容は、描画部132に渡すか、印刷設定保持モジュール140が終了されるまで保持したままにしておく。
通信I/F制御部150は、図2に示した通信I/F14を制御する機能を有し、描画部132から渡される印刷コマンドや印刷データを、指定されたプリンタ20に送信する機能を有する。
以上の各部の機能のうち、特徴的な部分は、プリンタドライバ130及び印刷設定保持モジュール140の機能である。
プリンタドライバ130においては、OS120との親和性を保つため、OS120からのDDIコールに対しては、OS120が想定する反応を返せるように設計している。そして、このような設計をする場合、印刷設定部131が受け付けた印刷設定の内容を描画部132に直接渡して印刷コマンドや印刷データの生成処理に反映させることができない。OS120側が、印刷設定部131と描画部132とが通信することを想定した設計になっていないためである。
また、OS120には、印刷設定部131から設定内容を受け取り、これをアプリケーション110を介さずに描画部132における印刷コマンドや印刷データの生成処理に反映させる機能も用意されていない。
このような環境においては、アプリケーション110がOSに印刷の実行を要求した後で、アプリケーション110の関与なしにアプリケーション110が指示した印刷設定の内容を変更することは通常はできない。しかし、PC10においては、印刷設定保持モジュール140を設け、アプリケーション110がOS120に印刷の実行を要求した後で印刷設定部131が受け付ける印刷設定の設定内容を保持させ、描画部132がこの印刷設定を取得できるようにしたため、プリンタドライバ130とOS120との親和性を維持しつつ、アプリケーション110がOSに印刷の実行を要求した後でも、アプリケーション110の関与なしにアプリケーション110が指示した印刷設定の内容を変更することができる。
以下、この点について、各部の動作の詳細と合わせてさらに説明する。
まず、図4に、プリンタドライバプログラムのインストール/アンインストール時のモジュールライフサイクルを示す。
この図に示すように、図3のプリンタドライバ130の機能を実現するためのプリンタドライバプログラムは、手動又は自動で所要のインストールプログラムをOS120上で実行することにより、PC10のHDD17にインストールできる。そしてこのとき、インストール手順の一環として、図3の印刷設定保持モジュール140の機能を実現するためのプログラムも、PC10のHDD17にインストールされる。
すなわち、プリンタドライバ130及び印刷設定保持モジュール140の機能を実現するためのプログラムは、1つのインストーラに同梱された状態で記録媒体に記録したりダウンロード可能な状態に置いたりして頒布することができる。
また、アンインストールの際には、手動又は自動で所要のアンインストールプログラムをOS120上で実行することにより、PC10のHDD17にインストールされたプリンタドライバプログラムを削除することができる。そしてこのとき、アンインストール手順の一環として、印刷設定保持モジュール140の機能を実現するためのプログラムも、HDD17からアンインストールされる。
次に、図5に、アプリケーション110がOS120に印刷の実行を要求する前に印刷設定の操作を受け付ける場合の各部の動作シーケンスを示す。
アプリケーション110は、ユーザから印刷設定用GUIを開くことを要求されると、図5に示すように、OS120に対して印刷設定受付要求を行う(S101)。また、アプリケーション110は、印刷に使用する印刷設定の内容をDEVMODEと呼ばれるデータ構造体として保持するが、最初に印刷設定を受け付ける際には、図示しない処理により印刷設定部131に設定可能な項目及びその初期値を問い合わせ、その情報に基づいてデフォルトの設定内容を示すDEVMODEを作成し、印刷設定受付要求と共にOS120に渡す。また、2度目以降に印刷設定を受け付ける場合には、印刷設定受付要求の送信時点での設定内容を示すDEVMODEをOS120に渡す。
一方、OS120は、アプリケーション110から印刷設定受付要求を受けると、プリンタドライバ130の印刷設定部131に対し、設定受付要求を行うと共に、アプリケーション110から受け取ったDEVMODEを渡す(S102)。
そして、印刷設定部131は、この設定受付要求を受けると、印刷設定受付のためのGUIをPC10のディスプレイに表示させ、ユーザからの設定操作を受け付ける(S103)。
図6に、このステップS103で使用するGUIの例を示す。
この図に示す印刷設定画面200は、4つの操作部201〜204により、給紙トレイ、用紙サイズ、原稿方向及び印刷部数の各項目について、印刷設定を受け付けるための画面である。そして、OKボタン205の押下により、設定の入力を確定させ、キャンセルボタン206の押下により、印刷設定を変更せずに設定操作を終了することができる。
受け付ける設定項目については一例であり、もちろん、さらに広範な項目についての設定を受け付けることも考えられる。また、ステップS102でOS120から受け取ったDEVMODEが示す設定内容を、この印刷設定画面200を表示する際の各項目の初期値とする。ただし、DEVMODEにより規定される全ての設定項目について設定を受け付ける必要はない。
図5の説明に戻ると、ユーザが印刷設定画面200においてOKボタン205を押下した場合、印刷設定部131は、印刷設定画面200において受け付けた設定内容をDEVMODEに保存する(ステップS102で受け取ったDEVMODEから変更されていない部分は元のままとする)(S104)。
その後、印刷設定部131は、印刷設定受付要求に対する応答と共に、ステップS104で保存したDEVMODEをOS120に返す(S105)。そして、OS120は、印刷設定受付要求に対する応答と共に、そのDEVMODEをアプリケーション110に返す(S106)。
そして、アプリケーション110がそのDEVMODEを、現在の印刷設定の内容を表す値として保持し(S107)、印刷設定の受付に関する処理を終了する。
なお、ステップS103でキャンセルボタン206が押下された場合には、ステップS104をスキップしてステップS105に進む。この場合、アプリケーション110が持つDEVMODEの値は更新されない。
以上の処理により、アプリケーション110は、印刷設定部131が提供するGUIを利用して、ユーザから印刷に使用する印刷設定を受け付けることができる。
次に、図7乃至図9に、アプリケーション110がOS120に印刷の実行を要求する場合の各部の動作シーケンスを示す。なお、説明を簡単にするため、まずアプリケーション110からOS120への印刷開始要求が1つしかない単純な動作例を示す。印刷開始要求が複数ある場合の動作については、後述する。
アプリケーション110は、ユーザ又は他のアプリやOS120等から印刷の実行を指示されると、図7に示すように、OS120に対して印刷開始要求を行う(S111)。また、この印刷開始要求と共に、実行指示時点の印刷設定の内容を示すDEVMODEも渡す。
一方、OS120は、この印刷開始要求を受け取ると、プリンタドライバ130の印刷設定部131及び描画部132に対し、印刷準備前通知(S112)及び印刷準備要求(S117)を順次行い、これらの通知及び要求に応じた動作を行わせることにより、プリンタドライバ130を、アプリケーション110から要求された印刷、すなわち印刷コマンドや印刷データを生成してプリンタ20に送信する動作の準備をさせる。
この準備の完了後、アプリケーション110は、図8に示すように、OS120に対して印刷実行要求を行う(S131)。そして、この要求に応じて、OS120がプリンタドライバ130の印刷設定部131及び描画部132に対し、文書印刷開始前通知(図8のS132)及び文書印刷開始要求(図9のS151)を順次行い、これらの通知及び要求に応じた動作を行わせることにより、プリンタドライバ130に、アプリケーション110から要求された印刷に必要な、印刷コマンドの生成及びプリンタ20への送信を行わせる。
ここで、OS120は、印刷設定部131及び描画部132に対して行う上記の4つの通知及び要求を、全てDDIにおいて定義されている関数のコールとして行う。2つの「通知」については、動作の要求というよりは状態の通知が主な機能であるので「通知」の語を用いたが、4つとも全て「要求」と呼んでも差し支えない。
以下、これらの通知及び要求に応じて印刷設定部131及び描画部132が行う動作について順次説明する。
図7に示すように、印刷開始要求を受け取ったOS120が最初に行うのは、印刷設定部131に対する印刷準備前通知の送信である(S112)。この印刷準備前通知は、描画部132に印刷準備要求を行うことを予め印刷設定部131に通知し、印刷準備要求の前に行っておくべき動作があれば通知の時点でこれを行うことができるようにするためのものである。そして、この印刷準備前通知は、OS120により、Windows(登録商標)2000/XP/Server2003/Vista/Server2008におけるDDIであるDrvDocumentEvent()関数が、「DOCUMENTEVENT_CREATEDCPRE」が指定されコールされることに相当する。また、OS120は、この印刷準備前通知と共に、印刷に使用する予定の、アプリケーション110から受け取ったDEVMODEも印刷設定部131に渡す。
そして、印刷設定部131は、この印刷準備前通知があると、受け取ったDEVMODEに、設定ID作成用の共有キーとしてタイマ情報を追加する(S113)と共に、その追加後のDEVMODEを後で参照できるように保持する(S114)。
ここで、タイマ情報として、例えば、GetTickCount()というAPIで取得できる、システムが起動してからのタイマの計測時間を用いることができる。ただし、共有キーとしては、他のDEVMODEと内容が重複しないような情報であれば、他の情報を用いてもよく、印刷設定部131がオリジナルのIDを作成することも考えられる。
また、図10に示すように、DEVMODEには、OSで定義されているパブリック領域と、各プリンタドライバのベンダが任意に定義可能なプライベート領域という領域がある。そして、プライベート領域には、プリンタドライバのベンダが任意に設定項目を設けることができるため、このプライベート領域に、共有キーを書き込むための設定項目を用意しておけばよい。
図7の説明に戻ると、ステップS114の後、印刷設定部131は印刷準備前通知に対する応答と共に、共有キーを追加したDEVMODEをOS120に返し(S115)、印刷準備前通知に応じた処理を終了する。
また、OS120は、この応答を受けると、印刷設定部131に渡したDEVMODEに代えて、ステップS115で受け取ったDEVMODEを保持する(S116)。
次に、OS120は、描画部132に対して印刷準備要求を送信する(S117)。この印刷準備要求は、描画部132に特定のDEVMODEの値に従った印刷コマンドや印刷データの生成を準備させるためのものである。そして、この印刷準備要求は、OS120により、Windows(登録商標)2000/XP/Server2003/Vista/Server2008におけるDDIであるDrvEnablePDEV()関数がコールされることに相当する。また、OS120は、この印刷準備要求と共に、印刷に使用する予定のDEVMODE(ここでは、アプリケーション110から受け取ったDEVMODEに共有キーが追加されたもの)を描画部132に渡す。
そして、描画部132は、この印刷準備要求があると、渡されたDEVMODEを保持し、そのDEVMODEが示す設定内容に従った印刷コマンドの生成処理を準備する(S118)。また、後でジョブと対応する一意の設定IDを生成するためのキー情報として用いるべく、印刷準備要求の引数として渡されたプリンタハンドルを、DEVMODEと対応づけて保持する(S119)。その後、描画部132は印刷準備要求に対する応答をOS120に返し(S120)、印刷準備要求に応じた処理を終了する。なお、OS120が提供するDDIの機能では、これ以降、ジョブの実行に使用する印刷設定の内容を変更することはできない。
OS120は、この応答を受けると、印刷開始要求に対する応答を、以後その印刷開始要求と対応する印刷実行要求を行う際に指定すべき識別情報(ハンドル:プリンタハンドルとは異なる)と共に、アプリケーション110に送信(S121)し、印刷開始要求に応じた処理を終了する。
一方、アプリケーション110は、ステップS121での応答の受信により、実行しようとしている印刷の準備が完了したことがわかる。そこで次に、図9に示すように、OS120に対して印刷実行要求を行う(S131)。このとき、ステップS121で受信した識別情報を印刷実行要求に付す。
OS120は、この印刷実行要求を受けると、付された識別情報により、その印刷実行要求が、図7のステップS111で受けた印刷開始要求と対応する印刷実行要求であると認識できる。そしてまず、印刷設定部131に対して、ステップS111の印刷実行要求に応じて行った印刷準備前通知と対応する文書印刷開始前通知を送信する(S132)。この文書印刷開始前通知は、描画部132に文書印刷開始要求を行うことを予め印刷設定部131に通知し、文書印刷開始要求(に応じた印刷データの生成開始及びプリンタ20における印刷実行)の前に行っておくべき動作があれば通知の時点でこれを行うことができるようにするためのものである。そして、この文書印刷開始前通知は、OS120により、Windows(登録商標)2000/XP/Server2003/Vista/Server2008におけるDDIであるDrvDocumentEvent()関数が、「DOCUMENTEVENT_STARTDOCPRE」が指定されコールされることに相当する。
なお、ここでは印刷準備要求は1回のみであり、印刷設定部131に印刷準備前通知は一度しかなされていないが、後述のように、複数回の印刷準備要求がなされている場合もある。OS120は、このような場合でも、印刷実行要求に付された識別情報に基づき、印刷実行要求、印刷開始要求及び印刷準備前通知の対応関係を把握し、印刷準備前通知に応じて印刷設定部131に保持させたDEVMODEを用いた印刷に関する文書印刷開始前通知を適切に行う機能を有する。
従って、アプリケーション110が印刷実行要求に付す識別情報は、実質的には、印刷に使用するDEVMODEを指定する情報として機能する。
一方、印刷設定部131は、ステップS132の文書印刷開始前通知があると、印刷設定の変更指示を受け付けるためのGUIをPC10のディスプレイに表示させ、ユーザからの設定変更操作を受け付ける(S133)。この処理は、設定受付手段の機能と対応する処理である。
そして、ここで受け付ける設定変更は、図5のステップS103で受け付けた項目の全部あるいは一部であってもよいが、ステップS103では受け付けていない追加的な設定項目であってもよい。これらの両方を含んでいてもよい。また、印刷に使用する旨指定されたDEVMODEに含まれている項目であっても、まだ含まれていない追加的な項目であってもよい。DEVMODEに含まれている項目について設定を受け付ける場合には、DEVMODEにおける値を、初期値としてGUIに表示させるとよい。
図11に、ステップS121で使用するGUIの例を示す。
この図に示す印刷設定画面210は、2つの入力部211,212でプリンタ20においてユーザの利用権限把握のための認証に使用するユーザID及びパスワードの設定を受け付けるための画面である。そして、OKボタン213の押下により、設定の入力を確定させ、キャンセルボタン214の押下により、印刷設定を変更せずに設定操作を終了することができる。
この印刷設定画面210で受け付ける設定内容は、図5のステップS103では受け付けていない設定内容である。
図9の説明に戻ると、ユーザが印刷設定画面210においてOKボタン213を押下した場合、印刷設定部131は、その受け付けた設定内容を印刷設定保持モジュール140に保持させるべく、まず、印刷に使用予定のDEVMODEに書き込まれている共有キーと、文書印刷開始前通知の引数として渡された情報のうちキー情報として用いるプリンタハンドルとから、印刷実行要求により実行を指示されたジョブと対応する一意の設定IDを生成する(S134)。
ここで、図12にステップS134で行う設定IDの生成処理のフローチャートを示す。
この図に示すように、設定IDを生成する場合、印刷設定部131(として機能するCPU11)はまず、印刷準備前通知と共に渡され、図7のステップS114で保持したDEVMODEであって、文書印刷開始前通知にて実行予定を通知されたジョブに使用するものから、設定ID生成の共有キーとして使用する所定項目の情報(ここではタイマ情報)を取得する(S11)。その後、OS120から渡された印刷準備前通知の引数であって設定ID作成のキー情報として使用するプリンタハンドルの値を取得する(S12)。
そしてその後、ここまでに取得した共有キー及びプリンタハンドルを所定のアルゴリズムに従って処理して設定IDを生成し(S13)、処理を終了する。ここで使用するアルゴリズムは、単に2つのデータをマージするような単純なものでもよいし、元のデータがわからないようにハッシュ処理等を行ってもよい。ただし、ジョブに対する一意性は失わないアルゴリズムを用いる。
このような処理により設定IDを生成すると、ジョブ毎に異なる共有キー及びキー情報を用いて、ジョブと対応する一意な設定IDを生成することができる。ここでは、共有キーとして、DEVMODEが印刷設定部131に渡された時刻を使用しているため、この情報のみで、概ね一意性を確保できる。そしてさらに、キー情報として、印刷を要求するアプリケーションに応じて異なる値を取るプリンタハンドルを用いているため、同時刻に異なるアプリケーションから印刷の要求があった場合でも、設定IDをジョブ毎に異なるものとし、設定IDの一意性を確保できる。
また、設定IDの素にする共有キー及びキー情報は後述のように描画部132においても同じ値を取得できるため、印刷設定部131と描画部132とが通信しなくても、印刷設定部131と描画部132の双方において、同じジョブに対しては同じ設定IDを生成することができる。
以上の設定ID生成処理において、CPU11は第1のID生成手段として機能する。
図8の説明に戻ると、ステップS134の後、印刷設定部131は、ステップS133で受け付けた設定内容を保持させるべく、印刷設定保持モジュール140を起動する(S115)。そして、起動が完了すると、印刷設定保持モジュール140がその旨を通知してくるので(S136)、次の処理に進む。なお、ステップS135の時点で印刷設定保持モジュール140が既に起動されている場合には、そのことを確認するだけでよい。
次に、印刷設定部131は、印刷設定保持モジュール140に対し、印刷設定保持要求を行い、ステップS134で生成した設定IDと、ステップS133で受け付けた設定内容のデータとを渡す(S122)。この処理は、設定保持手段の機能と対応する処理である。
印刷設定保持モジュール140は、この印刷設定保持要求に応じて必要なメモリ領域を確保し、受け取った設定IDと設定内容とを対応させて保持して(S138)、印刷設定保持要求に対する応答を返す(S139)。
そして、印刷設定部131は、この応答を受け取ると、文書印刷開始前通知に対する応答をOS120に返し(S140)、文書印刷開始前通知に応じた処理を終了する。
なお、印刷設定画面210においてキャンセルボタン214が押下された場合には、印刷設定部131は、ステップS134乃至S139の処理をスキップしてステップS140の応答を行う。
いずれの場合も、OS120は、S140の応答を受けると、次に描画部132に対して文書印刷開始要求を送信する(図9のS151)。この文書印刷開始要求は、描画部132に、既に準備させてある印刷コマンドや印刷データの生成を実行させてプリンタ20に送信させ、印刷の実行を指示させるためのものである。そして、この文書印刷開始要求は、OS120により、Windows(登録商標)2000/XP/Server2003/Vista/Server2008におけるDDIであるDrvStartDoc()関数がコールされることに相当する。
またこのとき、OS120は、文書印刷開始前通知の場合と同様、印刷実行要求に付された識別情報に基づき、印刷実行要求、印刷開始要求及び印刷準備要求の対応関係を把握し、印刷準備要求に応じて描画部132に保持させたDEVMODEを用いた印刷に関する文書印刷要求を適切に行う機能を有する。
そして、描画部132は、この文書印刷開始要求があると、印刷に使用する旨指定されたDEVMODEに書き込まれている共有キーと、図7のステップS119でそのDEVMODEと対応づけて保持したキー情報であるプリンタハンドルとから、文書印刷開始要求により実行を指示されたジョブと対応する一意の設定IDを生成する(S152)。
ここで、図13にステップS152で行う設定IDの生成処理のフローチャートを示す。
この図に示すように、設定IDを生成する場合、描画部132(として機能するCPU11)はまず、印刷準備要求と共に渡され、図7のステップS118で保持したDEVMODEであって、文書印刷開始要求にて印刷に使用する旨が指定されたものから、設定ID生成の共有キーとする所定項目の情報を取得する(S21)。その後、図7のステップS119でそのDEVMODEと対応づけてキー情報として保持したプリンタハンドルの値を取得する(S22)。そしてその後、ここまでに取得した共有キー及びプリンタハンドルを図11のステップS13の場合と同じ所定のアルゴリズムに従って処理して設定IDを生成し(S23)、処理を終了する。以上の設定ID生成処理において、CPU11は第2のID生成手段として機能する。
そして、以上の処理により、同じジョブの実行に係る処理中に設定IDを作成するのであれば、図12に示した処理の場合と同じ設定IDが作成される。
すなわち、まず、同じジョブに関する文書印刷開始前通知と印刷準備要求とでは、OS120が同じプリンタハンドルの値を引数とすることがOS120の規格において保証されているため、図13に示す処理においてステップS22で取得するプリンタハンドルの値は、図12のステップS12で取得するプリンタハンドルの値と同じ値となる。また、同じジョブの実行に使用するDEVMODEとしては、印刷設定部131にも、描画部132にも、同じ値のものが通知されるため、ステップS21で取得する共有キーの値は、図12のステップS11で取得する共有キーの値と同じ値となる。
そして、これらの同じプリンタハンドルと共有キーとを同じアルゴリズムに従って処理して設定IDを生成するため、得られる設定IDも当然同じ値となる。
逆に、ジョブが異なる場合、プリンタハンドルの値やDEVMODEが異なるため、得られる設定IDの値も異なることになる。
図9の説明に戻る。
描画部132は、ステップS152で設定IDを生成した後、印刷設定保持モジュール140がその設定IDと対応させて保持している設定内容を取得するべく、印刷設定保持モジュール140に対し、印刷設定取得要求を行い、ステップS152で生成した設定IDを渡す(S153)。
これに対し、印刷設定保持モジュール140は、受け取った設定IDと対応する印刷設定を検索し(S154)、これを発見した場合、印刷設定取得要求に対する応答と共に描画部132に返す(S155)。
これらのステップS153乃至S155の処理が、設定取得手段の機能と対応する処理である。
上述の通り、(1つの印刷開始要求に係る)1つのジョブの実行に関する処理の中で印刷設定部131がステップS134で生成し、ステップS137で印刷設定保持モジュール140に渡す設定IDと、描画部132がステップS153で印刷設定保持モジュール140に渡す設定IDとは同じものになるから、描画部132は、印刷設定部131とは一切通信せずに、ステップS155において、印刷設定部131がステップS137で印刷設定保持モジュール140に保持させた設定内容を取得することができる。
また、描画部132は、ステップS155で印刷設定を受け取ると、取得した印刷設定で、印刷に使用する(ステップS151で指定された)DEVMODEに係る印刷設定の内容を更新する(S156)。この更新は、取得した印刷設定に含まれる各項目の設定内容をDEVMODEの内容に上書き又は追加すれば足り、DEVMODEにあって取得した印刷設定にない項目の設定内容を削除する必要はない。ここで説明している例では、図6に示した画面で受け付けた各項目の設定内容に、図11に示した画面で受け付けたID及びパスワードの設定を追加することになる。
描画部132は、次に、更新後の印刷設定の内容に従って、プリンタ20に送信する印刷コマンドを生成する(S157)。この処理には、プリンタ20側の機能に関する項目の設定内容に従ってプリンタ20に動作を指示するためのコマンドを生成する処理が含まれる。この処理が、印刷指示生成手段の機能と対応する処理である。
その後、描画部132は、ステップS157で生成した印刷コマンドを通信I/F制御部150に渡してプリンタ20に送信させる(S158)。このことにより、プリンタ20に、OS120から要求されたジョブを実行させることができる。
そしてその後、描画部132は文書印刷開始要求に対する応答をOS120に返し(S159)、文書印刷開始要求に応じた処理を終了する。
また、この応答を受け取ると、OS120は、アプリケーション110から受けた印刷実行要求に応じて行うべき処理が全て完了したことがわかるので、アプリケーション110に対し、印刷実行要求に対する応答を返す(S160)。
また、図示は省略したが、ステップS160の印刷実行応答を受け取ると、アプリケーション100は、OS120に対し、図7のステップS121において受け取った識別情報を付して、印刷すべき画像の内容を示すデータを渡す。そして、OS120がこのデータを描画部122に渡し、描画部122が、図9のステップS156で更新した後の印刷設定に従い印刷すべき画像の描画を行って印刷データを生成し、印刷コマンドと同様に通信I/F制御部を介してプリンタ20に渡し、先に送信した印刷コマンドが示す設定内容に従って、印刷データに係る画像を形成させる。
以上で、アプリケーション110が指示されたジョブの実行に係るPC10側の処理は全て完了する。
なお、印刷設定保持モジュール140は、ステップS135で設定内容を描画部に送信した後、その設定内容を削除する(S161)。
また、描画部132が印刷設定保持モジュール140から設定内容を取得した後、印刷設定保持モジュール140が他に設定内容を保持していなければ、印刷設定保持モジュール140はその後適当なタイミングで終了させてしまってよい。描画部132は、例えばステップS158の後で印刷準備要求に応じて保持したまま印刷データの生成処理をしていないDEVMODEがない状態の場合、もはや印刷設定保持モジュール140に設定内容が保持されていないことがわかるので、ハードウェア資源の節約を考慮して、この時点で印刷設定保持モジュール140を停止させることが考えられる(SN)。
この場合、印刷設定保持モジュール140は、設定内容を記憶するメモリ領域を開放し、停止する(S162)。
次に、以上のような構成の効果について説明する。
図14は、この効果について説明するための図である。
上述したPC10は、図14に示すように、印刷設定保持モジュール140を設け、印刷設定部131が、アプリケーション110からOS120に印刷開始要求があった後、すなわちユーザがアプリケーション110に印刷の実行を指示した後で受け付けた印刷設定の内容を、印刷設定保持モジュール140を介して描画部132に渡せるようにした点に特徴を有する。
そして、この特徴により、印刷設定部131と描画部132とを直接通信させなくても、描画部132が印刷準備要求に応じて印刷データの生成を準備した後で、印刷設定部131が受け付けた設定内容を印刷設定保持モジュール140から取得し、その設定内容に基づいて変更することができる。従って、OSの機能との親和性を高いものとすることができる。またこのため、OSのバージョンアップ等があっても、不具合発生の危険を小さいものとすることができる。
また、このとき、設定内容の保持にファイルを使わず、モジュールを利用して、モジュールに動的に設定内容保持のためのメモリ領域を確保/解放させるようにしているため、保持する設定内容を盗用される危険を低減することができる。従って、印刷設定保持モジュール140を利用する構成は、IDやパスワードのような、機密性の高い設定内容の保存に好適である。
また、上述したPC10は、OS120から実行するジョブ毎に印刷設定部131と描画部132に共通して渡され、かつ異なるジョブについては異なる内容が渡されるような情報に基づいて設定IDを生成し、その設定IDと対応づけて印刷設定保持モジュール140に保持させる設定内容を管理する点にも特徴を有する。なお、設定IDを複数項目の情報の組み合わせに基づいて生成するのであれば、その複数項目の情報(上述の例ではプリンタハンドルとDEVMODEに保存した共有キー)の組み合わせが、上記の性質を満たしていればよい。
そして、この特徴により、複数のジョブを同時に取り扱う場合でも、あるジョブに関して印刷設定部131が受け付けた設定内容を、印刷設定部131と描画部132とを直接通信させることなしに、描画部132における同じジョブの印刷コマンド及び印刷データの生成に確実に反映させることができる。
この点につき、アプリケーション110からOS120への印刷開始要求が続けて複数回行われる場合の各部の動作について説明する。
なお、ここで説明に使用する図15乃至図18及び図20においては、スペースの都合上一部の処理を省略したり簡略化したりして示しているが、印刷設定部131や描画部132がOS120からの通知や要求に応じて行う処理は、図7乃至図9を用いて説明したものと同じである。例えば、図15においては図7のステップS114,S116及びS118に相当する処理の図示は省略し、ステップS113に相当する処理(S113a,S113b)は記載を簡単にしているが、印刷設定部131や描画部132は、実際には図7の場合と同じ処理を行う。
また、図15等でDEVMODEに付した「(KEY)」は、共有キーが書き込まれている状態であることを示す。
アプリケーション110からOS120への印刷開始要求が続けて複数回行われる場合としては、まず、アプリケーション110やOS120の機能として、1つのジョブについて複数回の印刷開始要求を必要とする設計を採用した場合が考えられる。
図15及び図16に、この場合の動作シーケンス例を示す。
この場合、例えば図14に示すように、アプリケーション110がOS120に対して2回の印刷開始要求(S111a,S111b)を行い、OS120は、これらの要求それぞれに応じて、印刷設定部131に対する印刷準備前通知の送信(S112a,S112b)と、描画部132に対する印刷準備要求の送信(S117a,S117b)とを行う。そして、印刷制御部131及び描画部132は、それぞれこれらの要求に応じた処理を行う。従って、図8のステップS111乃至S121に相当する処理を2回繰り返すことになる。
その結果、ステップS121bの時点では、描画部132は、DEVMODE_Aに対応するキー情報となるプリンタハンドル及びDEVMODE_Bに対応するキー情報であるプリンタハンドルを保持することになる。また描画部132は、DEVMODE_Aを用いた印刷データの生成と、DEVMODE_Bを用いた印刷データの生成とを準備することになる。
なお、図15では、ステップS121aの印刷開始応答の後で2度目の印刷開始要求が行われるようになっているが、これに限られることはない。アプリケーション110やOS120の側で適宜各通知及び要求のタイミング管理を適切に行えば、印刷開始要求の送信タイミングは任意であり、複数の印刷開始要求に係る処理を並行して行ってもよい。
2つの印刷開始要求について印刷開始応答が得られると、アプリケーション110は、図16に示すように、OS120に対し、印刷実行要求を送信する(S131a)。またこのとき、先に送信した印刷開始要求のいずれに対応する印刷実行要求であるかを示すため、図15のステップS121a又はステップS121bで印刷開始応答と共に受け取った識別情報(ここでは識別情報A)を、印刷実行要求に付してOS120に渡す。
OS120は、この印刷開始要求を受けると、印刷実行要求に付された識別情報に従い、対応する印刷開始要求に応じて保持させたDEVMODEを用いた印刷を行うべく、印刷設定部131に対する文書印刷開始前通知の送信(S132a)と、描画部132に対する文書印刷開始要求の送信(S151a)とを行う。そしてこのことにより、ステップS111aの印刷開始要求で指示されたジョブと、ステップS111bの印刷開始要求で指示されたジョブの一方(ここでは前者)をプリンタドライバ130に実行させる。
一方、印刷設定部131は、ステップS132aの文書印刷開始前通知を受けると、図8のステップS133乃至S139の場合と同じように、文書印刷開始前通知において指定されたDEVMODE_Aを用いる印刷に関する印刷設定の変更指示を受け付け、ジョブと対応する設定IDを生成し、印刷設定保持モジュール140を起動して、印刷設定保持モジュール140に変更後の設定内容を設定IDと対応させて保持させる(S133a〜S139a)。
なおこのとき、設定IDの生成に際し、共有キーは、文書印刷開始前通知において指定されたDEVMODE_Aに書き込まれているものを用いる。また、変更指示の受け付けに際しては、どのジョブに関する変更指示を受け付けるのかを、ユーザにわかるように表示してもよい。
また、描画部132は、ステップS151aで文書印刷開始要求を受けると、図9のステップS152乃至S158の場合と同様に、実行を要求されたジョブと対応する設定IDを生成して印刷設定保持モジュール140からその設定IDと対応する設定内容を取得し、その設定内容によりDEVMODE_Aに係る印刷設定を更新して、更新後の印刷設定に基づき印刷コマンドの生成とプリンタへの送信を行う(S152a〜S158a)。
このとき、文書印刷開始要求では、同じジョブに係る文書印刷開始前通知であるステップS132aの文書印刷開始前通知の際と同じプリンタハンドルが引数として渡され、また、設定IDの生成に使用するDEVMODEも同じものであるので、ステップS152aでは、設定IDとして、ステップS134aで作成したもの、すなわちステップS137aで設定内容の保持に用いたものと同じものを生成することができる。
従って、この例のように印刷開始通知が複数ある場合でも、描画部132は、印刷設定部131がこれから実行しようとしているジョブについて受け付けた設定内容を、確実に取得して印刷内容に反映させることができる。
その後の描画等についても、もちろん図7乃至図9に示した例の場合と同様に実行できる。以下に説明する例についても同様である。
なお、図15及び図16に示した例の場合には、2回の印刷開始要求に対し、実際に実行されるジョブは、DEVMODE_Aを用いた1つのみである。
しかし、アプリケーション110が設計上の理由から複数回の印刷開始要求を行うのではなく、ユーザから2つのジョブの実行を指示され、これに応じてそれぞれのジョブに関する印刷開始要求及び印刷実行要求を行うことも考えられる。この場合には、OS120は、各々の印刷開始要求及び印刷実行要求と対応するジョブをプリンタドライバ130に実行させるべく、各々の印刷開始要求についてそれぞれ、印刷準備前通知及び印刷準備要求の送信を行うと共に、各々の印刷実行要求についてそれぞれ、文書印刷開始前通知及び文書印刷開始要求の送信を行う。
図17及び図18に、このような場合の動作シーケンスを示す。ただし、この図にはアプリケーション110からの印刷実行要求に応じた処理のみを示しており、印刷開始要求に応じた処理の内容は図15と同じであるため図示を省略した。
上記の場合、2つのジョブは独立したものであり、アプリケーション110及びOS120は、これらのジョブの実行タイミングを独立に管理する。そして、初めのジョブが完了する前に次のジョブを進行させることもある。
従って、例えば図17及び図18に示すように、アプリケーション110からの識別情報Aを付した印刷実行要求(S131a)に応じてOS120がDEVMODE_Aを用いるジョブについての文書印刷開始前通知を行い、印刷設定部131が印刷設定保持モジュール140に変更後設定内容を保持させた後(S132a〜S140a)、このジョブについての文書印刷開始要求を行う前に、アプリケーション110からの識別情報Bを付した別の印刷実行要求(S131b)に応じて、別のDEVMODE_Bを用いるジョブについての文書印刷開始前通知を行う(S132b)ことも考えられる。
この場合、図19に示すように、印刷設定保持モジュール140には、2つの設定内容が保持されることになる。しかし、印刷設定モジュール140は、これらの設定内容をそれぞれ設定IDと対応づけて保持するため、これらの設定内容を区別して保持することができる。もちろん、異なるジョブについて生成される設定IDは、上述のように互いに異なるものとなる。
また、描画部132は、文書印刷開始要求に応じた処理の中で、印刷設定保持モジュール140が保持している設定内容を取得する(S155a,S155b)。そして、この場合においても、描画部132は、同じジョブについて印刷設定部131が生成した設定IDと同じ設定IDを生成できるので、印刷設定保持モジュール140が複数の設定内容を保持していても、その設定IDをキーに、これから実行しようとしているジョブについて印刷設定部131が受け付けた設定内容を、確実に取得することができる。
この処理は、図17及び図18に示すように、文書印刷開始前通知と文書印刷要求とで、OS120からの送信順が入れ替わったとしても、全く問題なく実行できる。
また、OS120が複数の印刷開始要求を受ける場合としては、異なる複数のアプリケーションからほぼ同時に印刷開始要求を受ける場合も考えられる。
図20に、このような場合の動作シーケンスを示す。ただし、この図にはアプリケーション110からの印刷開始要求に応じた処理のみを示しており、印刷実行要求に応じた処理の内容は、ステップS131bでの印刷実行要求の送信元及びステップS160bでの印刷実行応答の送信先が、ステップS131a及びステップS160aの場合と異なるアプリケーションである点を除いて図17及び図18と同じであるため、図示を省略した。
これらの図に示すように、OS120は、異なる複数のアプリケーション110a,110bから印刷開始要求を受けた場合でも、1つのアプリケーションから複数の印刷開始要求を受けた場合と同様に、各印刷開始要求について、印刷準備前通知及び印刷準備要求の送信を行う。そして、印刷設定部131,描画部132及び印刷設定保持モジュール140は、各通知や要求のもとになった印刷開始要求がどのアプリケーションから出されたものであるかは全く意識せずに動作する。
従って、この場合も、図15乃至図18を用いて説明した例の場合と全く同じように、印刷設定保持モジュール140に、複数のジョブについて受け付けた設定内容をそれぞれ区別して保持させることができ、描画部132は、印刷設定部131がこれから実行しようとしているジョブについて受け付けた設定内容を、確実に取得して印刷内容に反映させることができる。
〔変形例:図21乃至図25〕
以上で実施形態の説明を終了するが、この発明において、装置の構成、具体的な処理内容、設定IDの生成方法、表示する画面の構成、設定内容に含まれる項目の種類、データの形式等が、以上説明してきた実施形態において具体的に説明したものに限られないことは、もちろんである。
例えば、設定IDの生成に使用する情報を変更する例として、図21乃至図25に示すものが考えられる。
図21乃至図23はそれぞれ、この変形例における図7乃至図9と対応する動作シーケンスを示す図、図24及び図25は、それぞれこの変形例における図12及び図13と対応する設定ID生成処理の内容を示すフローチャートである。
この例は、設定IDの生成に、OS120から印刷設定部131と描画部132に共通して渡される情報として、ジョブ名の情報を使用するようにしたものである。この情報も、ジョブ毎に異なるものである。ただし、ジョブ名は、上述の実施形態で用いたプリンタハンドルとは異なり、描画部132に対し、文書印刷開始要求の引数として渡されるものである。
従って、この変形例においては、図21に示す印刷準備要求に応じた描画部132の処理には、図7のステップS119のようなキー情報の保持の処理はない。そして、描画部132は、図23のステップS152′において、文書印刷開始要求の引数として渡されたジョブ名をキー情報として用いて設定IDの生成を行う。
また、印刷設定部131は、設定IDを生成するタイミングは図8の処理の場合と変わらないが、図22のステップS134′に示すように、文書印刷開始前通知の引数として渡されたジョブ名をキー情報として用いて設定IDの生成を行う。
なお、どちらの場合も、設定IDの生成に使用する共有キーは、ジョブの実行に使用するDEVMODEから取得する。
図21乃至図23に示した動作シーケンスは、これらの点を除いては、図7乃至図9に示したものと同じである。
そして、この動作シーケンスにおいて、図22のステップS134′での設定IDの生成は、図24のフローチャートに示す処理により行われる。
この処理は、図12に示した処理とほぼ同じであり、ステップS12′でプリンタハンドルに代えてジョブ名の値を取得し、ステップS13′でそのジョブ名と共有キーとを用いて設定IDを生成する点が異なるのみである。
また、図23のステップS152′における設定IDの生成は、図25のフローチャートに示す処理により行われる。
この処理は、図13に示した処理とほぼ同じであり、ステップS22′でOS120から渡された文書印刷開始要求の引数であるジョブ名の値を取得し、ステップS23′でそのジョブ名と共有キーとを用いて設定IDを生成する点が異なるのみである。
以上のような処理によっても、図1乃至図20を用いて説明した実施形態の場合と同様、印刷設定保持モジュール140に、複数の印刷ジョブについて受け付けた設定内容をそれぞれ区別して保持させることができ、描画部132は、印刷設定部131がこれから実行しようとしている印刷ジョブについて受け付けた設定内容を、確実に取得して印刷内容に反映させることができる。
なお、上述の実施形態では、印刷設定保持モジュール140はプリンタドライバ130とは別のモジュールであるとしたが、プリンタドライバ130自体の一部として構成することもできる。また、逆に、プリンタドライバ130とプロセス間通信が可能であれば、印刷設定保持モジュール140がプリンタドライバ130と同じハードウェアにより実行されることは、必須ではない。
また、印刷設定部131が受け付けて印刷設定保持モジュール140に保持させる設定の内容によっては、描画部132が、OS120から指定されたDEVMODEの内容を全く使用せず、印刷設定保持モジュール140から取得した設定内容のみに基づいて印刷データや印刷コマンドの生成を行うようにしてもよい。
また、描画部132は、必ずしも印刷データと印刷コマンドの両方を生成することを要しない。
また、上述の実施形態においては、印刷設定保持モジュール140の起動は、印刷設定保持要求の送信直前に行うようにしていた(図8のS135等)。しかし、この起動は、印刷設定保持要求を印刷設定保持モジュール140に送信する前に任意のタイミングで行えばよく、図8に示したように文書印刷開始前通知に応じた処理の中で行うことは、必須ではない。また、印刷設定保持モジュール140を、常に起動したままにしておくことも、妨げられない。
また、この発明のプログラムは、コンピュータにハードウェアを制御させて上述したようなプリンタドライバ130又はこれに加えて印刷設定保持モジュール140として機能させるためのプログラムであり、予めROMやHDD等に記憶させておくほか、CD−ROMあるいはフレキシブルディスク等の不揮発性記録媒体(メモリ)に記録して提供し、そのメモリからこのプログラムをRAMに読み出させてCPUに実行させたり、プログラムを記録した記録媒体を備える外部機器あるいはプログラムをHDD等の記憶手段に記憶した外部機器からダウンロードして実行させたりしても、同様の効果を得ることができる。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
以上説明してきたように、この発明の印刷制御装置、印刷制御方法、プログラム又は記録媒体によれば、印刷装置を制御して印刷を実行させる場合において、印刷開始指示後にユーザからの設定変更操作を受け付けてその内容を印刷コマンドや印刷データの生成動作に反映させる機能を、OSとの親和性が高く、不具合発生の危険が低い手法で実現できるようにすることができる。
従って、この発明を適用することにより、安定性の高い印刷制御を行うことができる。
この発明の印刷制御装置の実施形態であるPCと、そのPCによる制御対象の印刷装置であるプリンタとを備えたプリントシステムの構成例を示すブロック図である。 図1に示したPCのハードウェア構成を示すブロック図である。 図1に示したPCの機能のうち、実施形態の特徴に関連する部分の機能構成を示す、機能ブロック図である。 図1に示したPCにおけるプリンタドライバプログラムのインストール/アンインストール時のモジュールライフサイクルを示す図である。 図1に示したPCにおいてアプリケーションがOSに印刷の実行を要求する前に印刷設定の操作を受け付ける場合の各部の動作シーケンス例を示す図である。
図5のステップS103で使用するGUIの例を示す図である。 図1に示したPCにおいてアプリケーションがOSに印刷の実行を要求する場合の各部の動作シーケンス例を示す図である。 その続きを示す図である。 そのさらに続きを示す図である。 DEVMODEに記載する情報について説明するための図である。
図8のステップS133で使用するGUIの例を示す図である。 図8のステップS134で行う設定IDの生成処理のフローチャートである。 図9のステップS152で行う設定IDの生成処理のフローチャートである。 本発明の実施形態の効果について説明するための図である。 図1に示したPCにおいてアプリケーションがOSに印刷の実行を要求する場合の図7乃至図9とは異なる動作シーケンス例を示す図である。
その続きを示す図である。 図1に示したPCにおいてアプリケーションがOSに印刷の実行を要求する場合のさらに別の動作シーケンスの一部を示す図である。 その続きを示す図である。 図17及び図18に示す動作シーケンスのある時点における印刷設定保持モジュールの状態を示す図である。 図1に示したPCにおいてアプリケーションがOSに印刷の実行を要求する場合のさらに別の動作シーケンスの一部を示す図である。 この発明の実施形態の変形例における図7と対応する動作シーケンスの例を示す図である。 同じく図8と対応する動作シーケンスの例を示す図である。 同じく図9と対応する動作シーケンスの例を示す図である。 同じく図12と対応する設定IDの生成処理のフローチャートである。 同じく図13と対応する設定IDの生成処理のフローチャートである。
符号の説明
10:PC、20:プリンタ、30:通信経路、110:アプリケーション、
120:OS、130:プリンタドライバ、131:印刷設定部、132:描画部、
133:UI制御部、140:印刷設定保持モジュール、141:通信部、
142:設定保持部、150:通信I/F制御部

Claims (14)

  1. 印刷装置を制御するためのドライバ手段を有する印刷制御装置であって、
    前記ドライバ手段が、
    前記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段を備える第1のモジュールと、
    前記印刷装置に印刷を実行させるよう要求された場合に、印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する印刷指示生成手段を備える第2のモジュールと
    を備え、
    前記第1のモジュールは、
    前記印刷装置に印刷を実行させることを通知された場合に共有情報を所定の記憶領域に記憶する記憶制御手段と、
    前記記憶制御手段によって前記所定の記憶領域に記憶された共有情報に基づき、前記印刷装置に実行させるジョブと対応する一意なIDを生成する第1のID生成手段と、
    所定の印刷設定保持モジュールに前記設定受付手段が受け付けた設定内容を渡し、前記第1のID生成手段が生成した一意なIDと対応づけて保持させる設定保持手段とを有し、
    前記第2のモジュールは、
    前記印刷装置に印刷を実行させるよう要求された場合に、前記第1のモジュールによって前記所定の記憶領域に記憶された共有情報に基づき、該印刷に係るジョブと対応する、前記第1のID生成手段が生成したものと同じ一意なIDを生成する第2のID生成手段と、
    前記印刷設定保持モジュールから前記第2のID生成手段が生成した一意なIDと対応づけて保持されている設定内容を取得する設定取得手段とを有することを特徴とする印刷制御装置。
  2. 請求項1に記載の印刷制御装置であって、
    前記印刷設定保持モジュールを備え、
    該印刷設定保持モジュールは、
    前記設定保持手段から設定内容の保持を要求された場合に、前記第1のID生成手段が生成した一意なIDと対応づけて該設定内容を保持する手段と、
    前記設定取得手段からIDを指定して設定内容の取得を要求された場合に、該設定取得手段に該要求に係るIDと対応させて保持している設定内容を渡す手段との機能を有し、
    前記設定保持手段からの要求に応じて保持した設定内容を、前記設定取得手段に渡すか、当該印刷設定保持モジュールの終了を命令されるまで保持し続けることを特徴とする印刷制御装置。
  3. 請求項2に記載の印刷制御装置であって、
    前記印刷設定保持モジュールは、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、それぞれその要求に係るIDと対応づけて保持することを特徴とする印刷制御装置。
  4. 請求項1乃至3のいずれか一項に記載の印刷制御装置であって、
    アプリケーションからの印刷指示に応じて、前記第1のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第2のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備え、
    前記第1のID生成手段は、前記オペレーティングシステムが前記第1のモジュール及び前記第2のモジュールに対し前記印刷を実行させる通知及び前記印刷を実行させる要求を行う際に渡す情報のうち、前記第1のモジュール及び前記第2のモジュールの双方に共通して渡す情報に基づき、前記一意なIDを生成する手段であることを特徴とする印刷制御装置。
  5. 請求項1乃至4のいずれか一項に記載の印刷制御装置であって、
    アプリケーションからの印刷指示に応じて、前記第1のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第2のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備え、
    前記所定の記憶領域は、前記オペレーティングシステムから渡される印刷に使用する設定内容のうち、予め定められた特定の項目の記憶領域であることを特徴とする印刷制御装置。
  6. 請求項1乃至5のいずれか一項に記載の印刷制御装置であって、
    前記印刷指示生成手段は、前記第2のモジュールが前記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、前記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って前記印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する手段であることを特徴とする印刷制御装置。
  7. コンピュータを、印刷装置を制御するためのドライバ手段として機能させるためのプログラムであって、
    前記ドライバ手段が、
    前記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段を備える第1のモジュールと、
    前記印刷装置に印刷を実行させるよう要求された場合に、印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する印刷指示生成手段を備える第2のモジュールと
    を備え、
    前記第1のモジュールは、
    前記印刷装置に印刷を実行させることを通知された場合に共有情報を所定の記憶領域に記憶する記憶制御手段と、
    前記記憶制御手段によって前記所定の記憶領域に記憶された共有情報に基づき、前記印刷装置に実行させるジョブと対応する一意なIDを生成する第1のID生成手段と、
    所定の印刷設定保持モジュールに前記設定受付手段が受け付けた設定内容を渡し、前記第1のID生成手段が生成した一意なIDと対応づけて保持させる設定保持手段とを有し、
    前記第2のモジュールは、
    前記印刷装置に印刷を実行させるよう要求された場合に、前記第1のモジュールによって前記所定の記憶領域に記憶された共有情報に基づき、該印刷に係るジョブと対応する、前記第1のID生成手段が生成したものと同じ一意なIDを生成する第2のID生成手段と、
    前記印刷設定保持モジュールから前記第2のID生成手段が生成した一意なIDと対応づけて保持されている設定内容を取得する設定取得手段とを有することを特徴とするプログラム。
  8. 請求項7に記載のプログラムであって、
    前記コンピュータを前記印刷設定保持モジュールとして機能させるためのプログラムも含み、
    前記印刷設定保持モジュールは、
    前記設定保持手段から設定内容の保持を要求された場合に、前記第1のID生成手段が生成した一意なIDと対応づけて該設定内容を保持する手段と、
    前記設定取得手段からIDを指定して設定内容の取得を要求された場合に、該設定取得手段に該要求に係るIDと対応させて保持している設定内容を渡す手段との機能を有し、
    前記設定保持手段からの要求に応じて保持した設定内容を、前記設定取得手段に渡すか、当該印刷設定保持モジュールの終了を命令されるまで保持し続けることを特徴とするプログラム。
  9. 請求項8に記載のプログラムであって、
    前記印刷設定保持モジュールは、設定内容の保持の要求を複数受けた場合、各要求に係る設定内容を、その要求に係るIDと対応づけて保持することを特徴とするプログラム。
  10. 請求項7乃至9のいずれか一項に記載のプログラムであって、
    前記コンピュータは、アプリケーションからの印刷指示に応じて、前記第1のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第2のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものであり、
    前記第1のID生成手段は、前記オペレーティングシステムが前記第1のモジュール及び前記第2のモジュールに対し前記印刷を実行させる通知及び前記印刷を実行させる要求を行う際に渡す情報のうち、前記第1のモジュール及び前記第2のモジュールの双方に共通して渡す情報に基づき、前記一意なIDを生成する手段であることを特徴とするプログラム。
  11. 請求項7乃至10のいずれか一項に記載のプログラムであって、
    前記コンピュータは、アプリケーションからの印刷指示に応じて、前記第1のモジュールに対し前記印刷装置に印刷を実行させることを通知すると共に前記第2のモジュールに対し前記印刷装置に印刷を実行させるよう要求するオペレーティングシステムを備えるものであり、
    前記所定の記憶領域は、前記オペレーティングシステムから渡される印刷に使用する設定内容のうち、予め定められた特定の項目の記憶領域であることを特徴とするプログラム。
  12. 請求項7乃至11のいずれか一項に記載のプログラムであって、
    前記印刷指示生成手段は、前記第2のモジュールが前記印刷装置に印刷を実行させるよう要求される前に取得した設定内容を、前記設定取得手段が取得した設定内容により更新し、その更新後の設定内容に従って前記印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する手段であることを特徴とするプログラム。
  13. 請求項7乃至12のいずれか一項に記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
  14. 印刷制御装置がドライバ手段により印刷装置を制御する印刷制御方法であって、
    前記ドライバ手段が、
    前記印刷装置に印刷を実行させることを通知された場合にユーザからその通知に係る印刷に関する設定を受け付ける設定受付手段を備える第1のモジュールの機能により、
    前記印刷装置に印刷を実行させることを通知された場合に共有情報を所定の記憶領域に記憶する記憶制御手順と、
    前記記憶制御手順で前記所定の記憶領域に記憶された共有情報に基づき、前記印刷装置に実行させるジョブと対応する一意なIDを生成する第1のID生成手順と、
    所定の印刷設定保持モジュールに前記設定受付手順で受け付けた設定内容を渡し、前記第1のID生成手順で生成した一意なIDと対応づけて保持させる設定保持手順とを実行し、
    前記印刷装置に印刷を実行させるよう要求された場合に、印刷装置に前記要求に係る印刷を実行させるための印刷コマンド及び/又は印刷データを生成する印刷指示生成手段を備える第2のモジュールの機能により、
    前記印刷装置に印刷を実行させるよう要求された場合に、前記第1のモジュールによって前記所定の記憶領域に記憶された共有情報に基づき、該印刷に係るジョブと対応する、前記第1のID生成手順で生成したものと同じ一意なIDを生成する第2のID生成手順と、
    前記印刷設定保持モジュールから前記第2のID生成手順で生成した一意なIDと対応づけて保持されている設定内容を取得する設定取得手順とを実行することを特徴とする印刷制御方法。
JP2008230812A 2008-09-09 2008-09-09 印刷制御装置、プログラム、記録媒体及び印刷制御方法 Active JP5245661B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008230812A JP5245661B2 (ja) 2008-09-09 2008-09-09 印刷制御装置、プログラム、記録媒体及び印刷制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008230812A JP5245661B2 (ja) 2008-09-09 2008-09-09 印刷制御装置、プログラム、記録媒体及び印刷制御方法

Publications (2)

Publication Number Publication Date
JP2010066876A JP2010066876A (ja) 2010-03-25
JP5245661B2 true JP5245661B2 (ja) 2013-07-24

Family

ID=42192429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008230812A Active JP5245661B2 (ja) 2008-09-09 2008-09-09 印刷制御装置、プログラム、記録媒体及び印刷制御方法

Country Status (1)

Country Link
JP (1) JP5245661B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5035331B2 (ja) * 2009-12-18 2012-09-26 コニカミノルタビジネステクノロジーズ株式会社 印刷システムおよびプログラム
JP5834526B2 (ja) 2011-06-21 2015-12-24 株式会社リコー 印刷制御プログラム、情報処理装置及び印刷装置
JP5857611B2 (ja) 2011-10-13 2016-02-10 株式会社リコー 情報処理装置、システム、プログラム
JP5919925B2 (ja) * 2012-03-19 2016-05-18 株式会社リコー プログラム、情報処理装置、記憶媒体
JP5919930B2 (ja) * 2012-03-21 2016-05-18 株式会社リコー プログラム、情報処理装置、記憶媒体
JP6303609B2 (ja) * 2014-03-03 2018-04-04 株式会社リコー プログラム、情報処理装置、情報処理方法、及び情報処理システム
US10194038B2 (en) 2016-09-15 2019-01-29 Ricoh Company, Ltd. Information processing apparatus, information processing method, and information processing system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022549A (ja) * 1999-07-13 2001-01-26 Ricoh Co Ltd プリンタシステム
JP2003237147A (ja) * 2002-02-20 2003-08-27 Canon Inc 画像処理方法及びその装置
JP4933302B2 (ja) * 2006-02-24 2012-05-16 キヤノン株式会社 印刷システム及び印刷装置及び再印刷制御方法

Also Published As

Publication number Publication date
JP2010066876A (ja) 2010-03-25

Similar Documents

Publication Publication Date Title
JP5854654B2 (ja) プリントシステム、印刷方法、プリントサーバ、制御方法、及びプログラム
JP5857611B2 (ja) 情報処理装置、システム、プログラム
JP5245661B2 (ja) 印刷制御装置、プログラム、記録媒体及び印刷制御方法
JP7355147B2 (ja) アプリケーションプログラム
JP5321929B2 (ja) ユニバーサルデバイスドライバ、デバイス制御プログラム、情報処理装置、サーバ装置、及び、方法
EP2388685B1 (en) Information processing apparatus and control method thereof, and storage medium
JP7278772B2 (ja) 情報処理装置、制御方法及びアプリケーションプログラム
JP7341647B2 (ja) 情報処理装置、制御方法及びプログラム
US10585631B2 (en) Portable multi-function printing extension computing device
WO2013108377A9 (ja) デバイス、情報処理装置、情報処理システム、制御方法、及びプログラム
JP6303609B2 (ja) プログラム、情報処理装置、情報処理方法、及び情報処理システム
JP5919925B2 (ja) プログラム、情報処理装置、記憶媒体
JP2019149146A (ja) 印刷コンピューティング・デバイス及び印刷コンピューティング・デバイスを動作させる方法
US10817227B2 (en) Printing computing device for operating a printing device
US9262109B2 (en) Print instruction apparatus, printing system, and non-transitory computer readable medium
JP2021043547A (ja) 情報処理装置および情報処理装置の制御方法ならびにプログラム
WO2023190148A1 (ja) サポートプログラム
JP7374625B2 (ja) 印刷システム、および制御方法
WO2022163429A1 (ja) サポートプログラム
JP2012221198A (ja) プリントシステム
WO2023181988A1 (ja) サポートプログラム
JP2012162041A (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP2007199770A (ja) 情報処理装置、アンインストール方法、記憶媒体、プログラム
JP2023153904A (ja) 情報処理装置
JP2024023376A (ja) プログラムセットおよび情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121009

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R151 Written notification of patent or utility model registration

Ref document number: 5245661

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3