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