(実施例)
まず、この発明の第一実施形態を説明する。この第一実施形態は、プリンタドライバが印刷ジョブの処理を行った後、ユーザに対しアプリケーションの紹介を行うものである。
図1にこの第一実施形態のモジュール構成を示す。
図1におけるコンピュータシステム(100)は本実施例の印刷システムが動くコンピュータシステムを示す。コンピュータシステム(100)は、コンピュータシステム上のアプリやドライバや周辺機器を管理するオペレーティングシステム102(以下OS)を持つ。
アプリケーションソフトウェア(101)は印刷データの作成を行える機能を持つ。また印刷の際の用紙サイズ等を決める印刷設定画面をプリンタドライバ(107)より呼び出す機能と、印刷設定を行ったのち、OS(102)に対して印刷データの送信を行う機能を持つ。
入力装置(103)はユーザが操作を行うための装置であり、この入力結果はOS(102)を通してコンピュータシステム上のソフトウェアに通知される。モニタドライバ(105)はOS(102)に対して発行された描画命令を受け取り、モニタ(104)に表示を行うための処理を行う。モニタ(104)はモニタドライバ(105)からの命令を受け取り、画面上にデータの表示を行う。
統合アプリケーションインストーラ(108)は、コンピュータシステム(100)に対し、複数のアプリケーションソフトウェア(101)とアプリケーションアンインストーラ(112)をインストールする機能と、アプリケーション情報DB(109)にインストールしたアプリとそのアプリのアンインストーラの情報を登録する機能を持つ。
アプリケーション情報DB(109)はアプリケーションソフトウェア(101)はOSにインストールされている印刷用アプリの情報管理を行う。詳細については、図11の説明にて行う。
図12の印刷履歴DB(110)は今までコンピュータシステム(100)上で発生した印刷の履歴を保存するデータベースである。
プリンタドライバ(107)は、OS(102)に呼び出される事によって印刷ジョブを処理し、プリンタ(106)へ印刷命令を発行するドライバである。
プリンタドライバ(107)は印刷処理を行う際に印刷履歴DB(110)に印刷の情報を保存する機能を持つ。また、印刷履歴DB(110)とアプリケーション情報DB(109)内の情報を使う事により、アプリケーション紹介プログラム(111)を呼び出す機能をもつ。
アプリケーション紹介プログラム(111)はOSに対しアプリケーション紹介ダイアログをモニタ(104)に表示するよう命令する機能を持つ。またユーザが入力装置(103)を通してアプリケーションソフトウェア(101)のアンインストール命令を入力できるようにする機能を持つ。さらに、アンインストール命令を受け取った場合には、該当するアプリケーションソフトウェア(101)のアプリケーションアンインストーラ(112)の呼び出しを行う機能と、またアプリケーション情報DBにアンインストールが行われたという情報を記載する機能を持つ。
アプリケーションアンインストーラ(112)はアプリケーションソフトウェア(101)のアンインストールを行う機能を持つ。プリンタ(106)はプリンタドライバ(107)から受け取った印刷命令を元に印刷を行う機能を持つ。
図18は、本発明の第1実施形態を示すクライアント構成を説明するブロック図である。図示しない通信媒体、例えばイーサネット(登録商標)等のLANを介して所定の周辺機器がローカル接続された他のデータ処理装置と所定のプロトコルにより通信可能に構成されているものとする。なお、所定の周辺機器はインクジェットプリンタ,レーザプリンタ、スキャナ,モデム,複合画像処理装置等を含む。
図において、1はシステムバスであり、これから説明する各部はこのシステムバス1に接続されている。2はCPU(Central ProcessingUnit)である。
3はプログラムメモリ(PMEMと称す)で、本処理のためのプログラムを適宜ハードディスク10から選択/読込みし、CPU2にて実行する。又、キーボード12から入力されたデータはテキストメモリでもあるPMEM3にコード情報として格納される。
4は通信制御部であり、通信ポート5に於ける入出力データの制御を行う。通信ポート5から出力された信号は、通信回線6を経由して、ネットワーク上の他の装置7の通信ポートに伝えられる。
ネットワーク上で共有されているプリンタや、画像読み取り装置(スキャナ)とのやり取りは、この通信制御部4を介して行われる。なお、本実施形態ではLANなどのネットワークに関して記述するが、この通信制御部4に接続される通信ポート及び通信回線が一般の公衆回線であっても本発明が適応されることは言うまでもない。スキャナで読み取った画像もプリンタへ送信して印刷が可能である。
8は外部記憶装置制御部で、データファイル用のディスク、例えばフロッピー(登録商標)ディスク(FDと称す)9や、ハードディスク(HDと称す)10とのアクセスを制御する。
11は入力制御部であり、キーボード12、マウス13等の入力装置が接続される。操作者はこのキーボード12を操作することによりシステムの動作指令等を行う。16はCRT装置(CRT)で、CRT16上で画像情報を加工指示するためにはポインティングデバイス(PDと称す)が使用され、本実施形態ではマウス13を使用している。
これによりCRT16上のカーソルをX,Y方向に任意に移動してコマンドメニュー上のコマンドアイコンを選択して処理の指示を行なうほか編集対象の指示、描画位置の指示等も行う。
14はビデオイメージメモリ(VRAMと称す)で、CRT16に表示すべき描画データ(ビットマップデータ)が展開され、表示出力制御部15を介して適宜読み出されてCRT16にその内容が表示される。17はプリンタ制御部であり、接続されているプリンタ18に対するデータの出力制御を行う。
1Aは画像読み取り機器制御部であり、接続されている画像読み取り機器1Bの画像読み取り制御を行う。なお、外部機器制御部19は、プリンタ制御部17または画像読み取り機器制御部1Aを介して外部機器の動作を制御する。
なお、クライアント側装置では、前述のように、通信制御部4、及び通信ポート5を介してサーバ側の共有されている同構成要素を使用することができる。
なお、本実施形態でROMに記憶しているプログラムは、装置に直接接続されているハードディスク(HD)10やフロッピー(登録商標)ディスク(FD)9などの記憶媒体にも記憶されていてもよい。さらに、ネットワークで接続されている他の装置上に記憶されていてもよい。また、本発明のプログラムは、ハードディスク(HD)10やフロッピー(登録商標)ディスク(FD)9などの記憶媒体やネットワークを介してシステムや装置に供給できる。図1に記載されているコンピュータシステム内の各種プログラム群は、ハードディスクHDに記憶されている。そして、必要に応じて図7のRAM20に当該プログラム群はメモリ展開され、CPU2により実行される。
図2は、コンピュータシステム(100)にアプリケーションをインストールするための統合インストーラが、どのアプリケーションをインストールするかを選別し、インストールする事が決定したアプリケーションのアプリケーションインストーラを呼び出し、インストール後にアプリケーション情報DB(109)にアプリケーションの情報の登録を行う流れ図である。アプリケーション情報DB(109)に保存する情報に関しては後の図11についての説明において行う。
図3は、前記統合インストーラにおいて、インストールするアプリケーションソフトウェア(101)のリストを作成する際に呼び出される、印刷推奨アプリリストからの非インストールアプリ削除処理の流れを示したものである。ここでは、アプリケーション情報DB(109)の内容から、以前アンインストールされた事のあるアプリケーションを探し、統合アプリケーションインストーラ(108)が作成した、コンピュータシステム(100)にインストールする事が推奨されるアプリケーションソフトウェア(101)のリストから、そのアプリケーションを削除する流れを示す。
図4は、印刷が行われる時のアプリケーションソフトウェア(101)の流れ図である。アプリケーションソフトウェア(101)はユーザに印刷設定を行わせ、その後拡張子付ファイル名とアプリケーション名をあわせたものをドキュメント名として作成し、そのドキュメント名で印刷処理を行う。
ここで作成されたドキュメント名は、後述のプリンタドライバにおける印刷処理において使われる。
図5は、プリンタドライバにおける印刷処理を示す。ここでは、印刷処理を行ったのち、その印刷履歴を残すとともにアプリケーションの紹介を行うかどうかの判定を行い、もしアプリケーションの紹介を行うようであれば、アプリケーション紹介プログラム(111)を呼び出す流れを示している。
図6は、プリンタドライバの印刷処理内のデータタイプ取得処理で使われる、印刷特徴データを取得するために呼び出される印刷特徴抽出処理の流れ図を示す。ここでは、ファイル名から拡張子を、また印刷設定情報(印刷用紙サイズ・印刷用紙の種類・画像処理設定・給紙方法等)から、印刷用紙サイズ(A4やはがきなど)と、印刷用紙の種類(光沢紙・普通紙など)を取得し、拡張子と合わせて印刷特徴データとし、プリンタドライバ(107)にデータを渡す処理を示している。
図7は、プリンタドライバの印刷処理内で呼び出される印刷データのデータタイプ判別処理の流れ図を示す。ここでは、前述の印刷特徴抽出処理で得られた印刷特徴データを使い、印刷特徴変換テーブルを参照する事によって、印刷データが、写真を印刷するものなのか、それともWebデータを印刷するものなのかといったデータタイプを取得する流れを示している。ここで、印刷特徴変換テーブルについては、後の図13の説明にて行う。
図8は、プリンタドライバにおいて、印刷が行われたのち、呼び出されるデータタイプ別印刷履歴保存処理の流れ図をしめしている。ここでは、前述の印刷データのデータタイプと、印刷の行われたアプリケーション名を元に印刷データの印刷履歴保存DB(210)への保存を行う。
図9は、プリンタドライバにて、アプリケーションの紹介が必要と判断された場合に呼び出されるアプリケーションソフトウェア紹介プログラムの、アンインストールボタンが押される場合の流れ図を示している。ここでは、アプリケーションソフトウェアの紹介画面を表示したのち、アンインストールボタンが押されたらアンインストール処理を行ってプログラムを終了する。
図17は、プリンタドライバにて、アプリケーションの紹介が必要と判断された場合に呼び出されるアプリケーションソフトウェア紹介プログラムの、OKボタンが押される場合の流れ図を示している。ここでは、アプリケーションソフトウェアの紹介画面を表示したのち、ユーザが、二度とこのメッセージを表示しない事を指示した場合は、該当アプリケーションの紹介メッセージを表示しないようにする。2度とこのメッセージを表示しないボタンを押してアンインストールボタン又はOKボタンを押すと、次回以降表示画面を表示する条件を満たしても図10の画面を表示しない。
図10は、アプリケーションソフトウェア紹介プログラムから呼び出されるアプリケーションソフトウェア紹介画面の見本を示す。ここでは、アプリケーションソフトウェアの紹介文と、アンインストールを行うための「アンインストールボタン」と、アプリケーションの紹介を二度と行わせない事をユーザに指示させるためのチェックボックスと、アプリケーションソフトウェア紹介画面を閉じるための「OKボタン」が存在する事を示す。
図11は、本実施例において扱われるアプリケーション情報DB(109)に保存されるアプリケーションソフトウェア(101)の情報の表を示す。
ここで、アプリケーション情報DB(109)には、現在インストールされているアプリの名前と、そのアプリからの印刷を推奨するデータタイプと、アプリケーションの紹介の表示を行うかどうかを示す説明表示フラグと、アンインストールを行うためのアンインストーラの保存場所と、かつてアンインストールが行われた事があるかどうかを示すアンインストールフラグと、アプリの紹介を行うための紹介文が保存される。
なお、説明表示フラグは1ならば表示を行う、0ならば表示を行わない事を示し、アンインストールフラグは、0ならばアンインストールされた事が無い、0以外ならばアンインストールされた事がある事を示す。
図12は、データタイプ別印刷履歴を示す。これは、データタイプ毎に何回印刷が行われたかと、さらにそのデータタイプがどのアプリから何回印刷が行われたかを表にしたものである。例えば、データタイムWebのデータ(例えばHTMLやXMLデータ)を簡単ウェブ印刷というアプリケーションで15回、推奨アプリ意外で5回印刷したことを示す。写真のデータタイプは簡単写真印刷というアプリにより印刷実行された印刷回数は0回で、推奨アプリ以外では50回印刷されたことを示す。
図13は、印刷特徴変換テーブルを示す。これは、プリンタドライバ内の印刷データの特徴抽出の結果から、その印刷データのデータタイプを割り出すための情報を示すものである。ここでこのテーブルは、ファイルの拡張子と印刷用紙のサイズと印刷用紙の種類から、データタイプが一意に決まるテーブルとしている。
ここで、図2を参照して第一の実施形態における、統合アプリケーションインストーラ(108)(以下統合インストーラ)によるアプリケーションソフトウェア(101)(以下アプリ)のインストール処理を示す。ここで、この処理は、複数のアプリをインストールする統合インストーラが、インストールするアプリを決める判断処理と、インストールしようとするアプリの登録に必要な情報を持ち、アプリのインストールに成功したら、その情報をアプリケーション情報DB(109)へ登録する機能を持つ。
ステップS201では、ユーザからのインストール指示を認識する。S202では、統合アプリケーションインストーラ(108)が推奨するアプリケーションを全てインストールする、おまかせインストールモードをユーザが選択指示したのか、インストールするアプリを選ぶ事ができるカスタムインストールモードを選択指示したのかを判定する。
次のステップS202の判断処理で、おまかせインストールが選択されたと判断された場合は、ステップS203に進む。S203では、インストールを推奨するアプリケーションのリスト(以下インストール推奨アプリリスト)を作成する。S202でカスタムインストール処理が選択されたと判断されれば、S205へ進む。
S204では、アプリケーション情報DBより、先ほど作成したインストール推奨アプリリストから、インストールを行わないほうがよいアプリケーションを探し出し、インストール推奨アプリリストから削除し、実際にインストールを行うアプリケーションのリスト(以下インストールアプリリスト)を作成する。
また、S205では、カスタムインストールに応じたインストール推奨アプリリストを作成する。次のS206では、アプリケーション情報DBより、先ほど作成したインストール推奨アプリリストから、インストールを行わないほうがよいアプリケーションを探し出し、インストール推奨アプリリストから削除し、インストールアプリリストとする。さらに次のステップS207では、ユーザにインストールする事ができるアプリケーションの提示を行うとともに、インストールするアプリケーションの選択を行わせ、インストールアプリリストを更新する。
ステップS208に示されるループAでは、ステップS204とステップS207の結果得られたインストールアプリケーションリストの全てのアプリについて、繰り返し、以下の処理を行う。ステップS209では、該当するアプリのインストーラを起動し、そのインストール結果を取得する。ステップS210では、インストーラから返された結果を参照し、もし失敗した場合は次のアプリについての処理に進む。もしインストールに成功していた場合には、アプリケーション情報DB(109)があるかどうかをステップS211にて調べる。もしアプリケーション情報DBがすでに存在する場合はステップS213にてアプリケーション情報DBへの登録を行う。もしアプリケーション情報DBが無い場合にはステップS212にてアプリケーション情報DBをコンピュータシステム上に作成してステップS213にて情報の登録を行う。ここで、アプリケーション情報DBに保存される情報は、前述の図11のようになる。
全てのアプリのインストールが終わったら統合インストーラの処理は終了となる。
ここで、図3を参照して第一の実施形態における、インストール推奨アプリリストからの非インストールアプリの削除処理の流れ図を示す。この処理は、統合アプリケーションインストーラ(108)から呼び出される処理であり、統合インストーラにおいて作成されたインストール推奨アプリリストから、非インストールアプリの情報を削除する処理である。
ステップS701では、統合アプリケーションインストーラ(108)より、インストール推奨アプリリストを取得する。次にステップS702にてアプリケーション情報DB(109)が存在するかどうかを調べる。アプリケーション情報DB(109)が存在しないようであれば、初めて本発明の印刷システムを導入するコンピュータシステムであると判定し、非推奨アプリ判断処理を終了する。
もし、アプリケーション情報DB(109)が存在する場合は、ステップS703にすすみ、ステップS701で取得したインストール推奨アプリリストの全てのアプリについて以下の処理を繰り返し行う。
ステップS704ではアプリケーション情報DB(109)内に、該当アプリの情報があるかどうかを調べる。もし情報が無い場合は次のアプリについて処理を続ける。
もし推奨アプリケーションの情報がアプリケーション情報DB(109)上に見つかった場合には、ステップS705に進み、そのアプリケーションソフトウェアのアンインストールフラグを見る。アンインストールフラグがゼロと判断した場合は次のアプリケーションソフトウェアについて処理をつづける。
もし、該当アプリケーションソフトウェアのアンインストールフラグが0で無いと判断した場合は、以前アンインストールを行った事があるアプリケーションであると判断される。よって、今回のインストールでは新たなインストールは実行しないと判断し、ステップS706に進み、インストール推奨アプリリストから、該当アプリケーションを外す。以上の処理を、全てのインストール推奨アプリリストについておこなったのち、その結果作成されたリストを、インストールアプリリストとして統合インストーラに戻し、非推奨アプリ判断処理を終了する。
ここで、図4を参照して第一の実施形態における、アプリケーションソフトウェア(101)による印刷処理を示す。この処理では、後の処理でプリンタドライバがどのアプリから印刷が行われたのかを判別するため、ドキュメント名に拡張子付ファイル名とアプリ名を埋め込む。
ステップS301では、印刷を行う前に印刷設定処理を行う。ステップS302では現在開いているドキュメントの拡張子付ファイル名を取得し、ステップS303では、アプリケーションの名前を取得する。ステップS304では拡張子付ファイル名とアプリケーションの名前を組み合わせた文字列をドキュメント名として保存する。ステップS305では、ステップS304までに作成されたドキュメント名を用い、印刷処理を行う。
ここで、図5を参照して第一の実施形態における、プリンタドライバ(107)における印刷処理の始まりからアプリの紹介画面の表示までを示す。この処理の特徴は、プリンタドライバ(107)が印刷履歴を保存するとともに、その印刷履歴から、アプリの紹介画面を表示するかどうかを判断し、アプリの紹介プログラムを呼び出すところにある。
まず、プリンタドライバ(107)はOS(102)から呼び出されると、ステップS401にて印刷ジョブの初期化処理を行う、その際、出力用紙サイズ(A4,L判など)や出力用紙の種類(普通紙、光沢紙など)といった印刷設定を保存しておく。この印刷設定は、後のステップS407にて使用する。さらに、ステップS402で印刷ジョブに含まれるドキュメント名からアプリケーション名とファイル名を取り出し、保存しておく。その後ステップS403では、プリントデータの作成を行い、ステップS404にてプリンタ(206)へのプリントデータの送信を行う。次に、ステップS405では、ステップS402でアプリケーション名が取得できていたかどうかを判定し、アプリケーション名が取得できなかった場合は、ステップS406にてアプリケーション名を「推奨外アプリ」に設定する。
次にステップS407では印刷の特徴抽出を行い、その結果からステップS408にてデータタイプの判別を行う。ステップS409では、上記までに得られたファイル名・アプリケーション名・データタイプを元に、データタイプ別印刷履歴の印刷履歴DB(110)への保存を行う。データタイプ別印刷履歴は前述の図12のようになる。印刷履歴DBは、図18のハードディスク10に記憶され、各種プログラム群により読み書き可能である。
次にステップS410では、印刷履歴DB(110)の内容を呼び出す。ステップS411にて、S408で特定されたデータタイプ印刷が一定回数以上行われているかどうかを調べ、もし一定回数以上行われているデータタイプの場合はプリンタドライバの処理を終了する。もし一定回数以上行われているデータタイプの場合はステップS412にてそのデータタイプが、そのデータタイプを印刷するのに推奨される推奨アプリケーションから印刷された事があるかどうかの判定を行う。もし、推奨アプリケーションから印刷された事があるならば、プリンタドライバの処理を終了する。
もし、推奨アプリケーションから印刷された事が無い場合は、ステップS413にてアプリケーション情報DB(109)よりアプリケーション情報の呼び出しを行う。そして、次のステップS414にてアプリケーション紹介プログラム(111)を起動し、アプリケーション情報を渡す。その後、プリンタドライバ(107)の処理は終了する。
例えば、図12に示す状況にて、写真印刷を行った場合を例に取る。
S412のチェックまで進むと、写真印刷の推奨アプリケーションは、「簡単写真印刷」であるが、「簡単写真印刷」アプリケーションからは印刷された事が無い事が分かる。その場合はS413へ進む。
S413では、アプリケーション情報DB(109)から「簡単写真印刷」の紹介文を呼び出す。
その後S414へ進み、S413で呼び出された紹介文を表示する。
さらに例をあげると、図12に示す状況にて、WEB印刷を行った場合は、推奨アプリケーションである簡単Web印刷が15回使用されているため(S412−YES)、処理を終了する。
なお、ここで言う「写真」「Web」などといったのデータのタイプは、S407の特徴抽出処理によって得られた結果を元にS408にて印刷特徴変換テーブルを参照する事で決定される。
ここで、S407の図6を参照して、第一の実施形態における、プリンタドライバ(107)で行われる印刷特徴抽出処理の流れを示す。この処理の特徴はファイル名から拡張子を、印刷設定情報から印刷用紙サイズと印刷用紙の種類を取り出す事を特徴とする。
こうして取り出された「拡張子」「印刷用紙サイズ」「印刷用紙の種類」などを、印刷特徴データとする。
ステップS501では、プリンタドライバ(107)よりファイル名と印刷設定情報を受け取る。ステップS502では、ファイル名より拡張子を取得する。ステップS503で拡張子が取得できたかどうかを判定する。S503でもし拡張子が取得できていないと判定されたら、ステップS504にて拡張子が取得できなかった事を意味する「−」を拡張子として設定し、S505へすすむ。S503で拡張子が取得出来ていると判定されれば、そのままS505へ進む。ステップS505では、印刷設定情報の中から出力用紙サイズと出力用紙の種類を取得する。ステップS506では「拡張子」と「出力用紙サイズ」と「出力用紙の種類」を印刷特徴データとしてプリンタドライバに返す。
ここで、図7を参照して第一の実施形態における、プリンタドライバ(107)で行われるデータタイプ判別処理の流れを示す。ここで、第一実施形態の特徴は、印刷特徴データである「拡張子」と「出力用紙サイズ」と「出力用紙の種類」から、データタイプを判定する事のできる印刷特徴データ変換テーブルを持つ事、また、そのテーブルを使いデータタイプを決定する事を特徴とする。印刷特徴データ変換テーブルは前述の図13のようになる。
図7について説明する。ステップS801では、プリンタドライバ(107)より印刷特徴データを取得する。その後、ステップS802で印刷特徴変換テーブルを読み込む。次に、ステップS803にて示すループにて、印刷特徴データ「拡張子」と「出力用紙サイズ」と「出力用紙の種類」のそれぞれの項目について以下の操作を行う。なお、操作の順番は「拡張子」、「出力用紙サイズ」、「出力用紙の種類」の順である。
まず、ステップS804では、テーブルの中の該当する項目が、複数行に分かれているかどうかを判別する。もし、該当する項目が一つしか無い場合は、その項目を選んだ事にし、選択ステップS803に戻り、次の項目について判断を行う。その行が複数行に分かれている場合は、ステップS805に進み、該当する項目の印刷特徴データを参照し、そのデータにマッチする行を選ぶ。次のステップS806では、ステップS805の結果、マッチする行があったかどうかを調べ、マッチする行が無かった場合、ステップS806の判断にてステップ807に進み、印刷特徴テーブルにて「その他」(表に載っていない拡張子、用紙サイズ、用紙の種類)を意味する「−」を選択し、次の項目に進む。マッチする行があった場合、その行を選択し、次の項目に進む。その後、拡張子、PAPERSIZE、MEDIATYPEの項目のチェックが終わるまでステップS803のループを継続する。ステップS809では、ループS803の結果から、データタイプを決定し、プリンタドライバ(107)に結果を返す。そして、データタイプ判別処理を終了する。
例えば、拡張子が「JPG」用紙サイズが「はがき」用紙の種類が「はがき」という印刷特徴データを、図13の印刷特徴変換テーブルにかける場合は次のようになる。拡張子が「JPG」なので、テーブルの拡張子の項目は「JPG」が選ばれる。次に用紙サイズが「はがき」なので、PAPERSIZEの項目は「はがき」が選ばれる。最後に印刷用紙の種類であるが、印刷用紙がはがきの場合はメディアサイズは選択肢が無いためMEDIATYPEの項目は「―」が選ばれる。その結果得られるデータタイプの項目は「はがき」である。
さらに例をあげると、拡張子が「JPG」用紙サイズが「A4」用紙の種類が「光沢紙」という印刷特徴データの場合、データタイプは「写真」になる。
ここで、図8を参照して第一の実施形態における、データタイプ別印刷履歴保存処理の流れを示す。
データタイプ別印刷履歴保存処理はプリンタドライバから呼び出され、データタイプ毎に印刷履歴を保存する。
ステップS901では印刷データのデータタイプと印刷が行われたアプリケーション名(以下印刷アプリ名)をプリンタドライバから取得する。次にステップS902にてアプリケーション情報DBを呼び出す。ステップS903にて印刷アプリ名がアプリケーション情報DB内に存在するかどうかを調べる。S903で、印刷アプリ名がDB内に存在しないと判定された場合はステップS904に進み、印刷アプリ名を「非推奨アプリケーション」とする。S903で印刷アプリ名が存在すると判定された場合はS905へ進む。
ステップS905にて印刷履歴DBを呼び出す。そして、ステップS906で該当するデータタイプの総合印刷回数を+1する。さらにステップS907にて該当するデータタイプが、今回の印刷アプリから印刷された回数を+1し、データタイプ別印刷履歴保存処理を終了する。
ここで、図9を参照して第一の実施形態における、アプリケーション紹介ダイアログの表示処理における、アプリケーション紹介ダイアログの表示から、ユーザからのアンインストール命令を受け取り、削除処理を行う等の流れを示す。アプリケーション紹介ダイアログは前述の図10のようになる。
ステップS601では、アプリケーション情報DB(209)を開き、ステップS602にて、アプリケーションの紹介文と、アプリケーションアンインストーラ(112)の保存場所と説明の表示を行うかどうかの説明表示フラグを読み込む。ステップS603にて、もし説明表示フラグが0である場合は、説明の表示を行わないので、そこでアプリケーション紹介ダイアログの表示処理を終了する。
もし、説明表示フラグが1である場合はステップS604にて、アプリケーション紹介ダイアログの表示を行う。次に、ステップS605でユーザがボタンを押した事を判定する。
S605でOKボタンが押されたことを判定すれば、S611へ進み、アプリケーション紹介ダイアログを閉じる。S605で図10のアンインストールボタン1001が押されたことを判定すれば、S606へ進む。S605で図10の起動ボタン1002が押された場合、S612へ進み、推奨アプリケーションを起動する。そのアプリケーションを使い印刷処理を行えば、よりよい印刷結果を得ることが出来る。例えば、ユーザが最終的に10枚の写真を印刷する時、ある適当なアプリからまず1枚目の印刷を行う。1枚目の印刷終了後、その印刷しようとしたデータに適したアプリケーションが紹介される。そしてユーザがその紹介を受け入れた場合、推奨アプリケーションが起動される。その後、残りの9枚の印刷をその推奨アプリケーションで行うことができる。
もちろん、推奨アプリケーションが複数ある実施形態も考えられ、優先度に応じて複数のアプリケーションを同時に表示させることも出来る。
ステップS606ステップでは、S602で受け取った、アプリケーションアンインストーラ(112)の保存場所より、該当アンインストーラを呼び出し、その結果を受け取る。
ステップS607アンインストールが成功したかどうかを調べ、もしアンインストールに成功した場合はステップS608にてアプリケーション情報DB(109)の中の、該当アプリケーションのアンインストールフラグを1に設定する。次に、印刷表示フラグを0に設定する。もし、アンインストールに失敗していた場合、ステップS610にてエラーダイアログを表示し、ステップS611にてアプリケーション紹介ダイアログを閉じ、処理を終了する。
ここで、図17を参照して第一の実施形態における、アプリケーション紹介ダイアログの表示処理における、アプリケーション紹介ダイアログの表示から、ユーザがOKボタンを推し、ダイアログを閉じるまでの処理を示す。アプリケーション紹介ダイアログは前述の図10のようになる。
ステップS1701では、アプリケーション情報DB(209)を開き、ステップS1702にて、アプリケーションの紹介文と、アプリケーションアンインストーラ(112)の保存場所と説明の表示を行うかどうかの説明表示フラグを読み込む。ステップS1703にて、もし説明表示フラグが0である場合は、説明の表示を行わないので、そこでアプリケーション紹介ダイアログの表示処理を終了する。
もし、説明表示フラグが1である場合はステップS1704にて、アプリケーション紹介ダイアログの表示を行う。次に、ステップS1705にてユーザがOKボタンを押した事を受け取ると、次のステップS1706でダイアログ上にあった「二度と表示しない」チェックボックスがONになっている事を調べる。もし二度と表示しないに設定されていたら、ステップS1707にて印刷表示フラグを0に設定する。S1706で、チェックボックスが二度と表示しないに設定されていなかったら、何もしない。
その後、ステップS1708にてアプリケーション紹介ダイアログを閉じ、処理を終了する。
なお、本実施形態では、印刷特徴として扱われていたのは、ファイルの拡張子と、印刷用紙サイズと、印刷用紙の種類の三つであるが、これは印刷品質や画像にかけられた画像処理などのその他の印刷設定を印刷特徴として採用してよい。
また、本実施形態では複数のインストーラを管理する統合インストーラが、アプリケーション情報DBへ情報の登録を行っていたが、それぞれのアプリのインストーラや、アプリケーションの存在を管理する常駐プログラムを設け、常駐プログラムがアプリケーション情報DBへの情報の登録を行っても良い。
さらに、本実施形態では、プリンタドライバがプリンタへの印刷命令を送った後にアプリケーションの紹介を行っていたが、これはアプリケーションから印刷命令が発行されてから、プリンタへの印刷命令の送信が行われるまでの間にアプリケーションの紹介を行っても良い。
(第二実施形態)
第二実施形態は、一つのデータタイプに推奨される印刷用アプリが複数ある場いいの実装形式である。
第二実施形態の特徴は、アプリケーション情報DBに保存される情報に、どのデータタイプの印刷に適しているかと、その印刷に対する優先度が設定されている事である。さらにプリンタドライバが紹介するアプリケーションを決定する際に、その優先を用い、実際に紹介を行うアプリケーションを決める事にある。その他のモジュール構成・アプリケーションインストーラ・アプリケーションソフトウェア、アプリケーション紹介ダイアログの動き、データタイプ別印刷履歴と印刷特徴変換テーブルは同じである。
以下、図14から図16を参照して本願実施形態における印刷処理の流れを説明する。
図14は、この第二実施形態のプリンタドライバにおける印刷処理を示す。ここでは、印刷処理を行ったのち、その印刷履歴を残すとともにアプリケーションの紹介を行うかどうかの判定手段を呼び出し、もしアプリケーションの紹介を行うようであれば、アプリケーション紹介プログラム(111)を呼び出す流れを示している。
図15は、紹介するアプリケーションを決定する紹介アプリ決定処理の流れ図を示す。この処理はプリンタドライバから呼び出され、印刷履歴DBの内容と、アプリケーション情報DBの情報から、紹介を行うアプリケーションの決定を行う。
図16は、本実施形態におけるアプリケーション情報DBに保存する情報を示す。
ここで、第二実施形態の特徴は、そのアプリケーションの推奨データタイプに対し、その優先順位が設けられているところである。なお、優先順位は5の方がより推奨され、0では推奨されない。優先度は予め設定可能であるがこのテーブルをユーザが変更することにより適宜修正可能である。
ここで、図14を参照して第一の実施形態における、プリンタドライバ(107)における印刷処理の始まりからアプリの紹介画面の表示までを示す。
まず、プリンタドライバ(107)はOS(102)から呼び出されると、ステップS1401にて印刷ジョブの初期化処理を行う、その際、出力用紙サイズ(A4,L判など)や出力用紙の種類(普通紙、光沢紙など)といった印刷設定を保存しておく。この印刷設定は、後のステップS1407にて使用する。さらに、ステップS1402で印刷ジョブに含まれるドキュメント名からアプリケーション名とファイル名を取り出し、保存しておく。その後ステップS1403では、プリントデータの作成を行い、ステップS1404にてプリンタ(206)へのプリントデータの送信を行う。次に、ステップS1405では、ステップS1402にてアプリケーション名が取得できていたかどうかを判定し、アプリケーション名が取得できなかった場合は、ステップS1406にてアプリケーション名を「推奨外アプリ」に設定する。
次にステップS1407では印刷の特徴抽出を行い、その結果からステップS1408にてデータタイプの判別を行う。ステップS1409では、上記までに得られたファイル名・アプリケーション名・データタイプを元に、データタイプ別印刷履歴の印刷履歴DB(110)への保存を行う。データタイプ別印刷履歴は前述の図12のようになる。
次にステップS1410では、紹介を行うアプリを得るための紹介アプリケーション決定処理を呼び出し、その結果を受け取る。次のステップS1411では、ステップS1410の結果紹介を行うアプリケーションが存在したかどうかを判断し、もし紹介するアプリケーションが無い場合はプリンタドライバの処理を終了する。もし、紹介を行うアプリケーションが見つかった場合は、ステップS1412にてアプリケーション情報DB(109)よりアプリケーション情報の呼び出しを行う。ステップS1413にてアプリケーション紹介プログラム(111)を起動し、アプリケーション情報を渡す。その後、プリンタドライバ(107)の処理は終了する。
ここで、図15を参照して第二の実施形態における、プリンタドライバ(107)から呼び出される紹介アプリケーション決定処理の流れを示す。ここで、第二実施形態の特徴は、印刷用アプリが複数個存在する場合、優先順位の高い順に紹介を行うかどうかを判断していき、その場面で紹介するのが最も適していると判断されたアプリの紹介を行うところにある。アプリケーション情報DBは前述の図16のようになる。
ステップS1501では、印刷履歴DB(110)を読み込む。次にS1502にて一定回数以上印刷が行われているデータタイプがあるかどうかを調べる。もし、そのようなデータタイプが無い場合は、ステップS1512に進む。S1512では、紹介すべきアプリは無い事を呼び出し元に戻し、処理を終了する。ステップS1502にて、一定回数以上印刷を行っているデータタイプが見つかった場合はステップS1503に進む。
S1503で、もし該当データタイプの印刷に推奨される印刷用アプリが複数あると判断された場合は、場合は、ステップS1504に進む。ステップS1504では、該当データタイプの印刷に推奨される印刷用アプリを、優先度順にリストにする(以下推奨度順印刷アプリリスト)。そして、S1507に進む。
次のステップS1507以降では、推奨度順印刷アプリリスト内の印刷アプリのそれぞれについて、S1508の判断を行う。判断は推奨度の高い順に行っていく。全ての印刷アプリについて判断処理が終了したら、S1506に進む。
S1508の判断文では、S1409で更新された印刷履歴DB(110)を参照し、特定データタイプの印刷が、現在調べている印刷アプリで行なわれたことがあるか否かを判定する。そのアプリから印刷が行なわれたことがあると判定された場合は次の印刷アプリについて調べる。そのアプリから印刷が行なわれたことがないと判定された場合には、S1509にて、そのアプリを紹介候補として記憶する。この処理を全ての印刷用アプリについて行う。なお、S1508の判断は、印刷が全く行なわれたことが無いかあるか(0回か1回以上か)の判断処理を行なうだけでなく、印刷が予め設定されたN回以上(Nは、1以上の整数とする)行なわれた場合にYESと判断し、設定されたN回数以上印刷が行なわれていない場合には、NOと判断してもよい。
S1506では、S1509で紹介候補とするアプリが記憶されているかを判定する。紹介候補とするアプリが一つも無い場合、S1511へ進む。S1506で紹介を行なうアプリがないと判定された場合には、S1512へ進み、紹介すべきアプリは無い旨を呼び出し元に返信する。
S1511では、S1509にて、紹介候補として登録されたアプリケーションの情報を呼び出し元に返信する。
もしステップS1503にて該当データタイプに推奨される印刷用アプリが複数はない事がわかった場合、ステップS1505に進む。ステップS1505では該当データタイプに推奨される印刷用アプリが一つだけあり、かつ、そのアプリから印刷処理が行われた事が無いかどうかを調べる。もし、そのアプリから印刷が行われた事が無い場合には、S1512へ進む。また、推奨する印刷用アプリが一つも無い場合にもS1512へ進む。それ以外の場合には、S1506へ進む。S1512では紹介すべきアプリが無い旨を呼び出し元に返信し、処理を終了する。なお、S1506の判断では、印刷が全く行なわれたことが無いかあるか(0回か1回以上か)の判断処理を行なうだけでなく、印刷が予め設定されたN回以上(Nは、1以上の整数とする)行なわれたかどうかを判断しても良い。
なお、本実施形態においては、アプリケーションの紹介文についてのみ記載されているが、推奨ソフトウェアの紹介を行うための画像、動画を保存しておいて、それを紹介に利用するような実施形態も考えられる。また、本実施形態においては、ソフトウェアの削除履歴をプリンタドライバが持ち、それを印刷実行時に利用していた。しかし、この削除履歴はプリンタドライバとは別アプリケーションとして、削除履歴保存データベースを持ち、それと他のアプリケーションとの連携も考えられる。例えば、削除履歴保存データベースをコンピュータ上にインストールしておき、そこに一度インストールされたが、削除されてしまったアプリケーションの情報を書き込んでおく。ここで、複数のソフトウェアをインストールする統合インストーラにおいては、その削除履歴保存データベースを参照する事で、一度削除された事のあるアプリケーションはインストールしないという実施形態が考えられる。さらには、前記統合インストーラにおいて、類似した機能を持つアプリケーションが複数ある時に、前記削除履歴保存データベースの情報を、どのアプリケーションをインストールするかという判断に利用する実施形態も考えられる。
また、本実施例は複数の印刷用アプリケーションがある場合に、どのアプリケーションの紹介を行うかを自動的に判断して、そのアプリケーションの紹介のみを表示していたが、これは複数のアプリケーションの紹介を一度に行っても良い。例えば、あるデータタイプの印刷に対して、なんらかのアプリケーションの紹介を行った方が良いと判断された時、図11に示すようなアプリケーションのリストを表示し、ユーザーにその選択を行わせても良い。ここで、このリストに表示するアプリケーションは、そのアプリケーションの使用数が0回、もしくはN回未満の時のみ表示するようにしても良い。
また、前記の例において、表示された複数のソフトウェアのうち、ユーザが絶対に使わないと判断したソフトウェアをアンインストールさせる機能を実装してもよい。
また、前記の例において、表示された複数のソフトウェアのうち、自分がすでに詳細を理解しているアプリケーションにおいては、紹介リストには二度と表示しないように設定機能を実装してもよい。
印刷履歴情報として、印刷対象となったデータの種別を示す情報(例えば、印刷元アプリの拡張子)、又は、出力用紙サイズ情報(A4,CD−R等)、又は、出力される記録媒体のメディアタイプ情報(例えば、光沢紙、プリンタブルCD−R等)、印刷用途情報(たとえば、Web,写真、はがき等)とが含まれる。
印刷対象となったデータの種別を示す情報(例えば、印刷元アプリの拡張子であるJPG)が、特定のデータタイプ(写真印刷)を示しているとき、当該写真印刷の印刷に適したアプリケーションの一例である簡単写真印刷アプリケーションを特定する。
また、当該簡単写真印刷アプリケーションが使用されているか否かを別途取得した印刷履歴情報情報を用いて判定する。当該簡単写真印刷アプリケーションがされていないと判定した場合、画像の印刷に適したアプリケーションが使用されていないというメッセージ及び、使用推奨画面を前記表示手段が表示してもよい。
また、出力される媒体のメディアタイプ情報が円盤状の記録媒体の一例であるCD−Rメディアであるとき、当該円盤状の記録媒体に適したソフトウェアの一例である簡単CDプリントを推奨アプリケーションとして表示してもよい。
また、出力される媒体のメディアタイプ情報が光沢紙、又は、はがきであることを示している場合、写真印刷に適したソフトウェアを推奨ソフトウェアとして表示してもよい。
データタイプは、写真、ウェブ、はがき、CD−Rの少なくともひとつであってもよい。
本実施形態によれば、ある程度印刷に慣れた段階で、ユーザがある種類の印刷を行った時に、それにもっとも適したアプリケーションの紹介を行う事によりユーザにそのアプリケーションの価値をより強く認識させ、ユーザに便利な印刷方法を促す事ができるようになる。
また、本実施形態によれば、前述のようにユーザの判断能力が上がった状態でアプリケーションの削除を行うかどうかの判断を行わせる事により、必要なアプリケーションを削除してしまう事なく、不必要なアプリケーションの削除を行い、コンピュータシステムの記憶容量の節約を行う事ができる。
(他の実施形態)
本実施形態における各図に示す処理が、外部からインストールされるプログラムによって、それぞれの装置より遂行される。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群をホストコンピュータに供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、又は、外部サーバ(図示省略)からダウンロードすることで、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、DVD、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
以上説明したように、本実施例によれば、印刷履歴情報を活用して、適切な印刷又は画像処理ソフトウェアを有効利用させることができる。