java實現打印功能的一些類
主要類與接口位置(包):
(1)java.awt.print
(2)javax.print(JDK1.4新增)。其中
a). java.print包中主要包含打印服務的相關類;
b). 其子包javax.print.event則包含打印事件的相關定義;
c). 其子包javax.print.attribute則包括打印服務的可用屬性列表等;
主要類與接口:
1.PrintJob
2.PageFormat
3.Page
1.java.awt.print
1.1 PrintJob
實現打印功能的核心類
1.1.1 getPrintJob()
作用:返回默認打印機。如果沒有打印機,則仍返回一個PrintJob對象,但是getPrintService()返回null。
throws:SecurityException
1.2 PageFormat
設置打印的紙的大小與方向
2.javax.print
2.1 PrintService
接口 PrintService 是 DocPrintJob 的工廠。PrintService 描述了打印機的功能,並可查詢它來了解打印機支持的屬性
2.2 DocFlavor
類 DocFlavor 封裝了一個提供給 DocPrintJob 打印數據的格式的對象。
2.3 PrintServiceLookup
此類為特定類型的 PrintService提供查找服務
3.javax.print.attribute
4.javax.print.attribute.standard
4.1 Copies
打印副本的數量
5.javax.print.event
6.涉及到的屬性(Attribute)實現類
每一個AttributeSet子接口都有一個相應Attribute子接口和繼承子類。當添加一個屬性時,繼承的子類試圖把Attribute作為參數給相應的子接口,這樣來確保只有當前適當的屬性會成功添加
注:打印屬性較多,查找時可以從DocAttribute, PrintRequestAttribute, PrintJobAttribute這三個接口的實現類入手。
6.1 OrientationRequested
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:是一個打印屬性類,枚舉型用於描述打印方向:LANDSCAPE(沿打印介質長邊打印,打印起點在左下方),PORTRAIT(沿打印介質短邊打印,打印起點在左上方),REVERSE_LANDSCAPE(沿打印介質長邊打印,但與LANDSCAPE方式相反,打印起點在右上方),REVERSE_PORTRAIT(沿打印介質短邊打印,但與PORTRAIT方式相反,打印起點在右下方)。
6.2 MediaPrintableArea
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:是一個打印屬性類,設定打印區域與非打印區域
6.3 PageRanges
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:是一個打印屬性類,設定打印頁面范圍(起始頁start-終止頁end,包含start與end)
6.4 Chromaticity
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:是一個打印屬性類,枚舉型,用於設定打印模式:MONOCHROME(黑白打印)、COLOR(彩色打印)。可通過ColorSupported確定設備是否支持彩打。
6.5 ColorSupported
implements Serializable, Cloneable, Attribute, PrintServiceAttribute
功能:是一個打印屬性類,枚舉型,用於表示設備是否支持彩打:NOT_SUPPORTED、SUPPORTED
6.6 Compression
implements DocAttribute
功能:是一個打印屬性類,用於描述文檔的壓縮模式
6.7 DocumentName
implements DocAttribute
功能:是一個打印屬性類,枚舉型,用於描述文檔的名稱
6.8 ColorSupported
implements Serializable, Cloneable, Attribute, PrintServiceAttribute
功能:是一個打印屬性類,枚舉型,用於確定打印是否進行finishing operation
6.9 NumberUp
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:是一個打印屬性類,
6.10 PrinterResolution
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:指定了打印機支持的或者將用於打印作業的精確分辨率。此屬性假定打印機有少部分(而不是全部)設備分辨率設置,打印機可以此設備分辨率運行。
常見使用情形:
(1)當客戶端進行搜索,查找支持客戶端所需准確(不多不少)分辨率的打印機時,客戶端可以指定類 PrinterResolution 的一個實例,指示客戶端所需的准確分辨率。只有支持該分辨率的打印機才與搜索相匹配。
(2)當客戶端需要使用客戶端所需准確(不多不少)的分辨率來打印一項作業時,客戶端可將類 PrinterResolution 的一個實例指定為 Print Job 的一個屬性。如果 Print Job 不支持該分辨率,並且 Fidelity (保真度)被設置為 true,則操作將失敗。
6.11 PrintQuality
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:描述打印時的質量:DRAFT(打印機上最低打印質量),HIGH(打印機上最高打印質量),NORMAL(打印機上正常或中等打印質量)
6.12 SheetCollate
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:SheetCollate 類是打印屬性類,枚舉型,當由 Copies 屬性指定了文檔的多個副本時,它可以指定作業中每個打印文檔的每個副本的介質紙張是否排列有序。當 SheetCollate 為 COLLATED 時,將使用排列有序的打印流紙張打印每個文檔的每個副本。當 SheetCollate 為 UNCOLLATED 時,每個打印流紙張將被連續多次打印,其次數等於 Copies 屬性的值。例如,假設一個文檔需要打印出兩種輸出介質紙張,Copies 為 6,SheetCollate 為 UNCOLLATED;則在此情況下,將首先打印出六份第一種介質紙張,然后再打印出六份第二種介質紙張。如果打印機不支持 SheetCollate 屬性(是指客戶端無法指定任何特定的紙張整理),則打印機的行為都必須表現為似乎 SheetCollate 始終被設置為 COLLATED。
6.13 Sides
implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
功能:打印屬性類,枚舉型,指定了如何將打印流頁應用於選定介質實例的各面(即一個印張)。
多文檔打印(一個作業帶有多個文檔)作業的 Sides 屬性的效果取決於是為所有的文檔指定了相同的 sides 值,還是不同的文檔指定了不同的 sides 值,以及 MultipleDocumentHandling 屬性的值(可能是默認值)
6.14 DialogTypeSelection
implements PrintRequestAttribute
功能:是打印屬性類,枚舉型,指定了要顯示的打印對話框的類型。
6.15 Fidelity
implements PrintRequestAttribute,PrintJobAttribute
功能:是打印屬性類,枚舉型,表示打印時是否必須以客戶要求的保真度打印。FIDELITY_TRUE(必須以客戶要求的保真度打印,否則不執行此次打印任務),FIDELITY_FALSE(默認值,如果無法滿足客戶要求的保真度,可以用一合理的參數進行打印)
6.16 PresentationDirection
implements PrintRequestAttribute,PrintJobAttribute
功能:是打印屬性類,枚舉型,表示打印時是否必須以客戶要求的保真度打印。FIDELITY_TRUE(必須以客戶要求的保真度打印,否則不執行此次打印任務),FIDELITY_FALSE(默認值,如果無法滿足客戶要求的保真度,可以用一合理的參數進行打印)