PrinterJob
类是控制打印的主要类。应用程序调用此类中的方法来设置作业,可选择调用与用户的打印对话框,然后打印作业的页面。
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract void
cancel()
取消正在进行的打印作业。创建一个新的PageFormat
实例并将其设置为默认大小和方向。abstract PageFormat
defaultPage
(PageFormat page) 克隆PageFormat
参数并更改克隆以描述默认页面大小和方向。abstract int
获取要打印的份数。abstract String
获取要打印的文档的名称。getPageFormat
(PrintRequestAttributeSet attributes) 计算PageFormat
,其值与当前PrintService
支持的值(即getPrintService()
返回的值)和attributes
中包含的介质、可打印区域和方向一致。static PrinterJob
创建并返回一个最初与默认打印机关联的PrinterJob
。返回此打印机作业的服务(打印机)。abstract String
获取打印用户的名称。abstract boolean
如果打印作业正在进行,但将在下一次机会时取消,则返回true
;否则返回false
。static PrintService[]
一种查找 2D 打印服务的便捷方法。static StreamPrintServiceFactory[]
lookupStreamPrintServices
(String mimeType) 一种方便的方法,可以为可以成像 2D 图形的流打印服务定位工厂。abstract PageFormat
pageDialog
(PageFormat page) 显示允许修改PageFormat
实例的对话框。pageDialog
(PrintRequestAttributeSet attributes) 一种显示跨平台页面设置对话框的便捷方法。abstract void
print()
打印一组页面。void
print
(PrintRequestAttributeSet attributes) 使用属性集中的设置打印一组页面。abstract boolean
向用户显示一个对话框,用于更改打印作业的属性。boolean
printDialog
(PrintRequestAttributeSet attributes) 一种方便的方法,它为所有能够使用Pageable
接口打印 2D 图形的服务显示跨平台打印对话框。abstract void
setCopies
(int copies) 设置要打印的份数。abstract void
setJobName
(String jobName) 设置要打印的文档的名称。abstract void
setPageable
(Pageable document) 查询document
的页数以及PageFormat
和Printable
查询Pageable
实例document
中保存的每个页面。abstract void
setPrintable
(Printable painter) 调用painter
来呈现页面。abstract void
setPrintable
(Printable painter, PageFormat format) 调用painter
以呈现指定format
中的页面。void
setPrintService
(PrintService service) 将此 PrinterJob 与新的 PrintService 相关联。abstract PageFormat
validatePage
(PageFormat page) 返回page
的克隆,其设置已调整为与此PrinterJob
的当前打印机兼容。
-
构造方法详细信息
-
PrinterJob
public PrinterJob()应使用静态getPrinterJob
方法创建PrinterJob
对象。
-
-
方法详情
-
getPrinterJob
创建并返回一个最初与默认打印机关联的PrinterJob
。如果系统上没有打印机可用,此方法仍会返回 PrinterJob,但getPrintService()
将返回null
,并且使用此PrinterJob
调用print
可能会产生异常。在创建PrinterJob
之前需要确定是否有合适的打印机的应用程序应确保从lookupPrintServices
返回的数组不为空。- 返回:
-
一个新的
PrinterJob
。 - 抛出:
SecurityException
- 如果安全管理器存在且其SecurityManager.checkPrintJobAccess()
方法不允许此线程创建打印作业请求
-
lookupPrintServices
一种查找 2D 打印服务的便捷方法。从此方法返回的服务可能安装在支持打印服务的PrinterJob
上。调用此方法等同于调用PrintServiceLookup.lookupPrintServices()
并指定一个 Pageable DocFlavor。- 返回:
- 可能为空的 2D 打印服务数组。
- 自从:
- 1.4
-
lookupStreamPrintServices
一种方便的方法,可以为可以成像 2D 图形的流打印服务定位工厂。示例用法:
从此方法返回的服务可能安装在支持打印服务的FileOutputStream outstream; StreamPrintService psPrinter; String psMimeType = "application/postscript"; PrinterJob pj = PrinterJob.getPrinterJob(); StreamPrintServiceFactory[] factories = PrinterJob.lookupStreamPrintServices(psMimeType); if (factories.length > 0) { try { outstream = new File("out.ps"); psPrinter = factories[0].getPrintService(outstream); // psPrinter can now be set as the service on a PrinterJob pj.setPrintService(psPrinter) } catch (Exception e) { e.printStackTrace(); } }
PrinterJob
实例上。调用此方法等同于调用StreamPrintServiceFactory.lookupStreamPrintServiceFactories()
并指定一个 Pageable DocFlavor。- 参数:
mimeType
- 所需的输出格式,或 null 表示任何格式。- 返回:
- 一个可能为空的二维流打印服务工厂数组。
- 自从:
- 1.4
-
getPrintService
返回此打印机作业的服务(打印机)。不支持打印服务的此类的实现可能返回 null。如果没有可用的打印机,也将返回 null。- 返回:
- 此打印机作业的服务。
- 自从:
- 1.4
- 参见:
-
setPrintService
将此 PrinterJob 与新的 PrintService 相关联。此方法被支持指定打印服务的子类覆盖。如果指定的服务不支持支持 2D 打印所需的Pageable
和Printable
接口,则抛出PrinterException
。- 参数:
service
- 支持二维打印的打印服务- 抛出:
PrinterException
- 如果指定的服务不支持 2D 打印,或者此 PrinterJob 类不支持设置 2D 打印服务,或者指定的服务不是有效的打印服务。- 自从:
- 1.4
- 参见:
-
setPrintable
- 参数:
painter
- 呈现文档每一页的Printable
。
-
setPrintable
调用painter
以呈现指定format
中的页面。要由此PrinterJob
打印的文档中的页面由Printable
对象painter
呈现。每页的PageFormat
是format
。- 参数:
painter
- 调用Printable
以呈现文档的每一页format
- 要打印的每页的大小和方向
-
setPageable
查询document
的页数以及PageFormat
和Printable
查询Pageable
实例document
中保存的每个页面。- 参数:
document
- 要打印的页面。它不能是null
。- 抛出:
NullPointerException
- 传入的Pageable
是null
。- 参见:
-
printDialog
向用户显示一个对话框,用于更改打印作业的属性。如果选择了本机打印服务,此方法将显示本机对话框,并且用户对打印机的选择将仅限于这些本机打印服务。要为所有服务(包括本机服务)显示跨平台打印对话框,请改用printDialog(PrintRequestAttributeSet)
。可以使用 PrintService 的 PrinterJob 实现将更新此 PrinterJob 的 PrintService 以反映用户选择的新服务。
- 返回:
true
如果用户没有取消对话;false
否则。- 抛出:
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。- 参见:
-
printDialog
一种方便的方法,它为所有能够使用Pageable
接口打印 2D 图形的服务显示跨平台打印对话框。最初显示对话框时选择的打印机将反映当前附加到此打印作业的打印服务。如果用户更改打印服务,PrinterJob 将更新以反映这一点,除非用户取消该对话框。除了允许用户选择目标打印机外,用户还可以选择各种打印请求属性的值。输入的属性参数将反映应用程序在用户对话框中需要的初始选择。未指定的属性使用服务的默认值显示。返回时它将反映用户的选择。选择可以由实现更新以与当前选择的打印服务的支持值一致。
当用户滚动到新的打印服务选择时,复制的值将基于先前服务的设置以及任何用户更改。这些值不是基于客户端提供的原始设置。
除了选定的打印机外,PrinterJob 状态不会更新以反映用户的更改。对于影响打印机作业的选择,必须在对
print(PrintRequestAttributeSet)
方法的调用中指定属性。如果使用 Pageable 接口,打算使用用户选择的媒体的客户端必须创建从用户选择派生的 PageFormat。如果用户取消对话框,属性将不会反映用户所做的任何更改。- 参数:
attributes
- 输入时是应用程序提供的属性,输出时更新内容以反映用户选择。此参数不能为空。- 返回:
true
如果用户没有取消对话;false
否则。- 抛出:
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。NullPointerException
- 如果attributes
参数为空。- 自从:
- 1.4
- 参见:
-
pageDialog
显示允许修改PageFormat
实例的对话框。page
参数用于初始化页面设置对话框中的控件。如果用户取消对话框,则此方法返回未修改的原始page
对象。如果用户同意对话框,则此方法返回一个新的PageFormat
对象,其中包含指示的更改。在任何一种情况下,原始的page
对象都不会被修改。- 参数:
page
- 默认PageFormat
呈现给用户进行修改- 返回:
-
如果对话框被取消,则为原始
page
对象;一个新的PageFormat
对象,如果对话框被确认,则包含用户指定的格式。 - 抛出:
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。- 自从:
- 1.2
- 参见:
-
pageDialog
一种显示跨平台页面设置对话框的便捷方法。可用的选项将反映当前在此 PrinterJob 上设置的打印服务。输入的 attributes 参数将反映客户在用户对话框中所需的初始选择。未指定的属性使用服务的默认值显示。返回时它将反映用户的选择。选择可以由实现更新以与当前选择的打印服务的支持值一致。
返回值将是与 PrintRequestAttributeSet 中的选择等效的 PageFormat。如果用户取消对话框,属性将不会反映用户所做的任何更改,并且返回值为 null。
- 参数:
attributes
- 输入时是应用程序提供的属性,输出时更新内容以反映用户选择。此参数不能为空。- 返回:
-
如果用户不取消对话框,则为页面格式;
null
否则。 - 抛出:
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。NullPointerException
- 如果attributes
参数为空。- 自从:
- 1.4
- 参见:
-
defaultPage
克隆PageFormat
参数并更改克隆以描述默认页面大小和方向。- 参数:
page
- 要克隆和更改的PageFormat
- 返回:
page
的克隆,更改为描述默认PageFormat
。
-
defaultPage
创建一个新的PageFormat
实例并将其设置为默认大小和方向。- 返回:
-
a
PageFormat
设置为默认大小和方向。
-
getPageFormat
计算PageFormat
,其值与当前PrintService
支持的值(即getPrintService()
返回的值)和attributes
中包含的介质、可打印区域和方向一致。调用此方法不会更新作业。它对于具有从
printDialog(PrintRequestAttributeSet attributes)
获得的一组属性并且需要 PageFormat 来打印 Pageable 对象的客户端很有用。- 参数:
attributes
- 一组打印属性,例如通过调用 printDialog 获得。如果attributes
为 null,则返回默认的 PageFormat。- 返回:
-
a
PageFormat
其设置符合当前服务的设置和指定的属性。 - 自从:
- 1.6
-
validatePage
返回page
的克隆,其设置已调整为与此PrinterJob
的当前打印机兼容。例如,返回的PageFormat
可以调整其可成像区域以适应当前打印机使用的纸张的物理区域。- 参数:
page
- 克隆的PageFormat
,其设置已更改为与当前打印机兼容- 返回:
-
从
page
克隆而来的PageFormat
,其设置已更改为符合此PrinterJob
。
-
print
打印一组页面。- 抛出:
PrinterException
- 打印系统中的错误导致作业中止。- 参见:
-
print
使用属性集中的设置打印一组页面。默认实现忽略属性集。请注意,某些属性可以通过等效方法调用直接在 PrinterJob 上设置,(例如)副本:
setCopies(int)
、作业名称:setJobName(String)
并通过PageFormat
对象指定介质大小和方向。如果在此属性集中指定了受支持的属性值,则它将优先于此 print() 操作的 API 设置。为 PageFormat 指定了以下行为:如果客户端使用 Printable 接口,则检查此方法的
attributes
参数以查找指定媒体(按大小)、方向和可成像区域的属性,这些属性用于构造新的 PageFormat它被传递给 Printable 对象的 print() 方法。请参阅Printable
,了解 Printable 所需的行为以确保通过 PrinterJob 进行最佳打印。对于 Pageable 接口的客户端,PageFormat 将始终由该接口提供,基于每页。这些行为允许应用程序直接将从
printDialog(PrintRequestAttributeSet attributes
返回的用户设置传递给此 print() 方法。- 参数:
attributes
- 作业的一组属性- 抛出:
PrinterException
- 打印系统中的错误导致作业中止。- 自从:
- 1.4
- 参见:
-
setCopies
public abstract void setCopies(int copies) 设置要打印的份数。- 参数:
copies
- 要打印的份数- 参见:
-
getCopies
public abstract int getCopies()获取要打印的份数。- 返回:
- 要打印的份数。
- 参见:
-
getUserName
获取打印用户的名称。- 返回:
- 打印用户的名称
- 抛出:
SecurityException
- 如果存在安全管理器并且 PropertyPermission - 策略文件中未给出用户名
-
setJobName
设置要打印的文档的名称。文档名称不能是null
。- 参数:
jobName
- 要打印的文档的名称- 参见:
-
getJobName
获取要打印的文档的名称。- 返回:
- 要打印的文档的名称。
- 参见:
-
cancel
public abstract void cancel()取消正在进行的打印作业。如果print
已被调用但尚未返回,则此方法会发出信号,表示下次应取消该作业。如果没有正在进行的打印作业,则此调用不执行任何操作。 -
isCancelled
public abstract boolean isCancelled()如果打印作业正在进行,但将在下一次机会时取消,则返回true
;否则返回false
。- 返回:
true
如果正在进行的工作将被取消;false
否则。
-