(57)【要約】【課題】複数の印刷装置を有するシステムにおいて、出力する印刷装置の切り替えを行う場合に、煩雑な印刷装置の設定を行う必要がなく、スムーズな出力先印刷装置の切り替えを可能にする。【解決手段】ポート履歴管理部１０１は、ポート履歴の作成、更新を行う。ポート変更検出部１０３は、どのようなポート設定の変更がなされたかを検出する。ポート設定変更部１０４は、ポート設定検出部１０３の検出結果に基づき、論理プリンタ２０７のポート設定２０８を変更する。デバイス設定処理部１０５は、ポート履歴５０２のデバイス設定５０４を取得する。設定処理部１０５は、取得したデバイス設定を論理プリンタ２０７のデバイス設定２１０上書き（復元）する。整合性判定部１０６は、上書き後のデバイス設定２１０と、プリンタドライバ２０３に渡された印刷設定２１２およびデフォルト印刷設定２１１との整合性をチェックする。【選択図】        図６
2010176639.tif 000002
【特許請求の範囲】
【請求項１】
論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能で、ポートとデバイス設定とを対応させて記憶する記憶手段を有するコンピュータで実行されるプログラムであって、
論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映手段と、
前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更手段と、を備えたコンピュータを機能させるためのプログラム。
【請求項２】
前記変更手段は、前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づきデフォルトの印刷設定を矛盾しないように変更することを特徴とする請求項１記載のプログラム。
【請求項３】
前記変更手段は、前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づきデフォルトの印刷設定及びアプリからの印刷設定を矛盾しないように変更することを特徴とする請求項１記載のプログラム。
【請求項４】
前記変更手段は、前記反映手段により反映される論理プリンタが保持しているデバイス設定とユーザにより変更された印刷設定に基づきデフォルトの印刷設定を矛盾しないように変更することを特徴とする請求項１記載のプログラム。
【請求項５】
前記反映手段は、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得できない場合、変更後の印刷装置からデバイス設定を取得することを特徴とする請求項１記載のプログラム。
【請求項６】
前記反映手段は、変更後のポートと共に記憶されているデバイス設定を前記記憶手段より取得できず、変更後の印刷装置からデバイス設定を取得できない場合、デフォルトのデバイス設定を取得することを特徴とする請求項４記載のプログラム。
【請求項７】
論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能な印刷制御装置であって、
ポートとデバイス設定とを対応させて記憶する記憶手段と、
論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映手段と、
前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更手段と、を有することを特徴とする印刷制御装置。
【請求項８】
論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能で、ポートとデバイス設定とを対応させて記憶する記憶手段を有するコンピュータで実行される印刷制御方法であって、
論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映ステップと、
前記反映ステップにより反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更ステップと、を有することを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷を実行する印刷装置の切り替えを容易にする印刷制御装置、印刷制御方法、およびプログラムに関する。
【背景技術】
【０００２】
マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）やアップル社のＭａｃ  ＯＳ（登録商標）など多くのＯＳ（オペレーションシステム）では、アプリケーションソフトウェアから印刷装置を制御するために、プリンタドライバの仕組みを用意している。ユーザは、印刷出力したい印刷装置の機種に対応したプリンタドライバをＯＳにインストールすると、ＯＳがもつ印刷用Ｉ／Ｆ（インタフェース）に対応した任意のアプリケーションソフトウェアから当該印刷装置で印刷出力することが可能になる。
【０００３】
通常、ＯＳには複数のプリンタドライバを同時にインストールしておくことが可能で、アプリケーションソフトウェアを再起動することなく、複数の印刷装置を制御することができる。従来、プリンタドライバは印刷装置の機種別に用意されており、印刷装置に対応した正しいプリンタドライバを使うことにより、正しく印刷することはもちろん、機種固有の機能を使うことが可能になった。しかし、オフィスなどに導入されている、数種類の印刷装置を有するシステムでは、システム管理者は各クライアントが個別にインストールしているプリンタドライバを全て管理しなければならず、大きな負担となっている。
【０００４】
システム管理者の負担になるものとして、たとえば、インストール／アンインストールによる動作検証がある。すなわち、一部の印刷装置を新しい機種に入れ替える場合、別の機種のプリンタドライバがすでにインストールされているＯＳに、追加で新機種のプリンタドライバをインストールしても既存のプリンタドライバの動作に障害がないかの検証を行わねばならない。そして、既存のプリンタドライバの動作に支障がないことを確認しないと、システムへの導入を決められない。また、プリンタドライバによって操作画面が異なる場合、システムのユーザ向けの操作マニュアルを更新する必要がある。
【０００５】
このようなシステム管理者の負担を軽減するために、ジェネリックプリンタドライバ（またはユニバーサルプリンタドライバ）といわれるプリンタドライバが出てきている。ジェネリックプリンタドライバは、機種固有の特殊な機能には対応していないが、一般的な機能と幅広い機種に対応しているのが特徴である。ジェネリックプリンタドライバを使うことにより、各クライアントがインストールすべきプリンタドライバを一種類にまとめることができるようになる。この結果、複数のプリンタドライバをインストールすることを起因とする障害の発生を気にする必要がなくなる。また、機種入れ替えの場合にも、これまでインストールされていたプリンタドライバをそのまま使うことも可能である。
【０００６】
このようなジェネリックプリンタドライバはモバイルＰＣ（パーソナルコンピュータ）の印刷環境も改善する。たとえば、複数のオフィスを行き来する社員が携帯するノートＰＣから現在所在するオフィスのネットワークに接続された印刷装置で印刷出力する場合を考えてみる。従来は、オフィスごとに異なる種類のプリンタドライバをインストールして使い分けていたが、多数のプリンタドライバを使い分けるのは面倒である。そこで、ジェネリックプリンタドライバを使うと、一つのプリンタドライバでポートの印刷装置を切り替えて印刷することが可能となる。たとえば、ヒューレット・パッカード社のＵｎｉｖｅｒｓａｌ  Ｐｒｉｎｔｅｒ  Ｄｒｉｖｅｒなどは、印刷時に毎回設定画面が表示され、出力プリンタを指定するようになっている。
【０００７】
しかしながら、出力する印刷装置を切り替えるたびに、その印刷装置が持っていない機能を使用しないように印刷設定を再設定しなければいけない。たとえば、ステイプル機能がある印刷装置からステイプル機能がない印刷装置に切り替えた場合は、ステイプル機能をＯＦＦに設定変更しなければいけない。そうしないと、印刷装置に不適合な印刷制御コマンド・描画コマンドを実行してしまい、印刷エラーとなったり、意図しない印刷結果になったりしてしまう場合がある。
【０００８】
そこで、かかる問題点を解決する印刷設定の切り替え技術が提案されている（たとえば、特許文献１を参照）。この技術では、まず、アプリケーションソフトウェアごとに初期設定された印刷設定情報をアプリケーション名ごとに登録しておく。そして、アプリケーションからの印刷要求指示によってプリンタドライバが起動する際に、アプリケーション名が登録されているならば、登録された印刷設定情報を呼び出して印刷設定画面を表示する。アプリケーション名が登録されていないならば、デフォルトの印刷設定情報で印刷設定画面を表示する。この技術を印刷装置に応用することにより、印刷装置ごとに初期設定された印刷設定を呼び出して印刷出力することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平８−１４７１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載された技術では、印刷出力する印刷装置を切り替える前に設定しておいた印刷設定情報は消去されてしまい、初期登録した印刷設定を元に再設定しなければならないという問題がある。
【００１１】
また、印刷設定だけではなく、印刷装置に接続されているオプション機器構成や各種パスワードなどデバイスに合わせて行うべき設定（以下、デバイス設定という）も、出力する装置を切り替えるたびに再設定しなければならない。オプション機器構成に関しては、構成情報取得機能を使えば自動的に再設定できるが、ネットワークおよび印刷装置の負荷増大が懸念されるし、ネットワークが片方向通信の場合は構成情報が取得できないという問題もある。また、パスワードに関しては、印刷装置から容易に取得できてはセキュリティ上の問題があることから、通常印刷装置からは取得できないようになっている。
【００１２】
本発明は、上記従来技術の問題点を解消するため、出力する印刷装置の切り替えを行う場合に、煩雑な印刷装置の設定を行う必要がなく、スムーズに出力先印刷装置の切り替えを可能にすることを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、本発明にかかるプログラムは、論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能で、ポートとデバイス設定とを対応させて記憶する記憶手段を有するコンピュータで実行されるプログラムであって、論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映手段と、前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更手段と、を備えてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、印刷装置の切り替えを行う場合に、煩雑な印刷装置の設定を行う必要がなく、スムーズに出力先印刷装置の切り替えが可能になる。すなわち、論理プリンタの出力先を変更すると、以前出力先に指定していた印刷装置のデバイス設定に自動的に復元され、さらに復元されたデバイス設定に従って矛盾しない印刷設定が行われる。このことにより、ユーザが印刷設定を再度行う必要がなくなる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態にかかる印刷制御装置を備えた印刷システムの構成を示す図である。
【図２】ホストコンピュータ３００の機能的構成を示すブロック図である。
【図３】ポート設定画面の一例を示すである。
【図４】デバイス設定画面の一例を示す図である。
【図５】ホストコンピュータ３００による印刷制御処理の概要を説明するための図である。
【図６】ポート変更部５０１の詳細構成を示すブロック図である。
【図７】第１の実施形態にかかる印刷制御処理を示すフローチャートである。
【図８】第１の実施形態におけるポート履歴保存処理（ステップＳ６０１）の手順を示すフローチャートである。
【図９】第１の実施形態におけるデバイス設定変更処理の手順を示すフローチャートである。
【図１０】ポート変更時に発生する障害を説明するための図である。
【図１１】第２の実施形態にかかる印刷制御処理の概要を説明するための図である。
【図１２】第２の実施形態にかかる印刷制御処理の手順を示すフローチャートである。
【図１３】第２の実施形態における印刷設定変更処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して、本発明の好適な実施形態を詳細に説明する。
【００１７】
〔第１の実施形態〕
＜システム構成＞
図１は、第１の実施形態にかかる印刷制御装置を備えた印刷システムの構成を示す図である。この印刷システムは、印刷処理を実行するプリンタ１５０（印刷装置）と、プリンタ１５０の制御を行うホストコンピュータ３００（印刷制御装置）と、を備えている。本実施形態で使用するＯＳは、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）のプリンティングシステムに準拠しているものとする。なお、とくに断らない限り、本発明の目的を達成しうる範囲で、本発明が応用できることはいうまでもない。すなわち、図１では、紙面の都合上、プリンタ１５０、ホストコンピュータ３００はそれぞれひとつずつ示されているにすぎないが、各機器を複数備えることも可能である。また、各機器がＬＡＮ，ＷＡＮ等のネットワークを介して接続され処理が行われるシステムであってもよい。
【００１８】
図１において、ホストコンピュータ３００は、ＲＯＭ３を構成するプログラムＲＯＭまたは外部メモリ１１に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表（表計算等を含む）等が混在した画像処理を実行するＣＰＵ１を備える。さらに、ＣＰＵ１は、システムバス４に接続される各デバイスを総括的に制御する。
【００１９】
ＲＯＭ３を構成するプログラム      ＲＯＭまたは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下ＯＳ）等が記憶されている。ＲＯＭ３を構成するフォントＲＯＭまたは外部メモリ１１には、上記画像処理の際に使用するフォントデータ等が記憶されている。ＲＯＭ３を構成するデータＲＯＭまたは外部メモリ１１には、上記画像処理等を行う際に使用する各種データが記憶されている。
【００２０】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。キーボードＩ／Ｆ（インタフェース）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ディスプレイＩ／Ｆ６は、ディスプレイ１０の表示を制御する。外部メモリＩ／Ｆ７は、ハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。外部メモリ１１にはブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、後述の図２に示す機能を実現するプリンタドライバ等が記憶されている。プリンタＩ／Ｆ８は、所定の双方向性のインタフェース２２を介してプリンタ１５０に接続されて、プリンタ１５０との通信制御処理を実行する。
【００２１】
ＣＰＵ１は、たとえばＲＡＭ２上に設定される表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ディスプレイ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００２２】
ユーザは、アプリケーションで作成した情報を印刷する際、当該情報に対する設定を行うためのユーザインタフェースをディスプレイ１０上で開き、プリンタ１５０の設定や、印刷モードの選択を行う。この際、ユーザは、プリンタドライバが提供するユーザインタフェースを介して、各種の印刷処理方法の設定を行えるように構成されている。
【００２３】
一方、プリンタ１５０も内部の各デバイスの制御を行う。ＣＰＵ１２は、ＲＯＭ１４を構成するプログラムＲＯＭまたは外部メモリ２１に記憶された制御プログラム等に基づいて、システムバス１５に接続される印刷部Ｉ／Ｆ１７を介して印刷部（プリンタエンジン）１９に出力情報としての画像信号を出力する。ＲＯＭ１４を構成するプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等が記憶されている。ＲＯＭ１４を構成するフォントＲＯＭには、上記出力情報を生成する際に使用するフォントデータ等が記憶されている。また、ＲＯＭ１４を構成するデータＲＯＭには、ハードディスク等の外部メモリ２１を備えていないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶される。
【００２４】
また、ＣＰＵ１２は、入力部１６を介してホストコンピュータ３００との通信処理が双方向に可能となっており、プリンタ１５０内の情報等をホストコンピュータ３００に通知可能に構成されている。ここで、情報には、プリンタエンジンのステータスや、ネットワーク設定情報や、デバイス名、リソース名等が含まれる。ＲＡＭ１３は、ＣＰＵ１２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００２５】
ハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２１は、外部メモリＩ／Ｆ１８によりアクセスが制御される。外部メモリ２１は、オプションとして接続され、フォントデータ、エミュレーションプログラム等が記憶されている。なお、外部メモリ２１は、ひとつとは限らず、少なくともひとつ以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【００２６】
さらに、プリンタ１５０にＮＶＲＡＭを備え、操作部２０からのプリンタモード設定情報を記憶できるようにしてもよい。操作部２０には、操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２７】
＜ホストコンピュータの機能＞
図２は、ホストコンピュータ３００の機能的構成を示すブロック図である。本実施形態では、後述するプログラムモジュールをＣＰＵ１が実行することで各種の印刷処理を行う。なお、図１に示した各機能部と同じものには同一の符号を付している。
【００２８】
図２において、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在する。これらは、ＯＳや当該モジュールを利用するモジュール自身によってＲＡＭ２にロードされ、ＣＰＵ１によって実行されるプログラムモジュールとして構成されている。
【００２９】
アプリケーション２０１およびプリンタドライバ２０３は、ＦＤや、不図示のＣＤ−ＲＯＭ、または不図示のネットワークを経由して、外部メモリ１１として機能するハードディスク（ＨＤ）に保存することが可能である。そして、外部メモリ１１に保存されているアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１で実行される。なお、アプリケーション２０１およびプリンタドライバ２０３は、ネットワークを介してサーバ装置（不図示）からホストコンピュータ３００にダウンロードした後、外部メモリ１１にインストールされる場合もある。
【００３０】
アプリケーション２０１からプリンタ１５０に対して印刷を行わせる際には、すでにＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００３１】
グラフィックエンジン２０２は、複数の論理プリンタ２０７を管理する。論理プリンタとは、アプリケーション２０１が指定する印刷データの仮想出力先である。論理プリンタ２０７は、ポート設定２０８、ドライバ情報２０９、デバイス設定２１０、およびデフォルト印刷設定２１１などを保持している。
【００３２】
ポート設定２０８は、プリンタ１５０と接続されているインタフェース２２（ポート）の名称や種類などに関する情報である。ポートの種類には、シリアルポート、パラレルポート、ＵＳＢポート、ＴＣＰ／ＩＰポートなどがあり、それぞれＣＯＭ１、ＬＰＴ１、ＵＳＢ００１、１９２．１６８．０．１など一意に識別できるポート名称が付与される。
【００３３】
図３は、ポート設定画面の一例を示すである。このポート設定画面は、たとえばディスプレイ１０に表示される。図３において、論理プリンタ２０７のプリンタプロパティを表示し、ポートタブ３０１を選択すると、このポート設定画面が表示される。ポートリスト３０２からいずれか１つを選択することにより、プリンタ１５０と接続するポートが設定される。なお、リストに存在しないポートに接続したい場合は、ポート追加ボタン３０３を押下すると、不図示のポート追加画面が表示され、リストにポートを追加することができる。また、ポート削除ボタン３０４を押下すると選択していたポートをリストから削除することができる。最後に、ポートを指定し、ＯＫボタン３０５を押下すると、ポート設定が確定する。
【００３４】
ドライバ情報２０９は、使用するプリンタドライバ２０３一意に特定できるドライバ名称や、ドライバのバージョンなどの情報である。
【００３５】
デバイス設定２１０は、出力先のプリンタ１５０に固有の設定情報で、オプション機器構成のようにプリンタ１５０から取得可能な情報とパスワードのようにプリンタ１５０から取得できない情報が含まれる。
【００３６】
図４は、デバイス設定画面の一例を示す図である。このデバイス設定画面も、ディスプレイ１０に表示される。図４において、論理プリンタ２０７のプリンタプロパティを表示し、ポートタブ４０１を選択すると、このデバイス設定画面が表示される。ここでは、ステイプルチェックボックス４０２をチェックすることによりデバイスオプションを設定する。また、部門管理設定ボックス４０３をチェックすることにより、所定のデバイスに依存したＩＤとパスワードの設定を行うことができる。そして、各種設定の後、ＯＫボタン４０４を押下すると、デバイス設定が確定する。なお、このデバイス設定は、アプリケーション２０１が印刷処理を実行する前に、あらかじめ設定しておく。
【００３７】
デフォルト印刷設定２１１は、アプリケーション２０１が使用する印刷設定の初期値である。アプリケーション２０１は、デフォルト印刷設定２１１を取得し、これから行う印刷処理の条件に応じて適宜変更した印刷設定２１２をグラフィックエンジン２０２に渡す。なお、デフォルト印刷設定２１１を通常使う設定にしておくことで、各アプリケーション２０１で毎回変更する手間を省くことができる。
【００３８】
また、デフォルト印刷設定２１１は、デバイス設定２１０を変更する際に変更後のデバイス設定２１０との整合性がプリンタドライバ２０３によってチェックされ、矛盾する組み合わせの設定値があれば矛盾しない設定値に変更される。たとえば、ステイプルフィニッシャが接続されていないというようなデバイス設定値に対しては、ステイプルＯＮの印刷設定は矛盾しているので、整合性チェック後に、ステイプルＯＦＦに変更される。なお、このように整合性チェックによって矛盾しない設定値に変更することを”丸める”ともいう。
【００３９】
アプリケーション２０１は、印刷時に出力先として論理プリンタ２０７を指定する。すると、グラフィックエンジン２０２は、指定された論理プリンタ２０７のドライバ情報２０９を参照して使用するプリンタドライバ２０３を判別し、当該プリンタドライバ２０３を外部メモリ１１からＲＡＭ２にロードする。そして、グラフィックエンジン２０２、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。また、グラフィックエンジン２０２は、アプリケーション２０１から印刷設定２１２もしくは印刷用データを受け取り、プリンタドライバ２０３へ印刷データとして出力する。
【００４０】
プリンタドライバ２０３のグラフィックコンポーネント２０５は、グラフィックエンジン２０２から印刷データを受取り、プリンタ１５０が認識可能な制御コマンド、たとえばＰＤＬ（ページ記述言語）データに変換する。グラフィックコンポーネント２０５により変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て、インタフェース２２を介してプリンタ１５０へ印刷データとして出力される。
【００４１】
ＵＩ（ユーザインタフェース）コンポーネント２０６は、グラフィックエンジン２０２から印刷設定２１２を受取り、印刷設定２１２の表示・変更などを行い、その結果をグラフィックエンジン２０２を介してアプリケーション２０１に通知する。ＵＩ（ユーザインタフェース）コンポーネント２０６は、プリンタドライバ２０３の一つのモジュールである。
【００４２】
＜印刷制御処理の概要＞
次に、印刷制御処理の概要を説明する。図５は、ホストコンピュータ３００による印刷制御処理の概要を説明するための図である。なお、図２に示した各機能部と同じものには同一の符号を付している。
【００４３】
本実施形態では、プリンタドライバ２０３がポート変更部５０１を備えている。ユーザがアプリケーション２０１から論理プリンタ２０７を指定して印刷を命令すると、グラフィックエンジン２０２からドライバ情報２０９に対応するプリンタドライバ２０３に印刷データが出力される。プリンタドライバ２０３がグラフィックエンジン２０２から印刷データを受け取ると、ポート変更部５０１が、ディスプレイ１０に図３に示したポート設定画面を表示して、ユーザに出力先を指定させる。そして、ユーザが出力先をプリンタ１５０からプリンタ１５０ａへ変更指定すると、ポート変更部５０１が論理プリンタ２０７のポート設定２０８を変更する。その結果、プリンタドライバ２０３からの印刷データがプリンタ１５０ａへ出力される。
【００４４】
また、ポート変更部５０１は、ＲＡＭ２（記憶手段）にポート履歴５０２を格納し管理する。ポート履歴５０２は、ポート設定５０３とデバイス設定５０４から構成される。ポート設定５０３は、論理プリンタ２０７のポート設定２０８と同等の情報である。また、デバイス設定５０４は、論理プリンタ２０７のデバイス設定２１０と同等の情報である。各ポートに対応するデバイス設定が記憶される。例えば、ポートＡには、ポートＡのデバイスのデバイス設定が対応して記憶され、ポートＢには、ポートＢのデバイスのデバイス設定が対応して記憶される。ポート変更部５０１は、ポート変更時に、論理プリンタ２０７のポート設定２０８とデバイス設定２１０を履歴として保存する。保存されたポート履歴５０２は、同じポートに変更されたときに、ポート変更部５０１により読み出されて、デバイス設定５０４を論理プリンタ２０７のデバイス設定２１０に復元する。復元されたデバイス設定２１０は、すでに設定されているデフォルト印刷設定２１１およびプリンタドライバ２０３に渡されている印刷設定２１２と矛盾するおそれがある。したがって、ポート変更部５０１がそれらの整合性をチェックする。整合性チェックの結果、矛盾する組み合わせの場合は、矛盾しない設定値に変更される。ポート履歴５０２はプリンタドライバごとに保持し、同じプリンタドライバと関連付けられている論理プリンタ間で共有される。したがって、ひとつの論理プリンタで出力先としたことがある印刷装置であれば、他の論理プリンタで出力先としたことがなくてもポート履歴を利用できる。
【００４５】
＜ポート変更部５０１の詳細構成＞
次に、ポート変更部５０１の詳細構成を説明する。図６は、ポート変更部５０１の詳細構成を示すブロック図である。このポート変更部５０１は、ポート履歴管理部１０１と、ポート設定画面制御部１０２と、ポート変更検出部１０３と、ポート設定変更部１０４と、設定処理部１０５と、整合性判定部１０６と、を備えている。
【００４６】
ポート履歴管理部１０１は、ポート履歴の作成、更新を行う。また、更新後のポート履歴をＲＡＭ２などの記憶手段に保存する。さらに、前記記憶手段に対するポート履歴の検索、対象とするポート履歴の有無の判断も行う。ポート設定画面制御部１０２は、ポート設定画面（図３参照）をディスプレイ１０に表示し、ユーザによりポート変更を受け付ける。ポート変更検出部１０３は、前記ポート設定画面上でどのようなポート設定の変更がなされたかを検出する。ポート設定変更部１０４は、ポート変更検出部１０３の検出結果に基づき、アプリケーション２０１が指定する印刷データの仮想出力先である論理プリンタ２０７のポート設定２０８を変更する。設定処理部１０５は、ポート履歴５０２のデバイス設定５０４を取得する。また、デバイス設定のうち構成情報などをプリンタ１５０から取得可能な情報を取得する。これは、ポート履歴管理部１０１による検索の結果、ポート履歴５０２が見つからなかった場合に行われる。さらに、この設定処理部１０５は、デバイス設定に関する情報を取得できたか否かの判定を行う。ここで、デバイス設定に関する情報が取得できなかった場合は、プリンタドライバ２０３のデバイス設定規定値を取得する。そして、設定処理部１０５は、取得したデバイス設定を論理プリンタ２０７のデバイス設定２１０に上書き（復元）する。整合性判定部１０６は、上書き後のデバイス設定２１０と、プリンタドライバ２０３に渡された印刷設定２１２との整合性および上書き後のデバイス設定２１０と、デフォルト印刷設定２１１との整合性をチェックする。なお、上記の印刷時のポート変更の場合は、２つの整合性チェックを行った。しかしながら、印刷時のポート変更でない場合は、プリンタドライバ２０３に渡された印刷設定２１２が存在しないので、上書き後のデバイス設定２１０と、デフォルト印刷設定２１１との整合性のみをチェックする。
【００４７】
＜印刷制御処理の手順＞
次に、本実施形態にかかる印刷制御処理の手順を、図７〜図９に基づき詳細に説明する。
【００４８】
図７は、第１の実施形態にかかる印刷制御処理の手順を示すフローチャートである。図７のフローに係るプログラムは、外部メモリ11に記憶されており、ＲＡＭ2に読み出され、ＣＰＵ1により実行される。図７において、まず、ポート履歴の保存を行う（ステップＳ６０１）。プリンタドライバ２０３が印刷データを受け取ると、ポート変更部５０１のポート履歴管理部１０１が、現在つまり変更前のポートに対するポート履歴をＲＡＭ２に保存する。これにより、現在のデバイス設定２１０におけるポート履歴５０２の作成または更新がなされる。ポート履歴保存処理の詳細は後述する。
【００４９】
次に、ポート設定画面を表示する（ステップＳ６０２）。ここでは、ポート設定画面制御部１０２が、ポート設定画面（図３参照）をディスプレイ１０に表示する。これにより、ユーザに出力先を指定させることが可能になる。
【００５０】
次に、ポート変更指示がなされたかを検出する（ステップＳ６０３）。ポート変更検出部１０３は、ポート設定画面が閉じられたら、変更指示がなされたか否か、変更指示がなされている場合はどのような変更かを検出する。ここで、変更指示がされていない場合（ステップＳ６０３：Ｎｏ）は、ポート変更処理を終了し、続く印刷処理を行う。
【００５１】
一方、ステップＳ６０３においてポート変更指示がされている場合（ステップＳ６０３：Ｙｅｓ）は、ポート変更を行う（ステップＳ６０４）。ここでは、ポート設定変更部１０４は、ポート変更検出部１０３の検出結果に基づき、アプリケーション２０１が指定する印刷データの仮想出力先である論理プリンタ２０７のポート設定２０８を変更する。
【００５２】
続いて、ポート履歴を検索する（ステップＳ６０５）。ここでは、ポート履歴管理部１０１が、変更後のポートに対応するポート履歴５０２がないかＲＡＭ２の検索を開始する。そして、ポート履歴があるか否かを判定する（ステップＳ６０６）。この処理もポート履歴管理部１０１が実行する。ここで、対象のポート履歴があった場合（ステップＳ６０６：Ｙｅｓ）は、対象のポート履歴５０２に対応するデバイス設定５０４を取得する（Ｓ６０７）。デバイス設定５０４の取得は、設定処理部１０５が行う。この後はステップＳ６１１へ移行する。
【００５３】
一方、ステップＳ６０６において対象のポート履歴がなかった場合（ステップＳ６０６：Ｎｏ）は、印刷装置から構成情報を取得する（ステップＳ６０８）。具体的には、設定処理部１０５が、デバイス設定として代用できる構成情報など印刷装置から取得可能な情報を取得する。
【００５４】
次に、デバイス設定に関する情報が取得できたか否かを判定する（ステップＳ６０９）。この判定は、設定処理部１０５が行う。ここで、情報が取得できた場合（ステップＳ６０９：Ｙｅｓ）は、ステップＳ６１１へ移行する。一方、情報が取得できなかった場合（ステップＳ６０９：Ｎｏ）は、デフォルトのデバイス設定を取得する（ステップＳ６１０）。ここでは、設定処理部１０５が、プリンタドライバ２０３のデバイス設定規定値を取得する。この後はステップＳ６１１へ移行する。
【００５５】
なお、ステップＳ６０８またはステップＳ６１０において、取得対象の情報が各種パスワードをはじめとする印刷装置などからは取得できない場合は、デバイス設定は空の状態である。
【００５６】
そして、デバイス設定を上書きする（ステップＳ６１１）。具体的には、設定処理部１０５が、ステップＳ６０７、ステップＳ６０８、またはステップＳ６１０のいずれかで取得したデバイス設定を、論理プリンタ２０７のデバイス設定２１０に上書きする。
【００５７】
そして、印刷設定の整合性をチェックする（ステップＳ６１２）。ここでは、整合性判定部１０６が、ステップＳ６１１の処理により上書きされた後のデバイス設定２１０と、プリンタドライバ２０３に渡された印刷設定２１２との整合性をチェックする。さらにステップＳ６１１の処理により上書きされた後のデバイス設定２１０と、デフォルト印刷設定２１１との整合性をチェックする。
【００５８】
最後に、ポート履歴の保存を行う（ステップＳ６１３）。ここでは、ポート履歴管理部１０１が、ステップＳ６１１の処理で上書きされたデバイス設定２１０に基づき、ポート履歴５０２を作成または更新し、これを保存する。ステップＳ６１３は、ステップＳ６０１と同様である。
【００５９】
次に、図７に示したポート履歴保存処理（ステップＳ６０１、ステップＳ６１３）について詳細に説明する。図８は、ポート履歴保存処理（ステップＳ６０１、ステップＳ６１３）の手順を示すフローチャートである。図８のフローに係るプログラムは、外部メモリ11に記憶されており、ＲＡＭ2に読み出され、ＣＰＵ1により実行される。
【００６０】
図８に示すフローチャートにおいて、まず、ポート履歴を検索する（ステップＳ７０１）。具体的には、ポート履歴管理部１０１が、ＲＡＭ２にすでに保存されている複数のポート履歴５０２から、更新しようとしているポートに対応するものがあるか検索を開始する。そして、ポート履歴があるか否かを判定する（ステップＳ７０２）。この処理もポート履歴管理部１０１が実行する。ここで、対象のポート履歴がなかった場合（ステップＳ７０２：Ｎｏ）は、ポート履歴数が最大数（ＭＡＸ）に達しているか否かを判定する（ステップＳ７０３）。具体的には、ポート履歴管理部１０１が、ポート履歴数があらかじめ定めた最大数に達しているか否かを判定する。ここで、ポート履歴数が最大数（ＭＡＸ）に達していない場合（ステップＳ７０３：Ｎｏ）は、ステップＳ７０５へ移行する。一方、ポート履歴数が最大数（ＭＡＸ）に達している場合（ステップＳ７０３：Ｙｅｓ）は、最も古いポート履歴を削除する（（ステップＳ７０４）。この処理も、ポート履歴管理部１０１が行う。これは無限にポート履歴５０２が追加されないように制限するための処理であるが、全体のバイト数などの他の方法で制限してもよい。
【００６１】
続いて、ポート履歴を追加する（ステップＳ７０５）。具体的には、ポート履歴管理部１０１が、現在の論理プリンタ２０７のポート設定２０８とデバイス設定２１０をコピーしてポート履歴５０２を作成して追加する。
【００６２】
ところで、ステップＳ７０２において対象のポート履歴があった場合（ステップＳ７０２：Ｙｅｓ）は、見つかったポート履歴５０２の順番を最上位（最新）に移動する（ステップＳ７０６）。そして、ポート履歴５０２のデバイス設定５０４を現在の論理プリンタ２０７のデバイス設定２１０と同等になるように更新する（ステップＳ７０７）。なお、ステップＳ７０６およびステップＳ７０７の処理は、ポート履歴管理部１０１が行う。
【００６３】
次に、ユーザによるデバイス設定２１０の変更が行われた場合の処理について説明する。図９は、このデバイス設定変更処理の手順を示すフローチャートである。図９のフローに係るプログラムは、外部メモリ11に記憶されており、ＲＡＭ2に読み出され、ＣＰＵ1により実行される。
【００６４】
図９に示すフローチャートにおいて、まず、従来のデバイス設定変更を行う（ステップＳ８０１）。具体的には、設定処理部１０５が、従来手法による論理プリンタ２０７のデバイス設定２１０を変更する。そして、図７のフローチャートに示したポート履歴保存処理（ステップＳ６１３）を行う。このようにすることで、同じプリンタドライバ２０３を使う別の論理プリンタ２０７からデバイス設定２１０を変更した場合に、保存されたポート履歴５０２を図７に示したステップＳ６０５の処理ですぐに見つけることができる。その結果、ステップＳ６０７の処理でデバイス設定２１０に反映することが可能になる。また、印刷時のポート変更画面の表示中にデバイス設定２１０を変更する場合などでも、同様の効果が期待できる。
【００６５】
以上のような処理を実行することにより、論理プリンタの出力先を変更すると、以前出力先に指定していた印刷装置のデバイス設定に自動的に復元され、さらに復元されたデバイス設定に従って印刷設定が適切に丸められ、印刷設定を再度行う必要がなくなる。この結果、出力先変更に起因して印刷装置に不適合な印刷制御コマンドや描画コマンドを出力することがなくなり、印刷失敗による時間の無駄や意図しない印刷結果による紙の無駄をなくすことができる。
【００６６】
また、本実施形態では、片方向通信のネットワークの場合や、印刷装置から取得できない部門管理用パスワードなども復元可能である。さらに、同じプリンタドライバで論理プリンタを作成した場合は、作成直後から同じポート履歴が使え、切替先の印刷装置での出力処理がスムーズに行える。
【００６７】
〔第２の実施形態〕
第１の実施形態では、プリンタドライバ２０３の印刷処理中にポート変更を行う例を示したが、この処理は印刷を行う前であってもよい。たとえば、論理プリンタ２０７のプロパティからポートの変更を行ってもよい。印刷処理中にポート変更する場合は、ポート変更は１回のみであったが、印刷前にポート変更する場合は連続して数回行うことが考えられる。ただし、この場合、ユーザが論理プリンタ２０７のデフォルト印刷設定２１１を変えていないのに、ポートを変更するだけで設定値がどんどん丸められてしまうという問題が生じる。以下、このようなポート変更において発生する障害を説明する。
【００６８】
図１０は、ポート変更時に発生する障害を説明するための図である。図１０では、カラー印刷装置か白黒印刷装置かを示す「デバイスタイプ」というデバイス設定と、カラー印刷をするか白黒印刷をするかを示す「カラーモード」という印刷設定が可能な場合を一例として説明する。
【００６９】
まず、ポートがカラー印刷装置となっていて、デバイス設定２１０のデバイスタイプ＝カラー、デフォルト印刷設定２１１のカラーモード＝カラーが設定されている状態とする。そして、ポートを白黒印刷機に変更すると、ポート履歴からデバイスタイプ＝白黒のデバイス設定に復元され、整合性チェックの結果カラーモード＝白黒となる。その後、デフォルト印刷設定２１１は変更せずにポートをカラー印刷機に再び変更すると、デバイスタイプ＝カラーのデバイス設定に復元され、整合性チェックをしても、カラー印刷装置では白黒印刷も可能なため、カラーモード＝白黒のままとなる。すなわち、ポートを色々な印刷装置に変更していると、ユーザが変更していなくてもデフォルト印刷設定２１１がどんどん丸まってしまうという問題が生じる。そこで、かかる問題を解決するために、本実施の形態では以下のような処理を実行する。
【００７０】
図１１は、第２の実施形態にかかる印刷制御処理の概要を説明するための図である。図１１に示すように、前述の問題を解決するため、ユーザ操作によって変更されたデフォルト印刷設定２１１をコピーした印刷設定バックアップ１００１を作成して、論理プリンタ２０７に保持しておく。この処理は、たとえば、図７に示した設定処理部１０５で行うとよい。そして、ポート変更の際には、現在のデフォルト印刷設定２１１ではなく、印刷設定バックアップ１００１に基づきデバイス設定との整合性チェックを行うようにする。このようにすることで、デフォルト印刷設定２１１を変えずにポートだけ変更された場合でも、デフォルト印刷設定２１１がどんどん丸まることはなく、ユーザが設定したときのデフォルト印刷設定２１１に対してのみ丸められるようになる。
【００７１】
＜印刷制御処理の手順＞
次に、本実施形態にかかる印刷制御処理の手順を説明する。図１２は、第２の実施形態にかかる印刷制御処理の手順を示すフローチャートである。図１２のフローに係るプログラムは、外部メモリ11に記憶されており、ＲＡＭ2に読み出され、ＣＰＵ1により実行される。図１２において、ステップＳ６０１〜ステップＳ６１１の処理、およびステップＳ６１３の処理は、図７と同様である。そして、図７の印刷設定の整合性チェック処理（ステップＳ６１２）に代えて、以下に示すステップＳ１１０１〜ステップＳ１１０４の処理を追加している点が異なる。そこで、以下ではステップＳ１１０１〜ステップＳ１１０４の処理についてのみ説明する。
【００７２】
図１２に示すフローチャートにおいて、ステップＳ６１１の処理後、印刷設定バックアップがあるか否かを判定する（ステップＳ１１０１）。ここで、印刷設定バックアップ１００１が存在しないのは、論理プリンタ２０７を作成してから、ユーザ操作による印刷設定変更および論理プリンタ２０７のプリンタプロパティからのポート変更が一度もされていない場合である。ステップＳ１１０１では、図６に示した設定処理部１０５が、論理プリンタ２０７に印刷設定バックアップ１００１が存在するか否かを判定する。ここで、印刷設定バックアップがない場合（ステップＳ１１０１：Ｎｏ）は、印刷設定の整合性をチェックする（ステップＳ１１０２）。具体的には、図６に示した整合性判定部１０６が、論理プリンタ２０７における現在のデバイス設定２１０と、論理プリンタ２０７のデフォルト印刷設定２１１およびプリンタドライバに渡された印刷設定２１２との整合性をチェックする。続けて、印刷設定のバックアップを行う（ステップＳ１１０３）。ここでは、設定処理部１０５が、ステップＳ１１０２による整合性チェック処理の後、デフォルト印刷設定２１１をコピーして印刷設定バックアップ１００１を作成し、これを論理プリンタ２０７に保存する。この後、ステップＳ６１３へ移行する。
【００７３】
一方、ステップＳ１１０１において印刷設定バックアップがある場合（ステップＳ１１０１：Ｙｅｓ）は、バックアップの印刷設定に戻す（ステップＳ１１０４）。具体的には、設定処理部１０５が、印刷設定バックアップ１００１をデフォルト印刷設定２１１に上書きコピーする。そして、印刷設定の整合性をチェックする（ステップＳ１１０２）。ここでは、整合性判定部１０６が、論理プリンタ２０７のデバイス設定２１０と、印刷設定バックアップ１００１が上書きされたデフォルト印刷設定２１１およびプリンタドライバに渡された印刷設定２１２との整合性をチェックする。この後、ステップＳ６１３へ移行する。
【００７４】
次に、ユーザによるデフォルト印刷設定２１１の変更が行われた場合の処理について説明する。図１３は、第２の実施形態における印刷設定処理の手順を示すフローチャートである。図１３のフローに係るプログラムは、外部メモリ11に記憶されており、ＲＡＭ2に読み出され、ＣＰＵ1により実行される。図１３に示すフローチャートにおいて、まず、従来の印刷設定の変更を行う（ステップＳ１２０１）。具体的には、設定処理部１０５が、従来手法によるデフォルト印刷設定２１１の変更を行う。続いて、印刷設定のバックアップを行う（ステップＳ１２０２）。具体的には、設定処理部１０５が、ステップＳ１２０１の処理で変更されたデフォルト印刷設定２１１のコピーを印刷設定バックアップ１００１として論理プリンタ２０７に保存する。ただし、すでに印刷設定バックアップ１００１が存在する場合には、上書きする。
【００７５】
以上のような処理を実行することにより、印刷前にポート変更する場合、とくにポート変更を連続して数回行う場合であっても、デフォルト印刷設定２１１のみがどんどん丸められるといった弊害を回避し、第１の実施形態と同様の効果を得ることができる。
【符号の説明】
【００７６】
１０１  ポート履歴管理部
１０２  ポート設定画面制御部
１０３  ポート変更検出部
１０４  ポート設定変更部
１０５  設定処理部
１０６  整合性判定部
５０１  ポート変更部
【図１】
2010176639.tif 000003
【図２】
2010176639.tif 000004
【図３】
2010176639.tif 000005
【図４】
2010176639.tif 000006
【図５】
2010176639.tif 000007
【図６】
2010176639.tif 000008
【図７】
2010176639.tif 000009
【図８】
2010176639.tif 000010
【図９】
2010176639.tif 000011
【図１０】
2010176639.tif 000012
【図１１】
2010176639.tif 000013
【図１２】
2010176639.tif 000014
【図１３】
2010176639.tif 000015