(57)【要約】【課題】  印刷データの出力先のプリンターが互いに共通しており、かつ、何れも印刷設定画面を構築しない第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションであって、前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、異なる印刷設定画面情報を選択するアプリケーションは知られていなかった。【解決手段】  上記知られていなかったアプリケーションを提供する。【選択図】  図８
2020017304.tif 000002
【特許請求の範囲】
【請求項１】
印刷データの出力先のプリンターが互いに共通しており、かつ、何れも印刷設定画面を構築しない第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションであって、
所定の印刷設定画面内の所定のオブジェクトがユーザにより選択された際に、
当該アプリケーションは、前記コンピュータに、
前記第１及び第２のプリンタードライバーを含む複数のプリンタードライバーのうちの何れかのプリンタードライバーの情報を受け取る受取工程と、
前記受け取った情報に基づいて、互いに異なる印刷設定画面を構築可能な複数の印刷設定画面情報から、表示に用いる印刷設定画面情報を選択する選択工程と、
前記選択された印刷設定画面情報に基づいて印刷設定画面をディスプレイに表示させる工程と、を実行させ、
前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、前記選択工程で異なる印刷設定画面情報を選択することを特徴とするアプリケーション。
【請求項２】
印刷データの出力先のプリンターが互いに共通している第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションであって、
当該アプリケーションは、所定の印刷設定画面内の所定オブジェクトがユーザにより選択されたことに従って実行され、
当該アプリケーションは、前記コンピュータに実行されることによって、
前記第１及び第２のプリンタードライバーを含む複数のプリンタードライバーのうちの何れかのプリンタードライバーの情報を受け取り、
前記受け取った情報に基づいて、互いに異なる印刷設定画面を構築可能な複数の印刷設定画面情報から、表示に用いる印刷設定画面情報を選択し、
前記選択された印刷設定画面情報に基づいて印刷設定画面をディスプレイに表示させ、
前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、異なる印刷設定画面情報を選択することを特徴とするアプリケーション。
【請求項３】
印刷データの出力先のプリンターが互いに共通している第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションであって、
当該アプリケーションは、所定の印刷設定画面内の所定のオブジェクトがユーザにより選択されたことに従って起動され、
当該アプリケーションは、前記コンピュータに起動されることによって、
前記第１及び第２のプリンタードライバーを含む記複数のプリンタードライバーのうちの何れかのプリンタードライバーの情報を受け取る工程と、
前記受け取った情報に基づいて、互いに異なる印刷設定画面を構築可能な複数の印刷設定画面情報から、表示に用いる印刷設定画面情報を選択する工程と、
前記選択された印刷設定画面情報に基づいて印刷設定画面をディスプレイに表示させる工程と、を実行させ、
前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、前記選択工程で異なる印刷設定画面情報を選択することを特徴とするアプリケーション。
【請求項４】
前記アプリケーションは、前記所定のオブジェクトがユーザにより選択されたことに従って起動される実行型アプリケーションであることを特徴とする請求項１乃至３の何れか１項に記載のアプリケーション。
【請求項５】
前記アプリケーションは、前記コンピュータに実行されることにより、前記選択された印刷設定画面情報から、前記表示させる印刷設定画面を構築することを特徴とする請求項４に記載のアプリケーション。
【請求項６】
前記所定の印刷設定画面上で設定できる印刷設定項目とは異なる印刷設定項目の設定を、前記表示された印刷設定画面上で設定できることを特徴とする請求項５に記載のアプリケーション。
【請求項７】
前記所定の印刷設定画面上で設定できる印刷設定項目には、用紙サイズが含まれることを特徴とする請求項６に記載のアプリケーション。
【請求項８】
前記所定のオブジェクトとは、その他の設定を示すボタンであることを特徴とする請求項１乃至７の何れか１項に記載のアプリケーション。
【請求項９】
前記受け取る情報は、前記複数のプリンタードライバーのうちの選択されているプリンタードライバーの情報であり、
前記選択された印刷設定画面情報に基づいて表示された印刷設定画面上でユーザにより行われた印刷設定を、前記アプリケーションは、前記選択されているプリンタードライバーに提供することを特徴とする請求項１乃至８の何れか１項に記載のアプリケーション。
【請求項１０】
前記複数の印刷設定画面情報は、印刷設定画面が表示された際にユーザが設定できる印刷設定項目が互いに異なる複数の印刷設定画面情報を含むことを特徴とする請求項１乃至９の何れか１項に記載のアプリケーション。
【請求項１１】
前記複数のプリンタードライバーは、いずれも、ＸＰＳファイルをＰＤＬに変換することができるプリンタードライバーであることを特徴とする請求項１乃至１０の何れか１項に記載のアプリケーション。
【請求項１２】
前記複数の印刷設定画面情報を内包することを特徴とする請求項１乃至１１の何れか１項に記載のアプリケーション。
【請求項１３】
前記複数のプリンタードライバーは、いずれも、印刷設定画面情報を内包しないことを特徴とする請求項１乃至１２の何れか１項に記載のアプリケーション。
【請求項１４】
印刷設定画面情報とは、印刷設定画面を構築するための情報であることを特徴とする請求項１乃至１３の何れかに記載のアプリケーション。
【請求項１５】
前記情報は、前記プリンタードライバーからではなく、前記プリンタードライバーとは分離した領域から受け取ることを特徴とする請求項１乃至１４の何れか１項に記載のアプリケーション。
【請求項１６】
前記領域は、オペレーティングシステム内のドライバプロパティバッグであることを特徴とする請求項１乃至１５の何れか１項に記載のアプリケーション。
【請求項１７】
前記所定の印刷設定画面は、オペレーティングシステムにおける印刷用のモジュールによって提供される画面であることを特徴とする請求項１乃至１６の何れか１項に記載のアプリケーション。
【請求項１８】
複数のプリンタードライバーと分離しているアプリケーションとは、前記複数のプリンタードライバーの何れにも含まれておらず、かつ、前記複数のプリンタードライバーとは別のアプリケーションであることを特徴とする請求項１乃至１７の何れか１項に記載のアプリケーション。
【請求項１９】
印刷データの出力先のプリンターが互いに共通しており、かつ、何れも印刷設定画面を構築しない第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションがインストールされた情報処理装置であって、
所定の印刷設定画面内の所定のオブジェクトがユーザにより選択された際に、
前記情報処理装置は、前記アプリケーションの命令により、
前記第１及び第２のプリンタードライバーを含む複数のプリンタードライバーのうちの何れかのプリンタードライバーの情報を受け取り、
前記受け取った情報に基づいて、互いに異なる印刷設定画面を構築可能な複数の印刷設定画面情報から、表示に用いる印刷設定画面情報を選択し、
前記選択された印刷設定画面情報に基づいて印刷設定画面をディスプレイに表示させ、
前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、異なる印刷設定画面情報を選択することを特徴とする情報処理装置。
【請求項２０】
印刷データの出力先のプリンターが互いに共通している第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションがインストールされた情報処理装置であって、
所定の印刷設定画面内の所定オブジェクトがユーザにより選択されたことに従って前記情報処理装置は前記アプリケーションを実行し、
前記アプリケーションは、前記情報処理装置に実行されることによって、
前記第１及び第２のプリンタードライバーを含む複数のプリンタードライバーのうちの何れかのプリンタードライバーの情報を受け取り、
前記受け取った情報に基づいて、互いに異なる印刷設定画面を構築可能な複数の印刷設定画面情報から、表示に用いる印刷設定画面情報を選択し、
前記選択された印刷設定画面情報に基づいて印刷設定画面を前記コンピュータのディスプレイに表示させ、
前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、異なる印刷設定画面情報を選択することを特徴とする情報処理装置。
【請求項２１】
印刷データの出力先のプリンターが互いに共通している第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションがインストールされた情報処理装置であって、
所定の印刷設定画面内の所定オブジェクトがユーザにより選択されたことに従って前記情報処理装置は前記アプリケーションを起動し、
前記アプリケーションは、前記情報処理装置に起動されたことに従って、
前記第１及び第２のプリンタードライバーを含む複数のプリンタードライバーのうちの何れかのプリンタードライバーの情報を受け取り、
前記受け取った情報に基づいて、互いに異なる印刷設定画面を構築可能な複数の印刷設定画面情報から、表示に用いる印刷設定画面情報を選択し、
前記選択された印刷設定画面情報に基づいて印刷設定画面を前記コンピュータのディスプレイに表示させ、
前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、異なる印刷設定画面情報を選択することを特徴とする情報処理装置。
【請求項２２】
前記アプリケーションは、前記所定のオブジェクトがユーザにより選択されたことに従って起動される実行型アプリケーションであることを特徴とする請求項１９乃至２１の何れか１項に記載の情報処理装置。
【請求項２３】
前記アプリケーションは、前記コンピュータに実行されることにより、前記選択された印刷設定画面情報から、前記表示させる印刷設定画面を構築することを特徴とする請求項２２に記載の情報処理装置。
【請求項２４】
前記所定の印刷設定画面上で設定できる印刷設定項目とは異なる印刷設定項目の設定を、前記表示された印刷設定画面上で設定できることを特徴とする請求項２３に記載の情報処理装置。
【請求項２５】
前記所定の印刷設定画面上で設定できる印刷設定項目には、用紙サイズが含まれることを特徴とする請求項２４に記載の情報処理装置。
【請求項２６】
前記所定のオブジェクトとは、その他の設定を示すボタンであることを特徴とする請求項１９乃至２５の何れか１項に記載の情報処理装置。
【請求項２７】
前記受け取る情報は、前記複数のプリンタードライバーのうちの選択されているプリンタードライバーの情報であり、
前記選択された印刷設定画面情報に基づいて表示された印刷設定画面上でユーザにより行われた印刷設定を、前記アプリケーションから、前記選択されているプリンタードライバーに提供することを特徴とする請求項１９乃至２６の何れか１項に記載の情報処理装置。
【請求項２８】
前記複数の印刷設定画面情報は、印刷設定画面が表示された際にユーザが設定できる印刷設定項目が互いに異なる複数の印刷設定画面情報を含むことを特徴とする請求項１９乃至２７の何れか１項に記載の情報処理装置。
【請求項２９】
前記複数のプリンタードライバーは、いずれも、ＸＰＳファイルをＰＤＬに変換することができるプリンタードライバーであることを特徴とする請求項１９乃至２８の何れか１項に記載の情報処理装置。
【請求項３０】
前記複数の印刷設定画面情報を内包することを特徴とする請求項１９乃至２９の何れか１項に記載の情報処理装置。
【請求項３１】
前記複数のプリンタードライバーは、いずれも、印刷設定画面情報を内包しないことを特徴とする請求項１９乃至３０の何れか１項に記載の情報処理装置。
【請求項３２】
印刷設定画面情報とは、印刷設定画面を構築するための情報であることを特徴とする請求項１９乃至３１の何れかに記載の情報処理装置。
【請求項３３】
前記情報は、前記プリンタードライバーからではなく、前記プリンタードライバーとは分離した領域から受け取ることを特徴とする請求項１９乃至３２の何れか１項に記載の情報処理装置。
【請求項３４】
前記領域は、オペレーティングシステム内のドライバプロパティバッグであることを特徴とする請求項１９乃至３３の何れか１項に記載の情報処理装置。
【請求項３５】
前記所定の印刷設定画面は、オペレーティングシステムにおける印刷用のモジュールによって提供される画面であることを特徴とする請求項１９乃至３４の何れか１項に記載の情報処理装置。
【請求項３６】
複数のプリンタードライバーと分離しているアプリケーションとは、前記複数のプリンタードライバーの何れにも含まれておらず、かつ、前記複数のプリンタードライバーとは別のアプリケーションであることを特徴とする請求項１９乃至３５の何れか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷設定画面情報を選択するアプリケーション及び情報処理装置に関する。
【背景技術】
【０００２】
従来のプリンタードライバーには、印刷不可能な設定の組み合わせをプリンタードライバーＵＩ上で設定できないようにするコンフリクト処理が存在する。このプリンタードライバーＵＩ上でのコンフリクト処理は、ユーザーが任意の一つの設定項目を変えるたびに、設定可能かどうかを確認し、設定不可能ならばユーザーにその旨を通知する及び、他の設定項目を変更、無効な設定を選択不可能にすることを行っており、ユーザーは設定不可能な項目を一目瞭然に把握することができた（特許文献１参照）。
【０００３】
しかし、近年のプリンタードライバーの中には、コンフリクト処理を行うためのルールのみを持ち、コンフリクト処理をＯＳ（オペレーティングシステム）が行うものが出てきている（非特許文献１参照）。
【０００４】
このＯＳのコンフリクト処理は、二つのタイミングでコンフリクト処理を行うパターンが存在する。一つは、ユーザーが設定項目を変更するたびに、プリンタードライバーＵＩが、ＯＳのコンフリクト処理を呼び出し、確認を行うこと。もう一つは、全ての印刷設定の変更が終了後に、一括してＯＳがコンフリクト処理を呼び出し、確認を行うことである。しかし、ＯＳの二つのコンフリクト処理には、それぞれ問題がある。前者のユーザーが設定項目を変更するたびにＯＳのコンフリクト処理をドライバＵＩが呼び出し、確認を行う場合、ＯＳのコンフリクト処理の実行速度が遅く、ユーザビリティが非常に低下してしまう。後者は、ユーザーが、一括でコンフリクト処理を行うので、どのように変更されたかを認識しづらい問題がある。これらの問題を解決するために、プリンタードライバーＵＩが独自に禁則ルールを持ち、そのルールに沿って独自にコンフリクト処理をかけるのが一般的である（非特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−９９１７０号公報
【非特許文献】
【０００６】
【非特許文献１】ｈｔｔｐ：／／ｍｓｄｎ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｅｎ−ｕｓ／ｌｉｂｒａｒｙ／ｗｉｎｄｏｗｓ／ｈａｒｄｗａｒｅ／ｆｆ５６２０６３（ｖ＝ｖｓ．８５）．ａｓｐｘ
【非特許文献２】ｈｔｔｐ：／／ｍｓｄｎ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｅｎ−ｕｓ／ｌｉｂｒａｒｙ／ｗｉｎｄｏｗｓ／ｈａｒｄｗａｒｅ／ｊｊ２１８７３１（ｖ＝ｖｓ．８５）．ａｓｐｘ
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、印刷データの出力先のプリンターが互いに共通しており、かつ、何れも印刷設定画面を構築しない第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションであって、前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、異なる印刷設定画面情報を選択するアプリケーションは知られていなかった。
【課題を解決するための手段】
【０００８】
本発明に係るアプリケーションは、印刷データの出力先のプリンターが互いに共通しており、かつ、何れも印刷設定画面を構築しない第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションであって、  所定の印刷設定画面内の所定のオブジェクトがユーザにより選択された際に、当該アプリケーションは、前記コンピュータに、
前記第１及び第２のプリンタードライバーを含む複数のプリンタードライバーのうちの何れかのプリンタードライバーの情報を受け取る受取工程と、前記受け取った情報に基づいて、互いに異なる印刷設定画面を構築可能な複数の印刷設定画面情報から、表示に用いる印刷設定画面情報を選択する選択工程と、前記選択された印刷設定画面情報に基づいて印刷設定画面を前記コンピュータのディスプレイに表示させる工程と、を実行させ、前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、前記選択工程で異なる印刷設定画面情報を選択することを特徴とするアプリケーション。
【発明の効果】
【０００９】
本発明によれば、印刷データの出力先のプリンターが互いに共通しており、かつ、何れも印刷設定画面を構築しない第１及び第２のプリンタードライバーの何れとも分離しているアプリケーションであって、前記第１のプリンタードライバーの情報を受け取った場合と前記第２のプリンタードライバーの情報を受け取った場合とでは、異なる印刷設定画面情報を選択するアプリケーションを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態としての、クライアントとサーバー、そしてプリンターが接続されたネットワークの構成図
【図２】本発明の一実施形態としてのコンピュータを含むシステムの構成図
【図３】本発明の一実施形態としてのソフトウェアブロック図
【図４】本発明の一実施形態としての印刷フローチャート
【図５】本発明の実施形態に係る印刷処理システムのストアアプリからの印刷時に表示される印刷設定画面の一例
【図６】本発明の一実施形態としてのデバイスアプリの詳細設定画面の一例
【図７】本発明の一実施形態としてのデバイスアプリのコンフリクトポップアップ画面の一例
【図８】本発明の一実施形態としてのデバイスアプリの呼び出し処理のフローチャート
【図９】本発明の一実施形態としての禁則処理モジュールの呼び出し処理のフローチャート
【図１０】ＵＩ上でコンフリクト処理をかけた際には、禁則処理モジュール（３２０）呼び出し処理（ステップＳ８０９）をスキップする処理のフローチャート
【図１１】本発明の一実施形態としてのノンコンフリクト画面の一例
【図１２】本発明の一実施形態としてのノンコンフリクト画面を表示する際の印刷のフローチャート
【図１３】本発明の一実施形態としてのノンコンフリクト画面を表示するフローチャート
【図１４】本発明の一実施形態としてのグラフィクスフィルターの処理のフローチャート
【図１５】本発明の一実施形態としてのグラフィクスフィルターからデバイスアプリの禁則処理モジュールを利用するフローチャート
【図１６（ａ）】本発明の一実施形態としてのＧＰＤファイルの禁則ルールの一例
【図１６（ｂ）】本発明の一実施形態としてのＧＰＤファイルの用紙サイズの設定項目情報の一例
【図１６（ｃ）】本発明の一実施形態としてのＧＰＤファイルの両面印刷の設定項目情報の一例
【発明を実施するための形態】
【００１１】
本発明に係る情報処理装置の一実施形態としてのコンピュータについて説明する。
【実施例１】
【００１２】
図１は、本発明の印刷システムが適用可能な装置構成例を示す図である。本印刷システムは、ＰＣ（１０）、プリンター（２０）とから構成される。ＰＣ（１０）とプリンター（２０）はＬＡＮ（１）を介して接続されている。ＬＡＮ（１）はイーサーネットの通信方式に対応している。ＰＣ（１０）とプリンター（２０）は有線ＬＡＮ、無線ＬＡＮ、ＢｌｕｅＴｏｏｔｈ（登録商標）、ＵＳＢなどその他の接続形態によって接続されても良い。本発明に係る情報処理装置の一実施形態としてのコンピュータについて説明する。なお、図２は、本実施形態のコンピュータを含むプリンター制御システムの構成を説明するブロック図である。
【００１３】
ＰＣ（１０）はホストコンピュータで、ＲＯＭ（１０２）のプログラム用ＲＯＭあるいは外部メモリ（１０９）に記憶された各種プログラムを実行するＣＰＵ（１０１）を備える。さらに、システムバス（１２０）に接続される各デバイスをＣＰＵ（１０１）が総括的に制御する。また、このＲＯＭ（１０２）あるいは外部メモリ（１０９）には、ＣＰＵ（１０１）の制御プログラムであるＯＳ等を記憶する。なお、本実施例ではＯＳはＷｉｎｄｏｗｓ（登録商標）とするが、他のＯＳであってもよい。
【００１４】
１０３はＲＡＭで、ＣＰＵ（１０１）の主メモリ、ワークエリア等として機能する。１０４はキーボードＩ／Ｆで、キーボード（１０５）やマウス・タッチパネルなどのポインティングデバイス（１１３）からのキー入力を制御する。１０６はディプレイＩ／Ｆで、ディスプレイ（１０７）の表示を制御する。
【００１５】
１０８は外部メモリＩ／Ｆで、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ（１０９）とのアクセスを制御する。外部メモリ（１０９）は、本発明の重要な位置を占めるアプリケーション（１０９０１）、デバイスアプリ（１０９０２）、プリンタードライバー（１０９０３）、ＯＳ（１０９０４）等の各種プログラムが格納される。本実施例においてはＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓであることを想定しているが、これに限定されるものではない。
【００１６】
１１０はプリンターＩ／Ｆで、プリンター（１１１）との接続を行う。１１２はポインティングデバイスＩ／Ｆで、タッチパネルなどを含むポインティングデバイス（１１３）と接続する。なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであってもよい。
【００１７】
図３に本発明が対象とするソフトウェアモジュールの一例をブロック図で示す。ブロック図の基本構成は、アプリケーション（１０９０１）、印刷システム（１０９０４１）、プリンタードライバー（１０９０３）、システムスプーラー（１０９０４２）、デバイスアプリ（１０９０２）で構成されている。これらのソフトウェアモジュールは、外部メモリ（１０９）に格納されており、ユーザーの要求や、他のシステムの要求に応じて、外部メモリ（１０９）からＲＡＭ（１０３）にロードされ、ＣＰＵ（１０１）で実行される。ここにおけるアプリケーション（１０９０１）とは、ワードプロセッサやブラウザなどの一般的なアプリケーションである。
【００１８】
ディスプレイ（１０７）上にＵＩを表示し、ポインティングデバイス（１１３）やキーボード（１０５）などの入力機器によってユーザーの印刷要求を受け付ける。ユーザーの印刷要求を受けて、アプリケーション（１０９０１）は、印刷システム（１０９０４１）へ印刷要求を出す。印刷システム（１０９０４１）は、ＯＳ（１０９０４）のサブシステムである。
【００１９】
アプリケーション（１０９０１）とプリンタードライバー（１０９０３）の中間に位置し、印刷処理における共通処理の実行を行う。具体的な実行処理は、印刷対象プリンターの選択や、選択されたプリンタードライバー（１０９０３）のＰｒｉｎｔＴｉｃｋｅｔ（３１１）、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）の生成、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）のコンフリクト処理、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）ファイルをＰａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＰＤＬ）へ変換することである。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）は、用紙サイズなどを含むプリンター（２０）で実行可能な項目の一覧のデータである。
【００２０】
一方、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）は、印刷時に利用される印刷設定の情報であり、印刷及びコンフリクト処理時などに利用される。ＰｒｉｎｔＣａｐｐａｉｂｌｉｔｉｅｓ（３１０）とＰｒｉｎｔＴｉｃｋｅｔ（３１１）は、アプリケーション（１０９０１）から印刷システム（１０９０４１）経由でプリンタードライバー（１０９０３）に生成の依頼がされる。
【００２１】
ＰｒｉｎｔＣａｐｐａｉｂｌｉｔｉｅｓ（３１０）とＰｒｉｎｔＴｉｃｋｅｔ（３１１）の生成を依頼されたプリンタードライバー（１０９０３）がそれらを生成し、印刷システム（１０９０４１）経由でアプリケーション（１０９０１）に渡すことで、アプリケーション（１０９０１）は、選択されたプリンタードライバー（１０９０３）関連の情報を利用することができる。
【００２２】
ＸＰＳファイル（３１２）は、アプリケーション（１０９０１）から渡される印刷対象のデータであり、アプリケーション（１０９０１）によってＰｒｉｎｔＴｉｃｋｅｔ（３１１）の情報が付加されている。アプリケーション（１０９０１）から印刷システム（１０９０４１）経由で、プリンタードライバー（１０９０３）に渡され、ＰＤＬ（３１４）に変換することで、プリンター（２０）が印刷を行うことができる。
【００２３】
なお、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）とＰｒｉｎｔＴｉｃｋｅｔ（３１１）、ＸＰＳファイル（３１２）は、それぞれマークアップ言語で記述されている。
【００２４】
プリンタードライバー（１０９０３）は、印刷出力先のプリンター（２０）に依存する処理を受け持つモジュールであり、大きくわけて２つのブロックで構成されている。
【００２５】
ひとつは、印刷設定関連の情報を作成する印刷設定ブロック（１０９０３０）であり、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）のコンフリクト処理とＰｒｉｎｔＣａｐｐａｉｂｌｉｔｉｅｓ（３１０）の作成を行う。印刷設定ブロック（１０９０３０）は、禁則処理モジュール（３２０）、ＧＰＤファイル（３２１）、ＣｏｎｓｔｒａｉｎｔＪａｖａｓｃｒｉｐｔ（３２２）から構成される。禁則処理モジュール（３２０）は、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）のコンフリクト処理やＰｒｉｎｔＣａｐｐａｉｂｌｉｔｉｅｓ（３１０）の作成を担う。ＧＰＤファイル（３２１）は、禁則ルールや印刷時に設定できる項目等を記述してあるデータである。ＧＰＤファイル（３２１）は、詳細な説明は図１６を用いて後述する。ＣｏｎｓｔｒａｉｎｔＪａｖａｓｃｒｉｐｔ（３２２）は、ＧＰＤファイル（３２１）に記述できない設定や禁則ルールをＰｒｉｎｔＴｉｃｋｅｔ（３１１）やＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）に反映させるために呼ばれる。ただし、セキュリティ面を考慮されてインタープリンタ言語であるｊａｖａｓｃｒｉｐｔで記述されたモジュールであり、ネイティブ言語と異なり、事前に最適化が行われていないため、実行時に非常に時間がかかる。禁則処理モジュール（３２０）がコンフリクト処理をする際に、呼び出し元からＰｒｉｎｔＴｉｃｋｅｔ（３１１）を受け取り、次にＧＰＤファイル（３２１）に記述されている禁則ルールの情報を読み出す。禁則処理モジュール（３２０）は、ＧＰＤファイルの情報を基にＰｒｉｎｔＴｉｃｋｅｔ（３１１）のコンフリクト処理を行い、その後にＣｏｎｓｔｒａｉｎｔＪａｖａｓｃｒｉｐｔを呼び出し、ＧＰＤファイルに記述できない禁則ルールをＰｒｉｎｔＴｉｃｋｅｔ（３１１）に適応する。これらの一連の処理により、コンフリクト処理が行われる。
【００２６】
次に、プリンタードライバー（１０９０３）を構成するもう一つのブロックの、グラフィクスフィルター（１０９３１）について説明する。グラフィクスフィルター（１０９３１）は、ＸＰＳファイル（３１２）をＰＤＬ（３１４）に変換する部分である。ＸＰＳファイル（３１２）に付加されているＰｒｉｎｔＴｉｃｋｅｔ（３１１）の情報を抽出し、その情報からＰｒｉｎｔＴｉｃｋｅｔ（３１１）を生成する。グラフィクスフィルター（１０９０３１）は、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）を基に、ＸＰＳファイル（３１２）をＰＤＬ（３１４）に変換する。次にデバイスアプリ（１０９０２）の説明を行う。デバイスアプリ（１０９０２）は、プリンタードライバー（１０９０３）の補助アプリである。プリンタードライバー（１０９０３）と同様にプリンター（２０）に対応したソフトウェアで、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）とＰｒｉｎｔＴｉｃｋｅｔ（３１１）を解釈できる。デバイスアプリ（１０９０２）は、詳細設定画面、デバイスメタデータ（３３０）、禁則処理モジュール（３０７）で構成される。デバイスメタデータ（３３０）は、プリンタードライバー（１０９０３）とデバイスアプリ（１０９０２）を関連付けるものである。デバイスアプリ（１０９０２）が補助することができるプリンタードライバー（１０９０３）が記述されており、デバイスアプリ（１０９０２）は、デバイスメタデータ（３３０）に記述されているプリンタードライバー（１０９０３）の補助を、デバイスアプリ（１０９０２）で行うことができる。
【００２７】
なお、デバイスアプリ（１０９０２）は、一つで複数の種類のプリンタードライバー（１０９０３）を補助することが可能である。
【００２８】
禁則処理モジュール（３０７）は、プリンタードライバー（１０９０３）内の禁則処理モジュール（３２０）と同様の処理を行えるモジュールである。ここで、同様というのは、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）とＧＰＤファイルをインプットとし、コンフリクト処理を施したＰｒｉｎｔＴｉｃｋｅｔ（３１１）をアウトプットとしたときに、プリンタードライバー（１０９０３）の禁則処理モジュール（３０７）とデバイスアプリ（１０９０２）内の禁則処理モジュール（３２０）は、同じインプットから同じアウトプットを出力することを意味する。禁則処理モジュール（３０７）は、呼び出し元からＰｒｉｎｔＴｉｃｋｅｔ（３１１）を渡され、次に、ドライバプロパティバッグ（３３１）内のＧＰＤファイル（３１５）内の禁則ルールを読み込み、その情報を基にＰｒｉｎｔＴｉｃｋｅｔ（３１１）にコンフリクト処理を行い、アウトプットとしてＰｒｉｎｔＴｉｃｋｅｔ（３１１）を出力する。
【００２９】
ＧＰＤファイル（３１５）はインストール時点で、ドライバプロパティバッグ（３３１）に配置されており、内容はＧＰＤファイル（３２１）と同じものである。これは、デバイスアプリ（１０９０２）が、ＧＰＤファイル（３２１）にアクセスできないため、アクセス可能な場所にＧＰＤファイル（３１５）を置き、コンフリクト処理時にインプットとして利用するためである。ドライバプロパティバッグ（３３１）は、インストール前に定義しておきたいデータを記憶しておくことができる記憶領域であり、プリンタードライバー（１０９０３）やデバイスアプリ（１０９０２）からアクセスすることができる。
【００３０】
次に、印刷設定ブロック（１０９０３０）内のＧＰＤファイル（３２１）とドライバプロパティバッグ内のＧＰＤファイル（３１５）について図１６（ａ）、図１６（ｂ）、図１６（ｃ）を用いて説明する。ＧＰＤファイルは、コンフリクト処理の不適切な組み合わせ、用紙サイズなどの選択項目の選択肢のデータ等から構成されている。
【００３１】
１７００は、コンフリクト処理を行う組み合わせの例である。コンフリクト処理の禁則ルールは、無効な設定の組み合わせを記述するようになっている。この図では、用紙サイズの「はがき」と両面印刷の「長辺両面」の組み合わせになっており、それぞれＭｅｄｅａＴｙｐｅ．ＰｏｓｔＣａｒｄ，ＤＵＰＬＥＸ．ＶＥＲＴＩＣＡＬで表現されている。１７０１は、用紙サイズの選択項目の設定が記述されていることを表しており、同様に、１７０２は、両面印刷の設定が記述されていることを表している。１７０３は、設定項目の選択肢であり、本図では用紙サイズの「はがき」の詳細なデータに関して記述してある例である。１７０４は、用紙サイズの禁則処理の優先度であり、値が低い設定項目ほど優先されることを表す。例えば、本図では用紙サイズは禁則処理の優先度は１であり、１７０５は両面印刷の優先度は１５であることを示している。従って、１７００のコンフリクト処理を行う際には、用紙サイズである「はがき」は変更されずに両面印刷の設定が変更される。
【００３２】
ここで、図４のフローチャートを用いて、印刷処理の概要を説明する。本処理は、まずユーザーの印刷要求を受けてアプリケーション（１０９０１）が印刷システム（１０９０４１）へ印刷要求を出すことにより開始する。ステップＳ４０１では印刷システム（１０９０４１）が現在設置されているプリンタードライバー（１０９０３）の情報を基に、印刷可能なプリンター（２０）の一覧を示すＵＩ（不図示）をディスプレイ（１０７）上に表示する。ステップＳ４０２ではプリンター（２０）の一覧を示すＵＩ上でユーザーによる出力プリンター（２０）の選択を受けて、印刷システム（１０９０４１）は、該当のプリンタードライバー（１０９０３）を外部メモリ（１０８）からＲＡＭ（１０３）にロードする、ＣＰＵ（１０１）で実行する。ステップＳ４０３では、印刷システム（１０９０４１）経由で、プリンタードライバー（１０９０３）にＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）とＰｒｉｎｔＴｉｃｋｅｔ（３１１）の生成を依頼する。印刷設定ブロック（１０９０３０）の禁則処理モジュール（３２０）はそれぞれ、ＧＰＤファイル（３２１）を読み出し、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）とＰｒｉｎｔＴｉｃｋｅｔ（３１１）を生成する。生成されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（３１０）とＰｒｉｎｔＴｉｃｋｅｔ（３１１）を基に印刷システム（１０９０４１）は、図５の印刷設定画面（５０１）を構成し、ディスプレイ（１０７）に表示する。
【００３３】
次にステップＳ４０４では、印刷設定画面（５０１）に対するユーザーからの操作を受け付ける。ステップＳ４０５では印刷システム（１０９０４１）が印刷設定画面（５０１）の「Ｍｏｒｅ  Ｓｅｔｔｉｎｇｓ」リンク（５０２）が押下されたかの判定を行う。「Ｍｏｒｅ  Ｓｅｔｔｉｎｇｓ」リンク（５０２）が押下されたと判断した場合、ステップＳ４０６にて、印刷システム（１０９０４１）がデバイスアプリ（１０９０２）を呼び出す。この時の、ステップＳ４０６の処理に関しては後述する。「Ｍｏｒｅ  Ｓｅｔｔｉｎｇｓ」リンク（５０２）が押下されていないと判断した場合はステップＳ４０７へ進む。
【００３４】
ステップＳ４０７では、印刷システム（１０９０４１）は印刷設定画面（５０１）の戻るボタン（５０３）の押下を受けてプリンタードライバー（１０９０３）へ現在のＰｒｉｎｔＴｉｃｋｅｔ（３１１）を受け渡す。ステップＳ４０８では、禁則処理モジュール（３２０）を呼び出し、印刷設定が有効かどうかを確認する。ここは、本実施例の重要な個所のため、詳細は後述する。検証の結果を基に、ステップＳ４０９では、全ての設定値が有効か判断を行い、有効な場合は印刷設定画面（５０１）を閉じてステップＳ４１０に処理を移行する。全ての設定が有効でなかった場合は、ステップＳ４０４に移り、ユーザーの操作を受け付ける。ステップＳ４１０で、印刷システム（１０９０４１）は、有効になった現在の設定のＰｒｉｎｔＴｉｃｋｅｔ（３１１）をＸＰＳファイル（３１２）に付加し、ステップＳ４１１で、ＸＰＳファイル（３１２）をグラフィクスフィルター（１０９０３１）へ出力する。グラフィクスフィルター（１０９０３１）でＰＤＬ（３１４）に変換する。ステップＳ４１１は、グラフィクスフィルター（１０９０３１）の呼び出し処理である。詳細について図１４を用いて後述する。ステップＳ４１１にて、ＯＳ（１０９０４）のサブシステムであるシステムスプーラー（１０９０４２）に受け渡されプリンター（２０）に送信される。以上の処理を行うことで、印刷処理が実行される。
【００３５】
次に、グラフィクスフィルター（１０９０３１）の処理について、図１４用いて説明する。ステップＳ１５０１では、グラフィクスフィルター（１０９０３１）が受け取ったＸＰＳファイル（３１２）を解析し、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）を取り出す。ステップＳ１５０２で禁則処理モジュール（３２０）を呼び出し、生成したＰｒｉｎｔＴｉｃｋｅｔ（３１１）にコンフリクト処理を施す。ステップＳ１５０３へ処理を移行する。ステップＳ１５０３で、ＸＰＳファイル（３１２）からＰＤＬ（３１４）を生成し、処理を終了する。次に、詳細設定画面（６００）について、図６を用いて説明する。詳細設定画面（６００）は、印刷設定画面（５０１）では設定できない設定などを行うことを目的とした印刷設定画面である。この画面は、図５の「Ｍｏｒｅ  Ｓｅｔｔｉｎｇｓ」リンク（５０２）が押下された際に表示される。図に示されている６０１は戻るボタンであり、ユーザーによってタップされることで印刷設定画面（５０１）に、印刷設定画面（５０１）に遷移する。６０２は、印刷設定の用紙サイズを設定する用紙サイズコントロールボックスであり、ユーザーがタップをすることで用紙サイズの一覧が表示され、選択したい用紙サイズで、タップしている指を離すことで、用紙サイズを変更することができる。
【００３６】
なお、本図では用紙サイズは「はがき」が設定されている。６０３は、片面、両面の印刷設定を行う片面両面選択コントロールボックスであり、ユーザーがタップすることで、片面、短辺両面、長辺両面の一覧が表示され、選択したい項目で指を離すことで、印刷設定を変更することができる。なお、本図では「片面」が選択されている。
【００３７】
デバイスアプリ（１０９０２）の呼び出し処理に関して図のフローチャートを用いて説明を行う。なお、特に断らない限り本実施例のフローチャートの主体はデバイスアプリ（１０９０２）である。ステップＳ８０１では、印刷システム（１０９０４１）を介してプリンタードライバー（１０９０３）から用紙サイズを含むＰｒｉｎｔＴｉｃｋｅｔ（３１１）を取得する。ステップＳ８０２では、取得したＰｒｉｎｔＴｉｃｋｅｔ（３１１）を基に、詳細設定画面（６００）の表示を行う。
【００３８】
ステップＳ８０３では、ユーザーからの操作を受け付ける。ユーザーによって戻るボタン（６０１）イベントが発生した場合は、ステップＳ８０４の戻るボタン（６０１）イベントの判別処理からからステップＳ８１０へ処理を移行する。ユーザー操作で、印刷設定が何も変更されなかった場合ステップＳ８０５の詳細設定画面（６００）の印刷設定の変更の判別処理からステップＳ８０３へと処理を移行し、再度、ユーザー操作を受け付ける。ステップＳ８０５で詳細設定画面（６００）の印刷設定の項目が変更された場合、ステップＳ８０６へ遷移し、ＵＩの参照先となっているＰｒｉｎｔＴｉｃｋｅｔ（３１１）の設定値を変更する。その後、ステップＳ８０７へ遷移し、禁則処理モジュール（３０７）を呼び出す。この内容は、本実施例の重要な位置を占めるため、後述する。
【００３９】
ステップＳ８０８では、コンフリクト処理によりＰｒｉｎｔＴｉｃｋｅｔ（３１１）の設定値が変更されたかどうかの確認を行う。コンフリクト処理が行われた場合、ステップＳ８０９に遷移し、ユーザーにコンフリクト時に通知する。コンフリクト通知に関しては、後述する。ステップＳ８１０は、戻るボタン（６０１）がタップされた際に遷移し、印刷設定画面（５０１）に遷移する前に、印刷システム（１０９０４１）に処理を渡し、印刷システム（１０９０４１）が禁則処理モジュール（３２０）呼び出し処理を行い、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）にコンフリクト処理を行う。これにより、印刷設定画面（５０１）に戻るときには、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）の設定値は、印刷可能な設定になっている。
【００４０】
次に、コンフリクト時に、ユーザーに通知する手段について図７を用いて説明する。図の示す７００は、コンフリクトポップアップ画面である。デバイスアプリ（１０９０２）がコンフリクト処理を行った際に、コンフリクトが行われたことをユーザーに通知するために、表示される。次に具体的な一例を示す。片面両面選択コントロールボックス（６０３）に「両面長辺」を設定している時に、用紙サイズコントロールボックス（６０２）に「はがき」に設定すると、片面両面選択コントロールボックス（６０３）は「両面長辺」を「片面」に変更するコンフリクト処理を行う。これは、先述したとおり、ＧＰＤファイルに記述されている優先度に依存する。その際にコンフリクトポップアップ（７００）にコンフリクト処理行われたことと、どの設定がコンフリクトなのかを表示することでユーザーに通知を行う。なお、本実施例ではポップアップを用いて説明しているが、他の通知手段であってもよい。また、コンフリクト処理による他のＰｒｉｎｔＴｉｃｋｅｔ（３１１）の設定値の変更の時にも同様の処理が行われる。
【００４１】
次に、禁則処理モジュール（３０７）を呼び出す処理について図９を用いて説明する。ステップＳ１０００で、禁則処理モジュール（３０７）は、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）を呼び出し元から受け取る。ステップＳ１００１では、禁則処理モジュール（３０７）は、ドライバプロパティバッグのＧＰＤファイル（３１５）を読み込み、禁則ルールを把握する。ステップＳ１００２では、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）が有効であるかを判別し、無効ならばステップＳ１００３へ処理を移行し、コンフリクト処理をかける。ステップＳ１００４では、禁則処理モジュール（３０７）は、呼び出し元にコンフリクト処理を施したＰｒｉｎｔＴｉｃｋｅｔ（３１１）を渡す。このように、禁則処理モジュール（３０７）は、ＧＰＤファイル（３２１）と同じ内容のファイルを利用しつつ、インタープリタ言語を呼び出さないため、保守性を担保しながら高速にコンフリクト処理を行うことができる。
【実施例２】
【００４２】
実施例１では、ＵＩ上でのリアルタイムコンフリクトをかけることの保守性について言及したが、ＵＩ上でのリアルタイムコンフリクトをかけると図８のステップＳ８１０の禁則処理モジュール呼び出し処理と、二重でコンフリクト処理をかけており、また、インタープリタ言語を利用する禁則処理モジュール（３２０）を利用するため、処理が遅くなる問題が存在する。しかし、ステップＳ８１０の処理を行わないと、ユーザーが詳細設定画面（６００）の印刷設定を変更しなかった際に、一度もコンフリクト処理を行わないＰｒｉｎｔＴｉｃｋｅｔ（３１１）が生成されてしまう。これは、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）が有効な設定値であることを保証できない。
【００４３】
そこで、実施例２では、ＵＩ上でコンフリクト処理をかけた際には、禁則処理モジュール（３２０）呼び出し処理（ステップＳ８０９）をスキップし、ＵＩ上でコンフリクト処理をかけなかった際には、戻るボタン（６０１）イベント発生時に禁則処理モジュール（３０７）を呼び出す方法について図１０を用いて説明する。なお、特に断らない限り本実施例のフローチャートの主体はデバイスアプリ（１０９０２）である。ステップＳ１１０１からステップＳ１１０６までは、ステップＳ８０１からステップＳ８０６までと同じため、説明は省略する。
【００４４】
ステップＳ１１０７では、ユーザーが一度でもＰｒｉｎｔＴｉｃｋｅｔ（３１１）を変更していた場合、変更されたことを示すＣｈａｎｇｅｄフラグをたてる。Ｃｈａｎｇｅｄフラグはデバイスアプリ（１０９０２）内で保持するフラグである。ステップＳ１１０８からステップＳ１１１０までは、ステップＳ８０７からステップＳ８０９までと同じため説明は省略する。
【００４５】
ステップＳ１１０９では、ユーザーが一度でもＰｒｉｎｔＴｉｃｋｅｔ（３１１）を変更しているかどうかを判別する。Ｃｈａｎｇｅｄフラグが立っていない場合、ステップＳ１１１０へ遷移し、禁則処理モジュール（３０７）がコンフリクト処理を行う。これにより、インタープリタ言語を利用している禁則処理モジュール（３２０）を利用せずに、必ずコンフリクト処理を行うことができ、また重複するコンフリクト処理を行わないため、デバイスアプリ（１０９０２）の呼び出し処理全体で、コンフリクト処理を高速化することができる。
【実施例３】
【００４６】
実施例２では、ＵＩ上でコンフリクト処理をかけた際には、禁則処理モジュール呼び出し処理（Ｓ８１０）をスキップできる方法について説明したが、ＵＩ上でコンフリクト処理をかけたくても、かけられない状態が存在する。例えば、デバイスアプリ（１０９０２）がサポートしているプリンタードライバー（１０９０３）の中には、ドライバプロパティバッグ（３３１）にＧＰＤファイル（３１５）を保持していないものが存在する。その場合、実施例１のようなＵＩ上でのコンフリクト処理を行うことができない。
【００４７】
そこで、本実施例では、ＧＰＤファイル（３１５）を保持していないプリンタードライバー（１０９０３）には、ＵＩ上でコンフリクト処理をかけなくて済むＵＩを表示する手段について説明する。図１１では、ノンコンフリクト画面について説明する。１２００はノンコンフリクト画面であり、ＧＰＤファイル（３１５）が存在しなかった場合に表示される。１２０１は、戻るボタンであり、詳細設定画面（６００）の戻るボタン（６０１）と同様、ユーザーにタップされることで印刷設定画面（５０１）に遷移するイベントを起動し、印刷設定画面（５０１）に遷移する。１２０２は、用紙サイズコントロールボックス（６０２）と同様の印刷時に利用される用紙のサイズを設定する用紙サイズコントロールボックスであり、ユーザーがタップをすることで用紙サイズを変更することができる。図１２、図１３は、ノンコンフリクト画面（１２００）を表示するフローチャートである。なお、特に断らない限り、図１２、図１３の主語はデバイスアプリ（１０９０２）である。
【００４８】
ステップＳ１３０１では、ドライバプロパティバッグ（３３１）にＧＰＤファイル（３１５）が存在するかどうかを確認する。存在している場合は、禁則処理モジュール（３０７）を呼び出せることを意味するので、ステップＳ１３０３へ遷移し、詳細設定画面（６００）を表示するための処理を行う。なおステップＳ１３０３からＳ１３１４までは、ステップＳ１１０１からＳ１１１２までと同じため、説明は省略する。ＧＰＤファイル（３１５）が存在しない場合、禁則処理モジュール（３０７）を呼び出せないことを意味するので、ステップＳ１３０２へ遷移し、ノンコンフリクト画面を表示するための処理フローを行う。
【００４９】
次に、ノンコンフリクト画面を表示するための処理フローについて図１３を用いて説明する。ステップＳ１４０１は、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）を取得する。ステップＳ１４０２はノンコンフリクト画面（１２００）にＰｒｉｎｔＴｉｃｋｅｔ（３１１）の設定値を反映させ、表示を行う。ステップＳ１４０３では、ユーザー操作を受け付ける。
【００５０】
ステップＳ１４０４では、戻るボタン（１２０１）イベントの発生を確認する。ユーザーが戻るボタンをタップせずに、ステップＳ１４０４に遷移し、ノンコンフリクト画面（１２００）の印刷設定が変更すると、ステップＳ１４０５で、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）の設定値を変更し、ステップＳ１４０２で、コンフリクトの確認をせずノンコンフリクト画面（１２００）にＰｒｉｎｔＴｉｃｋｅｔ（３１１）を反映させて表示する。印刷設定が変更されなかった場合は、ステップＳ１４０３へ遷移し、ユーザー操作を再度受け付ける。ステップＳ１４０４では、戻るボタン（１２０１）を押されることにより、戻るボタンイベントが発生する。この際に、ステップＳ１４０７にあるように、ノンコンフリクト画面（１２００）は、ＯＳ（１０９０４）がコンフリクト処理を行い、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）を印刷可能な設定にする。その後、印刷設定画面（５０１）に遷移する。これにより、ＧＰＤファイル（３１５）が存在する状況としない状況とで、最も高速かつ正確なコンフリクト処理を行うことができる。
【実施例４】
【００５１】
実施例１では、ＵＩ上でのコンフリクトのパフォーマンスについて言及したが、同様の処理をグラフィクスフィルター（１０９０３１）で行うこともできる。実施例４では、グラフィクスフィルター（１０９０３１）からデバイスアプリ（１０９０２）の禁則処理モジュール（３０７）を利用する手段について図１５を用いて説明する。なお、特に断らない限り本実施例のフローチャートの主体はグラフィクスフィルター（１０９０３１）である。
【００５２】
ステップＳ１６０１では、グラフィクスフィルター（１０９０３１）がＸＰＳファイル（３１２）の解析を行い、ＰｒｉｎｔＴｉｃｋｅｔ（３１１）を取り出す。ステップＳ１６０２では、グラフィクスフィルター（１０９０３１）は、ＧＰＤファイル（３１５）が存在しているかを確認する。ＧＰＤファイル（３１５）が存在していた場合は、ステップＳ１６０３へ遷移し、デバイスアプリ（１０９０２）の禁則処理モジュール（３０７）を呼び出す。ＧＰＤファイル（３１５）が存在していなかった場合、ステップＳ１６０４へ遷移し、プリンタードライバー（１０９０３）の禁則処理モジュール（３２０）を呼び出す。その後、グラフィクスフィルター（１０９０３１）は、ＸＰＳファイル（３１２）からＰＤＬ（３１４）を生成する。これにより、グラフィクスフィルター（１０９０３１）は、ＧＰＤファイル（３１５）が存在する状況において、禁則処理モジュール（３０７）を呼び出し、高速にコンフリクト処理を行うことができる。
【符号の説明】
【００５３】
１  ＬＡＮ
１０  ＰＣ
２０  プリンター
【図１】
2020017304.tif 000003
【図２】
2020017304.tif 000004
【図３】
2020017304.tif 000005
【図４】
2020017304.tif 000006
【図５】
2020017304.tif 000007
【図６】
2020017304.tif 000008
【図７】
2020017304.tif 000009
【図８】
2020017304.tif 000010
【図９】
2020017304.tif 000011
【図１０】
2020017304.tif 000012
【図１１】
2020017304.tif 000013
【図１２】
2020017304.tif 000014
【図１３】
2020017304.tif 000015
【図１４】
2020017304.tif 000016
【図１５】
2020017304.tif 000017
【図１６（ａ）】
2020017304.tif 000018
【図１６（ｂ）】
2020017304.tif 000019
【図１６（ｃ）】
2020017304.tif 000020