属性表示打印服务可以提供的打印功能。对于每种属性,打印服务要么支持该属性,要么不支持该属性。对于受支持属性的每个可能值,打印服务要么支持该值,要么不支持该值。
简介
包
javax.print.attribute.standard 包括特定打印属性的类。父包
javax.print.attribute 提供了描述 Java Print Service 属性的类型以及如何分类这些属性的类和接口。
属性表示打印服务可以提供的打印功能。对于每种属性,打印服务要么支持该属性,要么不支持该属性。对于受支持属性的每个可能值,打印服务要么支持该值,要么不支持该值。
API 需要每种打印服务都支持某些属性;其他属性是可选的,并且服务可以选择是否支持它们。每种属性都有一组它可接受的值。API 需要每种打印服务都支持某些属性的某些值;其他属性值是可选的,并且服务可以选择是否支持它们。这些支持要求记录在每个属性类的文档中。
包
javax.print.attribute.standard 包含广泛应用于打印域的标准打印属性和标准打印属性值。除了标准打印属性,打印服务供应商还可以提供特定于供应商的新打印属性。供应商还可以提供标准打印属性的特定于供应商的扩展(
子类) -- 例如,为现有的标准属性提供其他特定于供应商的值。当然,如果某个供应商希望客户端能够使用任何添加或扩展的属性,则该供应商必须公布新的属性类。
许多标准属性类都扩展了
javax.print.attribute 包的某个抽象语法类。这些抽象语法类分别表示不同的类型。例如,EnumSyntax 类表示类型安全的枚举。抽象语法类为属性值提供了包装器。
打印客户端应用程序一般不需要使用包
javax.print.attribute.standard 中的全部打印属性类,只需要与该应用程序相关的那些打印属性类。
包 javax.print.attribute.standard 中的属性类基于发表于 2000 年 9 月的 RFC 文档《RFC 2911 Internet Printing Protocol/1.1:Model and Semantics》中定义的 Internet Printing Protocol (IPP) 属性。有关更多信息,请参阅《RFC 2911》。各种属性类的描述性文本大部分摘自于上述文档。感谢上述作者对 API 所做的贡献。
属性组织
有以下五种打印属性:doc 属性、print request 属性、print job 属性、print service 属性和 supported-values 属性。
Doc 属性
Doc 属性指定了每个 doc 的特征和应用于每个 doc 的打印作业设置。doc 属性类实现了接口 DocAttribute。doc 属性可以出现在 DocAttributeSet 中。
Print Request 属性
Print request 属性指定了将应用于整个打印作业和打印作业中所有 doc 的设置。print request 属性类实现了接口 PrintRequestAttribute。print request 属性可以出现在 PrintRequestAttributeSet 中。
有些属性是 doc 属性,但却不是 print request 属性,并且只能在 doc 级指定。有些属性是 print request 属性,但却不是 doc 属性,并且只能在 Print Request 级指定。有些属性既是 doc 属性又是 print request 属性,并且可以在 doc 级或 Print Request 级指定。
当在 doc 级指定时,属性仅应用于该级中的一个 doc。当在 Print Request 级指定时,属性则应用于整个作业,其中包括该作业中的所有 doc。但是,在 doc 级指定的属性会覆盖在 Print Request 级指定的同一类别中的属性。
Print Job 属性
Print job 属性报告“打印作业”的状态。print job 属性类实现了接口 PrintJobAttribute。print job 属性可以出现在 PrintJobAttributeSet 中。
有些属性既是 print request 属性又是 print job 属性;
客户端可以将这些属性包括在 Print Request 中以指定确定出现的 PrintJob 的特征,并且这些属性还可以出现在该 PrintJob 的属性集中。有些属性是 print job 属性,但却不是 print request 属性;打印服务本身可以将这些属性添加到 PrintJob 的属性集中。
Print Service 属性
Print service 属性报告打印服务的状态。print service 属性类实现了接口 PrintServiceAttribute。print service 属性可以出现在 PrintServiceAttributeSet 中。
Supported-Values 属性
supported-value 属性指示打印服务支持的另一个属性的合法值。supported-values 属性类实现了接口 SupportedValuesAttribute。但是 supported-values 属性从不会出现在属性集中,所以它们没有受限制的 AttributeSet
子接口。
属性表
属性类 Doc
属性 Print
Request
属性 Print
Job
属性 Print
Service
属性 SupportedValuesAttribute
Compression X
DocumentName X
Chromaticity X X X
Copies X X CopiesSupported
Finishings X X X
JobHoldUntil X X
JobImpressions X X JobImpressionsSupported
JobKOctets X X JobKOctetsSupported
JobMediaSheets X X JobMediaSheetsSupported
JobName X X
JobPriority X X JobPrioritySupported
JobSheets X X
Media X X X
MediaSize
MultipleDocumentHandling X X
NumberUp X X X NumberUpSupported
OrientationRequested X X X
PageRanges X X X
PresentationDirection X X X
PrinterResolution X X X
PrintQuality X X X
RequestingUserName X X
SheetCollate X X X
Sides X X X
DateTimeAtCompleted X
DateTimeAtCreation X
DateTimeAtProcessing X
JobImpressionsCompleted X
JobKOctetsProcessed X
JobMediaSheetsCompleted X
JobMessageFromOperator X
JobOriginatingUserName X
JobState X
JobStateReasons
包含零或更多 -- X
-- JobStateReason
NumberOfDocuments X
NumberOfInterveningJobs X
OutputDeviceAssigned X
ColorSupported X
PagesPerMinute X
PagesPerMinuteColor X
PDLOverrideSupported X
PrinterIsAcceptingJobs X
PrinterInfo X
PrinterLocation X
PrinterMessageFromOperator X
PrinterMakeAndModel X
PrinterMoreInfo X
PrinterMoreInfoManufacturer X
PrinterName X
PrinterState X
PrinterStateReasons
包含零或更多 -- X
-- PrinterStateReason
QueuedJobCount X
ReferenceUriSchemesSupported
请注意:在 javax.print API 中,只有方法中显式地记录 null 引用具有有意义的解释时,方法的 null
引用参数才是正确的。否则使用 null
引用参数是错误的编码,并且可能会导致立即或稍后出现运行时异常。IllegalArgumentException 和 NullPointerException 是此类情形下典型和可接受的运行时异常示例。
从以下版本开始:
1.4