JavaTM 2 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 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only