本発明は、印刷制御装置、特に、ネットワークプリンタを制御する印刷制御装置、及び前記印刷制御装置を備えたプリンタに関する。
従来、ネットワークに接続された複数のプリンタを複数のユーザが共通に利用するネットワーク印刷システムがある。このようなシステムのネットワークプリンタは、多数の利用者が種々の機能のプリンタを自由に利用できるので、非常に便利であるが、また管理が大変でもある。不適切な利用がされないように、利用権限に関してユーザを管理する必要がある。実際、特定のユーザのみが印刷できるプリンタを設定して、セキュリティを高めたシステムも存在する。以下に、これに関連する従来技術の例をいくつかあげる。
特許文献1に開示された「ネットワークプリンタシステム」は、ユーザや管理者の作業負担を軽減し、印刷業務の効率を向上させたものである。コンピュータから印刷データが送信されるプリンタは、要求された機能を実行することが出来ない場合、他のプリンタに順次その機能の実行の可否を問い合わせる。実行可能なプリンタがあれば印刷データを転送し、無ければその旨印刷データを送信したコンピュータに応答する。また、コンピュータから印刷データが送信されるプリンタは、自身がレディ状態にない場合、他のプリンタに順次状態を問い合わせる。レディ状態のプリンタがあれば印刷データを転送し、なければその旨印刷データを送信したコンピュータに応答する。
特許文献2に開示された「動的設定可能なプリンタ」は、高水準解釈言語により、種々の印刷環境を設定するものである。プリンタは、それに接続されたコンピュータから、プリンタレットとデータとを受け取る。各プリンタレットは、コンピュータ環境設定命令を含む。コントローラは、プリンタレット中に含まれる状態で受け取られる各プリンタ環境設定命令を呼び出す。コントローラに接続されたメモリは、そのそれぞれがプリンタの少なくとも一つの動作を制御するように構成された、複数のオブジェクト指向クラスを格納している。コントローラの少なくとも一つのプリンタ環境設定命令を呼び出しに応答して、コントローラに接続されたプリントエンジンは、メモリからコントローラによって呼び出された少なくとも一つのオブジェクト指向クラスの関数としてデータを印刷媒体上に印刷する。
特許文献3に開示された「ネットワークプリンタの自動インストール方法」は、場所が移動した場合でもプリンタの導入・設定を行わずに印刷できるネットワークプリンタの自動インストール方法である。ネットワークプリンタとインターネット接続されたウェブサーバとを有するネットワーク上に、クライアントPCが新規追加される。このシステムで、クライアントPCから起動時に同一セグメント内のプリンタの検索を行う。検索において新規ネットワークプリンタが見つかれば、プリンタドライバをインストールしてプリンタを作成する。
必要に応じてポートモニタをインストールして、プリンタポートを作成し、プリンタとプリンタポートを関連付け、新規ネットワークプリンタを用いて印刷可能な状態にする。
特許文献4に開示された「ネットワーク・デバイスのドライバ用のインストーラ」は、デバイス・ドライバに設定情報を自動的に設定するためのファイル構造を有するものである。インストール実行ファイルは、ネットワークに接続されたあるデバイスのドライバを、そのネットワークに接続された情報処理装置にインストールすることを実行するよう動作可能なプログラムと、そのドライバ用の設定情報の領域とを含んでいる。そのインストール実行ファイルは、そのドライバをインストールするステップと、そのインストールされたドライバにその設定情報を書き込むステップとを実行させる。
特許文献5に開示された「ネットワーク対応周辺装置」は、適切に利用者を認証することができる装置である。ネットワーク対応周辺装置は、少なくとも1つの周辺装置機能と、ネットワークへ接続しネットワークを介して他の端末装置より周辺装置機能の利用を受け付けて当該周辺装置機能を実行するネットワーク通信機能を備えている。利用者を識別する利用者認証機能を備えている。利用者認証機能は、ネットワークに設けられている認証手段の1つを用いてユーザ認証する際、当該認証手段に認証対象となる利用者のアカウントが存在しなかった場合、他の認証手段を選択して、当該利用者の認証動作を行う。ある認証手段が停電やハードウェア故障など諸事情により機能しなくなったときでも、使用することが可能となる。
特許文献6に開示された「印刷システム」は、印刷要求時に、印刷装置選択用の印刷属性情報をネットワーク上から自動的に収集し、選択した印刷装置で印刷するためのポートを動的に生成できる印刷システムである。印刷システムは、ネットワーク上の印刷装置を用いて所望の仕様の印刷ができる。アプリケーション部が、設定管理部を介して印刷設定画面を表示して印刷仕様を指定させる。印刷装置検索部が、ネットワーク通信部により、その仕様の印刷が可能な印刷装置を、ネットワーク上の印刷装置から検索して、その1つを選択する。ポート生成部が、その印刷装置を用いるためのポートを動的に生成する。プリンタドライバ制御部が、その印刷装置用に利用可能なプリンタドライバを選択し、印刷データを渡す。ネットワーク通信部が、その印刷データをプリンタドライバから受け取る。生成されたポートが有している印刷装置情報を用いて、その印刷データを送信する。
特開平11-39115号公報
特開2002-318672号公報
特開2002-366502号公報
特開2003-202987号公報
特開2005-149256号公報
特開2006-11666号公報
しかし、従来の印刷制御装置では、次のような問題がある。ネットワークプリンタを検索して、所望の印刷機能を有するプリンタが見つかっても、印刷できるユーザを制限していることがあり、実際には印刷できないことになる。また、「通常のユーザは白黒で印刷する」という制限を設けている場合がある。この場合、プリンタにカラーの印刷能力があったとしても、ユーザによってはカラー印刷ができないことになる。
本発明の目的は、上記従来の問題を解決して、ネットワークプリンタにおいて、ユーザに印刷権限があるかないかも考慮した上でプリンタを選択することにより、プリンタ検索段階で印刷の可能不可能がわかるようにすることである。
なお、本願明細書において、「プリンタ」は、複写機等を含め画像形成装置一般を、また「印刷」はプリントのみでなく複写等を含め画像形成一般をそれぞれ総称する用語として使用する。
上記の課題を解決するために、本発明では、印刷制御装置を、印刷に関する設定を行うための設定管理手段と、設定管理手段に設定された指定の印刷機能を有するプリンタをネットワーク上にあるプリンタから検索してプリンタ情報を取得するプリンタ検索手段と、指定の印刷機能を有するプリンタが存在しない場合にその旨をユーザに通知するプリンタ不存在通知手段と、ユーザの印刷権限を確認する確認手段と、印刷可能な各プリンタの混み具合情報を取得する混み具合情報取得手段と、選択したプリンタを利用するためのポートを動的に作成するポート作成手段と、選択したプリンタのプリンタドライバを選択するドライバ選択手段と、アプリケーションプログラムから受信した印刷データをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、前記ポートに印刷可能なデータを送る印刷データ送信手段と、印刷が完了した場合に印刷を実行したプリンタを特定する情報をユーザに通知する印刷完了通知手段とを具備する構成とした。
また、設定管理手段に、アプリケーションプログラムを介して印刷時に印刷に関する設定を行う手段を備えた。選択したプリンタ用のプリンタドライバが導入されていない場合には選択したプリンタが保持しているプリンタドライバを取得して導入する手段を備えた。確認手段に、ユーザの使用可能機能を確認する手段を備えた。
上記のように構成したことにより、ネットワークプリンタで印刷する場合に、印刷権限があるかないかも考慮した上でプリンタを選択することで、印刷操作を開始してから印刷不可能が判明する事態をより少なくすることができる。プリンタ本来の能力のみではなく、ユーザの使用が許可されている機能をも考慮した上でプリンタを選択することができ、印刷失敗となることを確実に回避することができる。
以下、本発明を実施するための最良の形態について、図1〜図8を参照しながら詳細に説明する。
本発明の実施例1は、予め設定された指定の印刷機能を有するネットワークプリンタを検索し、該当するプリンタが1台も存在しなかった場合には、その旨をユーザに通知し、印刷可能なプリンタが複数存在した場合には、各プリンタの混み具合情報を取得し、ユーザが実際に印刷する権限を持っているかどうかを確認し、選択したプリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する印刷制御装置である。
図1は、本発明の実施例1における印刷制御装置の機能ブロック図である。図1において、アプリケーション101は、印刷を要求する応用プログラムである。印刷制御部102は、印刷に関する要求を処理する手段である。プリンタ検索部103は、指定された機能のネットワークプリンタを検索する手段である。設定管理部104は、印刷設定を保持し管理する手段である。ポート作成部105は、プリンタポートを作成する手段である。プリンタドライバ制御部106は、プリンタドライバを選択して制御する手段である。ネットワーク通信部107は、ネットワークを介してネットワークプリンタなどと通信する手段である。プリンタ108は、ネットワークプリンタである。認証サーバ109は、ユーザ認証を行う手段である。
図2は、印刷制御装置の動作手順を示すフローチャートである。実施例1は、独自のユーザ認証機構を持った例であるが、周知の汎用認証機構を利用する構成であってもよい。
上記のように構成された本発明の実施例1における印刷制御装置の機能と動作を説明する。最初に、図1を参照しながら、印刷制御装置の機能の概要を説明する。カラー印刷や両面印刷やステープル打ちなどの印刷条件を、OSに対して設定して、設定管理部104に保持し管理する。ユーザは、アプリケーション101を介して印刷を要求する。印刷制御部102は、アプリケーション101からの印刷要求を、以下のように処理する。プリンタ検索部103は、ネットワーク上にあるプリンタの中から、指定された機能を有するプリンタを検索し、ユーザが実際に印刷する権限を持っているかどうかを確認する。プリンタを検索した結果、所望の印刷機能を有するプリンタが1台も存在しなかった場合には、その旨をユーザに通知する。
印刷可能なプリンタが複数ある場合、印刷制御部102は、印刷残ページ数などの各プリンタの混み具合情報を取得して、最も空いているプリンタを選択する。ポート作成部105で、選択したプリンタを利用するためのポートを動的に作成する。プリンタドライバ制御部106で、選択したプリンタに利用可能なプリンタドライバを自動的に選択する。印刷制御部102は、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送る。ネットワーク通信部107は、ネットワークを介してネットワークプリンタと通信し、認証サーバ109で認証を行ってから、プリンタ108で印刷を行う。印刷が完了したら、印刷したプリンタを特定する情報を、ユーザに通知する。
次に、図2を参照しながら、印刷制御装置の動作手順を説明する。ユーザは、アプリケーション101に対し、印刷の指示を行う。ステップ1において、印刷の指示を受けたアプリケーション101は、印刷制御部102に対し、現在OSに設定されている印刷設定の一覧を要求する。ステップ2において、印刷制御部102は、設定管理部104に対し、OSに設定されている印刷設定の一覧を要求する。設定管理部104は、現在OSに設定されている印刷設定の一覧を取得し、印刷制御部102に渡す。印刷制御部102は、現在OSに設定されている印刷設定の一覧をアプリケーション101に渡す。ステップ3において、アプリケーション101は、ユーザに、現在OSに設定されている印刷設定の一覧を提示する。
ステップ4において、ユーザは、現在OSに設定されている印刷設定の一覧から所望の印刷設定を選択する。さらに、印刷権限を確認するための認証に必要な情報(ユーザ名やパスワードなど)を入力する。ステップ5において、アプリケーション101は、ユーザが選択した印刷設定と、印刷権限を確認するための認証に必要な情報と共に、印刷するデータを印刷制御部102に渡す。
ステップ6において、印刷制御部102はまず、認証情報を確認するために、ネットワーク通信部107に、認証に必要な情報を渡し、認証サーバ109に対してユーザ認証を行うことを要求する。ネットワーク通信部107は、認証サーバ109と通信してユーザ認証を行う。認証に失敗した場合は、ネットワーク通信部107は、印刷制御部102に認証エラーを返し、認証エラーを受けた印刷制御部102は、アプリケーション101に対し認証エラーを返す。アプリケーション101は認証エラーを受け、ユーザに対し認証できなかった旨を表示する。認証が成功すると、ネットワーク通信部107は、認証サーバ109から認証された証(認証トークン)を受け取り、印刷制御部102に認証トークンを返す。
印刷制御部102は、プリンタ検索部103に対し、ユーザが選択した印刷設定での印刷ができるプリンタを検索するように指示する。プリンタ検索部103は、ネットワーク通信部107に対し、利用可能なプリンタとその機能の一覧の取得を要求する。ネットワーク通信部107は、ブロードキャストなどの手段を使って、ネットワークから印刷可能なプリンタを検索し、その一覧をプリンタ検索部103に返す。
プリンタ検索部103は、取得したプリンタの一覧から、ユーザが選択した印刷設定での印刷が可能なプリンタを選択し、そのプリンタ情報を印刷制御部102に返す。さらに印刷制御部102は、ユーザが選択した印刷設定での印刷が可能なプリンタそれぞれに対し、ネットワーク通信部107を通して認証トークンを提示して、印刷可否をチェックし、印刷できないプリンタを、ユーザが選択した印刷設定での印刷が可能なプリンタの一覧から除外する。
ステップ7において、印刷条件を満たすプリンタが見つかったか否かを調べる。見つからなかった場合は、ステップ8で、その旨をユーザに伝える。見つかった場合は、ステップ9において、ユーザが印刷できるか否かを調べる。ステップ10において、印刷可能なプリンタがあるか否かを調べる。印刷制御部102は、ユーザが選択した印刷設定での印刷が可能なプリンタが1つもない場合は、ステップ8において、アプリケーション101に、ユーザが選択した印刷設定での印刷が可能なプリンタが1つもないことを伝え、アプリケーション101は、選択した印刷設定での印刷が可能なプリンタが1つもないことをユーザに通知する。
ユーザが選択した印刷設定での印刷が可能なプリンタがあった場合は、ステップ11において、プリンタ候補が複数あるか否かを調べる。複数の候補がある場合、ステップ12において、印刷制御部102は、ネットワーク通信部107に対し、各候補のプリンタから印刷残ページ数を取得するよう要求する。ネットワーク通信部107は、各候補のプリンタから印刷残ページ数を取得し、印刷制御部102に返す。ステップ13において、印刷制御部102は、得られた印刷残ページ数の最も小さい候補(つまり、印刷待ち時間の少ないプリンタ)を、実際に印刷するプリンタとして選択する。ステップ14において、印刷制御部102は、取得したプリンタ情報から、そのプリンタに印刷データを送るためのポートを作成するように、ポート作成部105に要求する。ポート作成部105は、プリンタ情報に基づきポートを作成して、そのポート情報を印刷制御部102に返す。
次に、ステップ15において、印刷制御部102は、プリンタ情報とアプリケーション101から送られてきた印刷するデータを、プリンタドライバ制御部106に送る。プリンタドライバ制御部106は、プリンタ情報に基づき、プリンタドライバを選択し、そのプリンタドライバを利用して、プリンタに送出するデータを生成し、印刷制御部102に返す。印刷制御部102は、取得したポート情報とプリンタに送出するデータをネットワーク通信部107に送り、プリンタに対し印刷を実行するよう指示する。
ステップ16において、ネットワーク通信部107は、ポート情報に基づき、そのポートを利用してプリンタ108と通信し、データを送出して印刷を行う。印刷後、印刷制御部102は、ポートを削除し、プリンタ情報の中からプリンタを特定する固有の情報(例えば、プリンタ名やIPアドレスなど)の情報を、アプリケーション101に返す。ステップ17において、アプリケーション101は、受け取ったプリンタ情報と共に、印刷が終了したことをユーザに通知する。
上記のように、本発明の実施例1では、印刷制御装置を、予め設定された指定の印刷機能を有するネットワークプリンタを検索し、該当するプリンタが1台も存在しなかった場合には、その旨をユーザに通知し、印刷可能なプリンタが複数存在した場合には、各プリンタの混み具合から最も空いているプリンタを選択し、ユーザが実際に印刷する権限を持っているかどうかを確認し、選択したプリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する構成としたので、実際には印刷できないという失敗を減らすことができる。
本発明の実施例2は、アプリケーションを介して指定された印刷機能を有するプリンタをネットワーク上にあるプリンタから検索し、ユーザが印刷権限を持っている機能を確認し、指定の印刷機能を有するプリンタが1台も存在しなかった場合にはその旨をユーザに通知し、プリンタ候補が複数ある場合はプリンタの混み具合が最小のものを選択し、プリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する印刷制御装置である。
図3は、本発明の実施例2における印刷制御装置の機能ブロック図である。図3において、アプリケーション301は、印刷を要求する応用プログラムである。印刷制御部302は、印刷に関する要求を処理する手段である。プリンタ検索部303は、指定された機能のネットワークプリンタを検索する手段である。ポート作成部305は、プリンタポートを作成する手段である。プリンタドライバ制御部306は、プリンタドライバを選択して制御する手段である。ネットワーク通信部307は、ネットワークを介してネットワークプリンタなどと通信する手段である。プリンタ308は、ネットワークプリンタである。認証サーバ309は、ユーザ認証を行う手段である。
図4は、印刷制御装置の動作手順を示すフローチャートである。実施例2は、独自のユーザ認証機構を持った例であるが、周知の汎用認証機構を利用する構成としてもよい。
上記のように構成された本発明の実施例2における印刷制御装置の機能と動作を説明する。最初に、図3を参照しながら、印刷制御装置の機能の概要を説明する。ユーザは、アプリケーション301を介して印刷を要求する。印刷制御部302は、アプリケーション301からの印刷要求を、以下のように処理する。プリンタ検索部303は、ネットワーク上にあるプリンタの中から、アプリケーションを介して指定された機能を有するプリンタを検索し、ユーザが実際に印刷する権限を持っているかどうかを確認する。プリンタを検索した結果、所望の印刷機能を有するプリンタが1台も存在しなかった場合には、その旨をユーザに通知する。
印刷可能なプリンタが複数ある場合、印刷制御部302は、印刷残ページ数などの各プリンタの混み具合情報を取得して、最も空いているプリンタを選択する。ポート作成部305で、選択したプリンタを利用するためのポートを動的に作成する。プリンタドライバ制御部306で、選択したプリンタに利用可能なプリンタドライバを自動的に選択する。印刷制御部302は、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送る。ネットワーク通信部307は、ネットワークを介してネットワークプリンタと通信し、認証サーバ309で認証を行ってから、プリンタ308で印刷を行う。印刷が完了したら、印刷したプリンタを特定する情報を、ユーザに通知する。
次に、図4を参照しながら、印刷制御装置の動作手順を説明する。ユーザは、アプリケーション301に対し、印刷の指示を行う。印刷の指示を受けたアプリケーション301は、ステップ41において、ユーザに対し、印刷設定(白黒またはカラー、両面印刷ONまたはOFFなど)を選択/指示できる画面を表示する。ステップ42において、ユーザは、表示に従い、印刷設定を指示する。さらに、印刷権限を確認するための認証に必要な情報(ユーザ名やパスワードなど)を入力する。ステップ43において、アプリケーション301は、ユーザが選択した印刷設定と、印刷権限を確認するための認証に必要な情報と共に、印刷するデータを印刷制御部302に渡す。
ステップ44において、印刷制御部302はまず、認証情報を確認するために、ネットワーク通信部307に、認証に必要な情報を渡し、認証サーバ309に対してユーザ認証を行うことを要求する。ネットワーク通信部307は、認証サーバ309と通信してユーザ認証を行う。認証に失敗した場合は、ネットワーク通信部307は、印刷制御部302に認証エラーを返す。認証エラーを受けた印刷制御部302は、アプリケーション301に対し、認証エラーを返す。アプリケーション301は、認証エラーを受け、ユーザに対し、認証できなかった旨を表示する。
認証が成功すると、ネットワーク通信部307は、認証サーバ309から認証された証(認証トークンと呼ぶことにする)を受け取り、印刷制御部302に認証トークンを返す。印刷制御部302は、プリンタ検索部303に対し、ユーザが選択した印刷設定での印刷ができるプリンタを検索するように指示する。プリンタ検索部303は、ネットワーク通信部307に対し、利用可能なプリンタとその機能の一覧の取得を要求する。ネットワーク通信部307は、ブロードキャストなどの手段を使って、ネットワークから印刷可能なプリンタを検索し、その一覧をプリンタ検索部303に返す。プリンタ検索部303は、取得したプリンタの一覧から、ユーザが選択した印刷設定での印刷が可能なプリンタを選択し、そのプリンタ情報を印刷制御部302に返す。
ステップ45において、印刷条件を満たすプリンタが見つかったどうかチェックする。見つからなかった場合は、ステップ46において、アプリケーション301は、選択した印刷設定での印刷が可能なプリンタが1つもないことを、ユーザに提示する。見つかった場合は、ステップ47において、印刷制御部302は、ユーザが選択した印刷設定での印刷が可能なプリンタそれぞれに対し、ネットワーク通信部307を通して認証トークンを提示して、印刷可否とユーザが利用可能な機能を取得する。印刷できないプリンタを、ユーザが選択した印刷設定での印刷が可能なプリンタの一覧から除外する。
ステップ48において、印刷制御部302は、ユーザが選択した印刷設定で印刷が可能かチェックする。ステップ49において、ユーザが選択した印刷設定での印刷が可能なプリンタがあるかどうか調べる。ユーザが選択した印刷設定での印刷が可能なプリンタが1つもない場合は、印刷制御部302は、アプリケーション301に、ユーザが選択した印刷設定での印刷が可能なプリンタが1つもないことを伝える。ステップ46において、アプリケーション301は、選択した印刷設定での印刷が可能なプリンタが1つもないことを、ユーザに通知する。
あった場合は、ステップ50において、複数の候補があるかどうか調べる。複数の候補がある場合、ステップ51において、印刷制御部302は、ネットワーク通信部307に対し、各候補のプリンタから印刷残ページ数を取得するよう要求する。ネットワーク通信部307は、各候補のプリンタから印刷残ページ数を取得し、印刷制御部302に返す。ステップ52において、印刷制御部302は、得られた印刷残ページ数の最も小さい候補(つまり、印刷待ち時間の少ないプリンタ)を、実際に印刷するプリンタとして選択する。
ステップ53において、印刷制御部302は、取得したプリンタ情報から、そのプリンタに印刷データを送るためのポートを作成するように、ポート作成部305に要求する。ポート作成部305は、プリンタ情報に基づき、ポートを作成して、そのポート情報を印刷制御部302に返す。ステップ54において、印刷制御部302は、プリンタ情報とアプリケーション301から送られてきた印刷するデータを、プリンタドライバ制御部306に送る。プリンタドライバ制御部306は、プリンタ情報に基づきプリンタドライバを選択し、そのプリンタドライバを利用して、プリンタに送出するデータを生成し、印刷制御部302に返す。印刷制御部302は、取得したポート情報とプリンタに送出するデータを、ネットワーク通信部307に送り、プリンタに対し印刷を実行するよう指示する。
ステップ55において、ネットワーク通信部307は、ポート情報に基づき、そのポートを利用してプリンタ308と通信し、データを送出して印刷を行う。印刷後、印刷制御部302はポートを削除し、プリンタ情報の中からプリンタを特定する固有の情報(例えば、プリンタ名やIPアドレスなど)の情報を、アプリケーション301に返す。ステップ56において、アプリケーション301は、受け取ったプリンタ情報と共に、印刷が終了したことをユーザに通知する。
上記のように、本発明の実施例2では、印刷制御装置を、アプリケーションを介して指定された印刷機能を有するプリンタをネットワーク上にあるプリンタから検索し、ユーザが印刷権限を持っている機能を確認し、指定の印刷機能を有するプリンタが1台も存在しなかった場合にはその旨をユーザに通知し、プリンタ候補が複数ある場合はプリンタの混み具合が最小のものを選択し、プリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する構成としたので、実際には印刷できないという失敗をさらに減らすことができる。
本発明の実施例3は、予め設定された指定の印刷機能を有するネットワークプリンタを検索し、該当するプリンタが1台も存在しなかった場合には、その旨をユーザに通知し、印刷可能なプリンタが複数存在した場合には、各プリンタの混み具合情報を取得し、ユーザが実際に印刷する権限を持っているかどうかを確認し、選択したプリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、プリンタドライバが導入されていなければ、プリンタ自身が保持しているプリンタドライバを取得し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する印刷制御装置である。
図5は、本発明の実施例3における印刷制御装置の機能ブロック図である。図5において、アプリケーション501は、印刷を要求する応用プログラムである。印刷制御部502は、印刷に関する要求を処理する手段である。プリンタ検索部503は、指定された機能のネットワークプリンタを検索する手段である。設定管理部504は、印刷設定を保持し管理する手段である。ポート作成部505は、プリンタポートを作成する手段である。プリンタドライバ制御部506は、プリンタドライバを選択して制御する手段である。ネットワーク通信部507は、ネットワークを介してネットワークプリンタなどと通信する手段である。プリンタ508は、ネットワークプリンタである。認証サーバ509は、ユーザ認証を行う手段である。
図6は、印刷制御装置の動作手順を示すフローチャートである。実施例3は、独自のユーザ認証機構を持った例であるが、周知の汎用認証機構を利用する構成としてもよい。
上記のように構成された本発明の実施例3における印刷制御装置の機能と動作を説明する。最初に、図5を参照しながら、印刷制御装置の機能の概要を説明する。カラー印刷や両面印刷やステープル打ちなどの印刷条件を、OSに対して設定して、設定管理部504に保持し管理する。ユーザは、アプリケーション501を介して印刷を要求する。印刷制御部502は、アプリケーション501からの印刷要求を、以下のように処理する。プリンタ検索部503は、ネットワーク上にあるプリンタの中から、指定された機能を有するプリンタを検索し、ユーザが実際に印刷する権限を持っているかどうかを確認する。プリンタを検索した結果、所望の印刷機能を有するプリンタが1台も存在しなかった場合には、その旨をユーザに通知する。
印刷可能なプリンタが複数ある場合、印刷制御部502は、印刷残ページ数などの各プリンタの混み具合情報を取得して、最も空いているプリンタを選択する。ポート作成部505で、選択したプリンタを利用するためのポートを動的に作成する。プリンタドライバ制御部506で、選択したプリンタに利用可能なプリンタドライバを自動的に選択する。プリンタドライバが導入されていなければ、プリンタ自身が保持しているプリンタドライバを取得する。プリンタ自身にプリンタドライバを保持しておき、要求に応じてプリンタ自身が保持しているプリンタドライバを提供する。印刷制御部502は、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送る。ネットワーク通信部507は、ネットワークを介してネットワークプリンタと通信し、認証サーバ509で認証を行ってから、プリンタ508で印刷を行う。印刷が完了したら、印刷したプリンタを特定する情報を、ユーザに提示する。
次に、図6を参照しながら、印刷制御装置の動作手順を説明する。ユーザはアプリケーション501に対し、印刷の指示を行う。印刷の指示を受けたアプリケーション501は、ステップ61において、印刷制御部502に対し、現在OSに設定されている印刷設定の一覧を要求する。ステップ62において、印刷制御部502は、設定管理部504に対し、OSに設定されている印刷設定の一覧を要求する。設定管理部504は、現在OSに設定されている印刷設定の一覧を取得し、印刷制御部502に返す。印刷制御部502は、現在OSに設定されている印刷設定の一覧をアプリケーション501に返す。ステップ63において、アプリケーション501は、ユーザに、現在OSに設定されている印刷設定の一覧を提示する。ステップ64において、ユーザは、現在OSに設定されている印刷設定の一覧から所望の印刷設定を選択し、さらに印刷権限を確認するための認証に必要な情報(ユーザ名やパスワードなど)を入力する。
ステップ65において、アプリケーション501は、ユーザが選択した印刷設定、印刷権限を確認するための認証に必要な情報と共に、印刷するデータを印刷制御部502に渡す。ステップ66において、印刷制御部502はまず、認証情報を確認するためにネットワーク通信部507に認証に必要な情報を渡し、認証サーバ509に対してユーザ認証を行うことを要求する。ネットワーク通信部507は、認証サーバ509と通信してユーザ認証を行う。認証に失敗した場合は、ネットワーク通信部507は、印刷制御部502に認証エラーを返す。認証エラーを受けた印刷制御部502は、アプリケーション501に対し認証エラーを返す。アプリケーション501は認証エラーを受け、ユーザに対し、認証できなかった旨を表示する。
認証が成功すると、ネットワーク通信部507は、認証サーバ509から、認証された証(認証トークン)を受け取り、印刷制御部502に認証トークンを返す。印刷制御部502は、プリンタ検索部503に対し、ユーザが選択した印刷設定での印刷ができるプリンタを検索するように指示する。プリンタ検索部503は、ネットワーク通信部507に対し、利用可能なプリンタとその機能の一覧の取得を要求する。ネットワーク通信部507は、ブロードキャストなどの手段を使って、ネットワークから印刷可能なプリンタを検索し、その一覧をプリンタ検索部503に返す。プリンタ検索部503は、取得したプリンタの一覧から、ユーザが選択した印刷設定での印刷が可能なプリンタを選択し、そのプリンタ情報を印刷制御部502に返す。さらに印刷制御部502は、ユーザが選択した印刷設定での印刷が可能なプリンタそれぞれに対し、ネットワーク通信部507を通して認証トークンを提示して、印刷可否をチェックし、印刷できないプリンタを、ユーザが選択した印刷設定での印刷が可能なプリンタの一覧から除外する。
ステップ67において、印刷条件を満たすプリンタが見つかったどうか調べる。ユーザが選択した印刷設定での印刷が可能なプリンタが1つもない場合は、印刷制御部502は、ステップ68において、アプリケーション501に、ユーザが選択した印刷設定での印刷が可能なプリンタが1つもないことを伝え、アプリケーション501は、選択した印刷設定での印刷が可能なプリンタが1つもないことをユーザに通知する。
ユーザが選択した印刷設定での印刷が可能なプリンタがあった場合は、ステップ69において、印刷できるかどうかチェックする。ステップ70において、プリンタ候補が1つ以上あるかどうか調べる。1つもない場合は、ステップ68において、アプリケーション501に、ユーザが選択した印刷設定での印刷が可能なプリンタが1つもないことを伝え、アプリケーション501は、選択した印刷設定での印刷が可能なプリンタが1つもないことをユーザに通知する。
1つ以上ある場合は、ステップ71において、複数のプリンタ候補があるかどうか調べる。複数のプリンタ候補がある場合、印刷制御部502は、ステップ72において、ネットワーク通信部507に対し、各候補のプリンタから印刷残ページ数を取得するよう要求する。ネットワーク通信部507は、各候補のプリンタから印刷残ページ数を取得し、印刷制御部502に返す。ステップ73において、印刷制御部502は、得られた印刷残ページ数の最も小さい候補(つまり、印刷待ち時間の少ないプリンタ)を、実際に印刷するプリンタとして選択する。
ステップ74において、印刷制御部502は、取得したプリンタ情報から、そのプリンタに印刷データを送るためのポートを作成するように、ポート作成部505に要求する。ポート作成部505は、プリンタ情報に基づきポートを作成して、そのポート情報を印刷制御部502に返す。
ステップ75において、プリンタドライバが導入されているかどうか調べる。プリンタ情報のプリンタを使用するためのプリンタドライバがインストールされていない場合は、ステップ76において、ネットワーク通信部507に対し、ポート情報を送ると共に、プリンタに対しプリンタドライバを取得するように要求する。ネットワーク通信部507は、ポート情報をもとにプリンタ508と通信し、プリンタドライバを取得し、プリンタドライバ制御部506に返す。ステップ77において、プリンタドライバ制御部506は、取得したプリンタドライバを自動的に使用可能な状態にして、そのプリンタドライバを選択する。
ステップ78において、印刷制御部502は、プリンタ情報とポート情報とアプリケーション501から送られてきた印刷するデータを、プリンタドライバ制御部506に送る。プリンタドライバ制御部506は、プリンタ情報に基づきプリンタドライバを選択する。さらに、選択したプリンタドライバを利用して、プリンタに送出するデータを生成し、印刷制御部502に返す。
ステップ79において、印刷制御部502は、取得したポート情報とプリンタに送出するデータをネットワーク通信部507に送り、プリンタに対し印刷を実行するよう指示する。ネットワーク通信部507は、ポート情報に基づき、そのポートを利用してプリンタ508と通信し、データを送出して印刷を行う。印刷後、印刷制御部502はポートを削除し、プリンタ情報の中からプリンタを特定する固有の情報(例えば、プリンタ名やIPアドレスなど)の情報を、アプリケーション501に返す。ステップ80において、アプリケーション501は、受け取ったプリンタ情報と共に印刷が終了したことをユーザに通知する。
上記のように、本発明の実施例3では、印刷制御装置を、予め設定された指定の印刷機能を有するネットワークプリンタを検索し、該当するプリンタが1台も存在しなかった場合には、その旨をユーザに通知し、印刷可能なプリンタが複数存在した場合には、各プリンタの混み具合情報を取得し、ユーザが実際に印刷する権限を持っているかどうかを確認し、選択したプリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、プリンタドライバが導入されていなければ、プリンタ自身が保持しているプリンタドライバを取得し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する構成としたので、実際には印刷できないという失敗をさらに減らすことができる。
本発明の実施例4は、アプリケーションを介して指定された印刷機能を有するプリンタをネットワーク上にあるプリンタから検索し、ユーザが印刷権限を持っている機能を確認し、指定の印刷機能を有するプリンタが1台も存在しなかった場合にはその旨をユーザに通知し、プリンタ候補が複数ある場合はプリンタの混み具合が最小のものを選択し、プリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、プリンタドライバが導入されていなければ、プリンタ自身が保持しているプリンタドライバを取得し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する印刷制御装置である。
図7は、本発明の実施例4における印刷制御装置の機能ブロック図である。図7において、アプリケーション701は、印刷を要求する応用プログラムである。印刷制御部702は、印刷に関する要求を処理する手段である。プリンタ検索部703は、指定された機能のネットワークプリンタを検索する手段である。ポート作成部705は、プリンタポートを作成する手段である。プリンタドライバ制御部706は、プリンタドライバを選択して制御する手段である。ネットワーク通信部707は、ネットワークを介してネットワークプリンタなどと通信する手段である。プリンタ708は、ネットワークプリンタである。認証サーバ709は、ユーザ認証を行う手段である。
図8は、印刷制御装置の動作手順を示すフローチャートである。実施例4は、独自のユーザ認証機構を持った例であるが、周知の汎用認証機構を利用する構成としてもよい。
上記のように構成された本発明の実施例4における印刷制御装置の機能と動作を説明する。最初に、図7を参照しながら、印刷制御装置の機能の概要を説明する。ユーザは、アプリケーション701を介して印刷を要求する。印刷制御部702は、アプリケーション701からの印刷要求を、以下のように処理する。プリンタ検索部703は、ネットワーク上にあるプリンタの中から、アプリケーションを介して指定された機能を有するプリンタを検索し、ユーザが実際に印刷する権限を持っているかどうかを確認する。プリンタを検索した結果、所望の印刷機能を有するプリンタが1台も存在しなかった場合には、その旨をユーザに通知する。
印刷可能なプリンタが複数ある場合、印刷制御部702は、印刷残ページ数などの各プリンタの混み具合情報を取得して、最も空いているプリンタを選択する。ポート作成部705で、選択したプリンタを利用するためのポートを動的に作成する。プリンタドライバ制御部706で、選択したプリンタに利用可能なプリンタドライバを自動的に選択する。プリンタドライバが導入されていなければ、プリンタ自身が保持しているプリンタドライバを取得する。印刷制御部702は、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送る。ネットワーク通信部707は、ネットワークを介してネットワークプリンタと通信し、認証サーバ709で認証を行ってから、プリンタ708で印刷を行う。印刷が完了したら、印刷したプリンタを特定する情報を、ユーザに通知する。
次に、図8を参照しながら、印刷制御装置の動作手順を説明する。ユーザは、アプリケーション701に対し、印刷の指示を行う。印刷の指示を受けたアプリケーション701は、ステップ81において、ユーザに対し、印刷設定(白黒またはカラー、両面印刷ONまたはOFFなど)を選択/指示できる画面を表示する。ステップ82において、ユーザは、表示に従い、印刷設定を指示する。さらに、印刷権限を確認するための認証に必要な情報(ユーザ名やパスワードなど)を入力する。ステップ83において、アプリケーション701は、ユーザが選択した印刷設定、印刷権限を確認するための認証に必要な情報と共に、印刷するデータを印刷制御部702に渡す。
ステップ84において、印刷制御部702はまず、認証情報を確認するために、ネットワーク通信部707に認証に必要な情報を渡し、認証サーバ709に対してユーザ認証を行うことを要求する。ネットワーク通信部707は、認証サーバ709と通信して、ユーザ認証を行う。認証に失敗した場合は、ネットワーク通信部707は、印刷制御部702に認証エラーを返す。認証エラーを受けた印刷制御部702は、アプリケーション701に対して認証エラーを返す。アプリケーション701は、認証エラーを受け、ユーザに対して認証できなかった旨を表示する。認証が成功すると、ネットワーク通信部707は、認証サーバ709から認証された証(認証トークン)を受け取り、印刷制御部702に認証トークンを返す。
印刷制御部702は、プリンタ検索部703に対し、ユーザが選択した印刷設定での印刷ができるプリンタを検索するように指示する。プリンタ検索部703は、ネットワーク通信部707に対し、利用可能なプリンタとその機能の一覧の取得を要求する。ネットワーク通信部707は、ブロードキャストなどの手段を使って、ネットワークから印刷可能なプリンタを検索し、その一覧をプリンタ検索部703に返す。プリンタ検索部703は、取得したプリンタの一覧から、ユーザが選択した印刷設定での印刷が可能なプリンタを選択し、そのプリンタ情報を、印刷制御部702に返す。さらに、印刷制御部702は、ユーザが選択した印刷設定での印刷が可能なプリンタそれぞれに対し、ネットワーク通信部707を通して認証トークンを提示して、印刷可否とユーザが利用可能な機能を取得する。印刷できないプリンタを、ユーザが選択した印刷設定での印刷が可能なプリンタの一覧から除外する。
ステップ85において、印刷条件を満たすプリンタが見つかったかどうか調べる。ユーザが選択した印刷設定での印刷が可能なプリンタが1つもない場合は、印刷制御部702は、ステップ86において、アプリケーション701に、ユーザが選択した印刷設定での印刷が可能なプリンタが1つもないことを伝える。アプリケーション701は、選択した印刷設定での印刷が可能なプリンタが1つもないことを、ユーザに通知する。
ユーザが選択した印刷設定での印刷が可能なプリンタがあった場合は、ステップ87において、機能リストを取得する。ステップ88において、条件どおり印刷できるかチェックする。ステップ89において、プリンタ候補が1つ以上あるか調べる。なければ、ステップ86において、アプリケーション701に、ユーザが選択した印刷設定での印刷が可能なプリンタが1つもないことを伝える。アプリケーション701は、選択した印刷設定での印刷が可能なプリンタが1つもないことを、ユーザに通知する。
あれば、ステップ90において、プリンタ候補が複数あるかどうか調べる。複数の候補がある場合、印刷制御部702は、ステップ91において、ネットワーク通信部707に対し、各候補のプリンタから、印刷残ページ数を取得するよう要求する。ネットワーク通信部707は、各候補のプリンタから印刷残ページ数を取得し、印刷制御部702に返す。ステップ92において、印刷制御部702は、得られた印刷残ページ数の最も小さい候補(つまり、印刷待ち時間の少ないプリンタ)を、実際に印刷するプリンタとして選択する。
ステップ93において、印刷制御部702は、取得したプリンタ情報から、そのプリンタに印刷データを送るためのポートを作成するように、ポート作成部705に要求する。ポート作成部705は、プリンタ情報に基づきポートを作成して、そのポート情報を印刷制御部702に返す。
ステップ94において、プリンタドライバが導入されているかどうか調べる。プリンタ情報のプリンタを使用するためのプリンタドライバがインストールされていない場合は、ステップ95において、ネットワーク通信部707に対し、ポート情報を送ると共に、プリンタに対しプリンタドライバを取得するように要求する。ネットワーク通信部707は、ポート情報をもとに、プリンタ708と通信し、プリンタドライバを取得し、プリンタドライバ制御部706に返す。ステップ96において、プリンタドライバ制御部706は、取得したプリンタドライバを自動的に使用可能な状態にして、そのプリンタドライバを選択する。印刷制御部702は、プリンタ情報とポート情報とアプリケーション701から送られてきた印刷するデータを、プリンタドライバ制御部706に送る。プリンタドライバ制御部706は、プリンタ情報に基づき、プリンタドライバを選択する。
ステップ97において、選択したプリンタドライバを利用して、プリンタに送出するデータを生成し、印刷制御部702に返す。ステップ98において、印刷制御部702は、取得したポート情報とプリンタに送出するデータをネットワーク通信部707に送り、プリンタに対し印刷を実行するよう指示する。ネットワーク通信部707は、ポート情報に基づき、そのポートを利用してプリンタ708と通信し、データを送出して印刷を行う。印刷後、印刷制御部702はポートを削除し、プリンタ情報の中からプリンタを特定する固有の情報(例えば、プリンタ名やIPアドレスなど)の情報を、アプリケーション701に返す。ステップ99において、アプリケーション701は、受け取ったプリンタ情報と共に、印刷が終了したことをユーザに通知する。
上記のように、本発明の実施例4では、印刷制御装置を、アプリケーションを介して指定された印刷機能を有するプリンタをネットワーク上にあるプリンタから検索し、ユーザが印刷権限を持っている機能を確認し、指定の印刷機能を有するプリンタが1台も存在しなかった場合にはその旨をユーザに通知し、プリンタ候補が複数ある場合はプリンタの混み具合が最小のものを選択し、プリンタを利用するためのポートを動的に作成し、プリンタドライバを自動的に選択し、プリンタドライバが導入されていなければ、プリンタ自身が保持しているプリンタドライバを取得し、アプリケーションから受けたデータをプリンタドライバに渡し、プリンタドライバから印刷可能なデータを受け取り、作成したポートに印刷可能なデータを送り、印刷が完了したら印刷したプリンタを特定する情報をユーザに通知する構成としたので、実際には印刷できないという失敗をさらに減らすことができる。
なお、以上で説明した印刷制御装置はプリンタに搭載し用いることができる。
本発明の印刷制御装置は、ネットワークプリンタを制御する印刷制御装置として最適である。モバイルにおけるネットワークプリンティング技術にも適用できる。
本発明の実施例1における印刷制御装置の機能ブロック図である。
本発明の実施例1における印刷制御装置の動作手順を示すフローチャートである。
本発明の実施例2における印刷制御装置の機能ブロック図である。
本発明の実施例2における印刷制御装置の動作手順を示すフローチャートである。
本発明の実施例3における印刷制御装置の機能ブロック図である。
本発明の実施例3における印刷制御装置の動作手順を示すフローチャートである。
本発明の実施例4における印刷制御装置の機能ブロック図である。
本発明の実施例4における印刷制御装置の動作手順を示すフローチャートである。
符号の説明
101・・・アプリケーション、102・・・印刷制御部、103・・・プリンタ検索部、104・・・設定管理部、105・・・ポート作成部、106・・・プリンタドライバ制御部、107・・・ネットワーク通信部、108・・・プリンタ、109・・・認証サーバ、301・・・アプリケーション、302・・・印刷制御部、303・・・プリンタ検索部、305・・・ポート作成部、306・・・プリンタドライバ制御部、307・・・ネットワーク通信部、308・・・プリンタ、309・・・認証サーバ、501・・・アプリケーション、502・・・印刷制御部、503・・・プリンタ検索部、504・・・設定管理部、505・・・ポート作成部、506・・・プリンタドライバ制御部、507・・・ネットワーク通信部、508・・・プリンタ、509・・・認証サーバ、701・・・アプリケーション、702・・・印刷制御部、703・・・プリンタ検索部、705・・・ポート作成部、706・・・プリンタドライバ制御部、707・・・ネットワーク通信部、708・・・プリンタ、709・・・認証サーバ。