Module  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() 并指定一个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打印所需的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的页数和 PageFormatPrintable的每个页面保持在 Pageable实例, 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 - 输入是应用程序提供的属性,输出内容更新以反映用户选择。 此参数可能不为空。
        结果
        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 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
        另请参见:
        BookPageablePrintable
      • 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​()
        取消正在进行的打印作业。 如果已经调用了print但是没有返回,那么这个方法就表示在下一次机会时应该取消该作业。 如果没有正在进行的打印作业,则此呼叫不会执行任何操作。
      • isCancelled

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