模块  java.desktop
软件包  javax.print.attribute

Class ResolutionSyntax

  • 实现的所有接口
    SerializableCloneable
    已知直接子类:
    PrinterResolution

    public abstract class ResolutionSyntax
    extends Object
    implements Serializable, Cloneable
    ResolutionSyntax是一个抽象基类,提供表示打印机分辨率的所有属性的通用实现。

    分辨率属性的值包含两个项目,即交叉进纸方向分辨率和进纸方向分辨率。 可以通过提供两个值并指示测量值的单位来构造分辨率属性。 提供了返回分辨率属性值的方法,指示要返回值的单位。 两个最常见的分辨率单位是每英寸点数(dpi)和每厘米点数(dpcm),并且提供输出常数DPIDPCM用于指示那些单位。

    构造后,分辨率属性的值是不可变的。

    设计

    分辨率属性的交叉进给方向分辨率和进给方向分辨率值使用每100英寸(dphi)的点数单位内部存储。 将值存储在dphi而不是公制单位允许在dpi和dphi之间以及dpcm和dphi之间进行精确的整数算术转换:1 dpi = 100 dphi,1 dpcm = 254 dphi。 因此,可以将值存储到任一单元中的分辨率属性中并从中检索回来,而不会损失精度。 如果使用浮点表示,则无法保证这一点。 但是,如果在一个单元中创建分辨率属性的值并以不同的单位检索,则通常会发生舍入误差。 例如,600 dpi将四舍五入为236 dpcm,而真实值(至五位数)为236.22 dpcm。

    以dphi的公共单位内部存储值可以比较两个分辨率属性,而不考虑它们的创建单位; 例如,300 dpcm将比较等于762 dpi,因为它们都存储为76200 dphi。 特别地,查找服务可以基于其序列化表示的相等性来匹配解析属性,而不管它们被创建的单位。 同样,使用整数进行内部存储允许进行精确的相等比较,如果使用浮点表示则无法保证。

    导出常量DPI实际上是将dpi中的值乘以获得dphi中的值的转换因子。 同样,导出常量DPCM是转换因子,通过该转换因子将dpcm中的值乘以获得dphi中的值。 客户可以通过提供自己的转换因子,以dpi或dpcm以外的单位指定分辨率值。 但是,由于选择了dphi的内部单元时只考虑了dpi和dpcm的外部单元,因此不能保证客户单元的转换因子是精确整数。 如果转换因子不是精确整数,则客户端单元中的分辨率值将不会精确存储。

    另请参见:
    Serialized Form
    • 字段汇总

      字段  
      变量和类型 字段 描述
      static int DPCM
      表示每厘米点数(dpcm)的值。
      static int DPI
      表示每英寸点数(dpi)的值。
    • 构造方法摘要

      构造方法  
      构造器 描述
      ResolutionSyntax​(int crossFeedResolution, int feedResolution, int units)
      从给定项构造新的分辨率属性。
    • 字段详细信息

      • DPI

        public static final int DPI
        表示每英寸点数(dpi)的值。 它实际上是将dpi乘以产生dphi(100)的转换因子。
        另请参见:
        常数字段值
      • DPCM

        public static final int DPCM
        表示每厘米点数(dpcm)的值。 它实际上是将dpcm乘以dphi(254)的转换因子。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • ResolutionSyntax

        public ResolutionSyntax​(int crossFeedResolution,
                                int feedResolution,
                                int units)
        从给定项构造新的分辨率属性。
        参数
        crossFeedResolution - 交叉进给方向分辨率
        feedResolution - 进纸方向分辨率
        units - 单位转换因子,例如 DPIDPCM
        异常
        IllegalArgumentException - 如果 crossFeedResolution < 1feedResolution < 1units < 1
    • 方法详细信息

      • getResolution

        public int[] getResolution​(int units)
        以给定单位获取此分辨率属性的分辨率值。 值将四舍五入为最接近的整数。
        参数
        units - 单位转换因子,例如 DPIDPCM
        结果
        一个双元素阵列,在索引0处的交叉进给方向分辨率和在索引1处的进给方向分辨率
        异常
        IllegalArgumentException - 如果 units < 1
      • getCrossFeedResolution

        public int getCrossFeedResolution​(int units)
        以给定单位返回此分辨率属性的交叉进纸方向分辨率。 该值四舍五入为最接近的整数。
        参数
        units - 单位转换因子,例如 DPIDPCM
        结果
        交叉进给方向分辨率
        异常
        IllegalArgumentException - 如果 units < 1
      • getFeedResolution

        public int getFeedResolution​(int units)
        以给定单位返回此分辨率属性的Feed方向分辨率。 该值四舍五入为最接近的整数。
        参数
        units - 单位转换因子,例如 DPIDPCM
        结果
        进给方向分辨率
        异常
        IllegalArgumentException - 如果 units < 1
      • toString

        public String toString​(int units,
                               String unitsName)
        以给定单位返回此分辨率属性的字符串版本。 该字符串采用"CxF U" ,其中C是交叉进给方向分辨率, F是进给方向分辨率, U是单位名称。 值将四舍五入为最接近的整数。
        参数
        units - 单位转换因子,例如 CODE>DPIDPCM
        unitsName - 单位名称字符串,例如"dpi""dpcm" 如果是null ,则不会在结果中附加单位名称。
        结果
        此分辨率属性的字符串版本
        异常
        IllegalArgumentException - 如果 units < 1
      • lessThanOrEquals

        public boolean lessThanOrEquals​(ResolutionSyntax other)
        确定此分辨率属性的值是否小于或等于给定分辨率属性的值。 如果满足以下所有条件,则为true:
        • 此属性的交叉进纸方向分辨率小于或等于other属性的交叉进纸方向分辨率。
        • 此属性的Feed方向分辨率小于或等于other属性的Feed方向分辨率。
        参数
        other - 要与之比较的分辨率属性
        结果
        true此分辨率属性是否小于或等于 other分辨率属性,否则为 false
        异常
        NullPointerException - 如果 othernull
      • equals

        public boolean equals​(Object object)
        返回此分辨率属性是否等效于传入的对象。 为了等效,所有以下条件必须为真:
        1. object不是null
        2. object是类ResolutionSyntax的实例。
        3. 此属性的交叉进给方向分辨率等于object的交叉进给方向分辨率。
        4. 此属性的进纸方向分辨率等于object的进纸方向分辨率。
        重写:
        equals在类 Object
        参数
        object - Object来比较
        结果
        true如果 object等效于此分辨率属性,否则为 false
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        返回此分辨率属性的字符串版本。 该字符串采用"CxF dphi" ,其中C是交叉进给方向分辨率, F是进给方向分辨率。 这些值以dphi的内部单位报告。
        重写:
        toString在类 Object
        结果
        对象的字符串表示形式。
      • getCrossFeedResolutionDphi

        protected int getCrossFeedResolutionDphi()
        以dphi为单位返回此分辨率属性的交叉进给方向分辨率。 (用于子类。)
        结果
        交叉进给方向分辨率
      • getFeedResolutionDphi

        protected int getFeedResolutionDphi()
        以dphi为单位返回此分辨率属性的进纸方向分辨率。 (用于子类。)
        结果
        进给方向分辨率