附属書Dでは,IPP属性の処理について示す。
Printerオブジェクトに対してプリントジョブを提出する場合,IPPモデルはクライアントに文書データと共に操作及びJob Template 属性を供給できる。生成要求のこれらJob Template属性は,ジョブである文書のレンダリング,作成及び仕上げに影響する。類似の命令は印刷される文書に含まれてもよい。すなわち,印刷データ自体に埋め込まれることになる。さらにPrinterは,このPrinterによってオプションとしてサポートされるレンダリング及び仕上げ処理が何かを記述する属性の集合をもつ。柔軟で強力であるこのモデルは,ジョブ提出の際に,これらのクライアント供給の属性が次に述べる二つと競合する可能性をも挙げている。
次に,この二つの型の競合がどのようにIPPモデルで扱われるかを示す。
クライアントが要求している機能とPrinterオブジェクトがサポートしている機能とに競合がある場合,クライアントは,次の二つの競合対処方法のうち,いずれか一つを要求してよい。
a) | ジョブを指定したとおりに正確に処理できないので拒否する。 |
b) | Printerにジョブの処理をうまく行うために必要な変更をさせる。 |
a)の場合には,クライアントはPrinterオブジェクトに対して,"例外無しにジョブを指定したとおりに印刷する。それができない場合には,ジョブを印刷することにこだわらない。"と指示する。b)の場合には,クライアントはPrinterオブジェクトに対して,"指定したとおりに正確に処理を行うよりもむしろジョブが印刷されることを確かめること, つまり,クライアントの供給する属性が変更されたり,無視されることを必要とするとしても,ジョブが印刷されることを確認することが重要。"と指示する。
IPPモデルは,この状況に対して"ipp-attribute-fidelity"属性を取り入れることによって対処する。
生成要求の中で,"ipp-attribute-fidelity"は,オプションとしてクライアントによって供給される論理型操作属性とする。'真(true)'の値は,クライアントの供給するJob Template 属性及びその値に対して,完全な忠実性が要求されることを示す。クライアントはジョブが指定したとおりに正確に印刷されることを要求し,それができない場合,ジョブは不正に印刷を行うよりは拒否しなければならない。'偽(false))'の値は,ジョブを印刷するために適正な試みが受け付けられることを示す。Printerが,クライアントの供給するJob Template 属性又は値の一部サポートしていない場合,Printerはそれらを無視する,又はサポートしていない要求値に対して,それぞれサポートする値に置き換えなければならない。Printerは,その属性に関連するデフォルト値に置き換えるか,サポートしていない要求値に近いサポートしている幾つかの他の値を使用するかのどちらかを選択してよい。例えば,クライアントが'na-letter'の"media"値を供給する場合,Printerは,'封筒(envelope)'のデフォルト値よりは'iso-a4'に置き換えることを選択してよい。クライアントが"ipp-attribute-fidelity"属性を供給しない場合,Printerは'偽(false)'の値と仮定する。
各Printer実装は,"fidelity" 印刷の両方の型(つまり,クライアントが'真(true)'値又は'偽(false)'値を供給するかどうか。)をサポートしなければならない。
クライアントは, 何がサポートされているかいないかを正確に確認するために, いつもPrinterに問い合わせることできるので, "ipp-attribute-fidelity"の'偽(false)'の設定は次の場合に役に立つ。
a) | エンドユーザはサポートされていないかもしれない属性を要求するのにコマンド行インタフェースを使用する。 |
b) | GUI文脈の中で,エンドユーザが,ジョブが他のプリンタに移されてしまうと予期したり,何も印刷されないよりはある程度の結果を望む。 |
c) | エンドユーザは単に,何も無いよりは何か適切な結果を望む。 |
IPP Job Template属性の値と文書データの相当する命令とが競合している場合,IPP属性の値は,文書の命令より優先することが望ましい。前もって,フォーマットされた文書データのファイルがIPP Printerに送信される場合を考える。この場合,クライアントがジョブ提出時に何か属性を供給すれば,クライアントはそれらの属性が組込みの命令を優先することが望ましい。前もって,フォーマットされた文書に'iso-a4' メディアをロードするコマンドが組み込まれている場合を考える。しかし,文書は,'na-letter'メディアをロードしたプリンタへのアクセスしただけのエンドユーザに渡される。そのエンドユーザは,たいていの場合,その文書を"メディア(media)" Job Template属性が'na-letter'で設定されているIPP Printerに対して提出したがる。ジョブ提出属性は,埋込みPDL命令より優先されることが望ましい。しかし,文書データインタプリタを供給する会社が,埋込みのジョブ生成命令より外部のIPP属性を優先させる方法を可能にするまで,Printerは,IPP属性が埋め込み命令より優先するというセマンティクスをサポートすることはできないかもしれない。
IPPモデルはこの状況に対して,PDLデータストリームに埋め込まれた命令を優先するためにPrinterオブジェクトの機能を記述する"pdl-override-supported" 属性を引用することによって対処する。"pdl-override-supported" 属性の値は,このIPP/1.1 規定の適用範囲外の方法によって設定される。
この必す(須)のPrinter属性は,次の値をとる。
ジョブ処理時に,'attempted'の値をサポートする実装は,幾つかの異った動作の一つを行うかもしれない。
a) | IPP属性値によって示す特徴を実現するために, 出力デバイス特有のコマンドシーケンスを生成する。 |
b) | 文書データ自体を解析し,競合する埋込み命令を,IPP属性値の意図と一致する新しい埋込み指示と置き換える。 |
c) | 外部から供給される属性が埋込み命令より優先されることをPrinterに示し,外部からIPP属性を文書データインタプリタに対して渡す。 |
d) | IPP属性が埋込み文書データ命令に対して優先するというセマンティクスを可能にする何らかの他の動作。 |
'attempted'には何の保証もないので,任意のPrinterオブジェクトは,IPPオブジェクトが,文書データに埋め込まれた命令より高い優先を確実にしようという試みを十分に満足しないかもしれないが,それでも,適合性のある実装であることには変わりない。
ジョブ処理時に,'not-attempted'の値をサポートする実装は, 次の動作のどれか一つを行うかもしれない。
a) | クライアントが供給したPDL属性に相当するPDL命令で文書データを単に前付けし,文書データが,同じPDL命令をもつ場合には,文書データは,Printerオブジェクトが前付けしたものを優先させる。すなわち,この実装は,Printerオブジェクトデフォルトに対してクライアントが供給したIPP属性と同じ実装のセマンティクスを使用している。 |
b) | 文書データを解析し,競合する埋込み命令を,一致はしていないが,IPP属性値のセマンティクス的な意図に近似する新しい埋込み命令と置き換える。 |
備考 "ipp-attribute-fidelity" 属性は,他のサポートされていないJob Template属性を受け取るか拒否するかのPrinterの能力に適用する。すなわち,"ipp-attribute-fidelity"が'真(true)'に設定されている場合,Jobは,クライアントが供給するJob Template 属性及び値がPrinterによってサポートされている場合だけ受け入れられる。これらの属性は,実際,文書データが埋込み命令を含んでいるとき,Jobの処理に影響を与えるかどうかは,IPP属性のセマンティクスで文書データに埋め込まれた命令を優先するPrinterの能力に依存する。文書データ属性が優先させられる場合("pdl-override-supported"が'attempted'の設定),Printerは,Jobの処理中,IPP属性の使用を試みる。文書データ属性が優先させられない場合("pdl-override-supported"が'not-attempted'の設定),Printerは,Jobの処理中,IPP属性にて埋込み文書データ命令を優先しようする試みをしない。したがって,IPP属性は,対応する命令が文書データに埋め込まれているとき,Jobの処理及び出力に影響を与えることに失敗するかもしれない。
Printerオブジェクトは,そのジョブに関連する文書データの処理中,幾つかのJobオブジェクトのJob Template 属性を使用する。これらは,"orientation-requested","number-up","sides","media","copies"などを含む。Jobオブジェクトの各文書処理は,次の手続きに従わなければならない。これらの手続きは,いつ,どのようにして属性が文書データを処理するのに使用されるかを識別することだけを目的とし, 同じ効果を達成する別の手続きがこの規定を実装するために使用できる。
a) |
クライアントが供給する"document-format"属性又は何らかの文書フォーマット検出アルゴリズム("document-format"の値が十分に指定されていない場合)を使用して,文書データが,印刷用に,既にフォーマット済みかどうかを確認する。文書データがフォーマットされている場合には,b)に進む。そうでない場合には,文書データはフォーマットされなければならない。フォーマット検出アルゴリズムは実装によって定義され,この規定には指定されていない。文書データのフォーマットは,フォーマット済み印刷データが印刷ストリームページに,どのように配置されるかを決定するために,"orientation-requested"属性を使用する。詳細は,4.2.10参照。 |
b) |
文書データは,既知のメディアタイプでの印刷ストリームの形をとる。"page-ranges"属性は,この4.2.7で規定する処理される印刷ストリームでのページの部分シーケンス及び画像を選択するのに使用される。 |
c) |
この手続きへの入力は印刷ストリームぺージのシーケンスである。この手続きは,"number-up"属性によって制御される。"number-up"値がNの場合,印刷ストリームページの処理中,各Nの印刷ストリームページは,この4.2.9で規定する一つの刷りを作成するために配置される。与えられた文書が,Nより多くの印刷ストリームページをもたない場合,刷りの完成はこの規定の4.2.4で記述する"multiple-document-handling"属性によって制御される。この属性値が'single-document'又は'single-document-new-sheet'である場合,後続する文書からの文書データの印刷ストリームページは,刷りを完成させるために使用される。 刷り上での印刷ストリームページのサイズ(縮尺),配置(解釈)及び回転は,実装によって定義される。 備考 この処理中,印刷ストリームページは,刷り中に配置するのに適切な形にレンダリングされてもよい。このレンダリングは,この規定4.2.12及び4.2.13で規定する"printer-resolution"及び"print-quality"属性値によってて制御される。N=1の場合,刷りは, 印刷ストリームページとほとんど同じである。違いはサイズ,配置,印刷ストリームページの回転及び/又は実装によって付け加えられるページへのフレームなどの何らかの装飾だけとする。 |
d) |
刷りの集まりは,順番に,メディアシートの端に配置される。この配置は,この規定4.2.8で記述する"sides"属性,印刷ストリームページの方向によって制御される。印刷ストリームページの方向は,刷りの方向に影響する。例えば,"number-up"=2の場合,一般的に,二つの縦方向の印刷ストリームページが一つの横方向の刷りになる。 備考 メディアシートへの刷りの配置は,この規定4.2.4で記述する"multiple-document-handling"属性によっても制御される。 |
e) |
"copies"及び"multiple-document-handling"属性は,各メディアインスタンスのコピーが何部,どの順序で作成されるかを決定するために使用される。詳細は,4.2.5及び4.2.4を参照。 |
f) |
正しい数だけコピーが作成されるとき,メディアインスタンスは,この規定4.2.6の"finishings"属性の値に従い終了される。 備考 仕上げ操作は,コピー(特に,ページ揃えしないコピー)の仕上げ操作を実行するために手動の介入を要求することがある。この規定では,幾つかの又はすべての処理ステップが,自動的に又は手動でPrinterオブジェクトの判断で実行されることを認めている。 |