- 已知的所有子接口:
-
MultiDocPrintService
- 已知的所有实现类:
-
StreamPrintService
PrintService
是DocPrintJob
的工厂。一个PrintService
描述了打印机的功能,并可以查询打印机支持的属性。
示例:
DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.ISO_A4);
PrintService[] pservices =
PrintServiceLookup.lookupPrintServices(flavor, aset);
if (pservices.length > 0) {
DocPrintJob pj = pservices[0].createPrintJob();
try {
FileInputStream fis = new FileInputStream("test.ps");
Doc doc = new SimpleDoc(fis, flavor, null);
pj.print(doc, aset);
} catch (FileNotFoundException fe) {
} catch (PrintException e) {
}
}
-
Method Summary
Modifier and TypeMethodDescriptionvoid
为此PrintService
注册事件监听器。创建并返回一个能够处理来自任何支持文档格式的数据的PrintJob
。boolean
确定两个服务是否引用相同的底层服务。<T extends PrintServiceAttribute>
TgetAttribute
(Class<T> category) 获取单个指定服务属性的值。获取此打印服务的打印机描述属性集,提供此打印服务的状态。getDefaultAttributeValue
(Class<? extends Attribute> category) 确定此打印服务在给定类别中的默认打印属性值。getName()
返回此打印服务的字符串名称,应用程序可以使用该名称请求特定的打印服务。返回一个工厂,用于创建允许用户以各种角色与服务进行交互的UI组件。Class<?>[]
确定客户端在为此打印服务设置作业时可以指定的打印属性类别。getSupportedAttributeValues
(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes) 确定客户端在为此打印服务设置作业时可以指定的给定类别中的打印属性值。确定客户端在为此PrintService
设置作业时可以指定的打印数据格式。getUnsupportedAttributes
(DocFlavor flavor, AttributeSet attributes) 在特定DocFlavor
的上下文中,标识不支持的打印请求的属性。int
hashCode()
此方法应与equals(Object)
一致实现。boolean
isAttributeCategorySupported
(Class<? extends Attribute> category) 确定客户端在为此打印服务设置作业时是否可以指定给定的打印属性类别。boolean
isAttributeValueSupported
(Attribute attrval, DocFlavor flavor, AttributeSet attributes) 确定客户端在为此打印服务设置作业时是否可以指定给定的打印属性值。boolean
isDocFlavorSupported
(DocFlavor flavor) 确定此打印服务是否支持特定的DocFlavor
。void
从此打印服务中删除打印服务监听器。
-
Method Details
-
getName
String getName()返回此打印服务的字符串名称,应用程序可以使用该名称请求特定的打印服务。在适当的上下文中,例如名称服务,此名称必须是唯一的。在某些环境中,此唯一名称可能与用户友好的打印机名称相同,该名称定义为PrinterName
属性。- 返回:
- 服务的名称
-
createPrintJob
DocPrintJob createPrintJob()创建并返回一个能够处理来自任何支持文档格式的数据的PrintJob
。- 返回:
-
一个
DocPrintJob
对象
-
addPrintServiceAttributeListener
为此PrintService
注册事件监听器。- 参数:
-
listener
- 一个PrintServiceAttributeListener,用于监视打印服务的状态 - 参见:
-
removePrintServiceAttributeListener
从此打印服务中删除打印服务监听器。这意味着监听器不再对PrintService
事件感兴趣。- 参数:
-
listener
- 一个PrintServiceAttributeListener
对象 - 参见:
-
getAttributes
PrintServiceAttributeSet getAttributes()获取此打印服务的打印机描述属性集,提供此打印服务的状态。返回的属性集对象是不可修改的。返回的属性集对象是在调用getAttributes()
方法时此打印服务的属性集的“快照”:也就是说,如果此打印服务的属性集内容在将来发生更改,返回的属性集的内容将不会更新。要检测属性值的更改,再次调用getAttributes()
并将新的属性集与先前的属性集进行比较;或者,注册一个打印服务事件的监听器。- 返回:
-
此打印服务的属性集的不可修改快照。可能为空,但不是
null
。
-
getAttribute
获取单个指定服务属性的值。对于只需要一个属性值并希望最小化开销的客户端可能会有用。- 类型参数:
-
T
- 指定服务属性的类型 - 参数:
-
category
- 此服务支持的PrintServiceAttribute
的类别 - 不能为null
- 返回:
-
支持的属性的值,如果此服务不支持该属性,则返回
null
- 抛出:
-
NullPointerException
- 如果类别为null
-
IllegalArgumentException
- 如果category
不是实现接口PrintServiceAttribute
的Class
-
getSupportedDocFlavors
DocFlavor[] getSupportedDocFlavors()确定客户端在为此PrintService
设置作业时可以指定的打印数据格式。打印数据格式由“文档格式”(类DocFlavor
)指定,包括MIME类型和打印数据表示类。请注意,某些文档格式可能无法与所有属性组合一起使用。使用
getUnsupportedAttributes(..)
验证特定组合。- 返回:
- 支持的文档格式数组,应至少有一个元素
-
isDocFlavorSupported
确定此打印服务是否支持特定的DocFlavor
。这是一个便利方法,用于确定DocFlavor
是否将成为getSupportedDocFlavors()
结果的成员。请注意,某些文档格式可能无法与所有属性组合一起使用。使用
getUnsupportedAttributes(..)
验证特定组合。- 参数:
-
flavor
- 要查询支持的DocFlavor
- 返回:
-
如果此打印服务支持指定的
DocFlavor
,则返回true
;否则返回false
- 抛出:
-
NullPointerException
- 如果flavor
为null
-
getSupportedAttributeCategories
Class<?>[] getSupportedAttributeCategories()确定客户端在为此打印服务设置作业时可以指定的打印属性类别。打印属性类别由实现接口Attribute
的Class
指定。此方法仅返回支持的属性类别;它不返回支持的特定属性值。此方法返回此打印服务为任何可能的作业支持的所有打印属性类别。某些类别在特定上下文中可能不受支持(即对于特定
DocFlavor
)。在提交请求之前,请使用包含DocFlavor
的方法之一验证请求,例如getSupportedAttributeValues(..)
。 -
isAttributeCategorySupported
确定客户端在为此打印服务设置作业时是否可以指定给定的打印属性类别。打印属性类别由实现接口Attribute
的Class
指定。此方法告诉属性类别是否受支持;它不告诉特定属性值是否受支持。某些类别在特定上下文中可能不受支持(即对于特定
DocFlavor
)。在提交请求之前,请使用包含DocFlavor
的方法验证请求,例如getSupportedAttributeValues(..)
。这是一个便利方法,用于确定该类别是否将成为
getSupportedAttributeCategories()
结果的成员。- 参数:
-
category
- 用于测试的打印属性类别。必须是实现接口Attribute
的Class
。 - 返回:
-
如果此打印服务支持在打印请求中指定
category
中的文档级或作业级属性,则返回true
;如果不支持,则返回false
。 - 抛出:
-
NullPointerException
- 如果category
为null
-
IllegalArgumentException
- 如果category
不是实现接口Attribute
的Class
-
getDefaultAttributeValue
确定给定类别中此打印服务的默认打印属性值。打印属性值是实现接口Attribute
的类的实例。如果客户端设置了打印作业但没有在给定类别中指定任何属性值,则此打印服务将使用默认属性值。某些属性在特定上下文中可能不受支持(例如对于特定的
DocFlavor
)。在提交请求之前,使用包括DocFlavor
的方法之一来验证请求,例如getSupportedAttributeValues(..)
。并非所有属性都有默认值。例如,服务不会为
RequestingUser
提供默认值,即对于受支持的类别,返回null
表示该类别没有服务默认值。使用isAttributeCategorySupported(Class)
方法来区分这些情况。- 参数:
-
category
- 请求默认属性值的打印属性类别。必须是实现接口Attribute
的Class
。 - 返回:
-
category
的默认属性值,如果此打印服务不支持在打印请求中指定category
中的文档级或作业级属性,或者服务没有此属性的默认值,则返回null
。 - 抛出:
-
NullPointerException
- 如果category
为null
-
IllegalArgumentException
- 如果category
不是实现接口Attribute
的Class
-
getSupportedAttributeValues
Object getSupportedAttributeValues(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes) 确定客户端在为此打印服务设置作业时可以在给定类别中指定的打印属性值。打印属性值是实现接口Attribute
的类的实例。如果
flavor
为null
,并且attributes
为null
或为空集,则此方法返回此打印服务支持的所有打印属性值,适用于任何可能的作业。如果flavor
不为null
,或者attributes
不为空集,则此方法仅返回与给定文档格式和/或属性集兼容的打印属性值。也就是说,返回null
可能表示指定此属性与指定的 DocFlavor 不兼容。此外,如果DocFlavor
不为null
,则它必须是此PrintService
支持的格式,否则将抛出IllegalArgumentException
。如果
attributes
参数包含其类别与category
参数相同的Attribute
,则服务必须在AttributeSet
中忽略此属性。必须在此集合中包含要在
Doc
上指定的DocAttribute
,以准确表示上下文。此方法返回一个
Object
,因为不同的打印属性类别以不同的方式指示支持的属性值。包javax.print.attribute.standard
中每个打印属性的文档描述了每个属性如何指示其支持的值。指示支持的方式包括:- 返回属性类别的单个实例以指示任何值都是合法的 -- 例如,其值为任意文本字符串的属性使用此方法。(返回的属性对象的值无关紧要。)
- 返回包含合法值的一个或多个属性类别实例的数组 -- 例如,具有枚举值列表的属性使用此方法。数组的类型是由其
getCategory(Class)
返回的指定属性类别类型的数组。 - 返回指示合法值范围的单个对象(而非属性类别之外的某个类的对象) -- 例如,必须在某个特定范围内的整数值属性使用此方法。
- 参数:
-
category
- 用于测试的打印属性类别。必须是实现接口Attribute
的Class
。 -
flavor
- 用于假定作业的文档格式,或null
-
attributes
- 用于假定作业的打印属性集(作业级属性和文档级属性),或null
- 返回:
-
指示
category
支持的值的对象,如果此打印服务不支持在打印请求中指定category
中的文档级或作业级属性,则返回null
。 - 抛出:
-
NullPointerException
- 如果category
为null
-
IllegalArgumentException
- 如果category
不是实现接口Attribute
的Class
,或者DocFlavor
不受此服务支持
-
isAttributeValueSupported
确定客户端在为此打印服务设置作业时是否可以指定给定的打印属性值。打印属性值是实现接口Attribute
的类的实例。如果
flavor
为null
,并且attributes
为null
或为空集,则此方法告知此打印服务是否支持给定的打印属性值,适用于某些可能的文档格式和属性集的组合。如果flavor
不为null
,或者attributes
不为空集,则此方法告知此打印服务是否支持与给定文档格式和/或属性集结合使用的给定打印属性值。此外,如果
DocFlavor
不为null
,则它必须是此PrintService
支持的格式,否则将抛出IllegalArgumentException
。必须在此集合中包含要在
Doc
上指定的DocAttribute
,以准确表示上下文。这是一个便利方法,用于确定该值是否是
getSupportedAttributeValues(...)
结果的成员。- 参数:
-
attrval
- 要测试的打印属性值 -
flavor
- 用于假定作业的文档格式,或null
-
attributes
- 用于假定作业的打印属性集(作业级属性和文档级属性),或null
- 返回:
-
如果此打印服务支持在打印请求中指定
attrval
作为文档级或作业级属性,则返回true
;如果不支持,则返回false
。 - 抛出:
-
NullPointerException
- 如果attrval
为null
-
IllegalArgumentException
- 如果文档格式不受此PrintService
支持
-
getUnsupportedAttributes
在特定DocFlavor
上下文中,标识不支持的打印请求属性。此方法对于验证潜在打印作业并识别无法支持的特定属性非常有用。必须仅提供受支持的DocFlavor
,否则将抛出IllegalArgumentException
。如果此方法的返回值为null
,则表示所有属性都受支持。必须在此集合中包含要在
Doc
上指定的DocAttribute
,以准确表示上下文。如果返回值为
non-null
,则返回集合中的所有属性都不受此DocFlavor
支持。返回的集合不区分不受支持的属性类别和不受支持的属性值。然后可以通过从原始属性集中删除所有不受支持的属性来创建受支持的打印请求,除非
DocFlavor
不受支持。如果任何属性不受支持仅因为它们与其他属性冲突,则由服务自行选择要标识为冲突原因的属性。
在调用此方法之前,请使用
isDocFlavorSupported()
来验证是否支持DocFlavor
。- 参数:
-
flavor
- 要测试的文档格式,或者null
-
attributes
- 打印属性集,用于假定的作业(包括作业级属性和文档级属性),或者null
- 返回:
-
如果此打印服务支持打印请求规范,则返回
null
,否则返回不支持的属性 - 抛出:
-
IllegalArgumentException
- 如果此PrintService
不支持flavor
-
getServiceUIFactory
ServiceUIFactory getServiceUIFactory()返回一个工厂,用于创建允许用户以各种角色与服务进行交互的UI组件。不提供任何UI的服务应返回null
。提供UI但希望在没有UI支持的环境中得到支持的打印服务应确保工厂在应用程序调用此方法以获取工厂之前不被初始化。有关更多信息,请参阅ServiceUIFactory
。- 返回:
-
null
或UI组件的工厂
-
equals
确定两个服务是否指向相同的基础服务。封装打印服务的对象可能不具有引用相等性,即使它们指向相同的基础服务。客户端应调用此方法来确定两个服务是否指向相同的基础服务。
服务必须实现此方法,并仅在服务对象可以被客户端互换使用时返回
true
。服务可以向基础服务返回相同的对象引用,但客户端不应依赖引用相等性。 -
hashCode
int hashCode()此方法应与equals(Object)
一致实现。
-