public abstract class PrinterJob extends Object
PrinterJob class is the principal class that controls
 printing. An application calls methods in this class to set up a job,
 optionally to invoke a print dialog with the user, and then to print
 the pages of the job.| Constructor and Description | 
|---|
| PrinterJob()A  PrinterJobobject should be created using the
 staticgetPrinterJobmethod. | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract void | cancel()Cancels a print job that is in progress. | 
| PageFormat | defaultPage()Creates a new  PageFormatinstance and
 sets it to a default size and orientation. | 
| abstract PageFormat | defaultPage(PageFormat page)Clones the  PageFormatargument and alters the
 clone to describe a default page size and orientation. | 
| abstract int | getCopies()Gets the number of copies to be printed. | 
| abstract String | getJobName()Gets the name of the document to be printed. | 
| PageFormat | getPageFormat(PrintRequestAttributeSet attributes)Calculates a  PageFormatwith values consistent with those
 supported by the currentPrintServicefor this job
 (ie the value returned bygetPrintService()) and media,
 printable area and orientation contained inattributes. | 
| static PrinterJob | getPrinterJob()Creates and returns a  PrinterJobwhich is initially
 associated with the default printer. | 
| PrintService | getPrintService()Returns the service (printer) for this printer job. | 
| abstract String | getUserName()Gets the name of the printing user. | 
| abstract boolean | isCancelled()Returns  trueif a print job is
 in progress, but is going to be cancelled
 at the next opportunity; otherwise returnsfalse. | 
| static PrintService[] | lookupPrintServices()A convenience method which looks up 2D print services. | 
| static StreamPrintServiceFactory[] | lookupStreamPrintServices(String mimeType)A convenience method which locates factories for stream print
 services which can image 2D graphics. | 
| abstract PageFormat | pageDialog(PageFormat page)Displays a dialog that allows modification of a
  PageFormatinstance. | 
| PageFormat | pageDialog(PrintRequestAttributeSet attributes)A convenience method which displays a cross-platform page setup dialog. | 
| abstract void | print()Prints a set of pages. | 
| void | print(PrintRequestAttributeSet attributes)Prints a set of pages using the settings in the attribute
 set. | 
| abstract boolean | printDialog()Presents a dialog to the user for changing the properties of
 the print job. | 
| boolean | printDialog(PrintRequestAttributeSet attributes)A convenience method which displays a cross-platform print dialog
 for all services which are capable of printing 2D graphics using the
  Pageableinterface. | 
| abstract void | setCopies(int copies)Sets the number of copies to be printed. | 
| abstract void | setJobName(String jobName)Sets the name of the document to be printed. | 
| abstract void | setPageable(Pageable document)Queries  documentfor the number of pages and
 thePageFormatandPrintablefor each
 page held in thePageableinstance,document. | 
| abstract void | setPrintable(Printable painter)Calls  painterto render the pages. | 
| abstract void | setPrintable(Printable painter,
            PageFormat format)Calls  painterto render the pages in the specifiedformat. | 
| void | setPrintService(PrintService service)Associate this PrinterJob with a new PrintService. | 
| abstract PageFormat | validatePage(PageFormat page)Returns the clone of  pagewith its settings
 adjusted to be compatible with the current printer of thisPrinterJob. | 
public PrinterJob()
PrinterJob object should be created using the
 static getPrinterJob method.public static PrinterJob getPrinterJob()
PrinterJob which is initially
 associated with the default printer.
 If no printers are available on the system, a PrinterJob will still
 be returned from this method, but getPrintService()
 will return null, and calling
 print with this PrinterJob might
 generate an exception.  Applications that need to determine if
 there are suitable printers before creating a PrinterJob
 should ensure that the array returned from
 lookupPrintServices is not empty.PrinterJob.SecurityException - if a security manager exists and its
          SecurityManager.checkPrintJobAccess()
          method disallows this thread from creating a print job requestpublic static PrintService[] lookupPrintServices()
