(57)【要約】【課題】  プリンタードライバーをインストールしていないプリンターを用いて印刷を行うたびに、プリンタードライバーに対応するプリントキューを自動的に作成すると、ユーザーが選択可能なプリンターを含む出力先の選択肢が増える。【解決手段】  プリントキューを作成するが、プリンター情報を表示する表示部がプリントキューに対応するプリンター情報を表示しない。【選択図】  図７
2013089045.tif 000002
【特許請求の範囲】
【請求項１】
第１のプリントキューを作成する通常作成手段と、
前記通常作成手段の作成する前記第１のプリントキューに対応するプリンタードライバーが動作することにより第２のプリントキューを作成する仮想作成手段と、を有し、
プリンターに関する情報であるプリンター情報を表示する表示部は、前記通常作成手段が作成する前記第１のプリントキューに対応するプリンターのプリンター情報を表示し、前記仮想作成手段が作成する前記第２のプリントキューに対応するプリンターのプリンター情報を表示しないことを特徴とする情報処理装置。
【請求項２】
前記仮想作成手段は前記第２のプリントキューのアクセス権に関する情報であるアクセス権情報を特定のアクセス権に設定し、前記表示部は前記第２のプリントキューの前記特定のアクセス権を有していないことにより前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を表示しないことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定のアクセス権で動作して前記第２のプリントキューに対応する前記プリンターを用いて印刷する指示を受け付ける印刷受付手段と、を有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
プリントキューに対応するプリンターのプリンター情報を前記表示部に表示させる指示を受け付ける受付手段と、
前記受付手段が前記指示を受け付けることにより前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を前記表示部が表示するように前記第２のプリントキューを変更する変更手段と、を有し、
前記表示部は前記変更手段が変更する前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を表示することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
第１のプリントキューを作成する通常作成工程と、
前記通常作成工程の作成する前記第１のプリントキューに対応するプリンタードライバーが動作することにより第２のプリントキューを作成する仮想作成工程と、を有し、
プリンターに関する情報であるプリンター情報を表示する表示部は、前記通常作成工程が作成する前記第１のプリントキューに対応するプリンターのプリンター情報を表示し、前記仮想作成工程が作成する前記第２のプリントキューに対応するプリンターのプリンター情報を表示しないことを特徴とする制御方法。
【請求項６】
前記仮想作成工程は前記第２のプリントキューのアクセス権に関する情報であるアクセス権情報を特定のアクセス権に設定し、前記表示部は前記第２のプリントキューの前記特定のアクセス権を有していないことにより前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を表示しないことを特徴とする請求項５に記載の制御方法。
【請求項７】
前記特定のアクセス権で動作して前記第２のプリントキューに対応する前記プリンターを用いて印刷する指示を受け付ける印刷受付工程と、を有することを特徴とする請求項６に記載の制御方法。
【請求項８】
プリントキューに対応するプリンターのプリンター情報を前記表示部に表示させる指示を受け付ける受付工程と、
前記受付工程が前記指示を受け付けることにより前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を前記表示部が表示するように前記第２のプリントキューを変更する変更工程と、を有し、
前記表示部は前記変更工程が変更する前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を表示することを特徴とする請求項５乃至７のいずれか１項に記載の制御方法。
【請求項９】
コンピュータを
第１のプリントキューを作成する通常作成手段、
前記通常作成手段の作成する前記第１のプリントキューに対応するプリンタードライバーが動作することにより第２のプリントキューを作成する仮想作成手段、として機能させ、
プリンターに関する情報であるプリンター情報を表示する表示部は、前記通常作成手段が作成する前記第１のプリントキューに対応するプリンターのプリンター情報を表示し、前記仮想作成手段が作成する前記第２のプリントキューに対応するプリンターのプリンター情報を表示しないことを特徴とするプログラム。
【請求項１０】
前記仮想作成手段は前記第２のプリントキューのアクセス権に関する情報であるアクセス権情報を特定のアクセス権に設定し、前記表示部は前記第２のプリントキューの前記特定のアクセス権を有していないことにより前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を表示しないことを特徴とする請求項９に記載のプログラム。
【請求項１１】
コンピュータを、
前記特定のアクセス権で動作して前記第２のプリントキューに対応する前記プリンターを用いて印刷する指示を受け付ける印刷受付手段、として機能させることを特徴とする請求項１０に記載のプログラム。
【請求項１２】
コンピュータを、
プリントキューに対応するプリンターのプリンター情報を前記表示部に表示させる指示を受け付ける受付手段、
前記受付手段が前記指示を受け付けることにより前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を前記表示部が表示するように前記第２のプリントキューを変更する変更手段、として機能させ、
前記表示部は前記変更手段が変更する前記第２のプリントキューに対応する前記プリンターの前記プリンター情報を表示することを特徴とする請求項９乃至１１のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリントキューに対応するプリンター情報の表示を制御する技術に関するものである。
【背景技術】
【０００２】
情報処理装置からプリンターを利用するには、一般的にそのプリンターに対応した特定のプリンタードライバーを情報処理装置にインストールする必要がある。
従来、ユーザーが利用するプリンターが複数台ある場合には、その台数分だけプリンタードライバーを情報処理装置にインストールしていた。しかし、ユーザーはプリンターのＩＰアドレスを調べる、対応するプリンタードライバーを探す等のインストールのための面倒な作業を強いられてきた。
そこで近年、この面倒な作業を効率化するための技術が考案されている。
例えば特許文献１には、仮想プリンタードライバーで印刷文書を中間データとしてスプールし、出力プリンターに対応する専用プリンタードライバーを自動的にインストールし、中間データを専用プリンタードライバーで印刷する技術の開示がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−７６２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、まだ専用プリンタードライバーをインストールしていないプリンターを用いて印刷を行うたびに、専用プリンタードライバーに対応するプリントキューを自動的に作成する。
【０００５】
しかしながら、印刷を行ったプリンターの数だけプリントキューが作成されると、ユーザーが選択可能なプリンターを含む出力先の選択肢が増える。よって、ユーザーが出力先を選択する際に、いずれの出力先を選べば良いかわかりにくくなってしまい、作業効率が落ちてしまうという課題があった。
【０００６】
例えば、特許文献１の技術を適用した携帯可能な情報処理装置を用いて、ユーザーが情報処理装置を携帯して移動することにより、ユーザーが印刷するプリンターを変更して印刷を行うとする。この場合、自動作成されるプリントキューの数は新たなプリンターで印刷する度に増え、上記課題が顕著である。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明に係る情報処理装置は、
第１のプリントキューを作成する通常作成手段と、
前記通常作成手段の作成する前記第１のプリントキューに対応するプリンタードライバーが動作することにより第２のプリントキューを作成する仮想作成手段と、を有し、
プリンターに関する情報であるプリンター情報を表示する表示部は、前記通常作成手段が作成する前記第１のプリントキューに対応するプリンターのプリンター情報を表示し、前記仮想作成手段が作成する前記第２のプリントキューに対応するプリンターのプリンター情報を表示しないことを特徴とする。
【発明の効果】
【０００８】
本発明はプリントキューに対応するプリンター情報の表示を制御することで、ユーザーに作業効率の高い印刷環境を提供する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態におけるシステムの構成図およびホストコンピューターならびにプリンター内部の装置構成を示すブロック図
【図２】プリンタードライバー、プリントキュー、ポートの各情報とそれらの関連を表す図
【図３】第１の実施形態における第１のインストール処理のフローチャート
【図４】第１の実施形態における印刷処理のデータフロー図
【図５】第１の実施形態における印刷処理のシーケンス図
【図６】第１の実施形態におけるアプリケーションおよびプリントジョブマネージャーのユーザーインターフェース例を表す図
【図７】第１の実施形態における第２のインストール処理のフローチャート
【図８】第１の実施形態におけるユーザー、グループ、ならびにプリントキューの構成情報の例を示す図
【図９】第１の実施形態におけるプリンターリスト表示処理のフローチャート
【図１０】第２の実施形態におけるシステムの構成図ならびに認証ユニットの装置構成を示すブロック図
【図１１】第２の実施形態における認証ユニットが記憶する組み合わせ情報の例を表す図
【図１２】第２の実施形態における印刷処理のシーケンス図
【図１３】第３の実施形態における管理ユーティリティのユーザーインターフェース例を表す図
【図１４】第３の実施形態における管理ユーティリティのフローチャート
【発明を実施するための形態】
【００１０】
［第１の実施形態］
以下、本発明を実施するための第１の実施形態について図面を用いて説明する。
【００１１】
（システムの構成図）
図１（ａ）は、本発明の実施形態に係るネットワークシステムの概略を示すブロック図である。このネットワークシステムは、ホストコンピューター１０１と、このホストコンピューター１０１より印刷データを受信して印刷を行なう複数のプリンター（１０２ａ，１０２ｂ，…）などの周辺機器等を備える。これらはネットワーク１０４を介して接続されている。
【００１２】
図１（ｂ）は、図１（ａ）のホストコンピューター１０１とプリンター１０２の装置構成を示すブロック図である。
【００１３】
（ホストコンピューターの装置構成）
ホストコンピューター１０１は、一般的なパーソナルコンピューターなどを含む情報処理装置である。
【００１４】
ＣＰＵ１１１は、ＲＡＭ１１２に記憶されているプログラムに従って、システムバス１１４に接続される各デバイスを総括的に制御している。
【００１５】
ＲＡＭ１１２は、ＣＰＵ１１１の主メモリ、ワークエリア等としても機能している。
【００１６】
ＲＯＭ１１３は、各種プログラム及びデータを格納している。具体的には各種フォントを記憶するフォントＲＯＭ（１１３ａ）、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ（１１３ｂ）、各種データを記憶するデータＲＯＭ（１１３ｃ）に区分けして構成されている。
【００１７】
キーボードコントローラＩ／Ｆ１１５は、キーボードやポインティングデバイス（マウス）１１９からのキー入力を制御する。
【００１８】
ディスプレイＩ／Ｆ１１６は、ディスプレイ１２０への表示を制御している。
【００１９】
外部メモリＩ／Ｆ１１７は、例えばハードディスク（ＨＤ）、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ（ＳＳＤ）等の外部メモリ１２１とのアクセスを制御する。
【００２０】
外部メモリ１２１は、オペレーティングシステムプログラム（以下、ＯＳ）１２２をはじめ各種印刷用アプリケーション１２３、印刷処理関連プログラム１２４を含む。さらに、ユーザファイル、編集ファイル等１４４を記憶するコンピューターが読み取り可能な記憶媒体としても機能する。
【００２１】
なお、ここではＯＳ１２２としてＭｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）を使用するものとする。
【００２２】
加えて、ＣＰＵ１０４が外部メモリ１２１に記憶されているプログラムに基づき処理を実行することによって、図５の一部に示されるようなホストコンピューター１０１のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
【００２３】
印刷処理関連プログラム１２４は、インストーラー１２５、プリントジョブマネージャー１２６、認証ジョブマネージャー１２７を含む。さらに仮想プリンタードライバー１２８、専用プリンタードライバー１２９、プリンターリストプログラム１３０、管理ユーティリティ１３１を含んでいる。
【００２４】
ここで、仮想プリンタードライバー１２８というのは、プリンター１０２に対して直接的ではなく間接的に印刷を実行するために利用されるプログラムである。
【００２５】
プリンター１０２に対して間接的に用いられるプログラムであるため「仮想」と呼称しているが、仮想プリンタードライバー１２８はＯＳ１２２上では一般的なプリンタードライバーとして登録される。よって、ユーザーは通常の印刷作業手順に近い感覚で作業を行うことができる。
【００２６】
一方の専用プリンタードライバー１２９は、直接的に印刷するために用いられる、従来からあるプリンタードライバーである。
【００２７】
専用プリンタードライバー１２９としては、プリンター１０２ａ、１０２ｂの各モデルが持つ機能を最大限利用できるものをそれぞれ用意しても良いし、いずれのモデルにも共通の機能のみを利用できる汎用的な種類のものだけを用意しても良い。
【００２８】
ネットワークＩ／Ｆ１１８は、ネットワーク１０４を介してプリンター１０２に接続され、プリンター１０２との間で通信制御処理を行なう。
【００２９】
（プリンターの装置構成）
次にプリンター１０２の構成について説明する。
【００３０】
ＣＰＵ１３２は、プリンター１０２の全体の動作を制御している。
【００３１】
ＲＡＭ１３９は、ＣＰＵ１３２の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。
【００３２】
またこのＲＡＭ１３９は、ＮＶＲＡＭ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  ＲＡＭ：不揮発性ＲＡＭ）領域も備えており、増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００３３】
ＲＯＭ１３３は、各種フォントを記憶するフォントＲＯＭ１３３ａ、ＣＰＵ１３２により実行される制御プログラム等を記憶するプログラムＲＯＭ１３３ｂ、及び各種データを記憶するデータＲＯＭ１３３ｃを備えている。
【００３４】
ネットワークＩ／Ｆ１３８は、ホストコンピューター１０１との間でデータの送受信を行なう。印刷部Ｉ／Ｆ１３６は、プリンタエンジンである印刷部１３７とのインターフェースを制御している。
【００３５】
外部メモリ１３４は、外部メモリＩ／Ｆ１４０によりアクセスが制御されている。さらにオプションとして接続されるハードディスク（ＨＤ）、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ（ＳＳＤ）等を含んでおり、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【００３６】
なお、ハードディスク等の外部メモリ１３４が接続されていない場合には、ＲＯＭ１３３のデータＲＯＭ１３３ｃに、ホストコンピューター１０１で利用される情報等を記憶することになる。
【００３７】
なお、この外部メモリ１３４は１個に限らず複数備えるものであってもよい。例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンター制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【００３８】
操作部１４２には、ユーザーによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている。
【００３９】
また、ＮＶＲＡＭに操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。
【００４０】
ＣＰＵ１３２は、ＲＯＭ１３３のプログラムＲＯＭ１３３ｂに記憶された制御プログラム等に基づき、印刷部Ｉ／Ｆ１３６を介して印刷部１３７に出力情報としての画像信号を出力する。
【００４１】
また、ＣＰＵ１３２はネットワークＩ／Ｆ１３８を介してホストコンピューター１０１との通信処理が可能となっている。またホストコンピューター１０１から送信される印刷データを受信すると共に、プリンター１０２内の情報等をホストコンピューター１０１に通知可能に構成されている。
【００４２】
（プリンタードライバー、プリントキュー、ポートの各情報とそれらの関係）
図２は、プリンタードライバーとプリントキューとポートの各情報とそれらの関係を説明した図である。
【００４３】
図はＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）のオブジェクト図を使って表現している。
【００４４】
ＯＳ１２２は、ユーザーが容易にプリンタードライバーをインストールしたり、ドキュメントを印刷したりできるよう、プリンタードライバー２０、プリントキュー２１、ポート２２という３種類のオブジェクトを管理している。
これらのオブジェクトはＯＳ１２２が、情報として外部メモリ１２１上に記憶させ、アプリケーション１２３などのプログラムからアクセスできるよう管理している。
【００４５】
プリンタードライバー２０は、インストールされた仮想プリンタードライバー１２８および専用プリンタードライバー１２９を指すオブジェクトである。
プリンタードライバー２０はモデルごとに管理されるため、モデルが異なれば別のオブジェクトとなる。
【００４６】
プリントキュー２１は、アプリケーション１２３から印刷する際の印刷対象オブジェクトである。またプリントキュー２１は、プリンタードライバー２０に関連付けられて管理される。なお、ひとつのプリンタードライバー２０に対して、複数のプリントキュー２１を関連付けることができる。
ポート２２は出力先を特定するオブジェクトである。
【００４７】
通常はひとつのプリントキュー２１に対してひとつのポート２２が関連付けられて管理される。
【００４８】
例えば、オフィスにＤｅｖｉｃｅ  Ｍｏｄｅｌ  Ａというプリンターを３台導入した場合、Ｄｅｖｉｃｅ  Ｍｏｄｅｌ  Ａに対応した専用プリンタードライバー１２９をインストールする。そしてインストールしたプリンタードライバー２０を１つ、プリントキュー２１を３つ、ポート２２を３つ作成して互いに関連付けるのが典型的な構成となる。
【００４９】
各オブジェクトはそれぞれプリンタードライバー構成情報２０１、プリントキュー構成情報２１１、ポート構成情報２２１を保持している。
【００５０】
プリンタードライバー構成情報２０１は、モデル名、ドライバーバージョン、ハードウェア情報、ドライバーモジュール名、等から構成される。
【００５１】
プリントキュー構成情報２１１は、プリントキュー名、プリンタードライバー名、ポート名、印刷設定情報、アクセス権情報等から構成される。
【００５２】
ポート構成情報２２１は、ポート名、アドレス情報（ＩＰアドレス等）、ポートモジュール名、等から構成される。
【００５３】
（インストール処理のフローチャート）
図３は、インストーラー１２５による本実施形態に係るインストール処理を説明するフローチャートである。
【００５４】
ユーザーは本実施形態に係る印刷システムを利用する前準備を行う。具体的には利用するホストコンピューター１０１のＯＳ１２２上にインストーラー１２５を用いて、仮想プリンタードライバー１２８、プリントジョブマネージャー１２６、専用プリンタードライバー１２９のインストール処理、および関連する処理を行う。
【００５５】
本実施形態では、Ｓ１００〜Ｓ１０７を第１のインストール処理と呼ぶ。
【００５６】
まず、インストーラー１２５は、ダミーポートを作成し（Ｓ１０１）、仮想プリンタードライバー１２８をインストールし（Ｓ１０２）、ダミーポートに関連付けて仮想プリンタードライバーのプリントキューの作成をＯＳ１２２に指示する（Ｓ１０３）。
【００５７】
なお、以降、本明細書ではプリントキューの作成をＯＳ１２２に指示することを、プリントキューを作成すると表現する。
【００５８】
ここでダミーポートとは実際の印刷データ出力を行わない偽のポート２２を意味する。
【００５９】
後述するが、仮想プリンタードライバー１２８はその特徴として自らが生成する印刷用の中間データをプリントジョブマネージャー１２６に出力する。
【００６０】
したがって仮想プリンタードライバー１２８はポートを通じた出力を行わないのだが、ＯＳ１２２の管理上、プリントキュー２１には１つ以上のポートを関連付ける必要があるため、どこへも出力を行わないダミーポートを関連付ける。
【００６１】
次に、インストーラー１２５は、プリントジョブマネージャー１２６をインストールする（Ｓ１０４）。
【００６２】
プリントジョブマネージャー１２６と仮想プリンタードライバー１２８は互いに不可分の関係にあるため、プリントジョブマネージャー１２６のインストールはＳ１０２の内部処理として実行しても良い。
【００６３】
次に、インストーラー１２５は、専用プリンタードライバー１２９をインストールする（Ｓ１０５）。
【００６４】
プリンター１０２ａ、１０２ｂの各モデル用にそれぞれ専用プリンタードライバー１２９を用意した場合は、用意した専用プリンタードライバーをすべてインストールする。
【００６５】
ここでは、専用プリンタードライバー１２９をインストールしてＯＳ１２２上にプリンタードライバー２０を作成するにとどめる。
【００６６】
専用プリンタードライバー１２９に関連付けるプリントキュー２１やポート２２の作成は、後述する第２のインストール処理で行う。
【００６７】
最後に、インストーラー１２５は、特殊ユーザーをＯＳ１２２に作成する（Ｓ１０６）。
【００６８】
特殊ユーザーとは後述するプリントジョブマネージャー１２６による第２のインストール処理や印刷処理において一時的に権限偽装（ｉｍｐｅｒｓｏｎａｔｅ）するために使用するユーザーオブジェクトである。
【００６９】
本実施例ではこの特殊ユーザーのユーザーオブジェクトにｐｒｉｎｔｕｓｅｒという名前を付けたものとする。
以上で、第１のインストール処理が終了する（Ｓ１０７）。
【００７０】
（印刷処理のデータフロー図）
図４は本実施形態に係る印刷処理のデータフロー図である。
【００７１】
本図を用いて、印刷処理関連プログラムの間でどのような入出力が行われるか明らかにする。
【００７２】
アプリケーション１２３は仮想プリンタードライバー１２８に対して、ＯＳ１２２の提供する描画インターフェースであるＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）４００を通じて印刷指示命令を出力する。
次に仮想プリンタードライバー１２８は、入力された印刷指示命令をＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅ）４０１の形式に変換してプリントジョブマネージャー１２６に出力する。
【００７３】
ここでＥＭＦ４０１とは、ＧＤＩ４００の印刷指示命令と互換性のある中間データ形式であり、アプリケーション１２３から出力された一連の印刷指示命令を再現可能なデータとして記録したものである。
【００７４】
本実施形態では中間データ形式としてＥＭＦ４０１を用いて説明している。しかし、印刷指示命令を再現可能なデータであれば、例えばＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）、あるいは独自に定義した任意の形式であっても良い。
【００７５】
次にプリントジョブマネージャー１２６は、後述する第２のインストール処理などを行い、ＧＤＩ４００を通じて印刷指示命令を出力する。
【００７６】
出力された印刷指示命令は、専用プリンタードライバー１２９に対して入力される。
【００７７】
次に、専用プリンタードライバー１２９は、プリンター１０２が処理可能なＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）４０２の形式に変換し、印刷ジョブとしてプリンター１０２に出力する。
【００７８】
最後にプリンター１０２は、入力された印刷ジョブを処理して印刷出力を行う。
【００７９】
（印刷処理のシーケンス図）
図５は本実施形態に係る印刷処理のシーケンス図である。
【００８０】
本図を用いて、一連の印刷処理中に関連プログラムの各コンポーネントの内部、およびそれらの間でどのような処理が行われているか明らかにする。
【００８１】
なお、印刷処理はすべて後述するｕｓｅｒ０１のユーザー権限下で実行されるものとする。
【００８２】
まず、ユーザーはアプリケーション１２３に対して印刷したいドキュメントの印刷指示を図６（ａ）で示すユーザーインターフェース（ＵＩ）６０００を通じて入力する（Ｓ２００）。
【００８３】
ＵＩ６０００はプリンターリストプログラム１３０によって表示される。プリンターリストプログラム１３０は表示部として機能することによって、これを実現する。
【００８４】
６００４に表示されている６００１と６００２はプリンターに関する情報、すなわちプリンター情報である。他にも６００４にはユーザーが選択可能な出力先が表示される。出力先としては例えばＰＤＦを作成するＰＤＦライターなどが挙げられる。
【００８５】
なお、本明細書ではプリンター情報もプリントキューと表現する。
【００８６】
６００１は仮想プリンタードライバー１２８に関連付けられたプリントキューであり、６００２は専用プリンタードライバー１２９に関連付けられたプリントキューである。
【００８７】
専用プリンタードライバー１２９のプリントキュー６００２は、前記第１のインストール処理では作成されないので、専用プリンタードライバー１２９のインストール後に本実施例の係る処理とは別の操作でユーザーが作成作業を行ったものである。
【００８８】
ここでは仮想プリンタードライバーを通じて出力を行うため、ユーザーは６００１のプリントキューを選択し、印刷ボタン６００３を押して、印刷を指示する。
【００８９】
次に、アプリケーション１２３は、仮想プリンタードライバー１２８に対して、印刷初期化処理を行う（Ｓ２０１）。
【００９０】
仮想プリンタードライバー１２８は印刷初期化が行われるとプリントジョブマネージャー１２６の起動処理を行う（Ｓ２０２）。
【００９１】
プリントジョブマネージャー１２６は、このように仮想プリンタードライバー１２８の印刷処理開始後に起動されるプログラムであり、後述するプリンターの特定、第２のインストール処理、専用プリンタードライバー１２９への印刷実行など固有の処理を担う。
【００９２】
また、プリントジョブマネージャー１２６は内部的なコンポーネントとして、プリンター特定部１２６１、プリンタードライバー管理部１２６２、デスプール処理部１２６３を含む。
【００９３】
次に、アプリケーション１２３はプリントジョブマネージャー１２６が起動されると、仮想プリンタードライバー１２８に対して印刷を開始し、一連の印刷描画命令をＧＤＩ４００により出力する（Ｓ２０３）。
【００９４】
仮想プリンタードライバー１２８は、入力された一連の印刷描画命令をＥＭＦ４０１形式に変換し、後段の処理で印刷描画命令を再現できるよう外部メモリ１２１に保存する。
【００９５】
これをスプール処理と呼ぶ（Ｓ２０４）。
【００９６】
アプリケーション１２３は一連の印刷描画命令の最後に印刷終了の処理を行い（Ｓ２０５）、仮想プリンタードライバー１２８は、保存されたＥＭＦ４０１の外部メモリ１２１におけるファイルパスをプリントジョブマネージャー１２６に通知する（Ｓ２０６）。
【００９７】
なお、Ｓ２０４は、外部メモリ１２１に対してスプール処理を実施するが、外部メモリ１２１を介さずプリントジョブマネージャー１２６へ直接スプール処理してもかまわない。
【００９８】
次に、プリンター特定部１２６１は、プリンターの検索を行う（Ｓ２０７）。
【００９９】
ここで検索とは、ネットワーク１０４に接続されたプリンター１０２ａや１０２ｂと通信し、それらの名称、設置場所、ＩＰアドレス、ハードウェア情報といった情報を取得することを指す。
【０１００】
ハードウェア情報としては、プリンターの機種情報や製造元であるベンダー情報などが含まれる。
【０１０１】
通信手段としては公知の技術であるＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）やＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｏｎ  Ｄｅｖｉｃｅｓ）などのプロトコルを使用する。
【０１０２】
通常、プリンター１０２ａや１０２ｂの状態、すなわち電源が入っているか、ネットワーク１０４に接続されているかを事前に把握しないため、プリンター特定部１２６１は印刷指示の都度、すべてのプリンターとの通信を試みる。
【０１０３】
ネットワーク内のすべての装置との通信には、これも公知の技術であるブロードキャストという手段を用いる。
【０１０４】
プリンター特定部１２６１がこのブロードキャストの方法で、ネットワークＩ／Ｆ１１８を通じてＳＮＭＰの情報取得用データを送信すると、ネットワーク１０４で到達可能なすべてのプリンター１０２が情報取得用データを受信する。そして、各プリンター１０２が取得対象として指定されたプリンターの名称や設置場所などの情報を応答のデータとしてネットワークＩ／Ｆ１３８を通じて送信すると、プリンター特定部１２６１は順次それらの応答を受信する。そして、受信した情報をＲＡＭ１１２に保存する。
【０１０５】
プリンター特定部１２６１は、受信した応答からプリンター名や設置場所などの情報を取り出し、図６（ｂ）のようなプリンターリストとしてＵＩ６１００に表示する（Ｓ２０８）。
【０１０６】
ＵＩ６１００には情報を表示するためのリストコントロール６１０１が配置され、その中からひとつをカーソル６１０２によって、プリンターを選択することができる。
【０１０７】
ボタン６１０３を押すと、ネットワーク１０４内で再検索が行われ、利用可能なプリンターのリストを最新の状態に更新できる。
【０１０８】
ボタン６１０４を押すと、カーソル６１０２で現在選択されているプリンターが出力先として決定される（Ｓ２０９）。
【０１０９】
プリンター特定部１２６１は、Ｓ２０９での出力先の決定を受け、次の処理に移る。
【０１１０】
出力先のプリンターが決定されて次へボタンが押下されると（Ｓ２０９）、プリンター特定部１２６１はプリンタードライバー管理部１２６２に対して第２のインストール処理を実行するよう依頼する（Ｓ２１０）。
【０１１１】
ここで、図５のシーケンス図の説明をいったん中断し、第２のインストール処理の詳細について図６、７を用いて説明する。
【０１１２】
（第２のインストール処理のフローチャート）
図７は第２のインストール処理を説明するフローチャートである。
【０１１３】
本処理は、Ｓ２０９でユーザーにより選択されたプリンターへ印刷要求するためのプリントキューが既にあればそれを選択し、なければ新しいプリントキューを作成する。
【０１１４】
さらに、ユーザーの印刷出力先選択の作業を妨げないよう、新たにプリントキューが作成された場合は特定のアクセス権情報を設定して見えないようにする。
【０１１５】
ドライバー管理部１２６２は、第２のインストール処理が開始して（Ｓ３００）、プリンター１０２のアドレス情報（たとえば、ＩＰアドレス）を取得する（Ｓ３０１）。
【０１１６】
アドレス情報はプリンターの検索処理Ｓ２０７において取得されＲＡＭ１１２に記憶されているものを取り出す。
【０１１７】
次に、ドライバー管理部１２６２は、ＯＳ１２２に登録されているすべてのプリントキューからプリントキューに関連付けられているポートのアドレス情報を取得する（Ｓ３０２〜Ｓ３０４）。
【０１１８】
Ｓ３０２〜Ｓ３０４のステップは、各プリントキューに関し、プリントキュー構成情報２１１に含まれるポート情報から関連付けられたポートを特定し、特定されたポートのポート構成情報２２１に含まれるアドレス情報を取り出す。
【０１１９】
次に、ドライバー管理部１２６２は、Ｓ２０９でユーザーにより選択された出力先となるプリンターのアドレス情報と、ポートのアドレス情報が合致するプリントキューが存在するかどうか判断する（Ｓ３０５）。
【０１２０】
ドライバー管理部１２６２は、合致するプリントキューが存在すれば、新たにプリントキューを作成する必要がないのでそのプリントキューを印刷要求する対象として選択し（Ｓ３０６）、第２のインストール処理を終了する（Ｓ３１３）
ドライバー管理部１２６２は、合致するプリントキューが存在しない場合、プリンターのハードウェア情報を取得する（Ｓ３０７）。
【０１２１】
本実施形態ではハードウェア情報として、プラグアンドプレイインストールに用いられるハードウェア情報を取得する。
【０１２２】
ハードウェア情報はプリンターの検索処理Ｓ２０７において取得されＲＡＭ１１２に記憶されているものを取り出す。
【０１２３】
次に、ドライバー管理部１２６２は、第１のインストール処理でインストールした専用プリンタードライバー１２９の中から、出力先となるプリンターのハードウェア情報に適合するものを決定する（Ｓ３０８）。
【０１２４】
Ｓ３０８は、各プリンタードライバーに関し、プリンタードライバー構成情報２０１に含まれるハードウェア情報を取り出し、出力先となるプリンターのハードウェア情報と比較して一致するものを選択する。
【０１２５】
本実施例で用いられるハードウェア情報はプラグアンドプレイの文字列情報であり、その文字列が一致すればハードウェア情報が一致したことと同意となる。
【０１２６】
本実施例では、Ｓ１０５でプリンター１０２ａ、１０２ｂ、．．．のすべてに対応する専用プリンタードライバー１２９をあらかじめ第１のインストール手段でＯＳ１２２に組み込んでおくことを前提にしている。
【０１２７】
ここでもし仮にＳ１０５ですべてのプリンタードライバーをインストールしない場合、特許文献１に言及されている方法を用いて、汎用的なプリンタードライバーを併用するか、外部のサーバーから適合するプリンタードライバーを取得する等の処理をしても良い。
【０１２８】
次に、アドレス情報を元にプリンター１０２へ出力するためのポートを作成し（Ｓ３０９）、Ｓ３０８で決定されたプリンタードライバーのプリントキューを作成してポートを関連付ける（Ｓ３１０）。
【０１２９】
次に、作成したプリントキューのプリントキュー構成情報２０１に含まれるアクセス権情報を特殊ユーザー以外アクセスできないように設定して（Ｓ３１１）、出力先として選択して（Ｓ３１２）、第２のインストール処理を終了する（Ｓ３１３）。
【０１３０】
なお、Ｓ３１１のアクセス権情報の設定方法は、ＯＳが提供する初期値を変更する方法であってもよいし、最初から特殊ユーザー以外アクセスできないアクセス権を設定する方法であってもよい。
【０１３１】
（ユーザー、グループ、ならびにプリントキューの構成情報の例）
ここで、図８、図９を用いて、Ｓ３１１の特殊ユーザー以外アクセスできないようプリントキューのアクセス権情報を設定する処理について説明する。
【０１３２】
図８は、ＯＳ１２２におけるユーザーオブジェクト、グループオブジェクト、ならびにプリントキューのアクセス権情報の例を示したものである。
【０１３３】
図８（ａ）はＯＳ１２２に登録されているユーザーオブジェクトの例である。
【０１３４】
ここではユーザーオブジェクトとして、ｕｓｅｒ０１、ｕｓｅｒ０２、ｐｒｉｎｔｕｓｅｒの３つが存在する。
【０１３５】
このうち、ｐｒｉｎｔｕｓｅｒは第１のインストール処理で作成する特殊ユーザーのオブジェクトである。
【０１３６】
ＯＳ１２２上のプログラムは、必ずいずれかのユーザーオブジェクトの権限下で実行される。
【０１３７】
本実施例の場合、アプリケーション１２３はｕｓｅｒ０１の権限下で実行されており、アプリケーション１２３によって起動された仮想プリンタードライバー１２８、さらにプリントジョブマネージャーもｕｓｅｒ０１の権限下で実行される。
【０１３８】
図８（ｂ）はＯＳ１２２に登録されているグループオブジェクトの例である。
【０１３９】
グループオブジェクトはユーザーオブジェクトと同列のオブジェクトである。しかし、ユーザーオブジェクトとグループオブジェクトを関連付けることにより、どのユーザーオブジェクトがどのグループオブジェクトに属しているかという情報をＯＳ１２２で管理できるようになる。
【０１４０】
ここではグループオブジェクトとして、ｅｖｅｒｙｏｎｅ、ａｄｍｉｎｉｓｔｒａｔｏｒｓの２つが存在する。
【０１４１】
ｅｖｅｒｙｏｎｅはすべてのユーザーオブジェクト（ｕｓｅｒ０１、ｕｓｅｒ０２、ｐｒｉｎｔｕｓｅｒ）が所属するグループオブジェクトである。
【０１４２】
ａｄｍｉｎｉｓｔｒａｔｏｒｓは管理者権限を持ったユーザーオブジェクト（ｕｓｅｒ０１、ｐｒｉｎｔｕｓｅｒ）が所属するグループオブジェクトである。
【０１４３】
図８（ｃ）はＯＳ１２２に登録されているプリントキューの例である。
【０１４４】
Ｖｉｒｔｕａｌ  Ｐｒｉｎｔｅｒ、Ｐｒｉｎｔｅｒ  Ａは図６では６００１、６００２でそれぞれ表現されている仮想プリンタードライバー１２８および専用プリンタードライバー１２９のプリントキューである。
【０１４５】
Ｃｒｅａｔｅｄ  Ｐｒｉｎｔｅｒ  Ｂは第２のインストール処理のＳ３１０で作成されたプリントキューである。
【０１４６】
各プリントキューはプリントキュー構成情報２１１を保持しており、図８（ｃ）にはそのひとつであるアクセス権情報を示した。
【０１４７】
プリントキュー構成情報２１１におけるアクセス権情報とは、プログラムがどのユーザー権限下で実行されているかによって、プリントキューに対する操作を許可するか拒否するかを決定するための情報である。
【０１４８】
アクセス権情報はユーザーオブジェクトまたはグループオブジェクトのリストで表現される。
【０１４９】
例えばＶｉｒｔｕａｌ  Ｐｒｉｎｔｅｒのアクセス権情報にはｅｖｅｒｙｏｎｅが設定されている。
【０１５０】
これはｅｖｅｒｙｏｎｅグループオブジェクトに属するユーザー権限下でプログラムを実行している場合、Ｖｉｒｕｔｕａｌ  Ｐｒｉｎｔｅｒへのアクセスが可能という意味である。
【０１５１】
ｅｖｅｒｙｏｎｅグループオブジェクトにはすべてのユーザーオブジェクトが属しているので、つまり全ユーザー権限下のプログラムがＶｉｒｕｔｕａｌ  Ｐｒｉｎｔｅｒを使った印刷処理を行うことができる。
【０１５２】
次のＰｒｉｎｔｅｒ  Ａは、ｕｓｅｒ０１の権限下で、本実施例の係る処理とは別に作成されたプリントキューであるが、アクセス権情報にはｅｖｅｒｙｏｎｅグループオブジェクトが設定されているので、これも全ユーザーオブジェクトが利用可能である。
【０１５３】
最後のＣｒｅａｔｅｄ  Ｐｒｉｎｔｅｒ  Ｂは第２のインストール処理中のＳ３１０で作成されたプリントキューであるが、プリンタードライバー管理部１２８２は、アクセス権情報には特殊ユーザーであるｐｒｉｎｔｕｓｅｒを設定する。
【０１５４】
すなわち、Ｓ３１０で作成したプリントキューがＣｒｅａｔｅｄ  Ｐｒｉｎｔｅｒ  Ｂであるとすると前述のＳ３１１の処理はＣｒｅａｔｅｄ  Ｐｒｉｎｔｅｒ  Ｂのアクセス権にｐｒｉｎｔｕｓｅｒを設定することである。
【０１５５】
Ｓ３１１により、ＯＳ１２２はｐｒｉｎｔｕｓｅｒ権限で実行されたプログラムのみＣｒｅａｔｅｄ  Ｐｒｉｎｔｅｒ  Ｂへのアクセスを許可し、それ以外のユーザーオブジェクト（例えばｕｓｅｒ０１も）のプログラムは拒否するようふるまうことになる。
【０１５６】
Ｓ３１１のアクセス権情報の設定によって影響を受けるのが、前述のＵＩ６０００を表示したプリンターリストプログラム１３０である。以降、具体的なプリンターリストプログラム３００の処理を説明する。
【０１５７】
なお、プリンターリストプログラム１３０はＯＳ１２２に組み込まれていても良いし、ＯＳ１２２上で動くＯＳ１２２とは異なるプログラムであってもよい。
【０１５８】
（プリンターリスト表示処理のフローチャート）
図９は本実施例に係るプリンターリスト表示処理を説明するフローチャートである。
【０１５９】
本実施形態の印刷処理Ｓ２００において、アプリケーション１２３は、ユーザーからの印刷指示を受けて、プリンターリストプログラム１３０を起動する。
【０１６０】
起動されると、プリンターリストプログラム１３０はＵＩ６０００にプリンターのプリントキューを表示するプリンターリスト表示処理を開始する（Ｓ４００）。
【０１６１】
まず、プリンターリストプログラム１３０は、プログラムを呼び出したユーザーオブジェクトの情報を取得する（Ｓ４０１）。
【０１６２】
本実施形態の印刷処理はｕｓｅｒ０１の権限下で実行されるので、Ｓ４０１によって取得されるユーザーオブジェクト情報はｕｓｅｒ０１となる。
【０１６３】
次に、プリンターリストプログラム１３０は、ＯＳ１２２に登録されているすべてのプリントキューに関して、処理を繰り返す（Ｓ４０２〜Ｓ４０６）。
【０１６４】
すなわち、プリントキューのプリントキュー構成情報２１１のアクセス権情報を取得し、Ｓ４０１で取得したユーザーオブジェクトがアクセス可能かどうかを判断する（Ｓ４０３）。
【０１６５】
アクセス権がある場合はＳ４０４に進んでプリンターのプリンター情報をリストに表示し、そうでなければ表示しない（Ｓ４０５）。
【０１６６】
すべてのプリントキューについて繰り返したら処理を終了する（Ｓ４０７）。
【０１６７】
以上、第２のインストール処理によって、特殊ユーザーのみアクセス可能なプリントキューが作成された場合に、再び本実施形態の印刷処理を実行しても、ＵＩ６０００には作成されたプリントキューに対応するプリンター情報は表示されない。
【０１６８】
いわば、「見えないプリントキュー」がＯＳ１２２に作成され登録された状態となっており、本発明の課題であった、プリントキューの数が多すぎることによりユーザーが出力先の選択を困難に感じてしまう状態を回避できることになる。
【０１６９】
以上で図８、図９の説明を終わり、再び図５に戻ってＳ２１２以降の処理を説明する。Ｓ２１２以降の説明で肝要な点は、特殊ユーザー以外アクセスできないプリントキューにいかに印刷指示を行うかである。
【０１７０】
プリンター特定部１２６１は、第２のインストール処理が終了すると、プリンターリストのＵＩ６１００から、デスプール処理部１２６３が有する図６（ｃ）の画面６２００に遷移する（Ｓ２１２）。
【０１７１】
遷移すると、デスプール処理部１２６３は、プレビューエリア６２０１に印刷ドキュメントを実際に印刷したときのイメージを表示する（Ｓ２１３）。
このとき表示されるイメージは、Ｓ２０４においてスプールされたＥＭＦ４０１をデスプール処理部１２６３が読み込み、解析して、プレビューエリア６２０１の大きさに合わせて描画したものである。
【０１７２】
次に、デスプール処理部１２６３は、ユーザーによってボタン６２０４が押される入力を受けて、権限偽装を行ってから（Ｓ２１５）、デスプール処理を行う（Ｓ２１６）。
【０１７３】
ここで、権限偽装とは、プログラムの実行権限を一時的にあるユーザーオブジェクトから別のユーザーオブジェクトへ変更する処理を意味する。
【０１７４】
例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）において権限偽装の処理は、まずＬｏｇｏｎＵｓｅｒというＡＰＩでユーザートークンを取得する。さらにそのユーザートークンをＩｍｐｅｒｓｏｎａｔｅＬｏｇｇｅｄＯｎＵｓｅｒというＡＰＩに指定することで実現される。
【０１７５】
本実施例においてはｕｓｅｒ０１から、ｐｒｉｎｔｕｓｅｒへ権限偽装して、実行権限を変更する。
【０１７６】
続くデスプール処理Ｓ２１６というのは、スプール処理Ｓ２０４の逆で、Ｓ２０６にて通知された保存位置情報からＥＭＦ４０１データを読み出し、解析して、印刷描画命令を再現することである。
【０１７７】
再現された印刷描画命令の出力先はいうまでもなく第２のインストール処理で選択された出力先のプリントキューである。
【０１７８】
もし権限偽装Ｓ２１５を行わずにデスプール処理Ｓ２１６を行おうとすると、出力先であるプリントキューが第２のインストール処理で作成されたものであった場合ｕｓｅｒ０１の権限下ではＯＳ１２２によってアクセスが拒否されてしまう。
【０１７９】
したがってプログラムの実行権限を、権限偽装Ｓ２１５で一時的にｐｒｉｎｔｕｓｅｒに変更しておかなければならない。
【０１８０】
専用プリンタードライバー１２９は、入力された印刷描画命令をＰＤＬ４０２に変換し、ネットワークＩ／Ｆ１３８を通じて印刷ジョブとしてプリンター１０２に送信する（Ｓ２１７）。
【０１８１】
デスプール処理Ｓ２１６とそれに連動した専用プリンタードライバー１２９のＰＤＬ送信処理Ｓ２１７が終了したら、デスプール処理部１２６３は、偽装解除する（Ｓ２１８）。
【０１８２】
偽装解除とは、プログラムの実行権限を権限偽装した状態から元の状態に戻すことを指し、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）ではＲｅｖｅｒｔＴｏＳｅｌｆというＡＰＩで実現される。
【０１８３】
最後に、プリントジョブマネージャー１２６はプログラムを終了する。
【０１８４】
ところで、図６（ｃ）のスピンコントロール６２０２やチェックボックス６２０３はそれぞれ印刷部数、白黒印刷といった一般的な印刷設定を変更するための入力手段である。
【０１８５】
また、ボタン６２１４は、専用プリンタードライバー１２９固有の印刷設定ＵＩ（不図示）を呼び出し、固有の印刷設定を変更するための入力手段である。
【０１８６】
このような印刷設定の変更処理を行うにも、やはりプリントジョブマネージャー１２６が、対象となるプリントキューに対してアクセス権を有している必要がある。
【０１８７】
したがって、これら印刷設定処理を実行する際も、その前後で権限偽装Ｓ２１５と偽装解除Ｓ２１８を行わなければならない。
【０１８８】
以上、プリントキューのアクセス権情報を特殊ユーザー以外アクセスできないように設定することにより「見えないプリントキュー」を作成し、さらに「見えないプリントキュー」に対して印刷処理を行う技術について説明した。
【０１８９】
ところで、作成されるプリントキューの数を増やさないようにすることだけを考慮すれば、プリントキューそのものを印刷処理の終了後に削除するというよりシンプルな手段も考えられる。
【０１９０】
しかしながら、もし削除する手段を採用した場合、第２のインストール処理において毎回プリントキューを作成しなければならなくなる。
【０１９１】
逆に本発明のように削除しなければ、プリントキューを作成することなく単に出力先として選択することが可能となる（Ｓ３０６に相当）。
【０１９２】
プリントキューの作成処理は、一般的に時間がかかる処理であるため、毎回作成させるとＳ２０９〜２１２にかけてユーザーが操作できない時間が長くなり、効率が低下する。
【０１９３】
したがって、出力先の選択を容易にすることと、ユーザー操作の効率を低下させないようにすることを両立させるには、本発明で開示した手段が最適といえる。
【０１９４】
［第２の実施形態］
（システムの構成図）
次に、本発明を実施するための第２の形態について図面を用いて説明する。
【０１９５】
第１の形態は、ユーザーがホストコンピューター上で出力先を指定して印刷指示を行うシステムであった。
【０１９６】
それに対し、第２の形態は、ユーザーがホストコンピューター上で印刷指示のみ行い、出力先の指定は、プリンターのそばに設置されたカードリーダーなどの認証ユニットで認証することによって行う、いわゆる認証プリントのシステムである。
【０１９７】
図１０（ａ）は、第２の形態に係るネットワークシステムの概略を示すブロック図である。
【０１９８】
図１０（ａ）に示すように、このネットワークシステムは、複数のホストコンピューター１０１ａ、１０１ｂ、複数のプリンター１０２ａ、１０２ｂ、複数の認証ユニット１４２ａ、１４２ｂ、ＩＣカード１４３、認証サーバー１４４を備える。
【０１９９】
これらはネットワーク１０４を介して接続されている。
【０２００】
まず、システムを構成する各装置の詳細を説明する前に、システムの概要を印刷作業の流れに沿って説明する。
【０２０１】
ユーザーによる印刷実行の指示を受けたホストコンピューター１０１ａは、出力対象のプリンターを特定せずに印刷処理を実行し、投入された印刷ジョブを保持する（Ｓ１４０）。
【０２０２】
次に、ユーザーがＩＣカードをかざすことによって出力プリンター１０２ａ選択の合図を受信（Ｓ１４１）した認証ユニット１４２ａは、ＩＣカード１４３からＩＣカード固有のＩＤを読み取り、認証サーバー１４４へＩＤを送る（Ｓ１４２）。
【０２０３】
認証サーバー１４４は、受信したＩＤと関連付けられたホストコンピューター１０１ａへプリンター１０２ａのネットワークアドレスを送る（Ｓ１４３）。
【０２０４】
ホストコンピューター１０１ａは、受信したプリンター１０２ａのネットワークアドレスに対し、保持しておいた印刷ジョブをレンダリングして出力する（Ｓ１４４）。
【０２０５】
次に、図１０（ａ）のシステムを構成する各装置の詳細を順に説明していく。
【０２０６】
（認証ユニット１４２ａについて）
認証ユニット１４２ａは、出力プリンターを特定し、認証プリントを実行するための端末である。
【０２０７】
認証ユニットは、出力プリンターとペアで存在する必要があり、図１０（ａ）において、プリンター１０２ａには認証ユニット１４２ａ、プリンター１０２ｂには認証ユニット１４２ｂという具合に関連付けがされている。
【０２０８】
プリンターと認証ユニットの関連付けに関しては認証ユニットにその情報を記憶させることによっても実現可能ではあるが、本実施形態においては、後述する認証サーバー１４４によって実現している。
【０２０９】
（認証ユニット１４２ａの装置構成）
図１０（ｂ）は、認証ユニット１４２の概略的な構成の一例を示すブロック図である。
【０２１０】
図１０（ｂ）に示すように、認証ユニット１４２は、ＣＰＵ１４２１、設定情報記憶部認証部１４２２、設定情報記憶部１４２３、ネットワークＩ／Ｆ１４２４、ローカルＩ／Ｆ１４２５を備える。
【０２１１】
認証ユニット１４２は、これら各々の機能部を、システムバス１４２７により互いに接続して構成する。
【０２１２】
さらに、ローカルＩ／Ｆ１４２５にＩＣカードリーダー１４２６を接続して構成する。
【０２１３】
ＣＰＵ１４２１は、認証ユニット１４２全体の制御を司る中央演算処理部である。
【０２１４】
設定情報記憶部１４２２は、認証ユニット１４２の初期設定時に入力される認証サーバー１４４のネットワークアドレスを記憶しておく。
【０２１５】
ＩＣカードリーダー１４２６は、ＩＣカードから一意な識別情報を読み取る。
【０２１６】
ここでは、ＩＣカードリーダー１４２６は、ＦｅｌｉＣａ（登録商標）のような非接触式ＩＣカードに対応した読み取り機器を想定しているが、この技術に限定されるものではなく、一意な識別情報の入力が可能ならば他の実現方法であっても構わない。
【０２１７】
例えば、ＩＣカードリーダーの代わりに指紋センサー等の生体認証センサーを設置するという方法もある。
【０２１８】
なお、このＩＣカードリーダー１４２６が、直接システムバス１４２７に接続されずローカルＩ／Ｆ１４２５を介して接続されているのは、認証手段を柔軟に変更できるようにするためである。
【０２１９】
認証部１４２３は、ＩＣカードリーダー１４２６を介して取得するＩＤを、ネットワークＩ／Ｆ１４２４を介して、認証サーバー１４４へ送る。
【０２２０】
（プリンター１０２について）
プリンター１０２の構成は、図１（ｂ）で説明した通りである。
【０２２１】
なお、認証ユニット１４２はプリンター１０２を特定するためにあるので、通常、認証ユニットとプリンターは物理的に接近して設置される。
【０２２２】
本実施形態においては、プリンターと認証ユニットを分けて構成しているが、認証ユニット相当の機能を包含するプリンターがあってもかまわない。
【０２２３】
（認証サーバー１４４について）
認証サーバー１４４は、図１１（ａ）に示す、ＩＣカードのＩＤと、ホストコンピューターのネットワークアドレスの第１組み合わせ情報を記憶している。
【０２２４】
さらに認証サーバー１４４は、図１１（ｂ）に示す、認証ユニットのネットワークアドレスと出力デバイスのネットワークアドレスの第２組み合わせ情報も記憶している。
【０２２５】
認証サーバー１４４が図１１（ａ）の情報と図１１（ｂ）の情報を一元管理することによって、ホストコンピューターとプリンターと認証ユニットを連携させた認証プリントが実現されている。
【０２２６】
認証サーバー１４４は、認証ユニット１４２ａからＩＣカード１４３のＩＤを受信する。その結果、図１１（ａ）の第１組み合わせ情報からＩＤ（１６２６９６５０９４００６７８６５７に関連付けられたホストコンピューター１０１ａのネットワークアドレス（１９２．１６８．０．２）を得る。
【０２２７】
さらに、認証サーバー１４４は、ＩＤを受信した際に認証ユニット１２０ａのネットワークアドレス（１９２．１６８．０．１６）も同時に受信している。よって、図１１（ｂ）の第２組み合わせ情報から、認証ユニット１４２ａに関連付けられたプリンター１０２ａのネットワークアドレス（１９２．１６８．０．４８）を得る。
【０２２８】
最後に、認証サーバー１４４は、こうして得られたプリンター１０２ａのネットワークアドレス（１９２．１６８．０．４８）をホストコンピューター１０１ａに送信し、ホストコンピューター１０１ａからプリンター１０２ａへ印刷ジョブの送信を促す。
【０２２９】
（ホストコンピューター１０１）
ホストコンピューター１０１の構成は、図１（ｂ）で説明した通りである。
【０２３０】
なお、第１の実施形態において印刷処理やインストール処理などを含む中心的な役割を担ったのがプリントジョブマネージャー１２６であったのに対し、第２の実施形態では認証ジョブマネージャー１２７が主な処理を担う。
【０２３１】
（図１２のシーケンス図の説明）
以下、図１２のシーケンス図を用いて、第２の実施形態に係る、認証ジョブマネージャー１２７を中心とした印刷処理関連プログラム間で行われる印刷処理（Ｓ５００〜）を説明する。
【０２３２】
前提として、印刷処理の前に、第１のインストール処理と同様のセットアップがホストコンピューター１０１ａで行われているものとする。具体的にはＳ１０４のプリントジョブマネージャー１２６をインストールする代わりに、認証ジョブマネージャー１２７をインストールしておく。
【０２３３】
第２の実施形態の印刷処理のうち、Ｓ５００〜Ｓ５０６までのアプリケーション１２３と仮想プリンタードライバー１２８による印刷処理は、第１の実施形態で述べたＳ２００〜Ｓ２０６までの処理とそれぞれ同様である。
【０２３４】
唯一異なるのは、Ｓ２０２において起動されるプログラムがプリントジョブマネージャー１２６であったのに対し、Ｓ５０２で起動されるのは認証ジョブマネージャー１２７である点のみである。
【０２３５】
認証ジョブマネージャー１２７が有する内部コンポーネントはプリントジョブマネージャー１２６と同じく３つあり、プリンタードライバー管理処理部１２６２とデスプール処理部１２６３の２つは両者で共通である。
【０２３６】
残り１つの通信処理部１３０１は、認証ジョブマネージャー１２７特有の内部コンポーネントで、認証ユニット１４２との通信や、プリンタードライバー管理処理部１２６２とデスプール処理部１２６３の制御を行う。
【０２３７】
認証ジョブマネージャー１２７がＳ５０２において起動されると、通信処理部１３０１は受信待機処理を実行する（Ｓ５０７）。
【０２３８】
受信待機処理とは、すなわち、認証サーバー１４４が送信する情報を受信できるよう、ホストコンピューター１０１のネットワークＩ／Ｆ１１８を制御する処理である。
【０２３９】
ネットワークＩ／Ｆ１１８の制御はＯＳ１２２が提供するＡＰＩの機能によって実現される。ＡＰＩの例としてはＷｉｎｓｏｃｋなどがある。
【０２４０】
ＥＭＦのメモリ位置が通知され（Ｓ５０６）、受信待機処理が実行されると、ユーザーによる認証操作が行われるまでジョブがホストコンピューター１０１上で留め置かれ、待機状態に入る（Ｓ５０７）。
【０２４１】
次に、認証ユニット１４２は、ユーザーによってＩＣカード１４３を使った認証操作が行われると（Ｓ１４１）、カードＩＤを読み取り、カードＩＤ情報を認証サーバー１４４に送信する（Ｓ１４２）。
【０２４２】
次に認証サーバー１４４は、記憶した組み合わせ情報を元に得た出力先のプリンター１０２のネットワークアドレスを、ホストコンピューター１０１に送信する（Ｓ１４３）。
【０２４３】
Ｓ１４１〜Ｓ１４３の処理の詳細についてはすでに図１０（ａ）、（ｂ）を用いて述べたとおりである。
【０２４４】
次に認証ジョブマネージャー１２７の通信処理部１３０１は、認証サーバー１４４から出力先のプリンター１０２のネットワークアドレスを受信すると、出力先プリンター情報取得処理を行う（Ｓ５０８）。
【０２４５】
出力先プリンター情報取得処理Ｓ５０８とは、Ｓ２０７のプリンターの検索処理と同様の処理をひとつのプリンター１０２に対して行うものである。
【０２４６】
Ｓ２０７は周辺のネットワークを探索するブロードキャストなどの通信方法によって、ＳＮＭＰプロトコルによりプリンターのハードウェア情報などを取得するものであったが、Ｓ５０８はプリンター１０２からのみハードウェア情報を取得する処理である。
【０２４７】
次の通信処理部１３０１による第２のインストール処理依頼（Ｓ５０９）およびプリンタードライバー管理処理部１２６２による第２のインストール処理（Ｓ５１０）は、第１の実施形態で述べたＳ２１０およびＳ２１１と同様である。
【０２４８】
すなわち、第２のインストール処理でプリントキューを作成した場合に特殊ユーザーのみ作成したプリントキューにアクセスが可能となるように該当プリントキューのアクセス権情報の設定を行う。
【０２４９】
通信処理部１３０１は、Ｓ５１０によって専用プリンタードライバーのインストールが完了したら、デスプール処理部１２６３に対して印刷開始指示を行う（Ｓ５１１）。
【０２５０】
以降のデスプール処理部１２６３によるＳ５１２〜Ｓ５１５の処理は、第１の実施形態におけるＳ２１５〜Ｓ２１８とそれぞれ同一である。
【０２５１】
すなわち、特殊ユーザーに権限偽装し（Ｓ５１２）、デスプール処理で中間データを描画命令として再現し（Ｓ５１３）、ＰＤＬデータを生成して送信し（Ｓ５１４）、偽装解除する（Ｓ５１５）という一連の処理は同一である。
【０２５２】
このようにして、第２の実施形態における認証プリントシステムにおいても、「見えないプリントキュー」を作成することにより、ＵＩ６０００で出力先を選ぶ際に出力先が多すぎて選択が困難になるという問題を回避することが可能となる。
【０２５３】
［第３の実施形態］（図１３、１４）
次に、本発明を実施するための第３の実施形態について図面を用いて説明する。
【０２５４】
図１３は管理ユーティリティ１３１が表示するＵＩ７０００の例を示す図である。
【０２５５】
第１および第２の実施形態で述べたとおり、第２のインストール処理によって作成されるプリントキューは、特殊ユーザー以外アクセスできないようアクセス権情報が設定されているため、ＵＩ６０００には出力先として表示されない。
【０２５６】
プリントキューが表示されない状態が維持されることによって、ＵＩ６０００における出力先選択の作業が容易になるが、一方で、頻繁に利用するプリンター１０２が存在する場合、対応するプリントキューがＵＩ６０００に表示された方が便利な場合もある。
【０２５７】
そこで、管理ユーティリティ１３１は、第２のインストール処理によって作成された見えないプリントキューを見えるようにする手段を提供する。
【０２５８】
管理ユーティリティ１３１は、第１のインストール処理において仮想プリンタードライバー１２８などとともにホストコンピューター１０１にインストールされ、ユーザーからの任意の起動要求に応じて起動される管理プログラムである。
【０２５９】
管理ユーティリティ１３１が起動されると、図１４（ａ）のフローチャートで示すプリントキュー表示処理（Ｓ７００〜）が開始される。
【０２６０】
管理ユーティリティ１３１は、特殊ユーザーしかアクセスできないプリントキューを含めてプリントキューの一覧を取得するため、まず特殊ユーザーに権限偽装する（Ｓ７０１）。
【０２６１】
次に、管理ユーティリティ１３１は、プリントキューの一覧を取得する（Ｓ７０２）。
【０２６２】
Ｓ７０２で管理ユーティリティ１３１が取得する情報にはプリントキューの名前、特殊ユーザー自身のアクセス権やｕｓｅｒ０１等の特殊ユーザー以外のユーザーオブジェクトのアクセス権が含まれる。
【０２６３】
最後に、管理ユーティリティ１３１は、偽装解除して（Ｓ７０３）、処理を終了する（Ｓ７０４）。
【０２６４】
図１４（ａ）の処理が終了すると、７００１のリストにはプリントキューの一覧が、名前の情報と、隠されているかどうかの情報とともに表示される。
【０２６５】
隠されているかどうかとは、すなわち特殊ユーザーしかアクセスできないようになっているかどうかを意味する。
【０２６６】
第２のインストール手段によって追加されたプリントキューであれば「はい」と、そうでなければ「いいえ」と表示される。
【０２６７】
プリントキューに対する管理操作は、７００２のカーソルでプリントキューを選択した状態で７００３のボタンを押すことにより行われる。
【０２６８】
７００３のボタンは選択されたプリントキューが隠されている場合（「はい」のとき）のみ入力することができる。
【０２６９】
ボタン７００３が入力されると、図１４（ｂ）のフローチャートで示すプリントキュー管理処理（Ｓ６００〜）が開始される。
【０２７０】
管理ユーティリティ１３１は、特殊ユーザーしかアクセスできないプリントキューのアクセス権情報を変更するので、まず特殊ユーザーに権限偽装する（Ｓ６０１）。
【０２７１】
次に、管理ユーティリティ１３１は、アクセス権情報を任意のユーザーオブジェクトがアクセス可能なように変更する（Ｓ６０２）。
【０２７２】
図８の例で言えば、Ｃｒｅａｔｅｄ  Ｐｒｉｎｔｅｒ  Ｂのアクセス権情報をｐｒｉｎｔｕｓｅｒからｅｖｅｒｙｏｎｅに変更する。
【０２７３】
最後に、管理ユーティリティ１３１は、偽装解除して（Ｓ６０３）、処理を終了する（Ｓ６０４）。
【０２７４】
以上、図１３および図１４を用いて述べたように、プリントキュー管理処理によって、ユーザーは見えなくなったプリントキューを見えるようにでき、出力先の指定方法を柔軟に変更することが可能となる。
【０２７５】
［他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013089045.tif 000003
【図２】
2013089045.tif 000004
【図３】
2013089045.tif 000005
【図４】
2013089045.tif 000006
【図５】
2013089045.tif 000007
【図６】
2013089045.tif 000008
【図７】
2013089045.tif 000009
【図８】
2013089045.tif 000010
【図９】
2013089045.tif 000011
【図１０】
2013089045.tif 000012
【図１１】
2013089045.tif 000013
【図１２】
2013089045.tif 000014
【図１３】
2013089045.tif 000015
【図１４】
2013089045.tif 000016