(57)【要約】【課題】  パーソナルコンピュータ等の情報処理装置上で動作する印刷システムにおいて、複数アプリケーションの各々が要求するプリンタドライバ機能を単一のプリンタドライバで制御する印刷システムを実現する。【解決手段】  単一のプリンタドライバが複数のアプリケーションのアプリケーションＩＤに応じて、ＵＩ画面および印刷設定を切り替えることで、複数アプリケーションの印刷設定を制御する。【選択図】  図１
2006154908.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションが、プリンタドライバを使用して中間ファイルの生成、取得を行う印刷システムであって、該アプリケーションはインストール時に外部記憶領域に自身の識別子を登録することでインストールの有無を記載する手段と、アンインストール時に該識別子を削除する手段と、印刷時に自身の識別子を外部記憶領域に格納することでプリンタドライバに識別子を通知する手段を備えることを特徴とし、アプリケーションの指示により所望の中間ファイルを生成するプリンタドライバが、印刷設定時に前記アプリケーションにより登録されたアプリケーション固有の識別子を外部記憶領域より読み込むことで固有のユーザインターフェイスを提供する手段と、印刷時にアプリケーションにより設定された固有の識別子を読み込むことでアプリケーション固有の設定で印刷動作を行う手段と、印刷終了時に前記アプリケーションに印刷終了を通知する手段を有することを特徴とする印刷システム。
【請求項２】
請求項１に記載の印刷システムであって、アプリケーションがインストール時に自身の識別子を外部記憶領域に登録することで、他のモジュールに自身特有の処理を行うことを可能にするインストール手段を有する。
【請求項３】
請求項１に記載の印刷システムであって、プリンタドライバがインストールされているアプリケーションを判断し、自身が提供するユーザインターフェイスにおいて設定可能項目を制御することを特徴とするユーザインターフェイス設定手段を有する。
【請求項４】
請求項１に記載の印刷システムであって、プリンタドライバが印刷時に印刷を指示したアプリケーション識別子を判断し、固有の印刷動作を行うことを特徴とする印刷システム。
【請求項５】
請求項１に記載の印刷システムであって、プリンタドライバが印刷時に印刷を指示したアプリケーションを識別子より判断し、特定のアプリケーションのみに印刷終了を通知することを特徴とする印刷システム。
【請求項６】
複数のアプリケーションが、プリンタドライバを使用して中間ファイルの生成、取得を行う情報処理装置であって、該アプリケーションはインストール時に外部記憶領域に自身の識別子を登録することでインストールの有無を記載する手段と、アンインストール時に該識別子を削除する手段と、印刷時に自身の識別子を外部記憶領域に格納することでプリンタドライバに識別子を通知する手段を備えることと特徴とし、アプリケーションの指示により所望の中間ファイルを生成するプリンタドライバが、印刷設定時に前記アプリケーションにより登録されたアプリケーション固有の識別子を外部記憶領域より読み込むことでアプリケーション固有のユーザインターフェイスを提供する手段と、印刷時にアプリケーションにより設定されたアプリケーション固有の識別子を読み込むことでアプリケーション固有の設定で印刷動作を行う手段と、印刷終了時に前記アプリケーションに印刷終了を通知する手段を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システム及び情報処理装置に関するもので、特にパーソナルコンピュータ等の情報処理装置上で動作する印刷システムにおいて、複数アプリケーションの各々が要求するプリンタドライバ機能を単一のプリンタドライバで制御する印刷システムおよび装置に関するものである。
【背景技術】
【０００２】
従来の印刷システムにおける印刷制御方法および処理の流れについて説明する。パーソナルコンピュータ等の汎用情報処理装置（以下、ホストコンピュータ）とプリンタは、米国セントロニクス社仕様のパラレルインターフェース、ＲＳ−２３２Ｃ等のシリアルインターフェース、或いは、ネットワークインターフェース、更には、ＵＳＢ(Universal Serial Bus)インターフェース等で接続するのが一般的である。ホストコンピュータ側では、ワードプロセッサや表計算のようなアプリケーションソフトウェア（以下、単にアプリケーションという）がいわゆる基本ソフト（ＯＳ：オペレーティングシステム）の上で動作している。アプリケーションにおいて印刷を行う場合は、そのプログラム内から、基本ソフトが提供するいくつかのサブシステムのうち、グラフィック・サブ・システムの機能を用いて行う。グラフィック・サブ・システムは、ＧＤＩ(Graphic Device Interface)と呼ばれておりディスプレイやプリンタに対する画像情報の処理を司っている。ＧＤＩは、ディスプレイやプリンタといった各デバイス毎の依存性を吸収するためにデバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。プリンタに対するこのモジュールはプリンタドライバと呼ばれる。プリンタドライバでは、その能力や機能などに応じてあらかじめデバイスドライバに実装することが決められているＤＤＩ(Device Driver Interface)と呼ばれる関数群を用意する必要がある。アプリケーションのＡＰＩ(Application Programing Interface)コールをＧＤＩがデバイスドライバ用にデータ変換を行い、このＤＤＩ関数群が適宜ＧＤＩからコールされ所定の印刷処理が実行されるような仕組みになっている。ＧＤＩでは、このようにプリンタドライバを介してアプリケーションからの印刷要求をシーケンシャルに処理している。
【０００３】
印刷システムにおいて、プリンタ・ドライバはその使用用途によりプリンタ出力系とファイル出力系に大別できる。プリンタ出力系とは、印刷装置側にＰＤＬ(Printer Description Language)と呼ばれる制御コマンドを処理可能なコントローラを搭載するもの向けで、システムからＤＤＩ関数を介して渡される描画命令をＰＤＬのコマンドに変換し、プリンタ機器に印刷を行うものである。
【０００４】
一方、ファイル出力系では、印刷装置側にデータを送ることが直接的な目的ではなく、ＤＤＩ関数から受け取った描画命令を予め定義された中間フォーマット形式に変換し、ホストコンピュータのディスクシステム上に中間ファイルとして蓄積するものである。この代表的な中間フォーマットにはPDF(Portable Document Format)やSVG(Scalable Vector Graphics)等が存在する。中間ファイルはホストコンピュータ上のファイルシステム上に保存され、中間フォーマットを解釈可能な特定のアプリケーションプログラムによりホストコンピュータ上で表示され、ユーザの指示により再びグラフィック・サブ・システムを介して印刷装置に印刷を行うことが可能である。例えば、あるアプリケーションがある特定の中間フォーマットファイルを生成するために該中間フォーマットを生成するプリンタドライバ印刷システムを利用することができる。
【０００５】
従来、ホストコンピュータなどの装置においては、使用するアプリケーション毎にこのようなファイル出力系のプリンタドライバをインストールしておくのが普通であった。このため、同種類のプリンタドライバであっても、異なるアプリケーションが使用する場合には、使用するアプリケーション毎にプリンタ・ドライバを用意する必要があった。例えばアプリケーションが２種類存在した場合にはプリンタ・ドライバも２種類用意する必要があった。このため、プリンタドライバのインストール数の増加を引き起こし、また、インストールしたプリンタドライバの管理などのコストが増加している。
【０００６】
又、別の従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開2001-290624号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上記従来例に鑑みて成されたもので、複数のファイル出力系プリンタドライバに関して、特定のアプリケーションに応じた印刷制御が可能であるとともに、アプリケーションごとに固有な機能を発揮させる印刷制御方法および装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
複数のアプリケーションが、プリンタドライバを使用して中間ファイルの取得を行う情報処理装置において、前記アプリケーションはインストール時に外部記憶領域に自身の識別子を登録することでインストール状況を通知する手段を有し、また、アンインストール時には該識別子を削除する手段を有する。また、前記アプリケーションは印刷時に自身の識別子を外部記憶領域に格納することでプリンタドライバに識別子を通知する手段を有する。
【０００９】
アプリケーションの指示により所望の中間ファイルを生成するプリンタドライバが、印刷設定時にアプリケーションにより登録されたアプリケーション固有の識別子を外部記憶領域より読み込むことでアプリケーション固有のユーザインターフェイスを提供する手段を有し、また、印刷時にアプリケーションにより設定されたアプリケーション固有の識別子を読み込むことでアプリケーション固有の設定で印刷動作を行うことを可能とし、また、印刷終了時に前記固有アプリケーションに印刷終了を通知する手段を有することを特徴とする。
【００１０】
以上の構成により、本発明は、プリンタドライバを使用する複数のアプリケーションに対して、ひとつのプリンタドライバにおいて各アプリケーション所望の中間ファイルを提供することを可能とする。
【発明の効果】
【００１１】
以上説明したように、本発明によれば、複数のアプリケーションに対して、アプリケーション機能に応じたプリンタドライバ制御が可能であるとともに、アプリケーション毎に固有な機能を発揮させることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。図１は本発明にかかるホストコンピュータのブロック図である。ホストコンピュータ１０１は、マウス、キーボード等の入力デバイス（不図示）、ディスプレイ・モニタ（不図示）を合わせた一つのコンピュータシステムとして構成されている。ここでは、ホストコンピュータ１０１は、基本ＯＳによって動作しているものとするが、勿論、ＯＳがこれら限るものではない。ホストコンピュータ１０１について、本実施形態に関する機能的な部分にのみ注目し、基本ＯＳ上での機能を大きく分類すると、アプリケーションソフトウェア１０２、グラフィック・サブ・システム１０３に大別される。アプリケーションソフトウェア１０２は例えば、ワープロや表計算などの基本ソフトウェア上で動作する応用ソフトウェアを指すものであるが、印刷機能を有するアプリケーションであればその種別は問わない。
【００１３】
グラフィック・サブ・システム１０３は、基本ＯＳの機能の一部であるGraphic Device Interface（以後、ＧＤＩと記す）１０４とそのＧＤＩから動的にリンクされるデバイスドライバであるところのプリンタドライバ１０５によって構成されている。プリンタドライバが出力した描画結果は、特定フォーマットの印刷コマンドとしてGDI１０４に再度返されると、中間ファイルとしてディスクシステム上に送出される。基本ＯＳによって、上述したこれらの名称や機能的な枠組みは若干異なる場合があるが、本実施形態で言う各技術的手段が実現できるモジュールであれば、それらの名称や枠組みは本発明にとってあまり大きな問題ではない。なお、一般的に、これらの各機能モジュールを含むホストコンピュータ１０１は、中央演算処理装置（ＣＰＵ）、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブ（ＨＤＤ）、各種入出力制御部（Ｉ／Ｏ）などのハードウェアのもとで、基本ソフトと呼ばれるソフトウェアがその制御を司り、その基本ソフトの元で、それぞれの応用ソフト、サブ・システム・プロセスが機能モジュールとして動作するようになっている。
【００１４】
図２は、ホストコンピュータ１０１上の動作モジュールを詳細に示したものである。文書処理プログラム等の複数アプリケーション１０２、グラフィック・サブ・システム１０３から構成され、グラフィック・サブ・システムはGDI１０４及びアプリケーションから渡された印刷描画を処理するプリンタドライバ１０５から構成される。また、プリンタドライバ１０５は描画出力を行うグラフィック部２０１（GD）、ユーザインターフェイスを表示し、印刷時の設定をユーザが必要時に行えるようにするUI部２０２（UI）から構成されている。
【００１５】
通常、プリンタドライバUI部が表示したユーザインターフェイスの設定はプリンタドライバ管理構造体（以下DEVMODE）に格納され、アプリケーション１０２へと返される。アプリケーション、GDIは印刷時に本DEVMODEをプリンタドライバのグラフィック部へと伝達する。つまり、ユーザインターフェイスから設定した印刷情報は印刷時にグラフィック部の動作に反映されることになる。
【００１６】
また、外部記憶領域２０３は印刷時にアプリケーション、プリンタドライバ間での情報共有に使うための外部記憶領域である。
【００１７】
これらのモジュールは外部メモリに保存されたファイルとして存在し、実行される場合にＯＳによってＲＡＭにロードされ実行されるプログラムモジュールである。また、アプリケーション群１０２およびプリンタドライバ１０５は、外部メモリのフレキシブルディスクやＣＤ−ＲＯＭ（不図示）、あるいは不図示のネットワークを経由して外部のＨＤから追加することが可能となっている。外部メモリに保存されているアプリケーション２０１はＲＡＭにロードされて実行されるが、このアプリケーション１０２からプリンタドライバ１０５に対して印刷を行う際には、同様にＲＡＭにロードされ実行可能となっているGDI１０４を介して出力を行う。GDI１０４はプリンタドライバ１０５と同様に外部メモリからＲＡＭにロードし、アプリケーション１０２の描画要求をプリンタドライバ１０５に伝達する。プリンタドライバは伝達された描画命令を特定の制御コマンドに変換する。プリンタドライバにより生成された制御コマンドはネットワークを介してプリンタ機器に送信されることも、或いはファイルシステム上にファイルとして出力されることも可能である。なお、本実施例においては、プリンタドライバからの出力は中間ファイルとしてファイルシステム上に出力されるものとする。
【００１８】
本発明の概要は、ファイル出力系のプリンタドライバに中間フォーマットファイル作成を依頼するアプリケーション群が、インストール時に自身の識別子（以下アプリケーションＩＤ）をプリンタドライバが認識可能な共通外部領域２０３に登録する。プリンタドライバは該共通外部領域２０３を参照し、印刷設定時にインストールされたアプリケーションすべての設定が可能となるようにユーザインターフェイスを提供する。また、印刷時には、アプリケーションは自身のアプリケーションＩＤをプリンタドライバが認識可能な共通外部記憶領域２０３に保存する。印刷時、プリンタドライバはこの外部領域に記載されたアプリケーションIDを判断し、特定アプリケーションからの印刷を認識し、そのアプリケーションに固有の設定において中間ファイル生成を行うことができる。
【００１９】
図３は本発明にかかるプリンタドライバに中間ファイル作成を依頼するアプリケーションをインストールする時の処理の流れを示したフローチャートである。まず、Ｓ３０１でアプリケーションを構成するファイル群をシステムにコピーする。以後、これらのファイルはアプリケーション起動時に必要に応じてロードされるモジュール群である。次にＳ３０２にてアプリケーションのインストール情報をシステムに登録する。通常、アプリケーションはファイルをダブルクリックすることで自分自身が起動されるためのファイル拡張子の登録や、アンインストーラのパス情報等をシステムに登録する。次にＳ３０３で予め決められた共通記憶領域２０３から本発明にかかる固有領域を読み込む。Ｓ３０４にて、もしもこの固有領域が存在しなかった場合、固有領域を予め決められた場所に作成する（Ｓ３０５）。Ｓ３０４にてもしもこの固有領域が存在した場合、Ｓ３０６にてその共通領域のエントリの中に他のアプリケーションが存在していたらそれに追記する形で自身のアプリケーションＩＤを登録する（Ｓ３０６）。このようにプリンタドライバが参照できる固有領域にアプリケーションのインストール情報を示すアプリケーションＩＤを登録することで、以後、プリンタドライバはインストールされたアプリケーションに固有の動作を行うことが可能になる。
【００２０】
次に図４は本発明にかかるプリンタドライバに中間ファイル作成を依頼するアプリケーションをアンインストールする時の処理の流れを示したフローチャートである。まず、ステップＳ４０１でアプリケーションを構成するファイル群をシステムから削除する。次にＳ４０２にてアプリケーションのインストール情報をシステムから削除する。次にＳ４０３で本発明にかかる固有領域を予め決められた場所から読み込む。Ｓ４０４にてもしもこの固有領域内に他のアプリケーションの識別ＩＤが存在しなかった場合、固有領域を削除する（Ｓ４０６）。Ｓ４０４にてもしもこの固有領域が存在した場合、Ｓ４０５にてその共通ファイルのエントリの中の自分自身のアプリケーションＩＤを削除する。
【００２１】
なお、前記の固有領域は通常、レジストリ領域やiniファイル等の共有領域にキーと値をふくんだエントリとして存在している。
【００２２】
このエントリの例を示しているのが図５である。５０１はインストールされているアプリケーションを識別する領域であり、アプリケーションＡ，Ｂがインストールされている場合、５０４に示すようにアプリケーションＡ，Ｂが実際のエントリとして登録される。また、５０２は印刷時のアプリケーションＩＤを格納する領域である。５０３はアプリケーション固有の設定を格納する領域で、それぞれ５０４に実際の値が格納される。
【００２３】
上記の手法で１つ以上の特定アプリケーションがインストールされた状況下において、プリンタドライバは以下のように印刷設定を行うためのユーザインターフェイスを表示する。
【００２４】
図６はプリンタドライバの印刷設定をユーザが行う時のフローチャートを示している。ステップＳ６０１で前述の固有領域を読み込み、Ｓ６０２にてその時点でアプリケーションAがインストールされているかどうかを判定する。アプリケーションAがインストールされていればステップＳ６０３に進み、アプリケーションA用のユーザインターフェイスを追加する。次にＳ６０４にてアプリケーションBがインストールされているかどうかを判定する。アプリケーションBがインストールされていればステップS６０５に進み、アプリケーションBに関するユーザインターフェイスを追加する。同様にして、アプリケーションNがインストールされているかどうかをＳ６０６で判定し、インストールされていればアプリケーションN用のユーザインターフェイスを追加する。なお、本ユーザインターフェイスで設定された各アプリケーション用の設定はプリンタドライバ管理構造体（DEVMODE）に保存され、印刷時にプリンタドライバグラフィック部において印刷設定に使われることになる。
【００２５】
図７はこのときプリンタドライバが開いたユーザインターフェイスの一例である。この例ではアプリケーションＡ、アプリケーションＢともにインストールされている状況で、プリンタドライバの設定がアプリケーションＡ用の設定（７０１）とアプリケーションＢ用の設定（７０２）の２シートが表示されている。
【００２６】
この設定画面を通して利用者はアプリケーションＡに関する所望の設定とアプリケーションＢに関する所望の設定を入力できる。また、通常、プリンタドライバユーザインターフェイスは所望の時期に開くことができる。
【００２７】
次に、実際にアプリケーションから印刷動作が行われるときの動作を以下に説明する。
【００２８】
印刷処理がされていない通常状態において、記憶領域３０３は図５  ５０５のような構成になっている。ここでアプリケーションＩＤ及び出力ファイル名には設定されていないことを示す”0”が設定されている。アプリケーションからの印刷開始時、アプリケーションからの印刷要求はGDI１０４を介してプリンタドライバ１０５に伝えられる。例えばアプリケーションＡからの印刷時、アプリケーションＡは印刷前に図５  ５０６に示すよう記憶領域３０３を書き換えるものとする。５０６において、自分自身のＩＤを示す“アプリケーションＡ”、アプリケーションＡがプリンタドライバからの出力を取得するファイル名“Ｃ：APP_A￥print.x”が入力されている。
【００２９】
以降のプリンタドライバの処理フローに関しては図８に示してある。
【００３０】
アプリケーションＡはGDI１０４を介してプリンタドライバに印刷を指示する。印刷開始時、プリンタドライバは描画要求を受け付ける（Ｓ８０１）。印刷開始命令を受け取ったプリンタドライバは（Ｓ８０２）記憶領域３０３を読み込む（Ｓ８０３）。この時記憶領域３０３は５０６のようになっているため、プリンタドライバは５０７を参照し、これがアプリケーションＡからの印刷だと判断することができる（Ｓ８０４）。次に、５０８を参照し、プリンタドライバの出力先を決定する（Ｓ８０５）。次に描画要求を逐次受け付ける（Ｓ８０１）。この描画要求が印刷開始、印刷終了ではない場合（Ｓ８０６）、Ｓ８０７へ進み、アプリケーションから渡されたDEVMODEを印刷設定に反映し（Ｓ８０７）、描画命令をプリンタドライバで特定の制御コードに変換し、５０８で示されるファイル名、“C：APP_A￥print．x”に出力する（Ｓ８０８）。本動作を以後続けられるすべての描画要求に対して行う。最後にＳ８０６にて印刷終了命令を受け取る。これを受け取ったプリンタドライバはＳ８０９にてアプリケーションAに印刷終了を通知する。一般的に、この印刷終了通知はＧＤＩ１０４を介して行われることが可能である。アプリケーションＡは本印刷終了通知をＧＤＩより取得後、５０８で指定した出力ファイルを取得及び参照することが可能となる。
【００３１】
なお、Ｓ８０７において、印刷設定は前記ユーザインターフェイスで設定されたアプリケーションA用のDEVMODE設定に応じて行われる。これらはアプリケーションＩＤ５０７から相当するＤＥＶＭＯＤＥ設定値をグラフィック部が認識することで実現する。
【００３２】
以上のようにして、単一のプリンタドライバが複数のアプリケーションのアプリケーションＩＤに応じて、ＵＩ画面および印刷設定を切り替えることで、複数アプリケーションの印刷設定を制御できる。ホストコンピュータにインストールされているドライバは単一であるために、各アプリケーションが複数機能を使用する可能性があっても、利用者が各アプリケーション用のプリンタドライバをインストールする手間が軽減される。また、ドライバの開発者にとっても、版管理の煩雑さが軽減される。
【図面の簡単な説明】
【００３３】
【図１】本発明における情報処理装置の構成図である。
【図２】本発明における情報処理装置上のモジュール構成である。
【図３】本発明におけるアプリケーションインストールに関するフローチャートである。
【図４】本発明におけるアプリケーションアンインストールに関するフローチャートである。
【図５】本発明における共通記憶領域のフォーマットである。
【図６】本発明におけるプリンタドライバのユーザインターフェイス表示方法である。
【図７】本発明におけるプリンタドライバのユーザインターフェイスの例である。
【図８】本発明におけるプリンタドライバの印刷時のフローチャートである。
【図１】
2006154908.tif 000003
【図２】
2006154908.tif 000004
【図３】
2006154908.tif 000005
【図４】
2006154908.tif 000006
【図５】
2006154908.tif 000007
【図６】
2006154908.tif 000008
【図７】
2006154908.tif 000009
【図８】
2006154908.tif 000010