模块  java.desktop
软件包  java.awt.print

Class PrinterJob


  • public abstract class PrinterJob
    extends Object
    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打印所需的PageablePrintable接口,则抛出PrinterException
        参数
        service - 支持2D打印的打印服务
        异常
        PrinterException - 如果指定的服务不支持2D打印,或者此PrinterJob类不支持设置2D打印服务,或者指定的服务不是有效的打印服务。
        从以下版本开始:
        1.4
        另请参见:
        getPrintService()
      • setPrintable

        public abstract void setPrintable​(Printable painter)
        调用painter来呈现页面。 PrinterJob打印的文档中的页面由Printable对象painter 每页的PageFormat是默认页面格式。
        参数
        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 (页数)和 PageFormatPrintablePageable实例中 Printable的每个页面, document
        参数
        document - 要打印的页面。 它不能是null
        异常
        NullPointerException - 传递的 Pageablenull
        另请参见:
        PageFormatPrintable
      • 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 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
        另请参见:
        BookPageablePrintable
      • 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()
        取消正在进行的打印作业。 如果已调用print但尚未返回,则此方法表示应在下一次机会取消作业。 如果没有正在进行的打印作业,则此调用不执行任何操作。
      • isCancelled

        public abstract boolean isCancelled()
        如果正在进行打印作业,则返回true ,但在下一次机会时将取消; 否则返回false
        结果
        true如果正在进行的工作将被取消; 否则为false