public interface 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 | Method and Description | 
|---|---|
| void | addPrintServiceAttributeListener(PrintServiceAttributeListener listener)
              在此PrintService上为事件注册一个侦听器。 
             | 
| DocPrintJob | createPrintJob()
              创建并返回一个能够处理任何受支持文档风格的数据的PrintJob。 
             | 
| boolean | equals(Object obj)
              确定两个服务是否指向相同的底层服务。 
             | 
| <T extends PrintServiceAttribute> | getAttribute(类<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)
              确定在为此打印服务设置作业时,客户端是否可以指定给定的打印属性值。 
             | 
| boolean | isDocFlavorSupported(DocFlavor flavor)
              确定此打印服务是否支持特定的 
              DocFlavor。 | 
| void | removePrintServiceAttributeListener(PrintServiceAttributeListener listener)
              从此打印服务中删除打印服务侦听器。 
             | 
String getName()
PrinterName属性的用户友好的打印机名称相同。 
          DocPrintJob createPrintJob()
void addPrintServiceAttributeListener(PrintServiceAttributeListener listener)
listener - 一个PrintServiceAttributeListener,它监视打印服务的状态 
           removePrintServiceAttributeListener(javax.print.event.PrintServiceAttributeListener) 
           void removePrintServiceAttributeListener(PrintServiceAttributeListener listener)
PrintService 。 
          listener - 一个PrintServiceAttributeListener对象 
           addPrintServiceAttributeListener(javax.print.event.PrintServiceAttributeListener) 
           PrintServiceAttributeSet getAttributes()
getAttributes()方法调用时设置的属性的“快照”:即,如果此打印服务的属性集的内容将来会更改,则返回的属性集的内容将不会更新。 
           要检测属性值的更改,请再次调用getAttributes() ,并将新属性集与先前的属性集进行比较; 
           或者,为打印服务事件注册一个侦听器。 
          <T extends PrintServiceAttribute> T getAttribute(类<T> category)
category - 此服务支持的PrintServiceAttribute的类别可能不为null。 
           NullPointerException - 如果类别为空。 
           IllegalArgumentException - (未经检查的异常)如果category不是类实现了接口PrintServiceAttribute 。 
           DocFlavor[] getSupportedDocFlavors()
PrintService设置作业时可以指定的打印数据格式。 
           打印数据格式由MIME类型和打印数据表示类组成的“doc flavor”(类别DocFlavor )指定。 
            请注意,与所有属性相结合可能不支持某些doc风格。 使用getUnsupportedAttributes(..)验证特定组合。 
boolean isDocFlavorSupported(DocFlavor flavor)
DocFlavor 。 
           这是一个方便的方法,以确定DocFlavor是否是DocFlavor的结果的getSupportedDocFlavors() 。 
            请注意,与所有属性相结合可能不支持某些doc风格。 使用getUnsupportedAttributes(..)验证特定组合。 
flavor - 
            DocFlavor查询支持。 
           true如果此打印服务支持指定的DocFlavor ; 
            false否则。 
           NullPointerException - (未选中的异常)如果 
            flavor为空,则抛出。 
           类<?>[] getSupportedAttributeCategories()
类 ,实现接口Attribute 。 
           此方法只返回受支持的属性类别 ; 
           它不返回支持的特定属性值 。 
            此方法返回此打印服务支持任何可能作业的所有打印属性类别。 某些类别可能在特定上下文中不被支持(即特定的DocFlavor )。 使用包含DocFlavor的方法在提交请求之前验证请求,例如getSupportedAttributeValues(..) 。 
boolean isAttributeCategorySupported(类<? extends Attribute> category)
类 Attribute的Class 指定 。 
           此方法说明是否支持属性类别 ; 
           它不知道是否支持特定的属性值 。 
            特定上下文中可能不支持某些类别(例如特定的DocFlavor )。 使用其中一种方法,其中包括一个DocFlavor在提交请求之前验证该请求,例如getSupportedAttributeValues(..) 。 
 这是确定类别是否为getSupportedAttributeCategories()结果的成员的getSupportedAttributeCategories() 。 
category - 打印要测试的属性类别。 
            它必须是类实现接口Attribute 。 
           true如果此打印服务支持在打印请求中category中的文档级别或作业级别属性; 
            false如果没有。 
           NullPointerException - (未选中的异常)如果 
            category为空,则抛出。 
           IllegalArgumentException - (未选中的异常)如果category不是实现类 ,则抛出 。 
           Object getDefaultAttributeValue(类<? extends Attribute> category)
Attribute 。 
           如果客户端设置打印作业并且未在给定类别中指定任何属性值,则此打印服务将使用默认属性值。 
            一些特定的上下文可能不支持某些属性(即特定的DocFlavor )。 使用包含DocFlavor的方法之一在提交请求之前验证请求,例如getSupportedAttributeValues(..) 。 
 并非所有属性都具有默认值。 例如,服务将不会有一个默认值RequestingUser ,即对一个支援的类别返回null意味着没有该类别的服务默认值。 使用isAttributeCategorySupported(Class)方法来区分这些情况。 
