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(默认值,如果无法满足客户要求的保真度,可以用一合理的参数进行打印)