(57)【要約】【課題】  プリンタドライバの機能拡張を拡張モジュールによって行うシステムにおいて、プリンタドライバの印刷設定におけるコンフリクトより優位に印刷設定を変更しようとするためにコンフリクトを修正するとき、拡張モジュール側でプリンタドライバのコンフリクトをすべて知る必要がある。【解決手段】  プリンタドライバが印刷設定を行った後、印刷設定データを拡張モジュールに引渡し、拡張モジュールはプリンタドライバの拡張インターフェースを通じて印刷設定データを変更することで、プリンタドライバの印刷設定をコンフリクトを変更することなく、拡張モジュールが適切に変更することができる。【選択図】  図３
2005208916.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムと、ドライバプログラムと、前記ドライバプログラムの機能拡張モジュールからなる印刷システムにおいて、ドライバプログラムがアプリケーションプログラム用の印刷設定を変更するための拡張インターフェースと、ドライバプログラムの持つコンフリクトを変えることがなく、ドライバプログラムによってユーザが設定した印刷設定データより優先的に機能拡張モジュールが印刷設定データを変更することができる手段を持つことを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバに制御される印刷制御装置、方法および印刷制御プログラムを記録した媒体等に関する。
【背景技術】
【０００２】
従来、コンピュータ上で動作するアプリケーションプログラムが、プリンタデバイスに対して印刷を実行する際には、印刷に必要な各種設定データをパラメータとして、プリンタドライバなどの印刷関連処理プログラムに渡すのが一般的な方法である。このように印刷に必要な設定データをパラメータとしてアプリケーションプログラムから受け取ることで、プリンタドライバはアプリケーションが意図した印刷設定、たとえば両面、カラー、レイアウト、給紙、用紙選択などを知ることができ、望みどおりの印刷を行うことができる。
【０００３】
しかし、ユーザのニーズが多様化し、プリンタドライバに機能を拡張するケースが増えてきたため、拡張モジュールを使用してプリンタドライバの機能拡張をするようなプリンタドライバが増えてきている。
【０００４】
拡張モジュールは電子透かしやセキュリティ向上のための印刷付加機能を持っていることが多く、拡張モジュールのための印刷設定データは、プリンタドライバ自身が持つ印刷設定データとは別の場所に格納する。しかし、プリンタドライバ自身が持つ印刷設定データによっては、拡張モジュールの持つ印刷付加機能が必ずしも有効に動作するとは限らないケースが存在する。たとえば、解像度が６００ｄｐｉでしか電子透かし印刷を行うことができなかったとしても、プリンタドライバの印刷設定データが３００ｄｐｉになっていたら、拡張モジュールにおいて電子透かし印刷を行うことは不可能である。そこで、拡張モジュールはプリンタドライバの印刷設定データと拡張モジュールの印刷データのコンフリクトを取るために、プリンタドライバのコンフリクトプログラムに自身のコンフリクトを追加するような仕組みを導入している。
【特許文献１】特開２００２−４４３４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、前記のようにプリンタドライバのコンフリクトプログラムに新しいコンフリクトを追加するためには、拡張モジュールを開発する開発者がプリンタドライバのコンフリクトプログラムを熟知していなければならない。また、プリンタドライバのコンフリクトは非常に複雑なため、拡張モジュールによって追加したコンフリクトが原因で、本来望まないコンフリクト（設定の競合）が発生し、この問題を解決するために多くのコストとリソースを費やすことが多々あった。
【０００６】
本発明は上記の課題を解決するために、プリンタドライバの機能拡張モジュールがプリンタドライバのコンフリクトに一切手を加えることなく、プリンタドライバの持つ印刷設定より優先的に印刷設定データを設定できるシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は次のような構成からなる。すなわち、アプリケーションプログラムと、ドライバプログラムと、前記ドライバプログラムの機能拡張モジュールからなる印刷システムにおいて、ドライバプログラムの持つコンフリクトを変えることがなく、ドライバプログラムによってユーザが設定した印刷設定データより優先的に機能拡張モジュールが印刷設定データを変更することができる手段を持つことを特徴とする。
【発明の効果】
【０００８】
以上説明したように、本発明によれば、プリンタドライバの拡張機能をプラグイン形式によって実現したシステム上において、プリンタドライバ自身の印刷設定情報の影響でプラグインによって拡張された機能を使用することができないという状況で、プリンタドライバのコンフリクトを一切変更することなく、拡張された機能を使用することが実現できる。
【発明を実施するための最良の形態】
【０００９】
図１は本発明の一実施形態を示す印刷処理システムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。
【００１０】
図１において、一般的なコンピュータを用いた印刷処理システムのブロック構成図を示す。ＣＰＵ１０１はＲＯＭ１０２あるいはＲＡＭ１０３あるいは記憶装置１０５に格納された図３の処理を実行するプログラム、各図に示すＵＩ（ユーザインタフェースドライバ）の表示制御を行うプログラムに従って装置全体の制御を行う。ＲＡＭ１０３はＣＰＵ１０１が各種処理を行う際のワークエリアとして使用される。記憶装置１０５はオペレーティングシステム（ＯＳ）１０５４やアプリケーションソフト１０５１等を記録する。キーボードやマウスなどの入力機器は、入力Ｉ／Ｆ１０４を通じて、ユーザがコンピュータに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０６は、データを外部に出力するためのインターフェースであり、モニタやプリンタに対してデータを出力する。また、１０７は共通データバスで、それぞれのデータのやりとりを行う。
【００１１】
図２はプリンタドライバに拡張モジュールを追加するシステムにおける、プリンタドライバの構成図を示す。プラグインモジュールは図２に示すとおり、ＵＩドライバ２０３の拡張機能を有するＵＩプラグイン２０４と、グラフィックスドライバ２０５の拡張機能を有するグラフィックスプラグイン２０６からなる。図２を用いてそれぞれのプラグインモジュールについて説明する。
【００１２】
ＵＩプラグイン２０４は、ドライバＵＩに新たなシートを加える場合や、ＵＩドライバ２０３で処理するさまざまなイベント処理（インストール処理など）に対して、付加機能をつけたりカスタマイズしたりする場合に、ドライバに対して拡張するモジュールである。ＵＩドライバ２０３がＯＳからコールされる関数において、ＵＩプラグイン２０４が存在する場合は、ＵＩプラグイン２０４の公開されているインターフェースを通じてＵＩプラグイン２０４を呼び出す。このタイミングを利用して、ＵＩプラグイン２０４はＵＩドライバ２０３が行うさまざまな処理に付加機能を拡張することができる。
【００１３】
グラフィックスプラグイン２０６も同様に、ＯＳからコールされるグラフィックスインターフェース関数や、印刷時におけるスプール処理をフックして、処理を追加したりカスタマイズしたりする場合に、ドライバに対して拡張するモジュールである。グラフィックスドライバ２０５がＯＳからコールされる関数において、グラフィックスプラグイン２０６が存在する場合は、グラフィックスプラグイン２０６の公開されているインターフェースを通じてグラフィックスプラグイン２０６を呼び出す。このタイミングを利用して、グラフィックスプラグイン２０６はグラフィックスドライバ２０５が行うさまざまな処理に付加機能を拡張することができる。
【００１４】
このようにプラグインモジュールに拡張機能を実装することによって、プリンタドライバの拡張システムを実現する。
【００１５】
以下、図３に示すフローチャートを中心にして本実施例について詳しく説明する。アプリケーションから印刷を行う際には、印刷設定情報をプリンタドライバに引き渡し、ドライバＵＩでさらに詳細な印刷設定を行う。ここでプリンタＵＩドライバ２０３にはＵＩプラグイン２０４が追加されており、ドライバＵＩには図４のように通常のプリンタドライバＵＩに対して、新しいＵＩシートが追加されている。ＵＩプラグイン２０４により拡張されたＵＩシートにおいて、電子透かし印刷をＯＮにする（図４）。次にドライバＵＩ（図５）で印刷設定の解像度を３００ｄｐｉとして、ＯＫを押し印刷設定を決定するところから、本実施例はスタートする。
【００１６】
プリンタＵＩドライバ２０３は、ユーザが設定したドライバＵＩのデータを元にして印刷設定データを作成する。そのため、ドライバＵＩのデータを取得して、印刷設定データに反映させます（ステップ３０２）。ＵＩプラグインが追加されている場合は、ここで設定した印刷設定データをＵＩプラグインに渡して、処理をＵＩプラグインに引き渡す（ステップ３０３）。ＵＩプラグインは自身の持つ新しいＵＩシートでユーザが入力したデータを取得し、ＵＩプラグインが持つ印刷設定データに反映させる（ステップ３０４）。
【００１７】
ＵＩプラグインはここで、ドライバの印刷設定データを変更するかどうかを判定する（ステップ３０５）。ＵＩプラグインは電子透かし印刷がＯＮになっていることを、取得した自身の印刷設定データから知り、ドライバの印刷設定データの解像度を６００ｄｐｉに変更する必要がある。よって次に、ドライバの印刷設定データを使用して、ドライバＳＤＫをコールする（ステップ３０６）。
【００１８】
ドライバＳＤＫとは、プリンタＵＩドライバが持つ印刷設定を行うための拡張インターフェースである。通常プリンタＵＩドライバにおいて印刷設定はドライバＵＩを開いてユーザに設定させることで変更するが、ドライバＵＩを開かずに設定を行うことを要望するアプリケーションのために、同じ動作を拡張インターフェースで行うことができる。ドライバＳＤＫを使用すると、ドライバＵＩを開くことなく印刷設定を変更することが可能である。ＵＩプラグイン用にもアプリケーションと同様にドライバＳＤＫが公開されているため、プリンタＵＩドライバのＵＩをさらに開いて設定させたり、ＵＩプラグインがプリンタＵＩドライバのコンフリクトを知ることなく、印刷設定を変更することができる。ここではＵＩプラグインが、ドライバの印刷設定データの解像度を６００ｄｐｉに変更するようにドライバＳＤＫをコールする。
【００１９】
ＵＩプラグインからドライバＳＤＫでコールされたプリンタＵＩドライバは、渡された印刷設定データの解像度を６００ｄｐｉに変更し、プリンタＵＩドライバが持つコンフリクトを使用して、６００ｄｐｉに変更されたことによるコンフリクトの処理を行って印刷設定データの整合性を取る（ステップ３０７）。この後、またＵＩプラグインに制御を戻す。
【００２０】
ＵＩプラグインは返ってきたドライバ印刷設定データをドライバに返す（ステップ３０８）。プリンタＵＩドライバはＵＩプラグインから渡されたドライバ印刷設定データをアプリケーションに返す（ステップ３０９）。これにより、ユーザがドライバＵＩ上で解像度をいくつに設定していたとしても、ＵＩプラグインの設定情報が優先的に生かされるようになる。
【００２１】
また、ドライバＵＩを開かないような、アプリケーションからのドライバＳＤＫコールにおいても、同じステップをたどるため、ＵＩプラグインの設定情報が優先的に生かされる。また、印刷時においても、印刷前にコールされるＯＳからイベントのタイミングにおいて、ＵＩプラグインがコールされ、同等の処理が行われ設定情報が優先的に生かされる。
【００２２】
（他の実施形態）
本実施形態における図３に示す処理が、外部からインストールされるプログラムによって、それぞれの装置より遂行される。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群をホストコンピュータに供給される場合でも本発明は適用されるものである。
【００２３】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、又は、外部サーバ（図示省略）からダウンロードすることで、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００２４】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。
【００２５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例を示す印刷処理システムの構成を説明するブロック図である。
【図２】本実施例におけるプリンタドライバ拡張システムの例である。
【図３】本実施例における印刷設定変更処理のフローチャートの例である。
【図４】本実施例におけるＵＩプラグインの追加された新シートの例である。
【図５】本実施例におけるプリンタＵＩドライバのＵＩシートの例である。
【図１】
2005208916.tif 000003
【図２】
2005208916.tif 000004
【図３】
2005208916.tif 000005
【図４】
2005208916.tif 000006
【図５】
2005208916.tif 000007