PrinterJobs which support print services.
 Calling this method is equivalent to calling
 PrintServiceLookup.lookupPrintServices()
 and specifying a Pageable DocFlavor.public static StreamPrintServiceFactory[] lookupStreamPrintServices(String mimeType)
 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 instances which support print services.
 Calling this method is equivalent to calling
 StreamPrintServiceFactory.lookupStreamPrintServiceFactories()
  and specifying a Pageable DocFlavor.mimeType - the required output format, or null to mean any format.public PrintService getPrintService()
setPrintService(PrintService), 
getPrinterJob()public void setPrintService(PrintService service) throws PrinterException
PrinterException if the specified service
 cannot support the Pageable and
 Printable interfaces necessary to support 2D printing.service - a print service that supports 2D printingPrinterException - if the specified service does not support
 2D printing, or this PrinterJob class does not support
 setting a 2D print service, or the specified service is
 otherwise not a valid print service.getPrintService()public abstract void setPrintable(Printable painter)
painter to render the pages.  The pages in the
 document to be printed by this
 PrinterJob are rendered by the Printable
 object, painter.  The PageFormat for each page
 is the default page format.painter - the Printable that renders each page of
 the document.public abstract void setPrintable(Printable painter, PageFormat format)
painter to render the pages in the specified
 format.  The pages in the document to be printed by
 this PrinterJob are rendered by the
 Printable object, painter. The
 PageFormat of each page is format.painter - the Printable called to render
          each page of the documentformat - the size and orientation of each page to
                   be printedpublic abstract void setPageable(Pageable document) throws NullPointerException
document for the number of pages and
 the PageFormat and Printable for each
 page held in the Pageable instance,
 document.document - the pages to be printed. It can not be
 null.NullPointerException - the Pageable passed in
 was null.PageFormat, 
Printablepublic abstract boolean printDialog()
                             throws HeadlessException
printDialog(PrintRequestAttributeSet).
 PrinterJob implementations which can use PrintService's will update the PrintService for this PrinterJob to reflect the new service selected by the user.
true if the user does not cancel the dialog;
 false otherwise.HeadlessException - if GraphicsEnvironment.isHeadless()
 returns true.GraphicsEnvironment.isHeadless()public boolean printDialog(PrintRequestAttributeSet attributes) throws HeadlessException
Pageable interface. The selected printer when the
 dialog is initially displayed will reflect the print service currently
 attached to this print job.
 If the user changes the print service, the PrinterJob will be
 updated to reflect this, unless the user cancels the dialog.
 As well as allowing the user to select the destination printer,
 the user can also select values of various print request attributes.
 The attributes parameter on input will reflect the applications required initial selections in the user dialog. Attributes not specified display using the default for the service. On return it will reflect the user's choices. Selections may be updated by the implementation to be consistent with the supported values for the currently selected print service.
As the user scrolls to a new print service selection, the values copied are based on the settings for the previous service, together with any user changes. The values are not based on the original settings supplied by the client.
 With the exception of selected printer, the PrinterJob state is
 not updated to reflect the user's changes.
 For the selections to affect a printer job, the attributes must
 be specified in the call to the
 print(PrintRequestAttributeSet) method. If using
 the Pageable interface, clients which intend to use media selected
 by the user must create a PageFormat derived from the user's
 selections.
 If the user cancels the dialog, the attributes will not reflect
 any changes made by the user.
attributes - on input is application supplied attributes,
 on output the contents are updated to reflect user choices.
 This parameter may not be null.true if the user does not cancel the dialog;
 false otherwise.HeadlessException - if GraphicsEnvironment.isHeadless()
 returns true.NullPointerException - if attributes parameter
 is null.GraphicsEnvironment.isHeadless()public abstract PageFormat pageDialog(PageFormat page) throws HeadlessException
PageFormat instance.
 The page argument is used to initialize controls
 in the page setup dialog.
 If the user cancels the dialog then this method returns the
 original page object unmodified.
 If the user okays the dialog then this method returns a new
 PageFormat object with the indicated changes.
 In either case, the original page object is
 not modified.page - the default PageFormat presented to the
                  user for modificationpage object if the dialog
            is cancelled; a new PageFormat object
            containing the format indicated by the user if the
            dialog is acknowledged.HeadlessException - if GraphicsEnvironment.isHeadless()
 returns true.GraphicsEnvironment.isHeadless()public PageFormat pageDialog(PrintRequestAttributeSet attributes) throws HeadlessException
