(57)【要約】【課題】  印刷設定に含まれる機能上の矛盾を解消する処理が必要な場合にのみ、その処理を行うように制御することで、印刷処理のパフォーマンスを向上させる。【解決手段】  印刷設定に含まれる機能上の矛盾を解消する処理が行われ、当該印刷設定が変更されていないことを示す情報を当該印刷設定に関するデータに付与する。そして、付与された情報に基づいて、印刷設定に関するデータが変更されているか否かを判定する。ここで、印刷設定に関するデータに情報が付与され、かつ、印刷設定に関するデータが変更されていなければ、処理を行わない。また、印刷設定に関するデータに情報が付与されておらず、或いは、印刷設定に関するデータが変更されていれば、処理を行う。【選択図】      図６
2010113623.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
印刷設定情報の矛盾を解消する処理が行われ、当該印刷設定が変更されていないことを示す情報を当該印刷設定に関するデータに付与する付与手段と、
前記付与手段によって付与された情報に基づいて、前記印刷設定に関するデータが変更されているか否かを判定する判定手段と、
前記印刷設定に関するデータに前記情報が付与され、かつ、前記判定手段によって前記印刷設定に関するデータが変更されていないと判定した場合は、前記矛盾を解消する処理を行わず、
前記印刷設定に関するデータに前記情報が付与されておらず、或いは、前記判定手段によって前記印刷設定に関するデータが変更されていると判定した場合は、前記矛盾を解消する処理を行うように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記付与手段は、前記印刷設定に関するデータを前記矛盾が発生し得る部分と発生しない部分とに分離し、前記発生し得る部分に対して前記情報を付与することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、前記情報に基づいて、前記印刷設定に関するデータのうち、前記矛盾が発生し得る部分が変更されているか否かを判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記付与手段は、前記矛盾が存在する機能同士を複数のグループにグループ化し、前記複数のグループに対してそれぞれ前記情報を付与することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記判定手段は、前記複数のグループに対して付与された前記情報に基づいて、前記複数のグループの機能の何れかが変更されているか否かを判定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
情報処理装置にて実行される印刷制御方法であって、
印刷設定情報の矛盾を解消する処理が行われ、当該印刷設定が変更されていないことを示す情報を当該印刷設定に関するデータに付与する付与工程と、
前記付与工程において付与された情報に基づいて、前記印刷設定に関するデータが変更されているか否かを判定する判定工程と、
前記印刷設定に関するデータに前記情報が付与され、かつ、前記判定工程において前記印刷設定に関するデータが変更されていないと判定した場合は、前記矛盾を解消する処理を行わず、
前記印刷設定に関するデータに前記情報が付与されておらず、或いは、前記判定工程において前記印刷設定に関するデータが変更されていると判定した場合は、前記矛盾を解消する処理を行うように制御する制御工程と、
を有することを特徴とする印刷制御方法。
【請求項７】
コンピュータを、請求項１乃至５の何れか１項に記載の情報処理装置として機能させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び印刷制御方法に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ上で作成した文書や図などをアプリケーションからプリンタに印刷させる方法として、プリンタに対応したプリンタドライバを介してアプリケーションデータを印刷データに変換して送信する方法が知られている。
【０００３】
中でも、マイクロソフト社のＸＰＳドライバは、ＸＰＳというデータ形式に変換されたアプリケーションデータを受信し、それをＰＤＬに変換して送信したり、或いはそのままプリンタに送信して印刷を行う。
【０００４】
近年、このＸＰＳドライバが従来の主流であったＧＤＩドライバに代わるものとして、盛んに研究・開発されている。このＸＰＳドライバの実装方法を記述した非特許文献１を例に挙げてＸＰＳドライバを説明する。
【０００５】
アプリケーションデータ（ＸＰＳ）は内部に文書や図などの描画に関するデータの他に印刷設定に関するプリントチケットというＸＭＬ形式のデータを含み、ＸＰＳドライバの印刷フィルタがプリントチケットに従ってＰＤＬを生成する。
【０００６】
また、プリントチケットをＸＰＳ内に挿入する際に、予めＸＰＳドライバのコンフィグモジュールが提供するインターフェースを利用してコンフリクト処理を行う。
【０００７】
ここでコンフリクト処理とは、プリントチケットが表す印刷設定内に含まれる機能上の矛盾を解消し、無矛盾の状態にしたプリントチケットに変える処理を指す。例えば、あるプリンタが両面印刷機能を備えていたとしても、用紙として封筒用紙サイズが指定されている場合には、両面印刷ができないといったケースが存在する。
【０００８】
このような状況において、ＸＰＳドライバのコンフィグモジュールは、コンフリクト処理の入力として与えられたプリントチケットに両面印刷と封筒用紙が同時に指定されていた場合、設定を片面印刷に変更してアプリケーションに返却する。
【０００９】
こうして得られた無矛盾のプリントチケットを含むＸＰＳがアプリケーションから入力されたならば、ＸＰＳドライバのフィルタは結果として無矛盾のＰＤＬを生成することができる。
【００１０】
だが、全てのアプリケーションが予めコンフリクト処理を呼び出すかどうかはアプリケーション自身の実装に依存しており、実際の印刷環境では常に無矛盾のプリントチケットがＸＰＳドライバに入力されるとは限らない。例えば、マナーに反するアプリケーションがコンフリクト処理済みのプリントチケットの内容を書き換え、そのままＸＰＳドライバに入力してくるといったことは起こり得る。
【００１１】
更に、ＸＰＳはＰＤＦ（登録商標）のような一般的に流通する文書形式としての側面も備えているため、印刷対象のプリンタと互換性のないプリントチケットがＸＰＳに埋め込まれ、そのままアプリケーションから入力されるといったケースも起こり得る。
【００１２】
このようなプリントチケットを用いてＰＤＬを生成し送信した場合、プリンタが誤作動を起こす可能性がある。そのため、現実的には、フィルタは予めコンフィグモジュールのコンフリクト処理を呼び出してプリントチケットを無矛盾の状態にしてからＰＤＬの生成をせざるを得ない。
【００１３】
また、特許文献１には、Ｗｅｂクライアントの要求に応じてＷｅｂサーバに接続されたプリンタに印刷を行うプリントシステムにおいて、コンフリクト処理に際するサーバアクセス数を減らし、高速な印刷設定を実現する発明が開示されている。
【特許文献１】特開２００３−２９６０６３号公報
【非特許文献１】PrintTicket and PrintCapabilities Support in Windows Print Drivers (Microsoft Corporation,  2006)http://www.microsoft.com/whdc/device/print/XPSDrv_PrintTicket.mspx
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、近年の多機能化するプリンタやデジタル複合機に対応したＸＰＳドライバのプリントチケットは、記述しなければならない機能が豊富で、それに比例して機能間のコンフリクトが多彩で複雑になるため、コンフリクト処理に時間がかかる。
【００１５】
コンフリクト処理に要する時間の増大に拍車をかける要因となっているのが、プリントチケットがＸＭＬで記述されているという点である。
【００１６】
従来のＧＤＩドライバでも同様のコンフリクト処理は行われていたが、ＧＤＩドライバにおいて印刷設定を記述するデータはＤＥＶＭＯＤＥと呼ばれるバイナリ形式であったため、処理速度が現実的な問題として顕在化することはなかった。
【００１７】
しかし、プリントチケットはＸＭＬのテキスト形式で処理に時間がかかるため、印刷中におけるコンフリクト処理の呼び出しが印刷パフォーマンス低下の要因として見逃せないほどの影響を与えるようになっている。
【００１８】
更に、ＸＰＳドライバにおいて印刷を処理するフィルタは１つだけでなく、複数のフィルタがパイプライン形式で連結されることも可能なため、フィルタの数が増えるとそれだけコンフリクト処理による遅延の影響が顕著になる。
【００１９】
また、特許文献１に開示されている発明では、Ｗｅｂサーバクライアントで構成されたシステムにおいてコンフリクト処理に際するサーバアクセス数を減らすために、補助的な「コンフリクト制御情報」が利用されている。
【００２０】
しかし、この「コンフリクト制御情報」は印刷設定全体の矛盾を解消するような性質は備えておらず、またそもそもＸＰＳドライバではプリントチケット以外の印刷設定情報をアプリケーションと授受する方法が存在しない。
【００２１】
本発明は、印刷設定に含まれる機能上の矛盾を解消する処理が必要な場合にのみ、その処理を行うように制御することで、印刷処理のパフォーマンスを向上させることを目的とする。
【課題を解決するための手段】
【００２２】
本発明は、情報処理装置であって、
印刷設定情報の矛盾を解消する処理が行われ、当該印刷設定が変更されていないことを示す情報を当該印刷設定に関するデータに付与する付与手段と、
前記付与手段によって付与された情報に基づいて、前記印刷設定に関するデータが変更されているか否かを判定する判定手段と、
前記印刷設定に関するデータに前記情報が付与され、かつ、前記判定手段によって前記印刷設定に関するデータが変更されていないと判定した場合は、前記矛盾を解消する処理を行わず、
前記印刷設定に関するデータに前記情報が付与されておらず、或いは、前記判定手段によって前記印刷設定に関するデータが変更されていると判定した場合は、前記矛盾を解消する処理を行うように制御する制御手段と、
を有することを特徴とする。
【００２３】
また、本発明は、情報処理装置にて実行される印刷制御方法であって、
印刷設定情報の矛盾を解消する処理が行われ、当該印刷設定が変更されていないことを示す情報を当該印刷設定に関するデータに付与する付与工程と、
前記付与工程において付与された情報に基づいて、前記印刷設定に関するデータが変更されているか否かを判定する判定工程と、
前記印刷設定に関するデータに前記情報が付与され、かつ、前記判定工程において前記印刷設定に関するデータが変更されていないと判定した場合は、前記矛盾を解消する処理を行わず、
前記印刷設定に関するデータに前記情報が付与されておらず、或いは、前記判定工程において前記印刷設定に関するデータが変更されていると判定した場合は、前記矛盾を解消する処理を行うように制御する制御工程と、
を有することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、印刷設定に含まれる機能上の矛盾を解消する処理が必要な場合にのみ、その処理を行うように制御することで、印刷処理のパフォーマンスを向上させることができる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２６】
［印刷システムの構成］
図１は、本発明に係る印刷システムの構成の一例を示す図である。図１において、１０は情報処理装置であり、ユーザが印刷を指示するためのホストコンピュータである。２０はプリンタであり、ここではデジタル複合機の場合を示しているが、本発明はこれに限定されない。ホストコンピュータ１０とプリンタ２０とは、セントロニクスなどのインターフェースやＬＡＮなどのネットワークを介して接続されている。
【００２７】
［ホストコンピュータの構成］
図２は、図１に示すホストコンピュータ１０の構成の一例を示す概略ブロック図である。ＣＰＵ１０１は、ＲＯＭ１０２やＲＡＭ１０３或いは外部記憶装置１０５に格納されたプログラムを実行し、ホストコンピュータ１０全体を制御する。ＲＡＭ１０３は、ＣＰＵ１０１が各種処理を実行する際に、作業領域として使用される。外部記憶装置１０５は、オペレーティングシステム（ＯＳ）やアプリケーションソフト、プリンタドライバソフトなどを記録する。
【００２８】
キーボード１０４や不図示のマウスなどの入力機器は、ユーザが各種指示を与えるためのデバイスである。ネットワークＩ／Ｆ１０６やプリンタＩ／Ｆ１０７はＬＡＮや専用のインターフェースを介してプリンタ２０と接続し、データの授受を行うためのインターフェースである。
【００２９】
モニタＩ／Ｆ１０８は、モニタに接続し、表示データの転送を制御するためのインターフェースである。そして、システムバス１０９は、ホストコンピュータ１０の各部を接続するバスである。
【００３０】
［印刷制御のための詳細なシステム構成］
図３は、ホストコンピュータ１０が印刷制御するためのシステム構成を表すブロック図である。ここでは、マイクロソフト社のオペレーティングシステムにおけるシステム構成とＸＰＳドライバの構成を例に挙げて説明する。
【００３１】
アプリケーション２０１、フィルタマネージャ２０２、コンフィグモジュール２０３、フィルタ２０４、及びシステムスプーラ２０５は、外部記憶装置１０５にファイルとして保存されている。そして、これらのファイルはＲＡＭ１０３にロードされ、ＣＰＵ１０１によって実行される。
【００３２】
コンフィグモジュール２０３とフィルタ２０４はプリンタ２０へ出力される印刷データを生成したり、当該印刷データ用に印刷設定情報を設定するために提供されるプログラムであり、まとめてプリンタドライバ２０６と呼ばれる。アプリケーション２０１及びプリンタドライバ２０６は、外部記憶装置１０５であるＦＤや不図示のＣＤ−ＲＯＭ或いはネットワークＩ／Ｆ１０６を経由して外部記憶装置１０５に追加することが可能である。
【００３３】
ここで、アプリケーション２０１がデータの印刷をプリンタ２０に指示する際に、アプリケーション２０１は印刷したいデータをＸＰＳというデータ形式に変換する。そして、変換されたＸＰＳをフィルタマネージャ２０２にＡＰＩを通じて出力する。このＸＰＳは、大きく分けて、印刷の描画内容を記述する部分と、設定内容を記述する部分とから構成されている。
【００３４】
プリンタドライバ２０６のフィルタ２０４は、ＸＰＳに記述された描画内容と設定内容に従ってＰＤＬを生成し、ＯＳのシステムスプーラ２０５を通じてＰＤＬをプリンタ２０に送信する。そして、プリンタ２０が、そのＰＤＬに基づいて印刷を行う。
【００３５】
ＸＰＳのうち、特に印刷の設定内容に関する部分はプリントチケット（ＰＴ）と呼ばれており、ＸＰＳとは独立した形式で定義されている。尚、このプリントチケットの詳細は後述するが、ＸＭＬ形式で記述されるデータである。よって、プリントチケットと印刷設定情報は同義である。また、プリントチケット（印刷設定情報）は、部数、用紙サイズ等の設定値を含む。
【００３６】
アプリケーション２０１は、ユーザ又はアプリケーションからの指示に基づく印刷設定内容をプリントチケットに記述し、ＸＰＳに埋め込んで送信することで、複数部数出力や両面印刷などをプリンタ２０に指示する。
【００３７】
また、プリントチケットはプリンタドライバ２０６のコンフィグモジュール２０３からＡＰＩを通じて取得することができる。このコンフィグモジュール２０３から取得できるプリントチケットには予めプリンタドライバ２０６が保持しているデフォルトの印刷設定が記述されている。
【００３８】
ここで、印刷設定をデフォルトのままでなく変更したい場合は、コンフィグモジュール２０３のドライバＵＩ２０７を通じてユーザに変更内容を入力させることができる。このドライバＵＩ２０７は、コンフィグモジュール２０３が制御するユーザインターフェースであり、アプリケーション２０１からコンフィグモジュール２０３に対してＡＰＩで呼び出して表示させる。
【００３９】
そして、ドライバＵＩ２０７上で変更された印刷設定はプリントチケットに変換され、ＡＰＩ経由でアプリケーション２０１に返却される。そのため、アプリケーション２０１は返却されたプリントチケットをＸＰＳに埋め込むことで、ユーザ所望の印刷設定により印刷を行うことができる。
【００４０】
尚、デフォルトのままのプリントチケットも、ドライバＵＩ２０７を通じて変更されたプリントチケットも、どちらもコンフィグモジュール２０３によって生成又は変換されたデータであるため、設定上の矛盾は予め排除されている。
【００４１】
従って、フィルタ２０４に入力されたプリントチケットには、設定上の矛盾は含まれておらず、フィルタ２０４は矛盾のないＰＤＬを生成することができる。
【００４２】
［印刷設定に矛盾が含まれるケース］
しかしながら、フィルタ２０４に入力されるプリントチケットに設定上の矛盾が含まれるケースが存在する。例えば、プリントチケットのＸＭＬ形式は、公開された仕様であるため、ＡＰＩによってプリンタドライバ２０６から取得しなくても、アプリケーション２０１自身が、所望の印刷設定情報を記述し、ＸＰＳに埋め込んでフィルタ２０４に出力することができる。
【００４３】
図４は、アプリケーション自身が所望の印刷設定情報をプリントチケットに記述してプリンタドライバに送信するケースを表す図である。この例では、アプリケーション２０１がコンフィグモジュール２０３と通信せずに独自に作成したプリントチケットが、設定上の矛盾を含んでいる可能性がある。これは、コンフィグモジュール２０３による設定上の矛盾を排除するためのコンフリクト処理機能がプリントチケットに適用されないことに起因する。
【００４４】
結果として、このようなプリントチケットをＸＰＳに入れてフィルタ２０４に送信すると矛盾したＰＤＬが生成されてプリンタ２０に送られる可能性があるため、プリンタ２０に誤作動を起こさせるおそれがある。
【００４５】
また、別の例として、アプリケーション２０１がドライバＵＩ２０７を通じてプリントチケットを取得した後に、アプリケーション２０１が所望する設定を反映させるために、書き換えることも可能である。
【００４６】
図５は、アプリケーションがドライバＵＩからプリントチケットを取得した後に、当該プリントチケットを書き換えて、ＸＰＳに入れてプリンタドライバに送信するケースを表す図である。この場合にも、プリントチケットはアプリケーション２０１によって書き換えられた時点で矛盾が発生する可能性があるため、結果としてプリンタ２０に誤作動を起こさせるおそれがある。
【００４７】
そこで、フィルタ２０４は、受信したＸＰＳ内のプリントチケットに矛盾が含まれている可能性を想定し、コンフィグモジュール２０３が提供するＡＰＩを通じてコンフリクト処理を行う。
【００４８】
ここでコンフリクト処理とは、所望の印刷設定情報が記述されたプリントチケットを入力し、設定上の矛盾を全て解消したプリントチケットを出力する処理である。このコンフリクト処理はコンフィグモジュール２０３の内部で行われる。
【００４９】
コンフィグモジュール２０３は、お互いに設定不可能なペアやリストと、設定不可能なペアやリストが発生した際に、どのように設定を変更するかを記憶している。例として、プリンタ２０が「はがき」用紙サイズを「両面」で印刷できない、という制限があったとする。このとき、コンフィグモジュール２０３は「はがき」用紙サイズと「両面印刷」のペアは同時に設定できない、という情報を記憶しており、更にこのペアが発生したときは「両面印刷」を「片面印刷」に変更することも記憶している。
【００５０】
即ち、フィルタ２０６は、受信したプリントチケットに含まれている可能性のある設定上の矛盾を、このコンフリクト処理の呼び出しによって解消することができ、結果として矛盾の解消されたＰＤＬを生成することができる。
【００５１】
しかしながら、上述したように、プリントチケットのコンフリクト処理は時間がかかるという問題がある。
【００５２】
近年の多機能化するプリンタやデジタル複合機の機能を表現したプリントチケットは、記述しなければならない機能が豊富で、それに比例して機能間のコンフリクトが多彩で複雑になるため、コンフリクト処理に時間がかかってしまう。
【００５３】
更に、プリントチケットはＸＭＬで記述されているため、これも処理時間の増大に拍車をかける要因となっている。
【００５４】
結果として、フィルタ２０４が行う全処理の所要時間の中でコンフリクト処理の時間が占める割合が大きくなり、印刷パフォーマンスの低下を招いてしまう。
【００５５】
［第一の実施形態］
そこで、第一の実施形態では、フィルタ２０４におけるコンフリクト処理の呼び出しを最適化することにより、印刷パフォーマンスの向上を図るものである。
【００５６】
図６は、第一の実施形態における最適化された印刷のためのシステム構成の一例を表すブロック図である。まず、コンフィグモジュール２０３がデフォルトのプリントチケットや、ドライバＵＩ２０７で変更され、矛盾を含まないプリントチケットをアプリケーション２０１に返却する際に、予めＸＭＬ電子署名をプリントチケットに付与しておく。
【００５７】
そして、フィルタ２０４が受信したプリントチケット内に電子署名が存在し、かつ電子署名が変更（改ざん）されていなければ、コンフリクト処理をスキップして直接ＰＤＬの生成を行う。
【００５８】
これにより、矛盾を含まないプリントチケットをコンフリクト処理にかける時間が節約され、高速に印刷処理を行うことが可能となる。
【００５９】
ここで、プリンタドライバ２０６のフィルタ２０４によって実行される、コンフリクト処理の呼び出しを最適化した処理を、図７を用いて説明する。なお、本願のフローチャートの各ステップは、ＣＰＵが関連するプログラムをメモリから読み出して実行することにより、実行される。
【００６０】
図７は、第一の実施形態におけるホストコンピュータでの処理を示すフローチャートである。まず、ステップＳ１０１において、アプリケーション２０１がコンフィグモジュール２０３に対してプリントチケットを要求する。このとき、要求するプリントチケットは、コンフィグモジュール２０３が予め保持しているデフォルトのものであっても良いし、ドライバＵＩ２０７を通じて取得可能な変更されたプリントチケットであっても良い。
【００６１】
次に、ステップＳ１０２において、コンフィグモジュール２０３はプリントチケットに電子署名を付与する。尚、第一の実施形態では、ＸＭＬに電子署名を埋め込むための技術として、ＲＦＣ３０７５というＷ３Ｃによって定められた標準技術を用いる。
【００６２】
図８は、ＸＭＬ電子署名を付与したプリントチケットの一例を示す図である。プリントチケットは＜ＰｒｉｎｔＴｉｃｋｅｔ／＞というルート要素の中に＜Ｆｅａｔｕｒｅ／＞〜＜Ｏｐｔｉｏｎ／＞という子要素を複数持つ構成で記述される。＜Ｆｅａｔｕｒｅ／＞には、ＰａｇｅＭｅｄｉａＳｉｚｅ（用紙サイズ）などの機能名称、＜Ｏｐｔｉｏｎ／＞には、Ｌｅｔｔｅｒなど選択されている値を記述することで現在の印刷設定を表現する。＜Ｆｅａｔｕｒｅ／＞〜＜Ｏｐｔｉｏｎ／＞の下に出現する＜Ｓｉｇｎａｔｕｒｅ／＞の要素はＸＭＬ電子署名の情報を表す部分である。
【００６３】
コンフィグモジュール２０３は、署名対象となる＜Ｆｅａｔｕｒｅ／＞〜＜Ｏｐｔｉｏｎ／＞の連続する記述情報を、一つの文字列として取り出し、ハッシュアルゴリズムに入力することによって出力として署名値を得る。このハッシュアルゴリズムは、ＳＨＡ−１などの一般的な手法を利用するものとする。
【００６４】
出力として得られた署名値は、「９０ｄｆｊ…」等の文字列にエンコードされており、＜ＤｉｇｅｓｔＶａｌｕｅ／＞要素の値としてプリントチケット内に記述され保存される。このようにして、プリントチケットにＸＭＬ電子署名が付与される。
【００６５】
次に、ステップＳ１０３において、コンフィグモジュール２０３は署名されたプリントチケットをアプリケーション２０１に返却する。
【００６６】
一方、ステップＳ１０４において、アプリケーション２０１は生成したＸＰＳ内にプリントチケットを埋め込み、フィルタマネージャ２０２を通じてプリンタドライバ２０６のフィルタ２０４に送信する。
【００６７】
このとき、アプリケーション２０１は、ステップＳ１０３で返却された署名済みのプリントチケットをそのまま送信しても良いし、図４や図５に示したように予め用意したものを送信しても、書き変えてから送信しても良い。
【００６８】
何れのケースでも、後述するステップＳ１０７〜Ｓ１０８において、プリントチケットの内容に応じた処理が行われる。
【００６９】
次に、ステップＳ１０５において、フィルタ２０４がＸＰＳを受信する。そして、ステップＳ１０６において、フィルタ２０４はＸＰＳ内に埋め込まれているプリントチケットを取り出す。
【００７０】
次に、ステップＳ１０７において、フィルタ２０４はプリントチケット内にＸＭＬ電子署名が含まれているか否かを調べる。具体的には、プリントチケットのデータを展開し、＜Ｓｉｇｎａｔｕｒｅ／＞の要素があるか否かをチェックする。
【００７１】
ここで、アプリケーション２０１がコンフィグモジュール２０３から取得したプリントチケットをそのまま送信していれば署名が存在するが、予め用意したプリントチケットを入力した場合は署名が存在しないこととなる。チェックの結果、署名があればステップＳ１０８へ処理を進め、署名がなければステップＳ１１０へ処理を進める。
【００７２】
ステップＳ１０８では、フィルタ２０４は署名を用いてプリントチケットが変更されているか否かを調べる。この署名による変更（改ざん）の検知は、署名の手順とほぼ同等で、署名対象となる複数の＜Ｆｅａｔｕｒｅ／＞〜＜Ｏｐｔｉｏｎ／＞の部分を署名対象として署名値を求め、予めＸＭＬ内に埋め込まれている署名値と一致するか否かにより検知する。また、例えば、フィルタ２０４が、プリントチケットに付与されたＸＭＬ電子署名をコンフィグモジュールから受信し、この受信したＸＭＬ電子署名とプリントチケットの署名とを比較することで、Ｓ１０８の処理が実行されても良い。
【００７３】
ここで、署名値と一致すれば変更されていないことを意味し、署名値と一致しなければアプリケーション２０１によってプリントチケットの設定に変更が加えられていることを意味する。即ち、変更されていなければステップＳ１０９へ処理を進め、変更されていればステップＳ１１０へ処理を進める。
【００７４】
ステップＳ１０９では、フィルタ２０４はコンフリクト処理をスキップしてステップＳ１１１へ処理を進める。つまり、プリントチケットに電子署名が存在し、かつ変更されていないことが確認され、印刷設定に矛盾がないことが保障されたので、フィルタ２０４は時間のかかるコンフリクト処理を省略して次の処理を実行できる。
【００７５】
一方、電子署名が存在しない又は変更されている場合、ステップＳ１１０において、フィルタ２０４はコンフィグモジュール２０３に対してコンフリクト処理の呼び出しを行い、プリントチケットのコンフリクトを解消する。尚、ステップＳ１１０を実行した場合は時間がかかるので、トータルの印刷処理時間も長くなる。
【００７６】
最後に、ステップＳ１１１において、フィルタ２０４はプリントチケットの記述内容に従ってＰＤＬを生成し、ＯＳのシステムスプーラ２０５を通じてプリンタ２０に送信し、印刷出力を指示する。
【００７７】
第一の実施形態によれば、不必要にコンフィグモジュールを呼び出す処理が省略されるため、処理効率の向上を実現することができる。
【００７８】
また、フィルタはコンフリクト処理済みのプリントチケットがアプリケーションで変更されているか否かを検知でき、変更されていないときは時間のかかるコンフリクト処理を呼び出さずに印刷処理を行うことができる。これにより、印刷パフォーマンスが向上し、ユーザは素早く印刷出力を得ることができる。
【００７９】
［第二の実施形態］
次に、図面を参照しながら本発明に係る第二の実施形態を詳細に説明する。第一の実施形態では、プリントチケット全体をまとめて電子署名を付与していたが、第二の実施形態では変更によって矛盾が生じる部分にのみ、電子署名を付与するものである。
【００８０】
つまり、プリントチケットに記述された印刷設定には、アプリケーションによる変更によって影響を受ける部分とそうでない部分とがある。第一の実施形態では、これらを区別せずに、プリントチケット全体をまとめて電子署名の対象としているため、変更の影響を受けない部分の印刷設定しか参照しないフィルタにとっては、その変更検知が不要で効率が悪い。
【００８１】
また、プリントチケット全体を署名対象とすると、ハッシュアルゴリズムによる署名値の計算が増加するという問題もある。
【００８２】
そこで、第二の実施形態では、プリントチケットをアプリケーションでの変更によって影響を受ける部分とそうでない部分とに分離し、影響を受ける部分にのみ電子署名を付与し、より効率的な印刷処理を行うものである。
【００８３】
尚、第二の実施形態における印刷システム、ホストコンピュータ、プリンタドライバの構成は、第一の実施形態で説明した構成と同様であり、説明は省略する。
【００８４】
ここで、プリンタドライバ２０６のフィルタ２０４によって実行される、コンフリクト処理の呼び出しを最適化した処理を、図９を用いて説明する。
【００８５】
図９は、第二の実施形態におけるホストコンピュータでの処理を示すフローチャートである。まず、ステップＳ２０１において、アプリケーション２０１がコンフィグモジュール２０３に対してプリントチケットを要求する。次に、ステップＳ２０２において、コンフィグモジュール２０３はプリントチケットをアプリケーション２０１の変更によって矛盾が発生し得る部分とそうでない部分とに分離する。
【００８６】
図１０は、第二の実施形態におけるプリントチケットの一例を示す図である。プリントチケットによって設定可能な各機能には、設定を変更することによって他の機能と矛盾が生じる可能性のある機能と、設定を変更しても他の機能と矛盾が生じることのない機能の二種類が存在する。
【００８７】
前者の例としては「用紙サイズ」があり、後者としては「部数」がある。また、「用紙サイズ」の設定は上述したように「両面印刷」と設定内容によっては矛盾が生じる可能性がある。一方、「部数」の設定は、印刷出力する枚数を設定する機能であるが、この機能はプリンタが持つ他のどの機能とも矛盾することなく設定が可能である。
【００８８】
そこで、プリントチケットは、他の機能と矛盾が生じる可能性のある機能群とそうでない機能群とに分離されたデータ構成で記述される。
【００８９】
次に、ステップＳ２０３において、コンフィグモジュール２０３はアプリケーション２０１の変更によって矛盾が発生し得る部分に電子署名を付与する。具体的には、ステップＳ２０２において分離した、他の機能と矛盾が生じる可能性のある機能群の記述を一つの文字列として捉え、ハッシュアルゴリズムを適用して署名値を得る。
【００９０】
得られた署名値は、＜ＤｉｇｅｓｔＶａｌｕｅ／＞要素の値としてプリントチケット内に記述して保存する。このとき、署名値を含む＜Ｓｉｇｎａｔｕｒｅ／＞要素は他の機能と矛盾が生じる可能性のある機能群の記述の直後に出現するようにしておく。このようにして、部分的に署名されたプリントチケットを得ることができる。
【００９１】
次に、ステップＳ２０４において、コンフィグモジュール２０３はステップＳ２０３で得られた部分的に署名されたプリントチケットをアプリケーション２０１に返却する。
【００９２】
一方、ステップＳ２０５において、アプリケーション２０１は生成したＸＰＳ内にプリントチケットを埋め込み、フィルタマネージャ２０２を通じてプリンタドライバ２０６のフィルタ２０４に送信する。
【００９３】
次に、ステップＳ２０６において、フィルタ２０４がＸＰＳを受信する。そして、ステップＳ２０７において、フィルタ２０４はＸＰＳ内に埋め込まれているプリントチケットを取り出す。
【００９４】
次に、ステップＳ２０８において、フィルタ２０４はアプリケーション２０１の変更によって矛盾が発生し得る部分を抽出する。プリントチケット内の＜Ｓｉｇｎａｔｕｒｅ＞署名位置より先に出現する部分が、他の機能と矛盾が生じる可能性のある機能群の記述であるので、フィルタ２０４は署名の位置を手掛かりに対象を抽出する。
【００９５】
そして、ステップＳ２０９において、フィルタ２０４はＰＤＬ生成のために矛盾が発生し得る機能を参照するか否かを判定する。具体的には、もしＰＤＬ生成に必要とする全ての設定項目が、ステップＳ２０８で抽出した部分とは異なる、他の機能と矛盾が生じる可能性のない機能群に含まれていれば、コンフリクト処理を呼び出す必要がない。よって、ステップＳ２１２へ処理を進める。また、そうでない場合はステップＳ２１０へ処理を進める。
【００９６】
次に、ステップＳ２１０において、フィルタ２０４はプリントチケット内にＸＭＬ電子署名が含まれているか否かを調べる。これ以降のステップＳ２１１〜Ｓ２１４での処理は、第一の実施形態で説明したステップＳ１０８〜Ｓ１１１での処理と同じであり、これらの説明は省略する。
【００９７】
第二の実施形態では、プリントチケットをアプリケーションの変更の影響を受ける部分とそうでない部分とに分離し、影響を受ける部分にのみ電子署名を付与することで、より高速な処理が可能となる。
【００９８】
具体的には、フィルタがアプリケーションの変更の影響を受けない部分の印刷設定のみ参照するような場合には、変更検知処理を省略できるため、更に高速な印刷処理が可能となる。
【００９９】
また、プリントチケット内の署名対象が減らされるため署名値の計算が速くなるため、フィルタがアプリケーションの変更の影響を受ける部分を参照する場合でも処理が高速化される。
【０１００】
［第三の実施形態］
次に、図面を参照しながら本発明に係る第三の実施形態を詳細に説明する。第一及び第二の実施形態では、プリンタドライバの一つのフィルタがＸＰＳ内のプリントチケットを処理していたが、第三の実施形態では、複数のフィルタを連結し、各フィルタがプリントチケットを処理するものである。また、プリントチケットは、矛盾が存在し得る機能同士を結び付けてグループ化し、グループ毎に電子署名が付与されたものとする。
【０１０１】
図１１は、第三の実施形態における機能のグループ化を説明するための概念図である。コンフィグモジュールが記憶する互いに設定不可能な機能のペアやリストは多機能な機種では数百個に及ぶが、そのペアやリストをまとめると、機能同士をいくつかのグループにグループ化することができる。
【０１０２】
例えば、「用紙サイズ」と「ステイプル」とは設定によって矛盾が生じる可能性があるので、設定不可能な機能のペアを形成している。また、「ステイプル」と「用紙タイプ」や、「用紙タイプ」と「給紙段」もペアを形成している。
【０１０３】
これらのペアを連結していくと、互いに矛盾が生じる可能性のある機能が集まった一つのグループを定義することができる。
【０１０４】
また、「カラーマッチング」と「色補正」や、「色補正」と「モノクロ印刷」も一つのグループを形成し、「Ｎｕｐ」と「ポスター印刷」なども一つのグループを形成する。
【０１０５】
このようにして、グループ化を繰り返すことにより、コンフィグモジュールが管理する全ての機能はいくつかのグループに分けることができる。
【０１０６】
ここでは簡便のため、全機能がＡ、Ｂ、Ｃの３つのグループに分けられたものとする。これらのグループが持つ特徴として、グループ化の規則から明白なように、あるグループの外にある機能とは矛盾が生じることはない。つまり、グループ同士は、印刷設定の矛盾という観点で互いに独立していると言える。
【０１０７】
図１２は、第三の実施形態における印刷システムの構成の一例を示す図である。図６に示す印刷システムとの相違点は、印刷処理を行うフィルタがフィルタ２０４ａ、２０５ａの２つになっていることである。
【０１０８】
ＸＰＳドライバでは、印刷処理の役割やフェーズ毎に処理モジュールを複数のフィルタに区切り、それらを連結してパイプライン構成にすることが可能である。尚、この例では、フィルタがフィルタ２０４ａ、２０４ｂの２つの場合を示したが、フィルタの数はこれに限定されるものではない。
【０１０９】
ここで、フィルタ２０４ａは、Ｎｕｐやポスターなどの印刷のレイアウトに関する処理を行うモジュールである。また、フィルタ２０４ｂは、カラー設定やレンダリング、及びＰＤＬ生成などの処理を行うモジュールである。
【０１１０】
フィルタマネージャ２０２を通じて送信されたＸＰＳは、まずフィルタ２０４ａに受信され、フィルタ２０４ａが処理を行い、処理されたＸＰＳを次のフィルタ２０４ｂに送信する。そして、フィルタ２０４ｂはフィルタ２０４ａで処理されたＸＰＳを処理した後、ＰＤＬに変換してプリンタ２０に送信する。
【０１１１】
尚、プリントチケットは、ＸＰＳの内部に埋め込まれているので、フィルタ２０４ａ、フィルタ２０４ｂが順番にそれぞれの処理時に参照する。
【０１１２】
また、フィルタ２０４ａ、２０４ｂは、プリントチケットに記述されている設定情報をそれぞれ全て参照するわけではない。参照する設定情報は、各フィルタがどのような印刷処理を行うことによって決まるが、複数のパイプラインフィルタ構成にすると、自身には必要のない、参照しない記述も多く含まれている。
【０１１３】
例えば、レイアウト処理を行うフィルタ２０４ａは「用紙サイズ」や「Ｎｕｐ」などの機能を参照するが、「モノクロ印刷」や「カラーマッチング」などは参照しない。一方、レンダリング処理をするフィルタ２０４ｂは「用紙サイズ」や「ステイプル」や「カラーマッチング」などは参照するが、「Ｎｕｐ」や「ポスター印刷」などは参照しない。
【０１１４】
このように、参照する機能と参照しない機能がそれぞれ属するグループを見てみると、フィルタ２０４ａはＡとＢのグループのみを参照しており、フィルタ２０４ｂはＢとＣのグループしか参照していない。
【０１１５】
そこで、第三の実施形態では、各フィルタがプリントチケット全体ではなく、いくつかのグループに属する機能のみを参照していることに着目する。
【０１１６】
図１３は、第三の実施形態におけるホストコンピュータでの処理を示すフローチャートである。まず、ステップＳ３０１において、アプリケーション２０１がコンフィグモジュール２０３に対してプリントチケットを要求する。次に、ステップＳ３０２において、コンフィグモジュール２０３は矛盾が存在する機能同士をグループ化する。このグループ化は、図１１を用いて説明したように、コンフィグモジュール２０３が管理する全機能を、互いに設定不可能なペアやリストの情報に従って連結していくことで実現される。
【０１１７】
次に、ステップＳ３０３において、コンフィグモジュール２０３は各機能の記述情報に各機能が属するグループのグループ属性を付加する。即ち、ステップＳ３０２で分けられた各グループに対して任意の順序でＡ、Ｂ、Ｃと名称を付け、更にそれらのグループ名称をプリントチケットの各機能に情報として記述する。
【０１１８】
図１４は、第三の実施形態において扱うプリントチケットの一例を示す図である。ここで、１４０１は各機能を表す＜Ｆｅａｔｕｒｅ／＞要素に、その機能が属するグループの情報をｇｒｏｕｐ属性としてｇｒｏｕｐ＝ａのように記述したものである。
【０１１９】
次に、ステップＳ３０４において、コンフィグモジュール２０３は機能の記述情報をグループごとに合成する。図１４において、１４０２は機能の記述情報をグループ毎に合成している様子を表している。具体的には、所属するグループ毎に＜Ｆｅａｔｕｒｅ／＞〜＜Ｏｐｔｉｏｎ／＞要素を抽出し、機能同士を合成して一つの文字列としている。
【０１２０】
次に、ステップＳ３０５において、コンフィグモジュール２０３は合成された各グループの記述情報にそれぞれ電子署名を付与する。ここでは、図１４に示す１４０２のように、ステップＳ３０４で合成された各グループの記述情報の文字列に対してハッシュアルゴリズムを適用して「ｂ／ＢＣＡＡａ…」といった署名値を求める。
【０１２１】
そして、図１４に示す１４０３のように、求めた各グループの署名値を、＜Ｓｉｇｎａｔｕｒｅ／＞要素のｇｒｏｕｐ属性として、どのグループの署名値であるか明示してプリントチケットに記述する。
【０１２２】
次に、ステップＳ３０６において、コンフィグモジュール２０３は署名されたプリントチケットをアプリケーション２０１に返却する。
【０１２３】
次に、ステップＳ３０７において、アプリケーション２０１は生成したＸＰＳ内に返却されたプリントチケットを埋め込み、フィルタマネージャ２０２を通じてフィルタ２０４ａに送信する。
【０１２４】
次に、ステップＳ３０８において、フィルタ２０４ａがそのＸＰＳを受信する。そして、ステップＳ３０９において、フィルタ２０４ａはＸＰＳ内に埋め込まれているプリントチケットを取り出す。
【０１２５】
次に、ステップＳ３１０において、フィルタ２０４ａはプリントチケット内にＸＭＬ電子署名が含まれているか否かを調べる。チェックの結果、署名があればステップＳ３１１へ処理を進め、署名がなければステップＳ３１８へ処理を進める。
【０１２６】
このステップＳ３１１では、フィルタ２０４ａは参照する全ての機能から一つの機能を取り出す。ここで参照する全ての機能とは、フィルタ２０４ａがＸＰＳを生成するために参照する「用紙サイズ」や「Ｎｕｐ」などの機能のことであり、一つの機能を取り出すとは、その中から一つの機能を選び出すことを指す。
【０１２７】
次に、ステップＳ３１２において、フィルタ２０４ａは参照する機能のグループ属性を取得する。具体的には、ステップＳ３１１で選び出した機能に該当する＜Ｆｅａｔｕｒｅ／＞〜＜Ｏｐｔｉｏｎ／＞要素をプリントチケット内から検索し、更に要素内のｇｒｏｕｐ属性を参照し、その機能が属するグループを取得する。
【０１２８】
次に、ステップＳ３１３において、フィルタ２０４ａはコンフリクト処理済みのグループであるか否かを判定する。尚、フィルタ２０４ａは、処理を実行中に各グループがコンフリクト処理済みであるか否かを記憶する記憶領域を備えているものとする。また、記憶領域の初期状態は「全てのグループがコンフリクト処理済みでない」となっており、後述するステップＳ３１９、Ｓ３２０で記憶領域は更新され、「いくつかのグループがコンフリクト処理済み」という状態に変化する。
【０１２９】
ステップＳ３１３では、ステップＳ３１２で取得したグループがコンフリクト処理済みであるか否かを記憶領域を参照して判定する。ここで、コンフリクト処理済みであれば、ステップＳ３１７へ処理を進め、そうでなければステップＳ３１４へ処理を進める。
【０１３０】
このステップＳ３１４では、フィルタ２０４ａは同じグループに属する機能を合成する。そして、ステップＳ３１２で取得したグループが、例えばグループＡであったならば、フィルタ２０４ａは同じグループＡに属する＜Ｆｅａｔｕｒｅ／＞〜＜Ｏｐｔｉｏｎ／＞要素をｇｒｏｕｐ属性から検索し、検索された要素を一つの文字列として合成する。
【０１３１】
次に、ステップＳ３１５において、フィルタ２０４ａは合成された記述情報の署名値を計算する。
【０１３２】
次に、ステップＳ３１６において、フィルタ２０４ａは署名を用いてプリントチケットが変更されているか否かを調べる。ここで変更検知に用いる署名値は、ステップＳ３１５で計算された署名値と、ステップＳ３１０でコンフィグモジュール２０３によって付与されたグループ毎の署名値のうち、現在対象としているグループのものである。
【０１３３】
比較の結果、署名値が一致すれば変更されておらず、一致しなければ変更されていることを意味する。変更されていなければステップＳ３１７へ処理を進め、変更されていればＳ３１８へ処理を進める。
【０１３４】
このステップＳ３１７では、フィルタ２０４ａはコンフリクト処理をスキップしてステップＳ３１９へ処理を進める。つまり、第三の実施形態では、各グループ毎に電子署名が付与されており、あるグループが変更されていないことがわかれば、そのグループはコンフィグモジュール２０３によって矛盾を解消されていることを意味するからである。
【０１３５】
次に、ステップＳ３１９において、フィルタ２０４ａは参照するグループをコンフリクト処理済みにする。即ち、コンフリクト処理済みであるか否かを記憶する記憶領域のうち、現在参照しているグループに関する状態を「コンフリクト処理済み」に変更する。
【０１３６】
これにより、ステップＳ３１１以降の繰り返し処理で、参照する機能の属するグループがコンフリクト処理済みであるとわかればステップＳ３１４からステップＳ３１６までの署名値計算に関わる処理を省略できる。
【０１３７】
一方、ステップＳ３１８では、フィルタ２０４ａはコンフィグモジュール２０３のコンフリクト処理を呼び出してプリントチケット全体の矛盾を全て解消させる。
【０１３８】
次に、ステップＳ３２０において、フィルタ２０４ａは全てのグループをコンフリクト処理済みにする。ステップＳ３２０は、ステップＳ３１９とは対照的に、上述のステップＳ３１８でプリントチケット全体のコンフリクトを行っているので、全機能の属するグループ、即ち全グループがコンフリクト処理済みという状態へ記憶領域を更新する。
【０１３９】
次に、ステップＳ３２１において、フィルタ２０４ａはプリントチケットの記述内容に従ってＸＰＳのデータを生成する。第三の実施形態では、機能毎にコンフリクト処理済みであるか否かを順に検証しながら処理していくので、この時点ではＸＰＳの一部が生成されているに過ぎない。
【０１４０】
次に、ステップＳ３２２において、フィルタ２０４ａは全ての機能を参照したか否かを判定する。全ての機能を参照し終わっていなければステップＳ３１１に戻り、上述の処理を繰り返し、参照し終わっていればステップＳ３２３へ処理を進める。
【０１４１】
最後に、ステップＳ３２３において、フィルタ２０４ａは生成されたＸＰＳを次のフィルタ２０４ｂに送信する。ＸＰＳを受信したフィルタ２０４ｂはフィルタ２０４ａと同じように、ステップＳ３１０からＳ３２３までの処理を繰り返し、最終的にＸＰＳでなく、ＰＤＬを生成し、ＯＳのシステムスプーラ２０５を通じてプリンタ２０に送信する。
【０１４２】
第三の実施形態では、ステップＳ３１１からＳ３２２においてフィルタが参照する機能が属するグループの電子署名が変更されているか否かを確認している。
【０１４３】
これにより、元々参照しない機能がアプリケーションによって変更されていたとしても、変更の影響をそのフィルタの印刷処理においては排除することができ、結果として高速な処理が可能となる。例えば、アプリケーション２０１に返却されたプリントチケットのうち、グループＣに属する機能である「モノクロ印刷」の設定がアプリケーション２０１によってフィルタ２０４ａに送信される前に書き換えられた場合を想定する。
【０１４４】
この場合、フィルタ２０４ａはグループＡとＢの機能しか参照せず、それぞれのグループの変更検知の結果、コンフリクト処理を呼び出さなくても良いので、「モノクロ印刷」の設定が変更された影響はフィルタ２０４ａから排除される。
【０１４５】
このように、設定不可能な機能同士から形成されるグループ毎に署名を付与することにより、アプリケーションによる印刷設定変更の影響を局所化することが可能となる。
【０１４６】
尚、ここでは、フィルタが２つある構成に関して述べたが、フィルタの数が更に増えることにより、機能のグループ化による効果はよりいっそう高まる。
【０１４７】
尚、本発明は複数の機器（例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【０１４８】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【０１４９】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１５０】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１５１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【０１５２】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１５３】
【図１】本発明に係る印刷システムの構成の一例を示す図である。
【図２】図１に示すホストコンピュータ１０の構成の一例を示す概略ブロック図である。
【図３】ホストコンピュータ１０における印刷のためのシステム構成を表すブロック図である。
【図４】アプリケーション自身が所望する印刷設定をプリントチケットに記述してプリンタドライバに送信するケースを表す図である。
【図５】アプリケーションがドライバＵＩからプリントチケットを取得した後に、書き換えてＸＰＳに入れてプリンタドライバに送信するケースを表す図である。
【図６】第一の実施形態における最適化された印刷のためのシステム構成の一例を表すブロック図である。
【図７】第一の実施形態におけるホストコンピュータでの処理を示すフローチャートである。
【図８】ＸＭＬ電子署名を付与したプリントチケットの一例を示す図である。
【図９】第二の実施形態におけるホストコンピュータでの処理を示すフローチャートである。
【図１０】第二の実施形態におけるプリントチケットの一例を示す図である。
【図１１】第三の実施形態における機能のグループ化を説明するための概念図である。
【図１２】第三の実施形態における印刷システムの構成の一例を示す図である。
【図１３】第三の実施形態におけるホストコンピュータでの処理を示すフローチャートである。
【図１４】第三の実施形態において扱うプリントチケットの一例を示す図である。
【符号の説明】
【０１５４】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  キーボード
１０５  外部記憶装置
１０６  ネットワークＩ／Ｆ
１０７  プリンタＩ／Ｆ
１０８  モニタＩ／Ｆ
１０９  システムバス
【図１】
2010113623.tif 000003
【図２】
2010113623.tif 000004
【図３】
2010113623.tif 000005
【図４】
2010113623.tif 000006
【図５】
2010113623.tif 000007
【図６】
2010113623.tif 000008
【図７】
2010113623.tif 000009
【図８】
2010113623.tif 000010
【図９】
2010113623.tif 000011
【図１０】
2010113623.tif 000012
【図１１】
2010113623.tif 000013
【図１２】
2010113623.tif 000014
【図１３】
2010113623.tif 000015
【図１４】
2010113623.tif 000016