(57)【要約】【課題】ＯＳ標準の印刷プログラムが組み込まれた情報処理装置において、プリンタの利便性を向上させる技術を提供すること。【解決手段】ＰＣ１のＣＰＵ１１によって実行可能であり、ＰＣ１と接続するプリンタ２に対応する補助プログラム４２であって、ＣＰＵ１１に、ＯＳ２１にあらかじめ組み込まれた汎用印刷プログラム４１を介してプリンタ２に印刷を行わせる印刷指示があった場合に、ＰＣ１のメモリ１２に記憶されているプリンタ情報を取得させ、プリンタ２に対応するプリンタドライバ４４を特定する情報が取得したプリンタ情報に含まれている場合であって、プリンタ２に対応するプリンタドライバ４４がＯＳ２１にインストールされていない場合に、プリンタドライバ４４のＯＳ２１へのインストールに関する動作をＰＣ１に行わせる処理を実行させる補助プログラム４２である。【選択図】図３
2020087255.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、
前記コンピュータに、
前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた印刷プログラムを介して前記プリンタに印刷を行わせる印刷指示があった場合に、前記情報処理装置のメモリに記憶されているプリンタ情報を取得する取得処理と、
前記プリンタに対応するプリンタドライバを特定するドライバ特定情報が前記取得処理によって取得した前記プリンタ情報に含まれている場合であって、前記プリンタ情報の前記ドライバ特定情報によって特定されるプリンタドライバが前記オペレーティングシステムにインストールされていない場合に、前記プリンタドライバの前記オペレーティングシステムへのインストールに関する動作を前記情報処理装置に行わせるインストール処理と、
を実行させる、
ことを特徴とするサポートプログラム。
【請求項２】
請求項１に記載するサポートプログラムにおいて、
前記プリンタドライバの前記オペレーティングシステムへのインストールに関する前記動作には、前記プリンタドライバのインストールの通知が含まれる、
ことを特徴とするサポートプログラム。
【請求項３】
請求項１または請求項２に記載するサポートプログラムにおいて、
前記プリンタドライバの前記オペレーティングシステムへのインストールに関する前記動作には、前記プリンタドライバのインストーラのダウンロードと、前記プリンタドライバのインストールの実行と、の少なくとも一方が含まれる、
ことを特徴とするサポートプログラム。
【請求項４】
請求項１から請求項３のいずれか１つに記載するサポートプログラムにおいて、
前記コンピュータに、
前記取得処理によって取得した前記プリンタ情報によって示される前記プリンタのモデルが、第１のモデルの場合、前記インストール処理を実行させ、第２のモデルの場合、前記インストール処理を実行させない、
ことを特徴とするサポートプログラム。
【請求項５】
請求項１から請求項４のいずれか１つに記載するサポートプログラムにおいて、
前記コンピュータに、さらに、
前記取得処理によって取得した前記プリンタ情報の前記ドライバ特定情報によって特定されるプリンタドライバが前記オペレーティングシステムにインストールされている場合に、前記プリンタドライバへの切り換えに関する動作を前記情報処理装置に行わせる切換処理を実行させる、
ことを特徴とするサポートプログラム。
【請求項６】
請求項１から請求項５のいずれか１つに記載するサポートプログラムにおいて、
前記コンピュータに、
前記印刷プログラムによって前記オペレーティングシステムが印刷データの生成を完了させる前に、前記インストール処理を実行させる、
ことを特徴とするサポートプログラム。
【請求項７】
請求項１から請求項６のいずれか１つに記載するサポートプログラムにおいて、
前記オペレーティングシステムが、前記印刷プログラムを介して前記プリンタに印刷を行わせる前記印刷指示を検知し、前記印刷指示を検知した後、前記印刷指示に対応する印刷データを前記プリンタに送信する前までに、前記印刷指示を検知したことを通知する検知通知を出力するものである場合に、前記サポートプログラムは、
前記コンピュータに、
前記検知通知が出力された場合に、前記取得処理を実行させる、
ことを特徴とするサポートプログラム。
【請求項８】
請求項７に記載するサポートプログラムにおいて、
前記オペレーティングシステムは、前記印刷指示に対応する印刷データの生成を開始する前に、前記検知通知を出力し、
前記サポートプログラムは、前記コンピュータに、
前記検知通知が出力された場合に、前記オペレーティングシステムが印刷データの生成を開始する前に、前記インストール処理を実行させる、
ことを特徴とするサポートプログラム。
【請求項９】
請求項７に記載するサポートプログラムにおいて、
前記オペレーティングシステムは、前記印刷指示に対応する印刷データを生成した後であって前記印刷データを前記プリンタに送信する前に、前記検知通知を出力し、
前記サポートプログラムは、前記コンピュータに、
前記検知通知が出力された場合に、前記オペレーティングシステムによって生成された前記印刷データを取得する印刷データ取得処理を実行させ、
さらに前記コンピュータに、
前記印刷データ取得処理にて取得した前記印刷データが前記プリンタドライバの使用条件を満たしている場合、前記オペレーティングシステムが前記印刷データを前記プリンタに送信する前に、前記インストール処理を実行させる、
ことを特徴とするサポートプログラム。
【請求項１０】
請求項１から請求項５のいずれか１つに記載するサポートプログラムにおいて、
前記コンピュータに、
前記オペレーティングシステムが前記印刷指示に対応する印刷データの生成を完了させた後であって、生成された前記印刷データが前記プリンタドライバの使用条件を満たしている場合、前記インストール処理を実行させ、生成された前記印刷データが前記使用条件を満たしていない場合、前記インストール処理を実行させない、
ことを特徴とするサポートプログラム。
【請求項１１】
請求項１０に記載するサポートプログラムにおいて、
前記プリンタドライバの前記使用条件は、前記印刷データのサイズが所定の閾値よりも大きいことである、
ことを特徴とするサポートプログラム。
【請求項１２】
請求項１から請求項１１のいずれか１つに記載するサポートプログラムにおいて、
前記オペレーティングシステムは、前記プリンタと異なるプリンタに対応するサポートプログラムをインストール可能であり、前記情報処理装置は、インストールされているサポートプログラムごとに、サポートプログラムの識別情報とプリンタ情報とを対応付けて前記メモリに記憶している場合に、
前記オペレーティングシステムは、前記印刷指示の対象となった前記プリンタのプリンタ情報と対応付けられた識別情報によって示される前記サポートプログラムの処理を実行する、
ことを特徴とするサポートプログラム。
【請求項１３】
請求項１から請求項１２のいずれか１つに記載するサポートプログラムにおいて、
前記プリンタドライバは、プリンタの種類ごとに異なるものであり、
前記印刷プログラムは、複数種類のプリンタに対応可能なものである、
ことを特徴とするサポートプログラム。
【請求項１４】
メモリと、
コンピュータと、
を備える情報処理装置であって、
前記情報処理装置と接続するプリンタに対応するサポートプログラムが組み込まれ、
前記情報処理装置のオペレーティングシステムは、プリンタドライバとは異なるプログラムである印刷プログラムを有しており、
前記メモリには、前記プリンタについてのプリンタ情報が記憶され、前記プリンタ情報には、前記プリンタに対応するプリンタドライバを特定するドライバ特定情報が含まれ、
前記コンピュータは、
前記印刷プログラムを介して前記プリンタに印刷を行わせる印刷指示があった場合に、前記サポートプログラムによって、前記メモリに記憶されている前記プリンタ情報を取得する取得処理と、
前記取得処理によって取得した前記プリンタ情報の前記ドライバ特定情報によって特定されるプリンタドライバが前記オペレーティングシステムにインストールされていない場合に、前記サポートプログラムによって、前記プリンタドライバの前記オペレーティングシステムへのインストールに関する動作を行うインストール処理と、
を実行する、
ことを特徴とする情報処理装置。
【請求項１５】
情報処理装置にプリンタが接続され、
前記情報処理装置には、前記プリンタに対応するサポートプログラムが組み込まれ、
前記情報処理装置のオペレーティングシステムは、プリンタドライバとは異なるプログラムである印刷プログラムを有しており、
前記情報処理装置のメモリには、前記プリンタについてのプリンタ情報が記憶され、前記プリンタ情報には、前記プリンタに対応するプリンタドライバを特定するドライバ特定情報が含まれ、
前記情報処理装置で生成された印刷データに基づく印刷を、前記プリンタに実行させる印刷方法において、
前記印刷プログラムを介して前記プリンタに印刷を行わせる印刷指示があった場合に、前記サポートプログラムによって、前記メモリに記憶されている前記プリンタ情報を取得する取得ステップと、
前記取得ステップによって取得した前記プリンタ情報の前記ドライバ特定情報によって特定されるプリンタドライバが前記オペレーティングシステムにインストールされていない場合に、前記プリンタドライバの前記オペレーティングシステムへのインストールに関する動作を前記情報処理装置が行うインストールステップと、
を含む、
ことを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術分野は、プリンタの制御をサポートするサポートプログラム、情報処理装置、および印刷方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の情報処理装置からプリンタを制御する技術として、情報処理装置にプリンタドライバをインストールし、プリンタドライバによって印刷データを生成し、その印刷データをプリンタに送信する構成が広く知られている（例えば、特許文献１）。プリンタドライバは、プリンタのメーカから提供され、そのプリンタが有する各種の機能に対応しており、そのプリンタを十分に利用することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３４７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、前述したプリンタドライバを利用せず、オペレーティングシステム（ＯＳ）に標準に組み込まれている印刷プログラムによってプリンタを制御する技術が実用化されている。この技術では、ＯＳがプリンタを検知するとＯＳ標準の印刷プログラムとの関連付けを行い、以後、そのプリンタに対する印刷指示を受け付けた場合に、プリンタドライバを用いずに、ＯＳ標準の印刷プログラムによる印刷が可能になる。
【０００５】
しかしながら、ＯＳ標準の印刷プログラムによる印刷では、プリンタが有する機能を全て利用できるとは限らない。そのため、印刷速度や印刷品質がプリンタドライバを用いて印刷する場合と比較して低下し、ユーザに不便を強いる可能性がある。
【０００６】
本明細書は、ＯＳ標準の印刷プログラムが組み込まれた情報処理装置において、プリンタの利便性を向上させる技術を開示する。
【課題を解決するための手段】
【０００７】
上述した課題の解決を目的としてなされたサポートプログラムは、情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、前記コンピュータに、前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた印刷プログラムを介して前記プリンタに印刷を行わせる印刷指示があった場合に、前記情報処理装置のメモリに記憶されているプリンタ情報を取得する取得処理と、前記プリンタに対応するプリンタドライバを特定するドライバ特定情報が前記取得処理によって取得した前記プリンタ情報に含まれている場合であって、前記プリンタ情報の前記ドライバ特定情報によって特定されるプリンタドライバが前記オペレーティングシステムにインストールされていない場合に、前記プリンタドライバの前記オペレーティングシステムへのインストールに関する動作を前記情報処理装置に行わせるインストール処理と、を実行させる、ことを特徴としている。
【０００８】
本明細書に開示されるサポートプログラムは、ＯＳ標準の印刷プログラムによる印刷の印刷指示があった場合に、プリンタに対応するプリンタドライバがＯＳにインストールされていない場合には、情報処理装置にインストールに関する動作を行わせる。従って、次回の印刷からはプリンタドライバを利用することが可能になる可能性が高く、プリンタの利便性が向上する。
【０００９】
上記プログラムが組み込まれた情報処理装置、プログラムを格納するコンピュータにて読取可能な記憶媒体、及びプログラムの機能を実現するための制御方法も、新規で有用である。
【発明の効果】
【００１０】
本明細書に開示される技術によれば、ＯＳ標準の印刷プログラムが組み込まれた情報処理装置において、プリンタの利便性を向上させる技術が実現される。
【図面の簡単な説明】
【００１１】
【図１】印刷システムの電気的構成を示すブロック図である。
【図２】各プログラムによる処理の順序を示す説明図である。
【図３】各プログラムによる動作の例を示すシーケンス図である。
【図４】印刷処理の手順を示すフローチャートである。
【図５】前処理手順を示すフローチャートである。
【図６】後処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施の形態のプログラムを利用する印刷システムについて、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ（以下、「ＰＣ」とする）とプリンタとを含む印刷システムを具体化した実施の形態を開示するものである。
【００１３】
本形態のプログラムが実行される印刷システムの構成の例を、図１に示す。図１に示すシステムには、ＰＣ１と、プリンタ２と、が含まれる。ＰＣ１は、情報処理装置の一例である。プリンタ２は、印刷機能を有する装置であり、ローカル通信またはネットワーク通信を介して、ＰＣ１と通信可能である。
【００１４】
ＰＣ１は、例えば、図１に示すように、コントローラ１０と、ユーザインタフェース（以下、「ＵＩ」とする）２０と、通信インタフェース（以下、「通信ＩＦ」とする）３０と、を備えている。ＵＩ２０及び通信ＩＦ３０は、コントローラ１０に電気的に接続されている。
【００１５】
ＵＩ２０は、各種の表示を行い、ユーザの指示入力を受け付けるハードウェアを含む。ＵＩ２０は、表示機能と入力受付機能との両方の機能を有するタッチパネルであっても良いし、表示機能を有するディスプレイと入力受付機能を有するキーボードやマウス等との組合せであっても良い。
【００１６】
通信ＩＦ３０は、プリンタ２との通信を行うためのハードウェアや、インターネット１００へのアクセスを行うためのハードウェアを含む。通信ＩＦ３０は、通信方式の異なる複数のインタフェースを含んでいても良い。通信方式としては、例えば、ネットワーク通信、ＵＳＢ通信がある。
【００１７】
コントローラ１０は、ＣＰＵ１１と、メモリ１２と、を含む。ＣＰＵ１１は、コンピュータの一例である。メモリ１２は、ＲＯＭと、ＲＡＭと、不揮発性メモリと、を含み、各種のアプリケーションプログラム（以下、「アプリ」とする）などのプログラムや各種のデータなどを記憶する。なお、本明細書では、メモリの詳細を区別しない。ＣＰＵ１１は、メモリ１２から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。なお、図１中のコントローラ１０は、ＰＣ１の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にＰＣ１に存在する単一のハードウェアを表すとは限らない。
【００１８】
メモリ１２の一例は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００１９】
メモリ１２には、例えば、図１に示すように、汎用印刷プログラム４１を含むオペレーティングシステム（以下、「ＯＳ」とする）２１と、補助プログラム４２と、編集アプリ４３と、が記憶されている。補助プログラム４２は、サポートプログラムの一例である。補助プログラム４２は、例えば、マイクロソフト社が仕様公開した、ハードウェアサポートアプリ（略称、ＨＳＡ）である。ＯＳ２１は、例えば、マイクロソフトウィンドウズ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）である。なお、メモリ１２には、図示したもの以外にも、接続されているデバイスの情報を含む各種のデータや、ブラウザ等の各種のプログラムが記憶されている。
【００２０】
なお、以下の処理およびフローチャートの各処理ステップは、基本的に、補助プログラム４２などのプログラムに記述された命令に従ったＣＰＵ１１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ１１の処理を表している。ＣＰＵ１１による処理は、ＯＳ２１のＡＰＩを用いたハードウェア制御も含む。本明細書では、ＯＳ２１の詳細な記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムＢがハードウェアＣを制御する」という趣旨の記載は、「プログラムＢがＯＳ２１のＡＰＩを用いてハードウェアＣを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ１１が行う」のようにプログラムを省略して記載することがある。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、「プログラムＡが行う」のようにＣＰＵを省略した文言で記載することがある。
【００２１】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１１が要求することなくデータを受信するという処理も、「ＣＰＵ１１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【００２２】
また、ＣＰＵ１１による、情報Ａは事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。ＣＰＵ１１による、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであることを示しているか、を判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００２３】
汎用印刷プログラム４１は、ＰＣ１からプリンタ２等の各種のプリンタで印刷を実行させるためのアプリであり、ＯＳ２１にあらかじめ組み込まれているＯＳ標準の印刷プログラムである。本形態の汎用印刷プログラム４１は、印刷対象の画像データに基づいて、プリンタが対応可能な印刷データを生成するプログラムである。汎用印刷プログラム４１は、印刷プログラムの一例である。
【００２４】
汎用印刷プログラム４１は、各デバイスのベンダによって提供される複数種類のモデルのプリンタに適用可能な汎用のアプリであり、各モデルに共通する動作を各プリンタに行わせるプログラムである。あるいは、汎用印刷プログラム４１は、ＯＳ２１にあらかじめ組み込むために、各デバイスのベンダによってＯＳ２１のベンダに提供されるプログラム、例えば、ＯＳ２１にあらかじめ組み込むために提供されるプリンタドライバの一種であっても良い。
【００２５】
一方、ＯＳ２１に組み込むための汎用印刷プログラム４１をＯＳ２１のベンダに提供した後に各デバイスのベンダが開発したプログラムは、インストールするという形でＰＣ１に追加することができる。以下では、ＯＳ２１にあらかじめ組み込まれたプログラムではなく、インストールによって追加できるプリンタドライバを、単に「プリンタドライバ」とする、あるいは、「ベンダドライバ」とする。つまり、プリンタドライバは、ＯＳ２１にあらかじめ組み込まれているプログラムではなく、使用するためには所定の手順によってＯＳ２１にインストールする必要があるプログラムである。例えば、ＵＩ２０を介して指示されたインストーラ、あるいは、ＯＳ２１が、プリンタドライバをＯＳ２１にインストールする。プリンタドライバは、プリンタの各モデルに個別に対応してプリンタのベンダによって用意されるプログラムであり、対応するモデルに固有の機能の指示を受け付けることもできるプログラムであってもよい。
【００２６】
なお、プリンタドライバ、すなわちベンダドライバは、ＯＳ２１にあらかじめ組み込まれた汎用印刷プログラム４１よりも高性能である場合がある。高性能である、とは、例えば、汎用印刷プログラム４１にて生成された印刷データよりも、プリンタドライバにて生成された印刷データの方が、プリンタにおいて効率よく処理でき、印刷速度が速くなっても良い。また、より少ないメモリで、プリンタが印刷データを処理できても良い。また、プリンタドライバにて生成された印刷データの方が、より発色の良い印刷物をプリンタに印刷させることができても良い。また、プリンタドライバにて生成された印刷データの方が、より高解像度の印刷物をプリンタに印刷させることができても良い。また、汎用印刷プログラム４１ではプリンタに指示することができない、プリンタドライバ固有の機能をプリンタドライバがプリンタに指示できても良い。固有の機能とは、例えば、ミラー印刷機能、ネガポジ反転印刷機能、である。
【００２７】
補助プログラム４２は、汎用印刷プログラム４１の起動に付随してＯＳ２１からの指示に基づいて処理を実行するプログラムであり、対象のハードウェアの制御をサポートするアプリである。補助プログラム４２は、例えば、ＯＳ２１から起動される。補助プログラム４２は、プリンタ２等の各モデルに対応するアプリである。補助プログラム４２は、プリンタ２等のデバイスのベンダによって用意される。デバイスのベンダは、ＯＳ２１のベンダが指定する手順に従って、補助プログラム４２をＯＳ２１のベンダが提供するプラットフォームに登録する。ＯＳ２１は、ＰＣ１に新たにプリンタ２が接続され、そのプリンタ２に対応する補助プログラム４２がプラットフォームに登録されている場合には、当該補助プログラム４２を補助プログラム４２が格納されているサーバからダウンロードしてＰＣ１に組み込む。
【００２８】
そして、ＯＳ２１は、組み込んだ補助プログラム４２の識別情報を新たに接続されたプリンタ２のプリンタ情報に対応付けて、メモリ１２に記憶させる。複数のモデルのプリンタが接続されているＰＣ１では、各モデルに対応するそれぞれの補助プログラムが組み込まれ、各プリンタと各補助プログラムとを対応付ける情報がメモリ１２に記憶される。つまり、メモリ１２には、ＰＣ１に接続されている各プリンタのプリンタ情報として、当該プリンタのモデル情報やアクセス情報とともに、対応する補助プログラム４２の情報が記憶される。
【００２９】
編集アプリ４３は、例えば、画像データや文書データの作成や編集を行うためのアプリである。編集アプリ４３は、例えば、マイクロソフト  ワード（登録商標）、パワーポイント（登録商標）である。編集アプリ４３は、プリンタ２に所定の動作を行わせる指示を含むユーザ操作を受け付ける。具体的には、編集アプリ４３は、ＵＩ２０を介して、例えば、プリンタ２に印刷を実行させる印刷指示を受け付ける。
【００３０】
次に、各プログラムによる処理の順序について、図２を参照して説明する。以下では、ＰＣ１がＵＩ２０を介して、例えば、編集アプリ４３にて、印刷対象の画像データを指定する指示と、汎用印刷プログラム４１を介してのプリンタ２での印刷実行の指示と、を受け付けた場合について説明する。
【００３１】
印刷指示を受け付けた編集アプリ４３は、受け付けた印刷指示に基づいて、印刷実行通知をＯＳ２１に渡す。印刷実行通知には、例えば、印刷指示にて指定されたプリンタを示す情報、印刷設定、印刷指示にて指定された画像データを示す情報が含まれる。次に、ＯＳ２１は、印刷指示にて指定されたプリンタであるプリンタ２に対応する補助プログラム４２がメモリ１２に記憶されていれば、汎用印刷プログラム４１による印刷データの生成を開始する前に、補助プログラム４２による処理の実行を補助プログラム４２に指示する。
【００３２】
補助プログラム４２には、汎用印刷プログラム４１による処理の開始前に実行される前処理と、汎用印刷プログラム４１による処理の終了後であってプリンタ２に印刷データを送信する前に実行される後処理と、が含まれる。以下では、補助プログラム４２の処理のうち、汎用印刷プログラム４１による処理の開始前に実行される処理を、「前処理補助プログラム」４２１による処理として説明し、汎用印刷プログラム４１による処理の終了後に実行される処理を、「後処理補助プログラム」４２２による処理として説明する。
【００３３】
本形態のＰＣ１では、印刷指示を受け付けたことに応じて、汎用印刷プログラム４１による印刷データの生成が開始される前に、前処理補助プログラム４２１の処理が実行される。前処理補助プログラム４２１は、印刷指示に含まれる各種の情報、例えば、印刷設定やプリンタを示す情報を、ＯＳ２１から取得できる。前処理補助プログラム４２１は、取得した情報と自身のプログラムとに基づいて前処理を実行し、処理の終了後に終了通知をＯＳ２１に返す。前処理補助プログラム４２１による前処理の詳細については後述する。
【００３４】
前処理補助プログラム４２１から終了通知を受け取ると、ＯＳ２１は、汎用印刷プログラム４１による処理を実行する。汎用印刷プログラム４１は、印刷指示に基づいて、画像データから印刷データを生成する。
【００３５】
印刷データの生成が完了したら、ＯＳ２１は、生成した印刷データをプリンタ２に送信する前に、後処理補助プログラム４２２による処理を実行する。後処理補助プログラム４２２は、印刷設定やプリンタの情報に加え、生成が終了している印刷データもＯＳ２１から取得できる。後処理補助プログラム４２２は、取得した情報と自身のプログラムとに基づいて後処理を実行し、処理の終了後に終了通知をＯＳ２１に返す。後処理補助プログラム４２２による後処理の詳細については後述する。
【００３６】
ＯＳ２１は、後処理補助プログラム４２２から終了通知を受け取ると、通信ＩＦ３０を介して、印刷設定と印刷データをプリンタ２に送信する。なお、印刷設定は、編集アプリ４３における設定から、前処理補助プログラム４２１や後処理補助プログラム４２２にて変更されている場合もある。プリンタ２は、受信した印刷設定と印刷データとに基づいて、印刷を実行する。
【００３７】
次に、本形態の補助プログラム４２の動作を含む印刷手順の概略について図３のシーケンス図を参照して説明する。まず、編集アプリ４３は、ＵＩ２０を介して、印刷対象の画像データの指定と、印刷実行の指示入力を受け付ける（矢印Ａ）。そして、編集アプリ４３は、受け付けた指示の内容を示す印刷実行通知をＯＳ２１に渡す（矢印Ｂ）。
【００３８】
ＯＳ２１は、編集アプリ４３から出力される印刷実行通知を検知すると、印刷実行通知に含まれる情報に基づいて、印刷を実行させる装置として指定されているプリンタを特定する。例えば、汎用印刷プログラム４１を用いてプリンタ２にて印刷させることが指定されている場合、当該プリンタ２に対応する補助プログラム４２が組み込まれていれば、ＯＳ２１は、補助プログラム４２の処理の実行命令を出力する。ＯＳ２１が印刷実行通知を検知したことを契機に補助プログラム４２への実行命令が出力されることから、ＯＳ２１による実行命令の出力は、印刷指示を検知したことを通知する検知通知の一例である。
【００３９】
補助プログラム４２は、自身に対応する実行命令が出力された場合、前処理補助プログラム４２１または後処理補助プログラム４２２の処理を実行する。ここでは、ＯＳ２１は、汎用印刷プログラム４１による印刷データの生成開始前に補助プログラム４２に実行命令を出力し、前処理補助プログラム４２１の処理を開始させる（矢印Ｃ）。
【００４０】
本形態の前処理補助プログラム４２１は、印刷指示にて指定されたプリンタ２のモデル情報をＯＳ２１から取得し、プリンタドライバの使用が推奨される特定のモデルであるか否かを判断する（矢印Ｄ）。特定のモデルであると判断した場合、前処理補助プログラム４２１は、プリンタ２のモデル情報に対応するプリンタドライバがＰＣ１にインストールされているか否かを判断する（矢印Ｅ）。前処理補助プログラム４２１は、例えば、ＯＳ２１に現在組み込まれているプリンタドライバの情報をＯＳ２１から取得し、プリンタ２に対応するプリンタドライバの有無を判断する。
【００４１】
本形態の前処理補助プログラム４２１は、プリンタ２に対応するプリンタドライバ４４が、既にＯＳ２１にインストールされていると判断した場合、プリンタドライバ４４を使用する印刷方法を、デフォルトの印刷方法とするための処理を行う（矢印Ｆ）。
【００４２】
ＯＳ２１にプリンタドライバ４４がインストール済みであれば、例えば、編集アプリ４３にて印刷させる装置を選択する際に、プリンタドライバ４４を使用してプリンタ２にて印刷させる印刷方法と、汎用印刷プログラム４１を使用してプリンタ２にて印刷させる印刷方法と、が選択可能である。プリンタドライバ４４を使用すれば、プリンタ２に、高性能なプリンタドライバ４４を使用した印刷を実行させることができる。前処理補助プログラム４２１がプリンタドライバ４４を使用してプリンタ２にて印刷させる印刷方法をデフォルトの印刷方法とすることで、次回の印刷からは、この経路が選択される可能性が高まる。
【００４３】
一方、本形態の前処理補助プログラム４２１は、プリンタ２に対応するプリンタドライバ４４がインストールされていないと判断した場合、ＰＣ１に当該プリンタドライバ４４のインストールに関する動作として、プリンタドライバ４４のインストーラをダウンロードする（矢印Ｇ）。
【００４４】
プリンタドライバは、例えば、ＰＣ１がインストーラをダウンロードし、ダウンロードしたインストーラを実行することで、ＰＣ１のＯＳ２１にインストールできる。プリンタドライバ４４のインストーラは、例えば、図１に示したように、インターネット１００を介してＰＣ１と通信可能な装置であるサーバ３に格納されている。前処理補助プログラム４２１は、例えば、ネットワーク上でのプリンタドライバ４４のインストーラの格納されている場所を示す情報を取得して、インターネット１００を介してサーバ３と通信することで、当該インストーラをダウンロードできる。これにより、ＰＣ１は、プリンタ２に対応するプリンタドライバ４４をインストール可能である。
【００４５】
ＰＣ１のメモリ１２には、プリンタ２の情報であるプリンタ情報として、プリンタ２のモデル情報が記憶されている。モデル情報は、対応するプリンタドライバ４４を特定する情報であり、ドライバ特定情報の一例である。
【００４６】
そして、例えば、前処理補助プログラム４２１には、モデルごとのプリンタドライバ４４の格納場所の情報が記憶されている。プリンタドライバ４４が、例えば、インターネット１００を介してアクセス可能なサーバ３に格納されている場合、前処理補助プログラム４２１には、プリンタドライバ４４の格納場所の情報として、プリンタドライバ４４のインストーラが格納されている格納場所を示すＵＲＬが含まれる。前処理補助プログラム４２１は、インストーラの格納場所を示すＵＲＬを読み出して、インストーラをダウンロードする。
【００４７】
矢印Ｆまたは矢印Ｇの後、前処理補助プログラム４２１は、処理終了をＯＳ２１に通知する（矢印Ｈ）。なお、ＯＳ２１は、プリンタドライバ４４のインストーラのダウンロードが終了したら、インストーラによるインストール処理の実行を開始させるとよい。これにより、プリンタドライバ４４がＯＳ２１にインストールされる可能性が高まる。
【００４８】
ＯＳ２１は、前処理補助プログラム４２１から終了通知を受け取ったことに応じて、汎用印刷プログラム４１を使用して印刷データを生成する（矢印Ｉ）。汎用印刷プログラム４１によって生成される印刷データは、汎用の印刷データであり、各種のプリンタ２にて印刷に使用できる印刷データである。
【００４９】
汎用印刷プログラム４１による印刷データの生成の終了後、ＯＳ２１は、再度、補助プログラム４２の処理の実行命令を出力する。これにより、補助プログラム４２は、後処理補助プログラム４２２の処理を開始する（矢印Ｊ）。後処理補助プログラム４２２は、生成済みの印刷データをＯＳ２１から取得し、印刷データのサイズに基づいて、プリンタドライバ４４のインストールが必要か否かを判断する（矢印Ｋ）。なお、前処理補助プログラム４２１にてプリンタドライバ４４のインストーラのダウンロードを実行した場合には、後処理補助プログラム４２２は、何もしなくても良い。
【００５０】
後処理補助プログラム４２２は、例えば、印刷データのサイズが所定のサイズよりも大きい場合、インストールが必要であると判断する。インストールが必要と判断した場合、後処理補助プログラム４２２は、前処理補助プログラム４２１と同様の処理を実行する（範囲Ｌ）。
【００５１】
そして、後処理補助プログラム４２２は、処理終了をＯＳ２１に通知する（矢印Ｍ）。ＯＳ２１は、後処理補助プログラム４２２から終了通知を受け取ったことに応じて、印刷データをプリンタ２に送信し（矢印Ｎ）、プリンタ２は印刷を実行する（矢印Ｏ）。
【００５２】
続いて、上述した本形態の印刷システムによる動作を実現する印刷処理の手順について、図４のフローチャートを参照して説明する。印刷処理は、編集アプリ４３にて、汎用印刷プログラム４１を使用してプリンタ２に印刷を実行させる指示である印刷指示の入力を受け付け（図３の矢印Ａ）、ＯＳ２１が編集アプリ４３から印刷実行通知を受け付けたこと（図３の矢印Ｂ）を契機に、ＯＳ２１に従って、ＰＣ１のＣＰＵ１１にて実行される。
【００５３】
印刷処理では、ＯＳ２１は、まず、メモリ１２に補助プログラム４２が組み込まれているか否かを判断する（Ｓ１０１）。補助プログラム４２は、前述したように、各プリンタに対応するものがデバイスのベンダによって用意され、ＯＳ２１がプリンタを検出した場合にＯＳ２１によってＰＣ１に組み込まれる。プリンタ２に対応する補助プログラム４２が用意されていない場合など、補助プログラム４２がＰＣ１に組み込まれていないと判断した場合（Ｓ１０１：ＮＯ）、ＯＳ２１は、ＯＳ２１に含まれる汎用印刷プログラム４１を用いて、印刷データを生成する（Ｓ１０２）。
【００５４】
ＯＳ２１は、Ｓ１０２にて生成された印刷データをプリンタ２に送信し（Ｓ１０３）、印刷処理を終了する。プリンタ２は、ＰＣ１から受信した印刷データに従った印刷を実行する。なお、ＰＣ１は、印刷データの送信に失敗した場合には、所定のエラー処理を実行するとよい。
【００５５】
ＰＣ１に補助プログラム４２が組み込まれていない場合には、汎用印刷プログラム４１によって印刷データが生成されるので、ユーザは、プリンタ２のセットアップを意識することなく、各種のプリンタ２を同じ使い勝手で使用できる。ただし、汎用印刷プログラム４１を用いた印刷では、高性能なプリンタドライバによる印刷よりも、印刷に長時間を要する、または、印刷物の品質が下がる可能性がある。
【００５６】
補助プログラム４２がＰＣ１に組み込まれていると判断した場合（Ｓ１０１：ＹＥＳ）、ＯＳ２１は、プリンタ２に対応する補助プログラム４２に実行命令を出力し、前処理補助プログラム４２１の処理を開始させる（Ｓ１０５、図３の矢印Ｃ）。これにより、ＣＰＵ１１は、前処理補助プログラム４２１に従って前処理を実行する。具体的には、例えば、ＯＳ２１が前処理補助プログラム４２１を示す情報を補助プログラム４２に入力しても良い。あるいは、ＯＳ２１が前処理補助プログラム４２１を示す情報をメモリ１２に記憶させてから補助プログラム４２に実行命令を出力し、補助プログラム４２がその情報を読み出しても良い。あるいは、ＯＳ２１が、前処理補助プログラム４２１の処理を指定した実行命令を出力しても良い。
【００５７】
前処理の手順について、図５のフローチャートを参照して説明する。前処理では、補助プログラム４２は、印刷指示にて指定された印刷設定に基づいて、印刷を実行させる装置として指定されているプリンタ２のプリンタ情報を取得する（Ｓ２０１）。Ｓ２０１は、取得処理の一例である。前処理補助プログラム４２１は、自身に対応付けられているプリンタ２のプリンタ情報や、印刷指示にて設定されている各種の情報を、ＯＳ２１から取得できる。具体的に、補助プログラム４２は、ＯＳ２１に問い合わせるか、ＯＳ２１が情報を記憶している記憶場所を参照して、プリンタ２のモデル情報やアクセス情報を取得する。
【００５８】
補助プログラム４２は、Ｓ２０１にて取得したプリンタ２のモデル情報に基づいて、プリンタ２のモデルが、高性能なプリンタドライバ４４を使用した印刷を推奨される、特定のモデルであるか否かを判断する（Ｓ２０２、図３の矢印Ｄ）。前処理補助プログラム４２１には、例えば、プリンタドライバを用いた印刷を推奨するモデルのモデル情報が記憶されている。Ｓ２０２では、補助プログラム４２は、Ｓ２０１にて取得したモデル情報と、前処理補助プログラム４２１に記憶される情報と、に基づいて、Ｓ２０２の判断を行う。
【００５９】
例えば、高性能なプリンタドライバ４４が開発されているモデルが、プリンタドライバ４４を用いた印刷を推奨されるモデルであっても良い。例えば、プリンタドライバ４４を用いることで、汎用印刷プログラム４１を用いるよりも、高品質な印刷物を作成できるモデルや高速での印刷が可能なモデルが、プリンタドライバ４４を用いた印刷を推奨されるモデルの一例である。
【００６０】
また、汎用印刷プログラム４１にて生成された印刷データよりも、プリンタドライバ４４にて生成された印刷データの方が、例えば、メモリ容量が小さい、ＣＰＵの処理速度が速くない、画処理モジュールの機能が少ない、モデルである低価格少機能モデルでの処理に適切である可能性がある。補助プログラム４２は、例えば、プリンタ２のモデルが低価格少機能モデルである場合には、プリンタドライバ４４を使用した印刷が推奨されていると判断する。低価格少機能モデルは、第１のモデルの一例であり、メモリ容量が大きい、ＣＰＵの処理速度が速い、画処理モジュールの機能が多い、モデルである高級多機能モデルは、第２のモデルの一例である。
【００６１】
そして、高性能なプリンタドライバ４４を使用した印刷を推奨されるモデルであると判断した場合（Ｓ２０２：ＹＥＳ）、補助プログラム４２は、プリンタドライバ４４がインストール済みであるか否かを、ＯＳ２１から得られるプリンタドライバの情報に基づいて判断する（Ｓ２０３、図３の矢印Ｅ）。
【００６２】
プリンタドライバ４４がインストール済みではないと判断した場合（Ｓ２０３：ＮＯ）、補助プログラム４２は、プリンタドライバ４４をインストールするための動作を行う。具体的には、補助プログラム４２は、まず、プリンタドライバ４４のインストールに関する通知を行う（Ｓ２０４）。例えば、補助プログラム４２は、ＵＩ２０に、プリンタドライバ４４の使用を推奨するメッセージを表示させる。
【００６３】
次に、補助プログラム４２は、プリンタドライバ４４のインストーラが格納されている記憶場所を示す情報を取得する（Ｓ２０５）。前述したように、プリンタドライバ４４のインストーラは、例えば、インターネット１００を介して通信可能なサーバ３に用意されている。Ｓ２０５では、前処理補助プログラム４２１にインストーラの格納場所を示すサーバ３のＵＲＬを示す情報が含まれていれば、補助プログラム４２は、前処理補助プログラム４２１に含まれているＵＲＬ情報を読み出す。
【００６４】
補助プログラム４２は、Ｓ２０５で読み出したＵＲＬ情報に基づいて、インターネット１００を介してサーバ３にアクセスし（Ｓ２０６）、プリンタドライバ４４のインストーラを、ダウンロードすることで取得する（Ｓ２０７、図３の矢印Ｇ）。Ｓ２０６でプリンタドライバ４４のインストーラが検索できたら、補助プログラム４２は、ＵＩ２０に、プリンタドライバ４４のインストーラをダウンロードすることを示すメッセージを表示させてもよい。また、補助プログラム４２は、ダウンロードやインストールを実行するか否かを問い合わせるメッセージをＵＩ２０に表示させて、ユーザの諾否を得ても良い。
【００６５】
なお、プリンタドライバ４４は、ローカルサーバ、あるいはプリンタ２自身のメモリに記憶されている場合もある。補助プログラム４２は、Ｓ２０５にて記憶場所の情報が取得できなかった場合、記憶場所の入力を受け付ける画面をＵＩ２０に表示させ、ユーザの入力を受け付けても良い。この場合、補助プログラム４２は、入力された情報を参照して、記憶場所からインストーラを取得する。
【００６６】
さらに、補助プログラム４２は、取得したインストーラに実行を指示することで、インストーラによるプリンタドライバ４４のインストールを開始する（Ｓ２０８）。具体的には、補助プログラム４２は、ダウンロードしたインストーラの格納場所であるフォルダのパスを示す情報をＯＳ２１に渡し、ＯＳ２１にインストールの実行を指示する。Ｓ２０４とＳ２０７とＳ２０８との少なくとも一つが、インストール処理の一例である。なお、インストール処理としては、例えば、Ｓ２０４のみでも良い。つまり、前処理では、インストールを推奨するメッセージを表示するだけで、インストールの動作は行わなくても良い。
【００６７】
また、前処理補助プログラム４２１は、プリンタドライバ４４がインストールされていると判断した場合であっても、プリンタドライバ４４が最新バージョンではない場合には、プリンタドライバ４４のアップデートを行っても良い。例えば、Ｓ２０３にてＹＥＳと判断された場合、前処理補助プログラム４２１は、そのプリンタドライバ４４のバージョン情報を取得し、最新バージョンであるか否かを判断しても良い。そして、最新バージョンではないと判断した場合、前処理補助プログラム４２１は、プリンタドライバ４４のアップデートデータを取得して、アップデートを実行してもよい。その場合、前処理補助プログラム４２１は、例えば、ＯＳ２１のベンダが提供するアップデートサーバのＵＲＬを含み、そのＵＲＬによって参照される格納場所からアップデートデータを取得する。
【００６８】
一方、プリンタドライバ４４がインストール済みであると判断した場合（Ｓ２０３：ＹＥＳ）、補助プログラム４２は、プリンタドライバ４４を使用してプリンタ２に印刷させる経路をデフォルトのプリンタとして指定する（Ｓ２０９、図３の矢印Ｆ）。Ｓ２０９は、切換処理の一例である。Ｓ２０９では、前処理補助プログラム４２１は、例えば、ＯＳ２１にプリンタ２をデフォルトで使用するプリンタとして登録し、さらに、プリンタ２の印刷に用いるプログラムとしてプリンタドライバ４４を指定して登録する。
【００６９】
なお、補助プログラム４２は、デフォルトのプリンタとして指定する処理の代わりに、プリンタドライバ４４を使用した印刷をユーザに示唆する処理を行っても良い。例えば、ＵＩ２０に、プリンタドライバ４４を使用した印刷を実行可能であることを示すメッセージ、または、プリンタドライバ４４を使用した印刷を推奨するメッセージを表示させてもよい。また、Ｓ２０８にてインストールを開始した後にも、補助プログラム４２は、ＵＩ２０に、プリンタドライバ４４を使用してプリンタ２に印刷させる経路をデフォルトのプリンタとして指定することを推奨するメッセージを表示させても良い。メッセージには、プリンタドライバ４４によるプリンタ２での印刷を、デフォルトのプリンタとして設定するための設定方法をも含めて表示しても良い。
【００７０】
プリンタドライバ４４が既にインストール済みである場合や、今回インストールを行った場合であっても、今回の印刷指示に関する印刷データの生成は、後述するように汎用印刷プログラム４１で行われ、インストールしたプリンタドライバ４４が使用されるわけではない。メッセージは、次回以降の印刷において、プリンタドライバ４４を用いた印刷を行う設定とすることで、プリンタに高性能な印刷を行わせることができることを、ユーザに報知するためのものである。
【００７１】
Ｓ２０８の後、または、Ｓ２０９の後、または、プリンタドライバ４４を使用した印刷を推奨されるモデルではないと判断した場合（Ｓ２０２：ＮＯ）、補助プログラム４２は、前処理の終了を通知し（Ｓ２１０、図３の矢印Ｈ）、前処理を終了する。終了通知は、前処理補助プログラム４２１からＯＳ２１に渡される。
【００７２】
図４の印刷処理の説明に戻り、ＯＳ２１は、前処理補助プログラム４２１から終了通知を受け取ったか否かを判断する（Ｓ１０７）。前処理が終了すると、ＯＳ２１は、前処理補助プログラム４２１から終了通知を受け取る。終了通知を受け取っていないと判断した場合（Ｓ１０７：ＮＯ）、ＯＳ２１は、受け取るまで待機する。
【００７３】
終了通知を受け取ったと判断した場合（Ｓ１０７：ＹＥＳ）、ＯＳ２１は、ＯＳ２１に含まれる汎用印刷プログラム４１を用いて、印刷データを生成する（Ｓ１０８、図３の矢印Ｉ）。Ｓ１０８は、Ｓ１０２と同様の処理である。そして、印刷データの生成後、生成した印刷データをプリンタ２に送信する前に、ＯＳ２１は、プリンタ２に対応する補助プログラム４２に実行命令を出力し、後処理補助プログラム４２２の処理を開始させる（Ｓ１０９、図３の矢印Ｊ）。これにより、ＣＰＵ１１は、後処理補助プログラム４２２に従って後処理を実行する。
【００７４】
なお、前処理にて、プリンタドライバ４４のインストーラのダウンロードを開始した場合には、後処理をスキップする、あるいは、後処理では何もせずに終了通知を出力する、としても良い。
【００７５】
後処理の手順について、図６のフローチャートを参照して説明する。後処理では、補助プログラム４２は、汎用印刷プログラム４１にて生成された印刷データをＯＳ２１から取得する（Ｓ３０１）。これにより、補助プログラム４２は、印刷データのデータサイズを取得できる。Ｓ３０１は、印刷データ取得処理の一例である。そして、補助プログラム４２は、取得した印刷データのデータサイズが所定の閾値より大きいか否かを判断する（Ｓ３０２、図３の矢印Ｋ）。
【００７６】
印刷データのデータサイズが所定の閾値より大きいと判断した場合（Ｓ３０２：ＹＥＳ）、補助プログラム４２は、前処理と同様のインストールに関する動作を実行する。具体的には、補助プログラム４２は、プリンタドライバ４４がインストール済みであるか否かを判断し（Ｓ３０３）、プリンタドライバ４４がインストール済みではないと判断した場合（Ｓ３０３：ＮＯ）、プリンタドライバ４４のインストーラをダウンロードし、インストールを実行する（Ｓ３０４〜Ｓ３０８）。
【００７７】
さらに、Ｓ３０８の後、または、プリンタドライバ４４が既に有ると判断した場合（Ｓ３０３：ＹＥＳ）、補助プログラム４２は、プリンタドライバ４４を使用してプリンタ２に印刷させる経路をデフォルトのプリンタとして指定する（Ｓ３０９）。Ｓ３０３〜Ｓ３０９は、図３の範囲Ｌに対応し、前処理のＳ２０３〜Ｓ２０９と同様の処理である。
【００７８】
Ｓ３０８の後、または、Ｓ３０９の後、または、印刷データのデータサイズが所定の閾値より大きくないと判断した場合（Ｓ３０２：ＮＯ）、補助プログラム４２は、後処理の終了を通知し（Ｓ３１０、図３の矢印Ｍ）、後処理を終了する。終了通知は、後処理補助プログラム４２２からＯＳ２１に渡される。
【００７９】
前処理補助プログラム４２１は、印刷指示にて指定された印刷設定は参照できるが、印刷データはまだ生成されていないため、印刷データに関する情報、例えば、データサイズ、コマンド数、コマンドの種類などは取得できない。一方、後処理補助プログラム４２２は、印刷データの生成終了後に起動されることから、印刷データに関する情報や、印刷データそのものを参照できる。そのため、前処理補助プログラム４２１ではＳ２０２にてプリンタドライバ４４が不要と判断された場合であっても、後処理補助プログラム４２２ではＳ３０２にてプリンタドライバ４４が必要と判断される場合もある。
【００８０】
なお、後処理では、印刷データのデータサイズが大きい場合に、プリンタドライバ４４のインストールが必要であると判断している。この場合、プリンタドライバ４４に複数の種類があれば、特に、印刷データのデータサイズが小さくなる傾向のあるプリンタドライバ４４を選択してインストールしても良い。また、後処理では、複数回の印刷データのデータサイズの平均値、データサイズが閾値を超えた頻度、等に基づいて、プリンタドライバ４４をインストールするか否かの判断を行っても良い。
【００８１】
また、後処理補助プログラム４２２は、印刷データのコマンド数に基づいて、プリンタドライバ４４のインストールが必要であるか否かの判断を行っても良い。後処理補助プログラム４２２は、例えば、Ｓ３０２にて、生成された印刷データに含まれるコマンド数が所定の閾値数を超えているか否かを判断し、コマンド数が多いと判断した場合には、プリンタドライバ４４をインストールするとしても良い。また、後処理補助プログラム４２２は、コマンドの種類や印刷データのページ数、印刷指示に含まれる印刷設定の内容、などに基づいて、プリンタドライバ４４のインストールが必要であるか否かの判断を行っても良い。
【００８２】
印刷データのデータサイズが大きい場合、あるいは、印刷データのコマンド数が多い場合、適切な印刷データが生成されていない可能性がある。プリンタドライバ４４を使用して印刷することで、最適な変換が行われ、より小さいサイズ、あるいは、コマンド数の少ない印刷データが生成される可能性がある。データサイズが小さい、あるいは、コマンド数が少ない印刷データが生成されれば、プリンタ２での処理量が少なく、より早期に印刷物が得られる可能性が高まる。印刷データのデータサイズが所定の閾値より大きいこと、印刷データに含まれるコマンド数が所定の閾値数を超えていること、は、それぞれプリンタドライバ４４の使用条件の一例である。
【００８３】
図４の印刷処理の説明に戻り、ＯＳ２１は、後処理補助プログラム４２２から終了通知を受け取ったか否かを判断する（Ｓ１１１）。後処理が終了すると、ＯＳ２１は、後処理補助プログラム４２２から終了通知を受け取る。終了通知を受け取っていないと判断した場合（Ｓ１１１：ＮＯ）、ＯＳ２１は、受け取るまで待機する。
【００８４】
終了通知を受け取ったと判断した場合（Ｓ１１１：ＹＥＳ）、ＯＳ２１は、印刷データをプリンタ２に送信し（Ｓ１０３、図３の矢印Ｎ）、印刷処理を終了する。プリンタ２は、ＰＣ１から受信した印刷データに従った印刷を実行する。
【００８５】
以上、詳細に説明したように、本形態の補助プログラム４２によれば、ＯＳ２１に標準の汎用印刷プログラム４１を介する印刷指示があった場合に、その印刷指示の対象となったプリンタ２に対応する高性能なプリンタドライバ４４がＯＳ２１にインストールされていなければ、プリンタドライバ４４のＯＳ２１へのインストールに関する動作によってインストールを促す。この構成により、次回の印刷からはプリンタドライバ４４を利用することが可能になり、プリンタ２の利便性が向上する。
【００８６】
さらに、本形態の補助プログラム４２によれば、インストールに関する動作として、インストールをユーザに通知することで、プリンタドライバ４４のインストールをユーザが認知できる。あるいは、インストーラのダウンロードや、インストールの実行を開始することで、プリンタドライバ４４のインストールが可能になる。
【００８７】
また、プリンタのモデルによっては、プリンタドライバを利用する必要がないもの（プリンタドライバを使用しても性能が上がらないものや、プリンタドライバのインストーラがダウンロードできないもの）もありえる。そのため、モデルによってプリンタドライバのＯＳ２１へのインストールの可否を決定することで、処理の無駄を省くことができる。
【００８８】
また、プリンタドライバ４４がＯＳ２１にインストールされているにも関わらずＯＳ標準の印刷プログラムである汎用印刷プログラム４１を指定している場合に、プリンタドライバ４４への切り換えに関する動作によって通常使うプリンタの切り換えを促すことで、次回の印刷からはプリンタドライバを利用する可能性が高まり、プリンタの利便性が向上する。
【００８９】
また、前処理補助プログラム４２１にてインストールに関する動作を行うことで、より早期にインストールを開始してプリンタドライバ４４の利用を早期に可能にすることで、次回の印刷からプリンタドライバを利用できる可能性が高まる。
【００９０】
また、印刷データの生成が完了した後であれば、印刷データに応じてプリンタドライバ４４の必要性（プリンタドライバ４４の使用条件を満たしているか否か）を判断でき、無駄なインストールを回避できる。例えば、印刷データのデータサイズが大きい場合、好適な印刷コマンドが生成されていない可能性が高い。そのため、プリンタドライバ４４をＯＳ２１にインストールし、プリンタドライバによって印刷データを生成する方が、好適な印刷コマンドとなる可能性が高まる。
【００９１】
なお、本明細書に開示される実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、ＰＣ１に接続されるデバイスは、プリンタに限らず、複合機、複写機、ＦＡＸ装置、等印刷機能を有する装置であればよい。また、ＰＣ１に接続されるプリンタは、１台に限らず、複数台でもよい。
【００９２】
また、例えば、実施の形態では、補助プログラム４２は前処理と後処理との両方を備えているとしたが、いずれか一方でも良い。例えば、補助プログラム４２は印刷データの生成後に起動される後処理補助プログラム４２２の構成のみを含んでもよい。その場合、後処理補助プログラム４２２は、プリンタドライバ４４の要不要の判断を、プリンタ２のモデル情報に基づく判断と、印刷データのデータサイズに基づく判断と、の両方を行っても良いし、いずれか一方のみを行っても良い。また、前処理補助プログラム４２１と後処理補助プログラム４２２とは、別のプログラムであっても良い。
【００９３】
また、前処理と後処理とを実行するモジュールは、補助プログラム４２に限らず、ＯＳ２１の汎用印刷プログラム４１にて印刷を行う際に、ＯＳ２１から指示を受け付けるプログラムであればよい。例えば、マイクロソフト社が仕様公開した印刷ワークフロー  アプリ（Print workflow）でも良い。
【００９４】
また、前処理のＳ２０２では、プリンタ２のモデルに基づいて、プリンタドライバ４４の使用が推奨されるか否かを判断しているが、印刷指示に含まれる印刷設定に基づいてこの判断を行っても良い。例えば、汎用印刷プログラム４１による対応が難しい特定の印刷設定が含まれる場合に、Ｓ２０２にてＹＥＳと判断するとしても良い。後処理でも、印刷設定に基づいて、プリンタドライバ４４の使用が推奨されるか否かを判断してもよい。また、例えば、プリンタ２がプリンタドライバ４４による印刷を推奨されるモデルであるか否かの判断は、サーバ３に問い合わせて実行しても良い。
【００９５】
また、実施の形態では、プリンタ２のモデル情報に基づいて、プリンタドライバ４４の使用を推奨するか否かを判断するとしたが、この判断は行わなくても良い。例えば、特定のモデルに対応する補助プログラム４２が用意されている場合、そのモデルに対応する高性能なプリンタドライバ４４が必ず有る、という可能性もある。その場合には、前処理のＳ２０２をスキップして、Ｓ２０３に進んでも良い。
【００９６】
また、実施の形態では、補助プログラム４２がインストーラのダウンロードを行うとしたが、インストーラの格納場所の情報をＯＳ２１に渡し、ダウンロードからインストーラの実行までをＯＳ２１に任せても良い。あるいは、ブラウザにインストーラの格納場所の情報を渡し、ブラウザを介してダウンロード及びインストールを行っても良い。この場合、インストーラの格納場所の情報を取得したブラウザがダウンロード及びインストールを行っても良い。
【００９７】
また、例えば、サーバ３へのアクセスに失敗した場合やインストーラを見つけられなかった場合には、印刷終了後にエラー履歴を残すとしても良い。また、例えば、インストール等の通知は、メッセージ表示に代えて、音声ガイダンスで行っても良い。
【００９８】
また、前処理にてプリンタドライバ４４のインストールを実行した後（Ｓ２０８の後）、または、プリンタドライバ４４を使用した印刷をデフォルトのプリンタに設定した後（Ｓ２０９の後）には、補助プログラム４２はＯＳ２１の印刷処理を終了させても良い。印刷処理を終了させる方法としては、例えば、ＯＳ２１に印刷処理を終了させるコマンドを出力しても良いし、印刷データの出力先をデバイスの接続されていないポートに切り替えてもよいし、プリンタに印刷データを読み捨てさせるコマンドを印刷パラメータに追加しても良い。さらに、印刷処理を終了させる場合には、プリンタドライバ４４を使用した印刷を推奨するメッセージを表示させても良い。あるいは、Ｓ２０８やＳ２０９の後、補助プログラム４２は、プリンタドライバ４４を使用した印刷を推奨するメッセージを表示させ、同意を示すユーザの操作を受け付けた場合に、ＯＳ２１に印刷処理を終了させる指示を出力するとしても良い。
【００９９】
また、実施の形態では、補助プログラム４２の動作として、プリンタドライバ４４での印刷を推奨する役割のみを記載しているが、補助プログラム４２は、さらに他の役割を有していても良い。他の役割を有する補助プログラム４２であれば、例えば、前処理のＳ２１０の前や後処理のＳ３１０の前に他の役割の処理を行っても良い。例えば、印刷態様をカスタマイズする役割を有する補助プログラム４２であれば、Ｓ２１０の前に、プリンタ２あるいはＯＳ２１にカスタマイズのための情報を通知しても良い。また、印刷データの加工処理を有する補助プログラム４２であれば、Ｓ３１０の前に、汎用印刷プログラム４１にて生成された印刷データの加工を行っても良い。
【０１００】
また、例えば、実施の形態の方法によってプリンタドライバ４４をインストールする場合、プリンタドライバ４４のセットアップも自動的に行っても良い。例えば、ダウンロードの指示とともにプリンタ２の情報をサーバ３に送信しておき、インストール後にサーバ３からプリンタ２の情報を取得して、プリンタドライバ４４を自動的にセットアップしても良い。
【０１０１】
また、実施の形態では、ＯＳ２１から補助プログラム４２の実行命令が出力されることで、補助プログラム４２が起動されるとしているが、補助プログラム４２の起動タイミングはこれに限らない。例えば、常時起動されている補助プログラム４２であってもよく、その場合には、補助プログラム４２は、実行命令を受けて前述した動作を行うとすれば良い。
【０１０２】
また、実施の形態では、プリンタを制御するプログラムであるプリンタドライバをインストールする技術について開示しているが、スキャナを制御するプログラムであるスキャナドライバにも適用可能である。
【０１０３】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【０１０４】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【０１０５】
１  ＰＣ
２  プリンタ
１１  ＣＰＵ
１２  メモリ
２１  ＯＳ
４１  汎用印刷プログラム
４２  補助プログラム
４４  プリンタドライバ
【図１】
2020087255.tif 000003
【図２】
2020087255.tif 000004
【図３】
2020087255.tif 000005
【図４】
2020087255.tif 000006
【図５】
2020087255.tif 000007
【図６】
2020087255.tif 000008