The attributes parameter on input will reflect the client's required initial selections in the user dialog. Attributes which are not specified display using the default for the service. On return it will reflect the user's choices. Selections may be updated by the implementation to be consistent with the supported values for the currently selected print service.
The return value will be a PageFormat equivalent to the selections in the PrintRequestAttributeSet. If the user cancels the dialog, the attributes will not reflect any changes made by the user, and the return value will be null.
attributes - on input is application supplied attributes,
 on output the contents are updated to reflect user choices.
 This parameter may not be null.null otherwise.HeadlessException - if GraphicsEnvironment.isHeadless()
 returns true.NullPointerException - if attributes parameter
 is null.GraphicsEnvironment.isHeadless()public abstract PageFormat defaultPage(PageFormat page)
PageFormat argument and alters the
 clone to describe a default page size and orientation.page - the PageFormat to be cloned and alteredpage, altered to describe a default
                      PageFormat.public PageFormat defaultPage()
PageFormat instance and
 sets it to a default size and orientation.PageFormat set to a default size and
          orientation.public PageFormat getPageFormat(PrintRequestAttributeSet attributes)
PageFormat with values consistent with those
 supported by the current PrintService for this job
 (ie the value returned by getPrintService()) and media,
 printable area and orientation contained in attributes.
 
 Calling this method does not update the job.
 It is useful for clients that have a set of attributes obtained from
 printDialog(PrintRequestAttributeSet attributes)
 and need a PageFormat to print a Pageable object.
attributes - a set of printing attributes, for example obtained
 from calling printDialog. If attributes is null a default
 PageFormat is returned.PageFormat whose settings conform with
 those of the current service and the specified attributes.public abstract PageFormat validatePage(PageFormat page)
page with its settings
 adjusted to be compatible with the current printer of this
 PrinterJob.  For example, the returned
 PageFormat could have its imageable area
 adjusted to fit within the physical area of the paper that
 is used by the current printer.page - the PageFormat that is cloned and
          whose settings are changed to be compatible with
          the current printerPageFormat that is cloned from
          page and whose settings are changed
          to conform with this PrinterJob.public abstract void print()
                    throws PrinterException
PrinterException - an error in the print system
            caused the job to be aborted.Book, 
Pageable, 
Printablepublic void print(PrintRequestAttributeSet attributes) throws PrinterException
 Note that some attributes may be set directly on the PrinterJob
 by equivalent method calls, (for example), copies:
 setcopies(int), job name: setJobName(String)
 and specifying media size and orientation though the
 PageFormat object.
 
 If a supported attribute-value is specified in this attribute set,
 it will take precedence over the API settings for this print()
 operation only.
 The following behaviour is specified for PageFormat:
 If a client uses the Printable interface, then the
 attributes parameter to this method is examined
 for attributes which specify media (by size), orientation, and
 imageable area, and those are used to construct a new PageFormat
 which is passed to the Printable object's print() method.
 See Printable for an explanation of the required
 behaviour of a Printable to ensure optimal printing via PrinterJob.
 For clients of the Pageable interface, the PageFormat will always
 be as supplied by that interface, on a per page basis.
 
 These behaviours allow an application to directly pass the
 user settings returned from
 printDialog(PrintRequestAttributeSet attributes to
 this print() method.
 
attributes - a set of attributes for the jobPrinterException - an error in the print system
            caused the job to be aborted.Book, 
Pageable, 
Printablepublic abstract void setCopies(int copies)
copies - the number of copies to be printedgetCopies()public abstract int getCopies()
setCopies(int)public abstract String getUserName()
public abstract void setJobName(String jobName)
null.jobName - the name of the document to be printedgetJobName()public abstract String getJobName()
setJobName(java.lang.String)public abstract void cancel()
print has been called but has not
 returned then this method signals
 that the job should be cancelled at the next
 chance. If there is no print job in progress then
 this call does nothing.public abstract boolean isCancelled()
true if a print job is
 in progress, but is going to be cancelled
 at the next opportunity; otherwise returns
 false.true if the job in progress
 is going to be cancelled; false otherwise. Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2023, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.