(57)【要約】      （修正有）【課題】印刷装置に対する印刷機能を示すユーザインタフェースを更新する。【解決手段】第１の印刷機能データから第１の印刷機能を読み込む工程と、第１の印刷機能に関連付けられた複数のインタフェース要素を含むユーザインタフェースを生成する工程と、第２の印刷機能データから第１の印刷機能とは異なる印刷機能を含む第２の印刷機能を読み込む工程と、第１の印刷機能と第２の印刷機能とに基づいて、第１の印刷機能とは異なる印刷機能を含む、変更された印刷機能を示す差分印刷機能データを生成する工程と、第１の印刷機能とは異なる印刷機能を含む、差分印刷機能データによって示された変更された印刷機能に関連付けられたインタフェース要素を更新する工程とを有し、少なくとも１つのインタフェース要素は、変更された印刷機能に依存しない。【選択図】図６
2012185806.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に対する印刷機能を示すユーザインタフェースを更新するための方法であって、
第１の印刷機能データから１または複数の第１の印刷機能を読み込む工程と、
前記１または複数の第１の印刷機能に関連付けられた複数のインタフェース要素を含むユーザインタフェースを生成する工程と、
第２の印刷機能データから前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む１または複数の第２の印刷機能を読み込む工程と、
前記１または複数の第１の印刷機能と前記１または複数の第２の印刷機能とに基づいて、前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む、変更された印刷機能を示す差分印刷機能データを生成する工程と、
前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む、前記差分印刷機能データによって示された前記変更された印刷機能に関連付けられた前記１または複数のインタフェース要素を更新する工程と、
を有し、
少なくとも１つのインタフェース要素は、前記変更された印刷機能に依存していないことを特徴とする方法。
【請求項２】
前記変更された印刷機能に依存していない前記少なくとも１つのインタフェース要素を維持する工程を更に有することを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の印刷機能データに基づいて、印刷機能の基本ルックアップテーブルを生成する工程を更に有し、
前記印刷機能の基本ルックアップテーブルは、前記１または複数の第１の印刷機能を含み、
前記差分印刷機能データは、前記印刷機能の基本ルックアップテーブルの少なくとも一部に基づいて生成されることを特徴とする請求項１に記載の方法。
【請求項４】
前記第２の印刷機能データに基づいて、前記第２の印刷機能を含む印刷機能の結果ルックアップテーブルを生成する工程と、
前記印刷機能の結果ルックアップテーブルを前記印刷機能の基本ルックアップテーブルとして特定する工程と
を更に有することを特徴とする請求項３に記載の方法。
【請求項５】
前記基本ルックアップテーブルを生成する工程は、前記第１の印刷機能データに基づいて、ドキュメントオブジェクトモデルを生成する工程を有することを特徴とする請求項３に記載の方法。
【請求項６】
前記基本ルックアップテーブルは、要素の名称、前記要素に対するマークアップ言語の文字列へのポインタ、および前記要素に対する前記ドキュメントオブジェクトモデルから前記マークアップ言語の文字列の長さを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記第１の印刷機能データは、マークアップ言語データを含み、
前記第２の印刷機能データは、マークアップ言語データを含み、
前記差分印刷機能データは、マークアップ言語データを含む、ことを特徴とする請求項１に記載の方法。
【請求項８】
ポインタに関連付けられたプリンタドライバに第１のマークアップ言語印刷データを送信する工程を更に有し、
前記第１の印刷機能データは、前記第１のマークアップ言語印刷データの送信に応答して前記プリンタドライバから受信されることを特徴とする請求項７に記載の方法。
【請求項９】
前記プリンタドライバに第２のマークアップ言語印刷データを送信する工程を更に有し、
前記第２の印刷機能データは、前記第２のマークアップ言語印刷データの送信に応答して前記プリンタドライバから受信されることを特徴とする請求項８に記載の方法。
【請求項１０】
印刷装置に対する印刷機能を示すユーザインタフェースを更新する装置であって、
前記装置は、
コンピュータ可読記憶デバイスと、
印刷装置と通信するための出力インタフェースと、
表示装置と通信するための表示インタフェースと、
１または複数のモジュールを実行するための１または複数のプロセッサと、
印刷機能モジュールと、
を有し、
前記印刷機能モジュールは、
第１の印刷機能データから関連付けられた印刷装置の１または複数の印刷機能を読み込む手段と、
複数のインタフェース要素を含み、前記複数のインタフェース要素のうちの１または複数のインタフェース要素が前記１または複数の第１の印刷機能に関連付けられているユーザインタフェースを生成する手段と、
第２の印刷機能データから前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む１または複数の第２の印刷機能を読み込む手段と、
前記第１の印刷機能と前記第２の印刷機能とに基づいて、前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む、変更された印刷機能を示す差分印刷機能データを生成する手段と、
前記１または複数の第１の印刷機能とは異なる前記少なくとも１つの印刷機能を含む、前記差分印刷機能データによって示された前記変更された印刷機能に関連付けられた前記１または複数のインタフェース要素を更新する手段と、
を有することを特徴とする装置。
【請求項１１】
前記印刷機能モジュールは更に、
前記１または複数の第１の印刷機能を含む基本印刷機能ルックアップテーブルを生成する手段と、
前記基本印刷機能ルックアップテーブルに基づいて、前記差分印刷機能を生成する手段と
を有することを特徴とする請求項１０に記載の装置。
【請求項１２】
前記印刷機能モジュールは更に、
前記１または複数の第２の印刷機能を含む更新された印刷機能ルックアップテーブルを生成する手段と、
前記差分印刷機能データの生成後、前記基本印刷機能ルックアップテーブルを前記更新された印刷機能ルックアップテーブルと置き換える手段と
を有することを特徴とする請求項１１に記載の装置。
【請求項１３】
前記印刷機能モジュールは更に、プリンタドライバへ第１の印刷設定データを送信することに応答して前記プリンタドライバから前記第１の印刷機能データを受信する手段を有することを特徴とする請求項１０に記載の装置。
【請求項１４】
前記印刷機能モジュールは更に、前記プリンタドライバへ第２の印刷設定データを送信することに応答して前記プリンタドライバから前記第２の印刷機能データを受信する手段を有することを特徴とする請求項１３に記載の装置。
【請求項１５】
前記複数のインタフェース要素のうちの少なくとも１つのインタフェース要素は、前記１または複数の第１の印刷機能に関連付けられた前記１または複数のインタフェース要素に依存していないことを特徴とする請求項１０に記載の装置。
【請求項１６】
１または複数のコンピュータデバイスによって実行され、前記１または複数のコンピュータデバイスを、
基本印刷機能データから基本印刷機能を読み込む手段、
前記基本印刷機能に設定されたそれぞれの印刷機能に関連付けられた１または複数のフィールドを含む印刷ダイアログインタフェースを生成する手段、
更新された印刷機能データから１または複数の更新された印刷機能を読み込む手段、
前記基本印刷機能と前記更新された印刷機能とに基づいて、差異となる印刷機能を判定する手段、
前記差異となる印刷機能に関連付けられた前記印刷ダイアログインタフェース内の１または複数のフィールドを更新する手段、
前記異なる印刷機能に関連付けられていない前記印刷ダイアログインタフェース内の１または複数のフィールドを維持する手段
として機能させるための命令を格納した１または複数のコンピュータ可読記憶媒体。
【請求項１７】
前記基本印刷機能データおよび前記更新された印刷機能データは、マークアップ言語データを含むことを特徴とする請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記マークアップ言語は、ＸＭＬであることを特徴とする請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記基本印刷機能データは、PrintCapabilitiesであり、
前記更新された印刷機能は、PrintCapabilitiesであることを特徴とする請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
印刷機能データを読み込む前記手段は、前記印刷機能データを構文解析する手段を含むことを特徴とする請求項１７に記載のコンピュータ可読記憶媒体。
【請求項２１】
印刷装置の印刷機能を更新するための方法であって、
初期印刷チケットマークアップ言語データを受信する工程と、
前記初期印刷チケットマークアップ言語データに基づいて、１または複数の印刷デバイス機能を含む初期印刷装置機能データを生成する工程と、
第２の印刷チケットマークアップ言語データを受信する工程と、
前記第２の印刷チケットマークアップ言語データに基づいて、１または複数の更新された印刷装置機能を含む更新された印刷装置機能データを生成する工程と、
前記初期印刷装置機能データと前記更新された印刷装置機能データとに基づいて、前記１または複数の初期印刷装置機能と前記１または複数の更新された印刷装置機能との間の差異を示す１または複数の変更された印刷装置機能を含む１または複数の変更された印刷装置機能マークアップ言語データを生成する工程と
を有することを特徴とする方法。
【請求項２２】
前記初期印刷チケットマークアップ言語データと前記第２の印刷チケットマークアップ言語データとに基づいて、結果印刷チケットマークアップ言語データを生成する工程を更に有することを特徴とする請求項２１に記載の方法。
【請求項２３】
結果印刷チケットマークアップ言語データを生成する前記工程は、前記初期印刷チケットマークアップ言語データと前記第２の印刷チケットマークアップ言語データとをマージし、検証する工程を含むことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記結果印刷チケットマークアップ言語データは更に、前記１または複数の変更された印刷装置機能マークアップ言語データを含むことを特徴とする請求項２２に記載の方法。
【請求項２５】
前記初期印刷チケットマークアップ言語データに基づいて、初期DevMode構造体を生成する工程と、
前記結果印刷チケットマークアップ言語データに基づいて、結果DevMode構造体を生成する工程と、
前記初期DevMode構造体と前記結果DevMode構造体とに基づいて、変更されたDevMode構造体を生成する工程と、
前記変更されたDevMode構造体に基づいて、前記１または複数の変更された印刷装置機能マークアップ言語データを生成する工程と
を更に有することを特徴とする請求項２２に記載の方法。
【請求項２６】
初期印刷装置機能データを生成する前記工程は、初期DevCaps構造体を生成する工程を含み、
更新された印刷装置機能データを生成する前記工程は、更新されたDevCaps構造体を生成する工程を含む
ことを特徴とする請求項２１に記載の方法。
【請求項２７】
前記１または複数の変更された印刷装置機能データは、前記初期DevCaps構造体と前記更新されたDevCaps構造体との比較に基づいて、生成されることを特徴とする請求項２６に記載の方法。
【請求項２８】
プリンタに対する印刷機能への変更を判定するための装置であって、
コンピュータ可読記憶装置と、
プロセッサと、
印刷デバイスドライバと、を有し、
前記印刷デバイスドライバは、
第１の印刷設定マークアップ言語ファイル内の１または複数の第１の印刷設定を読み込む手段と、
前記１または複数の第１印刷設定に基づいて、１または複数の第１の印刷機能を示す第１の印刷機能データを生成する手段と、
前記１または複数の第１の印刷設定とは異なる少なくとも１の印刷設定を含む、第２の印刷設定マークアップ言語ファイル内の１または複数の第２の印刷設定を読み込む手段と、
前記１または複数の第２の印刷設定と前記１または複数の第１の印刷設定とに基づいて、前記１または複数の第１の印刷機能とは異なる印刷機能を含む１または複数の結果印刷機能を示す結果印刷機能データを生成する手段と、
前記１または複数の第１の印刷機能とは異なる前記印刷機能を含む差分印刷機能を示す差分印刷機能マークアップ言語データを生成する手段と
を有することを特徴とする装置。
【請求項２９】
前記印刷デバイスドライバは更に、前記１または複数の第１の印刷設定と前記１または複数の第２の印刷設定とに基づいて、結果印刷設定を生成する手段を有することを特徴とする請求項２８に記載の装置。
【請求項３０】
前記印刷デバイスドライバは更に、前記結果印刷設定に基づいて、結果印刷設定マークアップ言語ファイルを生成する手段を更に有することを特徴とする請求項２９に記載の装置。
【請求項３１】
前記結果印刷設定マークアップ言語ファイルは、前記差分印刷機能マークアップ言語データを含むことを特徴とする請求項３０に記載の装置。
【請求項３２】
前記印刷デバイスドライバは更に、
前記１または複数の第１の印刷設定マークアップ言語ファイルに基づいて、前記１または複数の第１の印刷設定を含む第１のDevMode構造体を生成する手段と、
前記結果印刷設定マークアップ言語ファイルに基づいて、前記１または複数の結果印刷設定を含む結果DevMode構造体を生成する手段と、
前記第１のDevMode構造体と前記結果DevMode構造体とに基づいて、前記差分印刷機能を生成する手段と
を有することを特徴とする請求項３０に記載の装置。
【請求項３３】
差分印刷機能を生成する前記手段は、前記結果DevMode構造体を前記第１のDevMode構造体と比較する手段を含むことを特徴とする請求項３２に記載の装置。
【請求項３４】
前記マークアップ言語は、ＸＭＬであることを特徴とする請求項２８に記載の装置。
【請求項３５】
印刷設定マークアップ言語ファイルは、PrintTicketであることを特徴とする請求項３４に記載の装置。
【請求項３６】
１または複数のコンピュータデバイスによって実行され、前記１または複数のコンピュータデバイスを、
入力印刷データが入力印刷機能と入力印刷設定とを含み、前記入力印刷設定に基づいて結果印刷機能を生成する手段、
前記結果印刷機能と前記入力印刷機能とに基づいて、変更された印刷機能を生成する手段、
前記変更された印刷機能と前記変更された印刷機能の１または複数の指標とを含む印刷機能データを生成する手段、
として機能させるための命令を格納した１または複数のコンピュータ可読記憶媒体。
【請求項３７】
前記入力印刷データは、PrintTicketを含み、
前記印刷機能データは、PrintCapabilitiesを含むことを特徴とする請求項３６に記載のコンピュータ可読記憶媒体。
【請求項３８】
前記入力印刷機能に基づいて、入力DevCaps構造体を生成する手段を更に有し、
結果印刷機能を生成する前記手段は、前記入力印刷設定に基づいて、結果DevCaps構造体を生成する手段を有し、
変更された印刷機能を決定する前記手段は、前記入力DevCaps構造体と前記結果DevCaps構造体とのバイナリ比較を実行する手段を有する
ことを特徴とする請求項３６に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記入力印刷データは、前記入力印刷機能を示す１または複数のＸＭＬタグを含み、
前記変更された印刷機能の１または複数の指標は、１または複数のＸＭＬタグを含む、
ことを特徴とする請求項３６に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記印刷機能データを呼び出している関数へ返す手段を更に有することを特徴とする請求項３６に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、印刷装置用のユーザインタフェースを更新することに関する。
【背景技術】
【０００２】
印刷処理の分野において、複数の独立系ハードウェアベンダ（本明細書において「ＩＨＶ」とも呼ばれる）のプリンタの専用設定をサポートしつつ、ユーザからの所望の印刷意図を受信する整合性のとれたユーザインタフェースを提供することは、独立系ソフトウェアベンダ（本明細書において「ＩＳＶ」とも呼ばれる）にとって困難なタスクである。Ｗｉｎｄｏｗｓ（登録商標）印刷サブシステムと、ＩＨＶのプラグインドライバと、ＩＳＶのアプリケーションとの間の通信の難しさは、その通信が、指標ベースのバイナリＤｅｖＭｏｄｅ及びバイナリＤｅｖＣａｐｓを介して実行されることがその一因となる。
【０００３】
Ｍｉｃｒｏｓｏｆｔ（登録商標）は、印刷サブシステムと外部のアプリケーションとの間の通信に関連した問題に対処するために新しいＸＭＬベースの印刷スキーマを導入した。印刷スキーマ技術は、プリンタ機能、入出力装置構成及びジョブフォーマッティング設定を示すためにＸＭＬベースのパブリックスキーマを使用する。アプリケーションは、印刷設定を変更するように印刷ダイアログを提供するためにＸＭＬベースのスキーマを使用できる。ユーザが設定に対して選択されたオプションを変更する場合は常に、変更された設定及び各オプションは、差分（本明細書において「Δ」とも呼ばれる）ＰｒｉｎｔＴｉｃｋｅｔドキュメントに追加され、且つ指定された基本ＰｒｉｎｔＴｉｃｋｅｔとマージ及び確認され、結果ＰｒｉｎｔＴｉｃｋｅｔを生成する。ＰｒｉｎｔＴｉｃｋｅｔは、対応する結果ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントを取得するために使用される。結果ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントは、ユーザインタフェース（本明細書において「ＵＩ」とも呼ばれる）をリポピュレート(re-populate)するために使用される。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施形態において、印刷装置に対する印刷機能を示すユーザインタフェースを更新するための方法であって、第１の印刷機能データから１または複数の第１の印刷機能を読み込む工程と、前記１または複数の第１の印刷機能に関連付けられた複数のインタフェース要素を含むユーザインタフェースを生成する工程と、第２の印刷機能データから前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む１または複数の第２の印刷機能を読み込む工程と、前記１または複数の第１の印刷機能と前記１または複数の第２の印刷機能とに基づいて、前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む、変更された印刷機能を示す差分印刷機能データを生成する工程と、前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む、前記差分印刷機能データによって示された前記変更された印刷機能に関連付けられた前記１または複数のインタフェース要素を更新する工程と、を有し、少なくとも１つのインタフェース要素は、前記変更された印刷機能に依存していないことを特徴とする。
【０００５】
一実施形態において、印刷装置に対する印刷機能を示すユーザインタフェースを更新する装置であって、前記装置は、コンピュータ可読記憶デバイスと、印刷装置と通信するための出力インタフェースと、表示装置と通信するための表示インタフェースと、１または複数のモジュールを実行するための１または複数のプロセッサと、印刷機能モジュールと、を有し、前記印刷機能モジュールは、第１の印刷機能データから関連付けられた印刷装置の１または複数の印刷機能を読み込む手段と、複数のインタフェース要素を含み、前記複数のインタフェース要素のうちの１または複数のインタフェース要素が前記１または複数の第１の印刷機能に関連付けられているユーザインタフェースを生成する手段と、第２の印刷機能データから前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む１または複数の第２の印刷機能を読み込む手段と、前記第１の印刷機能と前記第２の印刷機能とに基づいて、前記１または複数の第１の印刷機能とは異なる少なくとも１つの印刷機能を含む、変更された印刷機能を示す差分印刷機能データを生成する手段と、前記１または複数の第１の印刷機能とは異なる前記少なくとも１つの印刷機能を含む、前記差分印刷機能データによって示された前記変更された印刷機能に関連付けられた前記１または複数のインタフェース要素を更新する手段と、を有する。
【０００６】
一実施形態において、コンピュータ可読記憶媒体は、１または複数のコンピュータデバイスによって実行され、前記１または複数のコンピュータデバイスを、基本印刷機能データから基本印刷機能を読み込む手段、前記基本印刷機能に設定されたそれぞれの印刷機能に関連付けられた１または複数のフィールドを含む印刷ダイアログインタフェースを生成する手段、更新された印刷機能データから１または複数の更新された印刷機能を読み込む手段、前記基本印刷機能と前記更新された印刷機能とに基づいて、差異となる印刷機能を判定する手段、前記差異となる印刷機能に関連付けられた前記印刷ダイアログインタフェース内の１または複数のフィールドを更新する手段と、前記異なる印刷機能に関連付けられていない前記印刷ダイアログインタフェース内の１または複数のフィールドを維持する手段として機能させるための命令を格納している。
【０００７】
一実施形態において、印刷装置の印刷機能を更新するための方法であって、初期印刷チケットマークアップ言語データを受信する工程と、前記初期印刷チケットマークアップ言語データに基づいて、１または複数の印刷デバイス機能を含む初期印刷装置機能データを生成する工程と、第２の印刷チケットマークアップ言語データを受信する工程と、前記第２の印刷チケットマークアップ言語データに基づいて、１または複数の更新された印刷装置機能を含む更新された印刷装置機能データを生成する工程と、前記初期印刷装置機能データと前記更新された印刷装置機能データとに基づいて、前記１または複数の初期印刷装置機能と前記１または複数の更新された印刷装置機能との間の差異を示す１または複数の変更された印刷装置機能を含む１または複数の変更された印刷装置機能マークアップ言語データを生成する工程とを有する。
【０００８】
一実施形態において、プリンタに対する印刷機能への変更を判定するための装置であって、コンピュータ可読記憶装置と、プロセッサと、印刷デバイスドライバと、を有し、
前記印刷デバイスドライバは、第１の印刷設定マークアップ言語ファイル内の１または複数の第１の印刷設定を読み込む手段と、前記１または複数の第１印刷設定に基づいて、１または複数の第１の印刷機能を示す第１の印刷機能データを生成する手段と、前記１または複数の第１の印刷設定とは異なる少なくとも１の印刷設定を含む、第２の印刷設定マークアップ言語ファイル内の１または複数の第２の印刷設定を読み込む手段と、前記１または複数の第２の印刷設定と前記１または複数の第１の印刷設定とに基づいて、前記１または複数の第１の印刷機能とは異なる印刷機能を含む１または複数の結果印刷機能を示す結果印刷機能データを生成する手段と、前記１または複数の第１の印刷機能とは異なる前記印刷機能を含む差分印刷機能を示す差分印刷機能マークアップ言語データを生成する手段とを有する。
【０００９】
一実施形態において、１または複数のコンピュータ可読記憶媒体は、１または複数のコンピュータデバイスによって実行され、前記１または複数のコンピュータデバイスを、入力印刷データが入力印刷機能と入力印刷設定とを含み、前記入力印刷設定に基づいて結果印刷機能を生成する手段、前記結果印刷機能と前記入力印刷機能とに基づいて、変更された印刷機能を生成する手段、前記変更された印刷機能と前記変更された印刷機能の１または複数の指標とを含む印刷機能データを生成する手段として機能させるための命令を格納している。
【発明の効果】
【００１０】
本明細書において説明する装置、システム及び方法により、印刷装置用のユーザインタフェースをより迅速に更新できる。変更された印刷機能に対応するユーザインタフェースの部分が変更され、ユーザインタフェースの残りの部分が維持されるため、印刷機能を変更する際にユーザインタフェース全体を再描画する必要はない。
【図面の簡単な説明】
【００１１】
【図１】図１は、ユーザインタフェースを更新するシステムを示すブロック図である。
【図２】図２は、印刷ユーザインタフェース装置の一実施形態を示すブロック図である。
【図３】図３は、ユーザインタフェースを更新する方法の一実施形態を示すフローチャートである。
【図４】図４は、ユーザインタフェースを更新する方法の一実施形態を示すフローチャートである。
【図５】図５は、差分印刷機能を生成する方法の一実施形態を示すフローチャートである。
【図６】図６は、ユーザインタフェースを更新するシステム及びシステムにおけるデータの流れの一実施形態を示すブロック図である。
【図７】図７は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図８】図８は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図９】図９は、差分印刷機能データの例示的な一実施形態を示す図である。
【図１０】図１０は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図１１】図１１は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図１２】図１２は、差分印刷機能データの例示的な一実施形態を示す図である。
【図１３】図１３は、印刷装置の機能の変更を判定するシステムを示すブロック図である。
【図１４】図１４は、印刷機能装置の一実施形態を示すブロック図である。
【図１５】図１５は、ユーザインタフェース上で印刷装置の機能を更新する方法の一実施形態を示すフローチャートである。
【図１６】図１６は、印刷装置の機能の１または複数の変更を示すデータを生成する方法の一実施形態を示すフローチャートである。
【図１７】図１７は、印刷装置の機能の１または複数の変更を示すデータを生成する方法の一実施形態を示すフローチャートである。
【図１８Ａ】図１８Ａは、印刷装置の機能の変更を判定する方法の実施形態を示すフローチャートである。
【図１８Ｂ】図１８Ｂは、印刷装置の機能の変更を判定する方法の実施形態を示すフローチャートである。
【図１８Ｃ】図１８Ｃは、印刷装置の機能の変更を判定する方法の実施形態を示すフローチャートである。
【図１９Ａ】図１９Ａは、印刷装置の機能の変更を判定する方法の実施形態を示すフローチャートである。
【図１９Ｂ】図１９Ｂは、印刷装置の機能の変更を判定する方法の実施形態を示すフローチャートである。
【図２０】図２０は、印刷装置の機能に関する更新を生成するシステム及びシステムにおけるデータの流れの一実施形態を示すフローチャートである。
【図２１】図２１は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図２２】図２２は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図２３】図２３は、差分印刷機能データの例示的な一実施形態を示す図である。
【図２４】図２４は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図２５】図２５は、ユーザインタフェースの例示的な一実施形態を示す図である。
【図２６】図２６は、差分印刷機能データの例示的な一実施形態を示す図である。
【図２７】図２７は、差分印刷機能データを含む印刷設定データの例示的な一実施形態を示す図である。
【発明を実施するための形態】
【００１２】
以下の説明はある特定の例示的な実施形態に関するものであるが、代替物、均等物及び変形が特許請求の範囲の範囲内に含まれる。更に例示的な実施形態はいくつかの新規な特徴を含んでもよく、特定の機能は、本明細書において説明されるシステム及び方法を実施するために必須でなくてもよい。
【００１３】
図１は、ユーザインタフェースを更新するシステムの一実施形態を示すブロック図である。システムは、印刷ユーザインタフェース装置１００と、印刷装置１８０と、表示装置１９０とを備える。システムの装置は、有線チャネル又は無線チャネルを介して通信してもよい。表示装置１９０は画像をレンダリングできるディスプレイを有し、印刷装置１８０は、データを受信し且つ受信したデータに基づいて１または複数の印刷用紙（例えば、用紙、ボール紙、プラスチック）上に画像（例えば、テキスト、グラフィックス、写真）を印刷するように構成される。印刷装置１８０は、１または複数の設定に基づいて印刷用紙上で画像を操作し且つ印刷してもよい。
【００１４】
ユーザと印刷装置１８０とは、印刷ユーザインタフェース装置１００を介して通信する。印刷装置１８０により送出された情報を含む情報は、表示装置１９０を介してユーザに提示される。印刷ユーザインタフェース装置１００は、ユーザが提供した情報（例えば、ユーザ選択）を受信し、その情報を印刷装置１８０に中継する。
【００１５】
印刷ユーザインタフェース装置１００は、印刷ダイアログアプリケーション１４０と、プリンタドライバ１５０とを備える。印刷ダイアログアプリケーション１４０は、情報をユーザに提示し且つユーザから情報を受信するユーザインタフェースを生成する。ユーザインタフェースは、プリンタ設定及びプリンタ機能を示し、且つ各設定に対するオプションの選択等のユーザ選択を受信するグラフィカルインタフェースの形式で情報を提示してもよい。情報は、ユーザが情報を閲覧し、且つ／あるいは１または複数のオプションを選択できるようにする他のあらゆる方法で更に提示されてもよい。表示装置１９０は、ユーザインタフェースをユーザに提示する。
【００１６】
プリンタドライバ１５０は、情報を受信し、要求された動作を実行し、要求された情報（もしあれば）を返す。例えば印刷ダイアログアプリケーション１４０は、関数呼出しを介してプリンタドライバ１５０の機能性を呼び出し、関数呼出しのパラメータの形式で情報をプリンタドライバ１５０に渡し、プリンタドライバ１５０により返された情報を受信する。印刷ダイアログアプリケーション１４０とプリンタドライバ１５０との対話は、アプリケーションプログラミングインタフェースに準拠してもよい。
【００１７】
プリンタドライバ１５０は、受信した情報を印刷装置１８０により読み取り可能な形式に変換してもよい。例えばプリンタドライバ１５０は、ソフトウェアアプリケーションから印刷ジョブを受信し、印刷装置１８０のために印刷ジョブをＰＤＬデータに変換し、且つＰＤＬデータを印刷装置１８０に送信してもよい。プリンタドライバ１５０は、印刷装置の状況（例えば、用紙レベル、インクレベル、トナーレベル、エラー、選択された用紙サイズ、色）に関して印刷装置１８０と更に通信する。
【００１８】
更にプリンタドライバ１５０は、印刷装置１８０の設定の構成を調整し、設定の機能を追跡する。設定は、用紙サイズ、フチなし印刷、両面印刷、用紙種類、解像度、色、向き、部数、部単位で印刷、用紙品質、印刷品質及び余白を含むが、それらに限定されない。オプションは、設定に対する構成（例えば、グレースケールは色に対するオプションであり、文字サイズは用紙サイズに対するオプションであり、横方向は向きに対するオプションである）を規定し、設定に対して使用可能なオプションのうちのいくつか又は全ての集合は、各設定の機能である。
【００１９】
プリンタドライバ１５０は、印刷装置１８０の設定と、機能と、選択された設定オプションとの間の関係で構成されてもよい。従って、プリンタドライバ１５０は、１または複数の設定の選択されたオプションに基づいて使用可能な印刷機能又は使用不可能な印刷機能を判定でき、１または複数の他の設定の選択されたオプションに基づいて制限される設定オプションを判定できる。
【００２０】
例えばプリンタドライバ１５０は、種々の設定の優先順位で構成されてもよく、設定に対して選択されたオプションに従って印刷機能を調整してもよい。従って、より低い優先順位設定の選択されたオプションが変更される場合、プリンタドライバ１５０は、より高い優先順位設定の機能を変更しない。しかし、より高い優先順位設定の選択されたオプションが変更される場合、プリンタドライバ１５０は、必要に応じてより低い優先順位設定の機能を調整する。
【００２１】
上記の例に従って、プリンタドライバは、用紙種類設定又はフチなし印刷設定より低い優先順位を用紙サイズ設定に割り当てるように構成されてもよい。従って、用紙サイズ設定に対して選択されたオプションが変更される場合、用紙種類設定又はフチなし印刷設定に対する機能は、より高い優先順位であるために変更されない。しかし、用紙種類設定又はフチなし印刷設定に対して選択されたオプションが変更される場合、用紙サイズ（及び他のより低い優先順位設定）に対する機能は、必要に応じて変更される。
【００２２】
図２は、表示装置２９０及び印刷装置２８０と通信している印刷ユーザインタフェース装置２００の一実施形態を示すブロック図である。印刷ユーザインタフェース装置２００は、ネットワーク２７０を介して印刷装置２８０と通信し、ネットワーク２７０を介して表示装置２９０等の１または複数の他の装置とも更に通信してもよい。ネットワーク２７０は、インターネット、ＷＡＮ及びＬＡＮを含む１または複数のネットワークのあらゆる組合せ、並びに有線ネットワーク又は無線ネットワークのあらゆる組合せを含んでもよい。
【００２３】
印刷ユーザインタフェース装置２００は、従来のマイクロプロセッサ又はカスタマイズされたマイクロプロセッサであってもよい１または複数のプロセッサ２０１（本明細書において「ＣＰＵ２０１」とも呼ばれる）を備える。ＣＰＵ２０１は、コンピュータ可読命令を読み出し且つ実行するように構成され、印刷ユーザインタフェース装置２００の他の構成要素を指揮及び／又は制御してもよい。
【００２４】
印刷ユーザインタフェース装置２００は、キーボード、表示装置、マウス、印刷装置、タッチスクリーン、ライトペン、光記憶装置、スキャナ、マイク、カメラ等の他の装置に通信インタフェースを提供するＩ／Ｏインタフェース２０３を更に備える。印刷ユーザインタフェース装置２００は、ＲＯＭ、ＲＡＭ及びフラッシュメモリ等の揮発性又は不揮発性であってもよいメモリ２０５を更に備える。印刷ユーザインタフェース装置２００は、印刷ユーザインタフェース装置２００がネットワーク２７０と通信できるようにするネットワークインタフェース２０７を更に備える。記憶装置２０９は、データ又はモジュールを格納し、ハードドライブ、光記憶装置、ディスケット及び／又は固体ドライブ等を備えてもよい。印刷ユーザインタフェース装置２００の構成要素は、バスを介して接続される。印刷ユーザインタフェース装置２００は、ハードウェア、処理、割込み、メモリ及び／又は印刷ユーザインタフェース装置２００のファイルシステムを管理するオペレーティングシステムを備える。
【００２５】
印刷ユーザインタフェース装置２００は、ユーザインタフェースモジュール２１０と、プリンタドライバ２２０と、ルックアップテーブル２２５とを更に備える。モジュールは、印刷ユーザインタフェース装置２００がある特定の動作を実行するように印刷ユーザインタフェース装置２００により実行されてもよいが、説明を簡単にするために動作を実行するものとして説明されてもよい。モジュールは、論理命令及び／又はコンピュータ可読命令を含んでもよく、ソフトウェア、ファームウェア及び／又はハードウェアで実現されてもよい。他の実施形態において、印刷ユーザインタフェース装置２００は多少のモジュールを備えてもよく、モジュールは、より少ないモジュールに結合されてもよく、あるいはより多くのモジュールに分割されてもよい。
【００２６】
ユーザインタフェースモジュール２１０は、実行される場合に印刷ユーザインタフェース装置２００により印刷装置設定及び印刷装置機能等の印刷情報を含むユーザインタフェースを生成する命令を含む。ユーザインタフェースは、テキストとグラフィックスとのあらゆる組合せを含んでもよく、例えばテキストフィールドを介して、あるいはインタフェース上の制御のユーザ選択（例えば、メニュー、ボタン、チェックボックス）により、ユーザからデータを受信してもよい。上述したように、プリンタドライバ２２０は、印刷装置（例えば、印刷装置２８０）と通信する。上述したように、ユーザインタフェースモジュール２１０は、印刷ダイアログアプリケーションを実現してもよい。図２に示す実施形態において、印刷ユーザインタフェース装置２００はルックアップテーブル２２５を更に備える。ルックアップテーブル２２５は印刷装置設定に関する情報を含み、印刷ユーザインタフェース装置２００は、印刷装置２８０の１または複数の設定の選択されたオプションの変更に応答して１または複数の設定の機能の変更を判定するために、ルックアップテーブルを使用してもよい。
【００２７】
例えばルックアップテーブル２２５は、選択された印刷オプションを印刷機能にマッピング（例えば、ＰｒｉｎｔＴｉｃｋｅｔをＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにマッピング）してもよい。ルックアップテーブル２２５は、設定毎（例えば、用紙サイズ、用紙種類、色、両面印刷、ステープリング、フォント）及び機能毎に列を含み、設定オプションの順列毎に行を含んでもよい。印刷装置が各行に示された設定オプションに設定される場合、ルックアップテーブルの行は、印刷装置に対する印刷機能を示してもよい。他の実施形態において、印刷ユーザインタフェース装置２００は、論理、データツリー等を含む他の手段により、印刷機能の変更を判定する。
【００２８】
図３は、ユーザインタフェースを更新する方法の一実施形態を示すフローチャートである。本明細書において説明されるこの方法及び他の方法の他の実施形態は、ブロックを省略、追加及び結合してもよく、ブロックの順序を変更してもよく、且つ／あるいはブロックを別個のブロックに分割してもよい。また、印刷ユーザインタフェース装置２００の構成要素（例えば、ユーザインタフェースモジュール２１０、プリンタドライバ２２０、ルックアップテーブル２２５）は、図３に示される方法及び本明細書において説明される他の方法を実現してもよい。
【００２９】
ブロック３００から開始し、基本印刷機能は、例えばプリンタドライバから取得される。基本印刷機能は、基本印刷設定オプションと関連付けられてもよい。更に基本印刷機能は、例えば１または複数の基本印刷設定オプションを規定する印刷設定データ（例えば、オブジェクト、ファイル、ポインタ、データ構造）をプリンタドライバに提供することに応答して、プリンタドライバから受信されてもよい。印刷設定データは、マークアップ言語データの形式でプリンタドライバに提供されてもよく、いくつかの実施形態において、データはＰｒｉｎｔＴｉｃｋｅｔである。基本印刷機能は、マークアップ言語データの形式でドライバから取得されてもよく、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの形式であってもよい。
【００３０】
次にブロック３１０において、ユーザインタフェースは、基本印刷機能に基づいて生成され、表示される場合に基本印刷機能のうちの１または複数をユーザに提示する。１または複数の印刷設定に対して選択されたオプションが更に表示されてもよい。方法はブロック３２０に進み、例えば印刷設定に対して選択されたオプションのうちの１または複数が変更された後、更新された印刷機能を取得する。例えば更新された印刷機能は、例えばプリンタドライバを呼び出し、且つ印刷設定に対して更新された選択されたオプションを含むプリンタドライバデータを渡すことに応答して、プリンタドライバから受信されてもよい。一実施形態において、印刷設定に対して更新された選択されたオプションを含むデータは、ＰｒｉｎｔＴｉｃｋｅｔ（例えば、差分ＰｒｉｎｔＴｉｃｋｅｔ）である。プリンタドライバは、例えば更新された印刷機能をタグ付けするか又は更新された印刷機能をデータの所定の場所に格納することにより、更新された印刷機能のみを含み且つ／あるいは更新された印刷機能を識別するデータを返してもよい。
【００３１】
更新された印刷機能を取得すると、ブロック３３０において、例えば基本印刷機能を更新された印刷機能と比較することにより、基本印刷機能と更新された印刷機能との差異を示すΔ印刷機能を生成する。特定の更新された印刷設定オプションに対するΔ印刷機能（例えば、ΔＰｒｉｎｔＴｉｃｋｅｔ）は、ルックアップテーブル、ハッシュテーブル、ドキュメントオブジェクトモデル、文法、ＤｅｖＣａｐｓ構造体、ＤｅｖＭｏｄｅ構造体等を使用して生成されてもよい。そのような生成は、構文解析、テキスト比較、バイナリ比較、ハッシング等を含んでもよい。
【００３２】
最後にブロック３４０において、Δ印刷機能と関連付けられるユーザインタフェースの１または複数の部分が更新され、ユーザインタフェースの他の部分が維持されてもよい。従って、印刷機能の変更に応答して、ユーザインタフェースの一部のみ、特に変更された印刷機能を表示するユーザインタフェースの部分が更新されてもよい。また、印刷機能に変更がない場合、ユーザインタフェースは更新されなくてもよい。
【００３３】
図４は、ユーザインタフェースを更新する方法の一実施形態を示すフローチャートである。ブロック４００から開始し、基本印刷設定データ４８０が取得される。印刷設定データは、テキストベースのデータを含んでもよい。テキストベースのデータは、マークアップ言語データ（例えば、ＸＭＬ、ＨＴＭＬ、ＳＧＭＬ、ＸＨＴＭＬ）を含む。ＸＭＬを含む印刷設定データの一例はＰｒｉｎｔＴｉｃｋｅｔである。更に印刷機能データは、テキストベースのデータを含んでもよい。ＸＭＬを含む印刷機能データの一例は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメントである。
【００３４】
例示的な本実施形態において、基本印刷設定データ４８０は基本ＰｒｉｎｔＴｉｃｋｅｔ（「基本ＰＴ４８０」）である。また、本実施形態において、例として、他の印刷設定データはＰｒｉｎｔＴｉｃｋｅｔｓであり且つ他の印刷設定データはＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓであるが、これに限定されない。この方法の他の実施形態は、ＰｒｉｎｔＴｉｃｋｅｔｓ及びＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを含まなくてもよい。基本ＰＴ４８０は、基本ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（「基本ＰＣ４９０」）を取得するために使用される。例えば、基本ＰＴ４８０はプリンタドライバに渡されてもよく、プリンタドライバは基本ＰＣ４９０を返してもよい。次にブロック４２０において、初期ユーザインタフェースが生成される。初期ユーザインタフェースは、印刷設定のうちの１または複数と、基本ＰＴ４８０におけるそれぞれの選択されたオプションと、基本ＰＣ４９０におけるそれぞれの基本印刷機能のうちの１または複数とを含む。ユーザは、ユーザインタフェースを介して印刷設定のうちの１または複数の選択されたオプションを変更してもよく、選択されたオプションは、差分ＰｒｉｎｔＴｉｃｋｅｔ４８３（「ΔＰＴ４８３」）に追加されてもよい。
【００３５】
ブロック４３０に進み、基本ＰＴ４８０は、ΔＰＴ４８３とマージされ且つ検証され、結果ＰｒｉｎｔＴｉｃｋｅｔ（「結果ＰＴ４８５」）を生成する。従って、結果ＰＴ４８５は、変更された設定を基本設定と統合する。次にブロック４４０において、結果ＰＴ４８５は、結果ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ４８７（「結果ＰＣ４８７」）を取得するために使用される。結果ＰＣ４８７は使用可能な印刷機能を示し、関連付けられた印刷装置は、結果ＰＴ４８５において選択されたオプションに従って構成される。
【００３６】
ブロック４５０に進み、差分印刷機能４８９（「ΔＰＣ４８９」）は、結果ＰＣ４８７及び基本ＰＣ４９０に基づいて生成される。結果ＰＣ４８７は、基本ＰＣ４９０と比較され、印刷機能の変更を判定してもよく、変更された機能はΔＰＣ４８９に追加される。ΔＰＣ４８９は、印刷装置及びΔＰＴ４８３において印刷設定に対して選択されたオプションの変更に少なくとも部分的に依存して、変更を示さなくてもよく、あるいは１つ又は複数の変更を示してもよい。ブロック４６０において、ΔＰＣ４８９において変更された印刷機能と関連付けられるユーザインタフェースの部分がそれに応じて更新される。変更された印刷機能と関連付けられないユーザインタフェースの部分がそれらの現在の状態に維持されてもよいため、ユーザインタフェースの不要な変更を回避し、これにより時間及び計算リソースを節約できる。
【００３７】
図５は、差分印刷機能を生成する方法の一実施形態を示すフローチャートである。本実施形態はＰｒｉｎｔＴｉｃｋｅｔｓ及びＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの使用を説明するが、方法の他の実施形態は、差分印刷機能を生成するためにＰｒｉｎｔＴｉｃｋｅｔｓ及びＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを使用しなくてもよい。ブロック５００において、基本ＰＣデータが構文解析される。例えばＸＭＬパーサ（例えば、ＳＡＸパーサ）は、基本ＰＣを構文解析し且つドキュメントオブジェクトモデル（本明細書において「ＤＯＭ」とも呼ばれる）を生成するために使用されてもよい。次にブロック５１０において、基本ＰＣルックアップテーブルが生成される。基本ＰＣルックアップテーブルは、基本ＰＣに含まれた印刷機能のうちの１または複数を含んでもよい。一実施形態において、ルックアップテーブルエントリは、マークアップ要素名と、マークアップ要素名のＸＭＬ文字列に対するポインタと、ドキュメントオブジェクトモデルからの文字列の長さとを含む。ルックアップテーブルの他の実施形態は、更なるフィールド、より少ないフィールド及び／又は種々のフィールドを含んでもよい。
【００３８】
ブロック５２０に進み、結果ＰＣデータが構文解析される。ブロック５３０において、ΔＰＣが生成される。ΔＰＣを生成するために、一実施形態において、パーサから各マークアップ要素の開始指標を受信すると、マークアップ要素名及びマークアップ要素に対するストリームポインタが検索され、スタック上にプッシュされる。最後のマークアップ要素指標が受信される際、マークアップ要素名及びストリームポインタがスタックからポップされ、対応するノード（もしあれば）が基本ＰＣルックアップテーブルで発見される。次に、基本ＰＣ要素ノードのＸＭＬ文字列は、結果ＰＣ要素ノードのＸＭＬ文字列と比較される。差異が見つかる場合、要素ノードがΔＰＣ  ＤＯＭに追加され、エントリは基本ＰＣルックアップテーブルから削除される。差異が見つからない場合、エントリは基本ＰＣルックアップテーブルから削除され、マークアップ要素ノードはΔＰＣ  ＤＯＭに追加されない。これは最後のドキュメント指標に到達するまで続き、ΔＰＣはΔＰＣ  ＤＯＭを使用して生成される。
【００３９】
また、ブロック５４０において、結果ＰＣルックアップテーブルが生成される。ブロック５４０は、パーサから各イベントを受信すると結果ＰＣ  ＤＯＭを構築し、且つ結果ＰＣ  ＤＯＭを示すルックアップテーブルを構築することにより実行される。ブロック５３０及び５４０は、結果ＰＣの単一の構文解析中に実行されてもよいため、ほぼ同時に実行されてもよい。最後にブロック５５０において、結果ＰＣルックアップテーブルは、基本ＰＣルックアップテーブルとして識別される。従って、別の結果ＰＣが受信される場合、フローはブロック５２０に戻り、前の反復から結果印刷機能は、次の反復のためのΔＰＣを生成する際に基本印刷機能として使用される。
【００４０】
図６は、ユーザインタフェースを更新するシステム及びシステムにおけるデータの流れの一実施形態を示すブロック図である。最初に、段階１において、印刷ダイアログアプリケーション６００は、基本ＰＴ６０３をプリンタドライバ６５０に渡す。次に段階２において、プリンタドライバ６５０は、基本ＰＣ６０５を生成し、それを再度印刷ダイアログアプリケーション６００に返す。その後、印刷ダイアログアプリケーション６００は、段階３において、基本ＰＴ６０３及び基本ＰＣ６０５に基づいて基本ＵＩ６９１を生成し、基本ＵＩ６９１を表示装置６９０に送信する。
【００４１】
段階４において、印刷ダイアログアプリケーション６００は、ΔＰＴ６０７をプリンタドライバ６５０に渡す。プリンタドライバ６５０は、ΔＰＴ６０７を基本ＰＴ６０３とマージし、マージされたΔＰＴ６０７及び基本ＰＴ６０３を検証し、段階５において結果ＰＴ６１３を返す。次に印刷ダイアログアプリケーションは、段階６において、例えば更新された印刷機能を取得する関数呼出しにおいて、結果ＰＴ６１５をプリンタドライバ６５０に渡す。プリンタドライバ６５０は、結果ＰＣ６１７を判定し、段階７において結果ＰＣ６１７を再度印刷ダイアログアプリケーション６００に渡す。段階８において、印刷ダイアログアプリケーション６００は、基本ＰＣ６０５及び結果ＰＣ６１７からΔＰＣ６１９を生成する。ΔＰＣ６１９を使用して、次に印刷ダイアログアプリケーション６００は、ΔＰＣ６１９において印刷機能に対応するＵＩの部分を変更し、結果ＵＩ６９３を生成する。最後に、段階９において、印刷ダイアログアプリケーション６００は、結果ＵＩ６９３を表示装置６９０に渡す。
【００４２】
いくつかの実施形態において、印刷ダイアログアプリケーション６００はローカル演算装置上で動作し、プリンタドライバはリモート分散コンピューティングサービス（例えば、クラウド）上で動作する。段階１、２、４、５、６及び７におけるデータは、１または複数のネットワークを介して印刷ダイアログアプリケーション６００とプリンタドライバ６５０との間で送信される。
【００４３】
図７は、ユーザインタフェース７００の例示的な一実施形態を示す。ユーザインタフェース７００は、用紙サイズ７１０、向き、印刷モード、グレースケール、用紙種類、給紙、用紙品質、網掛け、フチなし印刷７２０、両面印刷、余白種類及び１８０度回転を含む複数の設定を含む。ユーザインタフェース７００は、用紙サイズ７１０及び用紙サイズ７１０の選択されたオプション７４０（レター）に対する機能７３０を表示する。設定に対するオプションがユーザインタフェース７００により示されるように設定される場合、用紙サイズ７１０に対する機能７３０は、レター、リーガル、Ａ５、Ａ４、Ｂ５等を含む。従って、フチなし印刷７２０に対するオプションが「ｏｆｆ」に設定される場合、用紙サイズ７１０に対する機能７３０は、ユーザインタフェース７００に示されるとおりである。しかし、図８を参照して以下に説明されるように、フチなし印刷７２０が「ｏｎ」に設定され且つ用紙サイズ７１０より高い優先順位を有する場合、用紙サイズ７１０に対する機能７３０が変更される。
【００４４】
図８は、フチなし印刷８２０が「ｏｎ」に設定され且つ用紙サイズ８１０より高い優先順位を有する場合の用紙サイズ８１０の機能８３０を示すユーザインタフェース８００の例示的な一実施形態を示す。ここで機能８３０は、７つのオプション、すなわちレター、Ａ４、Ｌ８９×１２７ｍｍ、２Ｌ１２７×１７８ｍｍ、はがき１００×１４８ｍｍ、クレジットカード２．１３×３．３９ｉｎ．すなわち５４×８６ｍｍ及びカード２．１６×３．５８ｉｎ．すなわち５５×９１ｍｍを提供する。
【００４５】
従って、本実施形態において、フチなし印刷に対して最初に選択されたオプションが「ｏｆｆ」であることを基本印刷設定データ（例えば、基本ＰＴ６０３）が示す場合、基本印刷設定データ（例えば、基本ＰＴ６０３）に基づいて生成された基本印刷機能データ（例えば、基本ＰＣ６０５）は、用紙サイズ設定に対する機能がレター、リーガル、Ａ５、Ａ４、Ｂ５、Ｌ８９×１２７ｍｍ、２Ｌ１２７×１７８ｍｍ、はがき１００×１４８ｍｍ、はがき２  ２００×１４８ｍｍ、長形３  １２０×２３５ｍｍ、長形４  ９０×２０５ｍｍ、洋形４  １０５×２３５ｍｍ、洋形６  ９８×１９０ｍｍ、クレジットカード２．１３×３．３９ｉｎ．すなわち５４×８６ｍｍ、カード２．１６×３．５８ｉｎ．すなわち５５×９１ｍｍ、ＣＤ−ＲトレイＢ及びカスタムであることを示す。ユーザがユーザインタフェースを介してフチなし印刷を「ｏｎ」に設定する場合、フチなし印刷に対するオプションが「ｏｎ」に変更されることを示す差分印刷設定データ（例えば、ΔＰＴ６０７）が生成される。差分印刷設定データ（例えば、ΔＰＴ６０７）は、更新された印刷設定データ（例えば、結果ＰＴ６１３）をプリンタドライバに送出する。その後、更新された印刷設定データ（例えば、結果ＰＴ６１５）は、更新された印刷機能データに対する要求と共にプリンタドライバに送出される。プリンタドライバは、用紙サイズに対する印刷機能がレター、Ａ４、Ｌ８９×１２７ｍｍ、２Ｌ１２７×１７８ｍｍ、はがき１００×１４８ｍｍ、クレジットカード２．１３×３．３９ｉｎ．すなわち５４×８６ｍｍ及びカード２．１６×３．５８ｉｎ．すなわち５５×９１ｍｍであることを示す対応する更新された印刷設定データ（例えば、結果ＰＣ６１７）を生成する。
【００４６】
次に印刷ダイアログアプリケーションは、基本印刷機能データ（例えば、基本ＰＣ６０５）及び更新された印刷設定データ（例えば、結果ＰＣ６１７）に基づいて差分印刷機能データ（例えば、ΔＰＣ６１９）を生成する。差分印刷設定データ（例えば、ΔＰＣ６１９）は、用紙サイズ設定に対する印刷機能がリーガル、Ａ５、Ｂ５、はがき２  ２００×１４８ｍｍ、長形３  １２０×２３５ｍｍ、長形４  ９０×２０５ｍｍ、洋形４  １０５×２３５ｍｍ、洋形６  ９８×１９０ｍｍ、ＣＤ−ＲトレイＢ及びカスタムを含まないように変更されたことを示す。変更された印刷機能（例えば、使用不可能な用紙サイズオプションを除去する）及び選択されたオプションに対するあらゆる変更（例えば、フチなし印刷が「ｏｎ」に設定されることを示す）に対応するユーザインタフェースの部分のみを実質的に変更し、且つユーザインタフェースの残りの部分を維持する結果ユーザインタフェース（例えば、結果ＵＩ６９３）が生成されてもよい。
【００４７】
図９は、図７及び図８に基づいて差分印刷設定データ９００の例示的な一実施形態を示す。差分印刷設定データ９００は、機能を変更した設定（すなわち、ページサイズ設定）、変更した機能のオプション及びオプションに対して実行されたそれぞれの変更を示す。差分印刷設定データ９００はＸＭＬドキュメントとしてフォーマットされ、機能の各オプションに対する変更は各オプションが使用不可能であることを示す（しかし、ここでオプションが使用可能である場合、印刷設定データ９００はオプションが使用可能であることを示す）。差分印刷設定データ９００は、用紙サイズ設定に対する機能に変更があること、特にリーガル、Ａ５、Ｂ５、はがき２  ２００×１４８ｍｍ、長形３  １２０×２３５ｍｍ、長形４  ９０×２０５ｍｍ、洋形４  １０５×２３５ｍｍ、洋形６  ９８×１９０ｍｍ、ＣＤ−ＲトレイＢ及びカスタムのサイズが使用不可能であることを示す。
【００４８】
図１０は、ユーザインタフェースの例示的な一実施形態を示す。ユーザインタフェース１０００の第１の図は、用紙種類設定１０１０に対するオプションが印刷可能なディスク（その他）に設定されたことを示し、ユーザインタフェース１０２０の第２の図は、用紙サイズ設定１０３０に対する対応する機能１０４０を示す。ユーザインタフェース１０２０の第２の図は、両面印刷設定１０５０に対する機能がグレーアウトされることを更に示す。従って、両面印刷設定１０５０に対する機能は、選択されたオプションになるのは不可能である。しかし、図１１に示されるように、用紙種類設定１０１０に対して異なるオプションが選択される場合、印刷機能のうちの少なくともいくつかは変更される。
【００４９】
図１１は、図１０の例に引き続き、ユーザインタフェースの例示的な一実施形態を示す。ユーザインタフェース１１００の第１の図は、用紙種類設定１１１０に対して選択されたオプションが普通紙に設定されたことを示す。ユーザインタフェース１１２０の第２の図は、用紙サイズ設定１１３０に対して機能１１４０がオプションを追加するように変更されたことを示す。更に両面印刷設定１１５０に対して、機能は、両面印刷「ｏｎ」、両面印刷「ｏｆｆ」、自動「ｏｎ」及び自動「ｏｆｆ」（「ｏｎ」及び「ｏｆｆ」は、チェックボックスにより示される）のオプションを含むように変更された。
【００５０】
図１２は、図１０及び図１１に基づいて差分印刷機能データ１２００の例示的な一実施形態を示す。差分印刷機能データ１２００は、表形式で配置され、機能を変更した設定１２１０（すなわち、ページサイズ設定）、変更したオプション１２２０、オプションに対して実行されたそれぞれの変更１２３０を示す。従って、差分印刷機能データ１２００は、図１０〜図１１の用紙種類に対して選択されたオプションの変更に基づいて、機能１２２０のオプションが現在使用可能であることを示す。
【００５１】
図１３は、印刷装置の機能の変更を判定するシステムの一実施形態を示すブロック図である。システムは、印刷機能装置１３３０と、印刷装置１３８０と、表示装置１３９０とを備える。システムの装置は、有線チャネル又は無線チャネルを介して通信してもよい。表示装置１３９０は画像をレンダリングできるディスプレイを有し、印刷装置１３８０は、データを受信し且つ受信したデータに基づいて１または複数の印刷用紙（例えば、用紙、ボール紙、プラスチック）上に画像（例えば、テキスト、グラフィックス、写真）を印刷するように構成される。更に印刷装置１３８０は、１または複数のユーザが調整可能な設定に従って画像を印刷用紙上に印刷してもよい。
【００５２】
印刷装置１３８０により送出された情報を含む情報は、表示装置１３９０を介してユーザに提示される。印刷機能装置１３００は、ユーザが提供した情報（例えば、印刷設定のユーザ選択）を受信し、その情報を印刷装置１３８０に中継する。
【００５３】
印刷機能装置１３００は、印刷ダイアログアプリケーション１３４０と、プリンタドライバ１３５０とを備える（しかし、他の実施形態において、印刷ダイアログアプリケーション１４０及びプリンタドライバ１５０は、例えば分散された演算環境で種々の装置上で動作してもよい）。印刷ダイアログアプリケーション１３４０は、情報をユーザに提示し且つ／あるいはユーザから情報を受信するユーザインタフェースを生成する。ユーザインタフェースは、プリンタ設定及びプリンタ機能を示し、且つ各設定に対するオプションの選択等のユーザ選択を受信するグラフィカルインタフェースの形式で情報を提示してもよい。情報は、ユーザが情報を閲覧し、且つ／あるいは１または複数のオプションを選択できるようにする他のあらゆる方法で更に提示されてもよい。ＵＩは表示装置１３９０に送出され、表示装置１３９０はユーザインタフェースをユーザに提示する。
【００５４】
プリンタドライバ１３５０は、データを受信し、要求された動作を実行し、要求されたデータ（もしあれば）を印刷ダイアログアプリケーション１３４０に返す。例えば印刷ダイアログアプリケーション１３４０は、関数呼出しを介してプリンタドライバ１３５０の機能性を呼び出し、関数呼出しのパラメータの形式でデータをプリンタドライバ１３５０に渡し、関数により返されたデータを受信する。プリンタドライバ１３５０により実現された関数及び関数を呼び出すインタフェースは、ＷｉｎＦＸ  ＰＴ／ＰＣ、Ｗｉｎ３２ＰＴ／ＰＣ及び印刷チケットＡＰＩ等のアプリケーションプログラミングインタフェース（ＡＰＩ）に準拠してもよい。
【００５５】
プリンタドライバ１３５０は、受信したデータを印刷装置１３８０により読み取り可能な形式に変換してもよい。例えばプリンタドライバ１３５０は、ソフトウェアアプリケーションから印刷ジョブを受信し、印刷装置１３８０のために印刷ジョブをＰＤＬデータに変換し、且つＰＤＬデータを印刷装置１３８０に送信してもよい。プリンタドライバ１３５０は、印刷装置の設定及び状況（例えば、用紙レベル、インクレベル、トナーレベル、エラー、選択された用紙サイズ、色）に関して印刷装置１３８０と更に通信する。
【００５６】
プリンタドライバ１３５０は、印刷装置１３８０の設定と、機能と、選択された設定オプションとの間の関係で構成されてもよい。従って、プリンタドライバ１３５０は、１または複数の設定の選択されたオプションに基づいて、使用可能な印刷機能又は使用不可能な印刷機能及び制限される設定オプションを判定できる。
【００５７】
例えばプリンタドライバ１３５０は、種々の設定の優先順位で構成されてもよく、設定に対して選択された各オプションに従って印刷機能を調整してもよい。従って、より低い優先順位設定の選択されたオプションが変更される場合、プリンタドライバ１３５０は、より高い優先順位設定の機能を変更しない。しかし、より高い優先順位設定の選択されたオプションが変更される場合、プリンタドライバ１３５０は、必要に応じてより低い優先順位設定の機能を調整する。
【００５８】
上記の例に従って、プリンタドライバは、印刷用紙種類設定又はフチなし印刷設定より低い優先順位を印刷用紙サイズ設定に割り当てるように構成されてもよい。従って、印刷用紙サイズ設定に対して選択されたオプションが変更される場合、印刷用紙種類設定又はフチなし印刷設定に対する機能は、より高い優先順位を割り当てられるために変更されない。しかし、印刷用紙種類設定又はフチなし印刷設定に対して選択されたオプションが変更される場合、印刷用紙サイズ（及び他のより低い優先順位設定）に対する機能は、必要に応じて変更される。
【００５９】
図１４は、表示装置１４９０及び印刷装置１４８０と通信している印刷機能装置１４００の一実施形態を示すブロック図である。印刷機能装置１４００は、ネットワーク１４７０を介して印刷装置１４８０と通信し、ネットワーク１４７０を介して表示装置１４９０等の１または複数の他の装置とも更に通信してもよい。ネットワーク１４７０は、インターネット、ＷＡＮ及びＬＡＮを含む１または複数のネットワークのあらゆる組合せ、並びに有線ネットワーク又は無線ネットワークのあらゆる組合せを含んでもよい。
【００６０】
印刷機能装置１４００は、従来のマイクロプロセッサ又はカスタマイズされたマイクロプロセッサであってもよい１または複数のプロセッサ１４０１（本明細書において「ＣＰＵ１４０１」とも呼ばれる）を備える。ＣＰＵ１４０１は、コンピュータ可読命令を読み出し且つ実行するように構成され、印刷機能装置１４００の他の構成要素を指揮及び／又は制御してもよい。
【００６１】
印刷機能装置１４００は、キーボード、表示装置、マウス、印刷装置、タッチスクリーン、ライトペン、光記憶装置、スキャナ、マイク、カメラ等の他の装置に通信インタフェースを提供するＩ／Ｏインタフェース１４０３を更に備える。印刷機能装置１４００は、ＲＯＭ、ＲＡＭ及びフラッシュメモリ等の揮発性又は不揮発性であってもよいメモリ１４０５を更に備える。ネットワークインタフェース１４０７により、印刷機能装置１４００はネットワーク１４７０と通信できる。記憶装置１４０９は、データ又はモジュールを格納し、ハードドライブ、光記憶装置、ディスケット、及び／又は固体ドライブ等を備えてもよい。印刷機能装置１４００の構成要素は、バスを介して接続され且つ通信する。印刷機能装置１４００は、ハードウェア、処理、割込み、メモリ及びファイルシステムのうちの１または複数を管理するオペレーティングシステムを備える。
【００６２】
印刷機能装置１４００は、印刷ダイアログモジュール１４１０と、プリンタドライバ１４２０と、ルックアップテーブル１４２５とを更に備える。モジュールは、印刷機能装置１４００がある特定の動作を実行するように印刷機能装置１４００により実行されてもよいが、説明を簡単にするために動作を実行するものとして説明されてもよい。モジュールは、論理命令及び／又はコンピュータ可読命令を含んでもよく、ソフトウェア、ファームウェア及び／又はハードウェアで実現されてもよい。他の実施形態において、印刷機能装置１４００は多少のモジュールを備えてもよく、モジュールは、より少ないモジュールに結合されてもよく、あるいはより多くのモジュールに分割されてもよい。
【００６３】
印刷ダイアログモジュール１４１０は、実行される場合に印刷機能装置１４００により印刷装置設定、印刷装置機能及び選択されたオプション等の印刷情報を含む印刷ダイアログユーザインタフェースを生成する命令を含む。ユーザインタフェースは、テキストとグラフィックスとのあらゆる組合せを含んでもよく、例えばテキストフィールドを介して、あるいはインタフェース上の制御のユーザ選択（例えば、メニュー、ボタン、チェックボックス）により、ユーザからデータを受信してもよい。上述したように、プリンタドライバ１４２０は、印刷装置（例えば、印刷装置１４８０）と通信する。図１４に示される実施形態において、印刷機能装置１４００はルックアップテーブル１４２５を更に備える。ルックアップテーブル１４２５は、印刷装置設定及び印刷装置機能に関する情報を含み、印刷機能装置１４００は、印刷装置機能を判定するためにルックアップテーブル１４２５を使用してもよい。
【００６４】
例えばルックアップテーブル１４２５は、選択された印刷オプションを印刷機能にマッピング（例えば、ＰｒｉｎｔＴｉｃｋｅｔをＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにマッピングし且つ／あるいはＤｅｖＭｏｄｅをＤｅｖＣａｐｓにマッピング）してもよい。ルックアップテーブル１４２５は、設定毎（例えば、用紙サイズ、用紙種類、色、両面印刷、ステープリング、フォント）及び機能毎に列を含み、設定オプションの順列毎に行を含んでもよい。印刷装置が各行に示された設定オプションに設定される場合、ルックアップテーブルの行は、印刷装置に対する印刷機能を示してもよい。他の実施形態において、印刷機能装置１４００は、論理、データツリー等を含む他の手段により、印刷機能の変更を判定する。
【００６５】
図１５は、ユーザインタフェース上で印刷装置の機能を更新する方法の一実施形態を示すフローチャートである。本明細書において説明されるこの方法及び他の方法の他の実施形態は、ブロックを省略、追加及び結合してもよく、ブロックの順序を変更してもよく、且つ／あるいはブロックを別個のブロックに分割してもよい。また、印刷機能装置１４００の１または複数の構成要素（例えば、印刷ダイアログモジュール１４１０、プリンタドライバ１４２０、ルックアップテーブル１４２５）は、図１５に示される方法及び本明細書において説明される他の方法を実現してもよい。
【００６６】
ブロック１５００から開始し、基本印刷機能はプリンタドライバから取得される。例えばプリンタドライバは、受信したデータに基づいて印刷装置の基本印刷機能を示す印刷機能データ（例えば、基本印刷設定データ等の基本印刷オプション）を生成し、且つ印刷機能データ（例えば、オブジェクト、ファイル、ポインタ、データ構造）を要求側のアプリケーション及び／又は装置に送出してもよい。受信したデータ（例えば、基本印刷オプションデータ）及び印刷機能データは、テキストベースのデータ、例えばＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓドキュメント及び／又はＰｒｉｎｔＴｉｃｋｅｔドキュメント等のマークアップ言語データを含んでもよい。次にブロック１５１０において、ユーザインタフェースは、基本印刷機データ機能に基づいて生成される。ユーザインタフェースは、表示装置を介してユーザに提示されてもよい。
【００６７】
ブロック１５２０に進み、前の印刷機能（例えば、基本印刷機能）に対する印刷機能の変更を示すΔ印刷機能がプリンタドライバから取得される。プリンタドライバは、更新された印刷設定データを受信してもよく、それに応答して実質的にΔ印刷機能のみを含むデータを生成し、且つデータを要求側のアプリケーション及び／又は装置に送出してもよい。更にプリンタドライバは、Δ印刷機能データを含む更なるデータを含んでもよく、１または複数の指標をデータに追加してΔ印刷機能データを識別してもよい。
【００６８】
最後にブロック１５３０において、Δ印刷機能と関連付けられるユーザインタフェースの部分が更新される。例えばユーザインタフェースは、各印刷機能と関連付けられる１または複数のフィールドを有してもよい。印刷機能が変更される場合、ユーザインタフェース上の各フィールドが更新され、且つΔ印刷機能と関連付けられない１または複数の他のフィールドが維持されることにより、ユーザインタフェース全体をリフレッシュする必要はない。
【００６９】
図１６は、印刷装置の機能の１または複数の変更の指標を生成する方法の一実施形態を示すフローチャートである。ブロック１６００から開始し、基本ＰＣ１６５５は基本ＰＴ１６５１に基づいて生成される。例えばプリンタドライバは、印刷装置の印刷設定及び印刷機能（例えば、プリンタ設定が選択されたオプションに対して構成される間の印刷装置の印刷機能の全て及び特定の印刷機能）に関する情報で構成され、呼出しアプリケーションから基本ＰＴ１６５１を受信した後に基本ＰＣ１６５５を生成する。
【００７０】
次にブロック１６１０において、結果ＰＴ１６５７は、基本ＰＴ１６５１及びΔＰＴ１６５３に基づいて生成される（例えば、プリンタドライバにより）。結果ＰＴ１６５７の生成は、マージ動作及び検証動作を含んでもよい。マージ動作は、基本ＰＴ及びΔＰＴを結果ＰＴ１６５７に結合する。検証動作は、印刷装置が結果ＰＴ１６５７の設定に対して選択されたオプションにより説明された機能性を実現できることを検証する。
【００７１】
最後にブロック１６２０において、ΔＰＣ１６５９は、結果ＰＴ１６５７に基づいて判定される更新された印刷機能及び基本ＰＣ１６５５に基づいて生成される。ΔＰＣ１６５９は、結果ＰＴ１６５７に追加される。例えばΔＰＣ１６５９は、ΔＰＣ１６５９及びΔＰＣ１６５９を示すタグ（例えば、マークアップ言語タグ）を含むことにより結果ＰＴ１６５７に追加され、且つ／あるいは結果ＰＴ１６５７の所定の場所に格納されてもよい。結果ＰＴ１６５７（ΔＰＣ１６５９を含む）は、アプリケーション又は装置（例えば、呼出しアプリケーション、要求側の装置）に提供されてもよい。
【００７２】
それに応じて、アプリケーション又は装置は、結果ＰＴ１６５７の生成を要求する（例えば、要求をプリンタドライバに送出することにより）場合、返しに結果ＰＴ１６５７及びΔＰＣ１６５９を受信する。従って、結果ＰＴ１６５７を受信するアプリケーション又は装置は、更新された印刷機能を判定するために更新機能関数を呼び出す必要はない。例えば、いくつかの実施形態において、基本ＰＴ１６５１及びΔＰＴ１６５３がＭｅｒｇｅＡｎｄＶａｌｉｄａｔｅ（基本ＰＴ、ΔＰＴ）関数呼出しを介してドライバに送出され、ドライバがΔＰＣ１６５９を含む結果ＰＴ１６５７を返すため、アプリケーション及び／又は装置は、Ｗｉｎｄｏｗｓ（登録商標）により特定されたＡＰＩを介してドライバと通信できる。また、ドライバに送出される基本ＰＴ又はΔＰＴは基本ＰＣ１６５５を含んでもよく、あるいはドライバは、基本ＰＣを格納し且つ／あるいはそれをメモリの所定の場所から検索してもよい。
【００７３】
図１７は、印刷装置の機能の１または複数の変更の指標を生成する方法の一実施形態を示すフローチャートである。ブロック１７００から開始し、結果ＰＣ１７６１は入力ＰＴ１７５１に基づいて生成される。示される実施形態において、入力ＰＴ１７５１は基本ＰＣ１７５３を含むが、他の実施形態において、基本ＰＣ１７５３は、前のＰＴ１７５１を受信することに応答して生成され且つ省かれていてもよい。入力ＰＴ１７５１と共に基本ＰＣ１７５３を含むことにより、ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（入力ＰＴ）関数呼出しにおいて基本ＰＣ１７５３をドライバに渡すことができるため、Ｗｉｎｄｏｗｓ（登録商標）により特定されたＡＰＩ（例えば、ＰｒｉｎｔＴｉｃｋｅｔ  ＡＰＩ）により規定されるように、関数呼出しがＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにより要求されたインタフェースと適合するようにしつつ、ドライバは基本ＰＣ１７５３を受信できる。
【００７４】
次にブロック１７１０において、ΔＰＣ１７６３は、結果ＰＣ１７６１及び基本ＰＣ１７５３に基づいて生成される。最後にブロック１７２０において、ΔＰＣ１７６３は結果ＰＣ１７６１に追加される。例えばΔＰＣ１７６３は、ΔＰＣ１７６３及びΔＰＣ１７６３を示すタグ（例えば、マークアップ言語タグ）を含むことにより結果ＰＣ１７６１に追加され、且つ／あるいは結果ＰＣ１７６１の所定の場所に格納されてもよい。
【００７５】
いくつかの実施形態において、プリンタドライバは、印刷装置が入力ＰＴ１７５１において選択された設定オプションに構成される場合に各印刷装置の機能を判定するように構成される。プリンタドライバは、関数呼出しにおいて入力ＰＴ１７５１を受信し、例えば印刷装置の設定及び機能に関するデータの内部リポジトリ（例えば、ルックアップテーブル、格納された論理）にアクセスすることにより結果ＰＣ１７６１を生成し、且つΔＰＣ１７６３を判定してもよい。プリンタドライバは、ΔＰＣ１７６３を結果ＰＣ１７６１に追加し、結果ＰＣ１７６１を呼出しアプリケーション／装置に返す。従って、呼出しアプリケーション／装置は、入力ＰＴ１７５１に対して結果ＰＣ１７６１を生成する要求に応答して、結果ＰＣ１７６１及びΔＰＣ１７６３の双方を受信する。
【００７６】
図１８Ａ〜図１８Ｃは、印刷装置の機能の変更を判定する方法の実施形態を示すフローチャートである。図１８Ａにおいて、フローはブロック１８００から開始する。ブロック１８００において、基本ＰＴは、ΔＰＴとマージされ、結果ＰＴを生成する。ブロック１８０２に進み、基本ＰＴは、結果ＰＴと比較され、変更された設定オプションを識別する。次にブロック１８０４において、ΔＰＣは、変更された設定オプションに基づいて生成される。例えば、一実施形態において、各オプションが変更された最も高い優先順位設定が判定され、変更により影響を受けるより低い優先順位設定が判定され、影響を受けた設定の機能がΔＰＣに追加される。例えば、より高い優先順位設定及びより低い優先順位設定を示し且つより高い優先順位設定の選択されたオプションの変更をより低い優先順位設定の機能の変更にマッピングするルックアップテーブル等の１または複数のルックアップテーブルは、ΔＰＣを生成するために使用されてもよい。ブロック１８０６に移動し、ΔＰＣは結果ＰＴに追加され、ブロック１８０８において結果ＰＴが返される。
【００７７】
図１８Ｂにおいて、フローはブロック１８２０から開始し、基本ＰＴは、ΔＰＴとマージされ、結果ＰＴを取得する。次にブロック１８２２において、基本ＰＴは基本ＤｅｖＭｏｄｅに変換される。ブロック１８２４に移動し、結果ＰＴは結果ＤｅｖＭｏｄｅに変換される。ブロック１８２６において、結果ＤｅｖＭｏｄｅは、基本ＤｅｖＭｏｄｅと比較され、ΔＤｅｖＭｏｄｅを生成する。ＤｅｖＭｏｄｅ構造体がデータを２進形式で示すため、比較は、構文解析を必要とする比較（例えば、マークアップ言語データの比較）より速く実行されるバイナリ比較であってもよい。
【００７８】
ブロック１８２８に進み、ΔＰＣは、ΔＤｅｖＭｏｄｅに基づいて生成される。例えば、１または複数のルックアップテーブルは、ΔＤｅｖＭｏｄｅにおいて選択された設定オプションの変更をＤｅｖＣａｐｓ構造体の１または複数の変更にマッピングするために使用されてもよく、ＤｅｖＣａｐｓ構造体の１または複数の変更は、ΔＰＣを生成するために使用されてもよい。また、結果ＤｅｖＭｏｄｅは、結果ＤｅｖＣａｐｓを生成するために使用されてもよく、基本ＤｅｖＭｏｄｅは、基本ＤｅｖＣａｐｓを生成するために使用されてもよい。ΔＰＣは、結果ＤｅｖＣａｐｓと基本ＤｅｖＣａｐｓとを比較することにより生成されてもよい。ブロック１８３０に進み、ΔＰＣは結果ＰＴに追加される。最後にブロック１８３２において、結果ＰＴが返される。
【００７９】
図１８Ｃにおいて、フローはブロック１８５０から開始し、基本ＰＣは基本ＰＴに基づいて生成される。次にブロック１８５２において、基本ＰＴは、ΔＰＴとマージされ、結果ＰＴを生成する。ブロック１８５４に進み、結果ＰＣは結果ＰＴから生成される。その後ブロック１８５６において、基本ＰＣは、結果ＰＣと比較され、ΔＰＣを生成する。ブロック１８５８に進み、ΔＰＣは結果ＰＴに追加され、ブロック１８６０において結果ＰＴが返される。
【００８０】
図１９Ａ及び図１９Ｂは、印刷装置の機能の変更を判定する方法の実施形態を示すフローチャートである。図１９Ａにおいて、フローはブロック１９００から開始し、結果ＰＣは入力ＰＴから生成される。ブロック１９０２に移動し、ΔＰＣは、結果ＰＣ及び基本ＰＣに基づいて生成される。例えばΔＰＣは、結果ＰＣ及び基本ＰＣを構文解析し且つそれらを比較することにより、且つ／あるいは結果ＰＣ及び基本ＰＣをＤｅｖＣａｐｓに変換し且つＤｅｖＣａｐｓ構造体を比較することにより生成されてもよい。次にブロック１９０４において、ΔＰＣは結果ＰＣに追加される。最後にブロック１９０６において、結果ＰＴが返される。
【００８１】
図１９Ｂにおいて、フローはブロック１９２０から開始し、結果ＰＣは入力ＰＴから生成される。ブロック１９２２に進み、結果ＰＣは、結果ＤｅｖＣａｐｓに変換される。その後ブロック１９２４において、基本ＰＣは基本ＤｅｖＣａｐｓに変換される。次にブロック１９２６において、結果ＤｅｖＣａｐｓは、基本ＤｅｖＣａｐｓと比較され、ΔＤｅｖＣａｐｓを生成する。ＤｅｖＣａｐｓが印刷機能を２進形式で示すため、ＤｅｖＣａｐｓ比較は、構文解析を必要とする比較より速く実行されるバイナリ比較である。ブロック１９２８に進み、ΔＰＣはΔＤｅｖＣａｐｓに基づいて生成される。ブロック１９３０において、ΔＰＣは結果ＰＣに追加される。最後に、結果ＰＣは、ブロック１９３２において返される。
【００８２】
図２０は、印刷装置の機能に関する更新を生成するシステム及びシステムにおけるデータの流れの一実施形態を示すフローチャートである。段階１において、印刷ダイアログアプリケーション２０１０は、基本ＰＴ２０５１をプリンタドライバ２０００に送信する。プリンタドライバ２０００は、段階２において、基本ＰＣ２０５３を生成し、それを印刷ダイアログアプリケーションに返す。次に段階３において、印刷ダイアログアプリケーション２０１０は、基本ＵＩ２０５５を生成し、それを表示装置２０２０に送信する。段階４において、印刷ダイアログアプリケーション２０１０は、ΔＰＴ２０５７（いくつかの実施形態において、基本ＰＣ２０５３を含む）を生成し、それをプリンタドライバ２０００に送信する。段階５において、プリンタドライバ２０００は、ΔＰＣ２０６３を含む結果ＰＴ２０５９を生成し、それを印刷ダイアログアプリケーション２０１０に送信する。最後に、段階６において、ΔＰＣ２０６３に基づいて、印刷ダイアログアプリケーション２０１０は、部分的に更新されたＵＩ２０６１を生成し、それを表示装置２０２０に送信する。
【００８３】
いくつかの実施形態において、印刷ダイアログアプリケーション２０１０はローカル演算装置上で動作し、プリンタドライバ２０００はリモート分散コンピューティングサービス（例えば、クラウド）上で動作する。段階１、２、４及び５におけるデータは、１または複数のネットワークを介して印刷ダイアログアプリケーション２０１０とプリンタドライバ２０００との間で送信される。
【００８４】
図２１は、ユーザインタフェース２１００の例示的な一実施形態を示す。ユーザインタフェース２１００は、用紙サイズ２１１０、向き、印刷モード、グレースケール、用紙種類、給紙、用紙品質、網掛け、フチなし印刷２１２０、両面印刷、余白種類及び１８０度回転を含む複数の設定を含む。ユーザインタフェース２１００は、用紙サイズ２１１０及び用紙サイズ２１１０の選択されたオプション２１４０（レター）に対する機能２１３０を表示する。設定に対するオプションがユーザインタフェース２１００により示されるように設定される場合、用紙サイズ２１１０に対する機能２１３０は、レター、リーガル、Ａ５、Ａ４、Ｂ５等を含む。従って、フチなし印刷２１２０に対するオプションが「ｏｆｆ」に設定される場合、用紙サイズ２１１０に対する機能２１３０は、ユーザインタフェース２１００に示されるとおりである。しかし、図２２を参照して以下に説明されるように、フチなし印刷２１２０が「ｏｎ」に設定され且つ用紙サイズ２１１０より高い優先順位を有する場合、用紙サイズ２１１０に対する機能２１３０が変更される。
【００８５】
図２２は、フチなし印刷２２２０が「ｏｎ」に設定され且つ用紙サイズ２２１０より高い優先順位を有する場合の用紙サイズ２２１０の機能２２３０を示すユーザインタフェース２２００の例示的な一実施形態を示す。ここで機能２２３０は、７つのオプション、すなわちレター、Ａ４、Ｌ８９×１２７ｍｍ、２Ｌ１２７×１７８ｍｍ、はがき１００×１４８ｍｍ、クレジットカード２．１３×３．３９ｉｎ．すなわち５４×８６ｍｍ及びカード２．１６×３．５８ｉｎ．すなわち５５×９１ｍｍを提供する。
【００８６】
従って、本実施形態において、フチなし印刷に対して最初に選択されたオプションが「ｏｆｆ」であることを基本印刷設定データ（例えば、基本ＰＴ２０５１）が示す場合、基本印刷設定データ（例えば、基本ＰＴ２０５１）に基づいて生成された基本印刷機能データ（例えば、基本ＰＣ２０５３）は、用紙サイズ設定に対する機能がレター、リーガル、Ａ５、Ａ４、Ｂ５、Ｌ８９×１２７ｍｍ、２Ｌ１２７×１７８ｍｍ、はがき１００×１４８ｍｍ、はがき２  ２００×１４８ｍｍ、長形３  １２０×２３５ｍｍ、長形４  ９０×２０５ｍｍ、洋形４  １０５×２３５ｍｍ、洋形６  ９８×１９０ｍｍ、クレジットカード２．１３×３．３９ｉｎ．すなわち５４×８６ｍｍ、カード２．１６×３．５８ｉｎ．すなわち５５×９１ｍｍ、ＣＤ−ＲトレイＢ及びカスタムであることを示す。ユーザがユーザインタフェースを介してフチなし印刷を「ｏｎ」に設定する場合、フチなし印刷に対するオプションが「ｏｎ」に変更されることを示す差分印刷設定データ（例えば、ΔＰＴ２０５７）が生成される。差分印刷設定データ（例えば、ΔＰＴ２０５７）は、更新された印刷設定データ（例えば、結果ＰＴ２０５９）を生成するプリンタドライバに送出される。プリンタドライバは、用紙サイズに対する印刷機能がレター、Ａ４、Ｌ８９×１２７ｍｍ、２Ｌ１２７×１７８ｍｍ、はがき１００×１４８ｍｍ、クレジットカード２．１３×３．３９ｉｎ．すなわち５４×８６ｍｍ及びカード２．１６×３．５８ｉｎ．すなわち５５×９１ｍｍであることを示す対応する更新された印刷設定データを更に生成する。
【００８７】
次にプリンタドライバは、基本印刷機能データ（例えば、基本ＰＣ２０５３）及び更新された印刷機能データに基づいて差分印刷機能データ（例えば、ΔＰＣ２０６３）を生成する。差分印刷設定データは、用紙サイズ設定に対する印刷機能がリーガル、Ａ５、Ｂ５、はがき２  ２００×１４８ｍｍ、長形３  １２０×２３５ｍｍ、長形４  ９０×２０５ｍｍ、洋形４  １０５×２３５ｍｍ、洋形６  ９８×１９０ｍｍ、ＣＤ−ＲトレイＢ及びカスタムを含まないように変更されたことを示す。変更された印刷機能に対応するユーザインタフェースの部分（例えば、使用不可能な用紙サイズオプションを除去する）及び選択されたオプションに対するあらゆる変更（例えば、フチなし印刷が「ｏｎ」に設定されることを示す）のみを実質的に変更し、且つユーザインタフェースの残りの部分を維持する結果ユーザインタフェース（例えば、部分的に更新されたＵＩ２０６１）が生成されてもよい。
【００８８】
図２３は、図２１及び図２２に基づいて差分印刷設定データ２１００の例示的な一実施形態を示す。差分印刷設定データ２１００は、機能を変更した設定（すなわち、ページサイズ設定）、変更した機能のオプション及びオプションに対して実行されたそれぞれの変更を示す。差分印刷設定データ２１００はＸＭＬドキュメントとしてフォーマットされ、機能の各オプションに対する変更は各オプションが使用不可能であることを示す（しかし、ここでオプションが使用可能である場合、印刷設定データ２１００はオプションが使用可能であることを示す）。差分印刷設定データ２１００は、用紙サイズ設定に対する機能に変更があること、特にリーガル、Ａ５、Ｂ５、はがき２  ２００×１４８ｍｍ、長形３  １２０×２３５ｍｍ、長形４  ９０×２０５ｍｍ、洋形４  １０５×２３５ｍｍ、洋形６  ９８×１９０ｍｍ、ＣＤ−ＲトレイＢ及びカスタムのサイズが使用不可能であることを示す。プリンタドライバは、差分印刷機能データ２１００を結果印刷設定データ（例えば、結果ＰＴ）に追加してもよい。
【００８９】
図２４は、ユーザインタフェースの例示的な一実施形態を示す。ユーザインタフェース２４００の第１の図は、用紙種類設定２４１０に対するオプションが印刷可能なディスク（その他）に設定されたことを示し、ユーザインタフェース２４２０の第２の図は、用紙サイズ設定２４３０に対する対応する機能２４４０を示す。ユーザインタフェース２４２０の第２の図は、両面印刷設定２４５０に対する機能がグレーアウトされることを更に示す。従って、両面印刷設定２４５０に対する機能は、選択されたオプションになるのは不可能である。しかし、図２５に示されるように、用紙種類設定２４１０に対して異なるオプションが選択される場合、印刷機能のうちの少なくともいくつかは変更される。
【００９０】
図２５は、図２４の例に引き続き、ユーザインタフェースの例示的な一実施形態を示す。ユーザインタフェース２５００の第１の図は、用紙種類設定２５１０に対して選択されたオプションが普通紙に設定されたことを示す。ユーザインタフェース２５２０の第２の図は、用紙サイズ設定２５３０に対して機能２５４０がオプションを追加するように変更されたことを示す。更に両面印刷設定２５５０に対して、機能は、両面印刷「ｏｎ」、両面印刷「ｏｆｆ」、自動「ｏｎ」及び自動「ｏｆｆ」（「ｏｎ」及び「ｏｆｆ」は、チェックボックスにより示される）のオプションを含むように変更された。
【００９１】
図２６は、図２４及び図２５に基づいて差分印刷機能データ２６００の例示的な一実施形態を示す。差分印刷機能データ２６００は、表形式で配置され、機能を変更した設定２６１０（すなわち、ページサイズ設定）、変更したオプション２６２０、オプションに対して実行されたそれぞれの変更２６３０を示す。従って、差分印刷機能データ２６００は、図２４〜図２５の用紙種類に対して選択されたオプションの変更に基づいて、機能２６２０のオプションが現在使用可能であることを示す。
【００９２】
図２７は、差分印刷機能データを含む印刷設定データ２７００（例えば、ＰｒｉｎｔＴｉｃｋｅｔ）の例示的な一実施形態を示す。印刷設定データ２７００は、ＸＭＬ形式で配置される。印刷設定データ２７００は、印刷設定データ（例えば、ＰｒｉｎｔＴｉｃｋｅｔデータ）の妥当性を維持し、差分印刷機能データ全体が挿入されるＸＭＬ  ＣＤＡＴＡセクションを介した差分印刷機能データ又は他のＸＭＬ要素を介した差分印刷機能データを説明する。印刷設定データ２７００の特性は、差分印刷機能データを抽出する方法を説明する。
【００９３】
上述したシステム及び方法は、上述の動作を実現するためのコンピュータが実行可能な命令を有する記憶媒体を記憶媒体に格納されたコンピュータが実行可能な命令を読み出し且つ実行できる１または複数の演算装置（例えば、ＣＰＵ、ＭＰＵ）に供給することにより実現される。
【００９４】
この場合、コンピュータが実行可能な命令は、記憶媒体から読み出され且つ１または複数の演算装置により実行される場合に上述の実施形態の動作を実行する。従って、コンピュータが実行可能な命令又はコンピュータが実行可能な命令を格納する記憶媒体は、一実施形態を構成する。
【００９５】
あらゆる適用可能なコンピュータ可読記憶媒体（例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性メモリカード、ＲＯＭ）は、コンピュータが実行可能な命令を供給する記憶媒体として採用されてもよい。
【００９６】
コンピュータが実行可能な命令は、演算装置に挿入された機能拡張ボード又は演算装置に接続された機能拡張ユニット上に提供されたメモリに格納されてもよく、機能拡張ボード又は機能拡張ユニット上に提供されたＣＰＵは、上述の実施形態の動作を実現する実際の処理の一部又は全てを実行してもよい。また、コンピュータが実行可能な命令が１または複数の演算装置により実行される場合、演算システム上で動作するオペレーティングシステムは、上述の実施形態の動作を実現する実際の処理の一部又は全てを実行してもよい。
【００９７】
上記の開示内容は例示的な実施形態を説明するが、本発明は上記の開示内容に限定されないことが理解されるべきである。逆に本発明は、添付の特許請求の範囲の趣旨及び範囲内で種々の変形及び均等の構成を範囲に含む。
【図１】
2012185806.tif 000003
【図２】
2012185806.tif 000004
【図３】
2012185806.tif 000005
【図４】
2012185806.tif 000006
【図５】
2012185806.tif 000007
【図６】
2012185806.tif 000008
【図９】
2012185806.tif 000009
【図１２】
2012185806.tif 000010
【図１３】
2012185806.tif 000011
【図１４】
2012185806.tif 000012
【図１５】
2012185806.tif 000013
【図１６】
2012185806.tif 000014
【図１７】
2012185806.tif 000015
【図１８Ａ】
2012185806.tif 000016
【図１８Ｂ】
2012185806.tif 000017
【図１８Ｃ】
2012185806.tif 000018
【図１９Ａ】
2012185806.tif 000019
【図１９Ｂ】
2012185806.tif 000020
【図２０】
2012185806.tif 000021
【図２３】
2012185806.tif 000022
【図２６】
2012185806.tif 000023
【図２７】
2012185806.tif 000024
【図７】
2012185806.tif 000025
【図８】
2012185806.tif 000026
【図１０】
2012185806.tif 000027
【図１１】
2012185806.tif 000028
【図２１】
2012185806.tif 000029
【図２２】
2012185806.tif 000030
【図２４】
2012185806.tif 000031
【図２５】
2012185806.tif 000032
【外国語明細書】
2012185806000001.pdf