(57)【特許請求の範囲】
【請求項１】
プリンタードライバーの印刷設定の機能を定義する第１のファイルを少なくとも含む、前記プリンタードライバーを構成するドライバーセットと、前記ドライバーセットを構成しないファイルであって、前記プリンタードライバーのカスタマイズ内容を示す情報を含む第２のファイルを含むインストーラーパッケージを用いて、前記プリンタードライバーをインストールすることで、前記プリンタードライバーのプリントキューを生成するインストール手段と、
前記プリンタードライバーのインストールが完了した後に、前記第２のファイルを参照し、当該第２のファイル内の情報に基づいて、前記インストールされたプリンタードライバーからアクセスすることが可能な保存領域であって、オペレーティングシステムにより提供される保存領域であって、前記プリントキューに紐付いた保存領域に前記カスタマイズ内容を設定する設定手段と、を有し、
前記保存領域に設定された前記カスタマイズ内容と、前記第１のファイルに記述された複数の印刷設定の競合を解消するためのルールとに従って処理が行われることにより、前記プリンタードライバーの機能がカスタマイズされることを特徴とする情報処理装置。
【請求項２】
前記カスタマイズ内容が設定された保存領域は、前記インストールされたプリンタードライバーに関連付けられたプリントキューに紐付くキュープロパティバッグの領域であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プリンタードライバーは、Ｖ４プリンタードライバーであり、当該Ｖ４プリンタードライバーのインストールに用いる前記ドライバーセットには電子署名が付与されていることを特徴する請求項１又は２に記載の情報処理装置。
【請求項４】
前記保存領域は、前記プリンタードライバーで生成される印刷ジョブに適用すべき印刷設定画面を提供するアプリケーションからアクセスすることが可能であり、
前記アプリケーションは、前記カスタマイズ内容に関するルールと、前記第１のファイルに記述された複数の印刷設定の競合を解消するためのルールとに従って処理を行うことにより、前記印刷設定画面をカスタマイズすることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
プリンタードライバーの印刷設定の機能を定義する第１のファイルを少なくとも含む、前記プリンタードライバーを構成するドライバーセットと、前記ドライバーセットを構成しないファイルであって、前記プリンタードライバーのカスタマイズ内容を示す情報を含む第２のファイルを含むインストーラーパッケージに含まれるドライバーインストールプログラムであって、
前記ドライバーインストールプログラムは、情報処理装置のコンピュータに、
前記ドライバーセットを用いて、情報処理装置にプリンタードライバーをインストールさせることで、前記プリンタードライバーのプリントキューを生成させる制御工程と、
前記プリンタードライバーのインストールが完了した後に、前記第２のファイルを参照し、当該第２のファイル内の情報に基づいて、前記情報処理装置にインストールされたプリンタードライバーからアクセスすることが可能な保存領域であって、オペレーティングシステムにより提供される保存領域であって、前記プリントキューに紐付いた保存領域に前記カスタマイズ内容を設定する設定工程と、を実行させ、
前記ドライバーインストーラによりインストールされたプリンタードライバーが前記情報処理装置上で利用される場合に、前記保存領域に設定された前記カスタマイズ内容と、前記第１のファイルに記述された複数の印刷設定の競合を解消するためのルールとに従って処理が行われることによって前記プリンタードライバーの機能がカスタマイズされることを特徴とするドライバーインストールプログラム。
【請求項６】
前記カスタマイズ内容が設定された保存領域は、前記インストールされたプリンタードライバーに関連付けられたプリントキューに紐付くキュープロパティバッグの領域であることを特徴とする請求項５に記載のドライバーインストールプログラム。
【請求項７】
前記プリンタードライバーは、Ｖ４プリンタードライバーであり、当該Ｖ４プリンタードライバーのインストールに用いる前記ドライバーセットには電子署名が付与されていることを特徴する請求項５又は６に記載のドライバーインストールプログラム。
【請求項８】
前記ドライバーインストールプログラムは、前記コンピュータに、
インストールすべきプリンタードライバーの選択を受け付けさせる受付工程と、
前記選択されたプリンタードライバーが前記情報処理装置にインストールされているか判定させる判定工程と、を前記コンピュータに更に実行させ、
前記制御工程では、前記判定工程で前記選択されたプリンタードライバーがインストールされていないと判定された場合は、前記プリンタードライバーをインストールさせることで、前記プリンタードライバーの前記プリントキューを生成し、
前記判定工程で前記選択されたプリンタードライバーがインストールされていると判定された場合は、当該インストールされているプリンタードライバーに関連付けて新たなプリントキューを生成することを特徴とする請求項５乃至７のいずれか１項に記載のドライバーインストールプログラム。
【請求項９】
情報処理装置の制御方法であって、
プリンタードライバーの印刷設定の機能を定義する第１のファイルを少なくとも含む、前記プリンタードライバーを構成するドライバーセットと、前記ドライバーセットを構成しないファイルであって、前記プリンタードライバーのカスタマイズ内容を示す情報を含む第２のファイルを含むインストーラーパッケージを用いて、前記プリンタードライバーをインストールすることで、前記プリンタードライバーのプリントキューを生成するインストール工程と、
前記プリンタードライバーのインストールが完了した後に、前記第２のファイルを参照し、当該第２のファイル内の情報に基づいて、前記インストールされたプリンタードライバーからアクセスすることが可能な保存領域であって、オペレーティングシステムにより提供される保存領域であって、前記プリントキューに紐付いた保存領域に前記カスタマイズ内容を設定する設定工程と、を有し、
前記保存領域に設定された前記カスタマイズ内容と、前記第１のファイルに記述された複数の印刷設定の競合を解消するためのルールとに従って処理が行われることにより、前記プリンタードライバーの機能がカスタマイズされることを特徴とする制御方法。
【請求項１０】
前記設定手段は、
前記プリントキューが生成されたことに応じて、前記第２のファイルを参照し、当該第２のファイル内の情報に基づいて前記プリントキューに紐付いた保存領域に前記カスタマイズ内容を設定することを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記設定工程では、前記コンピュータに、
前記プリントキューが生成されたことに応じて、前記第２のファイルを参照させ、当該第２のファイル内の情報に基づいて前記プリントキューに紐付いた保存領域に前記カスタマイズ内容を設定させることを特徴とする請求項５に記載のドライバーインストールプログラム。
【請求項１２】
前記設定工程では、
前記プリントキューが生成されたことに応じて、前記第２のファイルを参照し、当該第２のファイル内の情報に基づいて前記プリントキューに紐付いた保存領域に前記カスタマイズ内容を設定することを特徴とする請求項９に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプリンタードライバーを制御する技術に関する。
【背景技術】
【０００２】
従来、プリンタードライバーの機能を一部制限する技術が開示されている。
【０００３】
特許文献１はプリンタードライバーのドライバセットごと変更することによって、プリンタードライバーのカスタマイズを実現する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２３５１７３
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、オペレーティングシステム（ＯＳ）の印刷システムの環境によっては、ドライバセットを変更することが制限されている。制限を実現する技術として電子署名の技術が挙げられる。具体的にはドライバセットに電子署名が付与されており、特許文献１のようにドライバセットを変更してしまうと、ＯＳによる電子署名の検証に失敗し、プリンタードライバーとして動作の保証がされない。その結果、ドライバセットの変更によるプリンタードライバーのカスタマイズが困難となっていた。
【０００６】
これに対して本発明はドライバセットを変更することが制限されている環境であっても、禁則に従った処理を行うことでプリンタードライバーのカスタマイズを実現し、ユーザーに利便性の高い印刷システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明に係る情報処理装置は、
プリンタードライバーの印刷設定の機能を定義する第１のファイルを少なくとも含む、前記プリンタードライバーを構成するドライバーセットと、前記ドライバーセットを構成しないファイルであって、前記プリンタードライバーのカスタマイズ内容を示す情報を含む第２のファイルを含むインストーラーパッケージを用いて、前記プリンタードライバーをインストールすることで、前記プリンタードライバーのプリントキューを生成するインストール手段と、
前記プリンタードライバーのインストールが完了した後に、前記第２のファイルを参照し、当該第２のファイル内の情報に基づいて、前記インストールされたプリンタードライバーからアクセスすることが可能な保存領域であって、オペレーティングシステムにより提供される保存領域であって、前記プリントキューに紐付いた保存領域に前記カスタマイズ内容を設定する設定手段と、を有し、
前記保存領域に設定された前記カスタマイズ内容と、前記第１のファイルに記述された複数の印刷設定の競合を解消するためのルールとに従って処理が行われることにより、前記プリンタードライバーの機能がカスタマイズされることを特徴とする。
【発明の効果】
【０００８】
本発明により、ドライバセットを変更することが制限されている環境であっても、禁則に従った処理を行うことでプリンタードライバーのカスタマイズを実現し、ユーザーに利便性の高い印刷システムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】コンピューターシステムのハードウェアとソフトウェアのブロック構成図である。
【図２】印刷処理システムのブロック構成図である。
【図３】印刷設定定義ファイル（ＧＰＤ）の一部である。
【図４】プリンタドライバーインストールパッケージの一例を示すブロック図である。
【図５】インストーラーの処理を示すフローチャートである。
【図６】インストール設定ファイルの一例を示すＸＭＬである。
【図７】インストーラーが表示するＵＩの一部である。
【図８】新たな禁則が記載されたインストール設定ファイルの一例を示すＸＭＬである。
【図９】印刷設定編集モジュールの処理を示すフローチャートである。
【図１０】管理者設定情報を表示するプリンタープロパティＵＩの一部である。
【発明を実施するための形態】
【００１０】
Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）８では、Ｖ４プリンタードライバーと呼ばれる新しいアーキテクチャで動作するプリンタードライバーが導入された。Ｖ４プリンタードライバーは、Ｖ３プリンタードライバーのアーキテクチャとして提供されていたＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）プリンタードライバーの後継となるアーキテクチャであり、ＸＰＳ文書を利用した印刷パスを利用している。
【００１１】
このＸＰＳ印刷パスにおいて、印刷物の体裁を決定するために利用されるものがＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓと呼ばれるＸＭＬ形式で記述された印刷機能情報と、ＰｒｉｎｔＴｉｃｋｅｔと呼ばれるＸＭＬ形式で記述された印刷設定情報である。Ｖ４プリンタードライバーは、ＧＰＤ（Ｇｅｎｅｒｉｃ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ）と呼ばれる、プリンタードライバーの印刷設定の機能を定義する印刷設定定義ファイルを同梱している。このＧＰＤを含んだプリンタードライバーをＯＳにインストールすることで、ユーザーに対してＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓやＰｒｉｎｔＴｉｃｋｅｔを利用した印刷設定変更機能を提供することができる。
【００１２】
この印刷設定変更機能には、デバイスが同時に実行できない印刷設定を制御する「禁則」と呼ばれる機能が備わっている。例えば、「はがき」の用紙サイズに対して「両面印刷」ができないデバイスに対応したプリンタードライバーの場合、プリンタードライバーはユーザーに対してこれらの設定を同時に設定させない制御を行う必要がある。また、プリンタードライバーを利用して印刷を行うシステムを導入する企業の場合、システム管理者が一般ユーザーに対して、設定させたくない印刷設定を制御する場合がある。例えば、システム管理者はユーザーに対して、「片面印刷」を許容せず「常に両面設定」で印刷するように強制したい場合、プリンタードライバーは「両面設定」以外を設定できないように制御する必要がある。
【００１３】
［実施形態１］
図１は本発明の実施形態を示す情報処理装置１００のハードウェア及びソフトウェアのブロック構成図である。
【００１４】
ＣＰＵ１０１は主記憶装置１０２のＲＯＭ１０２１あるいはＲＡＭ１０２２あるいは補助記憶装置１０５に格納されたプログラムに従って装置全体の制御を行う。ＲＡＭ１０２２はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。本実施形態における各コンポーネントの処理はすべてＲＡＭ１０２２に読み込んで動作する。補助記憶装置１０５はアプリケーション１０５１やプリンタードライバー１０５２、ＯＳ１０５３等を記録する。プリンタードライバー１０５２は、印刷機能を持つデバイスに対して、印刷指示を行うことができる。キーボード１０３１やマウス・タッチパネルなどに代表されるポインティングデバイス１０３２などの入力機器は、入力Ｉ／Ｆ１０３を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０４は、データを外部に出力するためのインターフェースであり、モニタ１０４１やプリンター１０４２などの出力機器に対してデータを出力する。プリンター１０４２とは直接接続されるローカルＩ／Ｏのみならず、通信Ｉ／Ｆ１０６を通じて接続されるネットワーク１０６１を通して接続されていてもよい。また、１０７は共通データシステムバスで、Ｉ／Ｆやモジュール間でデータのやりとりを行う。
【００１５】
加えて、ＣＰＵ１０１が補助記憶装置１０５に記憶されているプログラムに基づき処理を実行することによって、図２に示されるような情報処理装置１００のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
【００１６】
図２はドライバー印刷システムのブロック構成図である。ドライバー印刷システムはＸＰＳファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。ドライバー印刷システムは、ＯＳ１０５３上で動作している。プリントマネージャ２１８、ＧＤＩｔｏＸＰＳ変換モジュール２０７、フィルタパイプラインマネージャ２１２、ポートモニター２１９はオペレーティングシステム１０５３に含まれるモジュールである。ＧＤＩとはプリンターの印刷イメージの生成を行うグラフィックスコンポーネントであり、ＧＤＩｔｏＸＰＳ変換モジュール２０７は、ＧＤＩで描画されたデータをＸＰＳデータへ変換する機能を持つ。フィルタパイプラインマネージャ２１２は、ＸＰＳ印刷パスの特徴であるフィルタ印刷処理の管理を行うモジュールである。ポートモニター２１９は、デバイスにアクセスするプリントマネージャ２１８とプリンタードライバー間で通信を制御することができプリンタードライバーはポートモニター２１９を経由して印刷処理を行う。ＧＤＩｔｏＸＰＳ変換モジュール２０７、コンフィギュレーションモジュール２０８、フィルタパイプラインマネージャ２１２は、プリンタードライバー１０５２に含まれているが、オペレーティングシステム１０５３から提供されているプリンタードライバー１０５２のモジュールという位置づけである。コンフィギュレーションモジュール２０８は、プリンタードライバーが提供する印刷設定編集モジュール２０８１を使用して印刷設定情報を編集することができ、印刷設定編集モジュール２０８１は、Ｃｏｎｓｔｒａｉｎｔ  Ｓｃｒｉｐｔと呼ばれるスクリプト言語で記載され、プリンタードライバーによって格納されるデータが提供されるプロパティバッグ２０８２を利用して印刷設定情報を編集する。プロパティバッグ２０８２とは、プリンターの機種依存情報として利用するためのＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ（以降ＤＰＢ）と呼ばれるデータ群と、プリントキューに紐づいたＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ（以降ＱＰＢ）と呼ばれるデータ群が保持された領域を指す。ＤＰＢとＱＰＢはともにＯＳ１０５３によって提供されている保存領域である。
【００１７】
ＤＰＢは、ドライバーパッケージ内に存在するプリンターの機種依存データであり、プリンタードライバーインストール後にＯＳ内の特定の領域に読み取り専用としてデータ群が保持される。
【００１８】
ＱＰＢは、Ｋｅｙ−ＶａｌｕｅペアのＸＭＬ定義ファイルをＯＳ１０５３に登録することで利用することが可能であり、Ｖａｌｕｅに関して一定の権限上で編集が可能である。また、印刷設定定義ファイルであるＧＰＤにもＱＰＢの定義を記載することができる。
【００１９】
プリンタードライバー１０５２とフィルタパイプラインマネージャ２１２の各フィルタは、図１の補助記憶装置１０５にプリンタードライバー１０５２として格納されている。ＧＤＩ印刷アプリケーション２０１とＸＰＳ印刷アプリケーション２０２は、図１の補助記憶装置１０５にアプリケーション１０５１として格納されている。ユーザーはキーボード１０３１やタッチパネル／マウスなどに代表されるポインティングデバイス１０３２などといった入力装置を使用して、出力装置のモニタ１０４１に映し出されたＧＤＩ印刷アプリケーション２０１（以下、ＧＤＩアプリと略す）、もしくはＸＰＳ印刷アプリケーション２０２（以下、ＸＰＳアプリと略す）から印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行する。
【００２０】
まずは、印刷したいプリンター１０４２の選択をする。ユーザーから見るとプリンター１０４２の選択は、印刷を実行するプリンター１０４２に対応したプリンタードライバー１０５２を選択することと同義である。プリンタードライバー１０５２の選択には、不図示のプリントキューを利用する。
【００２１】
次に印刷設定を作成する。印刷設定はまず、アプリケーション１０５１が印刷設定用のメモリ領域をＲＡＭ１０２２に確保する。そして、アプリケーション１０５１は、プリンタードライバー１０５２のコンフィギュレーションモジュール２０８を呼び出して、印刷設定データを作成して格納する。
【００２２】
ＧＤＩアプリ２０１では印刷設定データとしてバイナリのＤＥＶＭＯＤＥ構造体２０３を用い、ＸＰＳアプリ２０２ではマークアップ言語のＸＭＬで記載されたＰｒｉｎｔＴｉｃｋｅｔ２０４を用いる。ＤＥＶＭＯＤＥ構造体２０３は、ＯＳが定義する標準領域とプリンタードライバーが独自で定義する拡張領域を持つ。ＰｒｉｎｔＴｉｃｋｅｔ２０４は、ＸＭＬ形式で記述された印刷設定情報で、標準領域と拡張領域は名前空間によって記載が分かれている。このＤＥＶＭＯＤＥ構造体２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４が印刷設定を保持しており、アプリケーションが直接、値を書き換えることで印刷設定を変更する。
【００２３】
印刷設定データには機種固有の情報も含まれているので、コンフィギュレーションモジュール２０８は、機種依存ファイル２０９を利用して、印刷設定データを作成する。機種依存ファイル２０９は、ＧＰＤと呼ばれる印刷設定定義ファイルを指し、図３のようにテキストベースで記載されている。さらに、機種依存ファイル２０９には「禁則」の定義を記載することができる。例えば、Ｍｉｃｒｏｓｏｆｔ（商標登録）が定義した記述法に基づき、ＩｎｖａｌｉｄＣｏｍｂｉｎａｔｉｏｎの項目に、同時に設定できない印刷設定の設定値を記載することで、ユーザーに対して禁則機能を提供することができる。ここで言うユーザーに同時に設定できない印刷設定とは、デバイスの機能として提供できないもののほかに、意図的にユーザーに使用してほしくない項目も含まれる。
【００２４】
プリンタードライバー１０５２には上記手段を利用して「禁則」を実現する方法と、印刷設定編集モジュール２０８１を利用して「禁則」を実現する方法の２通りが存在する。本実施形態では、ＧＰＤのＩｎｖａｌｉｄＣｏｍｂｉｎａｔｉｏｎを利用して実現する禁則について記述することとする。
【００２５】
またこの機種依存ファイル２０９である印刷設定定義ファイルには、デバイスの能力やプリントキューに紐づくＱＰＢの定義を記載することができる。本実施形態では、ＱＰＢに登録された情報を管理者設定情報と記載する。管理者設定情報をＧＰＤで定義する際の記載方法としては、図３に示すように、「常に両面設定」を意味するＡｌｗａｙｓＤｕｐｌｅｘ３０１の項目内のＦｅａｔｕｒｅＴｙｐｅに、ＰＲＩＮＴＥＲ＿ＰＲＯＰＥＲＴＹ３０２と記載する。この記載によってＡｌｗａｙｓＤｕｐｌｅｘ３０１という機能名とそのデフォルトの設定値がＱＰＢに登録される。そして、禁則に従って処理が行われる際のＡｌｗａｙｓＤｕｐｌｅｘ３０１の設定値はＱＰＢに登録された設定値によって決定される。
【００２６】
ここでデフォルトの設定値はＤｅｆａｕｌｔＯｐｔｉｏｎで定義される。ＤｅｆａｕｌｔＯｐｔｉｏｎ３０６にはＯｆｆが定義されているため、ＡｌｗａｙｓＤｕｐｌｅｘのデフォルトの設定値はＯｆｆ（無効）である。
【００２７】
さらに、ＦｅａｔｕｒｅＴｙｐｅに、ＰＲＩＮＴＥＲ＿ＰＲＯＰＥＲＴＹを記載することで、管理者権限をもつユーザーに対して、ＰＲＩＮＴＥＲ＿ＰＲＯＰＥＲＴＹが記載された項目の選択肢を表示することも可能である。本実施形態では、管理者権限をもつユーザーに対して前述の項目の選択肢を表示する場所として、ＯＳが持つ機能であるプリンターのプロパティを採用する。
【００２８】
図１０はデバイスとプリンターフォルダーからプリンターのプロパティが開かれ、ＰＲＩＮＴＥＲ＿ＰＲＯＰＥＲＴＹが記載された項目の選択肢を表示して、選択肢を切り替える操作が行われていることを示している。例えば、「Ｏｎｌｙ  ａｌｌｏｗ  ２−ｓｉｄｅｄ  ｐｒｉｎｔｉｎｇ」１０００がＡｌｗａｙｓＤｕｐｌｅｘの機能をユーザーに対して提供する機能である。この選択肢が「Ｏｎ」１００１に変更されることで、ＱＰＢの設定値が変更され、「常に両面設定」の機能を実現することができる。
【００２９】
ＧＰＤで禁則を定義する方法について説明する。３０３に示したＩｎｖａｌｉｄＣｏｍｂｉｎａｔｉｏｎにおいて、管理者設定情報であるＡｌｗａｙｓＤｕｐｌｅｘの設定値Ｏｎ３０５と、印刷設定のＤｕｐｌｅｘの設定値（「片面印刷」を示す）Ｓｉｍｐｌｅｘ３０４の２つの設定値について禁則が記述されている。これによって、ＱＰＢに登録された印刷設定における特定の機能の設定値と、ＧＰＤに記載された印刷設定における他の機能の設定値に関する禁則の処理をＧＰＤの記述に基づいて実現することが可能となる。なお、３０３に示した禁則の処理は、ＡｌｗａｙｓＤｕｐｌｅｘのデフォルトの設定値がＯｆｆになっているため、後述する図５のＳ５０６の処理でＱＰＢの設定値が変更されるまで機能することはない。
【００３０】
また、Ｄｕｐｌｅｘはプリンタードライバー１０５２の印刷設定画面の設定項目として設定可能な項目に関する。一方、ＡｌｗａｙｓＤｕｐｌｅｘ３０１はプリンタードライバー１０５２の印刷設定画面の設定項目としては設定不可能な項目に関する。
【００３１】
これら禁則情報も含めたプリンター１０４２に依存した専用の設定は、プリンターエクステンション２１０が持つユーザーインターフェースで設定する。プリンタードライバー１０５２は、ユーザーインターフェースの設定に従い、ＤＥＶＭＯＤＥ構造体２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４のプリンター１０４２に依存した設定を変更する。ＰｒｉｎｔＴｉｃｋｅｔ２０４は印刷設定がＸＭＬ形式で記述されているので、ＸＰＳアプリ２０２がすべての設定値を直接変更して書き換えることは容易だが、プリンターエクステンション２１０のユーザーインターフェースを使って設定変更してもかまわない。このプリンターエクステンション２１０は、プリンタードライバー１０５２の一種ではあるが、プリンタードライバー１０５２とは別のアプリケーションとしてインストールが行われる。
【００３２】
印刷設定は文書印刷のたびに作成される。一方、プリンター１０４２のオプション機器や、ユーザーごとの環境設定など設定を保持しておきたいものは、プリンターエクステンション２１０がオペレーティングシステムのレジストリデータベース２０５に保存する。レジストリデータベース２０５が使用できない場合、プリンターエクステンション２１０は、アプリケーションデータ２２０に設定を保存する。ユーザーによって設定された印刷設定のデフォルト値はオペレーティングシステムのプリントマネージャ２１８が、レジストリデータベース２０５に保存する。レジストリデータベース２０５や、アプリケーションデータ２２０は、補助記憶装置１０５に保存される。
【００３３】
印刷設定が確定したら、ユーザーはアプリケーションから印刷処理を実行する。ＧＤＩアプリ２０１から印刷する場合は、ＯＳ１０５３のモジュールであるＧＤＩｔｏＸＰＳ変換モジュール２０７に描画データが送られ、ＸＰＳスプールファイル２０６が作成される。このときＧＤＩｔｏＸＰＳ変換モジュール２０７はコンフィギュレーションモジュール２０８を呼び出し、印刷設定をＤＥＶＭＯＤＥ構造体２０３からＰｒｉｎｔＴｉｃｋｅｔ２０４に変換する。変換する際には、コンフィギュレーションモジュール２０８によって、印刷設定編集モジュール２０８１が使用される。
【００３４】
一方、ＸＰＳアプリ２０２から印刷する場合は、ＸＰＳファイルをＸＰＳアプリ自身が生成するのと、オペレーティングシステムがＸＰＳアプリからの描画命令に応じてＸＰＳファイルを生成するのと２通りの方法がある。どちらの方法であっても、印刷の途中でＸＰＳスプールファイル２０６が生成される。
【００３５】
ＧＤＩアプリ２０１又はＸＰＳアプリ２０２から印刷の指示が行われることでＸＰＳスプールファイル２０６が生成されたら、プリントフィルタパイプライン２１１に処理が渡される。プリントフィルタパイプライン２１１は複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィグレーションファイル２１６でフィルタの数や順番を制御する。本明細書ではプリンター１０４２と通信する機構を持つ通信フィルタ２１３、製本やスタンプのレイアウト処理を行う機構を持つレイアウトフィルタ２１４、ＸＰＳスプールファイル２０６をレンダリングしてＰＤＬ（ＰａｇｅＤｅｓｃｒｉｐｔｉｏｎＬａｎｇｕａｇｅ）に変換する機構を持つレンダラフィルタ２１５で構成される。ＰＤＬデータは印刷処理のスケジュール管理を行うプリントマネージャ２１８で管理され、キュー（待ち行列）に印刷ジョブが次々と登録される。プリンター１０４２が印刷できる状態になったら、キューに登録した順にポートモニター２１９を通して送信する。このようにして、アプリケーションからの印刷データをＰＤＬデータに変換することがプリンタードライバーの主な役目である。
【００３６】
次に、プリンタードライバーのインストールについて図４を用いて説明する。図４は、プリンタードライバーのインストールパッケージのソフトウェアブロック図である。
【００３７】
インストールパッケージ４００には、プリンタードライバー１０５２とインストールプログラム４０１およびインストール設定ファイル４０２が同梱されている。インストールプログラム４０１は、プリンタードライバーをＯＳ１０５３に登録するためのプログラムが記載されており、ユーザーはこのインストールプログラム４０１を実行することで、プリンタードライバー１０５２のインストールを行うことができる。プリンタードライバー１０５２には機種依存ファイル２０９や印刷設定編集モジュール２０８１、ＤＰＢやＱＰＢのようなプロパティバッグ２０８２を持ち、ＯＳ１０５３にインストールすることで図２のような印刷システムを提供することができるようになる。
【００３８】
インストールプログラム４０１は、ＲＡＭ１０２２上に展開され、ＣＰＵ１０１により実行されるものであり、本実施形態ではインストールプログラム４０１をインストーラーと呼ぶこととする。インストール設定ファイル４０２はプリンタードライバー１０５２をどのようにカスタマイズするかを示す情報（カスタマイズ内容）を含み、プリンタードライバー１０５２のインストール時に利用される。本明細書では、インストール設定ファイル４０２に記載されたカスタマイズ内容に基づいて、ＱＰＢの設定値を変更することで、ユーザーに対して強制力をもった印刷設定画面を提供することができる。
【００３９】
ここで、システム管理者がユーザーに対して強制力をもったカスタマイズドライバーをどうやって提供するのか、以下具体例を示す。
【００４０】
プリンターベンダーはインストールパッケージ４００をインターネットやＣＤ−ＲＯＭを通じてシステム管理者に提供する。その後システム管理者は、インストール設定ファイル４０２に対して、適用したい印刷設定強制手段を記載し、編集後のインストール設定ファイル４０２が同梱されたインストールパッケージ４００をユーザーに対して提供する。ユーザーはそのインストールパッケージ４００を利用してプリンタードライバー１０５２をインストールすることで、システム管理者が強制したい印刷設定が反映されたプリンタードライバー１０５２に対応するプリントキューが生成される。以上の手段により、ユーザーに対してカスタマイズドライバーを提供することができる。また、クライアントサーバー環境において、サーバー側に編集後のインストール設定ファイル４０２が同梱されたインストールパッケージ４００をインストールし、ユーザーが利用するクライアントに対してポイントアンドプリント機能を利用して配信してもよい。
【００４１】
次にインストールプログラム４０１の処理について、図５のフローチャートを用いて説明する。
【００４２】
まずＳ５００において、インストールプログラム４０１を実行開始する。以下のフローはすべてこのインストールプログラム４０１であるインストーラーによって実現される処理について記載するものである。
【００４３】
Ｓ５０１において、ＯＳ１０５３にインストールするプリンタードライバー１０５２の選択を受け付ける。本明細書のインストールパッケージ４００には、複数のデバイスモデルに対応するために、複数のプリンタードライバーが同梱されている。本実施例では、その複数のプリンタードライバーから一つのプリンタードライバー１０５２を選択した場合について記述する。
【００４４】
Ｓ５０２において、Ｓ５０１で選択したプリンタードライバー１０５２がすでにインストールされているかを判定する。すでにプリンタードライバー１０５２がインストールされている場合はＳ５０４へ進む。プリンタードライバー１０５２がインストールされていない場合は、Ｓ５０３へ進む。
【００４５】
Ｓ５０３において、Ｓ５０１で選択されたプリンタードライバー１０５２を情報処理装置１００にインストールする。プリンタードライバー１０５２をインストールすると、プリンタードライバーパッケージに同梱された各モジュールがＯＳ１０５３に登録される。この時、プロパティバッグ２０８２のＤＰＢが、プリンターエクステンション２１０や印刷設定編集モジュール２０８１がアクセス可能なＯＳの領域へ登録が行われる。
【００４６】
Ｓ５０４において、インストールされたプリンタードライバー１０５２に対応する新しいプリントキューを生成する。この時、プロパティバッグ２０８２のＱＰＢが、プリンターエクステンション２１０や印刷設定編集モジュール２０８１によってアクセス可能なＯＳ１０５３の領域へ登録される。
【００４７】
Ｓ５０５において、インストール設定ファイル４０２に記載された内容を読み込む。ここで示すインストール設定ファイル４０２の例を図６に示す。本実施例では、ＸＭＬ形式で記載された例を示すが、ＸＭＬ形式以外のテキストやバイナリファイルで記載されていてもよい。なお、インストール設定ファイル４０２が存在しない場合は、カスタマイズすべき内容が存在しないと判断して、通常通りプリンタードライバー１０５２をインストールしてもよい。あるいはインストール設定ファイル４０２が存在しない場合は、インストーラーがエラーを表示するように構成しても構わない。
【００４８】
図６のインストール設定ファイル４０２について説明する。本実施形態では、一例として「常に両面設定」を制御するような情報が記載されているＸＭＬを定義することとする。ＦｅａｔｕｒｅノードにはＡｔｔｒｉｂｕｔｅとしてｎａｍｅ属性およびＤｉｓｐｌａｙｅｄ属性を持ち、それぞれ適用したい印刷設定の名称、およびその項目をプリンターエクステンション２１０がどのように表示するかを指定することができる。本実施形態のフローチャートにおいて、インストーラーは図６で定義された印刷設定の名称およびＶａｌｕｅノードの値を保持しておく。
【００４９】
また、本実施例ではインストール設定ファイル４０２を利用しているが、図７のようにインストールプログラム４０１実行中にチェックボックスを設けたＵＩを利用し、カスタマイズ内容をプリンタードライバーのインストール過程でユーザーから入力を受け付けるように構成してもよい。
【００５０】
Ｓ５０６において、Ｓ５０５で取得したインストール設定ファイル４０２の情報に基づいて、Ｓ５０４で生成したプリントキューに対応するＱＰＢの設定値を変更する。これによって、インストール設定ファイル４０２に基づいてプリントキューに対応する印刷設定画面のカスタマイズが行われる。一方、インストーラーはインストール設定ファイル４０２の代わりに図７のＵＩで入力を受け付けた場合は、受け付けた入力内容に基づいて、ＱＰＢに存在し、ＧＰＤに記述された設定値を変更する。そして、Ｓ５０７に進み、インストーラーの処理を終了する。
【００５１】
Ｓ５０６の処理を具体的に説明する。本実施形態では、図３で示したように「常に両面設定」の機能名とデフォルト値がＧＰＤに記載されており、これらがＱＰＢに登録されている。デフォルト設定では、ＡｌｗａｙｓＤｕｐｌｅｘの設定値がＯｆｆになっている。そこでＳ５０６で、インストーラーはインストール設定ファイル４０２に記載された内容であるＡｌｗａｙｓＤｕｐｌｅｘの設定値をＯｎにするという情報をもとに、ＱＰＢのＡｌｗａｙｓＤｕｐｌｅｘの設定値をＯｎ（有効）に設定（有効化）する。その結果、Ｓ５０４で生成されたプリントキュー（Ｓ５０３でインストールされたプリンタードライバー）の印刷設定画面が開かれた際に禁則に従う処理が行われる。具体的にはＧＰＤに記載されたＩｎｖａｌｉｄＣｏｍｂｉｎａｔｉｏｎの定義である「常に両面設定」という設定値と「片面設定」という設定値が競合して同時に設定できないため、結果的にユーザーは片面設定を行うことができなくなる。
【００５２】
本フローにより、インストーラーがインストール設定ファイル４０２に記載された内容を、ＱＰＢの管理者設定情報に反映することで、ＧＰＤに記載された禁則、つまり片面印刷と常に両面設定が同時に指定できない禁則によって、ユーザーは片面印刷を行うことができないという、強制力を持った印刷設定手段を提供することができる。
【００５３】
なお、ユーザーに片面印刷を行わせない方法としては、プリンタードライバー１０５２の印刷設定画面で片面印刷が選択肢としては表示されているが、選択するとエラーを表示したり、他の選択肢に自動で変更されるように実現しても構わない。あるいはプリンタードライバー１０５２の印刷設定画面で片面印刷を選択肢として表示しないことで実現しても構わない。
【００５４】
また、プリンターエクステンション２１０が、ＱＰＢの管理者設定情報を編集する機能を有している場合、ＱＰＢのＸＭＬで記載された管理者設定情報をユーザーに対して提示することができる。そこで、ＱＰＢの設定項目をプリンターエクステンション２１０で表示するかどうかを制御する情報をインストール設定ファイル４０２に持たせてもよい。例えば、ＱＰＢにＡｌｗａｙｓＤｕｐｌｅｘに関する情報をグレーアウトする、という管理者情報（図６のＤｉｓｐｌａｙｅｄ属性の値がＧｒａｙｏｕｔ）をインストール設定ファイル４０２に記載したとする。その場合、ユーザーがプリンタードライバーＵＩを開いた際に、プリンターエクステンションは図６に示したＤｉｓｐｌａｙｅｄ属性のＧｒａｙｏｕｔという情報を読み取り、「常に両面設定」を示すＱＰＢの管理者情報の表示項目をグレーアウトで表示することができる。このように構成した場合、プリンターエクステンションでは「常に両面設定」の設定を変更することができなくなる。
【００５５】
本実施形態で説明したように、インストーラーがＱＰＢの設定値を書き換えることで、ユーザーへ強制力をもった印刷設定画面を提供することができる。
【００５６】
［実施形態２］
実施形態１では、あらかじめ禁則の定義をＧＰＤに記載しておく必要があるため、プリンターベンダーが想定しない印刷設定の強制設定を行うことが困難であった。例えば、システム管理者がユーザーに対して特定の用紙サイズのみしか利用させない運用を想定した場合、あらかじめＧＰＤにその禁則を記載しておくことは困難である。そこで本実施形態では、印刷設定編集モジュール２０８１を利用して「禁則」を実現する手段を用いることで、よりシステム管理者が柔軟に対応できる強制力を持ったカスタマイズドライバーのインストール手段について説明する。
【００５７】
本実施形態では、新たな禁則が記載されたインストール設定ファイル８００（図８）をインストーラーが読み込み、その禁則情報をＱＰＢへ保存する。そして、印刷設定編集モジュール２０８１がＱＰＢに追加された禁則情報に基づいてＰｒｉｎｔＴｉｃｋｅｔを編集することで強制力を持ったプリンタードライバーを提供する手段について説明する。
【００５８】
本実施形態について、まず図８のインストール設定ファイル８００について説明する。インストール設定ファイル８００には、ユーザーに対して強制したい印刷設定項目およびその設定値について記載する。図８では一例として、ユーザーに対して用紙サイズ「Ａ４」、用紙種類「普通紙」を常に設定したいという場合について記載されている。用紙サイズを表す「ＰａｇｅＭｅｄｉａＳｉｚｅ」の値に「Ａ４」を表す「ＩＳＯＡ４」を、用紙種類を表す「ＰａｇｅＭｅｄｉａＴｙｐｅ」の値に「普通紙」を表す「Ｐｌａｉｎ」が定義されている。ここで記載される項目に関しては、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓで利用されるＦｅａｔｕｒｅ名およびＯｐｔｉｏｎ名が望ましい。
【００５９】
インストーラーの処理については、実施形態１の図５と同様のため割愛する。ただし、Ｓ５０５において、インストール設定ファイル８００を読み込む場合、このＸＭＬの情報をＳｔｒｉｎｇ形式で取得する。そしてＳ５０４で生成したプリントキューのＱＰＢにＳ５０５で取得したＳｔｒｉｎｇ形式の値をそのまま設定する点が実施形態１と異なる点である。
【００６０】
次に、この強制力を持ったカスタマイズドライバーを提供するための印刷設定時の印刷設定編集モジュール２０８１の処理について図９のフローチャートを用いて説明する。以下のフローはすべて印刷設定編集モジュール２０８１が実行する処理について記載するものである。印刷設定編集モジュール２０８１は、ＲＡＭ１０２２上に展開され、ＣＰＵ１０１により実行されるものである。
【００６１】
まずＳ９００において、印刷設定編集処理を開始する。印刷設定編集処理とは、ユーザーがアプリケーションから印刷設定ＵＩを開いた場合や、ＰｒｉｎｔＴｉｃｋｅｔの妥当性を判断するＡＰＩ（ＰＴＭｅｒｇｅＡｎｄＶａｌｉｄａｔｅ等）が呼び出された際に実行される処理のことを指す。印刷設定編集モジュール２０８１は、ＯＳ１０５３によって呼び出されることで動作し、その際に現在の印刷設定の情報を持つＰｒｉｎｔＴｉｃｋｅｔが渡される（Ｓ９０１）。
【００６２】
Ｓ９０２において、インストーラーがＱＰＢに格納した情報を取得する。
【００６３】
Ｓ９０３において、取得したＱＰＢの情報にインストーラーが追加した新たな禁則情報があるかを確認する。本実施形態では、図８に記載されたＸＭＬ情報をＱＰＢからＳｔｒｉｎｇ形式で取得できるかどうかで判断する。新たな禁則が存在しない場合は、Ｓ９０６へ進み、印刷設定編集処理を終了する。新たな禁則が存在する場合は、Ｓ９０４へ進む。
【００６４】
Ｓ９０４において、受信したＰｒｉｎｔＴｉｃｋｅｔに対してＱＰＢに記載された新たな禁則情報と矛盾が生じているか判断する。例えば、受信したＰｒｉｎｔＴｉｃｋｅｔで用紙サイズ「Ａ４」、用紙種類「普通紙」が選択されている場合は、禁則が発生しないためＳ９０６へ進み、印刷設定編集処理を終了する。一方例えば、受信したＰｒｉｎｔＴｉｃｋｅｔに用紙サイズが「Ｌｅｔｔｅｒ」に設定されていた場合、インストール設定ファイル８００の用紙サイズ「Ａ４」と禁則が発生するため、Ｓ９０５へ進み、受信したＰｒｉｎｔＴｉｃｋｅｔの用紙サイズの設定値を「Ｌｅｔｔｅｒ」から「Ａ４」に編集する。そしてＳ９０６へ進み印刷設定編集処理を終了する。
【００６５】
以上の処理により、印刷設定編集モジュール２０８１が、インストーラーが設定した新たな禁則情報に基づく処理を行い、ＰｒｉｎｔＴｉｃｋｅｔを編集することで、ユーザーに対して強制力を持ったカスタマイズドライバーを提供することができる。
【００６６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006552189.tif 000002
【図２】
0006552189.tif 000003
【図３】
0006552189.tif 000004
【図４】
0006552189.tif 000005
【図５】
0006552189.tif 000006
【図６】
0006552189.tif 000007
【図７】
0006552189.tif 000008
【図８】
0006552189.tif 000009
【図９】
0006552189.tif 000010
【図１０】
0006552189.tif 000011