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