javax.print.attribute

接口
异常
java.lang.Object
  继承者 javax.print.attribute.ResolutionSyntax
所有已实现的接口:
Serializable, Cloneable
直接已知子类:
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 除外)的分辨率值。但是,由于只注意支持外部单位 dpi 和 dpcm 而选择了内部单位 dphi,所以不能保证对客户机单位的转换因子将是一个准确的整数。如果转换因子不是一个准确的整数,则使用客户机单位的分辨率值不能精确地存储。

另请参见:
序列化表格

字段摘要
static int DPCM
          指示每厘米点数为单位 (dpcm) 的值。
static int DPI
          指示每英寸点数为单位 (dpi) 的值。
 
构造方法摘要
ResolutionSyntax(int crossFeedResolution, int feedResolution, int units)
          根据给定项构造一个新的分辨率属性。
 
方法摘要
 boolean equals(Object object)
          返回此分辨率属性是否等效于传入的对象。
 int getCrossFeedResolution(int units)
          返回给定单位的此分辨率属性的反向进纸分辨率。
protected  int getCrossFeedResolutionDphi()
          返回以 dphi 为单位的此分辨率属性的反向进纸分辨率。
 int getFeedResolution(int units)
          返回给定单位的此分辨率属性的进纸分辨率。
protected  int getFeedResolutionDphi()
          返回以 dphi 为单位的此分辨率属性的进纸分辨率。
 int[] getResolution(int units)
          获取给定单位的此分辨率属性的分辨率值。
 int hashCode()
          返回此分辨率属性的哈希码值。
 boolean lessThanOrEquals(ResolutionSyntax other)
          确定此分辨率属性的值是否小于或等于给定分辨率属性的值。
 String toString()
          返回此分辨率属性的字符串版本。
 String toString(int units, String unitsName)
          返回给定单位的此分辨率属性的字符串版本。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

字段详细信息

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 < 1 或 feedResolution < 1 或 units < 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)
返回给定单位的此分辨率属性的进纸分辨率。将该值舍入为最接近的整数。

参数:
units - 单位转换因子,即 DPIDPCM
返回:
进纸分辨率。
抛出:
IllegalArgumentException - (未经检查的异常)如果 units < 1,则抛出该异常。

toString

public String toString(int units,
                       String unitsName)
返回给定单位的此分辨率属性的字符串版本。该字符串采用的形式是 "CxF U",其中 C 为反向进纸分辨率, F 为进纸分辨率, U 为单位名称。将该值舍入为最接近的整数。

参数:
units - 单位转换因子,即 DPIDPCM
unitsName - 单位名称字符串,即 "dpi""dpcm"。如果为 null,则没有任何单位名称附加到该结果。
返回:
此分辨率属性的字符串版本。
抛出:
IllegalArgumentException - (未经检查的异常)如果 units < 1,则抛出该异常。

lessThanOrEquals

public boolean lessThanOrEquals(ResolutionSyntax other)
确定此分辨率属性的值是否小于或等于给定分辨率属性的值。如果以下条件都为 true,则为 true:
  • 此属性的反向进纸分辨率小于或等于 other 属性的反向进纸分辨率。
  • 此属性的进纸分辨率小于或等于 other 属性的进纸分辨率。

参数:
other - 与之比较的分辨率属性。
返回:
如果此分辨率属性小于或等于 other 分辨率属性,则返回 True,否则返回 false。
抛出:
NullPointerException - (未经检查的异常)如果 other 为 null,则抛出该异常。

equals

public boolean equals(Object object)
返回此分辨率属性是否等效于传入的对象。若要等效,以下所有条件都必须为 true:
  1. object 不为 null。
  2. object 是类 ResolutionSyntax 的一个实例。
  3. 此属性的反向进纸分辨率等于 object 的反向进纸分辨率。
  4. 此属性的进纸分辨率等于 object 的进纸分辨率。

覆盖:
Object 中的 equals
参数:
object - 要比较的对象。
返回:
如果 object 等效于此分辨率属性,则返回 True,否则返回 false。
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此分辨率属性的哈希码值。

覆盖:
Object 中的 hashCode
返回:
此对象的一个哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
返回此分辨率属性的字符串版本。此字符串采用的形式是 "CxF dphi",其中 C 为反向进纸分辨率, F 为进纸分辨率。使用内部单位 dphi 报告该值。

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。

getCrossFeedResolutionDphi

protected int getCrossFeedResolutionDphi()
返回以 dphi 为单位的此分辨率属性的反向进纸分辨率。(在子类中使用。)

返回:
反向进纸分辨率。

getFeedResolutionDphi

protected int getFeedResolutionDphi()
返回以 dphi 为单位的此分辨率属性的进纸分辨率。(在子类中使用。)

返回:
进纸分辨率。