- java.lang.Object
-
- java.awt.print.PrinterJob
-
public abstract class PrinterJob extends Object
PrinterJob
课程是控制打印的主要课程。 应用程序调用此类中的方法来设置作业,可选地与用户调用打印对话框,然后打印作业的页面。
-
-
构造方法摘要
构造方法 Constructor 描述 PrinterJob()
应使用静态getPrinterJob
方法创建一个PrinterJob
对象。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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
实例中的每个页面,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()
并指定一个Pageable 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
实例,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
- 输入是应用程序提供的属性,输出内容更新以反映用户选择。 此参数可能不为空。 - 结果
-
true
如果用户不取消对话框; 否则为false
。 - 异常
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true。 -
NullPointerException
- 如果attributes
参数为空。 - 从以下版本开始:
- 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。 如果用户取消对话框,属性将不会反映用户所做的任何更改,返回值将为空。
- 参数
-
attributes
- 输入是应用程序提供的属性,输出内容更新以反映用户选择。 此参数可能不为空。 - 结果
-
如果用户不取消对话框的页面格式;
否则为
null
。 - 异常
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true。 -
NullPointerException
- 如果attributes
参数为空。 - 从以下版本开始:
- 1.4
- 另请参见:
-
GraphicsEnvironment.isHeadless()
-
defaultPage
public abstract PageFormat defaultPage(PageFormat page)
克隆PageFormat
参数,并更改克隆以描述默认页面大小和方向。- 参数
-
page
- 要克隆和修改的PageFormat
- 结果
-
克隆
page
,改为描述一个默认的PageFormat
。
-
defaultPage
public PageFormat defaultPage()
创建一个新的PageFormat
实例,并将其设置为默认的大小和方向。- 结果
-
一个
PageFormat
设置为默认的大小和方向。
-
getPageFormat
public PageFormat getPageFormat(PrintRequestAttributeSet attributes)
计算一个PageFormat
,其值与当前的PrintService
支持的值(即getPrintService()
返回的值)和attributes
包含的介质,可打印区域和方向的值attributes
。调用此方法不会更新作业。 它对于具有从
printDialog(PrintRequestAttributeSet attributes)
获取的一组属性的客户端是有用的,需要一个PageFormat来打印一个Pageable对象。- 参数
-
attributes
- 一组打印属性,例如从调用printDialog获取。 如果attributes
为空,则返回默认的PageFormat。 - 结果
-
一个
PageFormat
的设置符合当前服务和指定属性的设置。 - 从以下版本开始:
- 1.6
-
validatePage
public abstract PageFormat validatePage(PageFormat page)
返回page
的克隆,其设置被调整为与此PrinterJob
的当前打印机兼容。 例如,返回的PageFormat
可以将其可成像区域调整为适合当前打印机使用的纸张的物理区域。- 参数
-
page
- 克隆的PageFormat
,其设置更改为与当前打印机兼容 - 结果
-
一个
PageFormat
是从克隆page
,其设置被更改与此相一致PrinterJob
。
-
print
public abstract void print() throws PrinterException
打印一组页面。- 异常
-
PrinterException
- 打印系统中的错误导致作业中止。 - 另请参见:
-
Book
,Pageable
,Printable
-
print
public void print(PrintRequestAttributeSet attributes) throws PrinterException
使用属性集中的设置打印一组页面。 默认实现忽略属性集。请注意,可以通过等效的方法调用(例如),副本:
setCopies(int)
,作业名称:setJobName(String)
在PrinterJob上直接设置某些属性,并通过PageFormat
对象指定介质尺寸和方向。如果在此属性集中指定了支持的属性值,则它将优先于此print()操作的API设置。 为PageFormat指定了以下行为:如果客户端使用可打印接口,则会针对指定介质(大小),方向和可成像区域的属性来检查此方法的
attributes
参数,并且这些属性用于构造新的PageFormat它被传递给Printable对象的print()方法。 有关可打印的所需行为的说明,请参阅Printable
,以确保通过PrinterJob进行最佳打印。 对于Pageable接口的客户端,PageFormat将始终由该接口按照每页提供。这些行为允许应用程序将从
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
- 如果安全管理器存在,并且SecurityException
- 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
。
-
-