モジュール java.desktop
パッケージ javax.print.attribute

クラスResolutionSyntax

java.lang.Object
javax.print.attribute.ResolutionSyntax
すべての実装されたインタフェース:
Serializable, Cloneable
直系の既知のサブクラス:
PrinterResolution

public abstract class ResolutionSyntax extends Object implements Serializable, Cloneable
クラスResolutionSyntaxは、プリンタの解像度を示すすべての属性の共通実装を提供する抽象基本クラスです。

解像度属性の値は、前後送り方向の解像度と送り方向の解像度の2項目から構成されます。 解像度属性は、この2つの値を提供し、値を測る単位を指定することにより構築されます。 メソッドは、解像度属性の値を返すように提供され、値が返される単位が示されます。 もっとも一般的な2種類の解像度の単位は、1インチあたりのドット数(dpi)と1センチ当たりのドット数(dpcm)で、エクスポートされる定数DPIDPCMはこれらの単位を示すために提供されます。

解像度属性は、いったん構築されると変更できません。

設計

解像度属性の前後送り方向の解像度と送り方向の解像度の値は、100インチ当たりドット数(dphi)単位を使用して内部に格納されます。 いわゆるメートル法単位ではなくdphi単位の値を格納することにより、1 dpi = 100 dphi、1 dpcm = 254 dphiなどdpiとdphiとの間、およびdpcmとdphiとの間の整数型の正確な算術変換が可能になります。 この結果、値がどの単位でも正確さを失うことなく解像度属性に格納され、取り出せます。 浮動小数点の表現が使用される場合、これは保証されません。 ただし、解像度属性の値がある単位で作成され、別の単位で取り出された場合、通常四捨五入の誤差が発生します。たとえば、600 dpiは5桁の真の値は236.22 dpcmなのに236 dpcmに四捨五入されます。

dphiを共通の単位として値を内部に格納することにより、作成された単位にかかわらず2つの解像度属性が比較できます。たとえば、両方とも76200 dphiとして格納されているため、300 dpcmは762 dpiと等しいことが比較によりわかります。 特に、検索サービスは、作成された単位にかかわらず、直列化表現が等しいかどうかに基づいて解像度属性を照合できます。 このように、内部ストレージに整数型を使用することにより、正確な同等性の比較が可能になります。ただし、これは浮動小数点表現が使用される場合は保証されません。

エクスポートされる定数DPIは、実際にdpi単位の値に乗算して、dphi単位の値を取得する変換係数です。 同様に、エクスポートされる定数DPCMは、dpcm単位の値に乗算してdphi単位の値を取得する変換係数です。 クライアントは、クライアント自身の変換係数を提供してdpiまたはdpcm以外の単位で解像度属性を指定できます。 ただし、内部単位dphiは、外部単位dpiとdpcmだけを考慮してサポートするよう選択されているので、クライアントの単位の変換係数が正確な整数型となるかどうか保証されません。 変換係数が正確な整数型ではない場合、クライアントの単位の解像度の値は正確に格納されません。

関連項目: