(57)【特許請求の範囲】
【請求項１】
２以上の印刷設定間の競合を解消するコンフリクトの解消処理を行う第１のモジュールの初期化を行う初期化手段と、
前記第１のモジュールを有するアプリケーションが提供する画面を介して印刷設定の変更を受け付ける受付手段と、
前記受付手段が前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了している場合は前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記受付手段が前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了していない場合は前記アプリケーションの外部のモジュールである第２のモジュールによるコンフリクトの解消処理の機能を呼び出す制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記第１のモジュールの初期化が完了しているか否かを判断する判断手段と、を有し、
前記制御手段は、前記受付手段が前記印刷設定の変更を受け付けてかつ前記判断手段が前記第１のモジュールの初期化が完了していると判断した場合に前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記受付手段が前記印刷設定の変更を受け付けてかつ前記判断手段が前記第１のモジュールの初期化が完了していないと判断した場合に前記第２のモジュールによるコンフリクトの解消処理の機能を呼び出すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
２以上の印刷設定間の競合を解消するコンフリクトの解消処理を行う第１のモジュールの初期化を行う初期化手段と、
前記第１のモジュールを有するアプリケーションが提供する画面を介して印刷設定の変更を受け付ける受付手段と、
前記アプリケーションが提供する画面を介して所定の指示が受け付けられたかと、前記第１のモジュールの初期化が完了しているか否かの条件に基づき、前記第１のモジュールによる前記コンフリクトの解消処理を行うよう制御するか、前記アプリケーションの外部のモジュールである第２のモジュールによるコンフリクトの解消処理の機能を呼び出すよう制御するかを異ならせる制御手段と、を有することを特徴とする情報処理装置。
【請求項４】
前記第１のモジュールの初期化が完了しているか否かを判断する判断手段と、を有し、
前記制御手段は、前記受付手段が前記印刷設定の変更を受け付けてかつ前記判断手段が前記第１のモジュールの初期化が完了していると判断した場合に前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記アプリケーションを終了する前記所定の指示を受け付けてかつ前記判断手段が前記第１のモジュールの初期化が完了していないと判断した場合に前記第２のモジュールによるコンフリクトの解消処理の機能を呼び出すことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記判断手段は、第１の印刷設定画面から第２の印刷設定画面に遷移するための指示をユーザーから受け付けたことに応じて、前記第１のモジュールの初期化が完了しているか否かを判断することを特徴とする請求項２又は４に記載の情報処理装置。
【請求項６】
前記制御手段は、前記判断手段が前記第１のモジュールの初期化は完了していないと判断した場合に、前記第２の印刷設定画面で印刷設定の変更を受け付けないように制御を行うことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記判断手段は、印刷設定を変更する指示をユーザーから受け付けたことに応じて、前記第１のモジュールの初期化が完了しているか否かを判断することを特徴とする請求項２又は４に記載の情報処理装置。
【請求項８】
前記制御手段は、前記判断手段が前記第１のモジュールの初期化は完了していないと判断した場合に、前記第１のモジュールの初期化が完了するまでユーザーからさらなる印刷設定の変更を受け付けずに待機することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記第１のモジュールの初期化をバックグラウンドで行うか、又はアプリケーションの起動時に行うかを設定する設定手段と、を有し、
前記判断手段は、前記設定手段が前記第１のモジュールの初期化をバックグラウンドで行う設定を行った場合に、前記第１のモジュールの初期化が完了しているか否かを判断し、
前記制御手段は、前記設定手段が前記第１のモジュールの初期化を前記アプリケーションの起動時に行う設定を行った場合に、前記アプリケーションの起動時に前記第１のモジュールの初期化を行うことを特徴とする請求項２又は４に記載の情報処理装置。
【請求項１０】
コンピューターに、印刷設定制御を実行させるためのアプリケーションプログラムであって、
前記アプリケーションプログラムは、前記コンピューターに、
２以上の印刷設定間の競合を解消するコンフリクトの解消処理を行う第１のモジュールの初期化を行う初期化工程と、
印刷設定の変更を受け付ける受付工程と、
前記受付工程で前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了している場合は前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記受付工程で前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了していない場合は前記アプリケーションプログラムの外部のモジュールである第２のモジュールによるコンフリクトの解消処理の機能を呼び出す制御工程と、
を実行させることを特徴とするアプリケーションプログラム。
【請求項１１】
前記コンピューターに、
前記第１のモジュールの初期化が完了しているか否かを判断する判断工程を更に実行させ、
前記制御工程では、前記受付工程で前記印刷設定の変更を受け付けてかつ前記判断工程で前記第１のモジュールの初期化が完了していると判断した場合に前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記受付工程で前記印刷設定の変更を受け付けてかつ前記判断工程で前記第１のモジュールの初期化が完了していないと判断した場合に前記第２のモジュールによるコンフリクトの解消処理の機能を呼び出すことを特徴とする請求項１０に記載のアプリケーションプログラム。
【請求項１２】
コンピューターに、印刷設定制御を実行させるためのアプリケーションプログラムであって、
前記アプリケーションプログラムは、前記コンピューターに、
２以上の印刷設定間の競合を解消するコンフリクトの解消処理を行う第１のモジュールの初期化を行う初期化工程と、
印刷設定の変更を受け付ける受付工程と、
前記アプリケーションプログラムが提供する画面を介して所定の指示が受け付けられたかと、前記第１のモジュールの初期化が完了しているか否かの条件に基づき、前記第１のモジュールによる前記コンフリクトの解消処理を行うよう制御するか、前記アプリケーションプログラムの外部のモジュールである第２のモジュールによるコンフリクトの解消処理の機能を呼び出すよう制御するかを異ならせる制御工程と、
を実行させることを特徴とするアプリケーションプログラム。
【請求項１３】
前記コンピューターに、
前記第１のモジュールの初期化が完了しているか否かを判断する判断工程を更に実行させ、
前記制御工程では、前記受付工程で前記印刷設定の変更を受け付けてかつ前記判断工程で前記第１のモジュールの初期化が完了していると判断した場合に前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記アプリケーションプログラムを終了する前記所定の指示を受け付けてかつ前記判断工程で前記第１のモジュールの初期化が完了していないと判断した場合に前記第２のモジュールによるコンフリクトの解消処理の機能を呼び出すことを特徴とする請求項１２に記載のアプリケーションプログラム。
【請求項１４】
前記判断工程では、第１の印刷設定画面から第２の印刷設定画面に遷移するための指示をユーザーから受け付けたことに応じて、前記第１のモジュールの初期化が完了しているか否かを判断することを特徴とする請求項１１又は１３に記載のアプリケーションプログラム。
【請求項１５】
前記制御工程では、前記判断工程で前記第１のモジュールの初期化は完了していないと判断した場合に、前記第２の印刷設定画面で印刷設定の変更を受け付けないように制御を行うことを特徴とする請求項１４に記載のアプリケーションプログラム。
【請求項１６】
前記判断工程は、印刷設定を変更する指示をユーザーから受け付けたことに応じて、前記第１のモジュールの初期化が完了しているか否かを判断することを特徴とする請求項１１又は１３に記載のアプリケーションプログラム。
【請求項１７】
前記制御工程は、前記判断工程で前記第１のモジュールの初期化は完了していないと判断した場合に、前記第１のモジュールの初期化が完了するまでユーザーからさらなる印刷設定の変更を受け付けずに待機することを特徴とする請求項１６に記載のアプリケーションプログラム。
【請求項１８】
前記コンピューターに、
前記第１のモジュールの初期化をバックグラウンドで行うか、又はアプリケーションの起動時に行うかを設定する設定工程を更に実行させ、
前記判断工程では、前記設定工程で前記第１のモジュールの初期化をバックグラウンドで行う設定を行った場合に、前記第１のモジュールの初期化が完了しているか否かを判断し、
前記制御工程では、前記設定工程で前記第１のモジュールの初期化を前記アプリケーションの起動時に行う設定を行った場合に、前記アプリケーションの起動時に前記第１のモジュールの初期化を行うことを特徴とする請求項１１又は１３に記載のアプリケーションプログラム。
【請求項１９】
前記第２のモジュールは、前記コンピューター上で動作するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が提供するモジュールであることを特徴とする請求項１０乃至１８のいずれか１項に記載のアプリケーションプログラム。
【請求項２０】
２以上の印刷設定間の競合を解消するコンフリクトの解消処理を行う第１のモジュールの初期化を行う初期化工程と、
前記第１のモジュールを有するアプリケーションの画面を介して印刷設定の変更を受け付ける受付工程と、
前記受付工程で前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了している場合は前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記受付工程で前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了していない場合は前記アプリケーションの外部のモジュールである第２のモジュールによるコンフリクトの解消処理の機能を呼び出す制御工程と、を有することを特徴とする制御方法。
【請求項２１】
２以上の印刷設定間の競合を解消するコンフリクトの解消処理を行う第１のモジュールの初期化を行う初期化工程と、
前記第１のモジュールを有するアプリケーションの画面を介して印刷設定の変更を受け付ける受付工程と、
前記アプリケーションが提供する画面を介して所定の指示が受け付けられたかと、前記第１のモジュールの初期化が完了しているか否かの条件に基づき、前記第１のモジュールによる前記コンフリクトの解消処理を行うよう制御するか、前記アプリケーションの外部のモジュールである第２のモジュールによるコンフリクトの解消処理の機能を呼び出すよう制御するかを異ならせる制御工程と、を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷設定のコンフリクトの解消を行う技術に関する。
【背景技術】
【０００２】
ユーザーが印刷設定を変更することによって、変更後の印刷設定が２つの印刷設定が無効となる組み合わせ（コンフリクト）を含むことがある。
特許文献１はこのようなコンフリクトを想定して、コンフリクト処理ルールの読み込み、コントロールの制御を行う技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０９９１７０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンフリクトが発生した場合、特許文献１が示すコントロールの制御の他に、例えば優先順位が最も低い機能を使用しないように強制的に印刷設定を変更することでコンフリクトを解消する処理を行うことができる。
【０００５】
本明細書ではコンフリクトの解消処理について２つのモジュールを利用可能な場合について検討する。第１のモジュールは初期化に時間がかかるが、初期化後は高速にコンフリクトの解消処理を行うことができる。第２のモジュールは例えば印刷設定を行うアプリケーションが初期化を行う必要はないが、コンフリクトの解消処理自体は低速である。
【０００６】
この２つのモジュールのうち、第１のモジュールだけを用いるとユーザーは第１のモジュールが初期化されるまで待機しなければならない。一方、第２のモジュールだけを用いると、ユーザーは印刷設定を変更する度に、第１のモジュールのコンフリクトの解消処理よりも長い時間、第２のモジュールのコンフリクトの解消処理の完了を待機しなければならない。
【０００７】
これに対して本発明は第１のモジュールと第２のモジュールの２つのモジュールによって生じるユーザーの待機時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明に係る情報処理装置は、
２以上の印刷設定間の競合を解消するコンフリクトの解消処理を行う第１のモジュールの初期化を行う初期化手段と、
前記第１のモジュールを有するアプリケーションが提供する画面を介して印刷設定の変更を受け付ける受付手段と、
前記受付手段が前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了している場合は前記第１のモジュールによる前記コンフリクトの解消処理を行い、前記受付手段が前記印刷設定の変更を受け付けてかつ前記第１のモジュールの初期化が完了していない場合は前記アプリケーションの外部のモジュールである第２のモジュールによるコンフリクトの解消処理の機能を呼び出す制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明は第１のモジュールと第２のモジュールの２つのモジュールによって生じるユーザーの待機時間を短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】システム構成を示す模式図である
【図２】クライアントコンピュータのハードウェア構成を示す図である
【図３】アプリケーションとドライバーの構成を示す図である
【図４】タッチパネルアプリケーションの画面遷移を示す図である
【図５】タッチパネル印刷詳細設定アプリケーションの画面を示す図である
【図６】タッチパネル印刷詳細設定アプリケーションのフローチャートである
【図７】実施例２のタッチパネル印刷詳細設定アプリケーションのフローチャートである
【図８】実施例３のタッチパネル印刷詳細設定アプリケーションのフローチャートである
【図９】実施例４のタッチパネル印刷詳細設定アプリケーションのフローチャートである
【図１０】実施例５のタッチパネル印刷詳細設定アプリケーションのフローチャートである
【図１１】タッチアプリＵＩの模式図である
【図１２】プリントケイパビリティとプリントチケットの一例である
【図１３】アプリＧＰＤファイルの一例である
【図１４】タッチパネル印刷設定機能の構成図である。
【図１５】実施例６のタッチパネル印刷詳細設定アプリケーションのフローチャートである
【図１６】コンフリクト処理の通知を示す図である
【発明を実施するための形態】
【００１１】
〔実施例１〕
図１に、本発明に係るシステム構成の概略を表す模式図を示す。このシステムは、情報処理装置の一例であるクライアントコンピュータ１０１とページ記述言語（ＰＤＬ）形式の印刷データを受信し印刷を行うことが可能なプリンタ１０２を備える。これらはローカル・エリア・ネットワーク（ＬＡＮ）に代表されるネットワーク１０３を介して接続され通信可能であり、ネットワーク１０３は、外部のネットワークと接続され通信可能である。なお、プリンタ１０２は、印刷機能のみを備えるシングルファンクションプリンタでも、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタでも構わない。
【００１２】
図２は、図１のクライアントコンピュータ１０１のハードウェア構成を示すブロック図である。クライアントコンピュータ１０１において、中央演算処理装置（ＣＰＵ）は、ランダムアクセスメモリ（ＲＡＭ２０２）に記憶されているプログラムに従って、システムバスに接続される各デバイスを制御する。なお、クライアントコンピュータ１０１は、少なくとも１つのＣＰＵ２０１を備える。加えて、ＣＰＵ２０１が外部メモリ２０９に記憶されているプログラムに基づき処理を実行することによって、図３に示されるようなクライアントコンピュータ１０１のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。このＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。リードオンリーメモリ（ＲＯＭ）２０３は、ブートプログラムや基本入出力システム（ＢＩＯＳ）等の各種プログラムが書き込まれてある。操作入力装置インターフェース（Ｉ／Ｆ）２０４は、キーボードやポインティングデバイス（マウス）タッチＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などの操作入力装置２０５を制御するインターフェースである。ディスプレイＩ／Ｆ２０６はディスプレイ２０７への画面表示を制御する。外部メモリＩ／Ｆ２０８は、例えばハードディスク（ＨＤ）、ソリッドステートディスク（ＳＳＤ）等の外部メモリ２０９とのアクセスを制御する。外部メモリ２０９は、オペレーティングシステムプログラム（ＯＳ）２１０をはじめ、タッチパネル、デスクトップそれぞれに対応した各種アプリケーション２１２、プリンタードライバーを含むドライバー２１１、各種ファイル等を記憶し、コンピューターが読み取り可能な記憶媒体として機能する。ネットワークＩ／Ｆ２１３は、ネットワーク１０３を介してプリンタ１０２に接続され、プリンタ１０２との間で通信制御処理を行なう。
【００１３】
図３に、ＯＳ２１０で動作するアプリケーションとドライバーの構成図を示す。本図は、ユーザーが直接操作を行うことができるアプリケーション層とアプリケーションからの要求に応じ、ＯＳ２１０が制御するドライバー・ＯＳ層に分かれる。各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。ＯＳ２１０で行われる印刷に関する処理はタッチパネルで行われる印刷指示と、ドライバー・ＯＳ層の印刷処理に分けられる。最初にタッチパネルで行われる印刷指示におけるソフトウェアコンポーネントについて説明する。
【００１４】
各タッチパネルアプリケーション３００４は、印刷用の基本ＵＩである基本印刷設定ＵＩ８５００を持ち、ユーザーの要求に応じてプリントキュー情報３３０２をＯＳ２１０から取得し、プリントキュー情報３３０２と関連づいた基本印刷設定ＵＩ８５００を表示する。ここでプリントキュー情報３３０２とは、インストールされているプリンタードライバー名などを含む、プリンタードライバーごとの情報である。また、基本印刷設定ＵＩ８５００とはプリントケイパビリティ３２０２とプリントチケット３１０２を基にＯＳ２１０が作成して表示する簡易的な印刷設定ＵＩである。プリントチケット３１０２とは設定されている印刷設定の情報である。プリントケイパビリティ３２０２とは、ドライバー２１１が設定できる印刷設定の一覧の情報である。プリントチケット３１０２とプリントケイパビリティ３２０２はＸＭＬ（Ｅｘｔｅｎｓｉｖｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）と呼ばれるタグで項目を区切って情報を管理する形式で記述されている。なお、プリントチケット３１０２はＯＳ２１０により生成された時点ではコンフリクトが起きていない状態である。
【００１５】
タッチパネル印刷詳細設定アプリケーション３００６は、基本印刷設定ＵＩ８５００からユーザーの要求に応じて起動される。タッチパネル印刷詳細設定アプリケーション３００６は、印刷詳細設定用のアプリケーションであり、各種ドライバー２１１の機能の一覧の表示と詳細な印刷設定の変更をタッチパネルアプリケーション３００４から行うことを目的とする。タッチパネル印刷詳細設定アプリケーション３００６は他のアプリケーションが印刷実行する際に呼び出されて起動された場合、タッチパネル印刷設定機能３００６２として動作する。一方、タッチパネル印刷詳細設定アプリケーション３００６はユーザーがスタート画面でタイルを選択することによって起動された場合、タイルアプリ機能３００６３として動作する。タイルアプリ機能３００６３とタッチパネル印刷設定機能３００６２は、タッチパネル印刷詳細設定アプリケーション３００６のデータ保存領域のアプリデータ領域３０３０のアプリデータを共有する。タッチパネル印刷詳細設定アプリケーション３００６は、コンフリクトを解消する処理を行う第１のモジュールであるＧＰＤエンジン３００６１を持っている。ＧＰＤエンジン３００６１はタッチパネル印刷詳細設定アプリケーション３００６の内部モジュールである。
【００１６】
また、タッチパネル印刷詳細設定アプリケーション３００６は、ユーザープロパティバッグ３０１２やレジストリ３０１６に独自のデータの出し入れができる。ユーザープロパティバッグ３０１２とは、タッチパネル印刷詳細設定アプリケーション３００６のタッチパネル印刷設定機能３００６２用の保存領域であり、印刷設定におけるユーザーの設定情報などを保存する。タッチパネル印刷詳細設定アプリケーション３００６は、タッチパネル印刷設定機能３００６２として動作する場合に、ＯＳ２１０にプリントチケット３１０２とプリントケイパビリティ３２０２を要求する。ドライバープロパティバッグ３０２０からアプリＧＰＤファイル３０２１を取得する。ここでＧＰＤファイルとは、コンフリクトが発生した際に、優先させる設定を決めるための優先順位などを含むコンフリクトルールが記述されているスクリプトファイルである。アプリＧＰＤファイル３０２１は、タッチパネルアプリケーション３００４がコンフリクトを解消するために利用するＧＰＤファイルである。プリントケイパビリティ３２０２、プリントチケット３１０２及びアプリＧＰＤファイル３０２１の構成については、後述する。また、ドライバープロパティバッグ３０２０とは、ドライバー２１１ごとのデータ領域である。本実施例ではアプリＧＰＤファイル３０２１がドライバープロパティバッグ３０２０に格納されている。タッチパネル印刷詳細設定アプリケーション３００６は、プリントケイパビリティ３２０２とプリントチケット３１０２に基づいてＵＩを生成し、ユーザー操作を受け付ける。受付完了後、タッチパネル印刷詳細設定アプリケーション３００６は印刷設定を確定し、ＯＳ２１０に確定した印刷設定であるプリントチケット３１０２を渡す。
【００１７】
ＯＳ２１０は、プリントコンフィグ３００７によるコンフリクトを解消する処理をプリントチケット３１０２に行い、基本印刷設定ＵＩ８５００にコンフリクトが解消されたプリントチケット３１０２を渡す。プリントコンフィグ３００７は、ＯＳ２１０のモジュールであり、ＧＰＤファイル３０１４に基づいてコンフリクトを解消する。基本印刷設定ＵＩ８５００は、ユーザー操作で印刷イベントを受け付け、プリントチケット３１０２と印刷対象であるＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）ファイル３４０２をマージモジュール３０１８に渡す。ＸＰＳファイルとは、ＸＭＬ形式で記述されている文書ファイルである。
【００１８】
次に、ドライバー・ＯＳ層の印刷処理におけるソフトウェアコンポーネントについて説明する。この印刷処理ではタッチパネルアプリケーション３００４からＸＰＳファイル３４０２とプリントチケット３１０２を受けとり、ＰＤＬ３６００を生成して、プリンタ１０２に渡すところまで処理が行われる。タッチパネルアプリケーション３００４からプリントチケット３１０２とＸＰＳファイル３４０２を渡されたマージモジュール３０１８は、プリントチケット３１０２とＸＰＳファイル３４０２を結合して印刷対象のＸＰＳファイル３４０２を生成する。マージモジュール３０１８は、ＸＰＳファイル３４０２に印刷設定であるプリントチケット３１０２を付加する形で結合を行う。マージモジュール３０１８は、ＸＰＳファイル３４０２をプリントスプーラー３００８に渡す。プリントスプーラー３００８は、ＸＰＳファイル３４０２をプリントコンフィグ３００７に渡してコンフリクトを解消する。プリントスプーラー３００８は、プリントコンフィグ３００７から、コンフリクトを解消する処理が行われたＸＰＳファイル３４０２を取得する。プリントスプーラー３００８は、フィルターパイプラインマネージャー３００９にＸＰＳファイル３４０２を渡す。フィルターパイプラインマネージャー３００９は、フィルターと呼ばれるモジュールを呼び出すことを担うモジュールであり、フィルターを通じてＸＰＳファイル３４０２からＰＤＬ３６００を生成する。フィルターコンフィグ３１０６には、フィルターパイプラインマネージャー３００９が呼び出すべきフィルターの構成がＸＭＬで記述してあり、その記述に応じて必要なフィルターを呼び出す。本実施例では、一例としてレンダラーフィルター３０１０を呼び出している。プリントスプーラー３００８は、フィルターパイプラインからＰＤＬ３６００を取得し、プリンタ１０２にＰＤＬ３６００を渡すことで印刷が行われる。
【００１９】
ドライバープロパティバッグ３０２０内のアプリＧＰＤファイル３０２１について図１３（ａ）、図１３（ｂ）、図１３（ｃ）を用いて説明する。アプリＧＰＤファイル３０２１は、コンフリクトルールや用紙サイズなどの選択項目の選択肢のデータ等から構成されている。１７００は、コンフリクトルールを示した例である。コンフリクトルールは、二つの印刷設定が無効となる組み合わせを記述することで表す。この図では、用紙サイズの「はがき」と両面印刷の「長辺両面」の組み合わせになっており、それぞれＰａｐｅｒＳｉｚｅ．ＰｏｓｔＣａｒｄ，ＤＵＰＬＥＸ．ＶＥＲＴＩＣＡＬで表現されている。１７０１は、用紙サイズの選択項目の印刷設定が記述されていることを表しており、同様に、１７０２は、両面印刷の印刷設定が記述されていることを表している。１７０３は、設定項目の選択肢であり、本図では用紙サイズの「はがき」の詳細なデータに関して記述してある例である。１７０４は、用紙サイズの優先度であり、値が低い設定項目ほどコンフリクトを解消する際に優先されることを表す。例えば、本図では用紙サイズの優先度は１であり、１７０５は両面印刷の優先度は１５であることを示している。従って、１７００のコンフリクトを解消する際には、用紙サイズである「はがき」は変更されずに両面印刷の設定が変更される。
【００２０】
次にプリントケイパビリティ３２０２及びプリントチケット３１０２について、図１２（ａ）、図１２（ｂ）を用いて説明する。図１２（ａ）は、プリントケイパビリティ３２０２の一例である。プリントケイパビリティ３２０２は、プリンタードライバーが持っている機能及び項目の一覧であり、ＸＭＬで記述されている。機能の一覧はＦｅａｔｕｒｅと呼ばれるタグで記述される。本図では、一例として用紙サイズを表す、ＰａｇｅＭｅｄｉａＳｉｚｅを１２００１に示してある。各機能の項目の一覧は、Ｏｐｔｉｏｎと呼ばれるタグで記述される。本実施例では、１２００２にＯｐｔｉｏｎの一例として用紙サイズの一つであるＬｅｔｔｅｒが示している。Ｆｅａｔｕｒｅ、Ｏｐｔｉｏｎは、それぞれ１つから複数個存在している。図１２（ｂ）は、プリントチケット３１０２の一例である。プリントチケット３１０２は、印刷設定の選択項目の一覧であり、ＸＭＬで記述されている。機能と項目は、プリントケイパビリティ３２０２と同様にＦｅａｔｕｒｅとＯｐｔｉｏｎのタグで記述されている。本実施例では、Ｆｅａｔｕｒｅの一例として、１２００３に選択項目である両面を意味するＤｏｃｕｍｅｎｔＤｕｐｌｅｘを示し、Ｏｐｔｉｏｎの一例として、１２００４に選択肢である片面印刷を意味するＯｎｅＳｉｄｅｄを示している。
【００２１】
図４に、ＯＳ２１０で動作するタッチパネルＵＩの一例を示す。また、この図を用いてタッチパネルＵＩから印刷の基本フローを説明する。タッチパネルアプリケーション３００４は、タッチディスプレイでの操作に重きを置いたＵＩのデザインになっている。指やペンなどのタッチでの操作が容易であるように、大きなボタンで構成される。タッチパネルアプリケーション３００４はマウスやキーボードの操作入力も受け付けるが、以下タッチ操作を行うことを前提に説明する。
【００２２】
図４（ａ）にタッチパネルアプリケーション３００４のスタート画面８０００を示す。スタート画面８０００は、タッチディスプレイ上の全面に表示されている。スタート画面には、タッチパネルアプリケーション３００４がタイル８００１という形式で表示されている。ユーザーがタイルをタップすると、そのタイルに該当するタッチパネルアプリがディスプレイ上全面に表示される。図４（ｂ）は、ＷＥＢブラウザ８１００の表示例である。ＷＥＢブラウザ８１００は、タッチパネルディスプレイの全面に表示され、他のアプリは表示されない。タッチパネルアプリケーション３００４で印刷を行う場合は、８１０１のタッチディスプレイ上の右端にタッチし、指を左に滑らせて、図４（ｃ）のチャーム８２００というメニュー画面を開くことから始まる。チャームの中には、複数の選択肢が存在し、その中のデバイスをタップすることで、さらにデバイスに関連するメニューの一覧であるデバイスメニューボタン８２０１をタップすることで、デバイスメニュー８３００を開くことができる。図４（ｄ）は、デバイスメニュー８３００の図である。デバイスメニュー８３００には、再生、印刷、表示など複数の選択肢が存在し、その中で印刷８３０１をタップすることで、図４（ｅ）の印刷出力先のプリントキューを選ぶプリントキュー選択メニュー８４００が表示される。プリントキュー選択メニュー８４００には印刷出力先の候補が、列挙されている。その一つである“プリンタ０１”８４０１をタップすると、図４（ｆ）に示すＯＳ２１０により提供される基本印刷設定ＵＩ８５００が表示される。基本印刷設定ＵＩ８５００で部数やカラーモードなどの基本的な印刷設定情報が設定できる。詳細設定８５０１が押下されると、タッチパネル印刷詳細設定アプリケーション３００６が起動され、ユーザーは、基本設定にはないさらに詳細な設定を行うことができる。これに関しては、後に詳細に説明する。設定完了後、ユーザーが印刷ボタン８５０２をタップすることで、ＰＤＬ３６００が作成され、印刷が行われる。
【００２３】
図５に、タッチパネル印刷詳細設定アプリケーション３００６の図を示す。本発明の実施形態で対象とするタッチパネル印刷詳細設定アプリケーション３００６は、図５（ａ）のトップページ画面と、出力方法などを含む図５（ｂ）フル機能設定画面を持つ。２つの設定画面は特に断りがない限りユーザーから印刷設定の変更を受け付ける。トップページ画面は、ドライバーの基本的な機能に関する設定の項目を集めたものであり、フル機能設定画面は、さらに詳細な設定機能を集めたものである。これらの２つの印刷設定画面は、タッチパネル上で指をスライドすることで移動することができる。フル機能設定画面は、フリップビューと呼ばれるコントロールにより複数のシートから構成されている。フリップビューでは、ユーザーが指を左右にスライドすることで隣接するページに遷移することができる。
【００２４】
また、タッチパネル印刷詳細設定アプリケーション３００６には、ページドット９００２が下部領域に表示されている。ページドット９００２は、ページ数分だけ表示され、それぞれにページ番号が表示されている。ユーザーはページドット９００２をタップすることで、対応するページ番号のシートに一回の操作で遷移することができる。なお、ページの遷移はタブなどの他の遷移方法でも良いことは言うまでもない。図５（ａ）の例では印刷の向きを設定する設定項目９００３を示す。９００１は戻るボタンであり、ユーザーが印刷設定を確定してタッチパネル印刷詳細設定アプリケーション３００６を終了させる時にタップする。図５（ｂ）では、一例とし、９０１１にセキュアプリントなどの選択肢を設定可能な項目である出力方法９０１１を示す。本図では、通常の印刷を示す「印刷」が設定されている。また、９０１２は原稿サイズを設定できる項目である。
【００２５】
図１４を用いて、タッチパネル印刷設定機能３００６２の構成について説明する。タッチパネル印刷設定機能３００６２は、モード１とモード２の二つのモードから構成される。モード１は、タッチパネル印刷詳細設定アプリケーション３００６がタッチパネル印刷設定機能３００６２で起動された際に最初に起動されるモードである。タッチパネル印刷設定機能３００６２を高速に起動することを目的としており、ＧＰＤエンジン３００６１の初期化の完了を待たずに起動することができる。また、ＧＰＤエンジン３００６１の初期化が完了した後には、所定のタイミングでモード２へとモードを変更することができる。また、モード１で印刷設定を確定することもできる。モード１では、コンフリクトを解消する際には、ＧＰＤエンジン３００６１を呼び出さない変わりにＯＳ２１０のＡＰＩを呼び出してコンフリクトを解消する処理が行われる。一方で、モード２はＧＰＤエンジン３００６１の初期化が完了した時点で起動ができるようになるモードであり、コンフリクトを解消する処理がＧＰＤエンジン３００６１を用いて行われる。モードは、基本的にモード１からモード２へのみ変更することができ、モード２からモード１への変更は行わない。
【００２６】
図１６を用いて、コンフリクトの通知方法について説明する。コンフリクトの通知方法は、ＯＳ２１０のＡＰＩによってコンフリクトを解消された場合（コンフリクトをＯＳにより解消する処理）、ユーザーが操作した時にＧＰＤエンジン３００６１によってコンフリクトが解消される場合に分けることができる。コンフリクトをＯＳにより解消する処理による通知は後述する図６（ａ）のｓ６０１３で行われ、ユーザーが操作した時にＧＰＤエンジン３００６１によってコンフリクトが解消される場合の通知は後述する図６（ｃ）のｓ６０５３で行われる。また、後者はユーザーが変更した印刷設定のコンフリクトを解消する際に、ユーザーが変更した印刷設定項目がコンフリクト対象の印刷設定項目に優先されて設定される場合（優先コンフリクト通知）と優先されない場合（劣後コンフリクト通知）の２つに分けることができる。よって計３つの通知方法が存在する。
【００２７】
まず、ＯＳ２１０のＡＰＩによってコンフリクトを解消された場合について説明する。図１６（ａ）の１６００１は、コンフリクトをＯＳにより解消する処理の際に、ユーザーにコンフリクトを通知するためのＯＳコンフリクト通知ポップアップ１６００１である。コンフリクトを解消する際に変更された印刷設定のみをユーザーに通知する。通知する印刷設定は、トップページ、フル機能設定画面を含む他のページのどの印刷設定でも通知される。また、複数の印刷設定が変更される場合には、全てＯＳコンフリクト通知ポップアップ１６００１に表示される。ＯＳコンフリクト通知ポップアップ１６００１は、ＯＳコンフリクト通知ポップアップ１６００１外のタッチパネル印刷詳細設定アプリケーション３００６の領域をタップするか、画面内のＯＫボタン１６００２をタップすることで消すことができる。本図は、ユーザーが変更した印刷設定項目によって、印刷設定の「長辺両面」が「片面印刷」に変更された例である。
【００２８】
図１６（ｂ）を用いて優先コンフリクト通知について説明する。優先コンフリクト通知の場合には、下部コンフリクトマーク１６００３が表示される。ユーザーが、下部コンフリクトマーク１６００３をタップすると優先コンフリクト通知ポップアップ１６００４が表示される。優先コンフリクト通知ポップアップ１６００４には、コンフリクトを解消する際に変更された印刷設定が表示される。なお、表示される印刷設定はトップページ、フル機能設定画面を含む、表示していないページの印刷設定でも優先コンフリクト通知ポップアップ１６００４に表示される。また、複数の印刷設定が変更された場合には、複数の印刷設定が優先コンフリクト通知ポップアップ１６００４に表示される。下部コンフリクトマーク１６００３が表示されている間も、タッチパネル印刷詳細設定アプリケーション３００６は、印刷設定の変更及び他の画面への遷移を受け付ける。下部コンフリクトマーク１６００３は、再度、印刷設定が変更されるかタッチパネル印刷詳細設定アプリケーション３００６を終了しない限り消えない。優先コンフリクト通知ポップアップ１６００４は、優先コンフリクト通知ポップアップ１６００４の外のタッチパネル印刷詳細設定アプリケーション３００６の領域をタップするか、画面内のＯＫボタン１６００５をタップすることで消すことができる。本図は、ユーザーが変更した印刷設定項目によって、印刷設定の「長辺両面」が「片面印刷」に変更された例である。
【００２９】
図１６（ｃ）を用いて劣後コンフリクト通知について説明する。１６００６は、劣後コンフリクト通知ポップアップである。劣後コンフリクト通知ポップアップ１６００６では、コンフリクトが起きていて、ユーザーが意図した印刷設定を設定できない時に表示される。表示される内容は、ユーザーが設定しようとした印刷設定とコンフリクトが起きている印刷設定である。複数の印刷設定とコンフリクトが起きている場合には、複数の印刷設定が表示される。劣後コンフリクト通知ポップアップ１６００６の外のタッチパネル印刷詳細設定アプリケーション３００６の領域をタップするか、画面内のＯＫボタン１６００７をタップすることで消すことができる。本図の劣後コンフリクト通知ポップアップ１６００６は、「はがき」が原稿サイズに設定されている状態で、ユーザーが「長辺両面」を印刷設定に設定しようとした際に、「はがき」が優先されたことで、「長辺両面」への変更が失敗したことを示す表示例である。
【００３０】
図６のフローチャートを用いて、タッチパネル印刷詳細設定アプリケーション３００６の起動から印刷設定を確定するまでのフローについて説明をする。尚、特に指定がない限り、本フローチャートはタッチパネル印刷詳細設定アプリケーション３００６によって実行される。また、タッチパネル印刷詳細設定アプリケーション３００６はタッチパネル印刷設定機能３００６２として動作しているものとする。タッチパネル印刷詳細設定アプリケーション３００６は、他のシステムやユーザーの要求に応じて外部メモリ２０９からＲＡＭ２０２にロードされ、ＣＰＵ２０１で実行される。
【００３１】
タッチパネル印刷詳細設定アプリケーション３００６は、プリントケイパビリティ３２０２とプリントチケット３１０２を読み込み（ｓ６００２、ｓ６００３）、印刷設定の確定時に全ての設定項目に対して、コンフリクトをＯＳ２１０のＡＰＩを用いて解消する処理を施すモード１で図５（ａ）に示すトップページ画面を表示する（ｓ６００５）。本実施例のモード１では、コンフリクトを印刷設定の変更時の度ではなく、図５（ａ）の戻るボタン９００１が押された時に一括で解消する。なお、戻るボタン９００１が押された時の代わりに印刷設定変更時に毎回コンフリクトをＯＳにより解消する処理を呼び出しても良い。
【００３２】
モード１のトップページ画面ではページドット９００２は非表示にしておき、ユーザーが操作してフル機能設定画面に遷移できないようにしておく。なお、ページドット９００２を利用できないことを通知する手段としてはプログレスリングを回すなど他の方法でも良い。
【００３３】
トップページ画面表示後に、ＧＰＤエンジン３００６１の初期化をバックグラウンドで行う（ｓ６００６）。ＧＰＤエンジン３００６１は、アプリＧＰＤファイル３０２１を基にコンフリクトを通知及び、コンフリクトを解消する処理を行うモジュールである。ＧＰＤエンジン３００６１の初期化のステップを図６（ｂ）に示す。タッチパネル印刷詳細設定アプリケーション３００６は、ユーザーの入力を受け付けるＵＩスレッドと別にバックグランドスレッドを作成し、作成したバックグラウンドスレッドで図６（ｂ）の処理を行う。最初にアプリＧＰＤファイル３０２１を読み込み（ｓ６０３２）、コンフリクトルールの記載の文法的な関係を解析する処理である構文解析を行う。構文解析後に、ＧＰＤエンジン３００６１の初期化を行い（ｓ６０３３）、完了後にスレッドを終了させる（ｓ６０３４）。
【００３４】
図６（ａ）に戻り説明を続ける。ｓ６００６のステップを終了後、タッチパネル印刷詳細設定アプリケーション３００６はＧＰＤエンジン３００６１の初期化の間、フォアグラウンドで、ユーザー入力を受け付ける（ｓ６００７）。
【００３５】
ユーザー入力を受け付けた後に、入力を判断する（ｓ６５０１）。モード１で、印刷の向き９００３を始めとする設定項目が変更された場合、プリントチケット３１０２に設定項目の変更を反映する（ｓ６００８）。モード１で戻るボタン９００１が押された場合、現在のプリントチケット３１０２に設定項目を反映し、そのプリントチケット３１０２を入力値としてコンフリクトをＯＳにより解消する処理を呼び出す（ｓ６０１１）。これはタッチパネル印刷詳細設定アプリケーション３００６が第２のモジュールによるコンフリクトの解消処理を呼び出すことによって実現される。第２のモジュールはタッチパネル印刷詳細設定アプリケーション３００６の外部モジュールであり、タッチパネル印刷詳細設定アプリケーション３００６が初期化を行う必要がない。ただし、印刷設定の変更が行われていない場合には、コンフリクトを解消する処理を呼び出さなくても良い。コンフリクトをＯＳにより解消する処理は、プリントコンフィグ３００７がＧＰＤファイル３０１４を基に実行する。プリントコンフィグ３００７は、タッチパネル印刷詳細設定アプリケーション３００６からプリントチケット３１０２（入力時のプリントチケット）を取得し、コンフリクトが存在した場合にはコンフリクトを解消したプリントチケット３１０２（出力時のプリントチケット）を作成する。コンフリクトをＯＳにより解消する処理は、コンフリクトが起きているプリントチケット３１０２が入力された場合に、ＧＰＤファイル３０１４に基づきコンフリクトが解消されたプリントチケット３１０２を出力する。
【００３６】
入力時のプリントチケットと出力時のプリントチケットの２つのプリントチケットに基づいてコンフリクトが存在するか判断する（ｓ６０１２）。コンフリクトを解消したプリントチケットが出力された場合には、コンフリクトが存在すると判断し、コンフリクトがあったことを図１６（ａ）に示した通知方法で通知する（ｓ６０１３）。この際に、入力時のプリントチケットと出力時のプリントチケットを比較し、コンフリクトを解消する処理によって変更された項目の一覧をＯＳコンフリクト通知ポップアップ１６００１で表示する。また、出力時のプリントチケットをＵＩに反映するが（ｓ６０１４）、基本印刷設定ＵＩ８５００には遷移しない。ｓ６０１２でコンフリクトが存在しないと判断した場合にはｓ６０２２に進む。
【００３７】
ｓ６５０１においてタッチパネル上でユーザーが指をスライドしたと判断したことに応じて、すなわち、印刷設定画面を遷移するための指示をユーザーから受け付けたことに応じてｓ６０１０に進む。そして、スライドイベントを受け付けバックグラウンドスレッドで行っているアプリＧＰＤファイル３０２１の読み込み処理とＧＰＤエンジン３００６１の初期化処理が完了しているかどうかを確認する（ｓ６０１０）。完了していない場合にはスライドイベントを無視し、完了していた場合には、図５（ｂ）に示すフル機能設定画面を表示し（ｓ６０１５）、モード１から、モード２へとモードが変更される。尚、本実施例では、モード２では、タッチパネル印刷詳細設定アプリケーション３００６が設定項目の変更をする度にコンフリクトを通知する。モード２への変更を行うイベントは、スライドイベントに限らず、タッチ、クリックなど他のイベントでも良いことは言うまでもない。また、モード２においては、ページドット９００２は全てのページで表示される。モード２への変更後、コンフリクトを解消する処理を行う（ｓ６０１６）。
【００３８】
図６（ｃ）を用いてｓ６０１６の処理を説明する。コンフリクトが存在するかを確認する（ｓ６０５１）。確認した後に、コンフリクトが存在するかの判断をする（ｓ６０５２）。コンフリクトが存在した場合には、ポップアップを表示して（ｓ６０５３）、ユーザーに対しコンフリクトの内容を通知する。ｓ６０５３では、優先コンフリクト通知又は劣後コンフリクト通知のどちらにより通知するかがコンフリクトルールに従って決定される。なお、通知方法は図１６（ｂ）、図１６（ｃ）の通知方法に限らず、その他のどのような方法でも良い。通知後、コンフリクトの起きている機能の項目を比較し、アプリＧＰＤファイル３０２１に基づき、優先順位の低い設定を変更することでコンフリクトを解消する（ｓ６０５４）。
【００３９】
コンフリクトの解消後は、設定項目をＵＩに反映し、再度ユーザーの入力を受け付ける（ｓ６０１７）。
【００４０】
モード２でユーザーの入力を受け付けた際に、ユーザーの入力を判断する（ｓ６０１８）。ユーザーによるスライドイベント発生により、図５（ａ）に示すトップページ画面を表示することもできるが、動作しているモードはモード２からモード１に変更されない（ｓ６０１９）。無論、ページドット９００２も継続して表示される。動作しているモードがモード１に変更されないことにより、モード２への変更後はトップページ画面においても設定項目の変更をする度にコンフリクトを通知することができる。モード２で、出力方法９０１１の「印刷」をはじめとする機能の設定項目が変更された場合、アプリＧＰＤファイル３０２１を基にコンフリクトを解消する処理を行う（ｓ６０２０）。なお、ｓ６０２０の説明はｓ６０１６と同じため省略する。
【００４１】
コンフリクトが起きていない場合には、設定項目の変更をＵＩに反映し（ｓ６０２１）、ユーザーの入力を再度受け付ける。戻るボタン９００１が入力された場合、プリントチケット３１０２に設定項目を反映してプリントチケット３１０２を作成した後に、作成したプリントチケット３１０２を保存して（ｓ６０２２）、ＯＳ２１０によってプリントチケット３１０２のコンフリクトが解消される（ｓ６０２３）。ｓ６０２３のコンフリクトの解消はｓ６０１１とは異なりＯＳ２１０によって自動的に行われる処理であり、コンフリクトが解消されても通知等は行われない。コンフリクトの解消後に、基本印刷設定ＵＩ８５００に遷移して終了する（ｓ６０２４）。以上の実施例により、ユーザーはＧＰＤエンジン３００６１の初期化時間を待つことなく、印刷設定を変更することができる。
【００４２】
〔実施例２〕
実施例１では、フル機能設定画面に遷移しない限り、モード２にモードを変更できなかった。そこで、モード１においてＧＰＤエンジン３００６１の起動が完了した時点でモード２に変更する方法について、図７のフローチャートを用いて説明する。尚、特に指定がない限り、本フローチャートはタッチパネル印刷詳細設定アプリケーション３００６によって実行される。また、タッチパネル印刷詳細設定アプリケーション３００６はタッチパネル印刷設定機能３００６２として動作しているものとする。さらに、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。タッチパネル印刷詳細設定アプリケーション３００６は、他のシステムやユーザーの要求に応じて外部メモリ２０９からＲＡＭ２０２にロードされ、ＣＰＵ２０１で実行される。
【００４３】
ｓ６５０１において設定項目が変更されたと判断した場合、ＧＰＤエンジン３００６１の初期化が完了しているかどうかを確認する（ｓ７００８）。ＧＰＤエンジン３００６１の初期化が完了していない場合、設定項目の変更をＵＩに反映する（ｓ７０１０）。ＧＰＤエンジン３００６１の初期化が完了していた場合には、モードをモード２に変更し、アプリＧＰＤファイル３０２１を基にコンフリクトを解消する処理を行う（図７（ｂ）のｓ６０１６）。なお、コンフリクトを解消する処理の説明は図６（ｃ）の処理と同じため省略する。
【００４４】
ｓ６５０１においてタッチパネル上でユーザーが指をスライドしたと判断した場合、スライドイベントを受け付けバックグラウンドスレッドで行っているアプリＧＰＤファイル３０２１の読み込み処理とＧＰＤエンジン３００６１の初期化処理が完了しているかどうかを確認する（ｓ６０１０）。
【００４５】
本実施例により、設定項目が変更された場合にＧＰＤエンジン３００６１の初期化が完了しているかどうかを確認し、ＧＰＤエンジン３００６１の初期化が完了している場合にモード２にモードを変更することができる。
【００４６】
〔実施例３〕
実施例１では、ＧＰＤエンジン３００６１の初期化が完了するまで、ページドット９００２の表示とフル機能設定画面への遷移をすることができなかった。本実施例では、ＧＰＤエンジン３００６１の初期化が完了する前に、ページの遷移とページドット９００２によるページ数の表示を行える実施例を図８のフローチャートを用いて説明する。尚、特に指定がない限り、本フローチャートはタッチパネル印刷詳細設定アプリケーション３００６によって実行される。また、タッチパネル印刷詳細設定アプリケーション３００６はタッチパネル印刷設定機能３００６２として動作しているものとする。さらに、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。タッチパネル印刷詳細設定アプリケーション３００６は、他のシステムやユーザーの要求に応じて外部メモリ２０９からＲＡＭ２０２にロードされ、ＣＰＵ２０１で実行される。
【００４７】
図８にて、タッチパネル印刷詳細設定アプリケーション３００６は、プリントケイパビリティ３２０２、プリントチケット３１０２を読み込む（ｓ８００２、ｓ８００３）。
【００４８】
読み込んだ後にプリントチケット３１０２に、各ページに配置する機能と各ページにある機能に対応するＦｅａｔｕｒｅが存在するかどうかを確認し（ｓ８００４）、作成するページのページ情報とページに対応するページドット９００２の作成を行う（ｓ８００５）。一例として、プリントケイパビリティ３２０２のＦｅａｔｕｒｅにＰａｇｅＭｅｄｉａＳｉｚｅが存在した場合について説明する。ＰａｇｅＭｅｄｉａＳｉｚｅは、図５（ｂ）の原稿サイズ９０１２と関連づいている。プリントケイパビリティ３２０２のＦｅａｔｕｒｅにＰａｇｅＭｅｄｉａＳｉｚｅが存在している時には、原稿サイズ９０１２を表示する必要がある。よって、プリントケイパビリティ３２０２のＦｅａｔｕｒｅにＰａｇｅＭｅｄｉａＳｉｚｅが存在する時は原稿サイズ９０１２を含むフル機能設定画面のページを作成すると判断し、ページ情報を作成及びページドット９００２の作成を行う。フル機能設定画面は複数のページで構成されているため、それぞれのページでも同様に存在するコントロールに対応するＦｅａｔｕｒｅが存在するかどうかを確認し、ページ数を確認する。なお、ページ数を判断する際には、プリントチケット３１０２とプリントケイパビリティ３２０２のどちらの情報から判断してもよく、他のＦｅａｔｕｒｅとＯｐｔｉｏｎを含むプリントチケット３１０２又はプリントケイパビリティ３２０２に載っている情報ならば、どの情報を利用して判断しても良いことは言うまでもない。また、作成したページ情報をアプリデータ領域３０３０やユーザープロパティバッグ３０１２に保存しておき、二度目以降の起動時にはプリントケイパビリティ３２０２とプリントチケット３１０２を用いずに保存したページ情報を再利用しても良い。
【００４９】
ページドット９００２及び各ページの作成後、モード１でトップページ画面を表示する（ｓ８００６）。
【００５０】
モード１のトップページ画面の表示時に、ページドット９００２も表示する。次に、バックグラウンドスレッドでＧＰＤエンジン３００６１の初期化を行う（ｓ８００７）。なお、ｓ８００７のＧＰＤエンジン３００６１の初期化は図６（ｂ）の処理と同じため説明を省略する。
【００５１】
ＧＰＤエンジン３００６１の初期化の間、フォアグラウンドで、ユーザー入力を受け付ける（ｓ８００８）。そして、ｓ８００８で受け付けた入力の判断を行う（ｓ８００９）。
【００５２】
モード１で、印刷の向き９００３をはじめとする設定項目が変更された場合、ＧＰＤエンジン３００６１の初期化が完了しているかを確認する（ｓ８０１０）。初期化が完了していない場合には、設定項目の変更を受け付け、ＵＩに反映する（ｓ８０１１）。初期化が完了している場合、モード２に変更して、アプリＧＰＤファイル３０２１を基にコンフリクトを解消する処理を行う（ｓ６０１６）。
【００５３】
ｓ８００９でモード１のまま戻るボタン９００１が押されたと判断した場合、ｓ６０１１へと遷移する。
【００５４】
ｓ８００９でモード１のままタッチパネル上でユーザーが指をスライドしたと判断した場合、及びページドット９００２がタップされた場合、フル機能設定画面へ遷移するイベントを受け付け、フル機能設定画面を表示する（ｓ８０１６）。
【００５５】
遷移後、バックグラウンドスレッドで行っているアプリＧＰＤファイル３０２１の読み込み処理とＧＰＤエンジン３００６１の初期化処理が完了しているかどうかを確認する（ｓ８０１７）。
【００５６】
完了していない場合には、フル機能設定画面にプログレスリングを表示する（ｓ８０１８）。プログレスリングはＧＰＤエンジン３００６１の初期化処理が完了するまで表示され、表示されている間フル機能設定画面で印刷設定の変更を受け付けない。さらに、遷移後のフル機能設定画面では印刷設定の全設定項目の変更を受け付けず、ページ遷移及び戻るボタン９００１のタップのみユーザー入力を受け付ける。その際、モードはモード１が保たれる。
【００５７】
ＧＰＤエンジン３００６１の初期化が完了している場合は、モードをモード２に変更し、コンフリクトを解消する処理を行う（ｓ６０１６）。また、フル機能設定画面は利用できる全ての機能を表示する。
【００５８】
以上の実施例により、印刷詳細設定アプリケーションは、モード１でページドット９００２の表示とフル機能設定画面への遷移を行うことができる。
【００５９】
〔実施例４〕
実施例１では、モード１にて、ＧＰＤエンジン３００６１の初期化の完了に関係なく印刷設定変更ができたが、その場合には、コンフリクトをＯＳにより解消する処理を行う必要があり、印刷設定を確定するまでコンフリクトが分からないまま設定してしまう問題がある。この場合、多くのコンフリクトが設定されていると、ユーザーが設定した印刷設定と全く別の設定になってしまい、ユーザーは再度、多くの設定をし直さなければならなくなる可能性がある。本実施例では、モード１で機能及び項目の一覧のみを確認するために起動を行い、モード１で設定項目の変更時にモード２に移行してから設定項目を確定する。これにより、起動時間を高速化しつつ、コンフリクトが起きている印刷設定が一斉に表示されることを防ぐ方法について図９を用いて説明する。尚、特に指定がない限り、本フローチャートはタッチパネル印刷詳細設定アプリケーション３００６によって実行される。また、タッチパネル印刷詳細設定アプリケーション３００６はタッチパネル印刷設定機能３００６２として動作しているものとする。さらに、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。タッチパネル印刷詳細設定アプリケーション３００６は、他のシステムやユーザーの要求に応じて外部メモリ２０９からＲＡＭ２０２にロードされ、ＣＰＵ２０１で実行される。
【００６０】
ＧＰＤエンジン３００６１の初期化の間、フォアグラウンドで、ユーザー入力を受け付ける（ｓ８００８）。そして受け付けたユーザー入力を判断する（ｓ９０１１）。モード１で、スライドを含むページ遷移イベントを受け付けた場合、フル機能設定画面の表示を行う（ｓ９０１０）。印刷の向き９００３をはじめとする設定項目が変更された場合、ＧＰＤエンジン３００６１の初期化が完了しているかを確認する（ｓ９０１２）。初期化が完了している場合、モードをモード２に変更し、コンフリクトを解消する処理を行う（ｓ６０１６）。ｓ９０１２にて、ＧＰＤエンジン３００６１の初期化が完了していなかった場合、プログレスリングを表示して、ユーザーからさらなる印刷設定の変更を受け付けず、ＧＰＤエンジン３００６１の初期化が完了するまで待機する（ｓ９０１３）。
【００６１】
なお、プログレスリングを表示するタイミングは、機能の項目の一覧を表示するイベントが起きた時でも、選択項目が選ばれて確定される時のどちらでも良い。モード１で戻るボタン９００１が押された場合、プリントチケット３１０２は変更されていないため、何もせずに終了する。
【００６２】
以上の実施例により、起動を高速化しつつ、コンフリクトが起きていることを印刷設定の変更時に必ず通知することができる。
【００６３】
〔実施例５〕
起動時のモードをモード１とモード２で切り替える方法について図１０（ａ）、図１０（ｂ）、図１０（ｃ）と図１１を用いて説明する。タッチパネル印刷詳細設定アプリケーション３００６は、他のシステムやユーザーの要求に応じて外部メモリ２０９からＲＡＭ２０２にロードされ、ＣＰＵ２０１で実行される。最初に、タッチパネル印刷詳細設定アプリケーション３００６が持つ、ユーザーがタイルを選択することで起動し動作するタイルアプリ機能３００６３から説明する。尚、タイルアプリ機能３００６３として動作させる際の起動方法は、図４（ａ）で説明した通常のタッチパネルアプリケーション３００４と同様である。さらに、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。
【００６４】
図１１は、タイルアプリ機能３００６３として動作するタッチパネル印刷詳細設定アプリケーション３００６の一例として起動時のＵＩを示す。１１０１は、モード切り替えのコンボボックスであり、指をタップしてモードの一覧を表示する。表示された一覧の中から任意の一つを再度タップすることで、モードを選択することができる。当然ながら、モードを切り替える方法については、コンボボックスに限る必要はなく、他のどのような方法であっても良い。
【００６５】
図１０（ａ）を用いて、タイルアプリ機能３００６３として動作するタッチパネル印刷詳細設定アプリケーション３００６からモードを切り替える際の処理について説明する。尚、特に指定がない限り、本フローチャートはタッチパネル印刷詳細設定アプリケーション３００６によって実行される。また、タッチパネル印刷詳細設定アプリケーション３００６はタイルアプリ機能３００６３として動作しているものとする。タッチパネル印刷詳細設定アプリケーション３００６は、起動後にアプリデータ領域３０３０から、起動時のモードが書かれているアプリデータ３０３２を読み込む（ｓ１０００２）。アプリデータ３０３２を読み込んだ後、アプリデータ３０３２内に書かれているモードを選択されたモードとして、コンボボックスの選択肢のデフォルト値に設定してアプリ上に表示する（ｓ１０００３）。表示後にユーザー入力を受け付ける（ｓ１０００４）。タッチパネル印刷詳細設定アプリケーション３００６は、ユーザー入力を受け付けた後、アプリデータ３０３２を書き換えて、書き換えたアプリデータ３０３１をアプリデータ領域３０３０に書き込む（ｓ１０００５）。その後、タッチパネル印刷詳細設定アプリケーション３００６の処理を終了する（ｓ１０００６）。
【００６６】
次に、タッチパネル印刷詳細設定アプリケーション３００６の起動について、図１０（ｂ）と図１０（ｃ）を用いて説明する。尚、特に指定がない限り本フローチャートはタッチパネル印刷詳細設定アプリケーション３００６によって実行される。また、タッチパネル印刷詳細設定アプリケーション３００６はタッチパネル印刷設定機能３００６２として動作しているものとする。
【００６７】
タッチパネル印刷詳細設定アプリケーション３００６は、起動後にアプリデータ３０３１を読み込む（ｓ１０００８）。図３を用いて説明した通り、タイルアプリ機能３００６３は、同一アプリケーションであるタッチパネル印刷設定機能３００６２とアプリデータ領域３０３０のデータを共有する。よって、ｓ１０００８では図１０（ａ）のｓ１０００５で書き込まれたアプリデータ３０３１が読み込まれる。アプリデータ３０３１を読み込んだ後にタッチパネル印刷詳細設定アプリケーションは、モードを判断する（ｓ１０００９）。
【００６８】
読み込んだ後、アプリデータ３０３１にモード１と書いてあった場合には、実施例１の図６（ａ）のｓ６００２に遷移する（ｓ１００１０）。
【００６９】
モード２と書いてあった場合には、タッチパネル印刷詳細設定アプリケーションの起動時である本ステップでアプリＧＰＤファイル３０２１を読み込み、構文解析する（ｓ１００１２）。構文解析後に、ＧＰＤエンジン３００６１の初期化を行う（ｓ１００１３）。
【００７０】
初期化完了後、フル機能設定画面を作成し（ｓ１００１４）、そのあとにトップページ画面を表示して（ｓ１００１５）、ユーザーの入力を受け付ける（ｓ１００１６）。そして、受け付けたユーザーの入力の判断を行う（ｓ１００１８）。
【００７１】
ページドット９００２の押下やスライド操作などによりページ遷移のイベントが起きた場合にはページを遷移してユーザー入力を再度受け付ける（ｓ１００１７）。出力方法９０１１の「印刷」をはじめとする機能の設定項目が変更された場合、アプリＧＰＤファイル３０２１を基にコンフリクトを解消する処理を行う（ｓ６０２０）。
【００７２】
戻るボタン９００１が入力された場合、設定項目をプリントチケット３１０２に反映した後、プリントチケット３１０２を保存して（ｓ１００２３）、ＯＳ２１０によってプリントチケット３１０２のコンフリクトが解消される（ｓ６０２３）。コンフリクトが解消された後に、基本印刷設定ＵＩ８５００に遷移する（ｓ１００２４）。
【００７３】
本実施例により、モード１とモード２の起動を切り替えることができ、高速に起動したい場合にはモード１を利用し、必ずコンフリクトを解消したい場合にはモード２を利用することができるようになる。
【００７４】
〔実施例６〕
プリンタードライバーの機能数が増えると、アプリＧＰＤファイル３０２１と共にプリントケイパビリティ３２０２も大きくなる。その場合、プリントケイパビリティを読み込む処理に時間がかかり起動が遅くなることがある。本実施例では、ＧＰＤエンジン３００６１の初期化とプリントケイパビリティ３２０２の読み込む処理の双方をＵＩスレッドとは別のバックグラウンドのスレッドで行うことで起動の高速化を実現する方法を、図１５を用いて示す。尚、特に指定がない限り、本フローチャートはタッチパネル印刷詳細設定アプリケーション３００６によって実行される。また、タッチパネル印刷詳細設定アプリケーション３００６はタッチパネル印刷設定機能３００６２として動作しているものとする。さらに、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。
【００７５】
ｓ１５００１で、プリントケイパビリティ３２０２をＵＩスレッドとは別のスレッド上で読み込む。ｓ１５００１はｓ６００６と同一スレッドで行い、ＧＰＤエンジン３００６１の初期化処理を完了した後に開始する。これにより、プリントケイパビリティ３２０２の読み込みが完了した時点でＧＰＤエンジン３００６１の初期化は必ず完了している。ｓ６０１０において、ＧＰＤエンジン３００６１の初期化が完了していた場合、プリントケイパビリティ３２０２の読み込みが完了してなくても、モードをモード１からモード２へと変更して、ｓ６０２０へと遷移する。
【００７６】
ｓ６５０１においてタッチパネル上でユーザーが指をスライドしたと判断した場合、スライドイベントを受け付けバックグラウンドスレッドで行っているプリントケイパビリティ３２０２の読み込み処理が完了しているかどうかを確認する（ｓ１５００２）。読み込みが完了していた場合には、フル機能設定画面を表示する（ｓ６０１５）。プリントケイパビリティ３２０２の読み込みが完了していない場合にはプログレスリングを表示して、読み込みの完了を待つ（ｓ１５００３）。読み込みの完了が終わった時点でフル機能設定画面を表示する（ｓ６０１５）。
【００７７】
ｓ６０１８においてタッチパネル上でユーザーが指を右から左へとスライドしたと判断した場合には、トップページを表示しているかどうかを判断する（ｓ１５００４）。トップページを表示している場合には、ｓ１５００２へと遷移する。フル機能設定画面を表示している場合には、ｓ６０１５へと遷移する。
【００７８】
この実施例により、プリントケイパビリティ３２０２の読み込みに時間がかかっても起動を高速化することができる。また、プリントケイパビリティ３２０２の読み込みが完了する前に、モード１からモード２へとモードを変更することができるため、トップページにおいては高速に印刷設定の変更する度にコンフリクトを解消する処理とコンフリクトを通知する処理を行える。
【００７９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006478850.tif 000002
【図２】
0006478850.tif 000003
【図３】
0006478850.tif 000004
【図４】
0006478850.tif 000005
【図５】
0006478850.tif 000006
【図６】
0006478850.tif 000007
【図７】
0006478850.tif 000008
【図８】
0006478850.tif 000009
【図９】
0006478850.tif 000010
【図１０】
0006478850.tif 000011
【図１１】
0006478850.tif 000012
【図１２】
0006478850.tif 000013
【図１３】
0006478850.tif 000014
【図１４】
0006478850.tif 000015
【図１５】
0006478850.tif 000016
【図１６】
0006478850.tif 000017