説明

印刷制御装置、印刷制御方法、およびプログラム

【課題】複数の印刷装置を有するシステムにおいて、出力する印刷装置の切り替えを行う場合に、煩雑な印刷装置の設定を行う必要がなく、スムーズな出力先印刷装置の切り替えを可能にする。
【解決手段】ポート履歴管理部101は、ポート履歴の作成、更新を行う。ポート変更検出部103は、どのようなポート設定の変更がなされたかを検出する。ポート設定変更部104は、ポート設定検出部103の検出結果に基づき、論理プリンタ207のポート設定208を変更する。デバイス設定処理部105は、ポート履歴502のデバイス設定504を取得する。設定処理部105は、取得したデバイス設定を論理プリンタ207のデバイス設定210上書き(復元)する。整合性判定部106は、上書き後のデバイス設定210と、プリンタドライバ203に渡された印刷設定212およびデフォルト印刷設定211との整合性をチェックする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷を実行する印刷装置の切り替えを容易にする印刷制御装置、印刷制御方法、およびプログラムに関する。
【背景技術】
【0002】
マイクロソフト社のWindows(登録商標)やアップル社のMac OS(登録商標)など多くのOS(オペレーションシステム)では、アプリケーションソフトウェアから印刷装置を制御するために、プリンタドライバの仕組みを用意している。ユーザは、印刷出力したい印刷装置の機種に対応したプリンタドライバをOSにインストールすると、OSがもつ印刷用I/F(インタフェース)に対応した任意のアプリケーションソフトウェアから当該印刷装置で印刷出力することが可能になる。
【0003】
通常、OSには複数のプリンタドライバを同時にインストールしておくことが可能で、アプリケーションソフトウェアを再起動することなく、複数の印刷装置を制御することができる。従来、プリンタドライバは印刷装置の機種別に用意されており、印刷装置に対応した正しいプリンタドライバを使うことにより、正しく印刷することはもちろん、機種固有の機能を使うことが可能になった。しかし、オフィスなどに導入されている、数種類の印刷装置を有するシステムでは、システム管理者は各クライアントが個別にインストールしているプリンタドライバを全て管理しなければならず、大きな負担となっている。
【0004】
システム管理者の負担になるものとして、たとえば、インストール/アンインストールによる動作検証がある。すなわち、一部の印刷装置を新しい機種に入れ替える場合、別の機種のプリンタドライバがすでにインストールされているOSに、追加で新機種のプリンタドライバをインストールしても既存のプリンタドライバの動作に障害がないかの検証を行わねばならない。そして、既存のプリンタドライバの動作に支障がないことを確認しないと、システムへの導入を決められない。また、プリンタドライバによって操作画面が異なる場合、システムのユーザ向けの操作マニュアルを更新する必要がある。
【0005】
このようなシステム管理者の負担を軽減するために、ジェネリックプリンタドライバ(またはユニバーサルプリンタドライバ)といわれるプリンタドライバが出てきている。ジェネリックプリンタドライバは、機種固有の特殊な機能には対応していないが、一般的な機能と幅広い機種に対応しているのが特徴である。ジェネリックプリンタドライバを使うことにより、各クライアントがインストールすべきプリンタドライバを一種類にまとめることができるようになる。この結果、複数のプリンタドライバをインストールすることを起因とする障害の発生を気にする必要がなくなる。また、機種入れ替えの場合にも、これまでインストールされていたプリンタドライバをそのまま使うことも可能である。
【0006】
このようなジェネリックプリンタドライバはモバイルPC(パーソナルコンピュータ)の印刷環境も改善する。たとえば、複数のオフィスを行き来する社員が携帯するノートPCから現在所在するオフィスのネットワークに接続された印刷装置で印刷出力する場合を考えてみる。従来は、オフィスごとに異なる種類のプリンタドライバをインストールして使い分けていたが、多数のプリンタドライバを使い分けるのは面倒である。そこで、ジェネリックプリンタドライバを使うと、一つのプリンタドライバでポートの印刷装置を切り替えて印刷することが可能となる。たとえば、ヒューレット・パッカード社のUniversal Printer Driverなどは、印刷時に毎回設定画面が表示され、出力プリンタを指定するようになっている。
【0007】
しかしながら、出力する印刷装置を切り替えるたびに、その印刷装置が持っていない機能を使用しないように印刷設定を再設定しなければいけない。たとえば、ステイプル機能がある印刷装置からステイプル機能がない印刷装置に切り替えた場合は、ステイプル機能をOFFに設定変更しなければいけない。そうしないと、印刷装置に不適合な印刷制御コマンド・描画コマンドを実行してしまい、印刷エラーとなったり、意図しない印刷結果になったりしてしまう場合がある。
【0008】
そこで、かかる問題点を解決する印刷設定の切り替え技術が提案されている(たとえば、特許文献1を参照)。この技術では、まず、アプリケーションソフトウェアごとに初期設定された印刷設定情報をアプリケーション名ごとに登録しておく。そして、アプリケーションからの印刷要求指示によってプリンタドライバが起動する際に、アプリケーション名が登録されているならば、登録された印刷設定情報を呼び出して印刷設定画面を表示する。アプリケーション名が登録されていないならば、デフォルトの印刷設定情報で印刷設定画面を表示する。この技術を印刷装置に応用することにより、印刷装置ごとに初期設定された印刷設定を呼び出して印刷出力することができる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平8−147118号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1に記載された技術では、印刷出力する印刷装置を切り替える前に設定しておいた印刷設定情報は消去されてしまい、初期登録した印刷設定を元に再設定しなければならないという問題がある。
【0011】
また、印刷設定だけではなく、印刷装置に接続されているオプション機器構成や各種パスワードなどデバイスに合わせて行うべき設定(以下、デバイス設定という)も、出力する装置を切り替えるたびに再設定しなければならない。オプション機器構成に関しては、構成情報取得機能を使えば自動的に再設定できるが、ネットワークおよび印刷装置の負荷増大が懸念されるし、ネットワークが片方向通信の場合は構成情報が取得できないという問題もある。また、パスワードに関しては、印刷装置から容易に取得できてはセキュリティ上の問題があることから、通常印刷装置からは取得できないようになっている。
【0012】
本発明は、上記従来技術の問題点を解消するため、出力する印刷装置の切り替えを行う場合に、煩雑な印刷装置の設定を行う必要がなく、スムーズに出力先印刷装置の切り替えを可能にすることを目的とする。
【課題を解決するための手段】
【0013】
上述した課題を解決し、目的を達成するため、本発明にかかるプログラムは、論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能で、ポートとデバイス設定とを対応させて記憶する記憶手段を有するコンピュータで実行されるプログラムであって、論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映手段と、前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更手段と、を備えてコンピュータを機能させることを特徴とする。
【発明の効果】
【0014】
本発明によれば、印刷装置の切り替えを行う場合に、煩雑な印刷装置の設定を行う必要がなく、スムーズに出力先印刷装置の切り替えが可能になる。すなわち、論理プリンタの出力先を変更すると、以前出力先に指定していた印刷装置のデバイス設定に自動的に復元され、さらに復元されたデバイス設定に従って矛盾しない印刷設定が行われる。このことにより、ユーザが印刷設定を再度行う必要がなくなる。
【図面の簡単な説明】
【0015】
【図1】第1の実施形態にかかる印刷制御装置を備えた印刷システムの構成を示す図である。
【図2】ホストコンピュータ300の機能的構成を示すブロック図である。
【図3】ポート設定画面の一例を示すである。
【図4】デバイス設定画面の一例を示す図である。
【図5】ホストコンピュータ300による印刷制御処理の概要を説明するための図である。
【図6】ポート変更部501の詳細構成を示すブロック図である。
【図7】第1の実施形態にかかる印刷制御処理を示すフローチャートである。
【図8】第1の実施形態におけるポート履歴保存処理(ステップS601)の手順を示すフローチャートである。
【図9】第1の実施形態におけるデバイス設定変更処理の手順を示すフローチャートである。
【図10】ポート変更時に発生する障害を説明するための図である。
【図11】第2の実施形態にかかる印刷制御処理の概要を説明するための図である。
【図12】第2の実施形態にかかる印刷制御処理の手順を示すフローチャートである。
【図13】第2の実施形態における印刷設定変更処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、添付図面を参照して、本発明の好適な実施形態を詳細に説明する。
【0017】
〔第1の実施形態〕
<システム構成>
図1は、第1の実施形態にかかる印刷制御装置を備えた印刷システムの構成を示す図である。この印刷システムは、印刷処理を実行するプリンタ150(印刷装置)と、プリンタ150の制御を行うホストコンピュータ300(印刷制御装置)と、を備えている。本実施形態で使用するOSは、マイクロソフト社のWindows(登録商標)のプリンティングシステムに準拠しているものとする。なお、とくに断らない限り、本発明の目的を達成しうる範囲で、本発明が応用できることはいうまでもない。すなわち、図1では、紙面の都合上、プリンタ150、ホストコンピュータ300はそれぞれひとつずつ示されているにすぎないが、各機器を複数備えることも可能である。また、各機器がLAN,WAN等のネットワークを介して接続され処理が行われるシステムであってもよい。
【0018】
図1において、ホストコンピュータ300は、ROM3を構成するプログラムROMまたは外部メモリ11に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表(表計算等を含む)等が混在した画像処理を実行するCPU1を備える。さらに、CPU1は、システムバス4に接続される各デバイスを総括的に制御する。
【0019】
ROM3を構成するプログラム ROMまたは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステム(以下OS)等が記憶されている。ROM3を構成するフォントROMまたは外部メモリ11には、上記画像処理の際に使用するフォントデータ等が記憶されている。ROM3を構成するデータROMまたは外部メモリ11には、上記画像処理等を行う際に使用する各種データが記憶されている。
【0020】
RAM2は、CPU1の主メモリ、ワークエリア等として機能する。キーボードI/F(インタフェース)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。ディスプレイI/F6は、ディスプレイ10の表示を制御する。外部メモリI/F7は、ハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。外部メモリ11にはブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、後述の図2に示す機能を実現するプリンタドライバ等が記憶されている。プリンタI/F8は、所定の双方向性のインタフェース22を介してプリンタ150に接続されて、プリンタ150との通信制御処理を実行する。
【0021】
CPU1は、たとえばRAM2上に設定される表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、ディスプレイ10上でのWYSIWYGを可能としている。また、CPU1は、ディスプレイ10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【0022】
ユーザは、アプリケーションで作成した情報を印刷する際、当該情報に対する設定を行うためのユーザインタフェースをディスプレイ10上で開き、プリンタ150の設定や、印刷モードの選択を行う。この際、ユーザは、プリンタドライバが提供するユーザインタフェースを介して、各種の印刷処理方法の設定を行えるように構成されている。
【0023】
一方、プリンタ150も内部の各デバイスの制御を行う。CPU12は、ROM14を構成するプログラムROMまたは外部メモリ21に記憶された制御プログラム等に基づいて、システムバス15に接続される印刷部I/F17を介して印刷部(プリンタエンジン)19に出力情報としての画像信号を出力する。ROM14を構成するプログラムROMには、CPU12の制御プログラム等が記憶されている。ROM14を構成するフォントROMには、上記出力情報を生成する際に使用するフォントデータ等が記憶されている。また、ROM14を構成するデータROMには、ハードディスク等の外部メモリ21を備えていないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶される。
【0024】
また、CPU12は、入力部16を介してホストコンピュータ300との通信処理が双方向に可能となっており、プリンタ150内の情報等をホストコンピュータ300に通知可能に構成されている。ここで、情報には、プリンタエンジンのステータスや、ネットワーク設定情報や、デバイス名、リソース名等が含まれる。RAM13は、CPU12の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM13は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。
【0025】
ハードディスク(HD)、ICカード等の外部メモリ21は、外部メモリI/F18によりアクセスが制御される。外部メモリ21は、オプションとして接続され、フォントデータ、エミュレーションプログラム等が記憶されている。なお、外部メモリ21は、ひとつとは限らず、少なくともひとつ以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【0026】
さらに、プリンタ150にNVRAMを備え、操作部20からのプリンタモード設定情報を記憶できるようにしてもよい。操作部20には、操作のためのスイッチおよびLED表示器等が配されている。
【0027】
<ホストコンピュータの機能>
図2は、ホストコンピュータ300の機能的構成を示すブロック図である。本実施形態では、後述するプログラムモジュールをCPU1が実行することで各種の印刷処理を行う。なお、図1に示した各機能部と同じものには同一の符号を付している。
【0028】
図2において、アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。これらは、OSや当該モジュールを利用するモジュール自身によってRAM2にロードされ、CPU1によって実行されるプログラムモジュールとして構成されている。
【0029】
アプリケーション201およびプリンタドライバ203は、FDや、不図示のCD−ROM、または不図示のネットワークを経由して、外部メモリ11として機能するハードディスク(HD)に保存することが可能である。そして、外部メモリ11に保存されているアプリケーション201は、RAM2にロードされてCPU1で実行される。なお、アプリケーション201およびプリンタドライバ203は、ネットワークを介してサーバ装置(不図示)からホストコンピュータ300にダウンロードした後、外部メモリ11にインストールされる場合もある。
【0030】
アプリケーション201からプリンタ150に対して印刷を行わせる際には、すでにRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
【0031】
グラフィックエンジン202は、複数の論理プリンタ207を管理する。論理プリンタとは、アプリケーション201が指定する印刷データの仮想出力先である。論理プリンタ207は、ポート設定208、ドライバ情報209、デバイス設定210、およびデフォルト印刷設定211などを保持している。
【0032】
ポート設定208は、プリンタ150と接続されているインタフェース22(ポート)の名称や種類などに関する情報である。ポートの種類には、シリアルポート、パラレルポート、USBポート、TCP/IPポートなどがあり、それぞれCOM1、LPT1、USB001、192.168.0.1など一意に識別できるポート名称が付与される。
【0033】
図3は、ポート設定画面の一例を示すである。このポート設定画面は、たとえばディスプレイ10に表示される。図3において、論理プリンタ207のプリンタプロパティを表示し、ポートタブ301を選択すると、このポート設定画面が表示される。ポートリスト302からいずれか1つを選択することにより、プリンタ150と接続するポートが設定される。なお、リストに存在しないポートに接続したい場合は、ポート追加ボタン303を押下すると、不図示のポート追加画面が表示され、リストにポートを追加することができる。また、ポート削除ボタン304を押下すると選択していたポートをリストから削除することができる。最後に、ポートを指定し、OKボタン305を押下すると、ポート設定が確定する。
【0034】
ドライバ情報209は、使用するプリンタドライバ203一意に特定できるドライバ名称や、ドライバのバージョンなどの情報である。
【0035】
デバイス設定210は、出力先のプリンタ150に固有の設定情報で、オプション機器構成のようにプリンタ150から取得可能な情報とパスワードのようにプリンタ150から取得できない情報が含まれる。
【0036】
図4は、デバイス設定画面の一例を示す図である。このデバイス設定画面も、ディスプレイ10に表示される。図4において、論理プリンタ207のプリンタプロパティを表示し、ポートタブ401を選択すると、このデバイス設定画面が表示される。ここでは、ステイプルチェックボックス402をチェックすることによりデバイスオプションを設定する。また、部門管理設定ボックス403をチェックすることにより、所定のデバイスに依存したIDとパスワードの設定を行うことができる。そして、各種設定の後、OKボタン404を押下すると、デバイス設定が確定する。なお、このデバイス設定は、アプリケーション201が印刷処理を実行する前に、あらかじめ設定しておく。
【0037】
デフォルト印刷設定211は、アプリケーション201が使用する印刷設定の初期値である。アプリケーション201は、デフォルト印刷設定211を取得し、これから行う印刷処理の条件に応じて適宜変更した印刷設定212をグラフィックエンジン202に渡す。なお、デフォルト印刷設定211を通常使う設定にしておくことで、各アプリケーション201で毎回変更する手間を省くことができる。
【0038】
また、デフォルト印刷設定211は、デバイス設定210を変更する際に変更後のデバイス設定210との整合性がプリンタドライバ203によってチェックされ、矛盾する組み合わせの設定値があれば矛盾しない設定値に変更される。たとえば、ステイプルフィニッシャが接続されていないというようなデバイス設定値に対しては、ステイプルONの印刷設定は矛盾しているので、整合性チェック後に、ステイプルOFFに変更される。なお、このように整合性チェックによって矛盾しない設定値に変更することを”丸める”ともいう。
【0039】
アプリケーション201は、印刷時に出力先として論理プリンタ207を指定する。すると、グラフィックエンジン202は、指定された論理プリンタ207のドライバ情報209を参照して使用するプリンタドライバ203を判別し、当該プリンタドライバ203を外部メモリ11からRAM2にロードする。そして、グラフィックエンジン202、アプリケーション201の出力をプリンタドライバ203に設定する。また、グラフィックエンジン202は、アプリケーション201から印刷設定212もしくは印刷用データを受け取り、プリンタドライバ203へ印刷データとして出力する。
【0040】
プリンタドライバ203のグラフィックコンポーネント205は、グラフィックエンジン202から印刷データを受取り、プリンタ150が認識可能な制御コマンド、たとえばPDL(ページ記述言語)データに変換する。グラフィックコンポーネント205により変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経て、インタフェース22を介してプリンタ150へ印刷データとして出力される。
【0041】
UI(ユーザインタフェース)コンポーネント206は、グラフィックエンジン202から印刷設定212を受取り、印刷設定212の表示・変更などを行い、その結果をグラフィックエンジン202を介してアプリケーション201に通知する。UI(ユーザインタフェース)コンポーネント206は、プリンタドライバ203の一つのモジュールである。
【0042】
<印刷制御処理の概要>
次に、印刷制御処理の概要を説明する。図5は、ホストコンピュータ300による印刷制御処理の概要を説明するための図である。なお、図2に示した各機能部と同じものには同一の符号を付している。
【0043】
本実施形態では、プリンタドライバ203がポート変更部501を備えている。ユーザがアプリケーション201から論理プリンタ207を指定して印刷を命令すると、グラフィックエンジン202からドライバ情報209に対応するプリンタドライバ203に印刷データが出力される。プリンタドライバ203がグラフィックエンジン202から印刷データを受け取ると、ポート変更部501が、ディスプレイ10に図3に示したポート設定画面を表示して、ユーザに出力先を指定させる。そして、ユーザが出力先をプリンタ150からプリンタ150aへ変更指定すると、ポート変更部501が論理プリンタ207のポート設定208を変更する。その結果、プリンタドライバ203からの印刷データがプリンタ150aへ出力される。
【0044】
また、ポート変更部501は、RAM2(記憶手段)にポート履歴502を格納し管理する。ポート履歴502は、ポート設定503とデバイス設定504から構成される。ポート設定503は、論理プリンタ207のポート設定208と同等の情報である。また、デバイス設定504は、論理プリンタ207のデバイス設定210と同等の情報である。各ポートに対応するデバイス設定が記憶される。例えば、ポートAには、ポートAのデバイスのデバイス設定が対応して記憶され、ポートBには、ポートBのデバイスのデバイス設定が対応して記憶される。ポート変更部501は、ポート変更時に、論理プリンタ207のポート設定208とデバイス設定210を履歴として保存する。保存されたポート履歴502は、同じポートに変更されたときに、ポート変更部501により読み出されて、デバイス設定504を論理プリンタ207のデバイス設定210に復元する。復元されたデバイス設定210は、すでに設定されているデフォルト印刷設定211およびプリンタドライバ203に渡されている印刷設定212と矛盾するおそれがある。したがって、ポート変更部501がそれらの整合性をチェックする。整合性チェックの結果、矛盾する組み合わせの場合は、矛盾しない設定値に変更される。ポート履歴502はプリンタドライバごとに保持し、同じプリンタドライバと関連付けられている論理プリンタ間で共有される。したがって、ひとつの論理プリンタで出力先としたことがある印刷装置であれば、他の論理プリンタで出力先としたことがなくてもポート履歴を利用できる。
【0045】
<ポート変更部501の詳細構成>
次に、ポート変更部501の詳細構成を説明する。図6は、ポート変更部501の詳細構成を示すブロック図である。このポート変更部501は、ポート履歴管理部101と、ポート設定画面制御部102と、ポート変更検出部103と、ポート設定変更部104と、設定処理部105と、整合性判定部106と、を備えている。
【0046】
ポート履歴管理部101は、ポート履歴の作成、更新を行う。また、更新後のポート履歴をRAM2などの記憶手段に保存する。さらに、前記記憶手段に対するポート履歴の検索、対象とするポート履歴の有無の判断も行う。ポート設定画面制御部102は、ポート設定画面(図3参照)をディスプレイ10に表示し、ユーザによりポート変更を受け付ける。ポート変更検出部103は、前記ポート設定画面上でどのようなポート設定の変更がなされたかを検出する。ポート設定変更部104は、ポート変更検出部103の検出結果に基づき、アプリケーション201が指定する印刷データの仮想出力先である論理プリンタ207のポート設定208を変更する。設定処理部105は、ポート履歴502のデバイス設定504を取得する。また、デバイス設定のうち構成情報などをプリンタ150から取得可能な情報を取得する。これは、ポート履歴管理部101による検索の結果、ポート履歴502が見つからなかった場合に行われる。さらに、この設定処理部105は、デバイス設定に関する情報を取得できたか否かの判定を行う。ここで、デバイス設定に関する情報が取得できなかった場合は、プリンタドライバ203のデバイス設定規定値を取得する。そして、設定処理部105は、取得したデバイス設定を論理プリンタ207のデバイス設定210に上書き(復元)する。整合性判定部106は、上書き後のデバイス設定210と、プリンタドライバ203に渡された印刷設定212との整合性および上書き後のデバイス設定210と、デフォルト印刷設定211との整合性をチェックする。なお、上記の印刷時のポート変更の場合は、2つの整合性チェックを行った。しかしながら、印刷時のポート変更でない場合は、プリンタドライバ203に渡された印刷設定212が存在しないので、上書き後のデバイス設定210と、デフォルト印刷設定211との整合性のみをチェックする。
【0047】
<印刷制御処理の手順>
次に、本実施形態にかかる印刷制御処理の手順を、図7〜図9に基づき詳細に説明する。
【0048】
図7は、第1の実施形態にかかる印刷制御処理の手順を示すフローチャートである。図7のフローに係るプログラムは、外部メモリ11に記憶されており、RAM2に読み出され、CPU1により実行される。図7において、まず、ポート履歴の保存を行う(ステップS601)。プリンタドライバ203が印刷データを受け取ると、ポート変更部501のポート履歴管理部101が、現在つまり変更前のポートに対するポート履歴をRAM2に保存する。これにより、現在のデバイス設定210におけるポート履歴502の作成または更新がなされる。ポート履歴保存処理の詳細は後述する。
【0049】
次に、ポート設定画面を表示する(ステップS602)。ここでは、ポート設定画面制御部102が、ポート設定画面(図3参照)をディスプレイ10に表示する。これにより、ユーザに出力先を指定させることが可能になる。
【0050】
次に、ポート変更指示がなされたかを検出する(ステップS603)。ポート変更検出部103は、ポート設定画面が閉じられたら、変更指示がなされたか否か、変更指示がなされている場合はどのような変更かを検出する。ここで、変更指示がされていない場合(ステップS603:No)は、ポート変更処理を終了し、続く印刷処理を行う。
【0051】
一方、ステップS603においてポート変更指示がされている場合(ステップS603:Yes)は、ポート変更を行う(ステップS604)。ここでは、ポート設定変更部104は、ポート変更検出部103の検出結果に基づき、アプリケーション201が指定する印刷データの仮想出力先である論理プリンタ207のポート設定208を変更する。
【0052】
続いて、ポート履歴を検索する(ステップS605)。ここでは、ポート履歴管理部101が、変更後のポートに対応するポート履歴502がないかRAM2の検索を開始する。そして、ポート履歴があるか否かを判定する(ステップS606)。この処理もポート履歴管理部101が実行する。ここで、対象のポート履歴があった場合(ステップS606:Yes)は、対象のポート履歴502に対応するデバイス設定504を取得する(S607)。デバイス設定504の取得は、設定処理部105が行う。この後はステップS611へ移行する。
【0053】
一方、ステップS606において対象のポート履歴がなかった場合(ステップS606:No)は、印刷装置から構成情報を取得する(ステップS608)。具体的には、設定処理部105が、デバイス設定として代用できる構成情報など印刷装置から取得可能な情報を取得する。
【0054】
次に、デバイス設定に関する情報が取得できたか否かを判定する(ステップS609)。この判定は、設定処理部105が行う。ここで、情報が取得できた場合(ステップS609:Yes)は、ステップS611へ移行する。一方、情報が取得できなかった場合(ステップS609:No)は、デフォルトのデバイス設定を取得する(ステップS610)。ここでは、設定処理部105が、プリンタドライバ203のデバイス設定規定値を取得する。この後はステップS611へ移行する。
【0055】
なお、ステップS608またはステップS610において、取得対象の情報が各種パスワードをはじめとする印刷装置などからは取得できない場合は、デバイス設定は空の状態である。
【0056】
そして、デバイス設定を上書きする(ステップS611)。具体的には、設定処理部105が、ステップS607、ステップS608、またはステップS610のいずれかで取得したデバイス設定を、論理プリンタ207のデバイス設定210に上書きする。
【0057】
そして、印刷設定の整合性をチェックする(ステップS612)。ここでは、整合性判定部106が、ステップS611の処理により上書きされた後のデバイス設定210と、プリンタドライバ203に渡された印刷設定212との整合性をチェックする。さらにステップS611の処理により上書きされた後のデバイス設定210と、デフォルト印刷設定211との整合性をチェックする。
【0058】
最後に、ポート履歴の保存を行う(ステップS613)。ここでは、ポート履歴管理部101が、ステップS611の処理で上書きされたデバイス設定210に基づき、ポート履歴502を作成または更新し、これを保存する。ステップS613は、ステップS601と同様である。
【0059】
次に、図7に示したポート履歴保存処理(ステップS601、ステップS613)について詳細に説明する。図8は、ポート履歴保存処理(ステップS601、ステップS613)の手順を示すフローチャートである。図8のフローに係るプログラムは、外部メモリ11に記憶されており、RAM2に読み出され、CPU1により実行される。
【0060】
図8に示すフローチャートにおいて、まず、ポート履歴を検索する(ステップS701)。具体的には、ポート履歴管理部101が、RAM2にすでに保存されている複数のポート履歴502から、更新しようとしているポートに対応するものがあるか検索を開始する。そして、ポート履歴があるか否かを判定する(ステップS702)。この処理もポート履歴管理部101が実行する。ここで、対象のポート履歴がなかった場合(ステップS702:No)は、ポート履歴数が最大数(MAX)に達しているか否かを判定する(ステップS703)。具体的には、ポート履歴管理部101が、ポート履歴数があらかじめ定めた最大数に達しているか否かを判定する。ここで、ポート履歴数が最大数(MAX)に達していない場合(ステップS703:No)は、ステップS705へ移行する。一方、ポート履歴数が最大数(MAX)に達している場合(ステップS703:Yes)は、最も古いポート履歴を削除する((ステップS704)。この処理も、ポート履歴管理部101が行う。これは無限にポート履歴502が追加されないように制限するための処理であるが、全体のバイト数などの他の方法で制限してもよい。
【0061】
続いて、ポート履歴を追加する(ステップS705)。具体的には、ポート履歴管理部101が、現在の論理プリンタ207のポート設定208とデバイス設定210をコピーしてポート履歴502を作成して追加する。
【0062】
ところで、ステップS702において対象のポート履歴があった場合(ステップS702:Yes)は、見つかったポート履歴502の順番を最上位(最新)に移動する(ステップS706)。そして、ポート履歴502のデバイス設定504を現在の論理プリンタ207のデバイス設定210と同等になるように更新する(ステップS707)。なお、ステップS706およびステップS707の処理は、ポート履歴管理部101が行う。
【0063】
次に、ユーザによるデバイス設定210の変更が行われた場合の処理について説明する。図9は、このデバイス設定変更処理の手順を示すフローチャートである。図9のフローに係るプログラムは、外部メモリ11に記憶されており、RAM2に読み出され、CPU1により実行される。
【0064】
図9に示すフローチャートにおいて、まず、従来のデバイス設定変更を行う(ステップS801)。具体的には、設定処理部105が、従来手法による論理プリンタ207のデバイス設定210を変更する。そして、図7のフローチャートに示したポート履歴保存処理(ステップS613)を行う。このようにすることで、同じプリンタドライバ203を使う別の論理プリンタ207からデバイス設定210を変更した場合に、保存されたポート履歴502を図7に示したステップS605の処理ですぐに見つけることができる。その結果、ステップS607の処理でデバイス設定210に反映することが可能になる。また、印刷時のポート変更画面の表示中にデバイス設定210を変更する場合などでも、同様の効果が期待できる。
【0065】
以上のような処理を実行することにより、論理プリンタの出力先を変更すると、以前出力先に指定していた印刷装置のデバイス設定に自動的に復元され、さらに復元されたデバイス設定に従って印刷設定が適切に丸められ、印刷設定を再度行う必要がなくなる。この結果、出力先変更に起因して印刷装置に不適合な印刷制御コマンドや描画コマンドを出力することがなくなり、印刷失敗による時間の無駄や意図しない印刷結果による紙の無駄をなくすことができる。
【0066】
また、本実施形態では、片方向通信のネットワークの場合や、印刷装置から取得できない部門管理用パスワードなども復元可能である。さらに、同じプリンタドライバで論理プリンタを作成した場合は、作成直後から同じポート履歴が使え、切替先の印刷装置での出力処理がスムーズに行える。
【0067】
〔第2の実施形態〕
第1の実施形態では、プリンタドライバ203の印刷処理中にポート変更を行う例を示したが、この処理は印刷を行う前であってもよい。たとえば、論理プリンタ207のプロパティからポートの変更を行ってもよい。印刷処理中にポート変更する場合は、ポート変更は1回のみであったが、印刷前にポート変更する場合は連続して数回行うことが考えられる。ただし、この場合、ユーザが論理プリンタ207のデフォルト印刷設定211を変えていないのに、ポートを変更するだけで設定値がどんどん丸められてしまうという問題が生じる。以下、このようなポート変更において発生する障害を説明する。
【0068】
図10は、ポート変更時に発生する障害を説明するための図である。図10では、カラー印刷装置か白黒印刷装置かを示す「デバイスタイプ」というデバイス設定と、カラー印刷をするか白黒印刷をするかを示す「カラーモード」という印刷設定が可能な場合を一例として説明する。
【0069】
まず、ポートがカラー印刷装置となっていて、デバイス設定210のデバイスタイプ=カラー、デフォルト印刷設定211のカラーモード=カラーが設定されている状態とする。そして、ポートを白黒印刷機に変更すると、ポート履歴からデバイスタイプ=白黒のデバイス設定に復元され、整合性チェックの結果カラーモード=白黒となる。その後、デフォルト印刷設定211は変更せずにポートをカラー印刷機に再び変更すると、デバイスタイプ=カラーのデバイス設定に復元され、整合性チェックをしても、カラー印刷装置では白黒印刷も可能なため、カラーモード=白黒のままとなる。すなわち、ポートを色々な印刷装置に変更していると、ユーザが変更していなくてもデフォルト印刷設定211がどんどん丸まってしまうという問題が生じる。そこで、かかる問題を解決するために、本実施の形態では以下のような処理を実行する。
【0070】
図11は、第2の実施形態にかかる印刷制御処理の概要を説明するための図である。図11に示すように、前述の問題を解決するため、ユーザ操作によって変更されたデフォルト印刷設定211をコピーした印刷設定バックアップ1001を作成して、論理プリンタ207に保持しておく。この処理は、たとえば、図7に示した設定処理部105で行うとよい。そして、ポート変更の際には、現在のデフォルト印刷設定211ではなく、印刷設定バックアップ1001に基づきデバイス設定との整合性チェックを行うようにする。このようにすることで、デフォルト印刷設定211を変えずにポートだけ変更された場合でも、デフォルト印刷設定211がどんどん丸まることはなく、ユーザが設定したときのデフォルト印刷設定211に対してのみ丸められるようになる。
【0071】
<印刷制御処理の手順>
次に、本実施形態にかかる印刷制御処理の手順を説明する。図12は、第2の実施形態にかかる印刷制御処理の手順を示すフローチャートである。図12のフローに係るプログラムは、外部メモリ11に記憶されており、RAM2に読み出され、CPU1により実行される。図12において、ステップS601〜ステップS611の処理、およびステップS613の処理は、図7と同様である。そして、図7の印刷設定の整合性チェック処理(ステップS612)に代えて、以下に示すステップS1101〜ステップS1104の処理を追加している点が異なる。そこで、以下ではステップS1101〜ステップS1104の処理についてのみ説明する。
【0072】
図12に示すフローチャートにおいて、ステップS611の処理後、印刷設定バックアップがあるか否かを判定する(ステップS1101)。ここで、印刷設定バックアップ1001が存在しないのは、論理プリンタ207を作成してから、ユーザ操作による印刷設定変更および論理プリンタ207のプリンタプロパティからのポート変更が一度もされていない場合である。ステップS1101では、図6に示した設定処理部105が、論理プリンタ207に印刷設定バックアップ1001が存在するか否かを判定する。ここで、印刷設定バックアップがない場合(ステップS1101:No)は、印刷設定の整合性をチェックする(ステップS1102)。具体的には、図6に示した整合性判定部106が、論理プリンタ207における現在のデバイス設定210と、論理プリンタ207のデフォルト印刷設定211およびプリンタドライバに渡された印刷設定212との整合性をチェックする。続けて、印刷設定のバックアップを行う(ステップS1103)。ここでは、設定処理部105が、ステップS1102による整合性チェック処理の後、デフォルト印刷設定211をコピーして印刷設定バックアップ1001を作成し、これを論理プリンタ207に保存する。この後、ステップS613へ移行する。
【0073】
一方、ステップS1101において印刷設定バックアップがある場合(ステップS1101:Yes)は、バックアップの印刷設定に戻す(ステップS1104)。具体的には、設定処理部105が、印刷設定バックアップ1001をデフォルト印刷設定211に上書きコピーする。そして、印刷設定の整合性をチェックする(ステップS1102)。ここでは、整合性判定部106が、論理プリンタ207のデバイス設定210と、印刷設定バックアップ1001が上書きされたデフォルト印刷設定211およびプリンタドライバに渡された印刷設定212との整合性をチェックする。この後、ステップS613へ移行する。
【0074】
次に、ユーザによるデフォルト印刷設定211の変更が行われた場合の処理について説明する。図13は、第2の実施形態における印刷設定処理の手順を示すフローチャートである。図13のフローに係るプログラムは、外部メモリ11に記憶されており、RAM2に読み出され、CPU1により実行される。図13に示すフローチャートにおいて、まず、従来の印刷設定の変更を行う(ステップS1201)。具体的には、設定処理部105が、従来手法によるデフォルト印刷設定211の変更を行う。続いて、印刷設定のバックアップを行う(ステップS1202)。具体的には、設定処理部105が、ステップS1201の処理で変更されたデフォルト印刷設定211のコピーを印刷設定バックアップ1001として論理プリンタ207に保存する。ただし、すでに印刷設定バックアップ1001が存在する場合には、上書きする。
【0075】
以上のような処理を実行することにより、印刷前にポート変更する場合、とくにポート変更を連続して数回行う場合であっても、デフォルト印刷設定211のみがどんどん丸められるといった弊害を回避し、第1の実施形態と同様の効果を得ることができる。
【符号の説明】
【0076】
101 ポート履歴管理部
102 ポート設定画面制御部
103 ポート変更検出部
104 ポート設定変更部
105 設定処理部
106 整合性判定部
501 ポート変更部

【特許請求の範囲】
【請求項1】
論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能で、ポートとデバイス設定とを対応させて記憶する記憶手段を有するコンピュータで実行されるプログラムであって、
論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映手段と、
前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更手段と、を備えたコンピュータを機能させるためのプログラム。
【請求項2】
前記変更手段は、前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づきデフォルトの印刷設定を矛盾しないように変更することを特徴とする請求項1記載のプログラム。
【請求項3】
前記変更手段は、前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づきデフォルトの印刷設定及びアプリからの印刷設定を矛盾しないように変更することを特徴とする請求項1記載のプログラム。
【請求項4】
前記変更手段は、前記反映手段により反映される論理プリンタが保持しているデバイス設定とユーザにより変更された印刷設定に基づきデフォルトの印刷設定を矛盾しないように変更することを特徴とする請求項1記載のプログラム。
【請求項5】
前記反映手段は、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得できない場合、変更後の印刷装置からデバイス設定を取得することを特徴とする請求項1記載のプログラム。
【請求項6】
前記反映手段は、変更後のポートと共に記憶されているデバイス設定を前記記憶手段より取得できず、変更後の印刷装置からデバイス設定を取得できない場合、デフォルトのデバイス設定を取得することを特徴とする請求項4記載のプログラム。
【請求項7】
論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能な印刷制御装置であって、
ポートとデバイス設定とを対応させて記憶する記憶手段と、
論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映手段と、
前記反映手段により反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更手段と、を有することを特徴とする印刷制御装置。
【請求項8】
論理プリンタのポートを変更することにより複数の印刷装置を切り替えて印刷することが可能で、ポートとデバイス設定とを対応させて記憶する記憶手段を有するコンピュータで実行される印刷制御方法であって、
論理プリンタのポートが変更された場合、変更後のポートに対応して記憶されているデバイス設定を前記記憶手段より取得し、論理プリンタが保持しているデバイス設定に反映する反映ステップと、
前記反映ステップにより反映される論理プリンタが保持しているデバイス設定に基づき印刷設定を矛盾しないように変更する変更ステップと、を有することを特徴とする印刷制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−176639(P2010−176639A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−21947(P2009−21947)
【出願日】平成21年2月2日(2009.2.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】