JavaTM 2 Platform
Standard Ed. 6

軟體套件 javax.print

為 JavaTM Print Service API 提供了主要類別和介面。

請參見:
          描述

介面摘要
AttributeException 介面 AttributeException 是一個混合介面,PrintException 的子類別可實作該介面以報告涉及一個或多個列印屬性的錯誤條件,特定的 Print Service 實例不支持該條件。
CancelablePrintJob 列印應用程序使用此介面來取消列印作業。
Doc 介面 Doc 指定某個物件的介面,該介面為 PrintJob 提供部分列印資料。
DocPrintJob 此介面表示了一個可使用作業屬性集列印指定文檔的列印作業。
FlavorException 介面 FlavorException 是一個混合介面,PrintException 的子類別可實作它來報告有關某個 DocFlavor 或多個 DocFlavor(類別 DocFlavor)的錯誤狀況。
MultiDoc 介面 MultiDoc 指定某個物件的介面,該物件為 PrintJob 提供多部分列印資料。
MultiDocPrintJob 從 MultiDocPrintService 中獲得,MultiDocPrintJob 可使用作業屬性集以單個 PrintJob 的形式列印指定的文檔集合。
MultiDocPrintService 介面 MultiPrintService 是 MultiDocPrintJob 的處理器。
PrintService 介面 PrintService 是 DocPrintJob 的處理器。
URIException 介面 URIException 是一個混合介面,PrintException 的子類別可實作它來報告有關 URI 位址的錯誤狀況。
 

類別摘要
DocFlavor 類別 DocFlavor 封裝了一個物件,該物件指定提供給 DocPrintJob 的列印資料的格式。
DocFlavor.BYTE_ARRAY 類別 DocFlavor.BYTE_ARRAY 提供了預定義的靜態常數 DocFlavor 物件,例如使用 byte 陣列 (byte[]) 作為列印資料表示形式類別的 DocFlavor。
DocFlavor.CHAR_ARRAY 類別 DocFlavor.CHAR_ARRAY 提供了預定義的靜態常數 DocFlavor 物件,例如使用字元陣列 (char[]) 作為列印資料表示形式類別的 DocFlavor。
DocFlavor.INPUT_STREAM 類別 DocFlavor.INPUT_STREAM 提供了預定義的靜態常數 DocFlavor 物件,例如使用 byte 串流 (java.io.InputStream) 作為列印資料表示形式類別的 DocFlavor。
DocFlavor.READER 類別 DocFlavor.READER 提供了預定義的靜態常數 DocFlavor 物件,例如使用字元串流 (java.io.Reader) 作為列印資料表示形式類別的 DocFlavor。
DocFlavor.SERVICE_FORMATTED 類別 DocFlavor.SERVICE_FORMATTED 提供了預定義的靜態常數 DocFlavor 物件,例如用於服務格式化列印資料的 DocFlavor。
DocFlavor.STRING 類別 DocFlavor.STRING 提供了預定義的靜態常數 DocFlavor 物件,例如使用字元串 (java.lang.String) 作為列印資料表示形式類別的 DocFlavor。
DocFlavor.URL 類別 DocFlavor.URL 提供了預定義的靜態常數 DocFlavor 物件。
PrintServiceLookup 此類別的實作為特定型別的 PrintService(通常等效於印表機)提供尋找服務。
ServiceUI 此類別是各種 UI 便捷方法的集合,這些方法為瀏覽那些通過 Java Print Service API 所尋找的 PrintService 提供了圖形使用者對話框。
ServiceUIFactory 服務可以可選地提供 UI,這些 UI 允許以不同的角色進行不同樣式的交互。
SimpleDoc 此類別是介面 Doc 的實作,可用於很多常見的列印請求中。
StreamPrintService 此類別擴展了 PrintService 並表示這樣一種 PrintService,即以不同的格式向客戶端提供的輸出串流列印資料。
StreamPrintServiceFactory StreamPrintServiceFactoryStreamPrintService 實例的處理器,StreamPrintService 可以 mime 型別所描述的特定文檔格式向輸出串流中列印資料。
 