category - 要求其默认属性值的打印属性类别。 
            它必须是类实现接口Attribute 。 
           category ,如果此打印服务不支持指定doc级或作业级属性空 
            category在打印请求,或者服务没有此属性的默认值。 
           NullPointerException - (未选中的异常)如果 
            category为空,则抛出。 
           IllegalArgumentException - (未经检查的异常)如果category不是实现接口Attribute的类 ,则抛出 。 
           Object getSupportedAttributeValues(类<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes)
Attribute 。 
            如果flavor为空,并且attributes为空或为空集,则此方法将返回此Print Service支持任何可能作业的所有打印属性值。 如果flavor不为空或attributes不是空集,则此方法仅返回与给定doc风格和/或属性集合兼容的打印属性值。 也就是说,null返回值可能表示指定此属性与指定的DocFlavor不兼容。 另外如果DocFlavor不为空,它必须是此PrintService支持的风格,否则将抛出IllegalArgumentException异常。 
 如果attributes参数包含类别与category参数相同的属性,则服务必须在AttributeSet中忽略此属性。 
 DocAttribute将在Doc中Doc必须包含在此集合中以准确表示上下文。 
 此方法返回一个对象,因为不同的打印属性类别以不同的方式指示支持的属性值。 包javax.print.attribute.standard中每个打印属性的文档描述了每个属性如何表示其支持的值。 指示支持的可能方式包括: 
getCategory(Class)返回的指定属性类别类型的getCategory(Class) 。 category - 打印要测试的属性类别。 
            它必须是类实现接口Attribute 。 
           flavor - 用于假定作业的文件风味,或为空。 
           attributes - 假定作业(作业级属性和文档级别属性)的打印属性集,或空值。 
           category ,如果此打印服务不支持在打印请求中 
            category中的文档级别或作业级属性, 
            category 。 
           NullPointerException - (未选中的异常)如果 
            category为空,则抛出。 
           IllegalArgumentException - (未经检查的异常)如果摔出category不是类实现了接口Attribute ,或DocFlavor不受此服务的支持。 
           boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes)
Attribute 。 
            如果flavor为空,并且attributes为空或为空集,则此方法将告知此打印服务是否支持给定打印属性值,以获取一些可能的doc风格和一组属性的组合。 如果flavor不为空或attributes不是空集,则此方法会告知此打印服务是否支持给定的打印属性值以及给定的doc风格和/或一组属性。 
另外如果DocFlavor不为空,它必须是此PrintService支持的风格,否则将抛出IllegalArgumentException异常。
 DocAttribute S的是将要在指定Doc必须包含在该组以准确地表示上下文。 
 这是确定该值是否为getSupportedAttributeValues(...)的结果的成员的getSupportedAttributeValues(...) 。 
attrval - 打印要测试的属性值。 
           flavor - 用于假定作业的Doc风味,或为null。 
           attributes - 假定作业的打印属性集(作业级别属性和文档级属性),或为空。 
           attrval为打印请求中的文档级别或作业级别属性,则为True,否则为false。 
           NullPointerException - (未选中的异常),如果 
            attrval为空。 
           IllegalArgumentException - 如果此PrintService不支持flavor。 
           AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes)
 DocAttribute S的是将要在指定Doc必须包含在该组以准确地表示上下文。 
如果返回值不为空,返回的集合中的所有属性将不受此DocFlavor的支持。 返回的集合不区分不受支持的属性值的属性类别。
然后可以通过从原始属性集中删除所有不受支持的属性来创建支持的打印请求,但不支持DocFlavor的情况除外。
如果任何属性不受支持,只因为它们与其他属性冲突,那么服务才可以选择要识别为冲突原因的属性。
 在调用此方法之前,请使用isDocFlavorSupported()验证是否支持DocFlavor。 
flavor - 要测试的Doc flavor,或null 
           attributes - 假定作业的打印属性集(作业级别属性和文档级别属性),或为空。 
           IllegalArgumentException -如果 
            flavor不受此PrintService的支持。 
           ServiceUIFactory getServiceUIFactory()
ServiceUIFactory以获取更多信息。 
          boolean equals(Object obj)
客户应该调用此方法来确定两个服务是否指向相同的底层服务。
服务必须实现此方法,并且只有当被比较的服务对象可以被客户端可互换使用时才返回true。 如果服务可以将相同的对象引用返回给底层服务,但客户端不能依赖于参考的相等性。
equals在类别 
            Object 
           obj - 与之比较的参考对象。 
           Object.hashCode() , HashMap 
           int hashCode()
equals(Object) 。 
          hashCode在类别 
            Object 
           Object.equals(java.lang.Object), 
            System.identityHashCode(java.lang.Object) 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.