附属書D IPP属性の処理

附属書Dでは,IPP属性の処理について示す。

Printerオブジェクトに対してプリントジョブを提出する場合,IPPモデルはクライア ントに文書データと共に操作及びJob Template 属性を供給できる。生成要求の これらJob Template属性は,ジョブである文書のレンダリング,作成及び仕上げに影響 する。類似の命令は印刷される文書に含まれてもよい。すなわち,印刷データ 自体に埋め込まれることになる。さらにPrinterは,このPrinterによってオプションとしてサポートされるレンダリング及び仕上げ処理が何かを記述する属性の集合をもつ。 柔軟で強力であるこのモデルは,ジョブ提出の際に,これらのクライアント供給の属性が 次に述べる二つと競合する可能性をも挙げている。

次に,この二つの型の競合がどのようにIPPモデルで扱われるかを示す。

D.1 忠実度

クライアントが要求している機能と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) エンドユーザは単に,何も無いよりは何か適切な結果を望む。

D.2 ページ記述言語(Page Description Language, PDL)優先

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'
この値は,Printerオブジェクトが文書データの埋込み命令よりIPP属 性値を優先させようと試みたことを示すが,必ずしも保証の限りではない。
'not-attempted'
この値は,Printerオブジェクトが文書データの埋込み命令よりIPP 属性値を優先させようと試みていないことを示す。

ジョブ処理時に,'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の処理及び出力に影響を与えることに失敗するか もしれない。

D.3 文書処理中のJob Template属性の使用

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オブジェクトの判断で実行されることを認めている。