異常摘要
PrintException 類別 PrintException 封裝了與列印有關的錯誤狀況,此狀況在使用 PrintService 實例時會發生。
 

軟體套件 javax.print 的描述

為 JavaTM Print Service API 提供了主要類別和介面。Java Print Service API 允許客戶端和伺服器應用程序具備如下功能:

PrintService 發現

應用程序可調用抽象類別 PrintServiceLookup 的靜態方法來尋找 PrintService,這些 PrintService 具有滿足應用程序列印要求的功能。例如,要列印雙面文檔,應用程序首先需要找到具有雙面列印功能的印表機。

JDK 套件括的 PrintServiceLookup 實作可尋找標準的平臺印表機。要尋找其他型別的印表機(如 IPP 印表機或 JINI 印表機),PrintService 提供者可寫入 PrintServiceLookup 實作。PrintService 提供者可使用 SPI JAR 檔案規範 動態地安裝這些 PrintServiceLookup 實作。

屬性定義

javax.print.attributejavax.print.attribute.standard 套件定義了列印屬性,這些屬性描述了 PrintService 的功能、指定 PrintJob 的要求並追蹤 PrintJob 的進度。

javax.print.attribute 套件描述了屬性型別和屬性分類別方法。javax.print.attribute.standard 套件列舉了 API 所支持的所有標準屬性,其中大多數是在 IETF 規範 RFC 2911 Internet Printing Protocol, 1.1:Model and Semantics(2000 年 9 月)中所指定的屬性實作。javax.print.attribute.standard 中指定的屬性包括常見的功能,如:分辨率、份數、介質大小、作業優先級和頁面範圍。

文檔型別規範

DocFlavor 類別表示了列印資料的格式,如 JPEG 或 PostScript。DocFlavor 物件由 MIME 型別(描述了格式)和文檔表示形式類別名(指示如何將文檔發送到印表機或輸出串流)所組成。應用程序使用 DocFlavor 和屬性集來尋找某些印表機,這些印表機可列印由 DocFlavor 所指定的文檔型別且具有屬性集所指定的功能。

使用 API

典型的應用程序使用 Java Print Service API 執行以下步驟來處理列印請求:
  1. 選擇一個 DocFlavor
  2. 創建一個屬性集。
  3. 找到一個可處理由 DocFlavor 和屬性集所指定的列印請求的 PrintService。
  4. 創建一個 Doc 物件,該物件封裝 DocFlavor 和實際的列印資料,這些列印資料可採用很多形式,包括:Postscript 檔案、JPEG 圖像、URL 或純文本。
  5. 從 PrintService 獲得一個由 DocPrintJob 表示的 PrintJob。
  6. 調用 PrintJob 的 print 方法。
以下程式碼範例說明了 Java Print Service API 的典型用法:找到可在 A4 大小的紙張上列印 5 份 Postscript 文檔雙面副本的印表機、根據某個返回的 PrintService 創建 PrintJob 並調用 print 方法。

FileInputStream psStream; try { psStream = new FileInputStream("file.ps"); } catch (FileNotFoundException ffne) { } if (psStream == null) { return; } DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT; Doc myDoc = new SimpleDoc(psStream, psInFormat, null); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(5)); aset.add(MediaSize.A4); aset.add(Sides.DUPLEX); PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset); if (services.length > 0) { DocPrintJob job = services[0].createPrintJob(); try { job.print(myDoc, aset); } catch (PrintException pe) {} }

請注意:在 javax.print API 中,只有在方法中顯式記錄傳遞給方法的 null 參考參數具有有意義的解釋時,該參數才是正確的。否則就是錯誤的編碼方式,並且可能立即或在稍後某時導致運行時異常。IllegalArgumentException 和 NullPointerException 是典型的異常範例,並且是這種情況可接受的運行時異常。

從以下版本開始:
1.4

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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