The Printable interface is implemented by the print methods of the current page painter, which is called by the printing system to render a page. When building a Pageable , pairs of PageFormat instances and instances that implement this interface are used to describe each page. The instance implementing Printable is called to print the page's graphics.

A Printable(..) may be set on a PrinterJob. When the client subsequently initiates printing by calling PrinterJob.print(..) control

is handed to the printing system until all pages have been printed. It does this by calling Printable.print(..) until all pages in the document have been printed. In using the Printable interface the printing commits to image the contents of a page whenever requested by the printing system.

The parameters to Printable.print(..) include a PageFormat which describes the printable area of the page, needed for calculating the contents that will fit the page, and the page index, which specifies the zero-based print stream index of the requested page.

For correct printing behaviour, the following points should be observed:

Returned from print to signify that the pageIndex is too large and that the requested page does not exist.
Returned from to signify that the requested page was rendered.
Prints the page at the specified index into the specified Graphics context in the specified format. A PrinterJob calls the Printable interface to request that a page be rendered into the context specified by graphics. The format of the page to be drawn is specified by pageFormat. The zero based index of the requested page is specified by pageIndex. If the requested page does not exist then this method returns NO_SUCH_PAGE; otherwise PAGE_EXISTS is returned. The Graphics class or subclass implements the PrinterGraphics interface to provide additional information. If the Printable object aborts the print job then it throws a PrinterException .
Parameters
graphicsthe context into which the page is drawn
pageFormatthe size and orientation of the page being drawn
pageIndexthe zero based index of the page to be drawn
Return
PAGE_EXISTS if the page is rendered successfully or NO_SUCH_PAGE if pageIndex specifies a non-existent page.
Throws
java.awt.print.PrinterException thrown when the print job is terminated.