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