模块  java.desktop

Package javax.print.attribute.standard

javax.print.attribute.standard包含特定打印属性的类。 父包javax.print.attribute提供了类和接口,用于描述Java Print Service属性的类型以及如何将它们收集到属性集中。

属性表示打印服务可以提供的打印功能。 对于每个属性,打印服务要么支持该属性,要么不支持该属性。 对于受支持属性的每个可能值,打印服务要么支持该值,要么不支持该值。

API要求每个打印服务都支持某些属性; 其他属性是可选的,服务可以选择是否支持它们。 每个属性都有一组它接受的值。 API要求每个打印服务都支持某些属性的某些值; 其他属性值是可选的,服务可以选择是否支持它们。 这些支持要求记录在每个属性类的文档中。

javax.print.attribute.standard包含在打印域中广泛使用的标准打印属性和标准打印属性值。 除标准打印属性外,打印服务供应商还可以提供新的特定于供应商的打印属性。 供应商还可以提供标准打印属性的特定于供应商的扩展(子类) - 例如,为现有标准属性提供其他特定于供应商的值。 当然,如果供应商希望客户端能够使用任何添加或扩展的属性,则供应商必须发布新的属性类。

许多标准属性类扩展了javax.print.attribute包的一个抽象语法类。 这些抽象语法类各自表示不同的类型。 例如, EnumSyntax类表示类型安全的枚举。 抽象语法类为属性值提供包装器。

如果属性类扩展EnumSyntax ,并且属性的值是IPP兼容值,则属性的toString方法返回属性值的IPP字符串表示形式,例如JobState属性的“processing-stopped”。 但是,由于EnumSyntax类是可扩展的,因此供应商可以定义自己的属性值。 如果属性使用EnumSyntax类并且设置为这些供应商定义的值之一,则toString方法将不返回该值的IPP字符串表示形式。

打印客户端应用程序通常不需要使用包javax.print.attribute.standard中的所有打印属性类,只需要使用与应用程序相关的属性类。

javax.print.attribute.standard中的属性类基于Internet RFC文档RFC 2911 Internet Printing Protocol / 1.1:Model and Semantics 2000年9 月中定义的Internet打印协议(IPP)属性。有关详细信息,请参阅RFC 2911 每个属性类的描述性文本主要取自上述文档。 感谢上述作者对API的贡献。

属性组织

打印属性有五种:doc属性,打印请求属性,打印作业属性,打印服务属性和supported-values属性。

Doc属性

Doc属性指定单个doc的特征以及要应用于单个doc的打印作业设置。 doc属性类实现接口DocAttribute doc属性可以显示在DocAttributeSet中

打印请求属性

打印请求属性指定要应用于整个打印作业和打印作业中所有文档的设置。 打印请求属性类实现接口PrintRequestAttribute 打印请求属性可以显示在PrintRequestAttributeSet中

某些属性是doc属性,但不是打印请求属性,只能在doc级别指定。 某些属性是打印请求属性,但不是doc属性,只能在“打印请求”级别指定。 某些属性既是doc属性又是print请求属性,可以在doc级别或Print Request级别指定。

在文档级别指定时,属性仅适用于该文档。 在“打印请求”级别指定时,属性将应用于整个作业,包括作业中的所有文档。 但是,在doc级别指定的属性会覆盖在Print Request级别指定的同一类别中的属性。

打印作业属性

打印作业属性报告打印作业的状态。 打印作业属性类实现接口PrintJobAttribute 打印作业属性可以显示在PrintJobAttributeSet中

一些属性是打印请求属性和打印作业属性; 客户端可以在打印请求中包含这些属性,以指定随后的打印作业的特征,然后这些属性也会出现在打印作业的属性集中。 某些属性是打印作业属性,但不是打印请求属性; 打印服务本身将这些属性添加到打印作业的属性集。

打印服务属性

打印服务属性报告打印服务的状态。 打印服务属性类实现接口PrintServiceAttribute 打印服务属性可以显示在PrintServiceAttributeSet中

支持值属性

受支持的值属性指示打印服务支持的另一个属性的合法值。 受支持值属性类实现接口SupportedValuesAttribute 但是,supported-values属性永远不会出现在属性集中,因此它们没有受限制的AttributeSet子接口。

属性表

下表列出了所有打印属性。 该表显示了除了接口Attribute之外每个属性类实现的标记接口,从而指示了如何在API中使用每个属性。 对于每个doc属性和print request属性,标记为“SupportedValuesAttribute”的列会列出supported-values属性类(如果有),打印服务使用该属性类指示该属性类别支持的值。 Lists all printing attributes as described above Attribute Class Doc
Attribute Print
Request
Attribute Print
Job
Attribute Print
Service
Attribute 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
Contains zero or more --     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
Contains zero or more --       X   -- PrinterStateReason           -- Severity           QueuedJobCount       X   ReferenceUriSchemesSupported          

请注意:在javax.print API中, null方法的参考参数不正确,除非在方法上明确记录为具有有意义的解释。 相反的用法是不正确的编码,并且可能立即或稍后导致运行时异常。 IllegalArgumentExceptionNullPointerException是此类情况的典型和可接受的运行时异常的示例。

从以下版本开始:
1.4