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