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