(57)【要約】【課題】印刷ジョブ毎にパスワード入力漏れなどの状況に応じたポップアップＵＩを表示できるプログラムを提供する。【解決手段】ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供するアプリケーションのプログラムは、ユーザによる印刷指示がなされた後にオペレーティングシステムによって、アプリケーションのプログラムが起動されたことに応じて、印刷設定を含むプリントチケットを受信する受信工程と、受信したプリントチケットに基づき印刷設定に関する画面を表示するか否かを判断する判断工程と、判断工程で印刷設定に関する画面を表示する画面を表示すると判断したことに従って、印刷設定に関する画面を表示部に表示する表示制御工程と、をコンピュータに実行させる。【選択図】図７
2019197249.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供するアプリケーションのプログラムであって、
ユーザによる印刷指示がなされた後にオペレーティングシステムによって、前記アプリケーションのプログラムが起動されたことに応じて、印刷設定を含むプリントチケットを受信する受信工程と、
前記受信したプリントチケットに基づき印刷設定に関する画面を表示するか否かを判断する判断工程と、
前記判断工程で前記印刷設定に関する画面を表示すると判断したことに従って、印刷設定に関する画面を表示部に表示する表示制御工程と、
をコンピュータに実行させるためのプログラム。
【請求項２】
前記判断工程では、前記受信したプリントチケットに認証プリントの設定がなされている場合に、前記印刷設定に関する画面を表示すると判断し、
前記表示制御工程では、前記認証プリントに関する画面を表示する
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記判断工程は、認証プリントのパスワードが設定されているか否かを更に判定し、
前記パスワードが設定されていると判定された場合、前記表示制御工程では、前記認証プリントに関する画面であって、パスワードの確認をユーザに促す画面を前記表示部に表示する
ことを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記パスワードが設定されていないと判定された場合、前記表示制御工程では、前記認証プリントに関する画面であって、パスワードの入力をユーザに促す画面を前記表示部に表示する
ことを特徴とする請求項３に記載のプログラム。
【請求項５】
印刷に使用するプリントキューを特定する特定工程と、
前記特定されたプリントキューを使用する場合に、前記印刷設定に関する画面を表示するか否か判断する第２の判断工程と、
を前記コンピュータに更に実行させ、
前記第２の判断工程で、前記特定されたプリントキューを使用する場合に、前記印刷設定に関する画面を表示しないと判断された場合、前記表示制御工程では、前記判断工程による判断によらず、前記印刷設定に関する画面を表示しないよう制御する
ことを特徴とする請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記コンピュータは、前記プリントキューごとに前記印刷設定に関する画面を表示するか否かを示す設定を所定の記憶領域に記憶しており、
前記第２の判断工程は、前記所定の記憶領域に記憶された設定を参照し、前記特定されたプリントキューを使用する場合に、前記印刷設定に関する画面を表示するか否か判断する
ことを特徴とする請求項５に記載のプログラム。
【請求項７】
前記アプリケーションのプログラムは、前記アプリケーションに関連するＶ４プリンタドライバのインストールに応じて、情報処理装置にインストールされるＵＷＰ（Ｕｎｉｖｅｒｓａｌ  Ｗｉｎｄｏｗｓ  Ｐｌａｔｆｏｒｍ）アプリケーションのプログラムである
ことを特徴とする請求項１乃至６のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷に関するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供するプログラムに関する。
【背景技術】
【０００２】
画像形成装置の制御用ソフトウェアとして、ホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された画像形成装置に対して印刷を行う構成が一般に知られる。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム（以下、ＯＳと呼ぶ）がインストールされており、プリンタドライバはそのＯＳの規定する仕様に従って構成される。画像形成装置を提供するベンダは、ＯＳの仕様に適合するプリンタドライバを提供することにより、画像形成装置に対して印刷指示する手段を得ることができる。
【０００３】
ホストコンピュータのＯＳとしてＭｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）８より前のバージョンを利用する場合、プリンタドライバは、Ｖ３プリンタドライバと呼ばれるアーキテクチャで構成される。Ｖ３プリンタドライバは、ユーザからの印刷要求が発生したタイミングでＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を表示し、何らかの操作をユーザに促すような機能を提供することができる。例えば、印刷要求が発生すると、Ｖ３プリンタドライバの構成物であるコンフィグレーションモジュールの規定のイベントが呼び出されるため、コンフィグレーションモジュールは、そのイベント処理の中でユーザインタフェースを表示することが可能である。
【０００４】
一方、Ｗｉｎｄｏｗｓ（登録商標）８以降において、Ｖ４プリンタドライバと呼ばれる新しいアーキテクチャが登場した。Ｖ４プリンタドライバのアーキテクチャでは、セキュリティ性が重視されているため、プリンタドライバそのもののカスタマイズ性は低下している。例えば、前述のコンフィグレーションモジュールはＯＳにより提供され、ベンダは、その動作をカスタマイズする設定ファイルやスクリプトファイルのみを提供可能である。このようなカスタマイズ性の低下を補うため、画像形成装置を提供するベンダは、プリンタドライバの機能を補助するための専用のアプリケーションを提供することができる。このアプリケーションはＷｉｎｄｏｗｓ  Ｓｔｏｒｅ  Ｄｅｖｉｃｅ  Ａｐｐｓ（ＷＳＤＡ）と呼ばれる。
【０００５】
また、Ｗｉｎｄｏｗｓ（登録商標）１０以降においては、Ｕｎｉｖｅｒｓａｌ  Ｗｉｎｄｏｗｓ  Ｐｌａｔｆｏｒｍ  （ＵＷＰ）と呼ばれる新しい形式のプラットフォームでアプリケーションが作成できる。そのアプリケーションは、ＵＷＰ  Ｄｅｖｉｃｅ  Ａｐｐｓと呼ばれる。ＵＷＰ  Ｄｅｖｉｃｅ  ＡｐｐｓはＷＳＤＡの機能を拡張し、Ｗｏｒｋｆｌｏｗ（ＷＦ）と呼ばれるアプリケーションをＷＳＤＡに追加することができる。
【０００６】
ＷＦ機能では、印刷時にバックグラウンドタスクと呼ばれるＵＩを持たないスレッドがＯＳによって生成される。バックグラウンドタスクは、フォアグラウンドのタスク（ＵＩ）を呼び出すことも可能である。また、画像形成装置は、セキュアプリント（認証プリントとも呼ぶ）という認証機能を利用した機能を備える。本機能を利用する場合、プリンタドライバは、パスワードのような認証情報を付加した印刷ジョブを画像形成装置に送信する。画像形成装置は、上記認証情報を付加した印刷ジョブを受信し、ユーザが画像形成装置上で認証することにより出力が可能となる。本機能を利用すると、印刷指示を行った際には出力が開始されず、画像形成装置で本人であることが認証されない限り出力されないため、だれにも印刷物を見られずに安全に出力することが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−１６６９１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
Ｖ４プリンタドライバを使用する印刷では、セキュリティ性や利便性が向上している一方、印刷要求を行った後は、ＯＳが提供するフレームワークが主体となって制御を行うことになる。従って、従来は、Ｖ４プリンタドライバを使用する印刷において、印刷実行指示後に、ユーザに対してＵＩなどの通知を行うことができなかった。そのため、パスワードの認証によって本人確認を行うセキュアプリント機能を選択したにも関わらず、パスワード入力漏れがあった場合に、ポップアップＵＩを表示し、ユーザに対して入力を促すことができなかった。特許文献１のように、印刷データへの変換時にポップアップ表示させようとする提案も出ている。しかしながら、印刷データへの変換を担うＸＰＳフィルタやＶ４プリンタドライバが、プロセス間通信を行って、制御の調停を行うなどの拡張を行う必要があり、煩雑であった。また、特殊な拡張によりポップアップを実現するため、依然として機能制限があった。
【０００９】
本発明は、上記課題を鑑みて、印刷ジョブ毎にパスワード入力漏れなどの状況に応じたポップアップＵＩを表示できるプログラムを提供することを目的の１つとする。また、本発明の別の目的は、印刷指示が行われたことに応じて、ポップアップＵＩを表示できるプログラムを提供することである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明のプログラムは、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供するアプリケーションのプログラムであって、ユーザによる印刷指示がなされた後にオペレーティングシステムによって、前記アプリケーションのプログラムが起動されたことに応じて、印刷設定を含むプリントチケットを受信する受信工程と、前記受信したプリントチケットに基づき印刷設定に関する画面を表示するか否かを判断する判断工程と、前記判断工程で前記印刷設定に関する画面を表示する画面を表示すると判断したことに従って、印刷設定に関する画面を表示部に表示する表示制御工程と、をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、印刷ジョブ毎にパスワード入力漏れなどの状況に応じたポップアップを表示できるプログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】システム構成を示す図である。
【図２】クライアントコンピュータのハードウェア構成の一例を示す図である。
【図３】クライアントコンピュータのソフトウェア構成の一例を示す図である。
【図４】メタデータの記述例を示す図である。
【図５】印刷システムで構築される印刷環境の一例を示すブロック図である。
【図６】第１の実施形態に係る印刷処理の一例を示すフローチャートである。
【図７】第１実施形態に係る印刷時起動処理の一例を示すフローチャートである。
【図８】第１実施形態に係る印刷時起動処理の一例を示すフローチャートである。
【図９】印刷ダイアログ及び警告用印刷時起動ＵＩの画面の一例を示す図である。
【図１０】タッチアプリ及び印刷ダイアログの模式図である。
【図１１】プリントケーパビリティの一例を示す図である。
【図１２】プリントチケットの一例を示す図である。
【図１３】デバイス機能テキストファイルにおける定義項目の記載例を示す図である。
【図１４】印刷時のデータフローを説明する模式図である。
【図１５】ポップアップ表示を行うかを選択するためのＵＩの画面の一例を示す図である。
【図１６】第２実施形態に係る印刷時起動処理の一例を示すフローチャートである。
【図１７】第２実施形態に係る印刷時起動処理の一例を示すフローチャートである。
【図１８】第３実施形態に係る印刷時起動処理の一例を示すフローチャートである。
【図１９】第３実施形態に係る印刷時起動処理の一例を示すフローチャートである。
【図２０】第１実施形態に係る印刷設定処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面及び表を用いて説明する。以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１４】
（第１実施形態）
まず、図１を用いて、本実施形態に係るシステムの構成について説明する。図１は、本実施形態に係るシステム構成の概略を表す模式図を示す。本実施形態に係るシステムは、クライアントコンピュータ１０１と、サーバー１０４と、プリンタ１０２を備える。クライアントコンピュータ１０１は、情報処理装置の一例である。サーバー１０４は、クライアントコンピュータ１０１へ対してデータを配信する。プリンタ１０２は、ページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ、以下ＰＤＬと呼ぶ）形式の印刷データを受信し印刷を行う。各装置は、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）を含むネットワーク１０３を通じて相互に通信可能である。なお、プリンタ１０２は、印刷機能のみを備えるシングルファンクションプリンタであってもよく、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタであってもよい。また、クライアントコンピュータ１０１は、ネットワーク１０３に対し一台に限らず、複数台接続されていてもよい。
【００１５】
図２は、図１のクライアントコンピュータ１０１のハードウェア構成を示すブロック図である。クライアントコンピュータ１０１において、中央演算処理装置（ＣＰＵ２０１）は、ランダムアクセスメモリ（ＲＡＭ２０２）に記憶されているプログラムに従って、システムバスに接続される各デバイスを制御する。なお、クライアントコンピュータ１０１は、少なくとも１つのＣＰＵ２０１を備えるものとする。加えて、ＣＰＵ２０１が外部メモリ２０９に記憶されているプログラムに基づき処理を実行することによって、クライアントコンピュータ１０１のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。リードオンリーメモリ（ＲＯＭ）２０３は、ブートプログラムや基本入出力システム（ＢＩＯＳ）等の各種プログラムが書き込まれてある。
【００１６】
操作入力装置インターフェース（Ｉ／Ｆ）２０４は、キーボードやポインティングデバイス（マウス）タッチＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などの操作入力装置２０５を制御するインターフェースである。操作入力装置２０５は、ユーザからの操作を受け付ける受付部として機能する。ディスプレイＩ／Ｆ２０６はディスプレイ２０７への画面の表示制御を行う。ディスプレイ２０７は、ユーザに対して情報を表示する表示部として機能する。外部メモリＩ／Ｆ２０８は、例えばハードディスク（ＨＤ）、ソリッドステートディスク（ＳＳＤ）等の外部メモリ２０９とのアクセスを制御する。外部メモリ２０９は、オペレーティングシステムプログラム（ＯＳ）２１０をはじめ、アプリケーション実行環境２１３、タッチパネル、デスクトップそれぞれに対応した各種アプリケーション２１２や各種ファイル等を記憶する。そして、クライアントコンピュータ１０１が読み取り可能な記憶媒体として機能する。ネットワークＩ／Ｆ２１５は、ネットワーク１０３を介してプリンタ１０２に接続され通信制御処理を行う。尚、サーバー１０４もクライアントコンピュータ１０１のハードウェア構成と同じ構成を内包しており、同様に動作する。
【００１７】
次に、図３を用いて、クライアントコンピュータ１０１のソフトウェアの構成について説明する。まず、クライアントコンピュータ１０１内の動作ソフトウェアについて説明する。クライアントコンピュータ１０１内のソフトウェアは、ＯＳ２１０、アプリケーション実行環境２１３とアプリケーション２１２の３つの層から構成される。
【００１８】
まず、ＯＳ２１０を構成する個々の要素について説明する。ＯＳ２１０は、大きくプリンティングシステム３３７、プリンタドライバ２１１、外部設定ファイル群３５２とスレッドプール３５５で構成される。次に、ＯＳ２１０の外部ファイル設定群３５２を構成する要素について説明する。外部ファイル設定群３５２のメタデータ３２０は、プリント拡張アプリ３００とプリントキュー３０８の双方の識別子を持つ定義情報であり各々を関連付ける役割を持つ。メタデータ３２０は、図４を用いて後述する。レジストリ３５３は、ＯＳ２１０の設定群が記述されている領域である。レジストリ３５３には、後述する印刷時起動アプリランチャ３５０がバックグラウンドタスクである印刷時起動アプリケーション３０５を起動するかどうかの設定を、登録することができる。バックグランドタスクとは、ＵＷＰ  Ａｐｐｓ（（Ｕｎｉｖｅｒｓａｌ  Ｗｉｎｄｏｗｓ  Ｐｌａｔｆｏｒｍ）アプリケーション）で利用可能な機能である。バックグランドタスクは、主に、アプリをユーザが操作しない状態であっても、最新の状態を維持したり、更新情報を受信したりといった処理を実現するために用いられる。一方、アプリがバックグラウンドで動作すると、バッテリーや演算リソースを消耗したりする。そのためＯＳ２１０はＵＷＰ  Ａｐｐｓごとにバックグラウンドタスクの利用を許可するか否かを設定する機能をユーザに対して提供する。レジストリ３５３には、当該機能を介して設定された、アプリケーションごとにバックグラウンドタスクの利用を許可するか否かの設定が登録されている。
【００１９】
続いて、プリンティングシステム３３７を構成する要素について説明する。プリントキュー３０８は、ネットワーク１０３内に存在するプリンタを使用して印刷を行う際に、印刷ジョブを一時的に保存する領域である。本実施形態では、プリンタ１０２のプリントキュー３０８が作成されているものとする。プリントキュー３０８が作成されると、デバイス機能テキストファイル３３２に記載されている一部の機能に基づきプリントキューに紐づく記憶領域３４０が生成される。記憶領域３４０はプリントキューごとに個別の設定や機能を記憶する。これは、デバイス機能テキストファイル３３２の機能定義部に対して、特定の記述を行うことにより、ジョブ毎に切り替える印刷設定機能ではなく、プリントキュー毎に制御可能な機能を提供することができる。
【００２０】
スプーラ３２５は、アプリケーション２１２から印刷された印刷対象データであるＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）ファイルを一時的に保存及び管理するモジュールである。スプーラ３２５に保存されたＸＰＳファイルは、後述するフィルタパイプラインマネージャ３３５を通して、ＰＤＬに変換された後に、スプーラ３２５を通じてプリンタ１０２へと送信される。
【００２１】
フィルタパイプラインマネージャ３３５は、ＯＳ２１０の一部として構成されており、フィルタ３３０は、後述するプリンタドライバ２１１を構成する要素の一つである。フィルタパイプラインマネージャ３３５は、フィルタコンフィグ３３６の定義に基づき、フィルタ３３０を１つ乃至複数読み込み、スプーラ３２５に保存されているＸＰＳファイルをＰＤＬへと変換する。
【００２２】
コンフィグレーションモジュール３３１は、プリントチケットの生成、変更、及び不正な設定を訂正する禁則機能などを持つモジュールである。コンフィグレーションモジュール３３１のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を呼び出すことで、印刷設定情報であるプリントチケットや、デバイス能力情報であるプリントケーパビリティを取得することができる。プリントチケットや、プリントケーパビリティは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述される。
【００２３】
後述するプリント拡張アプリ３００の詳細印刷設定ＵＩ部３０４、印刷時起動アプリケーション３０５、印刷時起動ＵＩ部３０３は、選択されたプリンタドライバ２１１のコンフィグレーションモジュール３３１のＡＰＩを呼び出す。これにより、プリントチケットやプリントケーパビリティを取得する。印刷時起動アプリランチャ３５０は、アプリケーション２１２から印刷が行われた際に、レジストリ３５３に保存された設定に基づき、印刷時起動アプリケーション３０５を起動する。
【００２４】
プリンタドライバ２１１は、フィルタ３３０、フィルタコンフィグ３３６、スクリプトファイル３３３、印刷設定ＵＩ３６０、デバイス機能テキストファイル３３２、で構成される。フィルタ３３０は、フィルタパイプラインマネージャ３３５によって呼び出されるモジュールであり、ＸＰＳファイルをＰＤＬへと変換する役割を持っている。フィルタコンフィグ３３６は、フィルタパイプラインマネージャ３３５参照する定義ファイルであり、フィルタ３３０を呼び出す順序が記述されている。スクリプトファイル３３３とデバイスの機能が記述されたデバイス機能テキストファイル３３２は、コンフィグレーションモジュール３３１の動作をカスタマイズする。印刷設定ＵＩ３６０は、後述するデスクトップアプリ実行環境３２３で動作する設定変更機能を提供するＵＩであり、プリントキュー３０８に紐づいた印刷設定であるプリントチケットを編集する。また、プリントキュー３０８に紐づく記憶領域３４０の編集機能を有することも可能である。スレッドプール３５５は、各種アプリケーション２１２やＯＳ２１０内のモジュール群が実行される際に利用されるスレッドを溜め置いておくモジュールである。
【００２５】
次に、アプリケーション実行環境２１３を構成する個々の要素について説明する。アプリケーション実行環境２１３は、デスクトップアプリ実行環境３２３及びタッチアプリ実行環境３０１から構成される。タッチアプリ実行環境３０１は、後述するアプリケーション２１２の一種であるタッチアプリ３２１やプリント拡張アプリ３００を実行するためのＡＰＩ群を有し、それらを実行する際のメモリ管理なども行う。一方で、デスクトップアプリ実行環境３２３は、後述するアプリケーション２１２の一種であるデスクトップアプリ３２２を実行するためＡＰＩ群を有し、それらを実行する際のメモリ管理などを行う。
【００２６】
次に、アプリケーション２１２を構成する個々の要素について説明する。アプリケーション２１２は、タッチアプリ３２１、プリント拡張アプリ３００ならびにデスクトップアプリ３２２の三種類のアプリケーションで構成される。タッチアプリ３２１は、アプリケーション２１２の一種で、タッチアプリ実行環境３０１の上で動作する。タッチアプリ３２１は、インターネット上で公開されるアプリケーション配布システムを通じて、ユーザ自身が選択し、クライアントコンピュータ１０１にインストールする。プリント拡張アプリ３００は、タッチアプリ３２１の一種であり、タッチアプリ３２１と同様にタッチアプリ実行環境３０１の上で動作する。プリント拡張アプリ３００は、ＯＳ２１０がアプリケーション配布システムからインターネットを経由して取得しクライアントコンピュータ１０１にインストールする。プリント拡張アプリ３００は、タイルアプリ部３０２、詳細印刷設定ＵＩ部３０４、印刷時起動アプリケーション３０５、印刷時起動ＵＩ部３０３で構成される。
【００２７】
タイルアプリ部３０２は、プリント拡張アプリ３００を起動するというユーザ操作をきっかけにして、タイル形式のＵＩ（例えば、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）など）を表示する。詳細印刷設定ＵＩ部３０４は、ＯＳ２１０によって発行された詳細印刷設定イベントを受信したことをきっかけに、詳細印刷設定用のＵＩを表示する。詳細印刷設定ＵＩ部３０４は、コンフィグレーションモジュール３３１からＡＰＩを通じて取得したプリントチケットとプリントケーパビリティに基づき、詳細印刷設定用のＵＩを生成する。詳細印刷設定ＵＩ部３０４は、ユーザの入力に応じてプリントチケットの値を変更した後に、プリントチケットをコンフィグレーションモジュール３３１に返却する。印刷時起動アプリケーション３０５及び印刷時起動ＵＩ部３０３は、所定のユーザ操作などを契機としてプリントに関する処理を実行させるＷｏｒｋｆｌｏｗ（ＷＦ）と呼ばれる機能を提供する。印刷時起動アプリケーション３０５は、印刷イベントが発行された際に、印刷時起動アプリランチャ３５０によって起動されるバックグラウンドタスクを実行するためのコンポーネントである。印刷時起動アプリケーション３０５は、コンフィグレーションモジュール３３１のＡＰＩを通じてプリントチケットの取得やその内容の読み書きをする。印刷時起動アプリケーション３０５は、プリントチケットの設定やパラメータから、フォアグラウンドタスクを実行するためのコンポーネントである印刷時起動ＵＩ部３０３を起動するか否かを判断し、印刷時起動ＵＩ部３０３の起動をＯＳ２１０に要求する。
【００２８】
印刷時起動アプリケーション３０５は、印刷時起動ＵＩ部３０３を起動しないと判断した場合は、印刷時起動ＵＩ部３０３を起動することなく後述の印刷処理に処理を進める。また、印刷時起動アプリケーション３０５は、アプリストア３３４を介して、印刷時起動ＵＩ部３０３とプリントチケットの設定やパラメータの受け渡しをする。印刷時起動ＵＩ部３０３は、プリントチケットやプリントケーパビリティの取得と設定の変更を行う。本実施形態において、印刷時起動ＵＩ部３０３は、印刷に関する確認を行うためのＵＩや、未入力の設定をユーザに入力させるためのＵＩなどを表示する。ここで、デバイスであるプリンタ１０２とプリント拡張アプリ３００は、メタデータ３２０によって関連づけられている。
【００２９】
図４は、メタデータ３２０の記述の一例である。図４（Ａ）は、プリント拡張アプリ３００に関連付けするデバイス情報一覧を示す記述の一例である。メタデータ３２０には、プリンタ１０２の一覧を示すＨａｒｄｗａｒｅＩＤＬｉｓｔタグ４０２が記述される。なお、Ｈａｒｄｗａｒｅ  ＩＤとは、プリンタから返却される、プリンタを一意に特定するための識別情報である。項目４０３は、ＭＦＰ１＿ａｂｃｄというＨａｒｄｗａｒｅ  ＩＤを持つプリンタ１０２を表し、同様に、項目４０４は、ＭＦＰ２＿ｉｊｋｌというＨａｒｄｗａｒｅ  ＩＤを持つプリンタ１０２を表している。このように、１つのメタデータ３２０に、プリント拡張アプリ３００に関連付けするプリンタ１０２を複数列挙することができる。本実施形態では、一例としてメタデータ３２０に、２つのプリンタのＨａｒｄｗａｒｅ  ＩＤが指定されている場合を例示しているがこれに限定されるものではない。１つであっても、３つ以上であっても構わない。
【００３０】
図４（Ｂ）のメタデータ３２０内には、プリント拡張アプリ３００を示すＤｅｖｉｃｅＣｏｍｐａｎｉｏｎＡｐｐｌｉｃａｔｉｏｎｓタグ４１１が記述されている。項目４１２は、プリント拡張アプリ３００のＩＤとベンダのＩＤとが記述されている。本実施形態では、１２３４ａｂｃｄ．ＭＦＰＵｔｉｌｉｔｙという値がプリント拡張アプリ３００を表している。そして、１２３４５６７８−ａｂｃｄ−ｅｆｇｈ−ｉｊｋｌ−１２３４５６７８９０１２という値が、プリント拡張アプリ３００を提供しているプリンタベンダを表している。
【００３１】
このように、図４（Ａ）及び（Ｂ）のメタデータによって、デバイスであるプリンタ１０２とプリント拡張アプリ３００の関連付けがなされる。クライアントコンピュータ１０１にプリンタ１０２が接続されると、ＯＳ２１０は、所定のサーバー（Ｍｉｃｒｏｓｏｆｔ（登録商標）が管理するメタデータ用サーバー）に登録されているメタデータ３２０を検索する。そして、ＨａｒｄｗａｒｅＩＤＬｉｓｔに、接続されたプリンタ１０２の返却するＨａｒｄｗａｒｅ  ＩＤが記述されたメタデータ３２０を見つけると、それをクライアントコンピュータ１０１がインストールされている外部メモリ２０９に保存する。さらに、ＯＳ２１０は、保存したメタデータ３２０のＤｅｖｉｃｅＣｏｍｐａｎｉｏｎＡｐｐｌｉｃａｔｉｏｎタグ４０１に記述されたプリント拡張アプリ３００を図示省略のアプリケーション配布システムから取得する。そして、外部メモリ２０９にプリント拡張アプリ３００をインストールし、プリンタ１０２と関連付ける。
【００３２】
これにより、プリンタ１０２に対してプリンタドライバ２１１を経由して印刷要求が発生した際に、プリント拡張アプリ３００を起動できるようになる。このメタデータ３２０は、プリンタベンダにより提供されるものである。プリンタベンダは、このメタデータ３２０を事前にＭｉｃｒｏｓｏｆｔ（登録商標）が管理するメタデータ用サーバーに提供する。それによって、ユーザ環境にプリンタドライバ２１１がインストールされた際に、ユーザ環境に接続されているデバイスに最適なプリント拡張アプリ３００を自動的にインストールするように制御する。
【００３３】
図５は、メタデータ３２０で構築される印刷環境の一例を示す図である。プリンタ１０２であるＭＦＰ５０１は、ＭＦＰ１＿ａｂｃｄというＨａｒｄｗａｒｅ  ＩＤを有する。ＭＦＰ５０１をクライアントコンピュータ１０１に接続すると、ＯＳ２１０は、ＨａｒｄｗａｒｅＩＤＬｉｓｔタグにＭＦＰ１＿ａｂｃｄというＨａｒｄｗａｒｅ  ＩＤが記述されているメタデータ３２０を取得する。さらに、ＯＳ２１０は、メタデータ３２０に記述されているＭＦＰＵｔｉｌｉｔｙ５０６というプリント拡張アプリ３００を取得し、ＭＦＰ５０１と関連付ける。
【００３４】
なお、ＭＦＰ５０１用にクライアントコンピュータ１０１にインストールされるプリンタドライバは、複数種類存在し得る。つまり、１つのデバイスであるＭＦＰ５０１に対応するプリンタドライバとして、複数のプリンタドライバが存在しうる。例えば、機種別プリンタドライバ５０８は、ＭＦＰ５０１の専用プリンタドライバである。また、共通プリンタドライバ５０９は、１つのプリンタドライバで複数種類のプリンタ１０２への印刷を可能にするプリンタドライバである。なお、機種別プリンタドライバ５０８と共通プリンタドライバ５０９は、各ベンダ固有のドライバである。そして、標準プリンタドライバ５１０は、標準化された印刷方法を利用することで、１つのドライバで複数ベンダのプリンタ１０２への印刷を可能にするプリンタドライバである。標準プリンタドライバ５１０は、ＯＳ２１０と共にＯＳ２１０のパッケージ内の機能の１つとして提供される。
【００３５】
このように、プリンタ１０２用に利用可能なプリンタドライバは複数存在し、利用されるプリンタドライバは、インターネット接続状態やＯＳ２１０の種類、利用環境等に応じて異なる。通常、ＯＳ２１０は、プリンタドライバのバージョン情報等を参照して、利用可能なプリンタドライバのうち、もっとも機能が高く新しいプリンタドライバを自動的に選定しインストールする。なお、プリンタドライバには、Ｈａｒｄｗａｒｅ  ＩＤや、Ｃｏｍｐａｔｉｂｌｅ  ＩＤと呼ばれる装置を特定するための情報が含まれている。クライアントコンピュータ１０１にプリンタが接続されると、ＯＳ２１０は、プリンタからこれらのＩＤ情報を取得し、該当するＩＤを有するプリンタドライバを探索し、インストールする。
【００３６】
以上のように、プリンタを提供するプリンタベンダは、メタデータ３２０を提供することで、それぞれのプリンタに対して、どのプリント拡張アプリ３００を提供するか否かを制御することができる。例えば、プリンタベンダは、複数のプリンタに共通した一つのプリント拡張アプリ３００を提供することもできるし、それぞれ異なるプリント拡張アプリ３００を提供することもできる。しかしながら、１つのプリンタに関連付けられたプリンタドライバ２１１の種類に応じて異なるプリント拡張アプリ３００を提供することはできない。図５においては、ＭＦＰ５０１で利用されるプリンタドライバ２１１は、ドライバ５０８からドライバ５１０の３種類存在するが、各ドライバと連携できるプリント拡張アプリ３００は常に１種類である。
【００３７】
また、ユーザー印刷環境では複数台のプリンタ１０２や、複数種類のプリンタ１０２を使い分ける場合がある。出力先のプリンタ１０２毎に、プリンタドライバ２１１に対応するモデルや印刷設定の初期値および印刷ジョブをそれぞれ管理する必要がある。そのためＯＳ２１０は、設置の際に出力先のプリンタ１０２に対応するオブジェクトとしてプリントキュー３０８を生成する。ＯＳ２１０は、プリントキュー３０８に紐づけてプリンタドライバ２１１の構成モジュールや印刷設定の初期値を管理する。
【００３８】
ここで、プリンタ１０２がセキュアプリント機能（認証プリント機能）を有していることと、プリント拡張アプリ３００がどのようにしてプリンタ１０２の保有する機能を知るのかについて説明する。プリンタ１０２は、クライアントコンピュータ１０１で設定した暗証番号の入力を印刷時に求めるセキュアプリント機能を保有している。プリンタ１０２が保有する機能は、プリンタドライバ２１１のデバイス機能テキストファイル３３２に記載されている。プリント拡張アプリ３００は、デバイス機能テキストファイル３３２に基づいてコンフィグレーションモジュール３３１が生成したプリントケーパビリティを受け取ることで、プリンタ１０２がセキュアプリント機能を保有することを把握する。また、プリント拡張アプリ３００は、コンフィグレーションモジュール３３１によって生成されたプリントチケットを読み込むことで、セキュアプリント機能が現在の印刷設定に設定されていることを把握する。
【００３９】
図１１は、デバイス機能テキストファイル３３２に基づいて、コンフィグレーションモジュール３３１が生成したプリントケーパビリティの一例である。図１１で示されるプリントケーパビリティは、ＸＭＬ形式でプリンタドライバ２１１の能力一覧が示されている。プリントケーパビリティは、１つのＦｅａｔｕｒｅの要素の中に、複数のＯｐｔｉｏｎを持つ。Ｆｅａｔｕｒｅは、機能を表し、その機能で内包するＯｐｔｉｏｎ群は選択肢を表している。プリントケーパビリティ１１０１は、セキュアプリントのＦｅａｔｕｒｅとＯｐｔｉｏｎのＸＭＬでの記述例を示す。ＦｅａｔｕｒｅにＪｏｂＳｅｃｕｒｅＰｒｉｎｔが記述されていることで、セキュアプリント機能が可能であることを示している。また、ＪｏｂＳｅｃｕｒｅＰｒｉｎｔのＦｅａｔｕｒｅの選択肢として、ｎｓ００００：ＳｅｃｕｒｅＰｒｉｎｔすなわち機能を有効にする「オン」と、ｎｓ００００：Ｎｏｎｅすなわち機能を無効にする「オフ」の二つが選択肢であることを示している。
【００４０】
次に、図１２は、ユーザの入力に基づいて、コンフィグレーションモジュール３３１が生成したプリントチケットの一例である。プリントチケットには、プリントケーパビリティで定義されたＸＭＬ形式の各機能の設定値のいずれかが、現在の印刷設定として格納される。例えば、項目１１０１に示すｎｓ００００：ＪｏｂＳｅｃｕｒｅＰｒｉｎｔというＦｅａｔｕｒｅの要素は、本人か否かをパスワード入力によって認証するセキュアプリントの機能を示している。ＪｏｂＳｅｃｕｒｅＰｒｉｎｔのＦｅａｔｕｒｅで内包するＯｐｔｉｏｎがｎｓ００００：ＳｅｃｕｒｅＰｒｉｎｔになっていることで、セキュアプリント機能がオンに設定されていることを示している。また、同Ｏｐｔｉｏｎにｎｓ００００：Ｎｏｎｅが設定されていた場合は、セキュアプリント機能がオンに設定されていることを意味する。また、もしも同Ｏｐｔｉｏｎに何も設定されていない場合には、本実施形態における印刷時起動ＵＩ部３０３は、Ｏｐｔｉｏｎにｎｓ００００：Ｎｏｎｅが設定されていた場合と同等と判定する。項目１１０２に示すｐｓｆ：ＰａｒａｍｅｔｅｒＩｎｉｔには、本人認証のためのパスワードとして入力された値“ＸＸＸＸＸＸ”が保持される。本図では、印刷時にセキュアプリントがＯｎと設定され、パスワードが入力され、プリントチケットにパスワードの値が保持されている場合の例を示している。もしも、印刷時にセキュアプリントがＯｎと設定されたにも関わらず、パスワードが入力されなかった場合は、パスワードの値の箇所は空欄となる。
【００４１】
次に、図６を用いて、タッチアプリ３２１から印刷が行われるまでの基本フローを説明する。図６のフローチャートに示す各動作（ステップ）は、ＣＰＵ２０１が外部メモリ２０９に記憶された各モジュール、コンポーネント、アプリケーションを実現するためのプログラムをＲＡＭ２０２に読み出し、実行することにより実現される。各制御モジュール、コンポーネント、アプリケーションによって提供される制御を説明する場合、ＣＰＵ２０１によって実現される各部を主語として説明する。また、表示、ユーザ操作の受け付け、及びデータ送受信処理などの一部処理は、ＣＰＵ２０１、各Ｉ／Ｆ及び、Ｉ／Ｆに接続された入出力デバイスが協働して実現するものとする。尚、本実施形態では、タッチアプリ３２１（図１０）を用いて説明を行うが、デスクトップアプリ３２２からも印刷可能なことは言うまでもない。図１０（Ａ）は、タッチアプリ３２１が起動された模式図である。タッチアプリ３２１は、メニューコンボタン９００をタップされることで、メニューの選択肢の一覧を羅列する。次に、メニューの選択肢である印刷アイテム９０１がユーザ操作によって選択されることで、タッチアプリ３２１は、ＯＳ２１０に印刷ダイアログ表示の要求を依頼し、印刷ダイアログを表示する。図１０（Ｂ）は、ＯＳ２１０によって生成される簡易的な印刷設定を行う印刷ダイアログである。印刷ダイアログは、印刷設定部９２０とイベント発生部９３０から構成される。印刷設定部９２０には、簡易的な印刷設定の一覧が表示される。９２１は、選択されているプリンタキュー３０８の名称であり、９２２は、設定されている印刷設定の例である。印刷ダイアログは、表示後にユーザ操作を受け付け、印刷イベント発生部９３０の印刷ボタン９３２が押されることで、印刷イベントを発生させる。
【００４２】
印刷イベント発生後に、タッチアプリ３２１は、印刷対象のデータのＸＰＳファイルを生成し、図６で説明する印刷時の基本フローを開始する。本実施形態では、ワークフローを使用して、印刷開始後に確認ＵＩや設定の再入力を行うためのＵＩを表示する仕組みを提供する。具体的な制御方法について、図６に例示する印刷時の基本フローを用いて説明する。尚、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。図６に示すフローは、アプリケーション２１２から印刷イベントが発生したところから始まる。印刷イベントを引き起こすアプリケーション２１２は、タッチアプリ３２１であっても、デスクトップアプリ３２２であってもかまわない。
【００４３】
まず、ステップＳ６０１にて、ＯＳ２１０は、印刷イベントを発生させたアプリケーション２１２が生成したＸＰＳファイルを、スプーラ３２５に渡す。次に、ステップＳ６０２にて、印刷時起動アプリケーション３０５の処理が実行される。本処理は、重要な役割を占めるため、後述する。次に、ステップＳ６０３にて、フィルタパイプラインマネージャ３３５は、プリントチケットとＸＰＳファイルを、ステップＳ６０１の処理の結果に応じて、スプーラまたは印刷時起動アプリケーション３０５から取得する。次に、ステップＳ６０４にて、フィルタパイプラインマネージャ３３５は、フィルタコンフィグ３３６の定義に基づき、フィルタ３３０を外部メモリ２０９から読み出し、ＲＡＭ２０２に展開する。次に、ステップＳ６０５にて、フィルタパイプラインマネージャ３３５は、ＸＰＳファイルをフィルタ３３０に渡す。ステップＳ６０６にて、フィルタ３３０は、ＸＰＳファイルをＰＤＬに変換し、スプーラ３２５にＰＤＬを渡す。そして、ステップＳ６０７にて、スプーラ３２５は、ＰＤＬをプリンタ１０２に送信する。
【００４４】
次に、図１４を用いて、基本的な印刷フローに関して説明する。本フローの説明ではデスクトップアプリ３２２からの印刷について記載する。印刷機能を持ったデスクトップアプリ３２２から印刷を開始するために、ユーザーは出力先のプリンタ１０２と紐づいたプリントキュー３０８を選択する。その際、対象のプリントキュー３０８に関連したプリンタドライバ２１１の印刷設定ＵＩ３６０を開くことにより、様々な機能変更の機能変更を行うことができる。例えば、一枚の紙に両面印字する設定である「両面設定」や、印字結果をモノクロ印刷する「白黒」などの設定変更が可能となる。ここで、複数の画像形成装置が混在するエンタープライズ環境においては、ポップアップＵＩを表示するか否かを画像形成装置ごとに使い分けたいといった要望がある。そこで、本実施形態では、画像形成装置に紐づくプリントキュー毎にポップアップ表示を制御できるようにする。具体的には、プリントキューに紐付く記憶領域３４０に、ポップアップ表示を行うか否かを示す設定を記憶させる。
【００４５】
続いて当該設定の変更する方法について説明する。ユーザは、当該設定を、プリンタドライバの印刷設定ＵＩ３６０が表示するプロパティ画面を介して変更することができる。図１５は、プロパティ画面の一例であり、「印刷時にユーザー設定情報を確認する」の設定項目が選択され、設定値のリストが表示されている場合を例示している。設定値としては、「オン」／「オフ」が用意される。ユーザは、当該リストから設定値を選択することで設定を変更することができる。ユーザによって設定変更の操作がなされたことを検知した印刷設定ＵＩ３６０は、この設定情報に基づき、デバイス機能テキストファイル３３２の機能定義部に対して、特定の記述を行う。プリンティングシステム３３７は、当該特定の記述に基づき当該プリンタドライバに対応付けられたプリントキューに紐付く記憶領域３４０の設定を変更する。
【００４６】
図１３を用いて具体的な記述を説明する。Ｆｅａｔｕｒｅ属性に対して＊ＦｅａｔｕｒｅＴｙｐｅ：ＰＲＩＮＴＥＲ＿ＰＲＯＰＥＲＴＹ属性（１２０１）を記載することで、プリントキュー毎の設定を表現する。プロパティ画面で「オン」が設定された場合、ＯＮを示すオブション１２０３が記述され、オブション１２０２の記述は消去される。また、プロパティ画面で「オフ」が設定された場合、ＯＦＦを示すオプション１２０２が記述される。プリンティングシステム３３７は、当該記述を参照することで、記憶領域３４０の設定を更新する。
【００４７】
次に、当該変更処理の具体的な制御方法について図２０のフローチャートを用いて説明する。図２０のフローチャートに示す各動作（ステップ）は、ＣＰＵ２０１が外部メモリ２０９に記憶された各モジュール、コンポーネント、アプリケーションを実現するためのプログラムをＲＡＭ２０２に読み出し、実行することにより実現される。各制御モジュール、コンポーネント、アプリケーションによって提供される制御を説明する場合、ＣＰＵ２０１によって実現される各部を主語として説明する。また、表示、ユーザ操作の受け付け、及びデータ送受信処理などの一部処理は、ＣＰＵ２０１、各Ｉ／Ｆ及び、Ｉ／Ｆに接続された入出力デバイスが協働して実現するものとする。
【００４８】
まず、ステップＳ２００１にて、印刷設定ＵＩ３６０は、プリントキューに対応付けて記憶された設定情報を取得し、図１５で例示した選択肢を含む画面を表示する。次に、ステップＳ２００２にて、印刷設定ＵＩ３６０は、ユーザー操作を受け付ける状態に遷移し、ユーザ入力を受け付ける。当該入力には、セキュアプリント機能を使用するか否かの設定変更などが含まれる。ステップＳ２００３にて、印刷設定ＵＩ３６０は、ユーザー操作により入力が行われたか否かのの判定を行い、入力が行われていない場合はステップＳ２００２に戻る。一方、入力が行われた場合は、ステップＳ２００４へ進む。次に、ステップＳ２００４において、印刷設定ＵＩ３６０は、ＯＳと協働し、ステップＳ２００２で入力された設定情報を、プリントキューに紐づく記憶領域３４０に保存し、一連の処理を終了する。なお、プリントキューに記憶されたセキュアプリント機能をセキュアプリント機能を使用するか否かの設定は、後述のフローチャートにて参照される。
【００４９】
続けて図７〜図９を用いて、印刷時起動処理について説明する。図７及び図８のフローチャートに示す各動作（ステップ）は、ＣＰＵ２０１が外部メモリ２０９に記憶された各モジュール、コンポーネント、アプリケーションを実現するためのプログラムをＲＡＭ２０２に読み出し、実行することにより実現される。各制御モジュール、コンポーネント、アプリケーションによって提供される制御を説明する場合、ＣＰＵ２０１によって実現される各部を主語として説明する。また、表示、ユーザ操作の受け付け、及びデータ送受信処理などの一部処理は、ＣＰＵ２０１、各Ｉ／Ｆ及び、Ｉ／Ｆに接続された入出力デバイスが協働して実現するものとする。まず、ステップＳ７０１にて、ＯＳ２１０は、レジストリ３５３の設定を読み込む。次に、ステップＳ７０２にて、レジストリ３５３に印刷時起動アプリケーション３０５を起動することが設定されていない場合、ＯＳ２１０は、一連のＵＩ起動処理をスキップし、処理をステップＳ６０３以降のデータ変換、送信処理に進める。一方、レジストリ３５３に印刷時起動アプリケーション３０５を起動するように設定されている場合には、ＯＳ２０１は、処理をステップＳ７０３に進める。なお、レジストリ３５３にバックグラウンドタスクを使用しないことが設定されている場合も、一連のＵＩ起動処理をスキップするものとする。
【００５０】
次に、ステップＳ７０３にて、ＯＳ２１０は、印刷時起動アプリランチャ３５０を起動する。その後、ステップＳ７０４にて、印刷時起動アプリランチャ３５０は、ＯＳ２１０に印刷時起動アプリケーション３０５をバックグラウンドタスクとして起動するよう要求を出す。すると、タッチアプリ実行環境３０１がプリント拡張アプリ３００をＲＡＭ２０２に展開することで、印刷時起動アプリケーション３０５が起動される。次に、ステップＳ７０５にて、印刷時起動アプリケーション３０５は、プリントチケットをコンフィグレーションモジュール３３１から取得し、プリントチケットの内容を解析し、解析結果からどのような機能設定やパラメータが記述されているかを抽出する。
【００５１】
次に、ステップＳ７１３において、印刷時起動アプリケーション３０５は、印刷に使用する画像形成装置に対応するプリントキュー３０８に紐づいた記憶領域３４０の情報を取得する。本実施形態では、ポップアップ表示をするか否かの設定情報を取得し、ステップＳ７１４に進む。ステップＳ７１４において、印刷時起動アプリケーション３０５は、ステップＳ７１３で取得した設定情報を用いて、ポップアップ表示を行うか否かを判定する。判定結果から、ポップアップを行わない、つまり「オフ」が設定されている場合、ＯＳ２１０は、一連のＵＩ起動処理をスキップし、処理をステップＳ６０３以降のデータ変換、送信処理に進める。もしポップアップ表示を行う、つまり「オン」が設定されている場合はステップＳ７０６に進む。
【００５２】
そして、ステップＳ７０６にて、印刷時起動アプリケーション３０５は、プリントチケットから抽出した機能に、セキュアプリントの機能の設定があり、かつＯＮと設定されているかどうかを判定する。ステップＳ７０６でセキュアプリントが設定されていない場合には、ＯＳ２１０は、一連のＵＩ起動処理をスキップし、処理をステップＳ６０３以降のデータ変換、送信処理に進める。ステップＳ７０６でセキュアプリント設定があり、かつＯＮと設定されているのであれば、ステップＳ７０７にて、印刷時起動アプリケーション３０５は、ＯＳ２１０に印刷時起動ＵＩ部３０３の表示要求を出す。要求を受け付けたＯＳ２１０は、ステップＳ７０８にて、ＯＳ２１０内のスレッドプール３５５からパスワード入力用ＵＩスレッドをプリント拡張アプリ３００に割り当て、プリント拡張アプリ３００の印刷時起動ＵＩ部３０３を生成する。
【００５３】
そして、印刷時起動ＵＩ部３０３をディスプレイ２０７に表示する。本実施形態では、ステップＳ７０８にて、図９（Ａ）に示すパスワード入力画面が表示される。続けて、ステップＳ７０９にて、印刷時起動ＵＩ部３０３は、ユーザ操作を受け付ける。図９（Ａ）のテキストボックス８１０は、パスワード入力テキストボックスであり、ユーザからのパスワードの入力を受け付ける。ボタン８１１は、ＯＫボタンであり、クリックなどの操作イベントを受け付けた際に、パスワード入力テキストボックス８１０で入力されたパスワードを確定させ、プリントチケットに反映する。このＯＫボタン８１１は、パスワード入力テキストボックス８１０の入力が不正の場合や、未入力である場合には、グレーアウトやメッセージを表示することでパスワードの確定を受け付けなくてもよい。ボタン８１２は、キャンセルボタンであり、クリックなどの操作を受け付けることで、印刷をキャンセルする。
【００５４】
図８の説明に戻り、ユーザ操作による入力を受け付けると、印刷時起動ＵＩ部３０３は、ウィンドウを閉じ、処理をステップＳ７１１に進める。そして、ステップＳ７１１にて、印刷時起動アプリケーション３０５は、印刷時起動ＵＩ部３０３からプリントチケットとＸＰＳファイルを取得する。続けて、ステップＳ７１２にて、印刷時起動アプリケーション３０５は、取得したプリントチケットとＸＰＳファイルをフィルタパイプラインマネージャ３３５に送信する。
【００５５】
以上、本実施形態によれば、印刷時起動アプリケーション３０５は、プリントチケットを解析し、セキュアプリント機能の設定の有効／無効によって印刷起動ＵＩ部の表示を判定する。そのため、セキュアプリント機能の設定が有効になっている場合に、ユーザに強制的に入力を促すような画面を表示することが可能となる。また、本実施形態によれば、画像形成装置に紐づくプリントキュー毎にポップアップ表示を行うか否かを切り替えることができる。従って、ユーザや管理者の意図に沿った画面表示を行うことができるようになる。
【００５６】
（第２実施形態）
第１実施形態では、セキュアプリント機能の設定の有効／無効によって印刷起動ＵＩ部の表示を判定することによって、ユーザに強制的に入力を促すような画面を表示する仕組みについて説明した。本実施形態では、パスワードというパラメータの有無をも印刷起動ＵＩ部の表示の判定に利用する仕組みについて説明する。
【００５７】
本実施形態に係る具体的な処理について、図１６及び図１７を用いて説明する。尚、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。また、既に説明済みの番号は、その詳細な説明を省略する。ステップＳ１２０１〜ステップＳ１２０４に示す印刷時起動アプリケーション３０５の起動処理までは第１実施形態の図７のステップＳ７０１〜ステップＳ７０４と同様の処理であるため、その詳細な説明を省略する。そして、ステップＳ１２０５にて、印刷時起動アプリケーション３０５は、プリントチケットをコンフィグレーションモジュール３３１から取得し、プリントチケットの内容を解析し、どのような機能設定やパラメータが記述されているかを抽出する。
【００５８】
次に、ステップＳ１２１３において、印刷時起動アプリケーション３０５は、プリントキュー３０８に紐づいた記憶領域３４０の情報を取得する。本実施形態では、ポップアップ表示をするか否かの設定情報を取得し、ステップＳ１２１４に進む。ステップＳ１３１４において、印刷時起動アプリケーション３０５は、ステップＳ１２１３で取得した設定情報を用いて、ポップアップ表示を行うか否かを判定する。もしポップアップを行わない、つまり「オフ」が設定されている場合、ＯＳ２１０は、一連のＵＩ起動処理をスキップし、処理をステップＳ６０３以降のデータ変換、送信処理に進める。もしポップアップ表示を行う、つまり「オン」が設定されている場合はステップＳ１２０６に進む。
【００５９】
そして、ステップＳ１２０６にて、印刷時起動アプリケーション３０５は、プリントチケットから抽出した機能に、セキュアプリントの機能の設定があり、かつＯＮと設定されているかどうかを判定する。ステップＳ１２０６でセキュアプリントが設定されていない場合には、ＯＳ２１０は、一連のＵＩ起動処理をスキップし、処理をステップＳ６０３以降のデータ変換、送信処理に進める。一方、ステップＳ１２０６でセキュアプリント設定があり、かつＯＮと設定されているのであれば、ステップＳ１２０７にて、プリントチケット内のパスワードの有無を判定する。
【００６０】
そして、ステップＳ１２０７で印刷時起動アプリケーション３０５が、プリントチケット内にパスワードが無いと判定した場合は、ステップＳ１２０８にて、印刷時起動アプリケーション３０５は、ＯＳ２１０に印刷時起動ＵＩ部３０３の表示要求を出す。要求を受け付けたＯＳ２１０は、ステップＳ１２０９にて、ＯＳ２１０内のスレッドプール３５５からパスワード入力用ＵＩスレッドをプリント拡張アプリ３００に割り当て、プリント拡張アプリ３００の印刷時起動ＵＩ部３０３を生成する。そして、印刷時起動ＵＩ部３０３をディスプレイ２０７に表示する。本実施形態では、ステップＳ１２０９で図９（Ａ）に示すパスワード入力画面が表示される。続けて、ステップＳ１２１０にて、印刷時起動ＵＩ部３０３は、ユーザ操作を受け付ける。
【００６１】
ここで、図９（Ａ）のテキストボックス８１０は、パスワード入力テキストボックスであり、ユーザからのパスワードの入力を受け付ける。ＯＫボタン８１１は、ＯＫボタンであり、クリックなどの操作イベントを受け付けた際に、パスワード入力テキストボックス８１０で入力されたパスワードを確定させ、プリントチケットに反映する。このＯＫボタン８１１は、パスワード入力テキストボックス８１０の入力が不正の場合や、未入力である場合には、グレーアウトやメッセージを表示することでパスワードの確定を受け付けなくてもよい。ボタン８１２は、キャンセルボタンであり、クリックなどの操作を受け付けることで、印刷をキャンセルする。
【００６２】
図１７の説明に戻り、ユーザ操作による入力を受け付けると、印刷時起動ＵＩ部３０３は、ウィンドウを閉じ、処理をステップＳ１２１２に進める。ステップＳ１２１２にて、印刷時起動アプリケーション３０５は、印刷時起動ＵＩ部３０３からプリントチケットとＸＰＳファイルを取得する。続けて、ステップＳ１２１３にて、印刷時起動アプリケーション３０５は、取得したプリントチケットとＸＰＳファイルをフィルタパイプラインマネージャ３３５に送信する。
【００６３】
以上、本実施形態によれば、印刷時起動アプリケーション３０５は、プリントチケットを解析し、セキュアプリント機能の設定の有効／無効だけでなく、パスワードというパラメータの有無によって印刷起動ＵＩ部の表示を判定する。そのため、セキュアプリント機能のパスワードの入力漏れの場合のみに、ユーザに画面を表示することが可能となる。
【００６４】
（第３実施形態）
第２実施形態では、パスワードというパラメータの有無をも印刷起動ＵＩ部の表示の判定に利用する仕組みについて説明した。本実施形態では、パスワードというパラメータの有無を、印刷起動ＵＩ部の表示における画面の種類を動的に変更するために利用する仕組みについて説明する。本実施形態に係る具体的な処理について、図１８及び図１９を用いて説明する。尚、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。また、既に説明済みの番号は、その詳細な説明を省略する。ステップＳ１３０１〜ステップＳ１３０４に示す印刷時起動アプリケーション３０５の起動処理までは第１実施形態の図７のステップＳ７０１〜ステップＳ７０４と同様の処理であるため、その詳細な説明を省略する。そして、ステップＳ１３０５にて、印刷時起動アプリケーション３０５は、プリントチケットをコンフィグレーションモジュール３３１から取得し、プリントチケットの内容を解析し、どのような機能設定やパラメータが記述されているかを抽出する。
【００６５】
次に、ステップＳ１３１３において、印刷時起動アプリケーション３０５は、プリントキュー３０８に紐づいた記憶領域３４０の情報を取得する。本実施形態では、ポップアップ表示をするか否かの設定情報を取得し、ステップＳ１３１４に進む。ステップＳ１３１４において、印刷時起動アプリケーション３０５は、ステップＳ１３１３で取得した設定情報を用いて、ポップアップ表示を行うか否かを判定する。もしポップアップを行わない、つまり「オフ」が設定されている場合、ＯＳ２１０は、一連のＵＩ起動処理をスキップし、処理をステップＳ６０３以降のデータ変換、送信処理に進める。もしポップアップ表示を行う、つまり「オン」が設定されている場合はステップＳ１３０６に進む。
【００６６】
そして、ステップＳ１３０６にて、印刷時起動アプリケーション３０５は、プリントチケットから抽出した機能に、セキュアプリントの機能の設定があり、かつＯＮと設定されているかどうかを判定する。ステップＳ１３０６でセキュアプリントが設定されていない場合には、ＯＳ２１０は、一連のＵＩ起動処理をスキップし、処理をステップＳ６０３以降のデータ変換、送信処理に進める。一方、ステップＳ１３０６でセキュアプリント設定があり、かつＯＮと設定されているのであれば、ステップＳ１３０７にて、プリントチケット内のパスワードの有無を判定する。
【００６７】
そして、ステップＳ１３０７で印刷時起動アプリケーション３０５がプリントチケット内にパスワードが無いと判定した場合、ステップＳ１３０８にて、印刷時起動アプリケーション３０５は、ＯＳ２１０に、警告用の印刷時起動ＵＩ部３０３の表示要求を出す。要求を受け付けたＯＳ２１０は、ステップＳ１３０９にて、ＯＳ２１０内のスレッドプール３５５からパスワード入力用ＵＩスレッドをプリント拡張アプリ３００に割り当て、プリント拡張アプリ３００の印刷時起動ＵＩ部３０３を警告用画面に生成する。そして、警告用画面に生成した印刷時起動ＵＩ部３０３をディスプレイ２０７に表示する。本実施形態では、ステップＳ１３０９で図９（Ｂ）に示す画面が表示される。
【００６８】
一方、ステップＳ１３０７で印刷時起動アプリケーション３０５がプリントチケット内にパスワードが有ると判定した場合、ステップＳ１３１４にて、印刷時起動アプリケーション３０５は、ＯＳ２１０に、確認用の印刷時起動ＵＩ部３０３の表示要求を出す。要求を受け付けたＯＳ２１０は、ステップＳ１３１５にて、ＯＳ２１０内のスレッドプール３５５からパスワード入力用ＵＩスレッドをプリント拡張アプリ３００に割り当て、プリント拡張アプリ３００の印刷時起動ＵＩ部３０３を確認用画面に生成する。そして、確認用画面に生成した印刷時起動ＵＩ部３０３をディスプレイ２０７に表示する。
【００６９】
本実施形態では、ステップＳ１３１５で図９（Ｃ）に示す画面が表示される。警告用、もしくは確認用に生成した印刷時起動ＵＩ部３０３を表示した後の処理は共通であるため図９（Ｂ）を用いて説明する。ステップＳ１３１０にて、印刷時起動ＵＩ部３０３は、ユーザ操作を受け付ける。図９（Ｂ）のテキストボックス８２０は、パスワード入力テキストボックスであり、ユーザからのパスワードの入力を受け付ける。ＯＫボタン８２１は、ＯＫボタンであり、クリックなどの操作イベントを受け付けた際に、パスワード入力テキストボックス８２０で入力されたパスワードを確定させ、プリントチケットに反映する。このＯＫボタン８２１は、パスワード入力テキストボックス８２０の入力が不正の場合や、未入力である場合には、グレーアウトやメッセージを表示することでパスワードの確定を受け付けなくてもよい。キャンセルボタン８２２は、キャンセルボタンであり、クリックなどの操作を受け付けることで、印刷をキャンセルする。
【００７０】
図１９の説明に戻り、ユーザ操作による入力を受け付けると、印刷時起動ＵＩ部３０３は、ウィンドウを閉じ、処理をステップＳ１３１２に進める。ステップＳ１３１２にて、印刷時起動アプリケーション３０５は、印刷時起動ＵＩ部３０３からプリントチケットとＸＰＳファイルを取得する。続けて、ステップＳ１３１３にて、印刷時起動アプリケーション３０５は、取得したプリントチケットとＸＰＳファイルをフィルタパイプラインマネージャ３３５に送信する。
【００７１】
以上、本実施形態によれば、印刷時起動アプリケーション３０５は、プリントチケットを解析し、パスワードというパラメータの有無によって印刷起動ＵＩ部の表示を判定し、かつ表示する画面の種類を動的に変更する。そのため、ユーザにどのような状況が発生しているのかを知らしめることが可能となる。
【００７２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７３】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019197249.tif 000003
【図２】
2019197249.tif 000004
【図３】
2019197249.tif 000005
【図４】
2019197249.tif 000006
【図５】
2019197249.tif 000007
【図６】
2019197249.tif 000008
【図７】
2019197249.tif 000009
【図８】
2019197249.tif 000010
【図９】
2019197249.tif 000011
【図１０】
2019197249.tif 000012
【図１１】
2019197249.tif 000013
【図１２】
2019197249.tif 000014
【図１３】
2019197249.tif 000015
【図１４】
2019197249.tif 000016
【図１５】
2019197249.tif 000017
【図１６】
2019197249.tif 000018
【図１７】
2019197249.tif 000019
【図１８】
2019197249.tif 000020
【図１９】
2019197249.tif 000021
【図２０】
2019197249.tif 000022