JavaTM Platform
Standard Ed. 6

javax.print
类 PrintServiceLookup

java.lang.Object
  继承者 javax.print.PrintServiceLookup

public abstract class PrintServiceLookup
extends Object

此类的实现为特定类型的 PrintService(通常等效于打印机)提供查找服务。

可同时安装多个实现。所有实现必须能够以 PrintService 实例的方式描述找到的打印机。通常在 JAR 文件中自动查找此服务类的实现(请参阅 SPI JAR 文件规范)。这些类必须是可以使用默认的构造方法进行实例化的。另外,应用程序可以在运行时显式地注册实例。

应用程序只使用此抽象类的静态方法。由子类中的服务提供者实现这些实例方法,当应用程序调用此类的静态方法时,由这些方法报告所有已安装查找类的统一结果。

建议 PrintServiceLookup 实现程序检查 SecurityManager.checkPrintJobAccess(),以拒绝对不受信任代码的访问。遵从此建议的策略意味着不受信任代码可能无法找到任何 PrintService。已下载的 applet 是不受信任代码最常见的示例。

对每个查找服务执行此项检查,从而允许策略中存在灵活性,以反映不同查找服务的需求。

如果安装了安全管理器并且其 checkPrintJobAccess() 方法拒绝访问,则查找结果中不会包括那些通过 registerService(PrintService) 注册的服务。


构造方法摘要
PrintServiceLookup()
           
 
方法摘要
abstract  PrintService getDefaultPrintService()
          应用程序不直接调用它。
abstract  MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
          应用程序不直接调用它。
abstract  PrintService[] getPrintServices()
          应用程序不直接调用它。
abstract  PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes)
          查找肯定可支持指定属性和 DocFlavor 组合的服务。
static PrintService lookupDefaultPrintService()
          查找此环境的默认 PrintService。
static MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
          查找能够打印 MultiDoc(包含所有指定的 doc flavor)的 MultiDoc PrintService。
static PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
          查找能够打印指定 DocFlavor 的 PrintService。
static boolean registerService(PrintService service)
          允许应用程序直接注册一个实现了 PrintService 的类的实例。
static boolean registerServiceProvider(PrintServiceLookup sp)
          允许应用程序显式地注册一个实现了查找服务的类。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

PrintServiceLookup

public PrintServiceLookup()
方法详细信息

lookupPrintServices

public static final PrintService[] lookupPrintServices(DocFlavor flavor,
                                                       AttributeSet attributes)
查找能够打印指定 DocFlavor 的 PrintService。

参数:
flavor - 要打印的 flavor。如果为 null,则不使用此项约束。
attributes - 该 PrintService 必须支持的属性。如果为 null,则不使用此项约束。
返回:
相符的 PrintService 对象的数组,这些对象表示那些支持指定 flavor 属性的打印服务。如果没有相符的服务,则数组的长度为零。

lookupMultiDocPrintServices

public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors,
                                                                       AttributeSet attributes)
查找能够打印 MultiDoc(包含所有指定的 doc flavor)的 MultiDoc PrintService。

在查找可以打印 MultiDoc(其中的元素可能具有不同 flavor) 的服务方面,此方法很有用。应用程序本身可以依次对每个 DocFlavor 执行多次查找,然后对结果进行整理来完成此功能,但是查找服务可以更高效地完成此项工作。

参数:
flavors - 要打印的 flavor。如果为 null 或为空,则不使用此项约束。否则只返回可打印所有指定 doc flavor 的 multidoc PrintService。
attributes - 该 PrintService 必须支持的属性。如果为 null,则不使用此项约束。
返回:
相符的 MultiDocPrintService 对象的数组。如果没有相符的服务,则数组的长度为零。

lookupDefaultPrintService

public static final PrintService lookupDefaultPrintService()
查找此环境的默认 PrintService。此方法可以返回 null。如果多个查找服务每个都指定了默认值,则没有精确定义选择哪个服务,则通常将本机平台服务(而不是已安装的服务)作为默认值返回。如果没有明确标识的本机平台默认 PrintService,则默认值是以实现相关的方式所要找的第一个服务。

这可能包括使用任意首选的 API,它可作为 Java 或本机平台的一部分而提供。设置属性 javax.print.defaultPrinter 的用户可以重写此算法。指定的服务必须证明是有效的,并且目前可作为默认值返回。

返回:
默认的 PrintService。

registerServiceProvider

public static boolean registerServiceProvider(PrintServiceLookup sp)
允许应用程序显式地注册一个实现了查找服务的类。在不同的 VM 调用后不会保留该注册关系。如果应用程序需要提供一个不是安装的一部分的新服务,则这一点是很有用的。如果已注册该查找服务或无法注册它,则该方法返回 false。

参数:
sp - 查找服务的实现。
返回:
如果新注册了该新的查找服务,则返回 true;否则返回 false

registerService

public static boolean registerService(PrintService service)
允许应用程序直接注册一个实现了 PrintService 的类的实例。由 PrintServiceLookup 类使用此服务所报告的属性值和类来执行对该服务的查找操作。这可能比专为该服务调整过的查找服务效率要低。因此建议注册一个 PrintServiceLookup 实例。如果此服务以前未注册并且现在成功注册了,则该方法返回 true。不应使用 StreamPrintService 实例调用此方法。这样始终会注册失败并且该方法将返回 false。

参数:
service - PrintService 的实现。
返回:
如果新注册了该服务,则返回 true;否则返回 false

getPrintServices

public abstract PrintService[] getPrintServices(DocFlavor flavor,
                                                AttributeSet attributes)
查找肯定可支持指定属性和 DocFlavor 组合的服务。应用程序不直接调用此方法。

此方法由服务提供者实现,由此类的静态方法使用。

结果应该与下列过程相同:获得所有 PrintService,逐个查询每个 PrintService 是否支持指定的属性和 flavor;但是处理时为 PrintService 充分利用查找服务的功能要更为高效。

参数:
flavor - 必需的文档。如果为 null,则忽略它。
attributes - 必需支持的属性。如果为 null,则不使用此项约束。
返回:
相符的 PrintService 的数组。如果没有相符的服务,则数组的长度为零。

getPrintServices

public abstract PrintService[] getPrintServices()
应用程序不直接调用它。此方法由服务提供者实现,由此类的静态方法使用。

返回:
此查找服务类已知的所有 PrintService 的数组。如果未找到服务,则数组的长度为零。

getMultiDocPrintServices

public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors,
                                                                AttributeSet attributes)
应用程序不直接调用它。

此方法由服务提供者实现,由此类的静态方法使用。

查找肯定可支持指定属性和 DocFlavor 组合的 MultiDoc PrintService。

参数:
flavors - 必需的文档。如果为 null 或为空,则忽略它。
attributes - 必需支持的属性。如果为 null,则不使用此项约束。
返回:
相符的 PrintService 的数组。如果没有相符的服务,则数组的长度为零。

getDefaultPrintService

public abstract PrintService getDefaultPrintService()
应用程序不直接调用它。此方法由服务提供者实现,由打印查找服务调用

返回:
此查找服务的默认 PrintService。如果没有默认 PrintService,则返回 null。

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策